{"version":3,"sources":["_metronic/_assets/js/components/util.js","redux/setupAxios.js","_metronic/_partials/controls/forms/FieldFeedbackLabel.js","app/modules/Auth0/config.js","app/modules/Auth0/pages/LoginPage/styles.js","app/modules/Auth0/pages/LoginPage/index.js","app/modules/Auth0/pages/CallbackPage/index.js","app/modules/Auth0/pages/index.js","_nubo/_partials/widgets/counters/CounterEventsWidget1.js","_nubo/_partials/widgets/counters/CounterAlarmsWidget1.js","_nubo/_partials/widgets/counters/CounterDevicesWidget3.js","_nubo/_partials/_components/ProgressBar.js","_nubo/_partials/widgets/counters/CounterDevicesWidget4.js","_nubo/_partials/widgets/events/RecentEventsWidget.js","app/modules/Core/_redux/home/homeSlice.js","app/modules/Core/_redux/home/homeStats.js","app/modules/Core/_redux/home/homeActions.js","app/pages/Dashboard/index.js","_nubo/HexagonGrid.js","_nubo/ResponsiveHexagonGrid.js","app/modules/Core/_redux/devicemap/deviceMapCrud.js","app/modules/Core/_redux/devicemap/deviceMapActions.js","app/pages/DeviceMap/index.js","app/BasePage.js","app/modules/Core/pages/auth/CreateSession.js","app/Routes.js","app/App.js","app/modules/Auth/_redux/authRedux.js","app/modules/Auth/_redux/authCrud.js","redux/rootReducer.js","redux/store.js","index.js","_metronic/_assets/js/components/cookie.js","app/modules/Auth0/AuthConsumer.js","app/modules/Auth0/AuthProvider.js","app/modules/Auth0/index.js","_metronic/_assets/js/components/offcanvas.js","_metronic/i18n/Metronici18n.js","_metronic/i18n/I18nProvider.js","_metronic/i18n/index.js","_metronic/_partials/controls/forms/shared.js","app/modules/Auth0/context.js","app/configs/environment.js","_nubo/_partials/_components/MapsClustering/MapsLocationPin.js","_nubo/_partials/_components/ToggleGroup.js","_nubo/_partials/_components/MapsClustering/MapsClustering.js","_metronic/_partials/controls/Card.js","_metronic/_partials/controls/forms/Input.js","_metronic/_partials/controls/forms/Checkbox.js","_metronic/_partials/controls/pagination/PaginationLinks.js","_metronic/_partials/controls/pagination/PagelessLinks.js","_metronic/_partials/controls/pagination/PaginationToolbar.js","_metronic/_partials/controls/pagination/Pagination.js","_metronic/_partials/controls/AnimateLoading.js","_metronic/_partials/controls/Notice.js","_metronic/_partials/controls/ModalProgressBar.js","_metronic/_partials/controls/index.js","_metronic/_partials/controls/forms/MultiSelect.js","_nubo/_partials/_components/MapsSimple/MapsLocationPin.js","_nubo/_partials/_components/MapsSimple/MapsSimple.js","_nubo/_partials/_components/LoadingBar.js","_nubo/_partials/_components/index.js","_nubo/_partials/controls/inputs/SelectInput.js","app/modules/Core/_redux/self/selfSlice.js","_metronic/_assets/js/components/menu.js","_metronic/_assets/js/components/toggle.js","app/modules/Core/_redux/app-config/appConfigSlice.js","utils/checkLicenses.js","utils/index.js","_nubo/_helpers/QueryHelpers.js","app/modules/Core/_redux/devicemap/deviceMapSlice.js","_metronic/_partials/controls/forms/Select.js","app/hooks/useBreakpoint/useIsBelowBreakpoint.js","app/hooks/use-filter.js","app/hooks/index.js","_metronic/_partials/controls/forms/DateRangePicker.js","_metronic/_partials/controls/forms/Autocomplete.js","_nubo/_helpers/CardLoadingHelper.js","_metronic/_helpers/AssetsHelpers.js","_metronic/_helpers/RouterHelpers.js","_metronic/_helpers/TablePaginationHelpers.js","_metronic/_helpers/TableRowSelectionHelpers.js","_metronic/_helpers/TableSortingHelpers.js","_metronic/_helpers/index.js","app/modules/Core/pages/alarms/constants/alarm-types.js","app/modules/Core/_redux/actions/actionsSlice.js","app/modules/Core/_redux/alarms/alarmsSlice.js","app/modules/Core/_redux/branches/branchesSlice.js","app/modules/Core/_redux/accounts/accountsSlice.js","app/modules/Core/_redux/license-packages/licensePackagesSlice.js","app/modules/Core/_redux/events/eventsMfeSlice.js","app/modules/Core/_redux/events/eventsNfceSlice.js","app/modules/Core/_redux/events/eventsSatSlice.js","app/modules/Core/_redux/events/eventsGatewaySlice.js","app/modules/Core/_redux/events/eventsGlobalSlice.js","app/modules/Core/_redux/comm-history/commHistorySlice.js","app/modules/Core/_redux/mfes/mfesSlice.js","app/modules/Core/_redux/nfces/nfcesSlice.js","app/modules/Core/_redux/recipients/recipientsSlice.js","app/modules/Core/_redux/regions/regionsSlice.js","app/modules/Core/_redux/terminals/terminalsSlice.js","app/modules/Core/_redux/probes/probesSlice.js","app/modules/Core/_redux/users/usersSlice.js","app/modules/Fiscal/_redux/batches/batchesSlice.js","app/modules/Fiscal/_redux/ccfes/ccfesSlice.js","app/modules/Fiscal/_redux/cdashboard/cdashboardSlice.js","app/modules/Fiscal/_redux/cmfes/cmfesSlice.js","app/modules/Fiscal/_redux/cnfces/cnfcesSlice.js","app/modules/Fiscal/_redux/inuts/inutsSlice.js","app/modules/Fiscal/_redux/stats/statsSlice.js","app/modules/Fiscal/_redux/tasks/tasksSlice.js","app/modules/Core/_redux/sats/satsSlice.js","app/modules/Core/_redux/validators/satsValidators.js","_metronic/_assets/js/components/card.js","_metronic/_assets/js/components/scrolltop.js","_nubo/_helpers/Formatters.js","_metronic/layout/_core/HTMLClassService.js","_metronic/layout/_core/MetronicLayout.js","_metronic/layout/_core/LayoutConfig.js","_metronic/layout/components/brand/Brand.js","_metronic/layout/components/aside/aside-menu/AsideMenuList.js","_metronic/layout/components/aside/aside-menu/AsideMenu.js","_metronic/layout/components/aside/Aside.js","_metronic/layout/components/footer/Footer.js","_metronic/_partials/dropdowns/DropdownCustomToggler.js","_metronic/_partials/dropdowns/DropdownTopbarItemToggler.js","_metronic/layout/components/extras/dropdowns/LanguageSelectorDropdown.js","_metronic/layout/components/extras/dropdowns/MyCartDropdown.js","_metronic/layout/components/extras/dropdowns/QuickActionsDropdown.js","_metronic/layout/components/extras/dropdowns/UserProfileDropdown.js","_nubo/layout/components/extras/QuiclUserToggler.js","_metronic/layout/components/extras/dropdowns/search/SearchResult.js","_metronic/layout/components/extras/dropdowns/search/SearchDropdown.js","_metronic/layout/components/extras/dropdowns/UserNotificationsDropdown.js","app/modules/Core/_redux/self/selfCrud.js","app/modules/Core/_redux/self/selfActions.js","_metronic/layout/components/header/Topbar.js","_metronic/layout/components/header/header-menu/HeaderMenu.js","_metronic/layout/components/header/header-menu/HeaderMenuWrapper.js","_metronic/layout/components/header/Header.js","_metronic/layout/components/header-mobile/HeaderMobile.js","_metronic/_assets/js/layout/base/header.js","_metronic/_assets/js/layout/base/header-menu.js","_metronic/_assets/js/layout/base/header-topbar.js","_metronic/_assets/js/layout/base/brand.js","_metronic/_assets/js/layout/base/aside.js","_metronic/_assets/js/layout/base/subheader.js","_metronic/_assets/js/layout/base/sticky-card.js","_metronic/_assets/js/layout/base/aside-menu.js","_metronic/_assets/js/layout/base/aside-toggle.js","_metronic/_assets/js/layout/base/footer.js","_metronic/_assets/js/layout/base/content.js","_metronic/_assets/js/layout/extended/scrolltop.js","_metronic/_assets/js/layout/base/stretched-card.js","_metronic/_assets/js/layout/extended/quick-panel.js","_metronic/_assets/js/layout/extended/quick-user.js","_metronic/layout/components/LayoutInit.js","_metronic/layout/components/extras/offcanvas/QuickPanel.js","app/modules/Core/_redux/app-config/appConfigActions.js","_nubo/layout/components/extras/offcanvas/QuickUser.js","_metronic/layout/components/extras/ScrollTop.js","_metronic/layout/_core/MetronicSubheader.js","_metronic/layout/components/subheader/components/BreadCrumbs.js","app/pages/DeviceMap/DeviceMapSubheader.js","_metronic/layout/components/subheader/SubHeader.js","_metronic/layout/components/Layout.js","_metronic/layout/components/content/Content.js","_metronic/layout/components/content/ContentRoute.js","_metronic/layout/_core/MetronicSplashScreen.js","_metronic/layout/_core/MaterialThemeProvider.js","_metronic/layout/index.js"],"names":["Element","prototype","matches","msMatchesSelector","webkitMatchesSelector","closest","s","ancestor","this","document","documentElement","contains","parentElement","elem","i","length","window","remove","parentNode","removeChild","lastTime","vendors","x","requestAnimationFrame","cancelAnimationFrame","callback","currTime","Date","getTime","timeToCall","Math","max","id","setTimeout","clearTimeout","Document","DocumentFragment","forEach","item","hasOwnProperty","Object","defineProperty","configurable","enumerable","writable","value","argArr","Array","slice","call","arguments","docFrag","createDocumentFragment","argItem","isNode","Node","appendChild","createTextNode","String","insertBefore","firstChild","undefined","getAttributeNames","attributes","result","name","KTUtilElementDataStore","KTUtilElementDataStoreID","KTUtilDelegatedEventHandlers","KTUtil","resizeHandlers","breakpoints","sm","md","lg","xl","_windowResizeHandler","addEventListener","throttle","timer","_runResizeHandlers","init","settings","addResizeHandler","push","removeResizeHandler","runResizeHandlers","resize","Event","dispatchEvent","evt","createEvent","initUIEvent","getURLParam","paramName","val","params","location","search","substring","split","unescape","isMobileDevice","test","getViewPort","width","getBreakpoint","navigator","userAgent","match","isDesktopDevice","e","a","body","height","isInResponsiveRange","mode","breakpoint","isBreakpointUp","isBreakpointDown","getUniqueID","prefix","floor","random","isset","obj","keys","stone","indexOf","Error","shift","getHighestZindex","el","position","css","parseInt","isNaN","hasFixedPositionedParent","sleep","milliseconds","start","getRandomInt","min","isAngularVersion","Zone","deepExtend","out","key","toString","extend","getById","getElementById","getByTag","query","getElementsByTagName","getByTagName","getByClass","getElementsByClassName","getBody","hasClasses","classes","classesArr","hasClass","trim","className","classList","RegExp","addClass","classNames","add","removeClass","replace","triggerCustomEvent","eventName","data","event","CustomEvent","detail","initCustomEvent","triggerEvent","node","doc","ownerDocument","nodeType","eventClass","bubbles","initEvent","synthetic","fireEvent","createEventObject","index","c","children","string","eventTriggered","currentTarget","dataset","triggered","find","parent","querySelector","findAll","querySelectorAll","insertAfter","referenceNode","nextSibling","parents","selector","matchesSelector","mozMatchesSelector","oMatchesSelector","log","childNodes","l","child","p","f","tagName","set","customDataTag","get","has","outerWidth","margin","parseFloat","offsetWidth","offset","rect","win","getClientRects","getBoundingClientRect","defaultView","top","pageYOffset","left","pageXOffset","outerHeight","withMargin","style","offsetHeight","getComputedStyle","marginTop","marginBottom","visible","attr","getAttribute","setAttribute","hasAttr","removeAttr","removeAttribute","animate","from","to","duration","update","easing","done","easings","linear","t","b","d","rAF","change","performance","now","loop","timestamp","time","actualCss","prop","cache","HTMLElement","cssText","actualHeight","actualWidth","getScroll","element","method","self","browserSupportsBoxModel","styleProp","toLowerCase","getPropertyValue","currentStyle","str","letter","toUpperCase","oldLeft","oldRsLeft","runtimeStyle","pixelLeft","slide","dir","speed","recalcMaxHeight","calcHeight","calcPaddingTop","calcPaddingBottom","paddingTop","paddingBottom","display","overflow","slideUp","slideDown","show","hide","addEvent","type","handler","one","removeEvent","removeEventListener","on","eventId","targets","target","j","off","callee","hash","charCodeAt","animateClass","animationName","animation","animations","OAnimation","MozAnimation","WebkitAnimation","msAnimation","transitionEnd","transition","transitions","OTransition","MozTransition","WebkitTransition","msTransition","animationEnd","animateDelay","animateDuration","scrollTo","targetPos","scrollPos","scrollTop","isArray","ready","attachEvent","readyState","isEmpty","numberString","nStr","x1","x2","rgx","detectIE","ua","msie","rv","edge","isRTL","html","scrollInit","options","wheelSpeed","swipeEasing","wheelPropagation","minScrollbarLength","maxScrollbarLength","suppressScrollX","handleWindowResize","ps","attrs","attrName","includes","optionName","filterBoolean","Function","mobileHeight","mobileNativeScroll","disableForMobile","desktopNativeScroll","windowScroll","PerfectScrollbar","uid","cookie","KTCookie","getCookie","rememberPosition","pos","setCookie","console","error","resetHeightOnDestroy","destroy","scrollDestroy","scrollUpdate","scrollUpdateAll","scrollers","len","resetAll","setProperty","setHTML","innerHTML","getHTML","getDocumentHeight","scrollHeight","clientHeight","getScrollTop","scrollingElement","changeColor","col","amt","usePound","num","r","g","func","delay","debounce","btnWait","cls","message","disable","caption","btnRelease","isOffscreen","direction","windowWidth","windowHeight","module","exports","KTAppSettings","onload","backendHost","getApiUrl","API_ROOT","setupAxios","axios","sessionToken","localStorage","getItem","token","JSON","parse","interceptors","request","use","config","headers","Authorization","accessToken","err","Promise","reject","response","status","reload","FieldFeedbackLabel","label","touched","customFeedbackLabel","env","getEnvironment","AUTH0_OPTIONS","allowSignUp","autoclose","autofocus","closable","rememberLastLogin","language","allowShowPassword","languageDictionary","title","allowForgotPassword","container","theme","logo","primaryColor","labeledSubmitButton","auth","redirect","redirectUrl","origin","responseType","audience","API_URL","development","production","sso","scope","mustAcceptTerms","_idTokenVerification","LoginContainer","styled","div","Auth0LoginPage","lock","useContext","Consumer","useEffect","CallbackPage","Auth0Page","path","component","exact","AlarmStateEnum","freeze","SUCCESS","WARNING","DANGER","AlarmColorFormatter","state","alarmDefinitions","icon","filter_value","AlarmRow","alarm","redirectToAlarms","onClick","cursor","total","CounterEventsWidget1","loading","alarms","history","useHistory","model","map","AlarmType","useCallback","device_type","encodeURIComponent","stringify","filter","alarm_id","isLoading","Table","borderless","CounterAlarmsWidget1","predefinedAlarms","alarm_config_id","mappedIds","Set","additionalAlarms","entries","Number","warning_total","reduce","accumulator","danger_total","WidgetCard","iconClass","count","colLength","widgetStyle","isSmallScreen","Col","CounterDevicesWidget3","device_count","gateway_count","branch_count","account_count_active","licenses","useSelector","isResaleOrMaster","verifyResaleOrMaster","useIsBelowBreakpoint","Row","ProgressBar","vLabel","tLabel","percentage","OverlayTrigger","placement","overlay","Tooltip","textAlign","backgroundColor","borderRadius","CounterDevicesWidget4","sat_count","sat_count_online","mfe_count","mfe_count_online","gateway_count_online","gap","RecentEventsWidget","nElements","goToAlarm","device","gateway","loc","branch","uf","dvcOrGtwylink","maxWidth","right","creation_time","abs","moment","diff","asHours","utc","locale","fromNow","callTypes","homeSlice","createSlice","initialState","statsLoading","alarmsLoading","mapLoading","actionsLoading","totalCount","entities","lastError","reducers","catchError","action","payload","callType","feature","startCall","statsFetched","stats","alarmsFetched","mapFetched","STATS_URL","ALARMS_URL","MAP_URL","actions","fetchStats","queryParams","dispatch","then","catch","clientMessage","fetchAlarms","formatFilter","requestFromServer","fetchMap","initialFilter","sortOrder","sortField","pageNumber","pageSize","Dashboard","useDispatch","currentState","home","shallowEqual","alarmStats","colStyle","useMemo","padding","fetch","tryInvoke","defaultValue","isFunction","HexagonGrid","props","hexagons","gridHeight","gridWidth","renderHexagonContent","hexProps","y","useState","columns","hexSize","hexWidth","hexHeight","rows","setState","N","sqrt","ceil","getGridDimensions","getHexDimensions","row","dimensions","getRowDimensions","marginLeft","totalRowHeight","totalRowWidth","times","rowDim","remaining","column","hexDim","newTotalRowWidth","newTotalRowHeight","iHexagon","hexagon","_hexProps","flatTop","defaultProps","ResponsiveHexagonGrid","itens","onHexagonClick","getHexProps","useResizeObserver","ref","GroupingValues","Location","region","minHeight","entity","DEVICES_URL","deviceMapSlice","fetchDeviceMap","list","deviceMapFetched","lightColors","stroke","disconnectedHover","disconnectedNormal","successHover","successNormal","warningHover","warningNormal","dangerHover","dangerNormal","darkColors","disconnectedStroke","fontSize","fontWeight","fill","textAnchor","DeviceMap","deviceMap","searchParams","URLSearchParams","group","regions","groupingValues","concat","isDark","appConfig","groupedEntities","typeKey","All","Enterprise","groupedEntity","ge","calcXs","size","calcMinHeight","sort","localeCompare","Spinner","variant","role","Grid","spacing","join","xs","colors","normalColor","hoverColor","states","agent_status","alarm_state","strokeWidth","onMouseEnter","onMouseLeave","CorePage","lazy","FiscalPage","BasePage","fallback","CreateSession","setRedirectUrl","useParams","loggedAs","isAuthenticated","storeValue","setItem","decodedLogged","Base64","decode","Routes","logout","App","store","persistor","basename","Suspense","clientId","domain","saga","actionTypes","initialAuthState","user","authToken","reducer","persistReducer","storage","whitelist","takeLatest","loginSaga","put","registerSaga","userRequested","rootSaga","rootReducer","combineReducers","batches","batchesSlice","branches","branchesSlice","accounts","accountsSlice","ccfes","ccfesSlice","cdashboardSlice","cmfes","cmfesSlice","cnfces","cnfcesSlice","regionsSlice","sats","satsSlice","mfes","mfesSlice","nfces","nfcesSlice","inuts","InutsSlice","statsSlice","terminals","terminalsSlice","probes","probesSlice","actionsSlice","tasks","tasksSlice","users","usersSlice","alarmsSlice","recipients","recipientsSlice","eventsSat","eventsSatSlice","eventsGateway","eventsGatewaySlice","eventsMfe","eventsMfeSlice","eventsNfce","eventsNfceSlice","eventsGlobal","eventsGlobalSlice","commHistory","commHistorySlice","appConfigSlice","selfSlice","licensePackages","licensePackagesSlice","all","sagaMiddleware","createSagaMiddleware","middleware","getDefaultMiddleware","immutableCheck","serializableCheck","thunk","configureStore","devTools","process","enhancers","reduxBatch","persistStore","run","_redux","ReactDOM","render","decodeURIComponent","assign","expires","toUTCString","updatedCookie","optionKey","optionValue","deleteCookie","AuthConsumer","React","Component","AuthProvider","setSession","authResult","profile","session","idToken","idTokenPayload","expiresAt","expiresIn","scheduleRenewal","storeSession","storageKey","getStoredSession","isSessionExpired","rehyrate","showLock","login","returnTo","removeItem","tokenRenewalTimeout","renewToken","checkSession","getUserInfo","Auth0Lock","clear","KTOffcanvas","elementId","the","defaultOptions","attrCustom","Plugin","construct","build","events","classBase","baseClass","classShown","classOverlay","toggleBy","preventDefault","toggle","closeBy","isShown","eventTrigger","toggleClass","classCustom","createElement","args","fired","setDefaults","apply","I18N_CONFIG_KEY","REACT_APP_I18N_CONFIG_KEY","selectedLang","getConfig","ls","er","setLanguage","lang","I18nContext","createContext","useLang","MetronicI18nProvider","Provider","allMessages","de","en","es","fr","ja","zh","I18nProvider","messages","getFormFieldCSSClass","errors","feedbackLabelWithoutColors","local","staging","MapsLocationPin","text","marker","Toggle_Group","initial_value","on_change","aria_label","disable_unselect","button_group_props","selected_value","set_selected_value","ButtonGroup","aria-label","option","idx","Button","new_value","value_to_set","handle_change","disabled","Marker","DEFAULT_LATITUDE","DEFAULT_LONGITUDE","MapsClustering","gateways","devices","sty","darkStyles","lightStyles","mapRef","useRef","bounds","setBounds","zoom","setZoom","deviceType","setDeviceType","initialDeviceType","probe_type","places","selectedDeviceType","points","place","properties","cluster","pointId","alert_level","category","geometry","coordinates","longitude","latitude","useSupercluster","radius","maxZoom","clusters","supercluster","firstPosition","lat","lng","indicator","newValue","disableDefaultUI","draggable","keyboardShortcuts","scaleControl","scrollwheel","styles","bootstrapURLKeys","defaultCenter","defaultZoom","yesIWantToUseGoogleMapApiInternals","onGoogleApiLoaded","current","onChange","nw","se","isCluster","pointCount","point_count","expansionZoom","getClusterExpansionZoom","panTo","markerIcon","CardHeaderTitle","forwardRef","clsx","CardHeaderToolbar","CardHeader","toolbar","sticky","labelRef","setTop","setWindowHeight","handleResize","innerWidth","headerElement","subheaderElement","headerMobileElement","nextMarginTop","isFragment","CardBody","fit","fluid","Card","fluidHeight","elevation","Input","field","form","withFeedbackLabel","password","required","showPassword","setShowPassword","inputType","color","prevState","transform","background","border","Checkbox","isSelected","rest","checked","handleChange","handleBlur","onBlur","alignItems","PaginationLinks","paginationProps","totalSize","sizePerPage","page","paginationSize","pagesCount","getPagesCount","pages","getPages","disabledClass","onPageChange","handleFirstPage","handlePrevPage","pageNum","handleSelectedPage","handleNextPage","handleLastPage","PagelessLinks","nextPageKey","onPageKeyChange","PaginationToolbar","sizePerPageList","onSizePerPageChange","SelectInput","newSize","choices","Pagination","pageless","AnimateLoading","routeChanged","nextProps","pathname","scrollToTop","scrollToTopBtn","click","animateTimeout","stopAnimate","animateInterval","stopAnimateTimeout","withRouter","svg","iconRef","textRef","iconWrapperRef","src","toAbsoluteUrl","ModalProgressBar","animated","animatedComponent","makeAnimated","MultiSelect","placeholder","helperText","useBgColor","isDisabled","closeMenuOnSelect","components","isMulti","classNamePrefix","noOptionsMessage","locationIcon","Wrapper","MapsSimple","require","LoadingBar","labelProp","choice","selfInfo","licenseTypes","selfUpdate","_links","formattedLicenses","license","license_package","description","finishCall","getSubmenuMode","hideDropdowns","KTMenu","scroll","accordion","slideSpeed","autoScroll","autoScrollSpeed","expandAll","dropdown","timeout","reset","eventHandlers","pauseDropdownHoverTime","resetSubmenuProps","handleSubmenuAccordion","isConditionalSubmenuDropdown","handleSubmenuDrodownHoverEnter","handleSubmenuDrodownHoverExit","handleSubmenuDropdownClick","handleSubmenuDropdownTabClick","handleLinkClick","submenu","desktop","default","tablet","mobile","submenus","hasAttribute","resumeDropdownHover","showSubmenuDropdown","hideSubmenuDropdown","hideSubmenuDropdowns","handleSubmenuDropdownClose","shown","li","subnav","closables","el_","submenu_","scrollToItem","classAlso","items","cnt","createSubmenuDropdownClickDropoff","zIndex","dropoff","stopPropagation","pauseDropdownHover","date","resetActiveItem","i_","len_","setActiveItem","getBreadcrumbs","breadcrumbs","link","href","submenuLink","reverse","getPageTitle","scrollReInit","hideDropdown","KTToggle","toggleElement","targetElement","targetToggleMode","targetState","toggleState","toggleOn","toggleOff","getState","toogleDarkTheme","initialDeviceMapState","toggleDark","some","filterArray","param","filterKey","filterObjectKey","formattedQuery","setGroupingValues","Select","isChecked","multiple","erros","BREAKPOINTS","xxl","threshold","isBelow","setIsBelow","useFilter","fetchAction","initialValues","fetchOnParamsChange","values","getQueryParams","setQueryParams","previousQueryParams","isFirstRender","fetchRecords","historyQueryParams","mergedFilterParams","q","DateRangePicker","startDate","endDate","maxDate","endOf","toDate","inputEl","initialSettings","alwaysShowCalendars","linkedCalendars","autoApply","format","separator","applyLabel","cancelLabel","customRangeLabel","daysOfWeek","monthNames","ranges","startOf","subtract","onCallback","end","Autocomplete","optionsLoading","isClearable","inputValue","setInputValue","timeoutId","onInputChange","isEqual","singleValue","provided","filterOption","CardLoading","renderSpinner","checkIsActive","url","getCurrentUrl","shiftCount","getHandlerTableChange","PleaseWaitMessage","NoRecordsFoundMessage","customersList","SelectionCheckbox","listLoading","existsEntity","searchEntity","keyField","globalData","getSelectRow","clickToSelect","hideSelectAll","selectionHeaderRenderer","selectedEntities","accum","setSelectedEntities","selectedEntity","groupingAllOnSelect","selectionRenderer","rowIndex","newEntities","groupingItemOnSelect","sortCaret","order","RETENTION_TIME","IN_MEMORY","BATTERY_LEVEL","CERTIFICATE_EXPIRATION","SEFAZ_CONNECTION","NTP_SYNC","OP_STATUS","WAN_STATUS","DEVICE_OFF","GATEWAY_OFF","itemLoading","actionLoading","actionForEdit","actionFetched","actionsFetched","actionUpdated","actionTaskUpdated","iotTask","iot_tasks","actionTask","initialAlarmsState","alarmForEdit","notifications","alarmFetched","notificationsFetched","notificationDeleted","alarmCreated","alarmUpdated","alarmUpdatedLocally","alarmsUpdated","alarmDeleted","alarmsDeleted","ids","alarmsStatusUpdated","findIndex","branchForEdit","branchFetched","branchesFetched","branchUpdated","accountForEdit","accountFetched","accountsFetched","accountUpdated","account","licensePackageForEdit","licensePackageFetched","licensePackagesFetched","licensePackageUpdated","licensePackage","initialEventsState","eventForEdit","eventMfeFetched","eventsMfeFetched","eventNfceFetched","eventsNfceFetched","eventSatFetched","eventsSatFetched","eventGatewayFetched","eventsGatewayFetched","eventsGlobalFetched","commHistoryFetched","mfeForEdit","mfeFetched","mfesFetched","mfeUpdated","nfceForEdit","nfceFetched","nfcesFetched","nfceUpdated","initialRecipientsState","recipientForEdit","recipientFetched","recipientsFetched","recipientCreated","recipient","recipientUpdated","recipientDeleted","recipientsDeleted","recipientsStatusUpdated","regionForEdit","regionFetched","regionsFetched","regionUpdated","terminalForEdit","terminalsFetched","terminalUpdated","terminalFetched","probeForEdit","probesFetched","probeUpdated","probeFetched","userForEdit","userFetched","usersFetched","userUpdated","usersStatusUpdated","batchForEdit","batchFetched","batchesFetched","batchUpdated","batch","recordForEdit","ccfeFetched","ccfesFetched","ccfeUpdated","ccfe","entitiesSummarized","cdashboardFetched","cdashboardSummarizedFetched","cmfeFetched","cmfesFetched","cmfeUpdated","cmfe","cnfceFetched","cnfcesFetched","InutsFetched","taskForEdit","taskFetched","tasksFetched","taskUpdated","task","satForEdit","satFetched","couponsData","couponsHistory","sat","validateSatPayload","satsFetched","satUpdated","KTCard","toggleSpeed","releseOnReverse","header","footer","initSticky","onScrollSticky","st","updateSticky","resetSticky","setContent","getSelf","expand","collapse","destroySticky","KTScrolltop","handle","formatCNPJ","cnpj","cleanCNPJ","formatLocation","zipcode","country","city","neighborhood","street","number","cityStateZip","cleanZipcode","formatZipcode","addressParts","Boolean","part","formatDate","utcDate","Intl","DateTimeFormat","year","month","day","hour","minute","second","hour12","timeZone","HtmlClassService","layoutConfig","preInit","header_container","header_mobile","header_menu","aside","aside_menu","subheader","subheader_container","content","content_container","footer_container","initLayout","initLoader","initHeader","initSubheader","initContent","initAside","initFooter","initTheme","updatedConfig","headerSelfFixedDesktop","objectPath","fixed","getLogo","selfBodyBackgroundImage","backgroundImage","_selfBodyClass","cssClass","headerMenuSelfLayout","headerMenuLayoutCssClass","subheaderFixed","subheaderStyle","subheaderClass","asideSelfDisplay","asideMenuDropdown","asideSubmenuDHoverTimeout","brandSelfTheme","headerSelfTheme","LAYOUT_CONFIG_KEY","REACT_APP_LAYOUT_CONFIG_KEY","demo","js","base","white","primary","secondary","success","info","warning","danger","light","dark","inverse","gray","gray100","gray200","gray300","gray400","gray500","gray600","gray700","gray800","gray900","fontFamily","loader","enabled","menu","layout","arrow","displayDesc","displayDaterangepicker","brand","minimize","hoverable","extras","offcanvas","directions","languages","cart","chat","scrolltop","HtmlClassServiceContext","useHtmlClassService","MetronicLayoutProvider","lc","hcs","service","setConfig","Brand","uiService","layoutProps","brandClasses","getClasses","asideSelfMinimizeToggle","headerLogo","headerStickyLogo","getStickyLogo","imgStyle","alt","AsideMenuList","useLocation","getMenuItemActive","hasSubmenu","ulClasses","aria-haspopup","data-menu-toggle","AsideMenu","disableScroll","asideMenuAttr","getAttributes","asideClassesFromConfig","data-menu-vertical","Aside","disableAsideSelfDisplay","Footer","today","getFullYear","footerClasses","footerContainerClasses","rel","DropdownTopbarItemToggler","displayName","flag","LanguageSelectorDropdown","currentLanguage","Dropdown","drop","alignRight","Toggle","as","Menu","active","perfectScrollbarOptions","MyCartDropdown","bgImage","maxHeight","QuickActionsDropdown","UserProfileDropdown","firstname","lastname","QuickUserToggler","SearchResult","fakeData","iconImage","iconClassName","SearchDropdown","setLoading","setData","searchValue","setSearchValue","onToggle","autoFocus","UserNotificationsDropdown","setKey","Tab","Container","defaultActiveKey","Nav","onSelect","_key","Item","Link","eventKey","Content","Pane","ACCOUNTS_URL","Topbar","loggedInSubAccount","rawLoggedAs","company_name","viewSearchDisplay","viewNotificationsDisplay","viewQuickActionsDisplay","viewCartDisplay","viewQuickPanelDisplay","viewLanguagesDisplay","viewUserDisplay","getSelfFrompi","responseSelf","fetchData","loginAs","data-toggle","data-placement","HeaderMenu","ktMenuClasses","headerMenuAttributes","rootArrowEnabled","HeaderMenuWrapper","menuDesktopToggle","disabledAsideSelfDisplay","getHeaderLogo","Header","headerClasses","headerAttributes","headerContainerClasses","menuHeaderDisplay","HeaderMobile","asideDisplay","headerMenuSelfDisplay","headerMobileCssClasses","headerMobileAttributes","KTLayoutHeader","_element","_elementForMobile","idForMobile","isFixed","isFixedForMobile","getElement","getElementForMobile","getHeader","getHeight","_getHeight","getHeightForMobile","KTLayoutHeaderMenu","_menuElement","_menuObject","_offcanvasElement","_offcanvasObject","menuId","offcanvasId","getMenuElement","getOffcanvasElement","getMenu","getOffcanvas","closeMobileOffcanvas","KTLayoutHeaderTopbar","_toggleElement","getToggleElement","KTLayoutBrand","KTLayoutAside","_body","offcanvasClass","_init","isMinimized","isHoverable","KTLayoutSubheader","KTLayoutStickyCard","_object","card","cardWidth","KTLayoutAsideMenu","menuDesktopMode","insideTm","outsideTm","_initHover","KTLayoutAsideToggle","_toggleObject","getToggle","KTLayoutFooter","KTLayoutContent","KTLayoutScrolltop","KTLayoutStretchedCard","cardBody","cardHeader","KTLayoutQuickPanel","_notificationsElement","_logsElement","_settingsElement","_getContentHeight","KTLayoutQuickUser","LayoutInit","useLayoutEffect","QuickPanel","selectedTab","setSelectedTab","_tabName","QuickUser","licensesList","closeMenu","InfoItem","wordBreak","whiteSpace","overflowWrap","picture","email","FormControlLabel","control","Switch","ScrollTop","getBreadcrumbsAndTitle","pathName","activeLinks","titleSpans","titleSpan","breadCrumbs","getTitle","SubheaderContext","useSubheader","MetronicSubheaderProvider","setTitle","setBreadcrumbs","BreadCrumbs","DeviceMapSubheader","isEnterprise","regionsOptions","getRegions","selectedRegions","selectedGroup","SubHeader","subheaderMobileToggle","subheaderCssClasses","subheaderContainerCssClasses","startsWith","Layout","selfLayout","subheaderDisplay","desktopHeaderDisplay","contentCssClasses","contentContainerClasses","contentExtended","useRouteMatch","cssClassesState","setCssClassesState","fullClasses","startAnimation","timeOutId","ContentRoute","routeProps","MetronicSplashScreenContext","MetronicSplashScreenProvider","setCount","splashScreen","LayoutSplashScreen","prev","createMuiTheme","typography","palette","main","MuiButtonBase","disableRipple","MuiPopover","MaterialThemeProvider","ThemeProvider"],"mappings":"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","file":"static/js/main.a965df21.chunk.js","sourcesContent":["/* eslint-disable */\n'use strict';\n\nimport PerfectScrollbar from 'perfect-scrollbar';\n\nimport { KTCookie } from './cookie.js';\n\n/**\n * @class KTUtil base utilize class that privides helper functions\n */\n\n// Polyfills\n/**\n * Element.matches() polyfill (simple version)\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n */\nif (!Element.prototype.matches) {\n Element.prototype.matches =\n Element.prototype.msMatchesSelector ||\n Element.prototype.webkitMatchesSelector;\n}\n\n/**\n * Element.closest() polyfill\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill\n */\nif (!Element.prototype.closest) {\n if (!Element.prototype.matches) {\n Element.prototype.matches =\n Element.prototype.msMatchesSelector ||\n Element.prototype.webkitMatchesSelector;\n }\n Element.prototype.closest = function(s) {\n var el = this;\n var ancestor = this;\n if (!document.documentElement.contains(el)) return null;\n do {\n if (ancestor.matches(s)) return ancestor;\n ancestor = ancestor.parentElement;\n } while (ancestor !== null);\n return null;\n };\n}\n\n/**\n * ChildNode.remove() polyfill\n * https://gomakethings.com/removing-an-element-from-the-dom-the-es6-way/\n * @author Chris Ferdinandi\n * @license MIT\n */\n(function(elem) {\n for (var i = 0; i < elem.length; i++) {\n if (!window[elem[i]] || 'remove' in window[elem[i]].prototype) continue;\n window[elem[i]].prototype.remove = function() {\n this.parentNode.removeChild(this);\n };\n }\n})(['Element', 'CharacterData', 'DocumentType']);\n\n//\n// requestAnimationFrame polyfill by Erik Möller.\n// With fixes from Paul Irish and Tino Zijdel\n//\n// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\n//\n// MIT license\n//\n(function() {\n var lastTime = 0;\n var vendors = ['webkit', 'moz'];\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\n window.cancelAnimationFrame =\n window[vendors[x] + 'CancelAnimationFrame'] ||\n window[vendors[x] + 'CancelRequestAnimationFrame'];\n }\n\n if (!window.requestAnimationFrame)\n window.requestAnimationFrame = function(callback) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = window.setTimeout(function() {\n callback(currTime + timeToCall);\n }, timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n\n if (!window.cancelAnimationFrame)\n window.cancelAnimationFrame = function(id) {\n clearTimeout(id);\n };\n})();\n\n// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/prepend()/prepend().md\n(function(arr) {\n arr.forEach(function(item) {\n if (item.hasOwnProperty('prepend')) {\n return;\n }\n Object.defineProperty(item, 'prepend', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: function prepend() {\n var argArr = Array.prototype.slice.call(arguments),\n docFrag = document.createDocumentFragment();\n\n argArr.forEach(function(argItem) {\n var isNode = argItem instanceof Node;\n docFrag.appendChild(\n isNode ? argItem : document.createTextNode(String(argItem)),\n );\n });\n\n this.insertBefore(docFrag, this.firstChild);\n },\n });\n });\n})([Element.prototype, Document.prototype, DocumentFragment.prototype]);\n\n// getAttributeNames\nif (Element.prototype.getAttributeNames == undefined) {\n Element.prototype.getAttributeNames = function() {\n var attributes = this.attributes;\n var length = attributes.length;\n var result = new Array(length);\n for (var i = 0; i < length; i++) {\n result[i] = attributes[i].name;\n }\n return result;\n };\n}\n\n// Global variables\nwindow.KTUtilElementDataStore = {};\nwindow.KTUtilElementDataStoreID = 0;\nwindow.KTUtilDelegatedEventHandlers = {};\n\nexport var KTUtil = (function() {\n var resizeHandlers = [];\n\n /** @type {object} breakpoints The device width breakpoints **/\n var breakpoints = {\n sm: 544, // Small screen / phone\n md: 768, // Medium screen / tablet\n lg: 992, // Large screen / desktop\n xl: 1200, // Extra large screen / wide desktop\n };\n\n /**\n * Handle window resize event with some\n * delay to attach event handlers upon resize complete\n */\n var _windowResizeHandler = function() {\n var _runResizeHandlers = function() {\n // reinitialize other subscribed elements\n for (var i = 0; i < resizeHandlers.length; i++) {\n var each = resizeHandlers[i];\n each.call();\n }\n };\n\n var timer;\n\n window.addEventListener('resize', function() {\n KTUtil.throttle(\n timer,\n function() {\n _runResizeHandlers();\n },\n 200,\n );\n });\n };\n\n return {\n /**\n * Class main initializer.\n * @param {object} settings.\n * @returns null\n */\n //main function to initiate the theme\n init: function(settings) {\n if (settings && settings.breakpoints) {\n breakpoints = settings.breakpoints;\n }\n\n _windowResizeHandler();\n },\n\n /**\n * Adds window resize event handler.\n * @param {function} callback function.\n */\n addResizeHandler: function(callback) {\n resizeHandlers.push(callback);\n },\n\n /**\n * Removes window resize event handler.\n * @param {function} callback function.\n */\n removeResizeHandler: function(callback) {\n for (var i = 0; i < resizeHandlers.length; i++) {\n if (callback === resizeHandlers[i]) {\n delete resizeHandlers[i];\n }\n }\n },\n\n /**\n * Trigger window resize handlers.\n */\n runResizeHandlers: function() {\n _runResizeHandlers();\n },\n\n resize: function() {\n if (typeof Event === 'function') {\n // modern browsers\n window.dispatchEvent(new Event('resize'));\n } else {\n // for IE and other old browsers\n // causes deprecation warning on modern browsers\n var evt = window.document.createEvent('UIEvents');\n evt.initUIEvent('resize', true, false, window, 0);\n window.dispatchEvent(evt);\n }\n },\n\n /**\n * Get GET parameter value from URL.\n * @param {string} paramName Parameter name.\n * @returns {string}\n */\n getURLParam: function(paramName) {\n var searchString = window.location.search.substring(1),\n i,\n val,\n params = searchString.split('&');\n\n for (i = 0; i < params.length; i++) {\n val = params[i].split('=');\n if (val[0] == paramName) {\n return unescape(val[1]);\n }\n }\n\n return null;\n },\n\n /**\n * Checks whether current device is mobile touch.\n * @returns {boolean}\n */\n isMobileDevice: function() {\n var test =\n this.getViewPort().width < this.getBreakpoint('lg') ? true : false;\n\n if (test === false) {\n // For use within normal web clients\n test = navigator.userAgent.match(/iPad/i) != null;\n }\n\n return test;\n },\n\n /**\n * Checks whether current device is desktop.\n * @returns {boolean}\n */\n isDesktopDevice: function() {\n return KTUtil.isMobileDevice() ? false : true;\n },\n\n /**\n * Gets browser window viewport size. Ref:\n * http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/\n * @returns {object}\n */\n getViewPort: function() {\n var e = window,\n a = 'inner';\n if (!('innerWidth' in window)) {\n a = 'client';\n e = document.documentElement || document.body;\n }\n\n return {\n width: e[a + 'Width'],\n height: e[a + 'Height'],\n };\n },\n\n /**\n * Checks whether given device mode is currently activated.\n * @param {string} mode Responsive mode name(e.g: desktop,\n * desktop-and-tablet, tablet, tablet-and-mobile, mobile)\n * @returns {boolean}\n */\n isInResponsiveRange: function(mode) {\n var breakpoint = this.getViewPort().width;\n\n if (mode == 'general') {\n return true;\n } else if (\n mode == 'desktop' &&\n breakpoint >= this.getBreakpoint('lg') + 1\n ) {\n return true;\n } else if (\n mode == 'tablet' &&\n breakpoint >= this.getBreakpoint('md') + 1 &&\n breakpoint < this.getBreakpoint('lg')\n ) {\n return true;\n } else if (mode == 'mobile' && breakpoint <= this.getBreakpoint('md')) {\n return true;\n } else if (\n mode == 'desktop-and-tablet' &&\n breakpoint >= this.getBreakpoint('md') + 1\n ) {\n return true;\n } else if (\n mode == 'tablet-and-mobile' &&\n breakpoint <= this.getBreakpoint('lg')\n ) {\n return true;\n } else if (\n mode == 'minimal-desktop-and-below' &&\n breakpoint <= this.getBreakpoint('xl')\n ) {\n return true;\n }\n\n return false;\n },\n\n /**\n * Checks whether given device mode is currently activated.\n * @param {string} mode Responsive mode name(e.g: desktop,\n * desktop-and-tablet, tablet, tablet-and-mobile, mobile)\n * @returns {boolean}\n */\n isBreakpointUp: function(mode) {\n var width = this.getViewPort().width;\n var breakpoint = this.getBreakpoint(mode);\n\n return width >= breakpoint;\n },\n\n isBreakpointDown: function(mode) {\n var width = this.getViewPort().width;\n var breakpoint = this.getBreakpoint(mode);\n\n return width < breakpoint;\n },\n\n /**\n * Generates unique ID for give prefix.\n * @param {string} prefix Prefix for generated ID\n * @returns {boolean}\n */\n getUniqueID: function(prefix) {\n return prefix + Math.floor(Math.random() * new Date().getTime());\n },\n\n /**\n * Gets window width for give breakpoint mode.\n * @param {string} mode Responsive mode name(e.g: xl, lg, md, sm)\n * @returns {number}\n */\n getBreakpoint: function(mode) {\n return breakpoints[mode];\n },\n\n /**\n * Checks whether object has property matchs given key path.\n * @param {object} obj Object contains values paired with given key path\n * @param {string} keys Keys path seperated with dots\n * @returns {object}\n */\n isset: function(obj, keys) {\n var stone;\n\n keys = keys || '';\n\n if (keys.indexOf('[') !== -1) {\n throw new Error('Unsupported object path notation.');\n }\n\n keys = keys.split('.');\n\n do {\n if (obj === undefined) {\n return false;\n }\n\n stone = keys.shift();\n\n if (!obj.hasOwnProperty(stone)) {\n return false;\n }\n\n obj = obj[stone];\n } while (keys.length);\n\n return true;\n },\n\n /**\n * Gets highest z-index of the given element parents\n * @param {object} el jQuery element object\n * @returns {number}\n */\n getHighestZindex: function(el) {\n var position, value;\n\n while (el && el !== document) {\n // Ignore z-index if position is set to a value where z-index is ignored by the browser\n // This makes behavior of this function consistent across browsers\n // WebKit always returns auto if the element is positioned\n position = KTUtil.css(el, 'position');\n\n if (\n position === 'absolute' ||\n position === 'relative' ||\n position === 'fixed'\n ) {\n // IE returns 0 when zIndex is not specified\n // other browsers return a string\n // we ignore the case of nested elements with an explicit value of 0\n //
\n value = parseInt(KTUtil.css(el, 'z-index'));\n\n if (!isNaN(value) && value !== 0) {\n return value;\n }\n }\n\n el = el.parentNode;\n }\n\n return null;\n },\n\n /**\n * Checks whether the element has any parent with fixed positionfreg\n * @param {object} el jQuery element object\n * @returns {boolean}\n */\n hasFixedPositionedParent: function(el) {\n var position;\n\n while (el && el !== document) {\n position = KTUtil.css(el, 'position');\n\n if (position === 'fixed') {\n return true;\n }\n\n el = el.parentNode;\n }\n\n return false;\n },\n\n /**\n * Simulates delay\n */\n sleep: function(milliseconds) {\n var start = new Date().getTime();\n for (var i = 0; i < 1e7; i++) {\n if (new Date().getTime() - start > milliseconds) {\n break;\n }\n }\n },\n\n /**\n * Gets randomly generated integer value within given min and max range\n * @param {number} min Range start value\n * @param {number} max Range end value\n * @returns {number}\n */\n getRandomInt: function(min, max) {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n },\n\n /**\n * Checks whether Angular library is included\n * @returns {boolean}\n */\n isAngularVersion: function() {\n return window.Zone !== undefined ? true : false;\n },\n\n // Deep extend: $.extend(true, {}, objA, objB);\n deepExtend: function(out) {\n out = out || {};\n\n for (var i = 1; i < arguments.length; i++) {\n var obj = arguments[i];\n if (!obj) continue;\n\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) {\n continue;\n }\n\n // based on https://javascriptweblog.wordpress.com/2011/08/08/fixing-the-javascript-typeof-operator/\n if (Object.prototype.toString.call(obj[key]) === '[object Object]') {\n out[key] = KTUtil.deepExtend(out[key], obj[key]);\n continue;\n }\n\n out[key] = obj[key];\n }\n }\n\n return out;\n },\n\n // extend: $.extend({}, objA, objB);\n extend: function(out) {\n out = out || {};\n\n for (var i = 1; i < arguments.length; i++) {\n if (!arguments[i]) continue;\n\n for (var key in arguments[i]) {\n if (arguments[i].hasOwnProperty(key)) out[key] = arguments[i][key];\n }\n }\n\n return out;\n },\n\n getById: function(el) {\n if (typeof el === 'string') {\n return document.getElementById(el);\n } else {\n return el;\n }\n },\n\n getByTag: function(query) {\n return document.getElementsByTagName(query);\n },\n\n getByTagName: function(query) {\n return document.getElementsByTagName(query);\n },\n\n getByClass: function(query) {\n return document.getElementsByClassName(query);\n },\n\n getBody: function() {\n return document.getElementsByTagName('body')[0];\n },\n\n /**\n * Checks whether the element has given classes\n * @param {object} el jQuery element object\n * @param {string} Classes string\n * @returns {boolean}\n */\n hasClasses: function(el, classes) {\n if (!el) {\n return;\n }\n\n var classesArr = classes.split(' ');\n\n for (var i = 0; i < classesArr.length; i++) {\n if (KTUtil.hasClass(el, KTUtil.trim(classesArr[i])) == false) {\n return false;\n }\n }\n\n return true;\n },\n\n hasClass: function(el, className) {\n if (!el) {\n return;\n }\n\n return el.classList\n ? el.classList.contains(className)\n : new RegExp('\\\\b' + className + '\\\\b').test(el.className);\n },\n\n addClass: function(el, className) {\n if (!el || typeof className === 'undefined') {\n return;\n }\n\n var classNames = className.split(' ');\n\n if (el.classList) {\n for (var i = 0; i < classNames.length; i++) {\n if (classNames[i] && classNames[i].length > 0) {\n el.classList.add(KTUtil.trim(classNames[i]));\n }\n }\n } else if (!KTUtil.hasClass(el, className)) {\n for (var x = 0; x < classNames.length; x++) {\n el.className += ' ' + KTUtil.trim(classNames[x]);\n }\n }\n },\n\n removeClass: function(el, className) {\n if (!el || typeof className === 'undefined') {\n return;\n }\n\n var classNames = className.split(' ');\n\n if (el.classList) {\n for (var i = 0; i < classNames.length; i++) {\n el.classList.remove(KTUtil.trim(classNames[i]));\n }\n } else if (KTUtil.hasClass(el, className)) {\n for (var x = 0; x < classNames.length; x++) {\n el.className = el.className.replace(\n new RegExp('\\\\b' + KTUtil.trim(classNames[x]) + '\\\\b', 'g'),\n '',\n );\n }\n }\n },\n\n triggerCustomEvent: function(el, eventName, data) {\n var event;\n if (window.CustomEvent) {\n event = new CustomEvent(eventName, {\n detail: data,\n });\n } else {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(eventName, true, true, data);\n }\n\n el.dispatchEvent(event);\n },\n\n triggerEvent: function(node, eventName) {\n // Make sure we use the ownerDocument from the provided node to avoid cross-window problems\n var doc;\n if (node.ownerDocument) {\n doc = node.ownerDocument;\n } else if (node.nodeType == 9) {\n // the node may be the document itself, nodeType 9 = DOCUMENT_NODE\n doc = node;\n } else {\n throw new Error('Invalid node passed to fireEvent: ' + node.id);\n }\n\n if (node.dispatchEvent) {\n // Gecko-style approach (now the standard) takes more work\n var eventClass = '';\n\n // Different events have different event classes.\n // If this switch statement can't map an eventName to an eventClass,\n // the event firing is going to fail.\n switch (eventName) {\n case 'click': // Dispatching of 'click' appears to not work correctly in Safari. Use 'mousedown' or 'mouseup' instead.\n case 'mouseenter':\n case 'mouseleave':\n case 'mousedown':\n case 'mouseup':\n eventClass = 'MouseEvents';\n break;\n\n case 'focus':\n case 'change':\n case 'blur':\n case 'select':\n eventClass = 'HTMLEvents';\n break;\n\n default:\n throw \"fireEvent: Couldn't find an event class for event '\" +\n eventName +\n \"'.\";\n break;\n }\n var event = doc.createEvent(eventClass);\n\n var bubbles = eventName == 'change' ? false : true;\n event.initEvent(eventName, bubbles, true); // All events created as bubbling and cancelable.\n\n event.synthetic = true; // allow detection of synthetic events\n // The second parameter says go ahead with the default action\n node.dispatchEvent(event, true);\n } else if (node.fireEvent) {\n // IE-old school style\n var event = doc.createEventObject();\n event.synthetic = true; // allow detection of synthetic events\n node.fireEvent('on' + eventName, event);\n }\n },\n\n index: function(el) {\n var c = el.parentNode.children,\n i = 0;\n for (; i < c.length; i++) if (c[i] == el) return i;\n },\n\n trim: function(string) {\n return string.trim();\n },\n\n eventTriggered: function(e) {\n if (e.currentTarget.dataset.triggered) {\n return true;\n } else {\n e.currentTarget.dataset.triggered = true;\n\n return false;\n }\n },\n\n remove: function(el) {\n if (el && el.parentNode) {\n el.parentNode.removeChild(el);\n }\n },\n\n find: function(parent, query) {\n parent = KTUtil.getById(parent);\n if (parent) {\n return parent.querySelector(query);\n }\n },\n\n findAll: function(parent, query) {\n parent = KTUtil.getById(parent);\n if (parent) {\n return parent.querySelectorAll(query);\n }\n },\n\n insertAfter: function(el, referenceNode) {\n return referenceNode.parentNode.insertBefore(\n el,\n referenceNode.nextSibling,\n );\n },\n\n parents: function(elem, selector) {\n // Element.matches() polyfill\n if (!Element.prototype.matches) {\n Element.prototype.matches =\n Element.prototype.matchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.oMatchesSelector ||\n Element.prototype.webkitMatchesSelector ||\n function(s) {\n var matches = (\n this.document || this.ownerDocument\n ).querySelectorAll(s),\n i = matches.length;\n while (--i >= 0 && matches.item(i) !== this) {}\n return i > -1;\n };\n }\n\n // Set up a parent array\n var parents = [];\n\n // Push each parent element to the array\n for (; elem && elem !== document; elem = elem.parentNode) {\n if (selector) {\n if (elem.matches(selector)) {\n parents.push(elem);\n }\n continue;\n }\n parents.push(elem);\n }\n\n // Return our parent array\n return parents;\n },\n\n children: function(el, selector, log) {\n if (!el || !el.childNodes) {\n return;\n }\n\n var result = [],\n i = 0,\n l = el.childNodes.length;\n\n for (var i; i < l; ++i) {\n if (\n el.childNodes[i].nodeType == 1 &&\n KTUtil.matches(el.childNodes[i], selector, log)\n ) {\n result.push(el.childNodes[i]);\n }\n }\n\n return result;\n },\n\n child: function(el, selector, log) {\n var children = KTUtil.children(el, selector, log);\n\n return children ? children[0] : null;\n },\n\n matches: function(el, selector, log) {\n var p = Element.prototype;\n var f =\n p.matches ||\n p.webkitMatchesSelector ||\n p.mozMatchesSelector ||\n p.msMatchesSelector ||\n function(s) {\n return [].indexOf.call(document.querySelectorAll(s), this) !== -1;\n };\n\n if (el && el.tagName) {\n return f.call(el, selector);\n } else {\n return false;\n }\n },\n\n data: function(el) {\n return {\n set: function(name, data) {\n if (!el) {\n return;\n }\n\n if (el.customDataTag === undefined) {\n window.KTUtilElementDataStoreID++;\n el.customDataTag = window.KTUtilElementDataStoreID;\n }\n\n if (window.KTUtilElementDataStore[el.customDataTag] === undefined) {\n window.KTUtilElementDataStore[el.customDataTag] = {};\n }\n\n window.KTUtilElementDataStore[el.customDataTag][name] = data;\n },\n\n get: function(name) {\n if (!el) {\n return;\n }\n\n if (el.customDataTag === undefined) {\n return null;\n }\n\n return this.has(name)\n ? window.KTUtilElementDataStore[el.customDataTag][name]\n : null;\n },\n\n has: function(name) {\n if (!el) {\n return false;\n }\n\n if (el.customDataTag === undefined) {\n return false;\n }\n\n return window.KTUtilElementDataStore[el.customDataTag] &&\n window.KTUtilElementDataStore[el.customDataTag][name]\n ? true\n : false;\n },\n\n remove: function(name) {\n if (el && this.has(name)) {\n delete window.KTUtilElementDataStore[el.customDataTag][name];\n }\n },\n };\n },\n\n outerWidth: function(el, margin) {\n var width;\n\n if (margin === true) {\n width = parseFloat(el.offsetWidth);\n width +=\n parseFloat(KTUtil.css(el, 'margin-left')) +\n parseFloat(KTUtil.css(el, 'margin-right'));\n\n return parseFloat(width);\n } else {\n width = parseFloat(el.offsetWidth);\n\n return width;\n }\n },\n\n offset: function(el) {\n var rect, win;\n\n if (!el) {\n return;\n }\n\n // Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n // Support: IE <=11 only\n // Running getBoundingClientRect on a\n // disconnected node in IE throws an error\n\n if (!el.getClientRects().length) {\n return { top: 0, left: 0 };\n }\n\n // Get document-relative position by adding viewport scroll to viewport-relative gBCR\n rect = el.getBoundingClientRect();\n win = el.ownerDocument.defaultView;\n\n return {\n top: rect.top + win.pageYOffset,\n left: rect.left + win.pageXOffset,\n };\n },\n\n height: function(el) {\n return KTUtil.css(el, 'height');\n },\n\n outerHeight: function(el, withMargin) {\n var height = el.offsetHeight;\n var style;\n\n if (typeof withMargin !== 'undefined' && withMargin === true) {\n style = getComputedStyle(el);\n height += parseInt(style.marginTop) + parseInt(style.marginBottom);\n\n return height;\n } else {\n return height;\n }\n },\n\n visible: function(el) {\n return !(el.offsetWidth === 0 && el.offsetHeight === 0);\n },\n\n attr: function(el, name, value) {\n if (el == undefined) {\n return;\n }\n\n if (value !== undefined) {\n el.setAttribute(name, value);\n } else {\n return el.getAttribute(name);\n }\n },\n\n hasAttr: function(el, name) {\n if (el == undefined) {\n return;\n }\n\n return el.getAttribute(name) ? true : false;\n },\n\n removeAttr: function(el, name) {\n if (el == undefined) {\n return;\n }\n\n el.removeAttribute(name);\n },\n\n animate: function(from, to, duration, update, easing, done) {\n /**\n * TinyAnimate.easings\n * Adapted from jQuery Easing\n */\n var easings = {};\n var easing;\n\n easings.linear = function(t, b, c, d) {\n return (c * t) / d + b;\n };\n\n easing = easings.linear;\n\n // Early bail out if called incorrectly\n if (\n typeof from !== 'number' ||\n typeof to !== 'number' ||\n typeof duration !== 'number' ||\n typeof update !== 'function'\n ) {\n return;\n }\n\n // Create mock done() function if necessary\n if (typeof done !== 'function') {\n done = function() {};\n }\n\n // Pick implementation (requestAnimationFrame | setTimeout)\n var rAF =\n window.requestAnimationFrame ||\n function(callback) {\n window.setTimeout(callback, 1000 / 50);\n };\n\n // Animation loop\n var canceled = false;\n var change = to - from;\n\n function loop(timestamp) {\n var time = (timestamp || +new Date()) - start;\n\n if (time >= 0) {\n update(easing(time, from, change, duration));\n }\n if (time >= 0 && time >= duration) {\n update(to);\n done();\n } else {\n rAF(loop);\n }\n }\n\n update(from);\n\n // Start animation loop\n var start =\n window.performance && window.performance.now\n ? window.performance.now()\n : +new Date();\n\n rAF(loop);\n },\n\n actualCss: function(el, prop, cache) {\n var css = '';\n\n if (el instanceof HTMLElement === false) {\n return;\n }\n\n if (!el.getAttribute('kt-hidden-' + prop) || cache === false) {\n var value;\n\n // the element is hidden so:\n // making the el block so we can meassure its height but still be hidden\n css = el.style.cssText;\n el.style.cssText =\n 'position: absolute; visibility: hidden; display: block;';\n\n if (prop == 'width') {\n value = el.offsetWidth;\n } else if (prop == 'height') {\n value = el.offsetHeight;\n }\n\n el.style.cssText = css;\n\n // store it in cache\n el.setAttribute('kt-hidden-' + prop, value);\n\n return parseFloat(value);\n } else {\n // store it in cache\n return parseFloat(el.getAttribute('kt-hidden-' + prop));\n }\n },\n\n actualHeight: function(el, cache) {\n return KTUtil.actualCss(el, 'height', cache);\n },\n\n actualWidth: function(el, cache) {\n return KTUtil.actualCss(el, 'width', cache);\n },\n\n getScroll: function(element, method) {\n // The passed in `method` value should be 'Top' or 'Left'\n method = 'scroll' + method;\n return element == window || element == document\n ? self[method == 'scrollTop' ? 'pageYOffset' : 'pageXOffset'] ||\n (browserSupportsBoxModel && document.documentElement[method]) ||\n document.body[method]\n : element[method];\n },\n\n css: function(el, styleProp, value) {\n if (!el) {\n return;\n }\n\n if (value !== undefined) {\n el.style[styleProp] = value;\n } else {\n var defaultView = (el.ownerDocument || document).defaultView;\n // W3C standard way:\n if (defaultView && defaultView.getComputedStyle) {\n // sanitize property name to css notation\n // (hyphen separated words eg. font-Size)\n styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase();\n return defaultView\n .getComputedStyle(el, null)\n .getPropertyValue(styleProp);\n } else if (el.currentStyle) {\n // IE\n // sanitize property name to camelCase\n styleProp = styleProp.replace(/\\-(\\w)/g, function(str, letter) {\n return letter.toUpperCase();\n });\n value = el.currentStyle[styleProp];\n // convert other units to pixels on IE\n if (/^\\d+(em|pt|%|ex)?$/i.test(value)) {\n return (function(value) {\n var oldLeft = el.style.left,\n oldRsLeft = el.runtimeStyle.left;\n el.runtimeStyle.left = el.currentStyle.left;\n el.style.left = value || 0;\n value = el.style.pixelLeft + 'px';\n el.style.left = oldLeft;\n el.runtimeStyle.left = oldRsLeft;\n return value;\n })(value);\n }\n return value;\n }\n }\n },\n\n slide: function(el, dir, speed, callback, recalcMaxHeight) {\n if (\n !el ||\n (dir == 'up' && KTUtil.visible(el) === false) ||\n (dir == 'down' && KTUtil.visible(el) === true)\n ) {\n return;\n }\n\n speed = speed ? speed : 600;\n var calcHeight = KTUtil.actualHeight(el);\n var calcPaddingTop = false;\n var calcPaddingBottom = false;\n\n if (\n KTUtil.css(el, 'padding-top') &&\n KTUtil.data(el).has('slide-padding-top') !== true\n ) {\n KTUtil.data(el).set('slide-padding-top', KTUtil.css(el, 'padding-top'));\n }\n\n if (\n KTUtil.css(el, 'padding-bottom') &&\n KTUtil.data(el).has('slide-padding-bottom') !== true\n ) {\n KTUtil.data(el).set(\n 'slide-padding-bottom',\n KTUtil.css(el, 'padding-bottom'),\n );\n }\n\n if (KTUtil.data(el).has('slide-padding-top')) {\n calcPaddingTop = parseInt(KTUtil.data(el).get('slide-padding-top'));\n }\n\n if (KTUtil.data(el).has('slide-padding-bottom')) {\n calcPaddingBottom = parseInt(\n KTUtil.data(el).get('slide-padding-bottom'),\n );\n }\n\n if (dir == 'up') {\n // up\n el.style.cssText = 'display: block; overflow: hidden;';\n\n if (calcPaddingTop) {\n KTUtil.animate(\n 0,\n calcPaddingTop,\n speed,\n function(value) {\n el.style.paddingTop = calcPaddingTop - value + 'px';\n },\n 'linear',\n );\n }\n\n if (calcPaddingBottom) {\n KTUtil.animate(\n 0,\n calcPaddingBottom,\n speed,\n function(value) {\n el.style.paddingBottom = calcPaddingBottom - value + 'px';\n },\n 'linear',\n );\n }\n\n KTUtil.animate(\n 0,\n calcHeight,\n speed,\n function(value) {\n el.style.height = calcHeight - value + 'px';\n },\n 'linear',\n function() {\n el.style.height = '';\n el.style.display = 'none';\n\n if (typeof callback === 'function') {\n callback();\n }\n },\n );\n } else if (dir == 'down') {\n // down\n el.style.cssText = 'display: block; overflow: hidden;';\n\n if (calcPaddingTop) {\n KTUtil.animate(\n 0,\n calcPaddingTop,\n speed,\n function(value) {\n //\n el.style.paddingTop = value + 'px';\n },\n 'linear',\n function() {\n el.style.paddingTop = '';\n },\n );\n }\n\n if (calcPaddingBottom) {\n KTUtil.animate(\n 0,\n calcPaddingBottom,\n speed,\n function(value) {\n el.style.paddingBottom = value + 'px';\n },\n 'linear',\n function() {\n el.style.paddingBottom = '';\n },\n );\n }\n\n KTUtil.animate(\n 0,\n calcHeight,\n speed,\n function(value) {\n el.style.height = value + 'px';\n },\n 'linear',\n function() {\n el.style.height = '';\n el.style.display = '';\n el.style.overflow = '';\n\n if (typeof callback === 'function') {\n callback();\n }\n },\n );\n }\n },\n\n slideUp: function(el, speed, callback) {\n KTUtil.slide(el, 'up', speed, callback);\n },\n\n slideDown: function(el, speed, callback) {\n KTUtil.slide(el, 'down', speed, callback);\n },\n\n show: function(el, display) {\n if (typeof el !== 'undefined') {\n el.style.display = display ? display : 'block';\n }\n },\n\n hide: function(el) {\n if (typeof el !== 'undefined') {\n el.style.display = 'none';\n }\n },\n\n addEvent: function(el, type, handler, one) {\n if (typeof el !== 'undefined' && el !== null) {\n el.addEventListener(type, handler);\n }\n },\n\n removeEvent: function(el, type, handler) {\n if (el !== null) {\n el.removeEventListener(type, handler);\n }\n },\n\n on: function(element, selector, event, handler) {\n if (!selector) {\n return;\n }\n\n var eventId = KTUtil.getUniqueID('event');\n\n window.KTUtilDelegatedEventHandlers[eventId] = function(e) {\n var targets = element.querySelectorAll(selector);\n var target = e.target;\n\n while (target && target !== element) {\n for (var i = 0, j = targets.length; i < j; i++) {\n if (target === targets[i]) {\n handler.call(target, e);\n }\n }\n\n target = target.parentNode;\n }\n };\n\n KTUtil.addEvent(\n element,\n event,\n window.KTUtilDelegatedEventHandlers[eventId],\n );\n\n return eventId;\n },\n\n off: function(element, event, eventId) {\n if (!element || !window.KTUtilDelegatedEventHandlers[eventId]) {\n return;\n }\n\n KTUtil.removeEvent(\n element,\n event,\n window.KTUtilDelegatedEventHandlers[eventId],\n );\n\n delete window.KTUtilDelegatedEventHandlers[eventId];\n },\n\n one: function onetime(el, type, callback) {\n el.addEventListener(type, function callee(e) {\n // remove event\n if (e.target && e.target.removeEventListener) {\n e.target.removeEventListener(e.type, callee);\n }\n\n // need to verify from https://themeforest.net/author_dashboard#comment_23615588\n if (el && el.removeEventListener) {\n e.currentTarget.removeEventListener(e.type, callee);\n }\n\n // call handler\n return callback(e);\n });\n },\n\n hash: function(str) {\n var hash = 0,\n i,\n chr;\n\n if (str.length === 0) return hash;\n for (i = 0; i < str.length; i++) {\n chr = str.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0; // Convert to 32bit integer\n }\n\n return hash;\n },\n\n animateClass: function(el, animationName, callback) {\n var animation;\n var animations = {\n animation: 'animationend',\n OAnimation: 'oAnimationEnd',\n MozAnimation: 'mozAnimationEnd',\n WebkitAnimation: 'webkitAnimationEnd',\n msAnimation: 'msAnimationEnd',\n };\n\n for (var t in animations) {\n if (el.style[t] !== undefined) {\n animation = animations[t];\n }\n }\n\n KTUtil.addClass(el, 'animated ' + animationName);\n\n KTUtil.one(el, animation, function() {\n KTUtil.removeClass(el, 'animated ' + animationName);\n });\n\n if (callback) {\n KTUtil.one(el, animation, callback);\n }\n },\n\n transitionEnd: function(el, callback) {\n var transition;\n var transitions = {\n transition: 'transitionend',\n OTransition: 'oTransitionEnd',\n MozTransition: 'mozTransitionEnd',\n WebkitTransition: 'webkitTransitionEnd',\n msTransition: 'msTransitionEnd',\n };\n\n for (var t in transitions) {\n if (el.style[t] !== undefined) {\n transition = transitions[t];\n }\n }\n\n KTUtil.one(el, transition, callback);\n },\n\n animationEnd: function(el, callback) {\n var animation;\n var animations = {\n animation: 'animationend',\n OAnimation: 'oAnimationEnd',\n MozAnimation: 'mozAnimationEnd',\n WebkitAnimation: 'webkitAnimationEnd',\n msAnimation: 'msAnimationEnd',\n };\n\n for (var t in animations) {\n if (el.style[t] !== undefined) {\n animation = animations[t];\n }\n }\n\n KTUtil.one(el, animation, callback);\n },\n\n animateDelay: function(el, value) {\n var vendors = ['webkit-', 'moz-', 'ms-', 'o-', ''];\n for (var i = 0; i < vendors.length; i++) {\n KTUtil.css(el, vendors[i] + 'animation-delay', value);\n }\n },\n\n animateDuration: function(el, value) {\n var vendors = ['webkit-', 'moz-', 'ms-', 'o-', ''];\n for (var i = 0; i < vendors.length; i++) {\n KTUtil.css(el, vendors[i] + 'animation-duration', value);\n }\n },\n\n scrollTo: function(target, offset, duration) {\n var duration = duration ? duration : 500;\n var targetPos = target ? KTUtil.offset(target).top : 0;\n var scrollPos =\n window.pageYOffset ||\n document.documentElement.scrollTop ||\n document.body.scrollTop ||\n 0;\n var from, to;\n\n if (offset) {\n scrollPos += offset;\n }\n\n from = scrollPos;\n to = targetPos;\n\n KTUtil.animate(from, to, duration, function(value) {\n document.documentElement.scrollTop = value;\n document.body.parentNode.scrollTop = value;\n document.body.scrollTop = value;\n }); //, easing, done\n },\n\n scrollTop: function(offset, duration) {\n KTUtil.scrollTo(null, offset, duration);\n },\n\n isArray: function(obj) {\n return obj && Array.isArray(obj);\n },\n\n ready: function(callback) {\n if (\n document.attachEvent\n ? document.readyState === 'complete'\n : document.readyState !== 'loading'\n ) {\n callback();\n } else {\n document.addEventListener('DOMContentLoaded', callback);\n }\n },\n\n isEmpty: function(obj) {\n for (var prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n return false;\n }\n }\n\n return true;\n },\n\n numberString: function(nStr) {\n nStr += '';\n var x = nStr.split('.');\n var x1 = x[0];\n var x2 = x.length > 1 ? '.' + x[1] : '';\n var rgx = /(\\d+)(\\d{3})/;\n while (rgx.test(x1)) {\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\n }\n return x1 + x2;\n },\n\n detectIE: function() {\n var ua = window.navigator.userAgent;\n\n // Test values; Uncomment to check result …\n\n // IE 10\n // ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';\n\n // IE 11\n // ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';\n\n // Edge 12 (Spartan)\n // ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0';\n\n // Edge 13\n // ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586';\n\n var msie = ua.indexOf('MSIE ');\n if (msie > 0) {\n // IE 10 or older => return version number\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n }\n\n var trident = ua.indexOf('Trident/');\n if (trident > 0) {\n // IE 11 => return version number\n var rv = ua.indexOf('rv:');\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n }\n\n var edge = ua.indexOf('Edge/');\n if (edge > 0) {\n // Edge (IE 12+) => return version number\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n }\n\n // other browser\n return false;\n },\n\n isRTL: function() {\n var html = KTUtil.getByTagName('html')[0];\n\n if (html) {\n return KTUtil.attr(html, 'direction') == 'rtl';\n }\n },\n\n // Scroller\n scrollInit: function(element, options) {\n if (!element) {\n return;\n }\n\n // Learn more: https://github.com/mdbootstrap/perfect-scrollbar#options\n var pluginDefOptions = {\n wheelSpeed: 0.5,\n swipeEasing: true,\n wheelPropagation: false,\n minScrollbarLength: 40,\n maxScrollbarLength: 300,\n suppressScrollX: true,\n };\n\n options = KTUtil.deepExtend({}, pluginDefOptions, options);\n\n // Define init function\n function init() {\n var ps;\n var height;\n\n // Get extra options via data attributes\n var attrs = element.getAttributeNames();\n if (attrs.length > 0) {\n attrs.forEach(function(attrName) {\n // more options; https://github.com/ganlanyuan/tiny-slider#options\n if (/^data-.*/g.test(attrName)) {\n if (\n ['scroll', 'height', 'mobile-height'].includes(optionName) ==\n false\n ) {\n var optionName = attrName\n .replace('data-', '')\n .toLowerCase()\n .replace(/(?:[\\s-])\\w/g, function(match) {\n return match.replace('-', '').toUpperCase();\n });\n\n options[optionName] = KTUtil.filterBoolean(\n element.getAttribute(attrName),\n );\n }\n }\n });\n }\n\n if (options.height instanceof Function) {\n height = options.height.call();\n } else {\n if (KTUtil.isMobileDevice() === true && options.mobileHeight) {\n height = parseInt(options.mobileHeight);\n } else if (options.height) {\n height = parseInt(options.height);\n } else {\n height = parseInt(KTUtil.css(element, 'height'));\n }\n }\n\n if (height === false) {\n KTUtil.scrollDestroy(element, true);\n\n return;\n }\n\n height = parseInt(height);\n\n // Destroy scroll on table and mobile modes\n if (\n (options.mobileNativeScroll || options.disableForMobile) &&\n KTUtil.isMobileDevice() === true\n ) {\n ps = KTUtil.data(element).get('ps');\n if (ps) {\n if (options.resetHeightOnDestroy) {\n KTUtil.css(element, 'height', 'auto');\n } else {\n KTUtil.css(element, 'overflow', 'auto');\n if (height > 0) {\n KTUtil.css(element, 'height', height + 'px');\n }\n }\n\n ps.destroy();\n ps = KTUtil.data(element).remove('ps');\n } else if (height > 0) {\n KTUtil.css(element, 'overflow', 'auto');\n KTUtil.css(element, 'height', height + 'px');\n }\n\n return;\n }\n\n if (height > 0) {\n KTUtil.css(element, 'height', height + 'px');\n }\n\n if (options.desktopNativeScroll) {\n KTUtil.css(element, 'overflow', 'auto');\n return;\n }\n\n // Pass options via HTML Attributes\n if (KTUtil.attr(element, 'data-window-scroll') == 'true') {\n options.windowScroll = true;\n }\n\n // Init scroll\n ps = KTUtil.data(element).get('ps');\n\n if (ps) {\n ps.update();\n } else {\n KTUtil.css(element, 'overflow', 'hidden');\n KTUtil.addClass(element, 'scroll');\n\n ps = new PerfectScrollbar(element, options);\n\n KTUtil.data(element).set('ps', ps);\n }\n\n // Remember scroll position in cookie\n var uid = KTUtil.attr(element, 'id');\n try {\n if (uid) {\n var cookie = KTCookie.getCookie(uid);\n if (options.rememberPosition === true && cookie) {\n var pos = parseInt(cookie);\n if (pos > 0) {\n element.scrollTop = pos;\n }\n element.addEventListener('ps-scroll-y', function() {\n KTCookie.setCookie(uid, element.scrollTop, {});\n });\n }\n }\n } catch (e) {\n console.error(e);\n }\n\n // Todo:Consider using Localstorage\n if (options.rememberPosition === true && KTCookie && uid) {\n if (KTCookie.getCookie(uid)) {\n var pos = parseInt(KTCookie.getCookie(uid));\n\n if (pos > 0) {\n element.scrollTop = pos;\n }\n }\n\n element.addEventListener('ps-scroll-y', function() {\n KTCookie.setCookie(uid, element.scrollTop);\n });\n }\n }\n\n // Init\n init();\n\n // Handle window resize\n if (options.handleWindowResize) {\n KTUtil.addResizeHandler(function() {\n init();\n });\n }\n },\n\n scrollUpdate: function(element) {\n var ps = KTUtil.data(element).get('ps');\n if (ps) {\n ps.update();\n }\n },\n\n scrollUpdateAll: function(parent) {\n var scrollers = KTUtil.findAll(parent, '.ps');\n for (var i = 0, len = scrollers.length; i < len; i++) {\n KTUtil.scrollUpdate(scrollers[i]);\n }\n },\n\n scrollDestroy: function(element, resetAll) {\n var ps = KTUtil.data(element).get('ps');\n\n if (ps) {\n ps.destroy();\n ps = KTUtil.data(element).remove('ps');\n }\n\n if (element && resetAll) {\n element.style.setProperty('overflow', '');\n element.style.setProperty('height', '');\n }\n },\n\n filterBoolean: function(val) {\n // Convert string boolean\n if (val === true || val === 'true') {\n return true;\n }\n\n if (val === false || val === 'false') {\n return false;\n }\n\n return val;\n },\n\n setHTML: function(el, html) {\n el.innerHTML = html;\n },\n\n getHTML: function(el) {\n if (el) {\n return el.innerHTML;\n }\n },\n\n getDocumentHeight: function() {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(\n body.scrollHeight,\n body.offsetHeight,\n html.clientHeight,\n html.scrollHeight,\n html.offsetHeight,\n );\n },\n\n getScrollTop: function() {\n return (document.scrollingElement || document.documentElement).scrollTop;\n },\n\n changeColor: function(col, amt) {\n var usePound = false;\n\n if (col[0] == '#') {\n col = col.slice(1);\n usePound = true;\n }\n\n var num = parseInt(col, 16);\n\n var r = (num >> 16) + amt;\n\n if (r > 255) r = 255;\n else if (r < 0) r = 0;\n\n var b = ((num >> 8) & 0x00ff) + amt;\n\n if (b > 255) b = 255;\n else if (b < 0) b = 0;\n\n var g = (num & 0x0000ff) + amt;\n\n if (g > 255) g = 255;\n else if (g < 0) g = 0;\n\n return (usePound ? '#' : '') + (g | (b << 8) | (r << 16)).toString(16);\n },\n\n // Throttle function: Input as function which needs to be throttled and delay is the time interval in milliseconds\n throttle: function(timer, func, delay) {\n // If setTimeout is already scheduled, no need to do anything\n if (timer) {\n return;\n }\n\n // Schedule a setTimeout after delay seconds\n timer = setTimeout(function() {\n func();\n\n // Once setTimeout function execution is finished, timerId = undefined so that in
\n // the next scroll event function execution can be scheduled by the setTimeout\n timer = undefined;\n }, delay);\n },\n\n // Debounce function: Input as function which needs to be debounced and delay is the debounced time in milliseconds\n debounce: function(timer, func, delay) {\n // Cancels the setTimeout method execution\n clearTimeout(timer);\n\n // Executes the func after delay time.\n timer = setTimeout(func, delay);\n },\n\n btnWait: function(el, cls, message, disable) {\n if (!el) {\n return;\n }\n\n if (typeof disable !== 'undefined' && disable === true) {\n KTUtil.attr(el, 'disabled', true);\n }\n\n if (cls) {\n KTUtil.addClass(el, cls);\n KTUtil.attr(el, 'wait-class', cls);\n }\n\n if (message) {\n var caption = KTUtil.find(el, '.btn-caption');\n\n if (caption) {\n KTUtil.data(caption).set('caption', KTUtil.getHTML(caption));\n KTUtil.setHTML(caption, message);\n } else {\n KTUtil.data(el).set('caption', KTUtil.getHTML(el));\n KTUtil.setHTML(el, message);\n }\n }\n },\n\n btnRelease: function(el) {\n if (!el) {\n return;\n }\n\n /// Show loading state on button\n KTUtil.removeAttr(el, 'disabled');\n\n if (KTUtil.hasAttr(el, 'wait-class')) {\n KTUtil.removeClass(el, KTUtil.attr(el, 'wait-class'));\n }\n\n var caption = KTUtil.find(el, '.btn-caption');\n\n if (caption && KTUtil.data(caption).has('caption')) {\n KTUtil.setHTML(caption, KTUtil.data(caption).get('caption'));\n } else if (KTUtil.data(el).has('caption')) {\n KTUtil.setHTML(el, KTUtil.data(el).get('caption'));\n }\n },\n\n isOffscreen: function(el, direction, offset) {\n offset = offset || 0;\n\n var windowWidth = KTUtil.getViewPort().width;\n var windowHeight = KTUtil.getViewPort().height;\n\n var top = KTUtil.offset(el).top;\n var height = KTUtil.outerHeight(el) + offset;\n var left = KTUtil.offset(el).left;\n var width = KTUtil.outerWidth(el) + offset;\n\n if (direction == 'bottom') {\n if (windowHeight < top + height) {\n return true;\n } else if (windowHeight > top + height * 1.5) {\n return true;\n }\n }\n\n if (direction == 'top') {\n if (top < 0) {\n return true;\n } else if (top > height) {\n return true;\n }\n }\n\n if (direction == 'left') {\n if (left < 0) {\n return true;\n } else if (left * 2 > width) {\n //console.log('left 2');\n //return true;\n }\n }\n\n if (direction == 'right') {\n if (windowWidth < left + width) {\n return true;\n } else {\n //console.log('right 2');\n //return true;\n }\n }\n\n return false;\n },\n };\n})();\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n // module.exports = KTUtil;\n}\n\n// Initialize KTUtil class on document ready\nKTUtil.ready(function() {\n if (typeof KTAppSettings !== 'undefined') {\n KTUtil.init(KTAppSettings);\n } else {\n KTUtil.init();\n }\n});\n\n// CSS3 Transitions only after page load(.page-loading class added to body tag and remove with JS on page load)\nwindow.onload = function() {\n var result = KTUtil.getByTagName('body');\n if (result && result[0]) {\n KTUtil.removeClass(result[0], 'page-loading');\n }\n};\n","import { getApiUrl } from './../../src/app/configs/environment';\n\nconst backendHost = getApiUrl();\n\nexport const API_ROOT = `${backendHost}`;\n\nexport default function setupAxios(axios) {\n const sessionToken = localStorage.getItem('SToken');\n const token = JSON.parse(localStorage.getItem('auth:auth0'));\n\n axios.interceptors.request.use(\n (config) => {\n if (sessionToken) {\n config.headers.Authorization = `Basic ${sessionToken}`;\n } else if (token) {\n config.headers.Authorization = `Bearer ${token.accessToken}`;\n }\n return config;\n },\n (err) => Promise.reject(err),\n );\n axios.interceptors.response.use(\n (response) => response,\n (err) => {\n if (err.response && err.response.status === 401) {\n window.location.reload()\n }\n return Promise.reject(err);\n },\n );\n}\n","import React from 'react';\n\nexport function FieldFeedbackLabel({\n label,\n touched,\n error,\n customFeedbackLabel,\n}) {\n if (error) {\n return
{error}
;\n }\n\n if (touched && !error && label) {\n return (\n
{/*{label} was entered correct*/}
\n );\n }\n\n return (\n
\n {customFeedbackLabel}\n
\n );\n}\n","/**\n * Auth0 options.\n * test\n *\n * @see https://auth0.com/docs/libraries/lock/v11/configuration\n */\n\n import { getEnvironment, API_URL } from '../../configs/environment';\n\nconst env = getEnvironment();\n\nexport var AUTH0_CLIENT_ID = 'I57nXL1LY4387garkoi87KEOjL5htNxz';\nexport var AUTH0_DOMAIN = 'dev-3tu5gwyo.auth0.com';\nexport var AUTH0_CALLBACK_URL = window.location.origin + '/auth/callback';\nexport var AUTH0_AUDIENCE = (env !== 'production' && env !== 'local' ) ? API_URL.development : API_URL.production;\n\nexport const AUTH0_OPTIONS = {\n allowSignUp: true,\n autoclose: false,\n autofocus: true,\n closable: false,\n rememberLastLogin: false,\n language: 'pt-BR',\n allowShowPassword: true,\n languageDictionary: {\n title: 'Bem-vindo(a)',\n },\n allowForgotPassword: true,\n container: 'hiw-login-container',\n theme: {\n logo: 'https://nubo-media.s3.amazonaws.com/login-nubo-logo-1024x512.svg',\n primaryColor: '#008d8b',\n labeledSubmitButton: false,\n },\n auth: {\n redirect: true,\n redirectUrl: AUTH0_CALLBACK_URL,\n responseType: 'token id_token',\n audience: AUTH0_AUDIENCE,\n sso: false,\n params: {\n scope: 'openid profile email',\n },\n },\n mustAcceptTerms: true,\n _idTokenVerification: false,\n};\n","import styled from 'styled-components';\n\nexport const LoginContainer = styled.div`\n position: absolute;\n z-index: 1000;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n background-color: #2b3643;\n`;\n","import React, { useContext, useEffect } from 'react';\r\n\r\nimport { Consumer } from '../../context';\r\nimport { LoginContainer } from './styles';\r\n\r\nexport default function Auth0LoginPage() {\r\n const { lock } = useContext(Consumer);\r\n\r\n useEffect(() => {\r\n lock.show();\r\n }, [lock]);\r\n\r\n return (\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\n\r\nexport default function CallbackPage() {\r\n return
Redirecionando ...
;\r\n}\r\n","import { Redirect, Route, Switch } from 'react-router-dom';\r\n\r\nimport Auth0LoginPage from './LoginPage';\r\nimport CallbackPage from './CallbackPage';\r\nimport React from 'react';\r\n\r\nexport default function Auth0Page() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { Table } from 'react-bootstrap';\nimport { CardLoading } from '../../../_helpers/CardLoadingHelper';\nimport { AlarmType } from '../../../../app/modules/Core/pages/alarms/constants/alarm-types';\nimport { useHistory } from 'react-router-dom';\n\nexport const AlarmStateEnum = Object.freeze({\n SUCCESS: 'SUCCESS',\n WARNING: 'WARNING',\n DANGER: 'DANGER'\n});\n\nfunction AlarmColorFormatter(state) {\n return {\n [AlarmStateEnum.DANGER]: 'text-danger',\n [AlarmStateEnum.WARNING]: 'text-warning',\n [AlarmStateEnum.SUCCESS]: 'text-info',\n }[state] || '';\n}\n\nconst alarmDefinitions = [\n { key: 'IN_MEMORY', icon: 'fas fa-box-open fa-fw', filter_value: 3, state: AlarmStateEnum.WARNING },\n { key: 'BATTERY_LEVEL', icon: 'fas fa-battery-quarter fa-fw', filter_value: 4, state: AlarmStateEnum.DANGER },\n { key: 'CERTIFICATE_EXPIRATION', icon: 'fas fa-key fa-fw', filter_value: 6, state: AlarmStateEnum.WARNING },\n { key: 'SEFAZ_CONNECTION', icon: 'fas fa-server fa-fw', filter_value: 7, state: AlarmStateEnum.DANGER },\n { key: 'NTP_SYNC', icon: 'fas fa-key fa-fw', filter_value: 8, state: AlarmStateEnum.WARNING },\n { key: 'OP_STATUS', icon: 'fas fa-lock fa-fw', filter_value: 10, state: AlarmStateEnum.DANGER },\n { key: 'WAN_STATUS', icon: 'fas fa-ethernet fa-fw', filter_value: 13, state: AlarmStateEnum.WARNING },\n { key: 'DEVICE_OFF', icon: 'fas fa fa-hdd fa-fw', filter_value: 24, state: AlarmStateEnum.WARNING },\n { key: 'GATEWAY_OFF', icon: 'fas fa-desktop fa-fw', filter_value: 23, state: AlarmStateEnum.WARNING },\n];\n\nconst AlarmRow = ({ alarm, redirectToAlarms }) => (\n redirectToAlarms(alarm.key)} style={{ cursor: 'pointer' }}>\n \n 0 && AlarmColorFormatter(alarm.state)} ${alarm.icon || ''}`}>\n \n {alarm.total}\n {alarm.name || 'N/A'}\n \n);\n\nAlarmRow.propTypes = {\n alarm: PropTypes.shape({\n key: PropTypes.string.isRequired,\n icon: PropTypes.string,\n total: PropTypes.number.isRequired,\n name: PropTypes.string,\n state: PropTypes.string,\n }).isRequired,\n redirectToAlarms: PropTypes.func.isRequired,\n};\n\nexport function CounterEventsWidget1({ loading, className, alarms }) {\n const history = useHistory();\n\n const model = alarmDefinitions.map((alarm) => ({\n ...alarm,\n total: alarms[alarm.filter_value] || 0,\n name: AlarmType[alarm.key],\n }));\n\n const redirectToAlarms = useCallback((key) => {\n const alarm = model.find((item) => item.key === key);\n const device_type = alarm.filter_value === 23 ? 'GATEWAY' : 'SAT';\n history.push(\n `/core/alarms/new?q=${encodeURIComponent(\n JSON.stringify({\n filter: {\n device_type,\n alarm_id: alarm.filter_value,\n },\n }),\n )}`,\n );\n }, [history, model]);\n\n return (\n
\n \n
\n \n \n {model.map((alarm) => (\n \n ))}\n \n
\n
\n
\n
\n );\n}\n\nCounterEventsWidget1.propTypes = {\n loading: PropTypes.bool.isRequired,\n className: PropTypes.string,\n alarms: PropTypes.object.isRequired,\n};\n","import React from 'react';\nimport { CardLoading } from '../../../_helpers/CardLoadingHelper';\nimport { Link } from 'react-router-dom';\nimport { AlarmStateEnum } from './CounterEventsWidget1';\n\nexport function CounterAlarmsWidget1({ loading, className, value }) {\n const predefinedAlarms = [\n { alarm_config_id: 1, total: value[1] || 0, state: AlarmStateEnum.DANGER },\n { alarm_config_id: 3, total: value[3] || 0, state: AlarmStateEnum.WARNING },\n { alarm_config_id: 4, total: value[4] || 0, state: AlarmStateEnum.DANGER },\n { alarm_config_id: 6, total: value[6] || 0, state: AlarmStateEnum.WARNING },\n { alarm_config_id: 7, total: value[7] || 0, state: AlarmStateEnum.DANGER },\n { alarm_config_id: 8, total: value[8] || 0, state: AlarmStateEnum.WARNING },\n { alarm_config_id: 10, total: value[10] || 0, state: AlarmStateEnum.DANGER },\n { alarm_config_id: 13, total: value[13] || 0, state: AlarmStateEnum.WARNING },\n { alarm_config_id: 20, total: value[20] || 0, state: AlarmStateEnum.WARNING },\n { alarm_config_id: 21, total: value[21] || 0, state: AlarmStateEnum.DANGER },\n { alarm_config_id: 22, total: value[22] || 0, state: AlarmStateEnum.DANGER },\n { alarm_config_id: 23, total: value[23] || 0, state: AlarmStateEnum.DANGER },\n { alarm_config_id: 24, total: value[24] || 0, state: AlarmStateEnum.DANGER },\n ];\n\n // Extraindo IDs já mapeados\n const mappedIds = new Set(predefinedAlarms.map(alarm => alarm.alarm_config_id));\n\n // Adicionando os valores restantes como WARNING\n const additionalAlarms = Object.entries(value)\n .filter(([key]) => !mappedIds.has(Number(key))) // Filtra os que não estão mapeados\n .map(([key, total]) => ({\n alarm_config_id: Number(key),\n total: total || 0,\n state: AlarmStateEnum.WARNING,\n }));\n\n // Concatenando os alarmes definidos e adicionais\n const alarms = [...predefinedAlarms, ...additionalAlarms];\n\n const warning_total = alarms\n .filter(alarm => alarm.state === AlarmStateEnum.WARNING)\n .reduce((accumulator, alarm) => accumulator + alarm.total, 0);\n\n const danger_total = alarms\n .filter(alarm => alarm.state === AlarmStateEnum.DANGER)\n .reduce((accumulator, alarm) => accumulator + alarm.total, 0);\n\n const total = warning_total + danger_total || 0;\n\n return (\n \n \n \n
\n {total === 0 ? (\n \n ) : danger_total > 0 ? (\n \n ) : (\n \n )}\n \n {total}\n \n Alarmes\n
\n \n
\n \n );\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from 'react';\nimport { CardLoading } from '../../../_helpers/CardLoadingHelper';\nimport { Link } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport { verifyResaleOrMaster } from '../../../../utils';\nimport { Col, Row } from 'react-bootstrap';\nimport { useIsBelowBreakpoint } from '../../../../app/hooks'\n\n// Helper component for individual widget cards\nfunction WidgetCard({ to, iconClass, label, count, colLength, isSmallScreen }) {\n const widgetStyle = { marginBottom: isSmallScreen ? '2rem' : 'inherit' };\n\n return (\n \n
\n \n \n
\n {label}\n {count}\n
\n \n
\n \n );\n}\n\nexport function CounterDevicesWidget3({ loading, className, value }) {\n // Destructure values with defaults\n const {\n device_count = 0,\n gateway_count = 0,\n branch_count = 0,\n account_count_active = 0,\n } = value;\n\n const { licenses } = useSelector((state) => state.self);\n const isResaleOrMaster = verifyResaleOrMaster(licenses);\n const colLength = isResaleOrMaster ? 3 : 4;\n\n // State to track screen size (true if width < 1200px)\n const isSmallScreen = useIsBelowBreakpoint('xl');\n\n return (\n
\n \n
\n \n {isResaleOrMaster && (\n \n )}\n \n \n \n \n
\n
\n
\n );\n}\n","import { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nexport function ProgressBar({\n value,\n vLabel = 'Valor atual',\n target,\n tLabel = 'Objetivo',\n label = 'Progresso',\n width = '100%',\n}) {\n const percentage = Math.min((value / target) * 100, 100);\n\n return (\n \n {`${vLabel}: ${value}`}\n
\n {`${tLabel}: ${target}`}\n \n }\n >\n \n
\n \n \n {label}\n \n \n \n ({value} de {target})\n \n \n \n
\n \n \n \n \n \n );\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from 'react';\nimport { CardLoading } from '../../../_helpers/CardLoadingHelper';\nimport { ProgressBar } from '../../_components/ProgressBar';\n\nexport function CounterDevicesWidget4({ loading, className, value, title }) {\n const sat_count = value.sat_count ? value.sat_count : 0;\n const sat_count_online = value.sat_count_online ? value.sat_count_online : 0;\n\n const mfe_count = value.mfe_count ? value.mfe_count : 0;\n const mfe_count_online = value.mfe_count_online ? value.mfe_count_online : 0;\n\n const gateway_count = value.gateway_count ? value.gateway_count : 0;\n const gateway_count_online = value.gateway_count_online\n ? value.gateway_count_online\n : 0;\n\n const VALUE_LABEL = 'Online'\n const TARGET_LABEL = 'Total'\n\n const SAT_LABEL = 'Emissores SAT';\n const MFE_LABEL = 'Emissores MFE';\n\n return (\n <>\n
\n \n
\n
\n

{title}

\n
\n
\n
\n \n \n \n \n
\n
\n \n \n \n );\n}\n","import moment from 'moment';\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React from 'react';\nimport Moment from 'react-moment';\nimport { Link } from 'react-router-dom';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { CardLoading } from '../../../_helpers/CardLoadingHelper';\n\nfunction AlarmStateFormat(state) {\n if (state === 'DANGER') return 'danger';\n else if (state === 'WARNING') return 'warning';\n else if (state === 'SUCCESS') return 'success';\n}\n\nfunction highlightMoreRecentEvent(time) {\n return Math.abs(moment.duration(moment().diff(time)).asHours()) <= 60\n ? 'font-weight-bolder'\n : '';\n}\n\nexport function RecentEventsWidget({\n loading,\n title,\n className,\n alarms,\n nElements,\n}) {\n //Only first five elements\n alarms = alarms.slice(0, nElements || 5);\n const goToAlarm = (device_type, model) => (`/core/alarms/new?q=${encodeURIComponent(\n JSON.stringify({\n filter: {\n device_type,\n model\n },\n }),\n )}`)\n\n return (\n
\n \n {/* Head */}\n
\n
\n

{title}

\n
\n
\n {/* Body */}\n
\n {alarms &&\n alarms.map((value, index) => {\n const type = value.device?.type ?? (value.gateway ? 'GATEWAY' : null);\n const id = value.device?.id || value.gateway?.id;\n const name = value.device?.name || value.gateway?.name;\n const loc = `${value.branch?.name}, ${value.branch?.uf}`;\n \n if (!type || !id) {\n // Handle undefined type or id\n return null; // Skip rendering this item\n }\n\n const dvcOrGtwylink =\n type === 'GATEWAY'\n ? `/core/terminals/${id}/edit`.toLowerCase()\n : `/core/devices/${type}s/${id}/edit`.toLowerCase();\n\n return (\n
\n
\n
\n {/* LEFT */}\n \n
\n
\n \n {/* LEFT UP */}\n \n {value.config.name}\n \n {/* LEFT DOWN */}\n \n {name}, {loc}\n \n \n \n Identificador do dispositivo\n \n }\n >\n \n {id}\n \n \n
\n {/* RIGHT */}\n
\n \n \n \n {value.creation_time}\n \n \n \n
\n
\n
\n
\n
\n );\n })}\n
\n
\n
\n );\n}\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialHomeState = {\n statsLoading: false,\n alarmsLoading: false,\n mapLoading: false,\n actionsLoading: false,\n totalCount: 0,\n entities: null,\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n};\n\nexport const homeSlice = createSlice({\n name: 'home',\n initialState: initialHomeState,\n reducers: {\n catchError: (state, action) => {\n state.error = `${action.type}: ${action.payload.error}`;\n const { callType, feature } = action.payload;\n if (callType === callTypes.list) {\n state[`${feature}Loading`] = false;\n } else {\n state.actionsLoading = false;\n }\n },\n startCall: (state, action) => {\n state.error = null;\n const { callType, feature } = action.payload;\n if (callType === callTypes.list) {\n state[`${feature}Loading`] = true;\n } else {\n state.actionsLoading = true;\n }\n },\n statsFetched: (state, action) => {\n const { entities } = action.payload;\n state.statsLoading = false;\n state.error = null;\n state.stats = entities;\n },\n alarmsFetched: (state, action) => {\n const { entities } = action.payload;\n state.alarmsLoading = false;\n state.error = null;\n state.alarms = entities;\n },\n mapFetched: (state, action) => {\n const { entities } = action.payload;\n state.mapLoading = false;\n state.error = null;\n state.map = entities;\n },\n },\n});\n","import axios from 'axios';\nimport { API_ROOT } from '../../../../../redux/setupAxios';\nimport { formatFilter } from '../../../../../_nubo/_helpers/QueryHelpers';\n\nexport const STATS_URL = API_ROOT + '/iot/v1/stats';\nexport const ALARMS_URL = API_ROOT + '/iot/v1/alarms';\nexport const MAP_URL = API_ROOT + '/iot/v1/map';\n\nexport function getStats(queryParams) {\n return axios.get(STATS_URL);\n}\n\nexport function getAlarms(queryParams) {\n return axios.get(`${ALARMS_URL}` + formatFilter(queryParams) + '&triggered=1');\n}\nexport function getMap(queryParams) {\n return axios.get(`${MAP_URL}` + formatFilter(queryParams));\n}\n","import { callTypes, homeSlice } from './homeSlice';\nimport * as requestFromServer from './homeStats';\n\nconst { actions } = homeSlice;\n\nexport const fetchStats = (queryParams) => (dispatch) => {\n dispatch(actions.startCall({ callType: callTypes.list, feature: \"stats\" }));\n return requestFromServer\n .getStats(queryParams)\n .then((response) => {\n const entities = response.data;\n return dispatch(actions.statsFetched({ entities }));\n })\n .catch((error) => {\n error.clientMessage = \"Can't find stats\";\n dispatch(actions.catchError({ error, callType: callTypes.list, feature: \"stats\" }));\n throw error;\n });\n};\n\nexport const fetchAlarms = (queryParams) => (dispatch) => {\n dispatch(actions.startCall({ callType: callTypes.list, feature: \"alarms\" }));\n return requestFromServer\n .getAlarms(queryParams)\n .then((response) => {\n const entities = response.data.data;\n return dispatch(actions.alarmsFetched({ entities }));\n })\n .catch((error) => {\n error.clientMessage = \"Can't find alarms\";\n dispatch(actions.catchError({ error, callType: callTypes.list, feature: \"alarms\" }));\n throw error;\n });\n};\n\nexport const fetchMap = (queryParams) => (dispatch) => {\n dispatch(actions.startCall({ callType: callTypes.list, feature: \"map\" }));\n return requestFromServer\n .getMap(queryParams)\n .then((response) => {\n const entities = response.data;\n return dispatch(actions.mapFetched({ entities }));\n })\n .catch((error) => {\n error.clientMessage = \"Can't find map data\";\n dispatch(actions.catchError({ error, callType: callTypes.list, feature: \"map\" }));\n throw error;\n });\n};\n","import React, { useEffect, useMemo, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { Col, Row } from 'react-bootstrap';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport {\n CounterAlarmsWidget1,\n CounterDevicesWidget3,\n CounterDevicesWidget4,\n CounterEventsWidget1,\n RecentEventsWidget,\n} from '../../../_nubo/_partials/widgets';\nimport { MapsClustering } from '../../../_nubo/_partials/_components';\nimport * as actions from '../../modules/Core/_redux/home/homeActions';\n\nexport const initialFilter = {\n filter: {\n model: '',\n },\n sortOrder: 'desc',\n sortField: 'creation_time',\n pageNumber: 1,\n pageSize: 5,\n};\n\nexport function Dashboard() {\n const dispatch = useDispatch();\n\n const { currentState } = useSelector(\n (state) => ({\n currentState: state.home,\n }),\n shallowEqual,\n );\n\n const { map, stats, alarms, alarmsLoading, statsLoading, mapLoading } = currentState;\n const alarmStats = stats?.alarms || {};\n\n const colStyle = useMemo(() => ({ padding: '0px 6px' }), []);\n\n useEffect(() => {\n dispatch(actions.fetchStats());\n dispatch(actions.fetchAlarms(initialFilter));\n }, [dispatch]);\n\n // Memoize fetchMap to ensure a stable reference\n const fetchMap = useCallback((queryParams) => {\n dispatch(actions.fetchMap(queryParams));\n }, [dispatch]);\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\n// Adding PropTypes for better type-checking\nDashboard.propTypes = {\n currentState: PropTypes.shape({\n stats: PropTypes.object,\n alarms: PropTypes.array,\n listLoading: PropTypes.bool,\n }),\n};","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport isFunction from 'lodash/isFunction';\nimport isEmpty from 'lodash/isEmpty';\nimport times from 'lodash/times';\nimport Hexagon from 'react-hexagon';\n\nconst getGridDimensions = (gridWidth, gridHeight, N) => {\n const a = (6 * gridHeight) / (gridWidth * Math.sqrt(3));\n const b = gridHeight / (2 * gridWidth) - 2;\n\n const columns = Math.ceil((-b + Math.sqrt(b * b + 4 * N * a)) / (2 * a));\n\n const hexSize = Math.floor(gridWidth / (3 * columns + 0.5));\n const rows = Math.ceil(N / columns);\n\n return {\n columns,\n hexSize,\n hexWidth: hexSize * 2,\n hexHeight: Math.ceil(hexSize * Math.sqrt(3)),\n rows,\n };\n};\n\nconst tryInvoke = (func, params = [], defaultValue = null) => {\n return isFunction(func) ? func(...params) : defaultValue;\n};\n\nconst HexagonGrid = (props) => {\n const {\n hexagons,\n gridHeight,\n gridWidth,\n renderHexagonContent,\n hexProps,\n x,\n y,\n } = props;\n\n const [state, setState] = useState({\n columns: 1,\n hexSize: 1,\n hexWidth: 1,\n hexHeight: 1,\n rows: 0,\n });\n\n useEffect(() => {\n if (!isEmpty(hexagons) && gridWidth > 0 && gridHeight > 0) {\n setState(getGridDimensions(gridWidth, gridHeight, hexagons.length));\n }\n }, [hexagons, gridWidth, gridHeight]);\n\n const getHexDimensions = (row, col) => {\n const dimensions = {\n width: `${state.hexWidth}px`,\n height: `${state.hexHeight}px`,\n x: col * state.hexSize * 3,\n };\n if (row % 2 === 1) {\n dimensions.x += state.hexSize * (3 / 2);\n }\n return dimensions;\n };\n\n const getRowDimensions = (row) => {\n const dimensions = {\n y: `${row * (state.hexSize * (Math.sqrt(3) / 2))}px`,\n height: `${state.hexHeight}px`,\n width: gridWidth,\n };\n if (row % 2 === 0) {\n dimensions.marginLeft = `${(state.hexSize / 2) * 3}px`;\n }\n return dimensions;\n };\n\n let totalRowHeight = 0;\n let totalRowWidth = 0;\n\n times(state.rows, (row) => {\n const rowDim = getRowDimensions(row);\n const remaining = hexagons.length - row * state.columns;\n const columns = remaining < state.columns ? remaining : state.columns;\n\n times(columns, (column) => {\n const hexDim = getHexDimensions(row, column);\n\n const newTotalRowWidth = parseFloat(hexDim.x) + parseFloat(hexDim.width);\n if (newTotalRowWidth > totalRowWidth) {\n totalRowWidth = newTotalRowWidth;\n }\n\n const newTotalRowHeight = parseFloat(rowDim.y) + parseFloat(rowDim.height);\n if (newTotalRowHeight > totalRowHeight) {\n totalRowHeight = newTotalRowHeight;\n }\n });\n });\n\n return (\n \n {times(state.rows, (row) => {\n const remaining = hexagons.length - row * state.columns;\n const columns = remaining < state.columns ? remaining : state.columns;\n const rowDim = getRowDimensions(row);\n return (\n \n {times(columns, (col) => {\n const iHexagon = row * state.columns + col;\n const hexagon = hexagons[iHexagon];\n const hexDim = getHexDimensions(row, col);\n const _hexProps = tryInvoke(hexProps, [hexagon], hexProps);\n return (\n \n \n {tryInvoke(renderHexagonContent, [hexagon], )}\n \n \n );\n })}\n \n );\n })}\n \n );\n};\n\nHexagonGrid.propTypes = {\n gridWidth: PropTypes.number,\n gridHeight: PropTypes.number,\n hexagons: PropTypes.arrayOf(PropTypes.any).isRequired,\n hexProps: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n renderHexagonContent: PropTypes.func,\n x: PropTypes.number,\n y: PropTypes.number,\n};\n\nHexagonGrid.defaultProps = {\n hexProps: {},\n renderHexagonContent: null,\n x: 0,\n y: 0,\n};\n\nexport default HexagonGrid;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport useResizeObserver from 'use-resize-observer';\nimport { GroupingValues } from '../app/modules/Core/_redux/devicemap/deviceMapSlice';\nimport HexagonGrid from './HexagonGrid';\n\nexport const ResponsiveHexagonGrid = ({\n type,\n itens,\n title,\n onHexagonClick,\n getHexProps,\n renderHexagonContent\n}) => {\n const { ref, width, height } = useResizeObserver();\n\n return (\n <>\n
\n
\n

\n {\n type === GroupingValues.Location \n ? {title.toUpperCase()}\n : title.toUpperCase()\n }\n

\n
\n
\n \n
\n ({\n ...getHexProps(entity),\n onClick: () => onHexagonClick(entity),\n })}\n renderHexagonContent={renderHexagonContent}\n />\n\n
\n \n \n );\n};\n","import axios from 'axios';\nimport { API_ROOT } from '../../../../../redux/setupAxios';\n\nexport const DEVICES_URL = API_ROOT + '/iot/v1/devices/list';\n\nexport async function getAllDevices() {\n return axios.get(DEVICES_URL);\n}\n","import * as requestFromServer from './deviceMapCrud';\nimport { deviceMapSlice, callTypes } from './deviceMapSlice';\n\nconst { actions } = deviceMapSlice;\n\nexport const setGroupingValues = (groupingValues) => (dispatch) =>\n dispatch(actions.setGroupingValues(groupingValues));\n\nexport const fetchDeviceMap = () => (dispatch) => {\n dispatch(actions.startCall({ callType: callTypes.list }));\n return requestFromServer\n .getAllDevices()\n .then((response) => {\n const totalCount = response.data.count;\n const entities = response.data.data;\n dispatch(actions.deviceMapFetched({ totalCount, entities }));\n })\n .catch((error) => {\n error.clientMessage = \"Can't fetch device map\";\n dispatch(actions.catchError({ error, callType: callTypes.list }));\n throw error;\n });\n};\n","import { Grid } from '@material-ui/core';\nimport React, { useEffect } from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { ResponsiveHexagonGrid } from '../../../_nubo/ResponsiveHexagonGrid';\nimport * as actions from '../../modules/Core/_redux/devicemap/deviceMapActions';\nimport { GroupingValues } from '../../modules/Core/_redux/devicemap/deviceMapSlice';\n\nconst lightColors = {\n stroke: 'rgb(247, 253, 247)',\n disconnectedHover: 'rgb(127, 127, 141, 0.5)',\n disconnectedNormal: 'rgb(127, 127, 141)',\n successHover: 'rgb(164, 219, 164, 0.5)',\n successNormal: 'rgb(164, 219, 164)',\n warningHover: 'rgb(255, 266, 77, 0.5)',\n warningNormal: 'rgb(255, 266, 77)',\n dangerHover: 'rgb(241, 84, 84, 0.5)',\n dangerNormal: 'rgb(241, 84, 84)',\n};\n\nconst darkColors = {\n stroke: 'rgb(31, 31, 36)',\n disconnectedHover: 'rgb(43, 43, 43, 0.5)',\n disconnectedNormal: 'rgb(43, 43, 43)',\n disconnectedStroke: 'rgb(74, 74, 74)',\n successHover: 'rgb(82, 146, 88, 0.5)',\n successNormal: 'rgb(82, 146, 88)',\n warningHover: 'rgb(190, 188, 14, 0.5)',\n warningNormal: 'rgb(190, 188, 14)',\n dangerHover: 'rgb(190, 56, 82, 0.5)',\n dangerNormal: 'rgb(190, 56, 82)',\n};\n\nconst getHexProps = (entity, colors) => {\n let normalColor;\n let hoverColor;\n let stroke = colors.stroke;\n let states = {\n DANGER: 2,\n WARNING: 1,\n NO_PROBLEM: 0\n }\n\n if (entity.agent_status === 'DISCONNECTED') {\n normalColor = colors.disconnectedNormal;\n hoverColor = colors.disconnectedHover;\n stroke = colors.disconnectedStroke || stroke;\n } \n else {\n \n if (!entity.alarm_state) {\n normalColor = colors.successNormal;\n hoverColor = colors.successHover;\n } \n \n else {\n\n let state = entity.alarm_state;\n\n if (state === states.WARNING) {\n normalColor = colors.warningNormal;\n hoverColor = colors.warningHover;\n }\n else if (state === states.DANGER) {\n normalColor = colors.dangerNormal;\n hoverColor = colors.dangerHover;\n }\n else {\n normalColor = colors.successNormal;\n hoverColor = colors.successHover;\n }\n }\n }\n\n\n return {\n style: {\n stroke,\n fill: normalColor,\n strokeWidth: 5,\n },\n hexProps: {\n onMouseEnter: (event) => {\n event.target.style.fill = hoverColor;\n },\n onMouseLeave: (event) => {\n event.target.style.fill = normalColor;\n },\n },\n };\n};\n\nconst renderHexagonContent = (entity) => {\n return (\n \n {/* {entity.id} */}\n \n );\n};\n\nexport const DeviceMap = ({\n history,\n}) => {\n const { currentState } = useSelector(\n (state) => ({ currentState: state.deviceMap }),\n shallowEqual,\n );\n\n const { entities, isLoading } = currentState;\n const dispatch = useDispatch();\n\n const searchParams = new URLSearchParams(history.location.search);\n const group = searchParams.get('group');\n\n const regions = (searchParams.get('regions') || '')\n .split(',')\n .map(value => parseInt(value))\n .filter(value => value >= 0);\n\n let groupingValues = [Object.keys(GroupingValues)[0]]\n if (Object.keys(GroupingValues).includes(group)) {\n groupingValues = [group];\n }\n\n const onHexagonClick = (entity) => {\n history.push(\n `/core/devices/${entity.type.toLowerCase().concat('s')}/${entity.id\n }/edit`,\n );\n };\n\n useEffect(() => {\n dispatch(actions.fetchDeviceMap());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dispatch]);\n\n const { isDark } = useSelector((state) => state.appConfig, shallowEqual);\n\n const groupedEntities = [];\n if (groupingValues.length) {\n groupingValues.forEach((typeKey) => {\n const type = GroupingValues[typeKey];\n entities.forEach((entity) => {\n let key;\n let title;\n switch (type) {\n case GroupingValues.All:\n key = null;\n title = type;\n break;\n case GroupingValues.Enterprise:\n key = entity.branch?.id;\n title = entity.branch?.name;\n break;\n case GroupingValues.Location:\n key = entity.region?.id || 0;\n title = entity.region?.name || 'SEM REGIÃO DEFINIDA';\n break;\n default:\n throw new Error(`Invalid type (${type})`);\n }\n \n if (key === null && type !== GroupingValues.All) return;\n \n if (\n type === GroupingValues.Enterprise\n && regions.length\n && !regions.includes(entity.region?.id ?? 0)\n ) return;\n\n let groupedEntity = groupedEntities.find(\n (ge) => ge.type === type && ge.key === key,\n );\n if (!groupedEntity) {\n groupedEntity = { type, key, title, itens: [entity] };\n groupedEntities.push(groupedEntity);\n } else {\n groupedEntity.itens.push(entity);\n }\n });\n });\n }\n\n const calcXs = (groupedEntity) => {\n const size = groupedEntity.itens.length;\n if (groupedEntity.type === GroupingValues.All || size >= 200) return 12;\n if (size >= 100) return 6;\n return 3;\n };\n\n const calcMinHeight = (groupedEntity) => {\n if (\n (groupedEntity.itens.length < 50 &&\n groupedEntity.type === GroupingValues.All) ||\n (groupedEntities.length <= 4 && groupedEntity.type !== GroupingValues.All)\n ) {\n return '25%';\n }\n return '100%';\n };\n\n groupedEntities.sort((a, b) => a.title.localeCompare(b.title));\n\n if (isLoading && !groupedEntities.length) {\n return
\n
\n \n
\n
;\n }\n\n return (\n
\n \n {groupedEntities.map((groupedEntity) => (\n \n \n \n getHexProps(entity, isDark ? darkColors : lightColors)\n }\n />\n
\n \n ))}\n \n \n );\n};\n","import React, { lazy, Suspense } from 'react';\nimport { Redirect, Route, Switch } from 'react-router-dom';\nimport { ContentRoute, LayoutSplashScreen } from '../_metronic/layout';\nimport { Dashboard } from './pages/Dashboard';\nimport { DeviceMap } from './pages/DeviceMap';\n\nconst CorePage = lazy(() => import('./modules/Core/pages/CorePage'));\nconst FiscalPage = lazy(() => import('./modules/Fiscal/pages/FiscalPage'));\n\nexport default function BasePage() {\n return (\n }>\n \n {\n /* Redirect from root URL to /dashboard. */\n \n }\n \n {/* */}\n \n \n \n\n \n \n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport axios from 'axios';\nimport { Base64 } from 'js-base64'\n\nimport { useParams, Redirect } from 'react-router-dom';\n\nexport const CreateSession = () => {\n const [redirectUrl, setRedirectUrl] = useState();\n const { token, loggedAs } = useParams();\n const isAuthenticated = localStorage.getItem('auth:auth0');\n\n const storeValue = (value, key) => {\n localStorage.setItem(key, value)\n }\n\n useEffect(() => {\n if (isAuthenticated) {\n if (token) {\n storeValue(token, 'SToken');\n if(loggedAs){\n const decodedLogged = Base64.decode(loggedAs)\n storeValue(decodedLogged, 'loggedAs');\n }\n setRedirectUrl('/');\n axios.interceptors.request.use((config) => {\n config.headers.Authorization = `Basic ${token}`;\n window.location.reload();\n });\n }\n }\n }, []);\n\n useEffect(() => {\n if (redirectUrl) {\n localStorage.setItem('redirectUrl', redirectUrl);\n }\n }, [redirectUrl]);\n\n return ;\n};\n","/**\n * High level router.\n *\n * Note: It's recommended to compose related routes in internal router\n * components (e.g: `src/app/modules/Auth/pages/AuthPage`, `src/app/BasePage`).\n */\n\nimport React from 'react';\nimport { Redirect, Route, Switch } from 'react-router-dom';\nimport Auth0Page from './modules/Auth0/pages';\nimport { AuthConsumer } from './modules/Auth0';\nimport BasePage from './BasePage';\nimport { Layout } from '../_metronic/layout';\nimport { CreateSession } from './modules/Core/pages/auth/CreateSession';\n\nexport const Routes = () => (\n \n {({ isAuthenticated, logout }) => (\n /* Create `LayoutContext` from current `history` and `menuConfig`. */\n \n \n {!isAuthenticated ? (\n /* Render auth page when user at `/auth` and not authorized. */\n \n ) : (\n /* Otherwise redirect to root page (`/`) */\n \n )}\n\n {\n return isAuthenticated ? (\n logout(window.location.origin + '/auth/login')\n ) : (\n \n );\n }}\n />\n\n {!isAuthenticated ? (\n /* Redirect to `/auth` when user is not authorized */\n \n ) : (\n \n \n \n )}\n \n )}\n \n);\n","/**\n * Entry application component used to compose providers and render Routes.\n * */\n\nimport 'moment/locale/pt-br';\n\nimport {\n AUTH0_CLIENT_ID,\n AUTH0_DOMAIN,\n AUTH0_OPTIONS,\n} from './modules/Auth0/config';\nimport { LayoutSplashScreen, MaterialThemeProvider } from '../_metronic/layout';\n\nimport { AuthProvider } from './modules/Auth0';\nimport { BrowserRouter } from 'react-router-dom';\nimport { I18nProvider } from '../_metronic/i18n';\nimport { PersistGate } from 'redux-persist/integration/react';\nimport { Provider } from 'react-redux';\nimport React from 'react';\nimport { Routes } from '../app/Routes';\n\nexport default function App({ store, persistor, basename }) {\n return (\n /* Provide Redux store */\n \n {/* Asynchronously persist redux stores and show `SplashScreen` while it's loading. */}\n }>\n {/* Add high level `Suspense` in case if was not handled inside the React tree. */}\n }>\n {/* Override `basename` (e.g: `homepage` in `package.json`) */}\n \n {/*This library only returns the location that has been active before the recent location change in the current window lifetime.*/}\n \n {/* Provide `react-intl` context synchronized with Redux state. */}\n \n {/* Provide authentication state to routes */}\n \n {/* Render routes with provided `Layout`. */}\n \n \n \n \n \n \n \n \n );\n}\n","import { put, takeLatest } from 'redux-saga/effects';\n\nimport { getUserByToken } from './authCrud';\nimport { persistReducer } from 'redux-persist';\nimport storage from 'redux-persist/lib/storage';\n\nexport const actionTypes = {\n Login: '[Login] Action',\n Logout: '[Logout] Action',\n Register: '[Register] Action',\n UserRequested: '[Request User] Action',\n UserLoaded: '[Load User] Auth API',\n SetUser: '[Set User] Action',\n};\n\nconst initialAuthState = {\n user: undefined,\n authToken: undefined,\n};\n\nexport const reducer = persistReducer(\n { storage, key: 'v713-demo1-auth', whitelist: ['user', 'authToken'] },\n (state = initialAuthState, action) => {\n switch (action.type) {\n case actionTypes.Login: {\n const { authToken } = action.payload;\n\n return { authToken, user: undefined };\n }\n\n case actionTypes.Register: {\n const { authToken } = action.payload;\n\n return { authToken, user: undefined };\n }\n\n case actionTypes.Logout: {\n // TODO: Change this code. Actions in reducer aren't allowed.\n return initialAuthState;\n }\n\n case actionTypes.UserLoaded: {\n const { user } = action.payload;\n return { ...state, user };\n }\n\n case actionTypes.SetUser: {\n const { user } = action.payload;\n return { ...state, user };\n }\n\n default:\n return state;\n }\n },\n);\n\nexport const actions = {\n login: (authToken) => ({ type: actionTypes.Login, payload: { authToken } }),\n register: (authToken) => ({\n type: actionTypes.Register,\n payload: { authToken },\n }),\n logout: () => ({ type: actionTypes.Logout }),\n requestUser: (user) => ({\n type: actionTypes.UserRequested,\n payload: { user },\n }),\n fulfillUser: (user) => ({ type: actionTypes.UserLoaded, payload: { user } }),\n setUser: (user) => ({ type: actionTypes.SetUser, payload: { user } }),\n};\n\nexport function* saga() {\n yield takeLatest(actionTypes.Login, function* loginSaga() {\n yield put(actions.requestUser());\n });\n\n yield takeLatest(actionTypes.Register, function* registerSaga() {\n yield put(actions.requestUser());\n });\n\n yield takeLatest(actionTypes.UserRequested, function* userRequested() {\n const { data: user } = yield getUserByToken();\n\n yield put(actions.fulfillUser(user));\n });\n}\n","import axios from 'axios';\n\nexport const LOGIN_URL = 'api/auth/login';\nexport const REGISTER_URL = 'api/auth/register';\nexport const REQUEST_PASSWORD_URL = 'api/auth/forgot-password';\n\nexport const ME_URL = 'api/me';\n\nexport function login(email, password) {\n return axios.post(LOGIN_URL, { email, password });\n}\n\nexport function register(email, fullname, username, password) {\n return axios.post(REGISTER_URL, { email, fullname, username, password });\n}\n\nexport function requestPassword(email) {\n return axios.post(REQUEST_PASSWORD_URL, { email });\n}\n\nexport function getUserByToken() {\n // Authorization head should be fulfilled in interceptor.\n return axios.get(ME_URL);\n}\n","import { combineReducers } from 'redux';\nimport { all } from 'redux-saga/effects';\nimport * as auth from '../app/modules/Auth/_redux/authRedux';\nimport { actionsSlice } from '../app/modules/Core/_redux/actions/actionsSlice';\nimport { alarmsSlice } from '../app/modules/Core/_redux/alarms/alarmsSlice';\nimport { appConfigSlice } from '../app/modules/Core/_redux/app-config/appConfigSlice';\nimport { branchesSlice } from '../app/modules/Core/_redux/branches/branchesSlice';\nimport { accountsSlice } from '../app/modules/Core/_redux/accounts/accountsSlice';\nimport { licensePackagesSlice } from '../app/modules/Core/_redux/license-packages/licensePackagesSlice';\nimport { deviceMapSlice } from '../app/modules/Core/_redux/devicemap/deviceMapSlice';\nimport { eventsMfeSlice } from '../app/modules/Core/_redux/events/eventsMfeSlice';\nimport { eventsNfceSlice } from '../app/modules/Core/_redux/events/eventsNfceSlice';\nimport { eventsSatSlice } from '../app/modules/Core/_redux/events/eventsSatSlice';\nimport { eventsGatewaySlice } from '../app/modules/Core/_redux/events/eventsGatewaySlice';\nimport { eventsGlobalSlice } from '../app/modules/Core/_redux/events/eventsGlobalSlice';\nimport { commHistorySlice } from '../app/modules/Core/_redux/comm-history/commHistorySlice';\nimport { homeSlice } from '../app/modules/Core/_redux/home/homeSlice';\nimport { mfesSlice } from '../app/modules/Core/_redux/mfes/mfesSlice';\nimport { nfcesSlice } from '../app/modules/Core/_redux/nfces/nfcesSlice';\nimport { recipientsSlice } from '../app/modules/Core/_redux/recipients/recipientsSlice';\nimport { regionsSlice } from '../app/modules/Core/_redux/regions/regionsSlice';\nimport { satsSlice } from '../app/modules/Core/_redux/sats/satsSlice';\nimport { terminalsSlice } from '../app/modules/Core/_redux/terminals/terminalsSlice';\nimport { probesSlice } from '../app/modules/Core/_redux/probes/probesSlice';\nimport { usersSlice } from '../app/modules/Core/_redux/users/usersSlice';\nimport { selfSlice } from '../app/modules/Core/_redux/self/selfSlice';\nimport { batchesSlice } from '../app/modules/Fiscal/_redux/batches/batchesSlice';\nimport { ccfesSlice } from '../app/modules/Fiscal/_redux/ccfes/ccfesSlice';\nimport { cdashboardSlice } from '../app/modules/Fiscal/_redux/cdashboard/cdashboardSlice';\nimport { cmfesSlice } from '../app/modules/Fiscal/_redux/cmfes/cmfesSlice';\nimport { cnfcesSlice } from '../app/modules/Fiscal/_redux/cnfces/cnfcesSlice';\nimport { InutsSlice } from '../app/modules/Fiscal/_redux/inuts/inutsSlice';\nimport { statsSlice } from '../app/modules/Fiscal/_redux/stats/statsSlice';\nimport { tasksSlice } from '../app/modules/Fiscal/_redux/tasks/tasksSlice';\n\nexport const rootReducer = combineReducers({\n auth: auth.reducer,\n batches: batchesSlice.reducer,\n branches: branchesSlice.reducer,\n accounts: accountsSlice.reducer,\n ccfes: ccfesSlice.reducer,\n cdashboardSlice: cdashboardSlice.reducer,\n cmfes: cmfesSlice.reducer,\n cnfces: cnfcesSlice.reducer,\n regions: regionsSlice.reducer,\n sats: satsSlice.reducer,\n mfes: mfesSlice.reducer,\n nfces: nfcesSlice.reducer,\n inuts: InutsSlice.reducer,\n stats: statsSlice.reducer,\n terminals: terminalsSlice.reducer,\n probes: probesSlice.reducer,\n home: homeSlice.reducer,\n actions: actionsSlice.reducer,\n tasks: tasksSlice.reducer,\n users: usersSlice.reducer,\n alarms: alarmsSlice.reducer,\n recipients: recipientsSlice.reducer,\n eventsSat: eventsSatSlice.reducer,\n eventsGateway: eventsGatewaySlice.reducer,\n eventsMfe: eventsMfeSlice.reducer,\n eventsNfce: eventsNfceSlice.reducer,\n eventsGlobal: eventsGlobalSlice.reducer,\n commHistory: commHistorySlice.reducer,\n deviceMap: deviceMapSlice.reducer,\n appConfig: appConfigSlice.reducer,\n self: selfSlice.reducer,\n licensePackages: licensePackagesSlice.reducer,\n});\n\nexport function* rootSaga() {\n yield all([auth.saga()]);\n}\n","import { configureStore, getDefaultMiddleware } from '@reduxjs/toolkit';\nimport createSagaMiddleware from 'redux-saga';\nimport { reduxBatch } from '@manaflair/redux-batch';\nimport { persistStore } from 'redux-persist';\nimport { rootReducer, rootSaga } from './rootReducer';\n\nconst sagaMiddleware = createSagaMiddleware();\nconst middleware = [\n ...getDefaultMiddleware({\n immutableCheck: false,\n serializableCheck: false,\n thunk: true,\n }),\n sagaMiddleware,\n];\n\nconst store = configureStore({\n reducer: rootReducer,\n middleware,\n devTools: process.env.NODE_ENV !== 'production',\n enhancers: [reduxBatch],\n});\n\n/**\n * @see https://github.com/rt2zz/redux-persist#persiststorestore-config-callback\n * @see https://github.com/rt2zz/redux-persist#persistor-object\n */\nexport const persistor = persistStore(store);\n\nsagaMiddleware.run(rootSaga);\n\nexport default store;\n","import '@fortawesome/fontawesome-free/css/all.min.css';\nimport axios from 'axios';\nimport React from 'react';\n/**\n * Create React App entry point. This and `public/index.html` files can not be\n * changed or moved.\n */\nimport 'react-app-polyfill/ie11';\nimport 'react-app-polyfill/stable';\n// Datepicker\nimport 'react-datepicker/dist/react-datepicker.css';\nimport ReactDOM from 'react-dom';\nimport 'socicon/css/socicon.css';\nimport App from './app/App';\nimport './index.scss'; // Standard version\nimport * as _redux from './redux';\nimport store, { persistor } from './redux/store';\nimport { MetronicI18nProvider } from './_metronic/i18n';\nimport {\n MetronicLayoutProvider,\n MetronicSplashScreenProvider,\n MetronicSubheaderProvider,\n} from './_metronic/layout';\nimport './_metronic/_assets/plugins/flaticon/flaticon.css';\nimport './_metronic/_assets/plugins/flaticon2/flaticon.css';\n// import \"./sass/style.react.rtl.css\"; // RTL version\nimport './_metronic/_assets/plugins/keenthemes-icons/font/ki.css';\nimport './_metronic/_assets/plugins/roboto/roboto.css';\n\n/**\n * Base URL of the website.\n *\n * @see https://facebook.github.io/create-react-app/docs/using-the-public-folder\n */\nconst { PUBLIC_URL } = process.env; //_redux.mockAxios(axios);\n/**\n * Inject metronic interceptors for axios.\n *\n * @see https://github.com/axios/axios#interceptors\n */\n\n/**\n * Creates `axios-mock-adapter` instance for provided `axios` instance, add\n * basic Metronic mocks and returns it.\n *\n * @see https://github.com/ctimmerm/axios-mock-adapter\n */\n/* const mock = */ _redux.setupAxios(axios, store);\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n ,\n document.getElementById('root'),\n);\n","/* eslint-disable */\n'use strict';\n// DOCS: https://javascript.info/cookie\n\n// Component Definition\nexport var KTCookie = (function() {\n return {\n // returns the cookie with the given name,\n // or undefined if not found\n getCookie: function(name) {\n var matches = document.cookie.match(\n new RegExp(\n '(?:^|; )' +\n name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') +\n '=([^;]*)',\n ),\n );\n return matches ? decodeURIComponent(matches[1]) : undefined;\n },\n // Please note that a cookie value is encoded,\n // so getCookie uses a built-in decodeURIComponent function to decode it.\n setCookie: function(name, value, options) {\n if (!options) {\n options = {};\n }\n\n options = Object.assign({}, { path: '/' }, options);\n\n if (options.expires instanceof Date) {\n options.expires = options.expires.toUTCString();\n }\n\n var updatedCookie =\n encodeURIComponent(name) + '=' + encodeURIComponent(value);\n\n for (var optionKey in options) {\n if (!options.hasOwnProperty(optionKey)) {\n continue;\n }\n updatedCookie += '; ' + optionKey;\n var optionValue = options[optionKey];\n if (optionValue !== true) {\n updatedCookie += '=' + optionValue;\n }\n }\n\n document.cookie = updatedCookie;\n },\n // To delete a cookie, we can call it with a negative expiration date:\n deleteCookie: function(name) {\n setCookie(name, '', {\n 'max-age': -1,\n });\n },\n };\n})();\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n // module.exports = KTCookie;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Consumer } from './context';\n\nexport default class AuthConsumer extends React.Component {\n static propTypes = {\n children: PropTypes.func.isRequired,\n };\n\n render() {\n const { children } = this.props;\n return {(props) => children({ ...props })};\n }\n}\n","import Auth0Lock from 'auth0-lock';\nimport PropTypes from 'prop-types';\nimport { Provider } from './context';\nimport React from 'react';\n\nexport default class AuthProvider extends React.Component {\n static propTypes = {\n storageKey: PropTypes.string.isRequired,\n clientId: PropTypes.string.isRequired,\n domain: PropTypes.string.isRequired,\n options: PropTypes.object.isRequired,\n showLock: PropTypes.bool,\n children: PropTypes.node,\n };\n\n static defaultProps = {\n storageKey: 'auth:auth0',\n options: {},\n };\n\n constructor(props) {\n super(props);\n this.lock = new Auth0Lock(props.clientId, props.domain, props.options);\n this.tokenRenewalTimeout = null;\n this.state = {\n lock: this.lock,\n login: this.login,\n logout: this.logout,\n };\n }\n\n componentWillMount() {\n const session = this.getStoredSession();\n this.checkSession();\n if (session && !this.isSessionExpired(session.expiresAt)) {\n this.setState(session, () => {\n this.scheduleRenewal();\n });\n }\n }\n\n checkSession() {\n this.lock.checkSession({}, (err, authResult) => {\n if (err || !authResult) {\n localStorage.clear();\n } else {\n this.lock.getUserInfo(authResult.accessToken, (error, profile) => {\n this.setSession(authResult, profile);\n });\n }\n });\n }\n\n componentDidMount() {\n this.rehyrate(); // Sync local storage to state\n this.lock.on('authenticated', (authResult) => {\n this.lock.getUserInfo(authResult.accessToken, (error, profile) => {\n if (error) {\n throw new Error(error);\n }\n this.setSession(authResult, profile);\n });\n });\n }\n\n setSession = (authResult, profile) => {\n const session = {\n isAuthenticated: true,\n accessToken: authResult.accessToken,\n idToken: authResult.idToken,\n idTokenPayload: authResult.idTokenPayload,\n expiresAt: JSON.stringify(\n authResult.expiresIn * 1000 + new Date().getTime(),\n ),\n profile: profile,\n };\n\n this.setState(session, () => {\n this.lock.hide();\n this.scheduleRenewal();\n this.storeSession(session);\n });\n };\n\n storeSession = (session) => {\n const { storageKey } = this.props;\n localStorage.setItem(storageKey, JSON.stringify(session));\n };\n\n getStoredSession = () => {\n const { storageKey } = this.props;\n const session = localStorage.getItem(storageKey);\n return session ? JSON.parse(session) : null;\n };\n\n isSessionExpired = (expiresAt) => {\n return new Date().getTime() > expiresAt;\n };\n\n rehyrate = () => {\n const { showLock } = this.props;\n const session = this.getStoredSession();\n if (session && !this.isSessionExpired(session.expiresAt)) {\n this.setState(session, () => {\n this.scheduleRenewal();\n });\n } else {\n if (showLock) {\n this.lock.show();\n }\n }\n };\n\n login = () => {\n this.lock.show();\n };\n\n logout = (returnTo) => {\n const { storageKey } = this.props;\n localStorage.removeItem(storageKey);\n localStorage.removeItem('SToken');\n clearTimeout(this.tokenRenewalTimeout);\n this.lock.logout({\n returnTo: returnTo,\n });\n };\n\n scheduleRenewal = () => {\n const { expiresAt } = this.state;\n const delay = expiresAt - Date.now();\n if (delay > 0) {\n this.tokenRenewalTimeout = setTimeout(() => {\n this.renewToken();\n }, delay);\n }\n };\n\n renewToken = () => {\n this.lock.checkSession({}, (err, authResult) => {\n if (err || !authResult) {\n this.lock.show();\n } else {\n this.lock.getUserInfo(authResult.accessToken, (error, profile) => {\n this.setSession(authResult, profile);\n });\n }\n });\n };\n\n render() {\n const { children } = this.props;\n return {children};\n }\n}\n","export { default as AuthConsumer } from './AuthConsumer';\nexport { default as AuthProvider } from './AuthProvider';\n","/* eslint-disable */\n'use strict';\n\nimport { KTUtil } from './util';\n\n// Component Definition\nvar KTOffcanvas = function(elementId, options) {\n // Main object\n var the = this;\n var init = false;\n\n // Get element object\n var element = KTUtil.getById(elementId);\n var body = KTUtil.getBody();\n\n if (!element) {\n return;\n }\n\n // Default options\n var defaultOptions = {\n attrCustom: '',\n };\n\n ////////////////////////////\n // ** Private Methods ** //\n ////////////////////////////\n\n var Plugin = {\n construct: function(options) {\n if (KTUtil.data(element).has('offcanvas')) {\n the = KTUtil.data(element).get('offcanvas');\n } else {\n // Reset offcanvas\n Plugin.init(options);\n\n // Build offcanvas\n Plugin.build();\n\n KTUtil.data(element).set('offcanvas', the);\n }\n\n return the;\n },\n\n init: function(options) {\n the.events = [];\n\n // merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n\n the.classBase = the.options.baseClass;\n the.attrCustom = the.options.attrCustom;\n the.classShown = the.classBase + '-on';\n the.classOverlay = the.classBase + '-overlay';\n the.target;\n\n the.state = KTUtil.hasClass(element, the.classShown) ? 'shown' : 'hidden';\n },\n\n build: function() {\n // offcanvas toggle\n if (the.options.toggleBy) {\n if (typeof the.options.toggleBy === 'string') {\n KTUtil.addEvent(\n KTUtil.getById(the.options.toggleBy),\n 'click',\n function(e) {\n e.preventDefault();\n the.target = this;\n Plugin.toggle();\n },\n );\n } else if (the.options.toggleBy && the.options.toggleBy[0]) {\n if (the.options.toggleBy[0].target) {\n for (var i in the.options.toggleBy) {\n KTUtil.addEvent(\n KTUtil.getById(the.options.toggleBy[i].target),\n 'click',\n function(e) {\n e.preventDefault();\n the.target = this;\n Plugin.toggle();\n },\n );\n }\n } else {\n for (var i in the.options.toggleBy) {\n KTUtil.addEvent(\n KTUtil.getById(the.options.toggleBy[i]),\n 'click',\n function(e) {\n e.preventDefault();\n the.target = this;\n Plugin.toggle();\n },\n );\n }\n }\n } else if (the.options.toggleBy && the.options.toggleBy.target) {\n KTUtil.addEvent(\n KTUtil.getById(the.options.toggleBy.target),\n 'click',\n function(e) {\n e.preventDefault();\n the.target = this;\n Plugin.toggle();\n },\n );\n }\n }\n\n // offcanvas close\n var closeBy = KTUtil.getById(the.options.closeBy);\n if (closeBy) {\n KTUtil.addEvent(closeBy, 'click', function(e) {\n e.preventDefault();\n the.target = this;\n Plugin.hide();\n });\n }\n },\n\n isShown: function() {\n return the.state == 'shown' ? true : false;\n },\n\n toggle: function() {\n Plugin.eventTrigger('toggle');\n\n if (the.state == 'shown') {\n Plugin.hide();\n } else {\n Plugin.show();\n }\n },\n\n show: function() {\n if (the.state == 'shown') {\n return;\n }\n\n Plugin.eventTrigger('beforeShow');\n\n Plugin.toggleClass('show');\n\n // Offcanvas panel\n KTUtil.attr(body, 'data-offcanvas-' + the.classBase, 'on');\n KTUtil.addClass(element, the.classShown);\n\n if (the.attrCustom.length > 0) {\n KTUtil.attr(body, 'data-offcanvas-' + the.classCustom, 'on');\n //KTUtil.addClass(body, the.classCustom);\n }\n\n the.state = 'shown';\n\n if (the.options.overlay) {\n the.overlay = KTUtil.insertAfter(\n document.createElement('DIV'),\n element,\n );\n KTUtil.addClass(the.overlay, the.classOverlay);\n\n KTUtil.addEvent(the.overlay, 'click', function(e) {\n //e.stopPropagation();\n e.preventDefault();\n Plugin.hide(the.target);\n });\n }\n\n Plugin.eventTrigger('afterShow');\n },\n\n hide: function() {\n if (the.state == 'hidden') {\n return;\n }\n\n Plugin.eventTrigger('beforeHide');\n\n Plugin.toggleClass('hide');\n\n KTUtil.removeAttr(body, 'data-offcanvas-' + the.classBase);\n KTUtil.removeClass(element, the.classShown);\n\n if (the.attrCustom.length > 0) {\n KTUtil.removeAttr(body, 'data-offcanvas-' + the.attrCustom);\n }\n\n the.state = 'hidden';\n\n if (the.options.overlay && the.overlay) {\n KTUtil.remove(the.overlay);\n }\n\n Plugin.eventTrigger('afterHide');\n },\n\n toggleClass: function(mode) {\n var id = KTUtil.attr(the.target, 'id');\n var toggleBy;\n\n if (\n the.options.toggleBy &&\n the.options.toggleBy[0] &&\n the.options.toggleBy[0].target\n ) {\n for (var i in the.options.toggleBy) {\n if (the.options.toggleBy[i].target === id) {\n toggleBy = the.options.toggleBy[i];\n }\n }\n } else if (the.options.toggleBy && the.options.toggleBy.target) {\n toggleBy = the.options.toggleBy;\n }\n\n if (toggleBy) {\n var el = KTUtil.getById(toggleBy.target);\n\n if (mode === 'show') {\n KTUtil.addClass(el, toggleBy.state);\n }\n\n if (mode === 'hide') {\n KTUtil.removeClass(el, toggleBy.state);\n }\n }\n },\n\n eventTrigger: function(name, args) {\n for (var i = 0; i < the.events.length; i++) {\n var event = the.events[i];\n if (event.name == name) {\n if (event.one == true) {\n if (event.fired == false) {\n the.events[i].fired = true;\n return event.handler.call(this, the, args);\n }\n } else {\n return event.handler.call(this, the, args);\n }\n }\n }\n },\n\n addEvent: function(name, handler, one) {\n the.events.push({\n name: name,\n handler: handler,\n one: one,\n fired: false,\n });\n },\n };\n\n //////////////////////////\n // ** Public Methods ** //\n //////////////////////////\n\n /**\n * Set default options\n * @param options\n */\n the.setDefaults = function(options) {\n defaultOptions = options;\n };\n\n /**\n * Check if canvas is shown\n * @returns {boolean}\n */\n the.isShown = function() {\n return Plugin.isShown();\n };\n\n /**\n * Set to hide the canvas\n */\n the.hide = function() {\n return Plugin.hide();\n };\n\n /**\n * Set to show the canvas\n */\n the.show = function() {\n return Plugin.show();\n };\n\n /**\n * Attach event\n * @param name\n * @param handler\n */\n the.on = function(name, handler) {\n return Plugin.addEvent(name, handler);\n };\n\n /**\n * Attach event that will be fired once\n * @param name\n * @param handler\n */\n the.one = function(name, handler) {\n return Plugin.addEvent(name, handler, true);\n };\n\n ///////////////////////////////\n // ** Plugin Construction ** //\n ///////////////////////////////\n\n // Run plugin\n Plugin.construct.apply(the, [options]);\n\n // Init done\n init = true;\n\n // Return plugin instance\n return the;\n};\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n // module.exports = KTOffcanvas;\n}\n\nexport default KTOffcanvas;\n","import React, { createContext } from 'react';\nimport { useMemo } from 'react';\nimport { useContext } from 'react';\n\nconst I18N_CONFIG_KEY = process.env.REACT_APP_I18N_CONFIG_KEY || 'i18nConfig';\nconst initialState = {\n selectedLang: 'en',\n};\n\nfunction getConfig() {\n const ls = localStorage.getItem(I18N_CONFIG_KEY);\n if (ls) {\n try {\n return JSON.parse(ls);\n } catch (er) {\n console.error(er);\n }\n }\n return initialState;\n}\n\n// Side effect\nexport function setLanguage(lang) {\n localStorage.setItem(I18N_CONFIG_KEY, JSON.stringify({ selectedLang: lang }));\n window.location.reload();\n}\n\nconst I18nContext = createContext();\n\nexport function useLang() {\n return useContext(I18nContext).selectedLang;\n}\n\nexport function withI18n(Component) {\n class WithI18n extends React.Component {\n static displayName = `WithI18n(${Component.displayName || Component.name})`;\n\n static contextType = I18nContext;\n\n render() {\n return ;\n }\n }\n\n return WithI18n;\n}\n\nexport const I18nConsumer = I18nContext.Consumer;\n\nexport function MetronicI18nProvider({ children }) {\n const lang = useMemo(getConfig, []);\n\n return {children};\n}\n","import React from 'react';\nimport { useLang } from './Metronici18n';\nimport { IntlProvider } from 'react-intl';\nimport '@formatjs/intl-relativetimeformat/polyfill';\nimport '@formatjs/intl-relativetimeformat/dist/locale-data/en';\nimport '@formatjs/intl-relativetimeformat/dist/locale-data/de';\nimport '@formatjs/intl-relativetimeformat/dist/locale-data/es';\nimport '@formatjs/intl-relativetimeformat/dist/locale-data/fr';\nimport '@formatjs/intl-relativetimeformat/dist/locale-data/ja';\nimport '@formatjs/intl-relativetimeformat/dist/locale-data/zh';\n\nimport deMessages from './messages/de';\nimport enMessages from './messages/en';\nimport esMessages from './messages/es';\nimport frMessages from './messages/fr';\nimport jaMessages from './messages/ja';\nimport zhMessages from './messages/zh';\n\nconst allMessages = {\n de: deMessages,\n en: enMessages,\n es: esMessages,\n fr: frMessages,\n ja: jaMessages,\n zh: zhMessages,\n};\n\nexport function I18nProvider({ children }) {\n const locale = useLang();\n const messages = allMessages[locale];\n\n return (\n \n {children}\n \n );\n}\n","export * from './I18nProvider';\nexport * from './Metronici18n';\n","\nexport const getFormFieldCSSClass = (touched, errors, feedbackLabelWithoutColors) => {\n const classes = [\"form-control\", \"form-control-solid\"];\n if (!feedbackLabelWithoutColors) {\n if (touched && errors) {\n classes.push(\"is-invalid\");\n }\n if (touched && !errors) {\n classes.push(\"is-valid\");\n }\n }\n return classes.join(\" \");\n};\n","import React from 'react';\n\nexport const { Provider, Consumer } = React.createContext();\n","export const API_URL = {\r\n local: 'http://localhost:5000',\r\n development: 'https://api-dev.nubo.ai',\r\n staging: 'https://api-staging.nubo.ai',\r\n production: 'https://api.nubo.ai', \r\n};\r\n \r\nexport const Environment = {\r\n LOCAL: 'local',\r\n DEVELOPMENT: 'development',\r\n STAGING: 'staging',\r\n PRODUCTION: 'production',\r\n};\r\n \r\nexport const getEnvironment = () => {\r\n return process.env.REACT_APP_ENVIRONMENT || Environment.DEVELOPMENT;\r\n };\r\n\r\nexport const getApiUrl = () => {\r\n return API_URL[getEnvironment()];\r\n};\r\n ","import React from 'react';\n\nfunction AlarmStateFormat(state) {\n if (state === 'DANGER') return 'text-danger';\n else if (state === 'WARNING') return 'text-warning';\n else if (state === 'SUCCESS') return 'text-success';\n}\n\nexport const MapsLocationPin = ({ text, className, marker=\"fa-map-marker-alt\" }) => (\n \n {text}\n \n);\n","import React, { useState } from 'react';\nimport { ButtonGroup, Button } from 'react-bootstrap';\n\nexport default function Toggle_Group({\n initial_value = '',\n options,\n on_change,\n aria_label = 'toggle button group',\n disable_unselect,\n ...button_group_props\n}) {\n const [selected_value, set_selected_value] = useState(initial_value);\n\n const handle_change = (new_value) => {\n if (new_value !== selected_value || !disable_unselect) {\n const value_to_set = new_value !== selected_value ? new_value : null;\n set_selected_value(value_to_set);\n on_change(value_to_set);\n }\n };\n\n return (\n \n {options.map((option, idx) => (\n handle_change(option.value)}\n aria-label={option.label}\n disabled={option.disabled}\n className={selected_value === option.value ? 'active' : ''}\n >\n {option.icon || option.label}\n \n ))}\n \n );\n}\n","import React, { useEffect, useRef, useState, useMemo } from 'react';\nimport { Col, Row } from 'react-bootstrap';\nimport { shallowEqual, useSelector } from 'react-redux';\nimport GoogleMapReact from 'google-map-react';\nimport useSupercluster from 'use-supercluster';\nimport { CardLoading } from '../../../_helpers/CardLoadingHelper';\nimport { MapsLocationPin } from './MapsLocationPin';\nimport ToggleGroup from '../ToggleGroup';\nimport './MapsClustering.css';\n\nimport darkStyles from './DarkGoogleMapStyles.json';\nimport lightStyles from './GoogleMapStyles.json';\n\nconst Marker = ({ children }) => children;\n\nexport const DEFAULT_LATITUDE = -23.5293560028;\nexport const DEFAULT_LONGITUDE = -46.7441444397;\n\nexport function MapsClustering({ loading, data, className, fetch }) {\n const { gateways = [], devices = [] } = data || {};\n const { isDark } = useSelector((state) => state.appConfig, shallowEqual);\n const sty = isDark ? darkStyles : lightStyles;\n\n const mapRef = useRef();\n const [bounds, setBounds] = useState(null);\n const [zoom, setZoom] = useState(10);\n const [deviceType, setDeviceType] = useState();\n\n useEffect(() => {\n if (!deviceType) {\n const initialDeviceType =\n gateways.length > 0 && devices.length > 0\n ? 'ALL'\n : gateways.length > 0\n ? 'GATEWAY'\n : 'DEVICE';\n setDeviceType(initialDeviceType);\n }\n }, [deviceType, gateways.length, devices.length]);\n\n useEffect(() => {\n if (deviceType) {\n fetch({ probe_type: deviceType });\n }\n }, [deviceType, fetch]);\n\n const places = useMemo(() => {\n if (deviceType === 'ALL') {\n return [\n ...devices.map((device) => ({ ...device, deviceType: 'DEVICE' })),\n ...gateways.map((gateway) => ({ ...gateway, deviceType: 'GATEWAY' })),\n ];\n }\n const selectedDevices = deviceType === 'DEVICE' ? devices : gateways;\n const selectedDeviceType = deviceType === 'DEVICE' ? 'DEVICE' : 'GATEWAY';\n return selectedDevices.map((item) => ({ ...item, deviceType: selectedDeviceType }));\n }, [deviceType, devices, gateways]);\n\n const points = useMemo(\n () =>\n places.map((place) => ({\n type: 'Feature',\n properties: {\n cluster: false,\n pointId: parseInt(place.id),\n state: place.alert_level,\n category: place.category,\n deviceType: place.deviceType,\n },\n geometry: {\n type: 'Point',\n coordinates: [\n parseFloat(place.longitude ?? DEFAULT_LONGITUDE),\n parseFloat(place.latitude ?? DEFAULT_LATITUDE),\n ],\n },\n })),\n [places],\n );\n\n const { clusters, supercluster } = useSupercluster({\n points,\n bounds,\n zoom,\n options: { radius: 75, maxZoom: 20 },\n });\n\n const firstPosition = useMemo(() => {\n if (points.length > 0) {\n const [longitude, latitude] = points[0].geometry.coordinates;\n return { lat: latitude, lng: longitude };\n }\n return { lat: DEFAULT_LATITUDE, lng: DEFAULT_LONGITUDE };\n }, [points]);\n\n const toggleGroupOptions = [\n { value: 'ALL', label: 'Todos' },\n { value: 'DEVICE', label: 'Emissores' },\n { value: 'GATEWAY', label: 'Terminais' },\n ];\n\n const handleToggleChange = (newValue) => {\n setDeviceType(newValue);\n };\n\n return (\n
\n
\n \n \n \n \n \n \n \n \n \n
\n {\n mapRef.current = map;\n }}\n onChange={({ zoom, bounds }) => {\n setZoom(zoom);\n setBounds([\n bounds.nw.lng,\n bounds.se.lat,\n bounds.se.lng,\n bounds.nw.lat,\n ]);\n }}\n >\n {clusters.map((cluster) => {\n const [longitude, latitude] = cluster.geometry.coordinates;\n const {\n cluster: isCluster,\n point_count: pointCount,\n deviceType,\n pointId,\n state,\n } = cluster.properties;\n\n if (isCluster) {\n const totalPoints = points.length || 1; // Prevent division by zero\n const size = 10 + (pointCount / totalPoints) * 20;\n return (\n \n {\n const expansionZoom = Math.min(\n supercluster.getClusterExpansionZoom(cluster.id),\n 20,\n );\n mapRef.current.setZoom(expansionZoom);\n mapRef.current.panTo({ lat: latitude, lng: longitude });\n }}\n >\n {pointCount}\n
\n \n );\n }\n\n const markerIcon = deviceType === 'DEVICE' ? 'fa-hdd' : 'fa-desktop';\n\n return (\n \n );\n })}\n \n
\n \n \n
\n \n );\n}\n","import React, { forwardRef, useEffect, useState } from 'react';\nimport clsx from 'clsx';\nimport { isFragment } from 'react-is';\n\nexport const CardHeaderIcon = forwardRef(({ className }, ref) => (\n \n));\n\nexport const CardHeaderTitle = forwardRef(({ className, ...props }, ref) => (\n // eslint-disable-next-line jsx-a11y/heading-has-content\n

\n));\n\nexport const CardHeaderToolbar = forwardRef(\n ({ children, className, ...props }, ref) => (\n
\n {children}\n
\n ),\n);\n\nexport const CardHeader = forwardRef(\n (\n {\n children,\n icon,\n title,\n toolbar,\n className,\n sticky = false,\n labelRef,\n ...props\n },\n ref,\n ) => {\n const [top, setTop] = useState(0);\n const [windowHeight, setWindowHeight] = useState(0);\n\n useEffect(() => {\n handleResize();\n\n function handleResize() {\n setWindowHeight(window.innerWidth);\n }\n\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n });\n\n useEffect(() => {\n // Skip if sticky is disabled or on initial render when we don't know about window height.\n if (!sticky || windowHeight === 0) {\n return;\n }\n\n const headerElement = document.querySelector('.header');\n const subheaderElement = document.querySelector('.subheader');\n const headerMobileElement = document.querySelector('.header-mobile');\n\n let nextMarginTop = 0;\n\n // mobile header\n if (window.getComputedStyle(headerElement).height === '0px') {\n nextMarginTop = headerMobileElement.offsetHeight;\n } else {\n // desktop header\n if (document.body.classList.contains('header-minimize-topbar')) {\n // hardcoded minimized header height\n nextMarginTop = 60;\n } else {\n // normal fixed header\n if (document.body.classList.contains('header-fixed')) {\n nextMarginTop += headerElement.offsetHeight;\n }\n\n if (document.body.classList.contains('subheader-fixed')) {\n nextMarginTop += subheaderElement.offsetHeight;\n }\n }\n }\n\n setTop(nextMarginTop);\n }, [sticky, windowHeight]);\n\n return (\n \n {title != null && (\n
\n {icon}\n\n {/* Wrap string and fragments in CardHeaderTitle */\n typeof title === 'string' || isFragment(title) ? (\n {title}\n ) : (\n title\n )}\n
\n )}\n\n {toolbar}\n {children}\n \n );\n },\n);\n\nexport const CardBody = forwardRef(\n ({ fit, fluid, className, ...props }, ref) => (\n \n ),\n);\n\nexport const CardFooter = forwardRef(({ className, ...props }, ref) => (\n
\n));\n\nexport const Card = forwardRef(({ fluidHeight, className, elevation = true, ...props }, ref) => (\n \n));\n\n// Set display names for debugging.\nif (process.env.NODE_ENV !== 'production') {\n Card.displayName = 'Card';\n\n CardHeader.displayName = 'CardHeader';\n CardHeaderIcon.displayName = 'CardHeaderIcon';\n CardHeaderTitle.displayName = 'CardHeaderTitle';\n CardHeaderToolbar.displayName = 'CardHeaderToolbar';\n\n CardBody.displayName = 'CardBody';\n CardFooter.displayName = 'CardFooter';\n}\n","import React, { useState } from 'react';\nimport { FieldFeedbackLabel } from './FieldFeedbackLabel';\nimport InputMask from 'react-input-mask';\nimport { getFormFieldCSSClass } from './shared';\n\nexport function Input({\n field, // { name, value, onChange, onBlur }\n form, // also values, setXXXX, handleXXXX, dirty, isValid, status, etc.\n label,\n withFeedbackLabel = true,\n customFeedbackLabel,\n type = 'text',\n password = false,\n required = false,\n ...props\n}) {\n const [showPassword, setShowPassword] = useState(false);\n\n const error = form?.errors?.[field.name];\n const touched = form?.touched?.[field.name];\n\n // Define o tipo de input com base no estado showPassword e na prop password\n const inputType = password ? (showPassword ? 'text' : 'password') : type;\n\n const toggleShowPassword = () => {\n setShowPassword((prevState) => !prevState);\n };\n\n return (\n <>\n {label && (\n \n )}\n
\n \n {password && (\n \n {showPassword ? (\n \n ) : (\n \n )}\n \n )}\n
\n {withFeedbackLabel && (\n \n )}\n \n );\n}\n","import React from 'react';\nimport { FieldFeedbackLabel } from './FieldFeedbackLabel';\nimport { getFormFieldCSSClass } from './shared';\n\nexport function Checkbox(props) {\n // Desestruturação das props, tentando extrair as do Formik\n const { field, form, isSelected, onChange, disabled, label, children, required, withFeedbackLabel = true, ...rest } = props;\n\n // Se estiver usando Formik, use os valores de field; senão, fallback para as props antigas\n const checked = field ? field.value : isSelected;\n const handleChange = field ? field.onChange : onChange;\n const handleBlur = field ? field.onBlur : rest.onBlur;\n const name = field ? field.name : rest.name;\n\n // Para feedback, se estiver com Formik, busca erros e touched; senão, pode usar fallbacks ou ignorar\n const error = form?.errors?.[name];\n const touched = form?.touched?.[name];\n\n return (\n <>\n {/* Input oculto para manter a estrutura */}\n \n \n \n {label ? (\n <>\n {label} {required && *}\n \n ) : (\n children\n )}\n \n \n {withFeedbackLabel && (\n \n )}\n \n );\n}\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React from 'react';\nimport { getPages, getPagesCount } from '../../../_helpers';\n\nexport function PaginationLinks({ paginationProps, loading }) {\n const { totalSize, sizePerPage, page, paginationSize } = paginationProps;\n const pagesCount = getPagesCount(totalSize, sizePerPage);\n const pages = getPages(page, pagesCount, paginationSize);\n \n const handleFirstPage = ({ onPageChange }) => {\n if (!loading) onPageChange(1);\n };\n\n const handlePrevPage = ({ page, onPageChange }) => {\n if (!loading && page > 1) onPageChange(page - 1);\n };\n\n const handleNextPage = ({ page, onPageChange }) => {\n if (!loading && page < pagesCount) {\n onPageChange(page + 1);\n }\n };\n\n const handleLastPage = ({ onPageChange }) => {\n if (!loading) onPageChange(pagesCount);\n };\n\n const handleSelectedPage = ({ onPageChange }, pageNum) => {\n if (!loading) onPageChange(pageNum);\n };\n\n const disabledClass = pagesCount > 1 ? '' : 'disabled';\n return (\n <>\n {pagesCount < 2 && <>}\n {pagesCount > 1 && (\n <>\n
\n {page > 1 && <>\n handleFirstPage(paginationProps)}\n className=\"btn btn-icon btn-sm btn-light btn-hover-primary mr-2 my-1\"\n >\n \n \n handlePrevPage(paginationProps)}\n className=\"btn btn-icon btn-sm btn-light btn-hover-primary mr-2 my-1\"\n >\n \n \n \n ...\n \n }\n {pages.map((p) => (\n handleSelectedPage(paginationProps, p)}\n className={`btn btn-icon btn-sm border-0 btn-light ${page === p ? ' btn-hover-primary active' : ''\n } mr-2 my-1`}\n >\n {p}\n \n ))}\n {page < pagesCount && <>\n \n ...\n \n handleNextPage(paginationProps)}\n className=\"btn btn-icon btn-sm btn-light btn-hover-primary mr-2 my-1\"\n >\n \n \n handleLastPage(paginationProps)}\n className=\"btn btn-icon btn-sm btn-light btn-hover-primary mr-2 my-1\"\n >\n \n \n }\n
\n \n )}\n \n );\n}\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React from 'react';\n\nexport function PagelessLinks({ paginationProps, loading }) {\n const { nextPageKey, page } = paginationProps;\n\n const handleFirstPage = ({ onPageChange, onPageKeyChange }) => {\n if (!loading) {\n onPageChange(1);\n onPageKeyChange(undefined);\n }\n };\n\n const handleNextPage = ({ onPageKeyChange }) => {\n if (!loading && nextPageKey) onPageKeyChange(nextPageKey);\n };\n\n return (\n <>\n
\n handleFirstPage(paginationProps)}\n className=\"btn btn-icon btn-sm btn-light btn-hover-primary mr-2 my-1\"\n >\n \n \n {nextPageKey && (\n handleNextPage(paginationProps)}\n className=\"btn btn-icon btn-sm btn-light btn-hover-primary mr-2 my-1\"\n >\n \n \n )}\n
\n \n );\n}\n","import { PaginationTotalStandalone } from 'react-bootstrap-table2-paginator';\n/* eslint-disable no-unused-vars */\nimport React from 'react';\nimport { SelectInput } from '../../../../_nubo/_partials/controls/inputs/SelectInput';\n\nexport function PaginationToolbar(props) {\n const { isLoading, paginationProps } = props;\n const {\n sizePerPageList = [\n { text: '10', value: 10 },\n { text: '50', value: 50 },\n { text: '100', value: 100 },\n ],\n sizePerPage,\n totalSize,\n onSizePerPageChange,\n } = paginationProps;\n\n const style = {\n width: '75px',\n };\n\n const onSizeChange = (event) => {\n const newSize = +event.target.value;\n onSizePerPageChange(newSize);\n };\n\n return (\n
\n {isLoading && (\n
\n
Carregando...
\n
\n
\n )}\n ({\n id: option.text,\n name: option.page,\n }))}\n />\n \n
\n );\n}\n","import React from 'react';\nimport { PaginationLinks } from './PaginationLinks';\nimport { PagelessLinks } from './PagelessLinks';\nimport { PaginationToolbar } from './PaginationToolbar';\n\nexport function Pagination(props) {\n const {\n children,\n disabled,\n isLoading,\n paginationProps,\n onSizePerPageChange,\n pageless,\n } = props;\n return (\n <>\n {children}\n {!disabled && (\n
\n {pageless ? (\n \n ) : (\n \n )}\n \n
\n )}\n \n );\n}\n","import React from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { ProgressBar } from 'react-bootstrap';\n\n// TODO: Should be rewrited to pure function\nclass AnimateLoading extends React.Component {\n animateTimeout;\n stopAnimateTimeout;\n state = {\n width: 0,\n routeChanged: false,\n };\n\n componentDidUpdate(nextProps) {\n if (this.props.location.pathname !== nextProps.location.pathname) {\n this.animate();\n this.scrollToTop();\n }\n }\n\n scrollToTop() {\n const scrollToTopBtn = document.getElementById('kt_scrolltop');\n if (scrollToTopBtn) {\n scrollToTopBtn.click();\n }\n }\n\n animate() {\n this.animateTimeout = setTimeout(() => {\n if (this.state.width <= 100) {\n this.setState({ width: this.state.width + 10 });\n this.animate();\n } else {\n this.stopAnimate();\n }\n }, 30);\n }\n stopAnimate() {\n clearTimeout(this.animateInterval);\n this.stopAnimateTimeout = setTimeout(() => {\n this.setState({ width: 0 });\n }, 300);\n }\n componentWillUnmount() {\n if (this.stopAnimateTimeout) {\n clearTimeout(this.stopAnimateTimeout);\n }\n if (this.animateTimeout) {\n clearTimeout(this.animateTimeout);\n }\n }\n render() {\n return (\n \n {this.state.width > 0 && (\n \n )}\n
\n );\n }\n}\n\nexport default withRouter(AnimateLoading);\n","import clsx from 'clsx';\nimport React, { forwardRef } from 'react';\nimport SVG from 'react-inlinesvg';\nimport { toAbsoluteUrl } from '../../_helpers';\n\nexport const Notice = forwardRef(\n (\n {\n icon,\n svg,\n iconRef,\n textRef,\n iconWrapperRef,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n return (\n \n
\n \n \n \n
\n\n
\n {children}\n
\n \n );\n },\n);\n\n// Set display name for debugging.\nif (process.env.NODE_ENV !== 'production') {\n Notice.displayName = 'Notice';\n}\n","import React from 'react';\nimport { ProgressBar } from 'react-bootstrap';\n\nexport function ModalProgressBar({ variant = 'success' }) {\n return (\n \n );\n}\n","// CodeExamples\nexport { CodeBlock } from './code-examples/CodeBlock';\nexport { CodeBlockToolbar } from './code-examples/CodeBlockToolbar';\nexport { CodeExample } from './code-examples/CodeExample';\nexport { CodeExampleSimple } from './code-examples/CodeExampleSimple';\n\n// KTCodeExamples\nexport { KTCodeBlock } from './code-examples-kt/KTCodeBlock';\nexport { KTCodeExample } from './code-examples-kt/KTCodeExample';\n\n// Forms\nexport { DatePickerField } from './forms/DatePickerField';\nexport { DateRangePicker } from './forms/DateRangePicker';\nexport { FieldFeedbackLabel } from './forms/FieldFeedbackLabel';\nexport { FormAlert } from './forms/FormAlert';\nexport { Input } from './forms/Input';\nexport { Checkbox } from './forms/Checkbox';\nexport { Switch } from './forms/Switch';\nexport { HeaderCheckbox } from './forms/HeaderCheckbox';\nexport { Select } from './forms/Select';\nexport { MultiSelect } from './forms/MultiSelect';\nexport { Autocomplete } from './forms/Autocomplete';\n\n// Paginations\nexport { Pagination } from './pagination/Pagination';\nexport { PaginationLinks } from './pagination/PaginationLinks';\nexport { PaginationToolbar } from './pagination/PaginationToolbar';\n\n// Controls\nexport * from './Card';\nexport { default as AnimateLoading } from './AnimateLoading';\nexport { LoadingDialog } from './LoadingDialog';\nexport { Notice } from './Notice';\nexport { SVGIcon } from './SVGIcon';\nexport { ModalProgressBar } from './ModalProgressBar';\n","import React from 'react';\nimport ReactSelect from 'react-select';\nimport makeAnimated from 'react-select/animated';\n\nconst animatedComponent = makeAnimated();\n\nexport const MultiSelect = ({\n label,\n choices,\n isLoading,\n defaultValue = [],\n placeholder,\n onChange,\n helperText,\n useBgColor = false,\n ...props\n}) => (\n <>\n {label && }\n onChange(choices || [])}\n isDisabled={isLoading}\n isLoading={isLoading}\n closeMenuOnSelect={false}\n components={animatedComponent}\n defaultValue={defaultValue}\n isMulti\n placeholder={placeholder}\n classNamePrefix=\"react-select\"\n className={useBgColor ? 'use-bg-color' : ''}\n noOptionsMessage={() => 'Nenhuma opção encontrada'}\n options={choices}\n {...props}\n />\n {helperText && {helperText}}\n \n);\n","import { Icon } from '@iconify/react';\nimport React from 'react';\nimport locationIcon from '@iconify/icons-mdi/map-marker';\n\nexport const MapsLocationPin = ({ text }) => (\n
\n \n

{text}

\n
\n);\n","import GoogleMapReact from 'google-map-react';\nimport React from 'react';\nimport { shallowEqual, useSelector } from 'react-redux';\nimport styled from 'styled-components';\nimport { MapsLocationPin } from './MapsLocationPin';\n\nconst Wrapper = styled.div`\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n background-color: #000;\n border: 2px solid #fff;\n border-radius: 100%;\n user-select: none;\n transform: translate(-50%, -50%);\n cursor: ${(props) => (props.onClick ? 'pointer' : 'default')};\n &:hover {\n z-index: 1;\n }\n`;\n\nexport function MapsSimple({ places }) {\n let sty;\n\n const { isDark } = useSelector((state) => state.appConfig, shallowEqual);\n if (isDark) {\n sty = require('./DarkGoogleMapStyles.json');\n } else {\n sty = require('./GoogleMapStyles.json');\n }\n\n if (!places || places.length === 0) {\n return null;\n }\n\n const coordinates = places.map((place) => ({\n lat: parseFloat(place.position.lat),\n lng: parseFloat(place.position.lng),\n }));\n\n return (\n
\n \n \n {places.map((place, index) => (\n \n ))}\n \n \n
\n );\n}\n","import React from 'react';\n\nconst keyframes = `\n@keyframes loading {\n 0% {\n transform: translateX(-100%);\n }\n 50% {\n transform: translateX(0);\n }\n 100% {\n transform: translateX(100%);\n }\n}`;\n\nexport const LoadingBar= () => (\n
\n \n
\n
\n);","export { CalendarHeatMapChart } from '../_components/ChartCalendarHeatMap';\nexport { MapsClustering } from '../_components/MapsClustering/MapsClustering';\nexport { MapsSimple } from '../_components/MapsSimple/MapsSimple';\nexport { LoadingBar } from '../_components/LoadingBar';\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nexport const SelectInput = ({\n name,\n label: labelProp,\n choices,\n placeholder,\n disabled,\n onChange,\n onBlur,\n value,\n className,\n style,\n helperText,\n}) => {\n return (\n <>\n {labelProp && }\n \n {choices.map((choice) => (\n \n ))}\n \n {helperText && (\n {helperText}\n )}\n \n );\n};\n\nSelectInput.propTypes = {\n name: PropTypes.string,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n choices: PropTypes.arrayOf(PropTypes.object),\n label: PropTypes.string,\n helperText: PropTypes.any,\n placeholder: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n onChange: PropTypes.func,\n onBlur: PropTypes.func,\n};\n\nSelectInput.defaultProps = {\n className: 'form-control',\n disabled: false,\n};\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialSelfStates = {\n error: null,\n loading: false,\n licenses: [],\n selfInfo: null,\n licenseTypes: [],\n users: []\n};\n\nexport const selfSlice = createSlice({\n name: 'self',\n initialState: initialSelfStates,\n reducers: {\n startCall: (state) => {\n state.error = null;\n state.loading = true;\n },\n selfUpdate: (state, action) => {\n const { licenses = [], users = [], _links = null, ...selfInfo } = action.payload;\n\n // Mapeia as licenças para o formato desejado\n const formattedLicenses = licenses.map((license) => ({\n id: license?.license_package?.id || null,\n name: license?.license_package?.name || null,\n description: license?.license_package?.description || null,\n }));\n\n state.licenses = formattedLicenses; // Atualiza o estado com o novo formato\n state.selfInfo = selfInfo;\n state.users = users;\n state.error = null;\n state.loading = false;\n },\n catchError: (state, action) => {\n state.loading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n finishCall: (state) => {\n state.error = null;\n state.loading = false;\n },\n },\n});\n","/* eslint-disable */\n'use strict';\n\nimport { KTUtil } from './util';\n\n// Component Definition\nvar KTMenu = function(elementId, options) {\n // Main object\n var the = this;\n var init = false;\n\n // Get element object\n var element = KTUtil.getById(elementId);\n var body = KTUtil.getBody();\n\n if (!element) {\n return;\n }\n\n // Default options\n var defaultOptions = {\n // scrollable area with Perfect Scroll\n scroll: {\n rememberPosition: false,\n },\n\n // accordion submenu mode\n accordion: {\n slideSpeed: 200, // accordion toggle slide speed in milliseconds\n autoScroll: false, // enable auto scrolling(focus) to the clicked menu item\n autoScrollSpeed: 1200,\n expandAll: true, // allow having multiple expanded accordions in the menu\n },\n\n // dropdown submenu mode\n dropdown: {\n timeout: 500, // timeout in milliseconds to show and hide the hoverable submenu dropdown\n },\n };\n\n ////////////////////////////\n // ** Private Methods ** //\n ////////////////////////////\n\n var Plugin = {\n /**\n * Run plugin\n * @returns {KTMenu}\n */\n construct: function(options) {\n if (KTUtil.data(element).has('menu')) {\n the = KTUtil.data(element).get('menu');\n } else {\n // reset menu\n Plugin.init(options);\n\n // reset menu\n Plugin.reset();\n\n // build menu\n Plugin.build();\n\n KTUtil.data(element).set('menu', the);\n }\n\n return the;\n },\n\n /**\n * Handles submenu click toggle\n * @returns {KTMenu}\n */\n init: function(options) {\n the.events = [];\n\n the.eventHandlers = {};\n\n // merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n\n // pause menu\n the.pauseDropdownHoverTime = 0;\n\n the.uid = KTUtil.getUniqueID();\n },\n\n update: function(options) {\n // merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n\n // pause menu\n the.pauseDropdownHoverTime = 0;\n\n // reset menu\n Plugin.reset();\n\n the.eventHandlers = {};\n\n // build menu\n Plugin.build();\n\n KTUtil.data(element).set('menu', the);\n },\n\n reload: function() {\n // reset menu\n Plugin.reset();\n\n // build menu\n Plugin.build();\n\n // reset submenu props\n Plugin.resetSubmenuProps();\n },\n\n /**\n * Reset menu\n * @returns {KTMenu}\n */\n build: function() {\n // General accordion submenu toggle\n the.eventHandlers['event_1'] = KTUtil.on(\n element,\n '.menu-toggle',\n 'click',\n Plugin.handleSubmenuAccordion,\n );\n\n // Dropdown mode(hoverable)\n if (\n Plugin.getSubmenuMode() === 'dropdown' ||\n Plugin.isConditionalSubmenuDropdown()\n ) {\n // dropdown submenu - hover toggle\n the.eventHandlers['event_2'] = KTUtil.on(\n element,\n '[data-menu-toggle=\"hover\"]',\n 'mouseover',\n Plugin.handleSubmenuDrodownHoverEnter,\n );\n the.eventHandlers['event_3'] = KTUtil.on(\n element,\n '[data-menu-toggle=\"hover\"]',\n 'mouseout',\n Plugin.handleSubmenuDrodownHoverExit,\n );\n\n // dropdown submenu - click toggle\n the.eventHandlers['event_4'] = KTUtil.on(\n element,\n '[data-menu-toggle=\"click\"] > .menu-toggle, [data-menu-toggle=\"click\"] > .menu-link .menu-toggle',\n 'click',\n Plugin.handleSubmenuDropdownClick,\n );\n the.eventHandlers['event_5'] = KTUtil.on(\n element,\n '[data-menu-toggle=\"tab\"] > .menu-toggle, [data-menu-toggle=\"tab\"] > .menu-link .menu-toggle',\n 'click',\n Plugin.handleSubmenuDropdownTabClick,\n );\n }\n\n // Handle general link click\n the.eventHandlers['event_6'] = KTUtil.on(\n element,\n '.menu-item > .menu-link:not(.menu-toggle):not(.menu-link-toggle-skip)',\n 'click',\n Plugin.handleLinkClick,\n );\n\n // Init scrollable menu\n if (the.options.scroll && the.options.scroll.height) {\n Plugin.scrollInit();\n }\n },\n\n /**\n * Reset menu\n * @returns {KTMenu}\n */\n reset: function() {\n KTUtil.off(element, 'click', the.eventHandlers['event_1']);\n\n // dropdown submenu - hover toggle\n KTUtil.off(element, 'mouseover', the.eventHandlers['event_2']);\n KTUtil.off(element, 'mouseout', the.eventHandlers['event_3']);\n\n // dropdown submenu - click toggle\n KTUtil.off(element, 'click', the.eventHandlers['event_4']);\n KTUtil.off(element, 'click', the.eventHandlers['event_5']);\n\n // handle link click\n KTUtil.off(element, 'click', the.eventHandlers['event_6']);\n },\n\n /**\n * Init scroll menu\n *\n */\n scrollInit: function() {\n if (the.options.scroll && the.options.scroll.height) {\n KTUtil.scrollDestroy(element, true);\n KTUtil.scrollInit(element, {\n mobileNativeScroll: true,\n windowScroll: false,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: the.options.scroll.height,\n rememberPosition: the.options.scroll.rememberPosition,\n });\n } else {\n KTUtil.scrollDestroy(element, true);\n }\n },\n\n /**\n * Update scroll menu\n */\n scrollUpdate: function() {\n if (the.options.scroll && the.options.scroll.height) {\n KTUtil.scrollUpdate(element);\n }\n },\n\n /**\n * Scroll top\n */\n scrollTop: function() {\n if (the.options.scroll && the.options.scroll.height) {\n KTUtil.scrollTop(element);\n }\n },\n\n /**\n * Get submenu mode for current breakpoint and menu state\n * @returns {KTMenu}\n */\n getSubmenuMode: function(el) {\n if (KTUtil.isBreakpointUp('lg')) {\n if (\n el &&\n KTUtil.hasAttr(el, 'data-menu-toggle') &&\n KTUtil.attr(el, 'data-menu-toggle') == 'hover'\n ) {\n return 'dropdown';\n }\n\n if (KTUtil.isset(the.options.submenu, 'desktop.state.body')) {\n if (KTUtil.hasClasses(body, the.options.submenu.desktop.state.body)) {\n return the.options.submenu.desktop.state.mode;\n } else {\n return the.options.submenu.desktop.default;\n }\n } else if (KTUtil.isset(the.options.submenu, 'desktop')) {\n return the.options.submenu.desktop;\n }\n } else if (\n KTUtil.isBreakpointUp('md') &&\n KTUtil.isBreakpointDown('lg') &&\n KTUtil.isset(the.options.submenu, 'tablet')\n ) {\n return the.options.submenu.tablet;\n } else if (\n KTUtil.isBreakpointDown('md') &&\n KTUtil.isset(the.options.submenu, 'mobile')\n ) {\n return the.options.submenu.mobile;\n } else {\n return false;\n }\n },\n\n /**\n * Get submenu mode for current breakpoint and menu state\n * @returns {KTMenu}\n */\n isConditionalSubmenuDropdown: function() {\n if (\n KTUtil.isBreakpointUp('lg') &&\n KTUtil.isset(the.options.submenu, 'desktop.state.body')\n ) {\n return true;\n } else {\n return false;\n }\n },\n\n /**\n * Reset submenu attributes\n * @returns {KTMenu}\n */\n resetSubmenuProps: function(e) {\n var submenus = KTUtil.findAll(element, '.menu-submenu');\n if (submenus) {\n for (var i = 0, len = submenus.length; i < len; i++) {\n var submenu = submenus[0];\n\n KTUtil.css(submenu, 'display', '');\n KTUtil.css(submenu, 'overflow', '');\n\n if (submenu.hasAttribute('data-hor-direction')) {\n KTUtil.removeClass(submenu, 'menu-submenu-left');\n KTUtil.removeClass(submenu, 'menu-submenu-right');\n KTUtil.addClass(\n submenu,\n submenu.getAttribute('data-hor-direction'),\n );\n }\n }\n }\n },\n\n /**\n * Handles submenu hover toggle\n * @returns {KTMenu}\n */\n handleSubmenuDrodownHoverEnter: function(e) {\n if (Plugin.getSubmenuMode(this) === 'accordion') {\n return;\n }\n\n if (the.resumeDropdownHover() === false) {\n return;\n }\n\n var item = this;\n\n if (item.getAttribute('data-hover') == '1') {\n item.removeAttribute('data-hover');\n clearTimeout(item.getAttribute('data-timeout'));\n item.removeAttribute('data-timeout');\n }\n\n Plugin.showSubmenuDropdown(item);\n },\n\n /**\n * Handles submenu hover toggle\n * @returns {KTMenu}\n */\n handleSubmenuDrodownHoverExit: function(e) {\n if (the.resumeDropdownHover() === false) {\n return;\n }\n\n if (Plugin.getSubmenuMode(this) === 'accordion') {\n return;\n }\n\n var item = this;\n var time = the.options.dropdown.timeout;\n\n var timeout = setTimeout(function() {\n if (item.getAttribute('data-hover') == '1') {\n Plugin.hideSubmenuDropdown(item, true);\n }\n }, time);\n\n item.setAttribute('data-hover', '1');\n item.setAttribute('data-timeout', timeout);\n },\n\n /**\n * Handles submenu click toggle\n * @returns {KTMenu}\n */\n handleSubmenuDropdownClick: function(e) {\n if (Plugin.getSubmenuMode(this) === 'accordion') {\n return;\n }\n\n var item = this.closest('.menu-item');\n\n // Trigger click event handlers\n var result = Plugin.eventTrigger('submenuToggle', this, e);\n if (result === false) {\n return;\n }\n\n if (item.getAttribute('data-menu-submenu-mode') == 'accordion') {\n return;\n }\n\n if (KTUtil.hasClass(item, 'menu-item-hover') === false) {\n KTUtil.addClass(item, 'menu-item-open-dropdown');\n Plugin.showSubmenuDropdown(item);\n } else {\n KTUtil.removeClass(item, 'menu-item-open-dropdown');\n Plugin.hideSubmenuDropdown(item, true);\n }\n\n e.preventDefault();\n },\n\n /**\n * Handles tab click toggle\n * @returns {KTMenu}\n */\n handleSubmenuDropdownTabClick: function(e) {\n if (Plugin.getSubmenuMode(this) === 'accordion') {\n return;\n }\n var item = this.closest('.menu-item');\n\n // Trigger click event handlers\n var result = Plugin.eventTrigger('submenuToggle', this, e);\n if (result === false) {\n return;\n }\n\n if (item.getAttribute('data-menu-submenu-mode') == 'accordion') {\n return;\n }\n\n if (KTUtil.hasClass(item, 'menu-item-hover') == false) {\n KTUtil.addClass(item, 'menu-item-open-dropdown');\n Plugin.showSubmenuDropdown(item);\n }\n\n e.preventDefault();\n },\n\n /**\n * Handles link click\n * @returns {KTMenu}\n */\n handleLinkClick: function(e) {\n var submenu = this.closest('.menu-item.menu-item-submenu');\n\n // Trigger click event handlers\n var result = Plugin.eventTrigger('linkClick', this, e);\n if (result === false) {\n return;\n }\n\n if (submenu && Plugin.getSubmenuMode(submenu) === 'dropdown') {\n Plugin.hideSubmenuDropdowns();\n }\n },\n\n /**\n * Handles submenu dropdown close on link click\n * @returns {KTMenu}\n */\n handleSubmenuDropdownClose: function(e, el) {\n // exit if its not submenu dropdown mode\n if (Plugin.getSubmenuMode(el) === 'accordion') {\n return;\n }\n\n var shown = element.querySelectorAll(\n '.menu-item.menu-item-submenu.menu-item-hover:not(.menu-item-tabs)',\n );\n\n // check if currently clicked link's parent item ha\n if (\n shown.length > 0 &&\n KTUtil.hasClass(el, 'menu-toggle') === false &&\n el.querySelectorAll('.menu-toggle').length === 0\n ) {\n // close opened dropdown menus\n for (var i = 0, len = shown.length; i < len; i++) {\n Plugin.hideSubmenuDropdown(shown[0], true);\n }\n }\n },\n\n /**\n * helper functions\n * @returns {KTMenu}\n */\n handleSubmenuAccordion: function(e, el) {\n var query;\n var item = el ? el : this;\n\n // Trigger click event handlers\n var result = Plugin.eventTrigger('submenuToggle', this, e);\n if (result === false) {\n return;\n }\n\n if (\n Plugin.getSubmenuMode(el) === 'dropdown' &&\n (query = item.closest('.menu-item'))\n ) {\n if (query.getAttribute('data-menu-submenu-mode') != 'accordion') {\n e.preventDefault();\n return;\n }\n }\n\n var li = item.closest('.menu-item');\n var submenu = KTUtil.child(li, '.menu-submenu, .menu-inner');\n\n if (\n KTUtil.hasClass(item.closest('.menu-item'), 'menu-item-open-always')\n ) {\n return;\n }\n\n if (li && submenu) {\n e.preventDefault();\n var speed = the.options.accordion.slideSpeed;\n var hasClosables = false;\n\n if (KTUtil.hasClass(li, 'menu-item-open') === false) {\n // hide other accordions\n if (the.options.accordion.expandAll === false) {\n var subnav = item.closest('.menu-nav, .menu-subnav');\n var closables = KTUtil.children(\n subnav,\n '.menu-item.menu-item-open.menu-item-submenu:not(.menu-item-here):not(.menu-item-open-always)',\n );\n\n if (subnav && closables) {\n for (var i = 0, len = closables.length; i < len; i++) {\n var el_ = closables[0];\n var submenu_ = KTUtil.child(el_, '.menu-submenu');\n if (submenu_) {\n KTUtil.slideUp(submenu_, speed, function() {\n Plugin.scrollUpdate();\n KTUtil.removeClass(el_, 'menu-item-open');\n });\n }\n }\n }\n }\n\n KTUtil.slideDown(submenu, speed, function() {\n Plugin.scrollToItem(item);\n Plugin.scrollUpdate();\n\n Plugin.eventTrigger('submenuToggle', submenu, e);\n });\n\n KTUtil.addClass(li, 'menu-item-open');\n } else {\n KTUtil.slideUp(submenu, speed, function() {\n Plugin.scrollToItem(item);\n Plugin.scrollUpdate();\n Plugin.eventTrigger('submenuToggle', submenu, e);\n });\n\n KTUtil.removeClass(li, 'menu-item-open');\n }\n }\n },\n\n /**\n * scroll to item function\n * @returns {KTMenu}\n */\n scrollToItem: function(item) {\n // handle auto scroll for accordion submenus\n if (\n KTUtil.isBreakpointUp('lg') &&\n the.options.accordion.autoScroll &&\n element.getAttribute('data-menu-scroll') !== '1'\n ) {\n KTUtil.scrollTo(item, the.options.accordion.autoScrollSpeed);\n }\n },\n\n /**\n * Hide submenu dropdown\n * @returns {KTMenu}\n */\n hideSubmenuDropdown: function(item, classAlso) {\n // remove submenu activation class\n if (classAlso) {\n KTUtil.removeClass(item, 'menu-item-hover');\n KTUtil.removeClass(item, 'menu-item-active-tab');\n }\n\n // clear timeout\n item.removeAttribute('data-hover');\n\n if (item.getAttribute('data-menu-toggle-class')) {\n KTUtil.removeClass(body, item.getAttribute('data-menu-toggle-class'));\n }\n\n var timeout = item.getAttribute('data-timeout');\n item.removeAttribute('data-timeout');\n clearTimeout(timeout);\n },\n\n /**\n * Hide submenu dropdowns\n * @returns {KTMenu}\n */\n hideSubmenuDropdowns: function() {\n var items;\n if (\n (items = element.querySelectorAll(\n '.menu-item-submenu.menu-item-hover:not(.menu-item-tabs):not([data-menu-toggle=\"tab\"])',\n ))\n ) {\n for (var j = 0, cnt = items.length; j < cnt; j++) {\n Plugin.hideSubmenuDropdown(items[j], true);\n }\n }\n },\n\n /**\n * helper functions\n * @returns {KTMenu}\n */\n showSubmenuDropdown: function(item) {\n // close active submenus\n var list = element.querySelectorAll(\n '.menu-item-submenu.menu-item-hover, .menu-item-submenu.menu-item-active-tab',\n );\n\n if (list) {\n for (var i = 0, len = list.length; i < len; i++) {\n var el = list[i];\n if (\n item !== el &&\n el.contains(item) === false &&\n item.contains(el) === false\n ) {\n Plugin.hideSubmenuDropdown(el, true);\n }\n }\n }\n\n // add submenu activation class\n KTUtil.addClass(item, 'menu-item-hover');\n\n // Change the alignment of submenu is offscreen.\n var submenu = KTUtil.find(item, '.menu-submenu');\n\n if (submenu && submenu.hasAttribute('data-hor-direction') === false) {\n if (KTUtil.hasClass(submenu, 'menu-submenu-left')) {\n submenu.setAttribute('data-hor-direction', 'menu-submenu-left');\n } else if (KTUtil.hasClass(submenu, 'menu-submenu-right')) {\n submenu.setAttribute('data-hor-direction', 'menu-submenu-right');\n }\n }\n\n if (submenu && KTUtil.isOffscreen(submenu, 'left', 15) === true) {\n KTUtil.removeClass(submenu, 'menu-submenu-left');\n KTUtil.addClass(submenu, 'menu-submenu-right');\n } else if (submenu && KTUtil.isOffscreen(submenu, 'right', 15) === true) {\n KTUtil.removeClass(submenu, 'menu-submenu-right');\n KTUtil.addClass(submenu, 'menu-submenu-left');\n }\n\n if (item.getAttribute('data-menu-toggle-class')) {\n KTUtil.addClass(body, item.getAttribute('data-menu-toggle-class'));\n }\n },\n\n /**\n * Handles submenu slide toggle\n * @returns {KTMenu}\n */\n createSubmenuDropdownClickDropoff: function(el) {\n var query;\n var zIndex =\n (query = KTUtil.child(el, '.menu-submenu')\n ? KTUtil.css(query, 'z-index')\n : 0) - 1;\n\n var dropoff = document.createElement(\n '
',\n );\n\n body.appendChild(dropoff);\n\n KTUtil.addEvent(dropoff, 'click', function(e) {\n e.stopPropagation();\n e.preventDefault();\n KTUtil.remove(this);\n Plugin.hideSubmenuDropdown(el, true);\n });\n },\n\n /**\n * Handles submenu hover toggle\n * @returns {KTMenu}\n */\n pauseDropdownHover: function(time) {\n var date = new Date();\n\n the.pauseDropdownHoverTime = date.getTime() + time;\n },\n\n /**\n * Handles submenu hover toggle\n * @returns {KTMenu}\n */\n resumeDropdownHover: function() {\n var date = new Date();\n\n return date.getTime() > the.pauseDropdownHoverTime ? true : false;\n },\n\n /**\n * Reset menu's current active item\n * @returns {KTMenu}\n */\n resetActiveItem: function(item) {\n var list;\n var parents;\n\n list = element.querySelectorAll('.menu-item-active');\n\n for (var i = 0, len = list.length; i < len; i++) {\n var el = list[0];\n KTUtil.removeClass(el, 'menu-item-active');\n KTUtil.hide(KTUtil.child(el, '.menu-submenu'));\n parents = KTUtil.parents(el, '.menu-item-submenu') || [];\n\n for (var i_ = 0, len_ = parents.length; i_ < len_; i_++) {\n var el_ = parents[i];\n KTUtil.removeClass(el_, 'menu-item-open');\n KTUtil.hide(KTUtil.child(el_, '.menu-submenu'));\n }\n }\n\n // close open submenus\n if (the.options.accordion.expandAll === false) {\n if ((list = element.querySelectorAll('.menu-item-open'))) {\n for (var i = 0, len = list.length; i < len; i++) {\n KTUtil.removeClass(parents[0], 'menu-item-open');\n }\n }\n }\n },\n\n /**\n * Sets menu's active item\n * @returns {KTMenu}\n */\n setActiveItem: function(item) {\n // reset current active item\n Plugin.resetActiveItem();\n\n var parents = KTUtil.parents(item, '.menu-item-submenu') || [];\n for (var i = 0, len = parents.length; i < len; i++) {\n KTUtil.addClass(parents[i], 'menu-item-open');\n }\n\n KTUtil.addClass(item, 'menu-item-active');\n },\n\n /**\n * Returns page breadcrumbs for the menu's active item\n * @returns {KTMenu}\n */\n getBreadcrumbs: function(item) {\n var query;\n var breadcrumbs = [];\n var link = KTUtil.child(item, '.menu-link');\n\n breadcrumbs.push({\n text: (query = KTUtil.child(link, '.menu-text') ? query.innerHTML : ''),\n title: link.getAttribute('title'),\n href: link.getAttribute('href'),\n });\n\n var parents = KTUtil.parents(item, '.menu-item-submenu');\n for (var i = 0, len = parents.length; i < len; i++) {\n var submenuLink = KTUtil.child(parents[i], '.menu-link');\n\n breadcrumbs.push({\n text: (query = KTUtil.child(submenuLink, '.menu-text')\n ? query.innerHTML\n : ''),\n title: submenuLink.getAttribute('title'),\n href: submenuLink.getAttribute('href'),\n });\n }\n\n return breadcrumbs.reverse();\n },\n\n /**\n * Returns page title for the menu's active item\n * @returns {KTMenu}\n */\n getPageTitle: function(item) {\n var query;\n\n return (query = KTUtil.child(item, '.menu-text') ? query.innerHTML : '');\n },\n\n /**\n * Trigger events\n */\n eventTrigger: function(name, target, e) {\n for (var i = 0; i < the.events.length; i++) {\n var event = the.events[i];\n if (event.name == name) {\n if (event.one == true) {\n if (event.fired == false) {\n the.events[i].fired = true;\n return event.handler.call(this, target, e);\n }\n } else {\n return event.handler.call(this, target, e);\n }\n }\n }\n },\n\n addEvent: function(name, handler, one) {\n the.events.push({\n name: name,\n handler: handler,\n one: one,\n fired: false,\n });\n },\n\n removeEvent: function(name) {\n if (the.events[name]) {\n delete the.events[name];\n }\n },\n };\n\n //////////////////////////\n // ** Public Methods ** //\n //////////////////////////\n\n /**\n * Set default options\n */\n\n the.setDefaults = function(options) {\n defaultOptions = options;\n };\n\n /**\n * Update scroll\n */\n the.scrollUpdate = function() {\n return Plugin.scrollUpdate();\n };\n\n /**\n * Re-init scroll\n */\n the.scrollReInit = function() {\n return Plugin.scrollInit();\n };\n\n /**\n * Scroll top\n */\n the.scrollTop = function() {\n return Plugin.scrollTop();\n };\n\n /**\n * Set active menu item\n */\n the.setActiveItem = function(item) {\n return Plugin.setActiveItem(item);\n };\n\n the.reload = function() {\n return Plugin.reload();\n };\n\n the.update = function(options) {\n return Plugin.update(options);\n };\n\n /**\n * Set breadcrumb for menu item\n */\n the.getBreadcrumbs = function(item) {\n return Plugin.getBreadcrumbs(item);\n };\n\n /**\n * Set page title for menu item\n */\n the.getPageTitle = function(item) {\n return Plugin.getPageTitle(item);\n };\n\n /**\n * Get submenu mode\n */\n the.getSubmenuMode = function(el) {\n return Plugin.getSubmenuMode(el);\n };\n\n /**\n * Hide dropdown\n * @returns {Object}\n */\n the.hideDropdown = function(item) {\n Plugin.hideSubmenuDropdown(item, true);\n };\n\n /**\n * Hide dropdowns\n * @returns {Object}\n */\n the.hideDropdowns = function() {\n Plugin.hideSubmenuDropdowns();\n };\n\n /**\n * Disable menu for given time\n * @returns {Object}\n */\n the.pauseDropdownHover = function(time) {\n Plugin.pauseDropdownHover(time);\n };\n\n /**\n * Disable menu for given time\n * @returns {Object}\n */\n the.resumeDropdownHover = function() {\n return Plugin.resumeDropdownHover();\n };\n\n /**\n * Register event\n */\n the.on = function(name, handler) {\n return Plugin.addEvent(name, handler);\n };\n\n the.off = function(name) {\n return Plugin.removeEvent(name);\n };\n\n the.one = function(name, handler) {\n return Plugin.addEvent(name, handler, true);\n };\n\n ///////////////////////////////\n // ** Plugin Construction ** //\n ///////////////////////////////\n\n // Run plugin\n Plugin.construct.apply(the, [options]);\n\n // Handle plugin on window resize\n KTUtil.addResizeHandler(function() {\n if (init) {\n the.reload();\n }\n });\n\n // Init done\n init = true;\n\n // Return plugin instance\n return the;\n};\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n // module.exports = KTMenu;\n}\n\n// Plugin global lazy initialization\ndocument.addEventListener('click', function(e) {\n var body = KTUtil.getByTagName('body')[0];\n var query;\n if (\n (query = body.querySelectorAll(\n '.menu-nav .menu-item.menu-item-submenu.menu-item-hover:not(.menu-item-tabs)[data-menu-toggle=\"click\"]',\n ))\n ) {\n for (var i = 0, len = query.length; i < len; i++) {\n var element = query[i].closest('.menu-nav').parentNode;\n\n if (element) {\n var the = KTUtil.data(element).get('menu');\n\n if (!the) {\n break;\n }\n\n if (!the || the.getSubmenuMode() !== 'dropdown') {\n break;\n }\n\n if (e.target !== element && element.contains(e.target) === false) {\n the.hideDropdowns();\n }\n }\n }\n }\n});\n\nexport default KTMenu;\n","/* eslint-disable */\n'use strict';\n\nimport { KTUtil } from './util';\n\n// Component Definition\nvar KTToggle = function(toggleElement, targetElement, options) {\n // Main object\n var the = this;\n var init = false;\n\n // Get element object\n var element = toggleElement;\n var target = targetElement;\n\n if (!element) {\n return;\n }\n\n // Default options\n var defaultOptions = {\n targetToggleMode: 'class', // class|attribute\n };\n\n ////////////////////////////\n // ** Private Methods ** //\n ////////////////////////////\n\n var Plugin = {\n /**\n * Construct\n */\n\n construct: function(options) {\n if (KTUtil.data(element).has('toggle')) {\n the = KTUtil.data(element).get('toggle');\n } else {\n // reset menu\n Plugin.init(options);\n\n // build menu\n Plugin.build();\n\n KTUtil.data(element).set('toggle', the);\n }\n\n return the;\n },\n\n /**\n * Handles subtoggle click toggle\n */\n init: function(options) {\n the.element = element;\n the.events = [];\n\n // Merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n\n //alert(the.options.target.tagName);\n the.target = target;\n\n the.targetState = the.options.targetState;\n the.toggleState = the.options.toggleState;\n\n if (the.options.targetToggleMode == 'class') {\n the.state = KTUtil.hasClasses(the.target, the.targetState)\n ? 'on'\n : 'off';\n } else {\n the.state = KTUtil.hasAttr(the.target, 'data-' + the.targetState)\n ? KTUtil.attr(the.target, 'data-' + the.targetState)\n : 'off';\n }\n },\n\n /**\n * Setup toggle\n */\n build: function() {\n KTUtil.addEvent(element, 'mouseup', Plugin.toggle);\n },\n\n /**\n * Handles offcanvas click toggle\n */\n toggle: function(e) {\n Plugin.eventTrigger('beforeToggle');\n\n if (the.state == 'off') {\n Plugin.toggleOn();\n } else {\n Plugin.toggleOff();\n }\n\n Plugin.eventTrigger('afterToggle');\n\n e.preventDefault();\n\n return the;\n },\n\n /**\n * Handles toggle click toggle\n */\n toggleOn: function() {\n Plugin.eventTrigger('beforeOn');\n\n if (the.options.targetToggleMode == 'class') {\n KTUtil.addClass(the.target, the.targetState);\n } else {\n KTUtil.attr(the.target, 'data-' + the.targetState, 'on');\n }\n\n if (the.toggleState) {\n KTUtil.addClass(element, the.toggleState);\n }\n\n the.state = 'on';\n\n Plugin.eventTrigger('afterOn');\n\n Plugin.eventTrigger('toggle');\n\n return the;\n },\n\n /**\n * Handles toggle click toggle\n */\n toggleOff: function() {\n Plugin.eventTrigger('beforeOff');\n\n if (the.options.targetToggleMode == 'class') {\n KTUtil.removeClass(the.target, the.targetState);\n } else {\n KTUtil.removeAttr(the.target, 'data-' + the.targetState);\n }\n\n if (the.toggleState) {\n KTUtil.removeClass(element, the.toggleState);\n }\n\n the.state = 'off';\n\n Plugin.eventTrigger('afterOff');\n\n Plugin.eventTrigger('toggle');\n\n return the;\n },\n\n /**\n * Trigger events\n */\n eventTrigger: function(name) {\n for (var i = 0; i < the.events.length; i++) {\n var event = the.events[i];\n\n if (event.name == name) {\n if (event.one == true) {\n if (event.fired == false) {\n the.events[i].fired = true;\n return event.handler.call(this, the);\n }\n } else {\n return event.handler.call(this, the);\n }\n }\n }\n },\n\n addEvent: function(name, handler, one) {\n the.events.push({\n name: name,\n handler: handler,\n one: one,\n fired: false,\n });\n\n return the;\n },\n };\n\n //////////////////////////\n // ** Public Methods ** //\n //////////////////////////\n\n /**\n * Set default options\n */\n\n the.setDefaults = function(options) {\n defaultOptions = options;\n };\n\n /**\n * Get toggle state\n */\n the.getState = function() {\n return the.state;\n };\n\n /**\n * Toggle\n */\n the.toggle = function() {\n return Plugin.toggle();\n };\n\n /**\n * Toggle on\n */\n the.toggleOn = function() {\n return Plugin.toggleOn();\n };\n\n /**\n * Toggle off\n */\n the.toggleOff = function() {\n return Plugin.toggleOff();\n };\n\n /**\n * Attach event\n * @returns {KTToggle}\n */\n the.on = function(name, handler) {\n return Plugin.addEvent(name, handler);\n };\n\n /**\n * Attach event that will be fired once\n * @returns {KTToggle}\n */\n the.one = function(name, handler) {\n return Plugin.addEvent(name, handler, true);\n };\n\n // Construct plugin\n Plugin.construct.apply(the, [options]);\n\n return the;\n};\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n // module.exports = KTToggle;\n}\n\nexport default KTToggle;\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst IS_DARK_LOCALSTORAGE_KEY = 'theme.isDark';\n\nconst toogleDarkTheme = (isDark) => {\n if (isDark) {\n document.documentElement.classList.add('dark-theme');\n document.documentElement.classList.remove('light-theme');\n } else {\n document.documentElement.classList.add('light-theme');\n document.documentElement.classList.remove('dark-theme');\n }\n localStorage.setItem(IS_DARK_LOCALSTORAGE_KEY, isDark);\n return isDark;\n};\n\nconst initialDeviceMapState = {\n isDark: toogleDarkTheme(localStorage.getItem(IS_DARK_LOCALSTORAGE_KEY) === 'true'),\n};\n\nexport const callTypes = {\n toggleDark: 'toggle-dark',\n};\n\nexport const appConfigSlice = createSlice({\n name: 'appConfig',\n initialState: initialDeviceMapState,\n reducers: {\n toggleDark: (state) => {\n state.isDark = toogleDarkTheme(!state.isDark);\n },\n },\n});\n","export function verifyResaleOrMaster(licenses) {\n return licenses.some(\n (license) => license.id === 34 || license.id === 17,\n );\n}","export { verifyResaleOrMaster } from './checkLicenses'","export const formatFilter = (queryParams) => {\n if (!queryParams) {\n return '';\n }\n let filterArray = [];\n for (let param in queryParams) {\n /** per page custom filters */\n if (param === 'filter') {\n for (let filterKey in queryParams[param]) {\n let filter = queryParams[param];\n /** nested objects filters\n * e.g. URL?alarms.type=RETENTION_TIME\n * Filters must be prepared in the format `filter.alarms = { type: alarm_type };`\n **/\n if (\n typeof filter[filterKey] === 'object' &&\n !Array.isArray(filter[filterKey])\n ) {\n for (let filterObjectKey in filter[filterKey]) {\n if (filter[filterKey][filterObjectKey] !== undefined) {\n filterArray.push(\n filterKey +\n '.' +\n filterObjectKey +\n '=' +\n encodeURIComponent(filter[filterKey][filterObjectKey]),\n );\n }\n }\n } else if (Array.isArray(filter[filterKey])) {\n for (let filterObjectKey in filter[filterKey]) {\n if (filter[filterKey][filterObjectKey] !== undefined) {\n filterArray.push(\n filterKey +\n '=' +\n encodeURIComponent(filter[filterKey][filterObjectKey]),\n );\n }\n }\n } else {\n if (\n filter[filterKey] !== '' &&\n filter[filterKey] !== undefined\n ) {\n filterArray.push(\n filterKey + '=' + encodeURIComponent(filter[filterKey]),\n );\n }\n }\n }\n } else {\n if (queryParams[param] !== undefined) {\n filterArray.push(param + '=' + encodeURIComponent(queryParams[param]));\n }\n }\n }\n\n let formattedQuery = '';\n if (filterArray.length > 0) {\n formattedQuery = '?' + filterArray.join('&');\n }\n\n formattedQuery = formattedQuery.replace('sortField', 'sort_field');\n formattedQuery = formattedQuery.replace('sortOrder', 'sort_order');\n formattedQuery = formattedQuery.replace('pageNumber', 'page');\n formattedQuery = formattedQuery.replace('pageSize', 'per_page');\n formattedQuery = formattedQuery.replace('alarm_id', 'config_id');\n formattedQuery = formattedQuery.replace('config.state', 'config_state');\n \n // pageless\n formattedQuery = formattedQuery.replace('pageKey', 'page_key');\n\n return formattedQuery;\n};\n","import { createSlice } from '@reduxjs/toolkit';\n\nexport const GroupingValues = {\n All: 'Emissores',\n Enterprise: 'Empresas',\n Location: 'Regiões',\n};\n\nconst initialDeviceMapState = {\n isLoading: false,\n totalCount: 0,\n entities: [],\n error: null,\n groupingValues: [Object.keys(GroupingValues)[0]],\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n};\n\nexport const deviceMapSlice = createSlice({\n name: 'deviceMap',\n initialState: initialDeviceMapState,\n reducers: {\n catchError: (state, action) => {\n state.error = `${action.type}: ${action.payload.error}`;\n state.isLoading = false;\n },\n startCall: (state, action) => {\n state.error = null;\n state.isLoading = true;\n },\n deviceMapFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.isLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n setGroupingValues: (state, action) => {\n state.groupingValues = action.payload;\n },\n },\n});\n","import React from \"react\";\nimport { FieldFeedbackLabel } from \"./FieldFeedbackLabel\";\nimport { getFormFieldCSSClass } from './shared';\n\nexport function Select({\n field,\n form,\n label,\n withFeedbackLabel = true,\n customFeedbackLabel,\n children,\n choices,\n ...props\n}) {\n const error = form && form.errors && form.errors[field.name];\n const touched = form && form.touched && form.touched[field.name];\n\n const isChecked = choice => (props.multiple && props.value instanceof Array)\n ? props.value.includes(choice.value)\n : props.value === choice.value;\n\n return (\n <>\n {label && }\n \n {children || choices.map(choice => (\n \n ))}\n \n {withFeedbackLabel && (\n \n )}\n \n );\n}\n","import { useState, useEffect } from 'react';\n\nconst BREAKPOINTS = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400,\n};\n\nexport function useIsBelowBreakpoint(breakpoint = 'md') {\n const threshold = BREAKPOINTS[breakpoint] || BREAKPOINTS['md'];\n const [isBelow, setIsBelow] = useState(\n typeof window !== 'undefined' ? window.innerWidth < threshold : false\n );\n\n useEffect(() => {\n const handleResize = () => setIsBelow(window.innerWidth < threshold);\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [threshold]);\n\n return isBelow;\n}\n","import { useCallback, useState, useEffect, useRef } from 'react';\r\nimport { useHistory } from 'react-router';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nconst getQueryParams = (search, values) => {\r\n const searchParams = new URLSearchParams(search);\r\n let value = {\r\n ...values,\r\n };\r\n if (searchParams.get('q')) {\r\n try {\r\n const data = JSON.parse(searchParams.get('q'));\r\n Object.assign(value, data);\r\n } catch (err) {\r\n //\r\n }\r\n }\r\n\r\n return value;\r\n};\r\n\r\nexport function useFilter({ fetchAction, initialValues, fetchOnParamsChange }) {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const [queryParams, setQueryParams] = useState(() =>\r\n getQueryParams(history.location.search, initialValues),\r\n );\r\n \r\n const previousQueryParams = useRef(queryParams);\r\n const isFirstRender = useRef(true);\r\n\r\n const fetchRecords = useCallback(\r\n (params = queryParams) => {\r\n if (!fetchAction) return;\r\n dispatch(fetchAction(params));\r\n },\r\n [dispatch, fetchAction, queryParams],\r\n );\r\n\r\n useEffect(() => {\r\n if (isFirstRender.current) {\r\n fetchRecords(queryParams);\r\n isFirstRender.current = false;\r\n }\r\n }, [fetchRecords, queryParams]);\r\n\r\n useEffect(() => {\r\n if (fetchOnParamsChange) {\r\n if (JSON.stringify(previousQueryParams.current) !== JSON.stringify(queryParams)) {\r\n fetchRecords(queryParams);\r\n previousQueryParams.current = queryParams; // Update the ref to the new params\r\n }\r\n }\r\n }, [queryParams, fetchOnParamsChange, fetchRecords]);\r\n\r\n const changeQueryParams = (data) => {\r\n const historyQueryParams = queryParams;\r\n const mergedFilterParams = {\r\n ...historyQueryParams,\r\n ...data,\r\n filter: {\r\n ...historyQueryParams?.filter,\r\n ...data?.filter,\r\n },\r\n };\r\n\r\n history.push({\r\n pathname: history.location.pathname,\r\n search:\r\n '?' +\r\n new URLSearchParams({\r\n q: JSON.stringify({\r\n ...mergedFilterParams,\r\n }),\r\n }).toString(),\r\n });\r\n\r\n setQueryParams(mergedFilterParams);\r\n };\r\n\r\n return {\r\n queryParams,\r\n setQueryParams: changeQueryParams,\r\n fetchRecords,\r\n };\r\n}\r\n","export * from './useBreakpoint';\nexport { useFilter } from './use-filter';\n","import React, { useRef } from 'react';\nimport ReactBootstrapDateRangePicker from 'react-bootstrap-daterangepicker';\nimport 'bootstrap-daterangepicker/daterangepicker.css';\nimport moment from 'moment';\nimport { FieldFeedbackLabel } from './FieldFeedbackLabel';\n\nexport const DateRangePicker = ({\n field: { name },\n form: { touched, errors }, \n label,\n customFeedbackLabel,\n withFeedbackLabel = true,\n startDate,\n endDate,\n maxDate = moment().endOf('day').toDate(),\n onChange,\n}) => { \n const inputEl = useRef(null);\n return <>\n {label && }\n
\n \n {\n onChange({ start, end });\n }}\n >\n \n \n
\n {withFeedbackLabel && (\n \n )}\n ;\n};\n","import React, { useState, useRef } from 'react';\nimport Select from 'react-select';\nimport { isEqual } from 'lodash';\nimport makeAnimated from 'react-select/animated';\n\nconst animatedComponent = makeAnimated();\n\nexport function Autocomplete({\n filter,\n onChange,\n options,\n fetchAction,\n value,\n optionsLoading,\n helperText,\n useBgColor = false,\n isMulti = false,\n isClearable = true,\n label,\n ...props\n}) {\n const [inputValue, setInputValue] = useState('');\n const timeoutId = useRef(null);\n\n const onInputChange = (value) => {\n setInputValue(value);\n if (value && !isEqual(value, filter)) {\n if (timeoutId.current) clearTimeout(timeoutId.current);\n timeoutId.current = setTimeout(() => fetchAction({ model: value }), 500);\n }\n };\n\n const onSelect = (e) => {\n setInputValue(null);\n onChange(e);\n };\n\n return (\n <>\n {label && }\n 'Nenhuma opção encontrada'}\n styles={{\n singleValue: (provided) => ({\n ...provided,\n color: '#B5B5C3',\n }),\n }}\n filterOption={!fetchAction ? true : null}\n isMulti={isMulti}\n {...props}\n />\n {helperText && (\n {helperText}\n )}\n \n );\n}\n","import React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { LoadingBar } from '../_partials/_components';\n\nexport function CardLoading(props) {\n const { children, isLoading, indicator = \"spinner\" } = props;\n\n const renderSpinner = () => (\n <>\n {isLoading ? (\n
\n
\n \n
\n
\n ) : (\n children\n )}\n \n );\n\n switch (indicator.toLowerCase()) {\n case \"spinner\":\n return renderSpinner()\n case \"bar\":\n return isLoading ? : children\n default:\n return renderSpinner()\n }\n}","export function removeCSSClass(ele, cls) {\n const reg = new RegExp('(\\\\s|^)' + cls + '(\\\\s|$)');\n ele.className = ele.className.replace(reg, ' ');\n}\n\nexport function addCSSClass(ele, cls) {\n ele.classList.add(cls);\n}\n\nexport const toAbsoluteUrl = (pathname) => process.env.PUBLIC_URL + pathname;\n","import * as utils from './LocalStorageHelpers';\n\nconst localStorageLastLocationKey = 'metronic-lastLocation';\n\nfunction acceptLocation(lastLocation) {\n if (\n lastLocation &&\n lastLocation.pathname &&\n lastLocation.pathname !== '/' &&\n lastLocation.pathname.indexOf('auth') === -1 &&\n lastLocation.pathname !== '/logout'\n ) {\n return true;\n }\n\n return false;\n}\n\nexport function saveLastLocation(lastLocation) {\n if (acceptLocation(lastLocation)) {\n utils.setStorage(\n localStorageLastLocationKey,\n JSON.stringify(lastLocation),\n 120,\n );\n }\n}\n\nexport function forgotLastLocation() {\n utils.removeStorage(localStorageLastLocationKey);\n}\n\nexport function getLastLocation() {\n const defaultLocation = { pathname: '/', title: 'Dashboard' };\n const localStorateLocations = utils.getStorage(localStorageLastLocationKey);\n if (!localStorateLocations) {\n return { pathname: '/', title: 'Dashboard' };\n }\n\n try {\n const result = JSON.parse(localStorateLocations);\n return result;\n } catch (error) {\n console.error(error);\n return defaultLocation;\n }\n}\n\nexport function getCurrentUrl(location) {\n return location.pathname.split(/[?#]/)[0];\n}\n\nexport function checkIsActive(location, url) {\n const current = getCurrentUrl(location);\n if (!current || !url) {\n return false;\n }\n\n if (current === url) {\n return true;\n }\n\n if (current.indexOf(url) > -1) {\n return true;\n }\n\n return false;\n}\n","/* Pagination Helprs */\nimport React from 'react';\n\nexport const getPagesCount = (totalSize, sizePerPage) => {\n return Math.ceil(totalSize / sizePerPage);\n};\n\nexport const getPages = (page, pagesCount, paginationSize) => {\n const result = [];\n if (!page) {\n return result;\n }\n\n if (pagesCount === 1) {\n result.push(1);\n return result;\n }\n\n if (pagesCount < page) {\n return result;\n }\n\n if (pagesCount < paginationSize + 1) {\n for (let i = 1; i < pagesCount + 1; i++) {\n result.push(i);\n }\n return result;\n }\n\n if (page === 1) {\n for (let i = 1; i < paginationSize + 1; i++) {\n if (i < pagesCount) {\n result.push(i);\n }\n }\n return result;\n }\n\n if (page === pagesCount) {\n for (let i = pagesCount - paginationSize + 1; i <= pagesCount; i++) {\n if (i <= pagesCount) {\n result.push(i);\n }\n }\n return result;\n }\n\n const shiftCount = Math.floor(paginationSize / 2);\n if (shiftCount < 1) {\n result.push(page);\n return result;\n }\n\n //\n if (page < shiftCount + 2) {\n for (let i = 1; i < paginationSize + 1; i++) {\n result.push(i);\n }\n return result;\n }\n\n if (pagesCount - page < shiftCount + 2) {\n for (let i = pagesCount - paginationSize; i < pagesCount + 1; i++) {\n result.push(i);\n }\n return result;\n }\n\n for (let i = page - shiftCount; i < page; i++) {\n if (i > 0) {\n result.push(i);\n }\n }\n result.push(page);\n for (let i = page + 1; i < page + shiftCount + 1; i++) {\n if (i <= pagesCount) {\n result.push(i);\n }\n }\n\n return result;\n};\n\nexport function getHandlerTableChange(setQueryParams) {\n return (type, { page, sizePerPage, sortField, sortOrder }) => {\n const pageNumber = page || 1;\n switch (type) {\n case 'sort': return setQueryParams({ sortOrder, sortField });\n case 'pagination': return setQueryParams({ pageNumber, pageSize: sizePerPage });\n default: return {};\n }\n };\n}\n\nexport function PleaseWaitMessage({ entities }) {\n return <>{entities === null &&
Please wait...
};\n}\n\nexport function NoRecordsFoundMessage({ entities }) {\n const customersList = entities === null ? [] : entities;\n return (\n <>\n {customersList.length === 0 && entities !== null && (\n
Nenhum registro encontrado
\n )}\n \n );\n}\n","import React from 'react';\nimport { Checkbox } from '../_partials/controls';\n\nconst SelectionCheckbox = ({ isSelected, onChange, listLoading }) =>\n ;\n\nconst existsEntity = (entities, searchEntity, keyField) =>\n entities.some((entity) => searchEntity[keyField] === entity[keyField]);\n\nfunction groupingItemOnSelect({ isSelected, entity, keyField, selectedEntities = [], setSelectedEntities }) {\n let newEntities = [...selectedEntities];\n if (isSelected) {\n newEntities = newEntities.filter((e) => e[keyField] !== entity[keyField]);\n } else {\n newEntities.push(entity);\n }\n setSelectedEntities(newEntities);\n}\n\nfunction groupingAllOnSelect({ isSelected, keyField, selectedEntities = [], entities = [], setSelectedEntities }) {\n if (!isSelected) {\n setSelectedEntities([\n ...selectedEntities,\n ...entities.filter(entity => !existsEntity(selectedEntities, entity, keyField)),\n ]);\n } else {\n setSelectedEntities([\n ...selectedEntities.filter(selectedEntity => !existsEntity(entities, selectedEntity, keyField)),\n ]);\n }\n}\n\n// check official documentations: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Row%20Selection&selectedStory=Custom%20Selection%20Column%20Header%20Style&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\nconst globalData = {};\nexport function getSelectRow(props) {\n globalData[props.key] = props;\n return {\n mode: 'checkbox',\n clickToSelect: true,\n hideSelectAll: false,\n selectionHeaderRenderer: () => {\n globalData[props.key] = props;\n const { entities, selectedEntities, keyField } = globalData[props.key];\n const isSelected =\n entities && entities.length > 0 && entities\n .map(entity => existsEntity(selectedEntities, entity, keyField))\n .reduce((accum, value) => accum && value, true);\n\n return (\n groupingAllOnSelect({ ...globalData[props.key], isSelected })}\n />\n );\n },\n selectionRenderer: ({ rowIndex }) => {\n const { entities, selectedEntities, keyField } = globalData[props.key];\n const entity = entities[rowIndex];\n const isSelected = existsEntity(selectedEntities, entity, keyField);\n return (\n groupingItemOnSelect({ ...globalData[props.key], isSelected, entity })}\n />\n );\n },\n };\n}\n","/* Pagination Helprs */\nimport React from 'react';\nimport SVG from 'react-inlinesvg';\nimport { toAbsoluteUrl } from './AssetsHelpers';\n\nexport const sortCaret = (order, column) => {\n if (!order)\n return (\n \n \n \n );\n else if (order === 'asc')\n return (\n \n \n \n );\n else if (order === 'desc')\n return (\n \n \n \n );\n return null;\n};\n\nexport const headerSortingClasses = (\n column,\n sortOrder,\n isLastSorting,\n colIndex,\n) => (sortOrder === 'asc' || sortOrder === 'desc' ? 'sortable-active' : '');\n","export * from './AssetsHelpers';\nexport * from './LocalStorageHelpers';\nexport * from './RouterHelpers';\nexport * from './TablePaginationHelpers';\nexport * from './TableRowSelectionHelpers';\nexport * from './TableSortingHelpers';\n","export const AlarmType = {\r\n RETENTION_TIME: 'Envio de Cupons',\r\n IN_MEMORY: 'Retenção de Cupons',\r\n BATTERY_LEVEL: 'Nível de Bateria',\r\n CERTIFICATE_EXPIRATION: 'Expiração do Certificado',\r\n SEFAZ_CONNECTION: 'Comunicação SEFAZ',\r\n NTP_SYNC: 'Relógio Interno',\r\n OP_STATUS: 'Estado de Operação',\r\n WAN_STATUS: 'Estado da WAN',\r\n DEVICE_OFF: 'Dispositivo Offline',\r\n GATEWAY_OFF: 'Terminal Offline'\r\n};\r\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialActionsState = {\n listLoading: false,\n itemLoading: false,\n actionLoading: false,\n totalCount: 0,\n entities: [],\n actionForEdit: null,\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n item: 'item',\n action: 'action',\n};\n\nexport const actionsSlice = createSlice({\n name: 'actions',\n initialState: initialActionsState,\n reducers: {\n catchError: (state, action) => {\n state.listLoading = false;\n state.itemLoading = false;\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = false;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n\n actionFetched: (state, action) => {\n state.itemLoading = false;\n state.actionForEdit = action.payload.actionForEdit;\n state.error = null;\n },\n \n actionsFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n\n actionUpdated: (state, action) => {\n state.error = null;\n state.actionLoading = false;\n state.entities = state.entities.map((entity) => {\n if (entity.id === action.payload.action.id) {\n return action.payload.action;\n }\n return entity;\n });\n },\n\n actionTaskUpdated: (state, action) => {\n state.error = null;\n state.actionLoading = false;\n const iotTask = state.actionForEdit.iot_tasks\n .find(iotTask => iotTask.id === action.payload.actionTask.id);\n if (iotTask) {\n Object.assign(iotTask, action.payload.actionTask);\n }\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialAlarmsState = {\n listLoading: false,\n actionsLoading: false,\n totalCount: 0,\n entities: null,\n alarmForEdit: undefined,\n notifications: null,\n lastError: null,\n};\nexport const callTypes = {\n list: 'list',\n action: 'action',\n};\n\nexport const alarmsSlice = createSlice({\n name: 'alarms',\n initialState: initialAlarmsState,\n reducers: {\n catchError: (state, action) => {\n state.error = `${action.type}: ${action.payload.error}`;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else {\n state.actionsLoading = false;\n }\n },\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else {\n state.actionsLoading = true;\n }\n },\n // getAlarmById\n alarmFetched: (state, action) => {\n state.actionsLoading = false;\n state.alarmForEdit = action.payload.alarmForEdit;\n state.error = null;\n },\n // findNotifications\n notificationsFetched: (state, action) => {\n const { entities } = action.payload;\n state.notifications = entities;\n },\n notificationDeleted: (state, action) => {\n state.error = null;\n state.actionsLoading = false;\n state.entities = state.entities.filter(\n (el) => el.id !== action.payload.id,\n );\n },\n // findAlarms\n alarmsFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n // createAlarm\n alarmCreated: (state, action) => {\n state.actionsLoading = false;\n state.error = null;\n state.entities.push(action.payload.alarm);\n },\n // updateAlarm\n alarmUpdated: (state, action) => {\n state.error = null;\n state.actionsLoading = false;\n state.entities = state.entities.map((entity, index) => {\n return action.payload.alarm.data[index];\n });\n },\n // updateAlarmLocally\n alarmUpdatedLocally: (state, action) => {\n state.error = null;\n state.actionsLoading = false;\n state.entities = state.entities.map((entity) => {\n if (entity.id === action.payload[0].id) {\n return action.payload[0];\n }\n return entity;\n });\n },\n // updateAlarms\n alarmsUpdated: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n // deleteAlarm\n alarmDeleted: (state, action) => {\n state.error = null;\n state.actionsLoading = false;\n state.entities = state.entities.filter(\n (el) => el.id !== action.payload.id,\n );\n },\n // deleteAlarms\n alarmsDeleted: (state, action) => {\n state.error = null;\n state.actionsLoading = false;\n state.entities = state.entities.filter(\n (el) => !action.payload.ids.includes(el.id),\n );\n },\n // alarmsUpdateState\n alarmsStatusUpdated: (state, action) => {\n state.actionsLoading = false;\n state.error = null;\n const { ids, status } = action.payload;\n state.entities = state.entities.map((entity) => {\n if (ids.findIndex((id) => id === entity.id) > -1) {\n entity.status = status;\n }\n return entity;\n });\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialBranchesState = {\n listLoading: false,\n actionLoading: false,\n itemLoading: false,\n totalCount: 0,\n entities: [],\n branchForEdit: null,\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n item: 'item',\n};\n\nexport const branchesSlice = createSlice({\n name: 'branches',\n initialState: initialBranchesState,\n reducers: {\n catchError: (state, action) => {\n state.listLoading = false;\n state.itemLoading = false;\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = false;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n\n branchFetched: (state, action) => {\n state.branchForEdit = action.payload.branchForEdit;\n state.error = null;\n state.itemLoading = false;\n },\n\n branchesFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n\n branchUpdated: (state, action) => {\n state.error = null;\n state.actionLoading = false;\n state.entities = state.entities.map((entity) => {\n if (entity.id === action.payload.branch.id) {\n return action.payload.branch;\n }\n return entity;\n });\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialAccountsState = {\n listLoading: false,\n actionLoading: false,\n itemLoading: false,\n totalCount: 0,\n entities: [],\n accountForEdit: null,\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n item: 'item',\n};\n\nexport const accountsSlice = createSlice({\n name: 'accounts',\n initialState: initialAccountsState,\n reducers: {\n catchError: (state, action) => {\n state.listLoading = false;\n state.itemLoading = false;\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = false;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n\n accountFetched: (state, action) => {\n state.accountForEdit = action.payload.accountForEdit;\n state.error = null;\n state.itemLoading = false;\n },\n\n accountsFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n\n accountUpdated: (state, action) => {\n state.error = null;\n state.actionLoading = false;\n state.entities = state.entities.map((entity) => {\n if (entity.id === action.payload.account.id) {\n return action.payload.account;\n }\n return entity;\n });\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialLicensePackagesState = {\n listLoading: false,\n actionLoading: false,\n itemLoading: false,\n totalCount: 0,\n entities: [],\n licensePackageForEdit: null,\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n item: 'item',\n};\n\nexport const licensePackagesSlice = createSlice({\n name: 'licensePackages',\n initialState: initialLicensePackagesState,\n reducers: {\n catchError: (state, action) => {\n state.listLoading = false;\n state.itemLoading = false;\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = false;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n\n licensePackageFetched: (state, action) => {\n state.licensePackageForEdit = action.payload.licensePackageForEdit;\n state.error = null;\n state.itemLoading = false;\n },\n\n licensePackagesFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n\n licensePackageUpdated: (state, action) => {\n state.error = null;\n state.actionLoading = false;\n state.entities = state.entities.map((entity) => {\n if (entity.id === action.payload.licensePackage.id) {\n return action.payload.licensePackage;\n }\n return entity;\n });\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialEventsState = {\n listLoading: false,\n actionsLoading: false,\n totalCount: 0,\n entities: [],\n eventForEdit: undefined,\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n};\n\nexport const eventsMfeSlice = createSlice({\n name: 'eventsMfe',\n initialState: initialEventsState,\n reducers: {\n catchError: (state, action) => {\n state.error = `${action.type}: ${action.payload.error}`;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else {\n state.actionsLoading = false;\n }\n },\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else {\n state.actionsLoading = true;\n }\n },\n eventMfeFetched: (state, action) => {\n state.actionsLoading = false;\n state.eventForEdit = action.payload.eventForEdit;\n state.error = null;\n },\n eventsMfeFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialEventsState = {\n listLoading: false,\n actionsLoading: false,\n totalCount: 0,\n entities: [],\n eventForEdit: undefined,\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n};\n\nexport const eventsNfceSlice = createSlice({\n name: 'eventsNfce',\n initialState: initialEventsState,\n reducers: {\n catchError: (state, action) => {\n state.error = `${action.type}: ${action.payload.error}`;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else {\n state.actionsLoading = false;\n }\n },\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else {\n state.actionsLoading = true;\n }\n },\n eventNfceFetched: (state, action) => {\n state.actionsLoading = false;\n state.eventForEdit = action.payload.eventForEdit;\n state.error = null;\n },\n eventsNfceFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialEventsState = {\n listLoading: false,\n actionsLoading: false,\n totalCount: 0,\n entities: [],\n eventForEdit: undefined,\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n};\n\nexport const eventsSatSlice = createSlice({\n name: 'eventsSat',\n initialState: initialEventsState,\n reducers: {\n catchError: (state, action) => {\n state.error = `${action.type}: ${action.payload.error}`;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else {\n state.actionsLoading = false;\n }\n },\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else {\n state.actionsLoading = true;\n }\n },\n eventSatFetched: (state, action) => {\n state.actionsLoading = false;\n state.eventForEdit = action.payload.eventForEdit;\n state.error = null;\n },\n eventsSatFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialEventsState = {\n listLoading: false,\n actionsLoading: false,\n totalCount: 0,\n entities: [],\n eventForEdit: undefined,\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n};\n\nexport const eventsGatewaySlice = createSlice({\n name: 'eventsGateway',\n initialState: initialEventsState,\n reducers: {\n catchError: (state, action) => {\n state.error = `${action.type}: ${action.payload.error}`;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else {\n state.actionsLoading = false;\n }\n },\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else {\n state.actionsLoading = true;\n }\n },\n eventGatewayFetched: (state, action) => {\n state.actionsLoading = false;\n state.eventForEdit = action.payload.eventForEdit;\n state.error = null;\n },\n eventsGatewayFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialEventsState = {\n listLoading: false,\n actionsLoading: false,\n totalCount: 0,\n entities: [],\n eventForEdit: undefined,\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n};\n\nexport const eventsGlobalSlice = createSlice({\n name: 'eventsGlobal',\n initialState: initialEventsState,\n reducers: {\n catchError: (state, action) => {\n state.error = `${action.type}: ${action.payload.error}`;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else {\n state.actionsLoading = false;\n }\n },\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else {\n state.actionsLoading = true;\n }\n },\n eventsGlobalFetched: (state, action) => {\n const { nextPageKey, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.nextPageKey = nextPageKey;\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialCommHistoryState = {\n listLoading: false,\n actionsLoading: false,\n totalCount: 0,\n entities: [],\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n};\n\nexport const commHistorySlice = createSlice({\n name: 'commHistory',\n initialState: initialCommHistoryState,\n reducers: {\n catchError: (state, action) => {\n state.error = `${action.type}: ${action.payload.error}`;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else {\n state.actionsLoading = false;\n }\n },\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else {\n state.actionsLoading = true;\n }\n },\n commHistoryFetched: (state, action) => {\n const { nextPageKey, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.nextPageKey = nextPageKey;\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialMfesState = {\n error: null,\n listLoading: false,\n itemLoading: false,\n actionLoading: false,\n totalCount: 0,\n entities: [],\n mfeForEdit: null,\n};\n\nexport const callTypes = {\n list: 'list',\n item: 'item',\n action: 'action',\n};\n\nexport const mfesSlice = createSlice({\n name: 'mfes',\n initialState: initialMfesState,\n reducers: {\n catchError: (state, action) => {\n state.listLoading = false;\n state.itemLoading = false;\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = false;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n\n mfeFetched: (state, action) => {\n state.error = null;\n state.itemLoading = false;\n state.mfeForEdit = action.payload.mfeForEdit;\n },\n\n mfesFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.error = null;\n state.listLoading = false;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n\n mfeUpdated: (state, action) => {\n state.actionLoading = false;\n state.error = null;\n if (action.payload) {\n const { actions } = action.payload;\n if (state.mfeForEdit && actions) {\n state.mfeForEdit.actions = actions;\n }\n }\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialNfcesState = {\n error: null,\n listLoading: false,\n itemLoading: false,\n actionLoading: false,\n totalCount: 0,\n entities: [],\n nfceForEdit: null,\n};\n\nexport const callTypes = {\n list: 'list',\n item: 'item',\n action: 'action',\n};\n\nexport const nfcesSlice = createSlice({\n name: 'nfces',\n initialState: initialNfcesState,\n reducers: {\n catchError: (state, action) => {\n state.listLoading = false;\n state.itemLoading = false;\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = false;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n\n nfceFetched: (state, action) => {\n state.error = null;\n state.itemLoading = false;\n state.nfceForEdit = action.payload.nfceForEdit;\n },\n\n nfcesFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.error = null;\n state.listLoading = false;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n\n nfceUpdated: (state, action) => {\n state.actionLoading = false;\n state.error = null;\n if (action.payload) {\n const { actions } = action.payload;\n if (state.nfceForEdit && actions) {\n state.nfceForEdit.actions = actions;\n }\n }\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialRecipientsState = {\n listLoading: false,\n actionsLoading: false,\n totalCount: 0,\n entities: null,\n recipientForEdit: undefined,\n lastError: null,\n};\nexport const callTypes = {\n list: 'list',\n action: 'action',\n};\n\nexport const recipientsSlice = createSlice({\n name: 'recipients',\n initialState: initialRecipientsState,\n reducers: {\n catchError: (state, action) => {\n state.error = `${action.type}: ${action.payload.error}`;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else {\n state.actionsLoading = false;\n }\n },\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else {\n state.actionsLoading = true;\n }\n },\n // getRecipientById\n recipientFetched: (state, action) => {\n state.actionsLoading = false;\n state.recipientForEdit = action.payload.recipientForEdit;\n state.error = null;\n },\n // findRecipients\n recipientsFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n // createRecipient\n recipientCreated: (state, action) => {\n state.actionsLoading = false;\n state.error = null;\n state.entities.push(action.payload.recipient);\n },\n // updateRecipient\n recipientUpdated: (state, action) => {\n state.error = null;\n state.actionsLoading = false;\n state.entities = state.entities.map((entity) => {\n if (entity.id === action.payload.recipient.id) {\n return action.payload.recipient;\n }\n return entity;\n });\n },\n // deleteRecipient\n recipientDeleted: (state, action) => {\n state.error = null;\n state.actionsLoading = false;\n state.entities = state.entities.filter(\n (el) => el.id !== action.payload.id,\n );\n },\n // deleteRecipients\n recipientsDeleted: (state, action) => {\n state.error = null;\n state.actionsLoading = false;\n state.entities = state.entities.filter(\n (el) => !action.payload.ids.includes(el.id),\n );\n },\n // recipientsUpdateState\n recipientsStatusUpdated: (state, action) => {\n state.actionsLoading = false;\n state.error = null;\n const { ids, status } = action.payload;\n state.entities = state.entities.map((entity) => {\n if (ids.findIndex((id) => id === entity.id) > -1) {\n entity.status = status;\n }\n return entity;\n });\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialRegionsState = {\n listLoading: false,\n itemLoading: false,\n actionLoading: false,\n totalCount: 0,\n entities: [],\n regionForEdit: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n item: 'item',\n};\n\nexport const regionsSlice = createSlice({\n name: 'regions',\n initialState: initialRegionsState,\n reducers: {\n catchError: (state, action) => {\n state.listLoading = false;\n state.itemLoading = false;\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = false;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n \n // getRegionById\n regionFetched: (state, action) => {\n state.itemLoading = false;\n state.regionForEdit = action.payload.regionForEdit;\n state.error = null;\n },\n \n // findRegions\n regionsFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n\n // updateRegion\n regionUpdated: (state, action) => {\n state.error = null;\n state.actionLoading = false;\n state.entities = state.entities.map((entity) => {\n if (entity.id === action.payload.region.id) {\n return action.payload.region;\n }\n return entity;\n });\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialTerminalsState = {\n error: null,\n listLoading: false,\n itemLoading: false,\n actionLoading: false,\n totalCount: 0,\n entities: [],\n terminalForEdit: null,\n};\n\nexport const callTypes = {\n list: 'list',\n item: 'item',\n action: 'action',\n};\n\nexport const terminalsSlice = createSlice({\n name: 'terminals',\n initialState: initialTerminalsState,\n reducers: {\n catchError: (state, action) => {\n state.listLoading = false;\n state.itemLoading = false;\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = false;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n \n terminalsFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n\n terminalUpdated: (state, action) => {\n state.actionLoading = false;\n state.error = null;\n if (action.payload) {\n const { actions } = action.payload;\n if (state.terminalForEdit && actions) {\n state.terminalForEdit.actions = actions;\n }\n }\n },\n \n terminalFetched: (state, action) => {\n state.error = null;\n state.itemLoading = false;\n state.terminalForEdit = action.payload.terminalForEdit;\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialProbesState = {\n error: null,\n listLoading: false,\n itemLoading: false,\n actionLoading: false,\n totalCount: 0,\n entities: [],\n probeForEdit: null,\n};\n\nexport const callTypes = {\n list: 'list',\n item: 'item',\n action: 'action',\n};\n\nexport const probesSlice = createSlice({\n name: 'probes',\n initialState: initialProbesState,\n reducers: {\n catchError: (state, action) => {\n state.listLoading = false;\n state.itemLoading = false;\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = false;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n \n probesFetched: (state, action) => {\n const { nextPageKey, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.nextPageKey = nextPageKey;\n },\n\n probeUpdated: (state, action) => {\n state.actionLoading = false;\n state.error = null;\n if (action.payload) {\n const { actions } = action.payload;\n if (state.probeForEdit && actions) {\n state.probeForEdit.actions = actions;\n }\n }\n },\n \n probeFetched: (state, action) => {\n state.error = null;\n state.itemLoading = false;\n state.probeForEdit = action.payload.probeForEdit;\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialUsersState = {\n itemLoading: false,\n listLoading: false,\n actionLoading: false,\n totalCount: 0,\n entities: [],\n userForEdit: null,\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n item: 'item',\n};\n\nexport const usersSlice = createSlice({\n name: 'users',\n initialState: initialUsersState,\n reducers: {\n catchError: (state, action) => {\n state.listLoading = false;\n state.itemLoading = false;\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = false;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n\n userFetched: (state, action) => {\n state.itemLoading = false;\n state.userForEdit = action.payload.userForEdit;\n state.error = null;\n },\n \n usersFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n \n userUpdated: (state, action) => {\n state.error = null;\n state.actionLoading = false;\n state.entities = state.entities.map((entity) => {\n if (entity.id === action.payload.user.id) {\n return action.payload.user;\n }\n return entity;\n });\n },\n\n usersStatusUpdated: (state, action) => {\n state.actionLoading = false;\n state.error = null;\n const { ids, status } = action.payload;\n state.entities = state.entities.map((entity) => {\n if (ids.findIndex((id) => id === entity.id) > -1) {\n entity.status = status;\n }\n return entity;\n });\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialBatchesState = {\n listLoading: false,\n actionLoading: false,\n totalCount: 0,\n entities: [],\n batchForEdit: null,\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n item: 'item',\n};\n\nexport const batchesSlice = createSlice({\n name: 'batches',\n initialState: initialBatchesState,\n reducers: {\n catchError: (state, action) => {\n state.listLoading = false;\n state.itemLoading = false;\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = false;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n\n batchFetched: (state, action) => {\n state.actionLoading = false;\n state.batchForEdit = action.payload.batchForEdit;\n state.error = null;\n },\n\n batchesFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n \n batchUpdated: (state, action) => {\n state.error = null;\n state.actionLoading = false;\n state.entities = state.entities.map((entity) => {\n if (entity.id === action.payload.batch.id) {\n return action.payload.batch;\n }\n return entity;\n });\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialCcfesState = {\n itemLoading: false,\n listLoading: false,\n actionLoading: false,\n totalCount: 0,\n entities: [],\n recordForEdit: null,\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n item: 'item',\n};\n\nexport const ccfesSlice = createSlice({\n name: 'ccfes',\n initialState: initialCcfesState,\n reducers: {\n catchError: (state, action) => {\n state.listLoading = false;\n state.itemLoading = false;\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = false;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n\n ccfeFetched: (state, action) => {\n state.itemLoading = false;\n state.recordForEdit = action.payload.recordForEdit;\n state.error = null;\n },\n\n ccfesFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n \n ccfeUpdated: (state, action) => {\n state.error = null;\n state.actionLoading = false;\n state.entities = state.entities.map((entity) => {\n if (entity.id === action.payload.ccfe.id) {\n return action.payload.ccfe;\n }\n return entity;\n });\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialCdashboardState = {\n itemLoading: false,\n listLoading: false,\n actionLoading: false,\n totalCount: 0,\n entities: [],\n entitiesSummarized: [],\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n item: 'item',\n};\n\nexport const cdashboardSlice = createSlice({\n name: 'cdashboard',\n initialState: initialCdashboardState,\n reducers: {\n catchError: (state, action) => {\n state.listLoading = false;\n state.itemLoading = false;\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = false;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n\n cdashboardFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.itemLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n\n cdashboardSummarizedFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entitiesSummarized = entities;\n state.totalCount = totalCount;\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialCmfesState = {\n itemLoading: false,\n listLoading: false,\n actionLoading: false,\n totalCount: 0,\n entities: [],\n recordForEdit: null,\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n item: 'item',\n};\n\nexport const cmfesSlice = createSlice({\n name: 'cmfes',\n initialState: initialCmfesState,\n reducers: {\n catchError: (state, action) => {\n state.listLoading = false;\n state.itemLoading = false;\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = false;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n\n cmfeFetched: (state, action) => {\n state.itemLoading = false;\n state.recordForEdit = action.payload.recordForEdit;\n state.error = null;\n },\n\n cmfesFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n\n cmfeUpdated: (state, action) => {\n state.error = null;\n state.actionLoading = false;\n state.entities = state.entities.map((entity) => {\n if (entity.id === action.payload.cmfe.id) {\n return action.payload.cmfe;\n }\n return entity;\n });\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialCnfcesState = {\n itemLoading: false,\n listLoading: false,\n actionsLoading: false,\n totalCount: 0,\n entities: [],\n recordForEdit: null,\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n item: 'item',\n};\n\nexport const cnfcesSlice = createSlice({\n name: 'cnfces',\n initialState: initialCnfcesState,\n reducers: {\n catchError: (state, action) => {\n state.listLoading = false;\n state.itemLoading = false;\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = false;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n\n cnfceFetched: (state, action) => {\n state.itemLoading = false;\n state.recordForEdit = action.payload.recordForEdit;\n state.error = null;\n },\n \n cnfcesFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialInutsState = {\n listLoading: false,\n actionLoading: false,\n itemLoading: false,\n totalCount: 0,\n entities: [],\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n item: 'item',\n};\n\nexport const InutsSlice = createSlice({\n name: 'Inuts',\n initialState: initialInutsState,\n reducers: {\n catchError: (state, action) => {\n state.listLoading = false;\n state.itemLoading = false;\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = false;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n\n InutsFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialStatsState = {\n actionLoading: false,\n stats: null,\n lastError: null,\n};\n\nexport const callTypes = {\n action: 'action',\n};\n\nexport const statsSlice = createSlice({\n name: 'stats',\n initialState: initialStatsState,\n reducers: {\n catchError: (state, action) => {\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n\n statsFetched: (state, action) => {\n const { stats } = action.payload;\n state.actionLoading = false;\n state.error = null;\n state.stats = stats;\n },\n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialTasksState = {\n listLoading: false,\n actionLoading: false,\n totalCount: 0,\n entities: [],\n taskForEdit: null,\n lastError: null,\n};\n\nexport const callTypes = {\n list: 'list',\n action: 'action',\n item: 'item',\n};\n\nexport const tasksSlice = createSlice({\n name: 'tasks',\n initialState: initialTasksState,\n reducers: {\n catchError: (state, action) => {\n state.listLoading = false;\n state.itemLoading = false;\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = false;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n \n taskFetched: (state, action) => {\n state.actionLoading = false;\n state.taskForEdit = action.payload.taskForEdit;\n state.error = null;\n },\n \n tasksFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.listLoading = false;\n state.error = null;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n \n // updateTask\n taskUpdated: (state, action) => {\n state.error = null;\n state.actionLoading = false;\n state.entities = state.entities.map((entity) => {\n if (entity.id === action.payload.task.id) {\n return action.payload.task;\n }\n return entity;\n });\n }, \n \n },\n});\n","import { createSlice } from '@reduxjs/toolkit';\nimport { validateSatPayload } from '../validators/satsValidators';\n\nconst initialSatsState = {\n error: null,\n listLoading: false,\n itemLoading: false,\n actionLoading: false,\n totalCount: 0,\n entities: [],\n satForEdit: null,\n};\n\nexport const callTypes = {\n list: 'list',\n item: 'item',\n action: 'action',\n};\n\nexport const satsSlice = createSlice({\n name: 'sats',\n initialState: initialSatsState,\n reducers: {\n catchError: (state, action) => {\n state.listLoading = false;\n state.itemLoading = false;\n state.actionLoading = false;\n state.error = `${action.type}: ${action.payload.error}`;\n },\n\n startCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = true;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = true;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = true;\n }\n },\n\n finishCall: (state, action) => {\n state.error = null;\n if (action.payload.callType === callTypes.list) {\n state.listLoading = false;\n } else if (action.payload.callType === callTypes.item) {\n state.itemLoading = false;\n } else if (action.payload.callType === callTypes.action) {\n state.actionLoading = false;\n }\n },\n\n satFetched: (state, action) => {\n state.error = null;\n state.itemLoading = false;\n\n if (action.payload.couponsData) {\n if (!state.satForEdit) state.satForEdit = {}\n state.satForEdit.couponsHistory = action.payload.couponsData.couponsHistory;\n return\n }\n\n state.satForEdit = validateSatPayload(action.payload.satForEdit);\n },\n\n satsFetched: (state, action) => {\n const { totalCount, entities } = action.payload;\n state.error = null;\n state.listLoading = false;\n state.entities = entities;\n state.totalCount = totalCount;\n },\n\n satUpdated: (state, action) => {\n state.actionLoading = false;\n state.error = null;\n if (action.payload) {\n const { actions } = action.payload;\n if (state.satForEdit && actions) {\n state.satForEdit.actions = actions;\n }\n }\n },\n },\n});\n","import {DEFAULT_LATITUDE, DEFAULT_LONGITUDE} from '../../../../../_nubo/_partials/_components/MapsClustering/MapsClustering'\n\nexport const validateSatPayload = (data) => {\n\n if (data.sat !== undefined) {\n let branch = data.sat.branch;\n if (branch.latitude === null && branch.longitude === null) {\n branch.latitude = DEFAULT_LATITUDE;\n branch.longitude = DEFAULT_LONGITUDE;\n data.sat.branch = branch;\n }\n }\n return data\n};","/* eslint-disable */\n'use strict';\n\nimport { KTUtil } from './util';\n\n// Component Definition\nvar KTCard = function(elementId, options) {\n // Main object\n var the = this;\n var init = false;\n\n // Get element object\n var element = KTUtil.getById(elementId);\n var body = KTUtil.getBody();\n\n if (!element) {\n return;\n }\n\n // Default options\n var defaultOptions = {\n toggleSpeed: 400,\n sticky: {\n releseOnReverse: false,\n offset: 300,\n zIndex: 101,\n },\n };\n\n ////////////////////////////\n // ** Private Methods ** //\n ////////////////////////////\n\n var Plugin = {\n /**\n * Construct\n */\n\n construct: function(options) {\n if (KTUtil.data(element).has('card')) {\n the = KTUtil.data(element).get('card');\n } else {\n // reset menu\n Plugin.init(options);\n\n // build menu\n Plugin.build();\n\n KTUtil.data(element).set('card', the);\n }\n\n return the;\n },\n\n /**\n * Init card\n */\n init: function(options) {\n the.element = element;\n the.events = [];\n\n // merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n the.header = KTUtil.child(element, '.card-header');\n the.footer = KTUtil.child(element, '.card-footer');\n\n if (KTUtil.child(element, '.card-body')) {\n the.body = KTUtil.child(element, '.card-body');\n } else if (KTUtil.child(element, '.form')) {\n the.body = KTUtil.child(element, '.form');\n }\n },\n\n /**\n * Build Form Wizard\n */\n build: function() {\n // Remove\n var remove = KTUtil.find(the.header, '[data-card-tool=remove]');\n if (remove) {\n KTUtil.addEvent(remove, 'click', function(e) {\n e.preventDefault();\n Plugin.remove();\n });\n }\n\n // Reload\n var reload = KTUtil.find(the.header, '[data-card-tool=reload]');\n if (reload) {\n KTUtil.addEvent(reload, 'click', function(e) {\n e.preventDefault();\n Plugin.reload();\n });\n }\n\n // Toggle\n var toggle = KTUtil.find(the.header, '[data-card-tool=toggle]');\n if (toggle) {\n KTUtil.addEvent(toggle, 'click', function(e) {\n e.preventDefault();\n Plugin.toggle();\n });\n }\n },\n\n /**\n * Enable stickt mode\n */\n initSticky: function() {\n var lastScrollTop = 0;\n var offset = the.options.sticky.offset;\n\n if (!the.header) {\n return;\n }\n\n window.addEventListener('scroll', Plugin.onScrollSticky);\n },\n\n /**\n * Window scroll handle event for sticky card\n */\n onScrollSticky: function(e) {\n var offset = the.options.sticky.offset;\n\n if (isNaN(offset)) return;\n\n var st = KTUtil.getScrollTop();\n\n if (st >= offset && KTUtil.hasClass(body, 'card-sticky-on') === false) {\n Plugin.eventTrigger('stickyOn');\n\n KTUtil.addClass(body, 'card-sticky-on');\n\n Plugin.updateSticky();\n } else if (\n st * 1.5 <= offset &&\n KTUtil.hasClass(body, 'card-sticky-on')\n ) {\n // Back scroll mode\n Plugin.eventTrigger('stickyOff');\n\n KTUtil.removeClass(body, 'card-sticky-on');\n\n Plugin.resetSticky();\n }\n },\n\n updateSticky: function() {\n if (!the.header) {\n return;\n }\n\n var top;\n\n if (KTUtil.hasClass(body, 'card-sticky-on')) {\n if (the.options.sticky.position.top instanceof Function) {\n top = parseInt(the.options.sticky.position.top.call(this, the));\n } else {\n top = parseInt(the.options.sticky.position.top);\n }\n\n var left;\n if (the.options.sticky.position.left instanceof Function) {\n left = parseInt(the.options.sticky.position.left.call(this, the));\n } else {\n left = parseInt(the.options.sticky.position.left);\n }\n\n var right;\n if (the.options.sticky.position.right instanceof Function) {\n right = parseInt(the.options.sticky.position.right.call(this, the));\n } else {\n right = parseInt(the.options.sticky.position.right);\n }\n\n KTUtil.css(the.header, 'z-index', the.options.sticky.zIndex);\n KTUtil.css(the.header, 'top', top + 'px');\n KTUtil.css(the.header, 'left', left + 'px');\n KTUtil.css(the.header, 'right', right + 'px');\n }\n },\n\n resetSticky: function() {\n if (!the.header) {\n return;\n }\n\n if (KTUtil.hasClass(body, 'card-sticky-on') === false) {\n KTUtil.css(the.header, 'z-index', '');\n KTUtil.css(the.header, 'top', '');\n KTUtil.css(the.header, 'left', '');\n KTUtil.css(the.header, 'right', '');\n }\n },\n\n /**\n * Remove card\n */\n remove: function() {\n if (Plugin.eventTrigger('beforeRemove') === false) {\n return;\n }\n\n KTUtil.remove(element);\n\n Plugin.eventTrigger('afterRemove');\n },\n\n /**\n * Set content\n */\n setContent: function(html) {\n if (html) {\n the.body.innerHTML = html;\n }\n },\n\n /**\n * Get body\n */\n getBody: function() {\n return the.body;\n },\n\n /**\n * Get self\n */\n getSelf: function() {\n return element;\n },\n\n /**\n * Reload\n */\n reload: function() {\n Plugin.eventTrigger('reload');\n },\n\n /**\n * Toggle\n */\n toggle: function() {\n if (\n KTUtil.hasClass(element, 'card-collapse') ||\n KTUtil.hasClass(element, 'card-collapsed')\n ) {\n Plugin.expand();\n } else {\n Plugin.collapse();\n }\n },\n\n /**\n * Collapse\n */\n collapse: function() {\n if (Plugin.eventTrigger('beforeCollapse') === false) {\n return;\n }\n\n KTUtil.slideUp(the.body, the.options.toggleSpeed, function() {\n Plugin.eventTrigger('afterCollapse');\n });\n\n KTUtil.addClass(element, 'card-collapse');\n },\n\n /**\n * Expand\n */\n expand: function() {\n if (Plugin.eventTrigger('beforeExpand') === false) {\n return;\n }\n\n KTUtil.slideDown(the.body, the.options.toggleSpeed, function() {\n Plugin.eventTrigger('afterExpand');\n });\n\n KTUtil.removeClass(element, 'card-collapse');\n KTUtil.removeClass(element, 'card-collapsed');\n },\n\n /**\n * Trigger events\n */\n eventTrigger: function(name) {\n //KTUtil.triggerCustomEvent(name);\n for (var i = 0; i < the.events.length; i++) {\n var event = the.events[i];\n if (event.name == name) {\n if (event.one == true) {\n if (event.fired == false) {\n the.events[i].fired = true;\n return event.handler.call(this, the);\n }\n } else {\n return event.handler.call(this, the);\n }\n }\n }\n },\n\n addEvent: function(name, handler, one) {\n the.events.push({\n name: name,\n handler: handler,\n one: one,\n fired: false,\n });\n\n return the;\n },\n };\n\n //////////////////////////\n // ** Public Methods ** //\n //////////////////////////\n\n /**\n * Set default options\n */\n\n the.setDefaults = function(options) {\n defaultOptions = options;\n };\n\n /**\n * Remove card\n */\n the.remove = function() {\n return Plugin.remove(html);\n };\n\n /**\n * Init sticky card\n */\n the.initSticky = function() {\n return Plugin.initSticky();\n };\n\n /**\n * Rerender sticky layout\n */\n the.updateSticky = function() {\n return Plugin.updateSticky();\n };\n\n /**\n * Reset the sticky\n */\n the.resetSticky = function() {\n return Plugin.resetSticky();\n };\n\n /**\n * Destroy sticky card\n */\n the.destroySticky = function() {\n Plugin.resetSticky();\n window.removeEventListener('scroll', Plugin.onScrollSticky);\n };\n\n /**\n * Reload card\n */\n the.reload = function() {\n return Plugin.reload();\n };\n\n /**\n * Set card content\n */\n the.setContent = function(html) {\n return Plugin.setContent(html);\n };\n\n /**\n * Toggle card\n */\n the.toggle = function() {\n return Plugin.toggle();\n };\n\n /**\n * Collapse card\n */\n the.collapse = function() {\n return Plugin.collapse();\n };\n\n /**\n * Expand card\n */\n the.expand = function() {\n return Plugin.expand();\n };\n\n /**\n * Get cardbody\n * @returns {jQuery}\n */\n the.getBody = function() {\n return Plugin.getBody();\n };\n\n /**\n * Get cardbody\n * @returns {jQuery}\n */\n the.getSelf = function() {\n return Plugin.getSelf();\n };\n\n /**\n * Attach event\n */\n the.on = function(name, handler) {\n return Plugin.addEvent(name, handler);\n };\n\n /**\n * Attach event that will be fired once\n */\n the.one = function(name, handler) {\n return Plugin.addEvent(name, handler, true);\n };\n\n // Construct plugin\n Plugin.construct.apply(the, [options]);\n\n return the;\n};\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n // module.exports = KTCard;\n}\n\nexport default KTCard;\n","/* eslint-disable */\n'use strict';\n\nimport { KTUtil } from './util';\n\n// Component Definition\nvar KTScrolltop = function(elementId, options) {\n // Main object\n var the = this;\n var init = false;\n\n // Get element object\n var element = KTUtil.getById(elementId);\n var body = KTUtil.getBody();\n\n if (!element) {\n return;\n }\n\n // Default options\n var defaultOptions = {\n offset: 300,\n speed: 6000,\n };\n\n ////////////////////////////\n // ** Private Methods ** //\n ////////////////////////////\n\n var Plugin = {\n /**\n * Run plugin\n * @returns {mscrolltop}\n */\n construct: function(options) {\n if (KTUtil.data(element).has('scrolltop')) {\n the = KTUtil.data(element).get('scrolltop');\n } else {\n // reset scrolltop\n Plugin.init(options);\n\n // build scrolltop\n Plugin.build();\n\n KTUtil.data(element).set('scrolltop', the);\n }\n\n return the;\n },\n\n /**\n * Handles subscrolltop click toggle\n * @returns {mscrolltop}\n */\n init: function(options) {\n the.events = [];\n\n // merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n },\n\n build: function() {\n var timer;\n\n window.addEventListener('scroll', function() {\n KTUtil.throttle(\n timer,\n function() {\n Plugin.handle();\n },\n 200,\n );\n });\n\n // handle button click\n KTUtil.addEvent(element, 'click', Plugin.scroll);\n },\n\n /**\n * Handles scrolltop click scrollTop\n */\n handle: function() {\n var pos = KTUtil.getScrollTop(); // current vertical position\n\n if (pos > the.options.offset) {\n if (body.hasAttribute('data-scrolltop') === false) {\n body.setAttribute('data-scrolltop', 'on');\n }\n } else {\n if (body.hasAttribute('data-scrolltop') === true) {\n body.removeAttribute('data-scrolltop');\n }\n }\n },\n\n /**\n * Handles scrolltop click scrollTop\n */\n scroll: function(e) {\n e.preventDefault();\n\n KTUtil.scrollTop(0, the.options.speed);\n },\n\n /**\n * Trigger events\n */\n eventTrigger: function(name, args) {\n for (var i = 0; i < the.events.length; i++) {\n var event = the.events[i];\n if (event.name == name) {\n if (event.one == true) {\n if (event.fired == false) {\n the.events[i].fired = true;\n return event.handler.call(this, the, args);\n }\n } else {\n return event.handler.call(this, the, args);\n }\n }\n }\n },\n\n addEvent: function(name, handler, one) {\n the.events.push({\n name: name,\n handler: handler,\n one: one,\n fired: false,\n });\n },\n };\n\n //////////////////////////\n // ** Public Methods ** //\n //////////////////////////\n\n /**\n * Set default options\n */\n\n the.setDefaults = function(options) {\n defaultOptions = options;\n };\n\n /**\n * Get subscrolltop mode\n */\n the.on = function(name, handler) {\n return Plugin.addEvent(name, handler);\n };\n\n /**\n * Set scrolltop content\n * @returns {mscrolltop}\n */\n the.one = function(name, handler) {\n return Plugin.addEvent(name, handler, true);\n };\n\n ///////////////////////////////\n // ** Plugin Construction ** //\n ///////////////////////////////\n\n // Run plugin\n Plugin.construct.apply(the, [options]);\n\n // Init done\n init = true;\n\n // Return plugin instance\n return the;\n};\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n // module.exports = KTScrolltop;\n}\n\nexport default KTScrolltop;\n","import React from 'react'\n\nexport const formatCNPJ = (cnpj) => {\n if (!cnpj || typeof cnpj !== 'string') return cnpj;\n\n // Remove qualquer caractere que não seja número\n const cleanCNPJ = cnpj.replace(/\\D/g, '');\n\n // Verifica se o CNPJ possui 14 dígitos\n if (cleanCNPJ.length !== 14) return cnpj;\n\n // Aplica a máscara no CNPJ\n return cleanCNPJ.replace(\n /^(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{2}).*/,\n '$1.$2.$3/$4-$5',\n );\n};\n\n\nexport const formatZipcode = (zipcode) => {\n if (!zipcode || typeof zipcode !== \"string\") return null;\n \n // Remove caracteres não numéricos.\n const cleanZipcode = zipcode.replace(/\\D/g, \"\");\n\n // Verifica se o CEP tem o tamanho correto.\n if (cleanZipcode.length !== 8) return null;\n\n // Formata o CEP no padrão '12345-678'.\n return `${cleanZipcode.slice(0, 5)}-${cleanZipcode.slice(5)}`;\n};\n\nexport const formatLocation = (data) => {\n const {\n zipcode,\n country,\n uf,\n city,\n neighborhood,\n street,\n number,\n latitude,\n longitude,\n } = data;\n\n // Formata cidade, UF e CEP, ajustando para ausência de valores.\n const cityStateZip = (city || uf || zipcode || country) &&\n `${city ? `${city} - ` : ''}${uf || ''}${country ? `/${country}` : ''}${zipcode ? `, ${formatZipcode(zipcode)}` : ''}`;\n\n // Formata a rua, número e bairro, ajustando para ausência de valores.\n const streetNeighborhood = (street || number || neighborhood) &&\n `${street || ''}${number ? `, ${number}` : ''}${neighborhood ? `, ${neighborhood}` : ''}`;\n\n // Formata coordenadas, caso disponíveis.\n const coordinates = latitude && longitude && `Coordenadas: ${latitude}, ${longitude}`;\n\n // Cria a lista de partes do endereço com os valores disponíveis.\n const addressParts = [streetNeighborhood, coordinates].filter(Boolean);\n\n // Retorna o endereço formatado ou a mensagem de endereço não encontrado.\n return (\n <>\n {cityStateZip ? (\n <>{cityStateZip}\n ) : (\n <>Informações de localização não disponíveis.\n )}\n {addressParts.length > 0 ? (\n addressParts.map((part, index) => (\n
\n {part}\n
\n ))\n ) : (\n
Detalhes do endereço não disponíveis.
\n )}\n \n );\n};\n\nexport const formatDate = (utcDate) => {\n if (!utcDate) return '';\n return new Intl.DateTimeFormat('pt-BR', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false, // Exibe o horário no formato 24 horas\n timeZone: 'UTC', // Define o uso de UTC (se necessário)\n }).format(new Date(utcDate));\n};\n\n","import objectPath from 'object-path';\nimport { toAbsoluteUrl } from '../../_helpers';\n\nexport class HtmlClassService {\n // Public properties\n config;\n classes;\n attributes;\n\n /**\n * Build html element classes from layout config\n * @param layoutConfig\n */\n setConfig(layoutConfig) {\n this.config = this.preInit(layoutConfig);\n\n // scope list of classes\n this.classes = {\n header: [],\n header_container: [],\n header_mobile: [],\n header_menu: [],\n aside: [],\n aside_menu: [],\n subheader: [],\n subheader_container: [],\n content: [],\n content_container: [],\n footer_container: [],\n };\n\n this.attributes = {\n aside_menu: {},\n header_mobile: {},\n header_menu: {},\n };\n\n // init base layout\n this.initLayout();\n this.initLoader();\n\n // init header and subheader menu\n this.initHeader();\n this.initSubheader();\n\n this.initContent();\n // init aside and aside menu\n this.initAside();\n\n // init footer\n this.initFooter();\n\n // init theme\n this.initTheme();\n }\n\n preInit(layoutConfig) {\n const updatedConfig = Object.assign({}, layoutConfig);\n const headerSelfFixedDesktop = objectPath.get(\n updatedConfig,\n 'header.self.fixed.desktop',\n );\n const subheaderFixed = objectPath.get(updatedConfig, 'subheader.fixed');\n if (subheaderFixed && headerSelfFixedDesktop) {\n // Page::setOption('layout', 'subheader/style', 'solid');\n updatedConfig.subheader.style = 'solid';\n } else {\n // Page::setOption('layout', 'subheader/fixed', false);\n updatedConfig.subheader.fixed = false;\n }\n return updatedConfig;\n }\n\n /**\n * Returns Classes\n *\n * @param path: string\n * @param toString boolean\n */\n getClasses(path, toString) {\n if (path) {\n const classes = objectPath.get(this.classes, path) || '';\n if (toString && Array.isArray(classes)) {\n return classes.join(' ');\n }\n return classes.toString();\n }\n return this.classes;\n }\n\n getAttributes(path) {\n if (path) {\n const attributes = objectPath.get(this.attributes, path) || [];\n return attributes;\n }\n return [];\n }\n\n getLogo() {\n const brandSkin = objectPath.get(this.config, 'brand.self.theme');\n if (brandSkin === 'light') {\n return toAbsoluteUrl('/media/logos/logo-dark.png');\n } else {\n return toAbsoluteUrl('/media/logos/logo-nubocloud-1.png');\n }\n }\n\n getStickyLogo() {\n let logo = objectPath.get(this.config, 'self.logo.sticky');\n if (typeof logo === 'undefined') {\n logo = this.getLogo();\n }\n return logo + '';\n }\n\n /**\n * Init Layout\n */\n initLayout() {\n const selfBodyBackgroundImage = objectPath.get(\n this.config,\n 'self.body.background-image',\n );\n if (selfBodyBackgroundImage) {\n document.body.style.backgroundImage = `url(\"${selfBodyBackgroundImage}'\")`;\n }\n\n const _selfBodyClass = objectPath.get(this.config, 'self.body.class');\n if (_selfBodyClass) {\n const bodyClasses = _selfBodyClass.toString().split(' ');\n bodyClasses.forEach((cssClass) => document.body.classList.add(cssClass));\n }\n\n // Offcanvas directions\n document.body.classList.add('quick-panel-right');\n document.body.classList.add('demo-panel-right');\n document.body.classList.add('offcanvas-right');\n }\n\n /**\n * Init Loader\n */\n initLoader() {}\n\n /**\n * Init Header\n */\n initHeader() {\n // Fixed header\n const headerSelfFixedDesktop = objectPath.get(\n this.config,\n 'header.self.fixed.desktop',\n );\n if (headerSelfFixedDesktop) {\n document.body.classList.add('header-fixed');\n objectPath.push(this.classes, 'header', 'header-fixed');\n } else {\n document.body.classList.add('header-static');\n }\n\n const headerSelfFixedMobile = objectPath.get(\n this.config,\n 'header.self.fixed.mobile',\n );\n if (headerSelfFixedMobile) {\n document.body.classList.add('header-mobile-fixed');\n objectPath.push(this.classes, 'header_mobile', 'header-mobile-fixed');\n }\n\n // Menu\n const headerMenuSelfDisplay = objectPath.get(\n this.config,\n 'header.menu.self.display',\n );\n if (headerMenuSelfDisplay) {\n const headerMenuSelfLayout = objectPath.get(\n this.config,\n 'header.menu.self.layout',\n );\n const headerMenuLayoutCssClass = `header-menu-layout-${headerMenuSelfLayout}`;\n objectPath.push(this.classes, 'header_menu', headerMenuLayoutCssClass);\n\n if (objectPath.get(this.config, 'header.menu.self.root-arrow')) {\n objectPath.push(this.classes, 'header_menu', 'header-menu-root-arrow');\n }\n }\n\n const headerSelfWidth = objectPath.get(this.config, 'header.self.width');\n if (headerSelfWidth === 'fluid') {\n objectPath.push(this.classes, 'header_container', 'container-fluid');\n } else {\n objectPath.push(this.classes, 'header_container', 'container');\n }\n }\n\n /**\n * Init Subheader\n */\n initSubheader() {\n const subheaderDisplay = objectPath.get(this.config, 'subheader.display');\n if (subheaderDisplay) {\n document.body.classList.add('subheader-enabled');\n } else {\n return;\n }\n\n // Fixed content head\n const subheaderFixed = objectPath.get(this.config, 'subheader.fixed');\n const headerSelfFixedDesktop = objectPath.get(\n this.config,\n 'header.self.fixed.desktop',\n );\n if (subheaderFixed && headerSelfFixedDesktop) {\n document.body.classList.add('subheader-fixed');\n // Page::setOption('layout', 'subheader/style', 'solid'); => See preInit()\n } else {\n // Page::setOption('layout', 'subheader/fixed', false); => See preInit()\n }\n\n const subheaderStyle = objectPath.get(this.config, 'subheader.style');\n if (subheaderStyle) {\n const subheaderClass = `subheader-${subheaderStyle}`;\n objectPath.push(this.classes, 'subheader', subheaderClass);\n }\n\n const subheaderWidth = objectPath.get(this.config, 'subheader.width');\n if (subheaderWidth === 'fluid') {\n objectPath.push(this.classes, 'subheader_container', 'container-fluid');\n } else {\n objectPath.push(this.classes, 'subheader_container', 'container');\n }\n\n if (objectPath.get(this.config, 'subheader.clear')) {\n objectPath.push(this.classes, 'subheader', 'mb-0');\n }\n }\n\n /**\n * Init Content\n */\n initContent() {\n if (objectPath.get(this.config, 'content.fit-top')) {\n objectPath.push(this.classes, 'content', 'pt-0');\n }\n\n if (objectPath.get(this.config, 'content.fit-bottom')) {\n objectPath.push(this.classes, 'content', 'pb-0');\n }\n\n if (objectPath.get(this.config, 'content.width') === 'fluid') {\n objectPath.push(this.classes, 'content_container', 'container-fluid');\n } else {\n objectPath.push(this.classes, 'content_container', 'container');\n }\n }\n\n /**\n * Init Aside\n */\n initAside() {\n // Check Aside\n const asideSelfDisplay = objectPath.get(this.config, 'aside.self.display');\n if (!asideSelfDisplay) {\n return;\n }\n\n // Enable Aside\n document.body.classList.add('aside-enabled');\n\n // Fixed Aside\n const asideSelfFixed = objectPath.get(this.config, 'aside.self.fixed');\n if (asideSelfFixed) {\n document.body.classList.add('aside-fixed');\n objectPath.push(this.classes, 'aside', 'aside-fixed');\n } else {\n document.body.classList.add('aside-static');\n }\n\n // Check Aside\n if (!asideSelfDisplay) {\n return;\n }\n\n // Default fixed\n if (objectPath.get(this.config, 'aside.self.minimize.default')) {\n document.body.classList.add('aside-minimize');\n }\n\n if (objectPath.get(this.config, 'aside.self.minimize.hoverable')) {\n document.body.classList.add('aside-minimize-hoverable');\n }\n\n // Menu\n // Dropdown Submenu\n const asideMenuDropdown = objectPath.get(\n this.config,\n 'aside.menu.dropdown',\n );\n if (asideMenuDropdown) {\n objectPath.push(this.classes, 'aside_menu', 'aside-menu-dropdown');\n this.attributes.aside_menu['data-menu-dropdown'] = '1';\n }\n\n // Scrollable Menu\n this.attributes.aside_menu['data-menu-scroll'] = asideMenuDropdown\n ? '0'\n : '1';\n\n const asideSubmenuDHoverTimeout = objectPath.get(\n this.config,\n 'aside.menu.submenu.dropdown.hover-timeout',\n );\n if (asideSubmenuDHoverTimeout) {\n this.attributes.aside_menu[\n 'data-menu-dropdown-timeout'\n ] = asideSubmenuDHoverTimeout;\n }\n }\n\n /**\n * Init Footer\n */\n initFooter() {\n // Fixed header\n if (objectPath.get(this.config, 'footer.fixed')) {\n document.body.classList.add('footer-fixed');\n }\n\n if (objectPath.get(this.config, 'footer.self.width') === 'fluid') {\n objectPath.push(this.classes, 'footer_container', 'container-fluid');\n } else {\n objectPath.push(this.classes, 'footer_container', 'container');\n }\n }\n\n /** Init Theme */\n initTheme() {\n const asideSelfDisplay = objectPath.get(this.config, 'aside.self.display');\n if (!asideSelfDisplay) {\n const headerSelfTheme = objectPath.get(this.config, 'header.self.theme');\n document.body.classList.add(`brand-${headerSelfTheme}`);\n } else {\n const brandSelfTheme = objectPath.get(this.config, 'brand.self.theme');\n document.body.classList.add(`brand-${brandSelfTheme}`);\n }\n }\n}\n","import React, { createContext, useContext, useMemo } from 'react';\nimport { getInitLayoutConfig } from './LayoutConfig';\nimport { HtmlClassService } from './HTMLClassService';\n\nconst LAYOUT_CONFIG_KEY =\n process.env.REACT_APP_LAYOUT_CONFIG_KEY || 'LayoutConfig';\n\nfunction getConfig() {\n const ls = localStorage.getItem(LAYOUT_CONFIG_KEY);\n if (ls) {\n try {\n return JSON.parse(ls);\n } catch (er) {\n console.error(er);\n }\n }\n return getInitLayoutConfig();\n}\n\n// Side effect\nexport function setLayoutConfig(config) {\n localStorage.setItem(LAYOUT_CONFIG_KEY, JSON.stringify(config));\n window.location.reload();\n}\n\nconst HtmlClassServiceContext = createContext();\n\n/**\n *\n *\n * @export\n * @returns Layout context from 'localStorage'\n */\nexport function useHtmlClassService() {\n return useContext(HtmlClassServiceContext);\n}\n\nexport function withHtmlClassService(Component) {\n class WithHtmlClassService extends React.Component {\n static displayName = `WithHtmlClassService(${Component.displayName ||\n Component.name})`;\n\n static contextType = HtmlClassServiceContext;\n\n render() {\n return ;\n }\n }\n\n return WithHtmlClassService;\n}\n\nexport const HtmlClassServiceConsumer = HtmlClassServiceContext.Consumer;\n\nexport function MetronicLayoutProvider({ children }) {\n const lc = useMemo(getConfig, []);\n const hcs = useMemo(() => {\n const service = new HtmlClassService();\n\n service.setConfig(lc);\n\n return service;\n }, [lc]);\n\n return (\n \n {children}\n \n );\n}\n","import { toAbsoluteUrl } from '../../_helpers';\nexport function getInitLayoutConfig() {\n return {\n demo: 'demo1',\n js: {\n breakpoints: {\n sm: '576',\n md: '768',\n lg: '992',\n xl: '1200',\n xxl: '1200',\n },\n colors: {\n theme: {\n base: {\n white: '#ffffff',\n primary: '#6993FF',\n secondary: '#E5EAEE',\n success: '#1BC5BD',\n info: '#8950FC',\n warning: '#FFA800',\n danger: '#F64E60',\n light: '#F3F6F9',\n dark: '#212121',\n },\n light: {\n white: '#ffffff',\n primary: '#E1E9FF',\n secondary: '#ECF0F3',\n success: '#C9F7F5',\n info: '#EEE5FF',\n warning: '#FFF4DE',\n danger: '#FFE2E5',\n light: '#F3F6F9',\n dark: '#D6D6E0',\n },\n inverse: {\n white: '#ffffff',\n primary: '#ffffff',\n secondary: '#212121',\n success: '#ffffff',\n info: '#ffffff',\n warning: '#ffffff',\n danger: '#ffffff',\n light: '#464E5F',\n dark: '#ffffff',\n },\n },\n gray: {\n gray100: '#F3F6F9',\n gray200: '#ECF0F3',\n gray300: '#E5EAEE',\n gray400: '#D6D6E0',\n gray500: '#B5B5C3',\n gray600: '#80808F',\n gray700: '#464E5F',\n gray800: '#1B283F',\n gray900: '#212121',\n },\n },\n fontFamily: 'Poppins',\n },\n // == Page Splash Screen loading\n loader: {\n enabled: true,\n type: '', // default|spinner-message|spinner-logo\n logo: toAbsoluteUrl('/media/logos/logo-dark-sm.png'),\n message: 'Please wait...',\n },\n // page toolbar\n toolbar: {\n display: true,\n },\n header: {\n self: {\n width: 'fluid', // fixed|fluid\n theme: 'light', // light|dark\n fixed: {\n desktop: false,\n mobile: false,\n },\n },\n menu: {\n self: {\n display: true,\n layout: 'default', // tab/default\n 'root-arrow': false,\n 'icon-style': 'duotone', // duotone, line, bold, solid\n },\n desktop: {\n arrow: true,\n toggle: 'click',\n submenu: {\n theme: 'light', // light|dark\n arrow: true,\n },\n },\n mobile: {\n submenu: {\n theme: 'dark',\n accordion: true,\n },\n },\n },\n },\n subheader: {\n display: true,\n displayDesc: true,\n displayDaterangepicker: true,\n layout: 'subheader-v1',\n fixed: true,\n width: 'fluid', // fixed/fluid,\n clear: false,\n style: 'solid', // solid/transparent\n },\n content: {\n width: 'fixed', // fluid|fixed\n },\n brand: {\n self: {\n theme: 'dark', // light/dark\n },\n },\n aside: {\n self: {\n theme: 'dark', // light/dark\n display: true,\n fixed: true,\n minimize: {\n toggle: true, // allow toggle\n default: false, // default state\n hoverable: true, // allow hover\n },\n },\n footer: {\n self: {\n display: false,\n },\n },\n menu: {\n dropdown: false, // ok\n scroll: true, // ok\n 'icon-style': 'duotone', // duotone, line, bold, solid\n submenu: {\n accordion: true,\n dropdown: {\n arrow: true,\n 'hover-timeout': 500, // in milliseconds\n },\n },\n },\n },\n footer: {\n self: {\n fixed: false,\n width: 'fluid',\n },\n },\n extras: {\n search: {\n display: false,\n layout: 'dropdown', // offcanvas, dropdown\n offcanvas: {\n direction: 'right',\n },\n },\n notifications: {\n display: false,\n layout: 'dropdown', // offcanvas, dropdown\n dropdown: {\n style: 'dark', // light, dark\n },\n offcanvas: {\n directions: 'right',\n },\n },\n 'quick-actions': {\n display: false,\n layout: 'dropdown', // offcanvas, dropdown,\n dropdown: {\n style: 'dark', // light, dark\n },\n offcanvas: {\n directions: 'right',\n },\n },\n user: {\n display: true,\n layout: 'offcanvas',\n dropdown: {\n style: 'dark',\n },\n offcanvas: {\n directions: 'right',\n },\n },\n languages: {\n display: false,\n },\n cart: {\n display: false,\n dropdown: {\n style: 'dark',\n },\n },\n 'quick-panel': {\n display: false,\n offcanvas: {\n directions: 'right',\n },\n },\n chat: {\n display: false,\n },\n toolbar: {\n display: false,\n },\n scrolltop: {\n display: true,\n },\n },\n };\n}\n","import React, { useMemo } from 'react';\nimport { Link } from 'react-router-dom';\nimport objectPath from 'object-path';\nimport SVG from 'react-inlinesvg';\nimport { useHtmlClassService } from '../../_core/MetronicLayout';\nimport { toAbsoluteUrl } from '../../../_helpers';\nimport { shallowEqual, useSelector } from 'react-redux';\n\nexport function Brand() {\n const uiService = useHtmlClassService();\n\n const layoutProps = useMemo(() => {\n return {\n brandClasses: uiService.getClasses('brand', true),\n asideSelfMinimizeToggle: objectPath.get(\n uiService.config,\n 'aside.self.minimize.toggle',\n ),\n headerLogo: uiService.getLogo(),\n headerStickyLogo: uiService.getStickyLogo(),\n };\n }, [uiService]);\n\n const { currentState } = useSelector(\n (state) => ({ currentState: state.appConfig }),\n shallowEqual,\n );\n\n const imgStyle = {};\n if (!currentState.isDark) {\n imgStyle.filter = 'invert(1)';\n }\n\n return (\n <>\n {/* begin::Brand */}\n \n {/* begin::Logo */}\n \n \"logo\"\n \n {/* end::Logo */}\n\n {layoutProps.asideSelfMinimizeToggle && (\n <>\n {/* begin::Toggle */}\n \n \n \n \n \n {/* end::Toolbar */}\n \n )}\n
\n {/* end::Brand */}\n \n );\n}\n","/* eslint-disable jsx-a11y/role-supports-aria-props */\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React from 'react';\nimport SVG from 'react-inlinesvg';\nimport { useLocation } from 'react-router';\nimport { NavLink } from 'react-router-dom';\nimport { checkIsActive, toAbsoluteUrl } from '../../../../_helpers';\nimport { useSelector } from 'react-redux';\nimport { verifyResaleOrMaster } from '../../../../../utils'\n\nexport function AsideMenuList({ layoutProps }) {\n const location = useLocation();\n const getMenuItemActive = (url, hasSubmenu = false) => {\n return checkIsActive(location, url)\n ? ` ${!hasSubmenu &&\n 'menu-item-active'} menu-item-open menu-item-not-hightlighted`\n : '';\n };\n\n const { licenses } = useSelector((state) => state.self);\n const isResaleOrMaster = verifyResaleOrMaster(licenses)\n\n return (\n <>\n {/* begin::Menu Nav */}\n {\n if (document.getElementById('kt_header_mobile')) {\n document.getElementById('kt_aside').classList.remove('aside-on');\n }\n }}\n >\n {/*begin::1 Level*/}\n \n \n \n \n \n Dashboards\n \n \n {/*end::1 Level*/}\n\n {/*begin::1 Level*/}\n {isResaleOrMaster && (\n \n \n \n \n \n Contas\n \n \n )}\n {/*end::1 Level*/}\n\n {/*begin::1 Level*/}\n \n \n \n \n \n Empresas\n \n \n {/*end::1 Level*/}\n\n {/*begin::1 Level*/}\n \n \n \n \n \n Terminais de Venda\n \n \n {/*end::1 Level*/}\n\n {/*begin::1 Level*/}\n \n \n \n \n \n Emissores Fiscais\n \n \n
\n \n
    \n
  • \n \n Emissores Fiscais\n \n
  • \n\n {/* SAT */}\n {/*begin::2 Level*/}\n \n \n \n \n \n SAT\n \n \n {/* MFE */}\n \n \n \n \n \n MFE\n \n \n {/*end::2 Level*/}\n {/* NFCE */}\n \n \n \n \n \n NFCE\n \n \n {/*end::2 Level*/}\n
\n
\n \n {/*end::1 Level*/}\n\n {/*begin::1 Level*/}\n \n \n \n \n \n Regiões\n \n \n {/*end::1 Level*/}\n\n {/*begin::1 Level*/}\n \n \n \n \n \n Gerenciamento\n \n \n {/*end::1 Level*/}\n\n {/*begin::1 Level*/}\n \n \n \n \n \n Alarmes\n \n \n {/*end::1 Level*/}\n\n {/*begin::1 Level*/}\n \n \n \n \n \n Notificações\n \n \n {/*end::1 Level*/}\n\n {/*begin::1 Level*/}\n \n \n \n \n \n Usuários\n \n \n {/*end::1 Level*/}\n\n {\n <>\n
  • \n

    taxGo Drive

    \n \n
  • \n\n \n \n \n \n \n Notas\n \n \n
    \n \n \n
    \n \n \n }\n\n {/*begin::1 Level*/}\n \n \n \n \n \n Lotes\n \n \n {/*end::1 Level */}\n\n {/*begin::1 Level*/}\n {/* \n \n \n \n \n \n Inutilização\n \n \n */}\n {/*end::1 Level*/}\n\n {/*begin::1 Level*/}\n {/*\n \n \n \n \n \n Conciliação\n \n \n */}\n \n {/*end::1 Level*/}\n\n {/* end::Menu Nav */}\n \n );\n}\n","import React, { useMemo } from 'react';\nimport { AsideMenuList } from './AsideMenuList';\nimport { useHtmlClassService } from '../../../_core/MetronicLayout';\n\nexport function AsideMenu({ disableScroll }) {\n const uiService = useHtmlClassService();\n const layoutProps = useMemo(() => {\n return {\n layoutConfig: uiService.config,\n asideMenuAttr: uiService.getAttributes('aside_menu'),\n ulClasses: uiService.getClasses('aside_menu_nav', true),\n asideClassesFromConfig: uiService.getClasses('aside_menu', true),\n };\n }, [uiService]);\n\n return (\n <>\n {/* begin::Menu Container */}\n \n \n \n {/* end::Menu Container */}\n \n );\n}\n","import React, { useMemo } from 'react';\nimport { Link } from 'react-router-dom';\nimport objectPath from 'object-path';\nimport { Brand } from '../brand/Brand';\nimport { AsideMenu } from './aside-menu/AsideMenu';\nimport { useHtmlClassService } from '../../_core/MetronicLayout';\n\nexport function Aside() {\n const uiService = useHtmlClassService();\n\n const layoutProps = useMemo(() => {\n return {\n disableScroll:\n objectPath.get(uiService.config, 'aside.menu.dropdown') === 'true' ||\n false,\n asideClassesFromConfig: uiService.getClasses('aside', true),\n disableAsideSelfDisplay:\n objectPath.get(uiService.config, 'aside.self.display') === false,\n headerLogo: uiService.getLogo(),\n };\n }, [uiService]);\n\n return (\n <>\n {/* begin::Aside */}\n \n \n\n {/* begin::Aside Menu */}\n \n {layoutProps.disableAsideSelfDisplay && (\n <>\n {/* begin::Header Logo */}\n
    \n \n \"logo\"\n \n
    \n {/* end::Header Logo */}\n \n )}\n \n \n {/* end::Aside Menu */}\n \n {/* end::Aside */}\n \n );\n}\n","import React, { useMemo } from 'react';\nimport { useHtmlClassService } from '../../_core/MetronicLayout';\n\nexport function Footer() {\n const today = new Date().getFullYear();\n const uiService = useHtmlClassService();\n\n const layoutProps = useMemo(() => {\n return {\n footerClasses: uiService.getClasses('footer', true),\n footerContainerClasses: uiService.getClasses('footer_container', true),\n };\n }, [uiService]);\n\n return (\n \n \n
    \n \n {today.toString()}\n {' '}\n ©{' '}\n \n Nubo Company\n \n
    \n \n \n );\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from 'react';\n\nexport const DropdownCustomToggler = React.forwardRef((props, ref) => {\n return (\n {\n e.preventDefault();\n props.onClick(e);\n }}\n >\n {props.children}\n \n );\n});\n","import React from 'react';\n\nexport const DropdownTopbarItemToggler = React.forwardRef((props, ref) => {\n return (\n {\n e.preventDefault();\n props.onClick(e);\n }}\n >\n {props.children}\n \n );\n});\n\nDropdownTopbarItemToggler.displayName = 'DropdownTopbarItemToggler';\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { Dropdown } from 'react-bootstrap';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { toAbsoluteUrl } from '../../../../_helpers';\nimport { useLang, setLanguage } from '../../../../i18n';\nimport { DropdownTopbarItemToggler } from '../../../../_partials/dropdowns';\n\nconst languages = [\n {\n lang: 'en',\n name: 'English',\n flag: toAbsoluteUrl('/media/svg/flags/226-united-states.svg'),\n },\n {\n lang: 'zh',\n name: 'Mandarin',\n flag: toAbsoluteUrl('/media/svg/flags/015-china.svg'),\n },\n {\n lang: 'es',\n name: 'Spanish',\n flag: toAbsoluteUrl('/media/svg/flags/128-spain.svg'),\n },\n {\n lang: 'ja',\n name: 'Japanese',\n flag: toAbsoluteUrl('/media/svg/flags/063-japan.svg'),\n },\n {\n lang: 'de',\n name: 'German',\n flag: toAbsoluteUrl('/media/svg/flags/162-germany.svg'),\n },\n {\n lang: 'fr',\n name: 'French',\n flag: toAbsoluteUrl('/media/svg/flags/195-france.svg'),\n },\n];\n\nexport function LanguageSelectorDropdown() {\n const lang = useLang();\n const currentLanguage = languages.find((x) => x.lang === lang);\n return (\n \n \n Select Language\n }\n >\n
    \n \n
    \n \n \n \n
      \n {languages.map((language) => (\n \n setLanguage(language.lang)}\n className=\"navi-link\"\n >\n \n {language.name}\n \n {language.name}\n \n \n ))}\n
    \n
    \n
    \n );\n}\n","/* eslint-disable react/style-prop-object */\n/* eslint-disable jsx-a11y/alt-text */\n/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from 'react';\nimport PerfectScrollbar from 'react-perfect-scrollbar';\nimport { Dropdown, OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport SVG from 'react-inlinesvg';\nimport { toAbsoluteUrl } from '../../../../_helpers';\nimport { DropdownTopbarItemToggler } from '../../../../_partials/dropdowns';\n\nconst perfectScrollbarOptions = {\n wheelSpeed: 2,\n wheelPropagation: false,\n};\n\nexport function MyCartDropdown() {\n const bgImage = toAbsoluteUrl('/media/misc/bg-1.jpg');\n return (\n \n \n User Cart}\n >\n
    \n \n \n \n
    \n \n \n \n
    \n \n \n \n \n

    My Cart

    \n \n \n \n
    \n
    \n \n iBlender\n \n Best kichen badge in 2020\n
    \n \n $ 350\n \n for\n \n 5\n \n \n \n \n \n \n \n
    \n
    \n \n \n \n
    \n\n
    \n\n
    \n
    \n \n SmartCleaner\n \n Smart tool for cooking\n
    \n \n $ 650\n \n for\n \n 4\n \n \n \n \n \n \n \n
    \n
    \n \n \n \n
    \n\n
    \n\n
    \n
    \n \n CameraX\n \n \n Professional camera for edge cutting shots\n \n
    \n \n $ 150\n \n for\n \n 3\n \n \n \n \n \n \n \n
    \n
    \n \n \n \n
    \n\n
    \n\n
    \n
    \n \n 3DPrinted\n \n Manufactoring unique objects\n
    \n \n $ 1450\n \n for\n \n 7\n \n \n \n \n \n \n \n
    \n
    \n \n \n \n
    \n \n\n
    \n
    \n \n Total\n \n \n $1840.00\n \n
    \n
    \n \n Sub total\n \n \n $5640.00\n \n
    \n
    \n \n Place Order\n \n
    \n
    \n \n
    \n
    \n );\n}\n","/* eslint-disable no-restricted-imports */\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React, { useMemo } from 'react';\nimport Dropdown from 'react-bootstrap/Dropdown';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport SVG from 'react-inlinesvg';\nimport objectPath from 'object-path';\nimport { useHtmlClassService } from '../../../_core/MetronicLayout';\nimport { toAbsoluteUrl } from '../../../../_helpers';\nimport { DropdownTopbarItemToggler } from '../../../../_partials/dropdowns';\n\nexport function QuickActionsDropdown() {\n const bgImage = toAbsoluteUrl('/media/misc/bg-2.jpg');\n const uiService = useHtmlClassService();\n const layoutProps = useMemo(() => {\n return {\n offcanvas:\n objectPath.get(uiService.config, 'extras.quick-actions.layout') ===\n 'offcanvas',\n };\n }, [uiService]);\n\n return (\n <>\n {layoutProps.offcanvas && (\n Quick actions}\n >\n
    \n \n \n \n \n
    \n \n \n )}\n {!layoutProps.offcanvas && (\n \n \n Quick actions\n }\n >\n
    \n \n \n \n
    \n \n \n\n \n
    \n {/* begin: Head */}\n \n

    \n Quick Actions\n

    \n \n 23 tasks pending\n \n \n {/* end: Head */}\n\n
    \n
    \n \n \n \n \n \n Accounting\n \n \n eCommerce\n \n \n
    \n\n
    \n \n {' '}\n \n \n \n \n Administration\n \n \n Console\n \n \n
    \n\n
    \n \n \n \n \n \n Projects\n \n \n Pending Tasks\n \n \n
    \n\n
    \n \n \n \n \n \n Customers\n \n \n Latest cases\n \n \n
    \n
    \n \n
    \n
    \n )}\n \n );\n}\n","/* eslint-disable no-restricted-imports */\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React, { useMemo } from 'react';\nimport { Link } from 'react-router-dom';\nimport Dropdown from 'react-bootstrap/Dropdown';\nimport { useSelector } from 'react-redux';\nimport objectPath from 'object-path';\nimport { useHtmlClassService } from '../../../_core/MetronicLayout';\nimport { toAbsoluteUrl } from '../../../../_helpers';\nimport { DropdownTopbarItemToggler } from '../../../../_partials/dropdowns';\n\nexport function UserProfileDropdown() {\n const { user } = useSelector((state) => state.auth);\n const uiService = useHtmlClassService();\n const layoutProps = useMemo(() => {\n return {\n light:\n objectPath.get(uiService.config, 'extras.user.dropdown.style') ===\n 'light',\n };\n }, [uiService]);\n\n return (\n \n \n \n \n Hi,\n {' '}\n \n {user.firstname} {user.lastname}\n \n \n \n {user.firstname[0]}\n \n \n \n \n \n <>\n {/** ClassName should be 'dropdown-menu p-0 m-0 dropdown-menu-right dropdown-menu-anim dropdown-menu-top-unround dropdown-menu-xl' */}\n {layoutProps.light && (\n <>\n
    \n
    \n \"\"\n
    \n
    \n {user.firstname} {user.lastname}\n
    \n \n 3 messages\n \n
    \n
    \n \n )}\n\n {!layoutProps.light && (\n \n
    \n \n {user.firstname[0]}\n \n {/*\"Pic\"*/}\n
    \n
    \n {user.firstname} {user.lastname}\n
    \n \n 3 messages\n \n \n )}\n \n\n
    \n \n
    \n
    \n \n
    \n
    \n
    \n My Profile\n
    \n
    \n Account settings and more\n \n update\n \n
    \n
    \n
    \n \n\n \n
    \n
    \n \n
    \n
    \n
    My Messages
    \n
    Inbox and tasks
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    My Activities
    \n
    Logs and notifications
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    My Tasks
    \n
    latest tasks and projects
    \n
    \n
    \n
    \n
    \n\n
    \n \n Sign Out\n \n \n Upgrade Plan\n \n
    \n
    \n
    \n
    \n );\n}\n","import { OverlayTrigger, Tooltip } from 'react-bootstrap';\n/* eslint-disable no-restricted-imports */\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React, { useMemo } from 'react';\n\nimport { UserProfileDropdown } from '../../../../_metronic/layout/components/extras/dropdowns/UserProfileDropdown';\nimport objectPath from 'object-path';\nimport { useHtmlClassService } from '../../../../_metronic/layout';\n\nexport function QuickUserToggler(props) {\n const { user } = props; //useSelector(state => state.auth);\n const uiService = useHtmlClassService();\n const layoutProps = useMemo(() => {\n return {\n offcanvas:\n objectPath.get(uiService.config, 'extras.user.layout') === 'offcanvas',\n };\n }, [uiService]);\n\n return (\n <>\n {layoutProps.offcanvas && (\n Minha conta}\n >\n
    \n \n <>\n \n Olá, {user.name}\n \n \n
    \n \n \n )}\n\n {!layoutProps.offcanvas && }\n \n );\n}\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React from 'react';\nimport SVG from 'react-inlinesvg';\nimport PerfectScrollbar from 'react-perfect-scrollbar';\nimport { toAbsoluteUrl } from '../../../../../_helpers';\n\nconst perfectScrollbarOptions = {\n wheelSpeed: 2,\n wheelPropagation: false,\n};\n\nexport function SearchResult({ data }) {\n if (!data) {\n return null;\n }\n\n if (data.length === 0) {\n return (\n \n
    \n
    No record found
    \n
    \n \n );\n }\n\n return (\n \n \n
    \n {/* begin: Section */}\n
    \n Documents\n
    \n
    \n
    \n
    \n \n
    \n
    \n \n AirPlus Requirements\n \n \n by Grog John\n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n TechNav Documentation\n \n \n by Mary Broun\n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n All Framework Docs\n \n \n by Nick Stone\n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n Finance & Accounting Reports\n \n \n by Jhon Larson\n \n
    \n
    \n
    \n {/* end: Section */}\n\n {/* begin: Section */}\n
    \n Members\n
    \n
    \n
    \n
    \n \n
    \n
    \n \n Milena Gibson\n \n \n UI Designer\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n Stefan JohnStefan\n \n \n Marketing Manager\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n Anna Strong\n \n \n Software Developer\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n Nick Bold\n \n \n Project Coordinator\n \n
    \n
    \n
    \n {/* end: Section */}\n\n {/* begin: Section */}\n
    \n Files\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n 79 PSD files generated\n \n \n by Grog John\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n $2900 worth products sold\n \n \n Total 234 items\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n 4 New items submitted\n \n \n Marketing Manager\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n 4 New items submitted\n \n \n Marketing Manager\n \n
    \n
    \n
    \n {/* end: Section */}\n
    \n \n \n );\n}\n","import React, { useEffect, useState, useMemo } from 'react';\nimport clsx from 'clsx';\nimport { Dropdown, OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport SVG from 'react-inlinesvg';\nimport objectPath from 'object-path';\nimport { useHtmlClassService } from '../../../../_core/MetronicLayout';\nimport { SearchResult } from './SearchResult';\nimport { toAbsoluteUrl } from '../../../../../_helpers';\nimport { DropdownTopbarItemToggler } from '../../../../../_partials/dropdowns';\nconst fakeData = [\n {\n type: 0,\n text: 'Reports',\n },\n {\n type: 1,\n text: 'AirPlus Requirements',\n description: 'by Grog John',\n iconImage: toAbsoluteUrl('/media/files/doc.svg'),\n },\n {\n type: 1,\n text: 'TechNav Documentation',\n description: 'by Mary Brown',\n iconImage: toAbsoluteUrl('/media/files/pdf.svg'),\n },\n {\n type: 1,\n text: 'All Framework Docs',\n description: 'by Grog John',\n iconImage: toAbsoluteUrl('/media/files/zip.svg'),\n },\n {\n type: 1,\n text: 'AirPlus Requirements',\n description: 'by Tim Hardy',\n iconImage: toAbsoluteUrl('/media/files/xml.svg'),\n },\n {\n text: 'Customers',\n type: 0,\n },\n {\n type: 1,\n text: 'Jimmy Curry',\n description: 'Software Developer',\n iconImage: toAbsoluteUrl('/media/users/300_11.jpg'),\n },\n {\n type: 1,\n text: 'Milena Gibson',\n description: 'UI Designer',\n iconImage: toAbsoluteUrl('/media/users/300_16.jpg'),\n },\n {\n type: 1,\n text: 'Stefan JohnStefan',\n description: 'Marketing Manager',\n iconImage: toAbsoluteUrl('/media/users/300_22.jpg'),\n },\n {\n type: 1,\n text: 'Anna Strong',\n description: 'Software Developer',\n iconImage: toAbsoluteUrl('/media/users/300_5.jpg'),\n },\n {\n type: 0,\n text: 'Files',\n },\n {\n type: 1,\n text: '2 New items submitted',\n description: 'Marketing Manager',\n iconClassName: 'flaticon2-box font-danger',\n },\n {\n type: 1,\n text: '79 PSD files generated',\n description: 'by Grog John',\n iconClassName: 'flaticon-psd font-brand',\n },\n {\n type: 1,\n text: '$2900 worth products sold',\n description: 'Total 234 items',\n iconClassName: 'flaticon2-supermarket font-warning',\n },\n {\n type: 1,\n text: '4 New items submitted',\n description: 'Marketing Manager',\n iconClassName: 'flaticon-safe-shield-protection font-info',\n },\n];\n\nexport function SearchDropdown() {\n const [loading, setLoading] = useState(false);\n const [data, setData] = useState(null);\n const [searchValue, setSearchValue] = useState('');\n let timeoutId;\n\n const clearTimeout = () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = undefined;\n }\n };\n\n const handleSearchChange = (event) => {\n setData(null);\n setSearchValue(event.target.value);\n\n if (event.target.value.length > 2) {\n clearTimeout();\n\n setLoading(true);\n\n // simulate getting search result\n timeoutId = setTimeout(() => {\n setData(fakeData);\n setLoading(false);\n }, 500);\n }\n };\n\n const clear = () => {\n setData(null);\n setSearchValue('');\n };\n\n useEffect(() => {\n return () => {\n clearTimeout();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const uiService = useHtmlClassService();\n const layoutProps = useMemo(() => {\n return {\n offcanvas:\n objectPath.get(uiService.config, 'extras.search.layout') ===\n 'offcanvas',\n };\n }, [uiService]);\n\n return (\n <>\n {layoutProps.offcanvas && (\n
    \n \n \n \n \n
    \n \n )}\n {!layoutProps.offcanvas && (\n {\n setData(null);\n setLoading(false);\n setSearchValue('');\n }}\n id=\"kt_quick_search_toggle\"\n >\n \n Quick search\n }\n >\n
    \n \n \n \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n \n \n \n
    \n \n\n \n \n 0\n ? 'none'\n : 'flex',\n }}\n onClick={clear}\n className=\"quick-search-close ki ki-close icon-sm text-muted\"\n />\n \n
    \n \n
    \n \n \n
    \n \n )}\n \n );\n}\n","/* eslint-disable no-unused-vars */\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React, { useState, useMemo } from 'react';\nimport { Nav, Tab, Dropdown, OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport PerfectScrollbar from 'react-perfect-scrollbar';\nimport SVG from 'react-inlinesvg';\nimport objectPath from 'object-path';\nimport { useHtmlClassService } from '../../../_core/MetronicLayout';\nimport { toAbsoluteUrl } from '../../../../_helpers';\nimport { DropdownTopbarItemToggler } from '../../../../_partials/dropdowns';\n\nconst perfectScrollbarOptions = {\n wheelSpeed: 2,\n wheelPropagation: false,\n};\n\nexport function UserNotificationsDropdown() {\n const [key, setKey] = useState('Alerts');\n const bgImage = toAbsoluteUrl('/media/misc/bg-1.jpg');\n\n const uiService = useHtmlClassService();\n const layoutProps = useMemo(() => {\n return {\n offcanvas:\n objectPath.get(uiService.config, 'extras.notifications.layout') ===\n 'offcanvas',\n };\n }, [uiService]);\n\n return (\n <>\n {layoutProps.offcanvas && (\n
    \n \n \n \n \n \n
    \n \n )}\n {!layoutProps.offcanvas && (\n \n \n \n User Notifications\n \n }\n >\n \n \n \n \n \n \n \n \n \n\n \n
    \n {/** Head */}\n \n

    \n User Notifications\n \n 23 new\n \n

    \n\n \n setKey(_key)}\n >\n \n \n Alerts\n \n \n \n \n Events\n \n \n \n \n Logs\n \n \n \n\n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n Briviba SaaS\n \n \n PHP, SQLite, Artisan CLIмм\n \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n Briviba SaaS\n \n \n PHP, SQLite, Artisan CLIмм\n \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n Briviba SaaS\n \n \n PHP, SQLite, Artisan CLIмм\n \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n Briviba SaaS\n \n \n PHP, SQLite, Artisan CLIмм\n \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n Briviba SaaS\n \n \n PHP, SQLite, Artisan CLIмм\n \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n Briviba SaaS\n \n \n PHP, SQLite, Artisan CLIмм\n \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n Briviba SaaS\n \n \n PHP, SQLite, Artisan CLIмм\n \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n New report has been received\n
    \n
    23 hrs ago
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    \n Finance report has been generated\n
    \n
    25 hrs ago
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    \n New order has been received\n
    \n
    2 hrs ago
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    \n New customer is registered\n
    \n
    3 hrs ago
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    \n Application has been approved\n
    \n
    3 hrs ago
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    \n New file has been uploaded\n
    \n
    5 hrs ago
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    \n New user feedback received\n
    \n
    8 hrs ago
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    \n System reboot has been successfully completed\n
    \n
    12 hrs ago
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    \n New order has been placed\n
    \n
    15 hrs ago
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    \n Company meeting canceled\n
    \n
    19 hrs ago
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    \n New report has been received\n
    \n
    23 hrs ago
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    \n Finance report has been generated\n
    \n
    25 hrs ago
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    \n New customer comment recieved\n
    \n
    2 days ago
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    \n New customer is registered\n
    \n
    3 days ago
    \n
    \n
    \n
    \n \n \n \n
    \n All caught up!\n
    \n No new notifications.\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n )}\n \n );\n}\n","import axios from 'axios';\nimport { API_ROOT } from '../../../../../redux/setupAxios';\n\nexport const ACCOUNTS_URL = API_ROOT + '/core/v1/accounts';\n\nexport function getSelf() {\n return axios.get(`${ACCOUNTS_URL}/self`).catch((error) => {\n error.message = \"Can't get self informations\"\n throw error\n }\n );\n}","import { selfSlice } from './selfSlice';\n\nconst { actions } = selfSlice;\n\nexport const selfUpdate = (self) => (dispatch) => dispatch(actions.selfUpdate(self));","import { useDispatch, useSelector } from 'react-redux';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport React, { useEffect, useMemo } from 'react';\n\nimport { AuthConsumer } from '../../../../app/modules/Auth0';\nimport { LanguageSelectorDropdown } from '../extras/dropdowns/LanguageSelectorDropdown';\nimport { MyCartDropdown } from '../extras/dropdowns/MyCartDropdown';\nimport { QuickActionsDropdown } from '../extras/dropdowns/QuickActionsDropdown';\nimport { QuickUserToggler } from '../../../../_nubo/layout/components/extras/QuiclUserToggler';\nimport SVG from 'react-inlinesvg';\nimport { SearchDropdown } from '../extras/dropdowns/search/SearchDropdown';\nimport { UserNotificationsDropdown } from '../extras/dropdowns/UserNotificationsDropdown';\nimport objectPath from 'object-path';\nimport { toAbsoluteUrl } from '../../../_helpers';\nimport { useHtmlClassService } from '../../_core/MetronicLayout';\nimport { getSelf } from '../../../../app/modules/Core/_redux/self/selfCrud';\nimport { selfUpdate } from '../../../../app/modules/Core/_redux/self/selfActions';\n\nexport function Topbar() {\n const uiService = useHtmlClassService();\n const loggedInSubAccount = localStorage.getItem('SToken');\n const rawLoggedAs = localStorage.getItem('loggedAs');\n let loggedAs = rawLoggedAs ? JSON.parse(rawLoggedAs) : {};\n const company_name = useSelector((state) => state.self?.selfInfo?.company_name) || \"Empresa não identificada\";\n\n const dispatch = useDispatch();\n\n const adminUrl = process.env.REACT_APP_ADMIN_URL || '';\n const layoutProps = useMemo(() => {\n return {\n viewSearchDisplay: objectPath.get(\n uiService.config,\n 'extras.search.display',\n ),\n viewNotificationsDisplay: objectPath.get(\n uiService.config,\n 'extras.notifications.display',\n ),\n viewQuickActionsDisplay: objectPath.get(\n uiService.config,\n 'extras.quick-actions.display',\n ),\n viewCartDisplay: objectPath.get(uiService.config, 'extras.cart.display'),\n viewQuickPanelDisplay: objectPath.get(\n uiService.config,\n 'extras.quick-panel.display',\n ),\n viewLanguagesDisplay: objectPath.get(\n uiService.config,\n 'extras.languages.display',\n ),\n viewUserDisplay: objectPath.get(uiService.config, 'extras.user.display'),\n };\n }, [uiService]);\n\n const handleReturnAdmin = () => {\n localStorage.removeItem('SToken');\n window.location.replace(adminUrl);\n };\n\n const getSelfFrompi = async () => {\n const request = await getSelf();\n return request.data;\n };\n\n useEffect(() => {\n async function fetchData() {\n const responseSelf = await getSelfFrompi();\n dispatch(selfUpdate(responseSelf));\n }\n fetchData();\n }, [dispatch]);\n\n useEffect(() => {\n if (!loggedAs) {\n const loginAs = localStorage.getItem('loggedAs');\n if (loginAs) {\n loggedAs = JSON.parse(loginAs);\n }\n }\n }, [loggedAs]);\n\n return (\n
    \n {layoutProps.viewSearchDisplay && }\n\n {layoutProps.viewNotificationsDisplay && }\n\n {layoutProps.viewQuickActionsDisplay && }\n\n {layoutProps.viewCartDisplay && }\n\n {layoutProps.viewQuickPanelDisplay && (\n Quick panel}\n >\n \n \n \n \n \n
    \n \n \n )}\n\n {layoutProps.viewLanguagesDisplay && }\n\n {loggedInSubAccount ? (\n <>\n
    \n {company_name ? (\n \n {`Acessando a conta ${company_name} através da conta ${loggedAs.company_name}`}\n \n ) : (\n \n carregando...\n \n )}\n
    \n
    \n
    \n <>\n \n Retornar ao Nubo Admin\n \n \n
    \n
    \n \n ) : (\n <>\n {layoutProps.viewUserDisplay && (\n \n {({ profile }) => }\n \n )}\n \n )}\n \n );\n}\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React from 'react';\nimport { useLocation } from 'react-router';\nimport { NavLink } from 'react-router-dom';\nimport { checkIsActive } from '../../../../_helpers';\n\nexport function HeaderMenu({ layoutProps }) {\n const location = useLocation();\n const getMenuItemActive = (url) => {\n return checkIsActive(location, url) ? 'menu-item-active' : '';\n };\n\n return (\n \n {/*begin::Header Nav*/}\n
      \n {/*begin::1 Level*/}\n \n \n Painel\n {layoutProps.rootArrowEnabled && }\n \n \n {/*end::1 Level*/}\n\n {/*Classic submenu*/}\n {/*begin::1 Level*/}\n \n \n Mapa de emissores\n {layoutProps.rootArrowEnabled && }\n \n \n {/*end::1 Level*/}\n
    \n {/*end::Header Nav*/}\n \n );\n}\n","import React, { useMemo } from 'react';\nimport objectPath from 'object-path';\nimport { Link } from 'react-router-dom';\nimport { toAbsoluteUrl } from '../../../../_helpers';\nimport { useHtmlClassService } from '../../../_core/MetronicLayout';\nimport { HeaderMenu } from './HeaderMenu';\n\nexport function HeaderMenuWrapper() {\n const uiService = useHtmlClassService();\n const layoutProps = useMemo(() => {\n return {\n config: uiService.config,\n ktMenuClasses: uiService.getClasses('header_menu', true),\n rootArrowEnabled: objectPath.get(\n uiService.config,\n 'header.menu.self.root-arrow',\n ),\n menuDesktopToggle: objectPath.get(\n uiService.config,\n 'header.menu.desktop.toggle',\n ),\n headerMenuAttributes: uiService.getAttributes('header_menu'),\n headerSelfTheme: objectPath.get(uiService.config, 'header.self.theme'),\n ulClasses: uiService.getClasses('header_menu_nav', true),\n disabledAsideSelfDisplay:\n objectPath.get(uiService.config, 'aside.self.display') === false,\n };\n }, [uiService]);\n const getHeaderLogo = () => {\n let result = 'logo-light.png';\n if (layoutProps.headerSelfTheme && layoutProps.headerSelfTheme !== 'dark') {\n result = 'logo-dark.png';\n }\n return toAbsoluteUrl(`/media/logos/${result}`);\n };\n\n return (\n <>\n {/*begin::Header Menu Wrapper*/}\n \n {layoutProps.disabledAsideSelfDisplay && (\n <>\n {/*begin::Header Logo*/}\n
    \n \n \"logo\"\n \n
    \n {/*end::Header Logo*/}\n \n )}\n {/*begin::Header Menu*/}\n \n {/*end::Header Menu*/}\n \n {/*Header Menu Wrapper*/}\n \n );\n}\n","import React, { useMemo } from 'react';\nimport objectPath from 'object-path';\nimport { useHtmlClassService } from '../../_core/MetronicLayout';\nimport { Topbar } from './Topbar';\nimport { HeaderMenuWrapper } from './header-menu/HeaderMenuWrapper';\nimport { AnimateLoading } from '../../../_partials/controls';\n\nexport function Header() {\n const uiService = useHtmlClassService();\n\n const layoutProps = useMemo(() => {\n return {\n headerClasses: uiService.getClasses('header', true),\n headerAttributes: uiService.getAttributes('header'),\n headerContainerClasses: uiService.getClasses('header_container', true),\n menuHeaderDisplay: objectPath.get(\n uiService.config,\n 'header.menu.self.display',\n ),\n };\n }, [uiService]);\n\n return (\n <>\n {/*begin::Header*/}\n \n {/*begin::Container*/}\n \n \n {/*begin::Header Menu Wrapper*/}\n {layoutProps.menuHeaderDisplay && }\n {!layoutProps.menuHeaderDisplay &&
    }\n {/*end::Header Menu Wrapper*/}\n\n {/*begin::Topbar*/}\n \n {/*end::Topbar*/}\n
    \n {/*end::Container*/}\n \n {/*end::Header*/}\n \n );\n}\n","import React, { useMemo } from 'react';\nimport objectPath from 'object-path';\nimport SVG from 'react-inlinesvg';\nimport { toAbsoluteUrl } from '../../../_helpers';\nimport { useHtmlClassService } from '../../_core/MetronicLayout';\n\nexport function HeaderMobile() {\n const uiService = useHtmlClassService();\n\n const layoutProps = useMemo(() => {\n return {\n headerLogo: uiService.getStickyLogo(),\n asideDisplay: objectPath.get(uiService.config, 'aside.self.display'),\n headerMenuSelfDisplay:\n objectPath.get(uiService.config, 'header.menu.self.display') === true,\n headerMobileCssClasses: uiService.getClasses('header_mobile', true),\n headerMobileAttributes: uiService.getAttributes('header_mobile'),\n };\n }, [uiService]);\n\n return (\n \n
    \n {layoutProps.headerMenuSelfDisplay && (\n \n \n \n )}\n
    \n\n
    \n {layoutProps.asideDisplay && (\n \n \n \n )}\n document.getElementById('kt_quick_user_toggle').click()}\n >\n \n \n \n \n\n
    \n \n );\n}\n","/* eslint-disable */\n'use strict';\n\nimport { KTUtil } from './../../components/util.js';\n\nvar KTLayoutHeader = (function() {\n // Private properties\n var _element;\n var _elementForMobile;\n var _object;\n\n // Private functions\n // Get Height\n var _getHeight = function() {\n var height = 0;\n\n if (_element) {\n height = KTUtil.actualHeight(_element) + 1;\n }\n\n return height;\n };\n\n // Get Height\n var _getHeightForMobile = function() {\n var height;\n\n height = KTUtil.actualHeight(_elementForMobile);\n\n return height;\n };\n\n // Public Methods\n return {\n init: function(id, idForMobile) {\n _element = KTUtil.getById(id);\n _elementForMobile = KTUtil.getById(idForMobile);\n\n if (!_element) {\n return;\n }\n },\n\n isFixed: function() {\n return KTUtil.hasClass(KTUtil.getBody(), 'header-fixed');\n },\n\n isFixedForMobile: function() {\n return KTUtil.hasClass(KTUtil.getBody(), 'header-mobile-fixed');\n },\n\n getElement: function() {\n return _element;\n },\n\n getElementForMobile: function() {\n return _elementForMobile;\n },\n\n getHeader: function() {\n return _object;\n },\n\n getHeight: function() {\n return _getHeight();\n },\n\n getHeightForMobile: function() {\n return _getHeightForMobile();\n },\n };\n})();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n // module.exports = KTLayoutHeader;\n}\n\nexport default KTLayoutHeader;\n","/* eslint-disable */\n'use strict';\n\nimport KTOffcanvas from './../../components/offcanvas.js';\nimport KTMenu from './../../components/menu.js';\nimport { KTUtil } from './../../components/util.js';\n\nvar KTLayoutHeaderMenu = (function() {\n // Private properties\n var _menuElement;\n var _menuObject;\n var _offcanvasElement;\n var _offcanvasObject;\n\n // Private functions\n var _init = function() {\n _offcanvasObject = new KTOffcanvas(_offcanvasElement, {\n overlay: true,\n baseClass: 'header-menu-wrapper',\n closeBy: 'kt_header_menu_mobile_close_btn',\n toggleBy: {\n target: 'kt_header_mobile_toggle',\n state: 'mobile-toggle-active',\n },\n });\n\n _menuObject = new KTMenu(_menuElement, {\n submenu: {\n desktop: 'dropdown',\n tablet: 'accordion',\n mobile: 'accordion',\n },\n accordion: {\n slideSpeed: 200, // accordion toggle slide speed in milliseconds\n expandAll: false, // allow having multiple expanded accordions in the menu\n },\n });\n\n // Close aside offcanvas panel before page reload On tablet and mobile\n _menuObject.on('linkClick', function(menu) {\n if (KTUtil.isBreakpointDown('lg')) {\n // Tablet and mobile mode\n _offcanvasObject.hide(); // Hide offcanvas after general link click\n }\n });\n };\n\n // Public methods\n return {\n init: function(menuId, offcanvasId) {\n _menuElement = KTUtil.getById(menuId);\n _offcanvasElement = KTUtil.getById(offcanvasId);\n\n if (!_menuElement) {\n return;\n }\n\n // Initialize menu\n _init();\n },\n\n getMenuElement: function() {\n return _menuElement;\n },\n\n getOffcanvasElement: function() {\n return _offcanvasElement;\n },\n\n getMenu: function() {\n return _menuObject;\n },\n\n pauseDropdownHover: function(time) {\n if (_menuObject) {\n _menuObject.pauseDropdownHover(time);\n }\n },\n\n getOffcanvas: function() {\n return _offcanvasObject;\n },\n\n closeMobileOffcanvas: function() {\n if (_menuObject && KTUtil.isMobileDevice()) {\n _offcanvasObject.hide();\n }\n },\n };\n})();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n // module.exports = KTLayoutHeaderMenu;\n}\n\nexport default KTLayoutHeaderMenu;\n","/* eslint-disable */\n'use strict';\n\nimport KTToggle from './../../components/toggle.js';\nimport { KTUtil } from './../../components/util.js';\n\nvar KTLayoutHeaderTopbar = (function() {\n // Private properties\n var _toggleElement;\n var _toggleObject;\n\n // Private functions\n var _init = function() {\n _toggleObject = new KTToggle(_toggleElement, KTUtil.getBody(), {\n targetState: 'topbar-mobile-on',\n toggleState: 'active',\n });\n };\n\n // Public methods\n return {\n init: function(id) {\n _toggleElement = KTUtil.getById(id);\n\n if (!_toggleElement) {\n return;\n }\n\n // Initialize\n _init();\n },\n\n getToggleElement: function() {\n return _toggleElement;\n },\n };\n})();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n // module.exports = KTLayoutHeaderTopbar;\n}\n\nexport default KTLayoutHeaderTopbar;\n","/* eslint-disable */\n'use strict';\n\nimport { KTUtil } from './../../components/util.js';\n\nvar KTLayoutBrand = (function() {\n // Private properties\n var _element;\n\n // Private functions\n var _getHeight = function() {\n var height = 0;\n\n if (_element) {\n height = KTUtil.actualHeight(_element);\n }\n\n return height;\n };\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n },\n\n getElement: function() {\n return _element;\n },\n\n getHeight: function() {\n return _getHeight();\n },\n };\n})();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n // module.exports = KTLayoutBrand;\n}\n\nexport default KTLayoutBrand;\n","/* eslint-disable */\n'use strict';\n\nimport { KTUtil } from './../../components/util.js';\nimport KTOffcanvas from './../../components/offcanvas.js';\n\nvar KTLayoutAside = (function() {\n // Private properties\n var _body;\n var _element;\n var _offcanvasObject;\n\n // Private functions\n // Initialize\n var _init = function() {\n var offcanvasClass = KTUtil.hasClass(_element, 'aside-offcanvas-default')\n ? 'aside-offcanvas-default'\n : 'aside';\n\n // Initialize mobile aside offcanvas\n _offcanvasObject = new KTOffcanvas(_element, {\n baseClass: offcanvasClass,\n overlay: true,\n closeBy: 'kt_aside_close_btn',\n toggleBy: {\n target: 'kt_aside_mobile_toggle',\n state: 'mobile-toggle-active',\n },\n });\n };\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n _body = KTUtil.getBody();\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n },\n\n getElement: function() {\n return _element;\n },\n\n getOffcanvas: function() {\n return _offcanvasObject;\n },\n\n isFixed: function() {\n return KTUtil.hasClass(_body, 'aside-fixed');\n },\n\n isMinimized: function() {\n return (\n KTUtil.hasClass(_body, 'aside-fixed') &&\n KTUtil.hasClass(_body, 'aside-minimize')\n );\n },\n\n isHoverable: function() {\n return (\n KTUtil.hasClass(_body, 'aside-fixed') &&\n KTUtil.hasClass(_body, 'aside-minimize-hoverable')\n );\n },\n };\n})();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n // module.exports = KTLayoutAside;\n}\n\nexport default KTLayoutAside;\n","/* eslint-disable */\n'use strict';\n\nimport { KTUtil } from './../../components/util.js';\n\nvar KTLayoutSubheader = (function() {\n // Private properties\n var _element;\n\n // Private functions\n var _getHeight = function() {\n var height = 0;\n\n if (_element) {\n height = KTUtil.actualHeight(_element);\n }\n\n return height;\n };\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n },\n\n isFixed: function() {\n return KTUtil.hasClass(KTUtil.getBody(), 'subheader-fixed');\n },\n\n getElement: function() {\n return _element;\n },\n\n getHeight: function() {\n return _getHeight();\n },\n };\n})();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n // module.exports = KTLayoutSubheader;\n}\n\nexport default KTLayoutSubheader;\n","/* eslint-disable */\n'use strict';\n\nimport KTLayoutHeader from './header.js';\nimport KTCard from './../../components/card.js';\nimport { KTUtil } from './../../components/util.js';\nimport KTLayoutSubheader from './subheader.js';\n\nvar KTLayoutStickyCard = (function() {\n // Private properties\n var _element;\n var _object;\n\n // Private functions\n var _init = function() {\n var offset = 300;\n\n if (typeof KTLayoutHeader !== 'undefined') {\n offset = KTLayoutHeader.getHeight();\n }\n\n _object = new KTCard(_element, {\n sticky: {\n offset: offset,\n zIndex: 90,\n position: {\n top: function() {\n var pos = 0;\n var body = KTUtil.getBody();\n\n if (KTUtil.isBreakpointUp('lg')) {\n if (\n typeof KTLayoutHeader !== 'undefined' &&\n KTLayoutHeader.isFixed()\n ) {\n pos = pos + KTLayoutHeader.getHeight();\n }\n\n if (\n typeof KTLayoutSubheader !== 'undefined' &&\n KTLayoutSubheader.isFixed()\n ) {\n pos = pos + KTLayoutSubheader.getHeight();\n }\n } else {\n if (\n typeof KTLayoutHeader !== 'undefined' &&\n KTLayoutHeader.isFixedForMobile()\n ) {\n pos = pos + KTLayoutHeader.getHeightForMobile();\n }\n }\n\n pos = pos - 1; // remove header border width\n\n return pos;\n },\n left: function(card) {\n return KTUtil.offset(_element).left;\n },\n right: function(card) {\n var body = KTUtil.getBody();\n\n var cardWidth = parseInt(KTUtil.css(_element, 'width'));\n var bodyWidth = parseInt(KTUtil.css(body, 'width'));\n var cardOffsetLeft = KTUtil.offset(_element).left;\n\n return bodyWidth - cardWidth - cardOffsetLeft;\n },\n },\n },\n });\n\n _object.initSticky();\n\n KTUtil.addResizeHandler(function() {\n _object.updateSticky();\n });\n };\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n },\n\n update: function() {\n if (_object) {\n _object.updateSticky();\n }\n },\n };\n})();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n // module.exports = KTLayoutStickyCard;\n}\n\nexport default KTLayoutStickyCard;\n","/* eslint-disable */\n'use strict';\n\nimport { KTUtil } from './../../components/util.js';\nimport KTLayoutBrand from './brand.js';\nimport KTMenu from './../../components/menu.js';\nimport KTLayoutAside from './aside.js';\n\nvar KTLayoutAsideMenu = (function() {\n // Private properties\n var _body;\n var _element;\n var _menuObject;\n\n // Initialize\n var _init = function() {\n var menuDesktopMode =\n KTUtil.attr(_element, 'data-menu-dropdown') === '1'\n ? 'dropdown'\n : 'accordion';\n var scroll;\n\n if (KTUtil.attr(_element, 'data-menu-scroll') === '1') {\n scroll = {\n rememberPosition: true, // remember position on page reload\n height: function() {\n // calculate available scrollable area height\n var height = parseInt(KTUtil.getViewPort().height);\n\n if (KTUtil.isBreakpointUp('lg')) {\n height = height - KTLayoutBrand.getHeight();\n }\n\n height =\n height -\n (parseInt(KTUtil.css(_element, 'marginBottom')) +\n parseInt(KTUtil.css(_element, 'marginTop')));\n\n return height;\n },\n };\n }\n\n _menuObject = new KTMenu(_element, {\n // Vertical scroll\n scroll: scroll,\n\n // Submenu setup\n submenu: {\n desktop: menuDesktopMode,\n tablet: 'accordion', // menu set to accordion in tablet mode\n mobile: 'accordion', // menu set to accordion in mobile mode\n },\n\n // Accordion setup\n accordion: {\n expandAll: false, // allow having multiple expanded accordions in the menu\n },\n });\n };\n\n var _initHover = function() {\n // Handle Minimized Aside Hover\n if (\n KTUtil.hasClass(_body, 'aside-fixed') &&\n KTUtil.hasClass(_body, 'aside-minimize-hoverable')\n ) {\n var insideTm;\n var outsideTm;\n\n // Handle Aside Hover Mode\n KTUtil.addEvent(_element, 'mouseenter', function(e) {\n e.preventDefault();\n\n if (KTUtil.isBreakpointUp('lg') === false) {\n return;\n }\n\n if (outsideTm) {\n clearTimeout(outsideTm);\n outsideTm = null;\n }\n\n if (insideTm) {\n clearTimeout(insideTm);\n insideTm = null;\n }\n\n insideTm = setTimeout(function() {\n if (\n KTUtil.hasClass(_body, 'aside-minimize') &&\n KTUtil.isBreakpointUp('lg')\n ) {\n // Hover class\n KTUtil.addClass(_body, 'aside-minimize-hover');\n\n KTLayoutAsideMenu.getMenu().scrollUpdate();\n KTLayoutAsideMenu.getMenu().scrollTop();\n }\n }, 50);\n });\n\n KTUtil.addEvent(KTLayoutAside.getElement(), 'mouseleave', function(e) {\n e.preventDefault();\n\n if (KTUtil.isBreakpointUp('lg') === false) {\n return;\n }\n\n if (insideTm) {\n clearTimeout(insideTm);\n insideTm = null;\n }\n\n if (outsideTm) {\n clearTimeout(outsideTm);\n outsideTm = null;\n }\n\n outsideTm = setTimeout(function() {\n if (\n KTUtil.hasClass(_body, 'aside-minimize-hover') &&\n KTUtil.isBreakpointUp('lg')\n ) {\n KTUtil.removeClass(_body, 'aside-minimize-hover');\n\n // Hover class\n KTLayoutAsideMenu.getMenu().scrollUpdate();\n KTLayoutAsideMenu.getMenu().scrollTop();\n }\n }, 100);\n });\n }\n };\n\n // Public methods\n return {\n init: function(id) {\n _body = KTUtil.getBody();\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize menu\n _init();\n _initHover();\n },\n\n getElement: function() {\n return _element;\n },\n\n getMenu: function() {\n return _menuObject;\n },\n\n pauseDropdownHover: function(time) {\n if (_menuObject) {\n _menuObject.pauseDropdownHover(time);\n }\n },\n\n closeMobileOffcanvas: function() {\n if (_menuObject && KTUtil.isMobileDevice()) {\n _menuObject.hide();\n }\n },\n };\n})();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n // module.exports = KTLayoutAsideMenu;\n}\n\nexport default KTLayoutAsideMenu;\n","/* eslint-disable */\n'use strict';\n\nimport KTToggle from './../../components/toggle.js';\nimport KTLayoutStickyCard from './sticky-card.js';\nimport KTLayoutHeaderMenu from './header-menu.js';\nimport KTLayoutAsideMenu from './aside-menu.js';\nimport { KTCookie } from './../../components/cookie.js';\nimport { KTUtil } from './../../components/util.js';\n\nvar KTLayoutAsideToggle = (function() {\n // Private properties\n var _body;\n var _element;\n var _toggleObject;\n\n // Initialize\n var _init = function() {\n _toggleObject = new KTToggle(_element, _body, {\n targetState: 'aside-minimize',\n toggleState: 'active',\n });\n\n _toggleObject.on('toggle', function(toggle) {\n // Update sticky card\n if (typeof KTLayoutStickyCard !== 'undefined') {\n KTLayoutStickyCard.update();\n }\n\n // Pause header menu dropdowns\n if (typeof KTLayoutHeaderMenu !== 'undefined') {\n KTLayoutHeaderMenu.pauseDropdownHover(800);\n }\n\n // Pause aside menu dropdowns\n if (typeof KTLayoutAsideMenu !== 'undefined') {\n KTLayoutAsideMenu.pauseDropdownHover(800);\n }\n\n // Remember state in cookie\n KTCookie.setCookie('kt_aside_toggle_state', toggle.getState());\n // to set default minimized left aside use this cookie value in your\n // server side code and add \"kt-primary--minimize aside-minimize\" classes to\n // the body tag in order to initialize the minimized left aside mode during page loading.\n });\n\n _toggleObject.on('beforeToggle', function(toggle) {\n if (\n KTUtil.hasClass(_body, 'aside-minimize') === false &&\n KTUtil.hasClass(_body, 'aside-minimize-hover')\n ) {\n KTUtil.removeClass(_body, 'aside-minimize-hover');\n }\n });\n };\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n _body = KTUtil.getBody();\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n },\n\n getElement: function() {\n return _element;\n },\n\n getToggle: function() {\n return _toggleObject;\n },\n\n onToggle: function(handler) {\n if (typeof _toggleObject.element !== 'undefined') {\n _toggleObject.on('toggle', handler);\n }\n },\n };\n})();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n // module.exports = KTLayoutAsideToggle;\n}\n\nexport default KTLayoutAsideToggle;\n","/* eslint-disable */\n'use strict';\n\nimport { KTUtil } from './../../components/util.js';\n\nvar KTLayoutFooter = (function() {\n // Private properties\n var _element;\n\n // Private functions\n var _getHeight = function() {\n var height = 0;\n\n if (_element) {\n height = KTUtil.actualHeight(_element);\n }\n\n return height;\n };\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n },\n\n getHeight: function() {\n return _getHeight();\n },\n\n getElement: function() {\n return _element;\n },\n };\n})();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n // module.exports = KTLayoutFooter;\n}\n\nexport default KTLayoutFooter;\n","/* eslint-disable */\n'use strict';\n\nimport { KTUtil } from './../../components/util.js';\nimport KTLayoutHeader from './header.js';\nimport KTLayoutSubheader from './subheader.js';\nimport KTLayoutFooter from './footer.js';\n\nvar KTLayoutContent = (function() {\n // Private properties\n var _element;\n\n // Private functions\n var _getHeight = function() {\n var height;\n\n height = KTUtil.getViewPort().height;\n\n if (_element) {\n height =\n height -\n parseInt(KTUtil.css(_element, 'paddingTop')) -\n parseInt(KTUtil.css(_element, 'paddingBottom'));\n }\n\n height = height - KTLayoutHeader.getHeight();\n height = height - KTLayoutSubheader.getHeight();\n height = height - KTLayoutFooter.getHeight();\n\n return height;\n };\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n },\n\n getHeight: function() {\n return _getHeight();\n },\n\n getElement: function() {\n return _element;\n },\n };\n})();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n // module.exports = KTLayoutContent;\n}\n\nexport default KTLayoutContent;\n","/* eslint-disable */\n'use strict';\n\nimport KTScrolltop from './../../components/scrolltop.js';\nimport { KTUtil } from './../../components/util.js';\n\nvar KTLayoutScrolltop = (function() {\n // Private properties\n var _element;\n var _object;\n\n // Private functions\n var _init = function() {\n _object = new KTScrolltop(_element, {\n offset: 300,\n speed: 600,\n });\n };\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n },\n\n getElement: function() {\n return _element;\n },\n };\n})();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n // module.exports = KTLayoutScrolltop;\n}\n\nexport default KTLayoutScrolltop;\n","/* eslint-disable */\n'use strict';\n\nimport { KTUtil } from './../../components/util.js';\nimport KTLayoutContent from './content.js';\n\nvar KTLayoutStretchedCard = (function() {\n // Private properties\n var _element;\n\n // Private functions\n var _init = function() {\n var scroll = KTUtil.find(_element, '.card-scroll');\n var cardBody = KTUtil.find(_element, '.card-body');\n var cardHeader = KTUtil.find(_element, '.card-header');\n\n var height = KTLayoutContent.getHeight();\n\n height = height - parseInt(KTUtil.actualHeight(cardHeader));\n\n height =\n height -\n parseInt(KTUtil.css(_element, 'marginTop')) -\n parseInt(KTUtil.css(_element, 'marginBottom'));\n height =\n height -\n parseInt(KTUtil.css(_element, 'paddingTop')) -\n parseInt(KTUtil.css(_element, 'paddingBottom'));\n\n height =\n height -\n parseInt(KTUtil.css(cardBody, 'paddingTop')) -\n parseInt(KTUtil.css(cardBody, 'paddingBottom'));\n height =\n height -\n parseInt(KTUtil.css(cardBody, 'marginTop')) -\n parseInt(KTUtil.css(cardBody, 'marginBottom'));\n\n height = height - 3;\n\n KTUtil.css(scroll, 'height', height + 'px');\n };\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n\n // Re-calculate on window resize\n KTUtil.addResizeHandler(function() {\n _init();\n });\n },\n\n update: function() {\n _init();\n },\n };\n})();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n // module.exports = KTLayoutStretchedCard;\n}\n\nexport default KTLayoutStretchedCard;\n","/* eslint-disable */\n'use strict';\n\nimport { KTUtil } from './../../components/util.js';\nimport KTOffcanvas from './../../components/offcanvas.js';\n\nvar KTLayoutQuickPanel = (function() {\n // Private properties\n var _element;\n var _offcanvasObject;\n var _notificationsElement;\n var _logsElement;\n var _settingsElement;\n\n // Private functions\n var _getContentHeight = function() {\n var height;\n\n var header = KTUtil.find(_element, '.offcanvas-header');\n var content = KTUtil.find(_element, '.offcanvas-content');\n\n var height = parseInt(KTUtil.getViewPort().height);\n\n if (header) {\n height = height - parseInt(KTUtil.actualHeight(header));\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\n }\n\n if (content) {\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\n }\n\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\n\n height = height - 2;\n\n return height;\n };\n\n var _init = function() {\n _offcanvasObject = new KTOffcanvas(_element, {\n overlay: true,\n baseClass: 'offcanvas',\n placement: 'right',\n closeBy: 'kt_quick_panel_close',\n toggleBy: 'kt_quick_panel_toggle',\n });\n };\n\n var _initNotifications = function() {\n KTUtil.scrollInit(_notificationsElement, {\n mobileNativeScroll: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n return _getContentHeight();\n },\n });\n };\n\n var _initLogs = function() {\n KTUtil.scrollInit(_logsElement, {\n mobileNativeScroll: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n return _getContentHeight();\n },\n });\n };\n\n var _initSettings = function() {\n KTUtil.scrollInit(_settingsElement, {\n mobileNativeScroll: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n return _getContentHeight();\n },\n });\n };\n\n var _updateScrollbars = function() {\n $(_element)\n .find('a[data-toggle=\"tab\"]')\n .on('shown.bs.tab', function(e) {\n KTUtil.scrollUpdate(_notificationsElement);\n KTUtil.scrollUpdate(_logsElement);\n KTUtil.scrollUpdate(_settingsElement);\n });\n };\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n _notificationsElement = KTUtil.getById('kt_quick_panel_notifications');\n _logsElement = KTUtil.getById('kt_quick_panel_logs');\n _settingsElement = KTUtil.getById('kt_quick_panel_settings');\n\n _init();\n _initNotifications();\n _initLogs();\n _initSettings();\n },\n };\n})();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n // module.exports = KTLayoutQuickPanel;\n}\n\nexport default KTLayoutQuickPanel;\n","/* eslint-disable */\n'use strict';\n\nimport { KTUtil } from './../../components/util.js';\nimport KTOffcanvas from './../../components/offcanvas.js';\n\nvar KTLayoutQuickUser = (function() {\n // Private properties\n var _element;\n var _offcanvasObject;\n\n // Private functions\n var _init = function() {\n var header = KTUtil.find(_element, '.offcanvas-header');\n var content = KTUtil.find(_element, '.offcanvas-content');\n\n _offcanvasObject = new KTOffcanvas(_element, {\n overlay: true,\n baseClass: 'offcanvas',\n placement: 'right',\n closeBy: 'kt_quick_user_close',\n toggleBy: 'kt_quick_user_toggle',\n });\n\n KTUtil.scrollInit(content, {\n disableForMobile: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n var height = parseInt(KTUtil.getViewPort().height);\n\n if (header) {\n height = height - parseInt(KTUtil.actualHeight(header));\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\n }\n\n if (content) {\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\n }\n\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\n\n height = height - 2;\n\n return height;\n },\n });\n };\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n },\n\n getElement: function() {\n return _element;\n },\n };\n})();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n // module.exports = KTLayoutQuickUser;\n}\n\nexport default KTLayoutQuickUser;\n","import React, { useLayoutEffect } from 'react';\nimport { KTUtil } from '../../_assets/js/components/util';\nimport KTLayoutHeader from '../../_assets/js/layout/base/header';\nimport KTLayoutHeaderMenu from '../../_assets/js/layout/base/header-menu';\nimport KTLayoutHeaderTopbar from '../../_assets/js/layout/base/header-topbar';\nimport KTLayoutBrand from '../../_assets/js/layout/base/brand';\nimport KTLayoutAside from '../../_assets/js/layout/base/aside';\nimport KTLayoutAsideToggle from '../../_assets/js/layout/base/aside-toggle';\nimport KTLayoutAsideMenu from '../../_assets/js/layout/base/aside-menu';\nimport KTLayoutContent from '../../_assets/js/layout/base/content';\nimport KTLayoutFooter from '../../_assets/js/layout/base/footer';\nimport KTLayoutSubheader from '../../_assets/js/layout/base/subheader';\nimport KTLayoutScrolltop from '../../_assets/js/layout/extended/scrolltop';\nimport KTLayoutStickyCard from '../../_assets/js/layout/base/sticky-card';\nimport KTLayoutStretchedCard from '../../_assets/js/layout/base/stretched-card';\nimport KTLayoutQuickPanel from '../../_assets/js/layout/extended/quick-panel';\nimport KTLayoutQuickUser from '../../_assets/js/layout/extended/quick-user';\n\nexport function LayoutInit() {\n useLayoutEffect(() => {\n // Initialization\n KTUtil.ready(function() {\n ////////////////////////////////////////////////////\n // Layout Base Partials(mandatory for core layout)//\n ////////////////////////////////////////////////////\n // Init Desktop & Mobile Headers\n KTLayoutHeader.init('kt_header', 'kt_header_mobile');\n\n // Init Header Menu\n KTLayoutHeaderMenu.init('kt_header_menu', 'kt_header_menu_wrapper');\n // Init Header Topbar For Mobile Mode\n KTLayoutHeaderTopbar.init('kt_header_mobile_topbar_toggle');\n // Init Brand Panel For Logo\n KTLayoutBrand.init('kt_brand');\n // Init Aside\n KTLayoutAside.init('kt_aside');\n\n // Init Aside Menu Toggle\n KTLayoutAsideToggle.init('kt_aside_toggle');\n //\n // Init Aside Menu\n KTLayoutAsideMenu.init('kt_aside_menu');\n\n // Init Content\n KTLayoutContent.init('kt_content');\n\n // Init Footer\n KTLayoutFooter.init('kt_footer');\n\n //////////////////////////////////////////////\n // Layout Extended Partials(optional to use)//\n //////////////////////////////////////////////\n KTLayoutSubheader.init('kt_subheader');\n\n // Init Scrolltop\n KTLayoutScrolltop.init('kt_scrolltop');\n\n // Init Sticky Card\n KTLayoutStickyCard.init('kt_page_sticky_card');\n\n // Init Stretched Card\n KTLayoutStretchedCard.init('kt_page_stretched_card');\n\n // Init Quick Offcanvas Panel\n KTLayoutQuickPanel.init('kt_quick_panel');\n\n // Init Quick User Panel\n KTLayoutQuickUser.init('kt_quick_user');\n });\n }, []);\n return <>;\n}\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid,no-undef */\nimport React, { useState } from 'react';\nimport SVG from 'react-inlinesvg';\nimport { Tab, Nav } from 'react-bootstrap';\nimport { toAbsoluteUrl } from '../../../../_helpers';\n\nexport function QuickPanel() {\n const [selectedTab, setSelectedTab] = useState('AuditLogs');\n\n const setTab = (_tabName) => {\n setSelectedTab(_tabName);\n };\n\n return (\n
    \n \n {/*begin::Header*/}\n
    \n \n \n \n Audit Logs\n \n \n \n \n Notifications\n \n \n \n \n Settings\n \n \n \n\n \n \n \n \n
    \n
    \n {/*end::Header*/}\n\n {/*begin::Content*/}\n
    \n
    \n \n
    \n
    System Messages
    \n
    \n
    \n \n \n \n
    \n
    \n \n Top Authors\n \n \n Most Successful Fellas\n \n
    \n \n +82$\n \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n \n Popular Authors\n \n \n Most Successful Fellas\n \n
    \n \n +280$\n \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n \n New Users\n \n \n Most Successful Fellas\n \n
    \n \n +4500$\n \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n \n Active Customers\n \n \n Most Successful Fellas\n \n
    \n \n +4500$\n \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n \n Bestseller Theme\n \n \n Most Successful Fellas\n \n
    \n \n +4500$\n \n
    \n
    \n\n
    \n
    Notifications
    \n\n
    \n \n \n \n\n
    \n \n Another purpose persuade\n \n \n Due in 2 Days\n \n
    \n\n \n +28%\n \n
    \n\n
    \n \n \n \n
    \n \n Would be to people\n \n \n Due in 2 Days\n \n
    \n\n \n +50%\n \n
    \n\n
    \n \n \n \n
    \n \n Purpose would be to persuade\n \n \n Due in 2 Days\n \n
    \n\n \n -27%\n \n
    \n\n
    \n \n \n \n\n
    \n \n The best product\n \n \n Due in 2 Days\n \n
    \n\n \n +8%\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n 5 new user generated report\n
    \n
    Reports based on sales
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n 2 new items submited\n
    \n
    by Grog John
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n 79 PSD files generated\n
    \n
    Reports based on sales
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n $2900 worth producucts sold\n
    \n
    Total 234 items
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n 4.5h-avarage response time\n
    \n
    Fostest is Barry
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n 3 Defence alerts\n
    \n
    \n 40% less alerts thar last week\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Avarage 4 blog posts per author\n
    \n
    Most posted 12 time
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n 16 authors joined last week\n
    \n
    \n 9 photodrapehrs, 7 designer\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n 2 new items have been submited\n
    \n
    by Grog John
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n 2.8 GB-total downloads size\n
    \n
    \n Mostly PSD end AL concepts\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n $2900 worth producucts sold\n
    \n
    Total 234 items
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n 7 new user generated report\n
    \n
    Reports based on sales
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n 4.5h-avarage response time\n
    \n
    Fostest is Barry
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    Customer Care
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n\n
    \n\n
    \n
    Reports
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n\n
    \n\n
    \n
    Memebers
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n \n \n {/*end::Content*/}\n \n \n );\n}\n","import { appConfigSlice } from './appConfigSlice';\n\nconst { actions } = appConfigSlice;\n\nexport const toggleDark = () => (dispatch) =>\n dispatch(actions.toggleDark());\n","import React from 'react';\nimport { NavLink, useHistory } from 'react-router-dom';\nimport { Switch, FormControlLabel } from '@material-ui/core';\nimport SVG from 'react-inlinesvg';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { toAbsoluteUrl } from '../../../../../_metronic/_helpers';\nimport * as actions from '../../../../../app/modules/Core/_redux/app-config/appConfigActions';\nimport { formatDate } from '../../../../_helpers/Formatters';\n\nexport function QuickUser(props) {\n const history = useHistory();\n const { user } = props;\n const { selfInfo, licenses } = useSelector((state) => state.self);\n const licensesList =\n (licenses || []).map((e) => e.description || e.name).join(', ') ||\n 'Nenhuma licença disponível';\n\n const closeMenu = () => {\n const toggle = document.getElementById('kt_quick_user_toggle');\n if (toggle) {\n toggle.click();\n }\n };\n\n const logoutClick = () => {\n closeMenu();\n history.push('/logout');\n };\n\n const dispatch = useDispatch();\n\n const isDark = useSelector((state) => state.appConfig.isDark, shallowEqual);\n\n const InfoItem = ({ title, content }) => (\n
    \n \n {title}\n {' '}\n \n {content}\n \n
    \n );\n\n return (\n \n
    \n

    Perfil do Usuário

    \n \n \n \n
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n \n {user.name}\n {selfInfo && selfInfo.id && (\n <>\n {' #'}\n {selfInfo.id}\n \n )}\n \n
    \n
    \n \n \n \n \n \n \n \n \n {user.email}\n \n \n\n {selfInfo && licensesList && (\n \n )}\n \n
    \n
    \n
    \n \n \n Sair\n \n
    \n\n
    \n\n
    \n closeMenu()}\n className=\"navi-item\"\n to=\"/core/auth/profile\"\n >\n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n {' '}\n
    Meu Perfil
    \n
    Configuração da conta e mais
    \n
    \n
    \n \n
    \n\n
    \n\n
    \n dispatch(actions.toggleDark())}\n name=\"checkedB\"\n color=\"primary\"\n />\n }\n />\n
    \n
    \n
    \n );\n}\n","import React from 'react';\nimport SVG from 'react-inlinesvg';\nimport { toAbsoluteUrl } from '../../../_helpers';\n\nexport function ScrollTop() {\n return (\n
    \n \n \n {' '}\n
    \n );\n}\n","import React, { createContext, useState, useContext } from 'react';\n\nexport function getBreadcrumbsAndTitle(menuId, pathName) {\n const result = {\n breadcrumbs: [],\n title: '',\n };\n\n const menu = document.getElementById(menuId);\n if (!menu) {\n return result;\n }\n\n const activeLinksArray = Array.from(\n menu.getElementsByClassName('active') || [],\n );\n const activeLinks = activeLinksArray.filter((el) => el.tagName === 'A');\n if (!activeLinks) {\n return result;\n }\n\n activeLinks.forEach((link) => {\n const titleSpans = link.getElementsByClassName('menu-text');\n\n // do not display breadcrumb for menu toggle items because they dont have a valid path\n if (titleSpans && !link.classList.contains('menu-toggle')) {\n const titleSpan = Array.from(titleSpans).find(\n (t) => t.innerHTML && t.innerHTML.trim().length > 0,\n );\n if (titleSpan) {\n result.breadcrumbs.push({\n pathname: link.pathname.replace(process.env.PUBLIC_URL, ''),\n title: titleSpan.innerHTML,\n });\n }\n }\n });\n result.title = getTitle(result.breadcrumbs, pathName);\n return result;\n}\n\nexport function getTitle(breadCrumbs, pathname) {\n if (!breadCrumbs || !pathname) {\n return '';\n }\n\n const length = breadCrumbs.length;\n if (!length) {\n return '';\n }\n\n return breadCrumbs[length - 1].title;\n}\n\nconst SubheaderContext = createContext();\n\nexport function useSubheader() {\n return useContext(SubheaderContext);\n}\n\nexport const SubheaderConsumer = SubheaderContext.Consumer;\n\nexport function MetronicSubheaderProvider({ children }) {\n const [title, setTitle] = useState('');\n const [breadcrumbs, setBreadcrumbs] = useState([]);\n const value = { title, setTitle, breadcrumbs, setBreadcrumbs };\n return (\n \n {children}\n \n );\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from 'react';\nimport { Link } from 'react-router-dom';\n\nexport function BreadCrumbs({ items }) {\n if (!items || !items.length) {\n return '';\n }\n\n return (\n
      \n {items.map((item, index) => (\n
    • \n \n {item.title}\n \n
    • \n ))}\n
    \n );\n}\n","import React from 'react';\nimport { Grid } from '@material-ui/core';\nimport { shallowEqual, useSelector } from 'react-redux';\nimport { SelectInput } from '../../../_nubo/_partials/controls/inputs/SelectInput';\nimport { GroupingValues } from '../../modules/Core/_redux/devicemap/deviceMapSlice';\nimport { useHistory } from 'react-router-dom';\nimport { Row } from 'react-bootstrap';\nimport { Col } from 'react-bootstrap';\nimport { MultiSelect } from '../../../_metronic/_partials/controls/forms/MultiSelect';\n\nexport const DeviceMapSubheader = () => {\n const { currentState } = useSelector(\n (state) => ({ currentState: state.deviceMap }),\n shallowEqual,\n );\n\n const { entities } = currentState;\n\n const history = useHistory();\n\n const searchParams = new URLSearchParams(history.location.search);\n const group = searchParams.get('group');\n const regions = (searchParams.get('regions') || '')\n .split(',').map(value => parseInt(value));\n\n const isEnterprise = GroupingValues[group] === GroupingValues.Enterprise;\n\n const getRegions = () => {\n const regions = [];\n entities.forEach(entity => {\n // Verifica se a entidade tem uma região válida (id e name), se não, cria uma fictícia\n const region = (entity.region.id == null || entity.region.name == null) \n ? { id: 0, name: 'SEM REGIÃO DEFINIDA' } \n : entity.region;\n\n // Verifica se a região já foi incluída no array de regiões\n const includes = !!regions.find(r => r.value === region.id);\n if (!includes) {\n regions.push({\n value: region.id || 0,\n label: region.name?.toUpperCase() || 'SEM REGIÃO DEFINIDA',\n });\n }\n });\n regions.sort((a, b) => a.label.localeCompare(b.label) ? 1 : -1);\n return regions;\n };\n\n const regionsOptions = isEnterprise ? getRegions() : [];\n const selectedRegions = regionsOptions.filter(r => regions.includes(r.value));\n const selectedGroup = group || Object.keys(GroupingValues)[0];\n\n return (\n \n
    \n \n \n Agrupar por}\n name=\"groupingValue\"\n onChange={(event) => {\n history.replace('/dashboards/devicemap?group=' + event.target.value);\n }}\n value={selectedGroup}\n choices={Object.keys(GroupingValues).map(id => ({ id, name: GroupingValues[id] }))}\n />\n \n {isEnterprise && \n Filtrar por região}\n name=\"regionFilter\"\n onChange={(regions) => {\n history.replace(`/dashboards/devicemap?group=${selectedGroup}®ions=${regions.map(r => r.value).join(',')}`);\n }}\n value={selectedRegions}\n choices={regionsOptions}\n />\n }\n \n
    \n
    \n );\n};\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React, { useEffect, useLayoutEffect, useMemo } from 'react';\nimport {\n getBreadcrumbsAndTitle,\n useSubheader,\n} from '../../_core/MetronicSubheader';\n\nimport { BreadCrumbs } from './components/BreadCrumbs';\nimport objectPath from 'object-path';\nimport { useHtmlClassService } from '../../_core/MetronicLayout';\nimport { useLocation } from 'react-router-dom';\nimport { DeviceMapSubheader } from '../../../../app/pages/DeviceMap/DeviceMapSubheader';\n\nexport function SubHeader() {\n const uiService = useHtmlClassService();\n const location = useLocation();\n const subheader = useSubheader();\n\n const layoutProps = useMemo(() => {\n return {\n config: uiService.config,\n subheaderMobileToggle: objectPath.get(\n uiService.config,\n 'subheader.mobile-toggle',\n ),\n subheaderCssClasses: uiService.getClasses('subheader', true),\n subheaderContainerCssClasses: uiService.getClasses(\n 'subheader_container',\n true,\n ),\n };\n }, [uiService]);\n\n useLayoutEffect(() => {\n const aside = getBreadcrumbsAndTitle('kt_aside_menu', location.pathname);\n const header = getBreadcrumbsAndTitle('kt_header_menu', location.pathname);\n const breadcrumbs =\n aside && aside.breadcrumbs.length > 0\n ? aside.breadcrumbs\n : header.breadcrumbs;\n subheader.setBreadcrumbs(breadcrumbs);\n subheader.setTitle(\n aside && aside.title && aside.title.length > 0\n ? aside.title\n : header.title,\n );\n // eslint-disable-next-line\n }, [location.pathname]);\n\n // Do not remove this useEffect, need from update title/breadcrumbs outside (from the page)\n useEffect(() => {}, [subheader]);\n\n return (\n \n \n {/* Info */}\n
    \n {layoutProps.subheaderMobileToggle && (\n \n \n \n )}\n\n {/*
    \n
    \n <>{subheader.title}\n \n
    \n
    */}\n\n \n
    \n\n {location.pathname.startsWith('/dashboards/devicemap') && }\n\n {/* */}\n \n \n );\n}\n","import React, { useMemo } from 'react';\nimport objectPath from 'object-path';\nimport { Aside } from './aside/Aside';\nimport { AuthConsumer } from '../../../app/modules/Auth0';\nimport { Footer } from './footer/Footer';\n// Import Layout components\nimport { Header } from './header/Header';\nimport { HeaderMobile } from './header-mobile/HeaderMobile';\nimport { LayoutInit } from './LayoutInit';\nimport { QuickPanel } from './extras/offcanvas/QuickPanel';\nimport { QuickUser } from '../../../_nubo/layout/components/extras/offcanvas/QuickUser';\nimport { ScrollTop } from './extras/ScrollTop';\nimport { SubHeader } from './subheader/SubHeader';\n// LayoutContext\nimport { useHtmlClassService } from '../_core/MetronicLayout';\n\nexport function Layout({ children }) {\n const uiService = useHtmlClassService();\n // Layout settings (cssClasses/cssAttributes)\n const layoutProps = useMemo(() => {\n return {\n layoutConfig: uiService.config,\n selfLayout: objectPath.get(uiService.config, 'self.layout'),\n asideDisplay: objectPath.get(uiService.config, 'aside.self.display'),\n subheaderDisplay: objectPath.get(uiService.config, 'subheader.display'),\n desktopHeaderDisplay: objectPath.get(\n uiService.config,\n 'header.self.fixed.desktop',\n ),\n contentCssClasses: uiService.getClasses('content', true),\n contentContainerClasses: uiService.getClasses('content_container', true),\n contentExtended: objectPath.get(uiService.config, 'content.extended'),\n };\n }, [uiService]);\n\n return layoutProps.selfLayout !== 'blank' ? (\n <>\n {/*begin::Main*/}\n \n
    \n {/*begin::Page*/}\n
    \n {layoutProps.asideDisplay &&
    \n {/*end::Content*/}\n
    \n
    \n {/*end::Wrapper*/}\n \n {/*end::Page*/}\n \n \n {({ profile }) => }\n \n \n \n {/* */}\n {/*end::Main*/}\n \n \n ) : (\n // BLANK LAYOUT\n
    {children}
    \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { useRouteMatch } from 'react-router-dom';\n\nexport function Content({ children }) {\n const match = useRouteMatch() || {};\n const animationEndClass = 'grid-animateContent-finished';\n const [cssClassesState, setCssClassesState] = useState([\n 'grid-animateContent',\n animationEndClass,\n ]);\n\n useEffect(() => {\n // for animation start should toggle 'grid-animateContent-finished' css class\n // TODO: change useMemo\n const fullClasses = [...cssClassesState];\n const startAnimation = fullClasses.filter((el) => el !== animationEndClass);\n setCssClassesState(startAnimation);\n const timeOutId = setTimeout(() => {\n setCssClassesState(fullClasses);\n }, 200);\n\n return () => {\n clearTimeout(timeOutId);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [match.url]);\n\n return <>{children};\n}\n","import React from 'react';\nimport { Route } from 'react-router-dom';\nimport { Content } from './Content';\n\nexport function ContentRoute({ children, component, render, ...props }) {\n return (\n \n {(routeProps) => {\n if (typeof children === 'function') {\n return {children(routeProps)};\n }\n\n if (!routeProps.match) {\n return null;\n }\n\n if (children) {\n return {children};\n }\n\n if (component) {\n return (\n {React.createElement(component, routeProps)}\n );\n }\n\n if (render) {\n return {render(routeProps)};\n }\n\n return null;\n }}\n \n );\n}\n","import React, { createContext, useContext, useState, useEffect } from 'react';\n\nconst MetronicSplashScreenContext = createContext();\n\nexport function MetronicSplashScreenProvider({ children }) {\n const [count, setCount] = useState(0);\n let visible = count > 0;\n\n useEffect(() => {\n const splashScreen = document.getElementById('splash-screen');\n\n // Show SplashScreen\n if (splashScreen && visible) {\n splashScreen.classList.remove('hidden');\n\n return () => {\n splashScreen.classList.add('hidden');\n };\n }\n\n // Hide SplashScreen\n let timeout;\n if (splashScreen && !visible) {\n timeout = setTimeout(() => {\n splashScreen.classList.add('hidden');\n }, 3000);\n }\n\n return () => {\n clearTimeout(timeout);\n };\n }, [visible]);\n\n return (\n \n {children}\n \n );\n}\n\nexport function LayoutSplashScreen({ visible = true }) {\n const setCount = useContext(MetronicSplashScreenContext);\n\n useEffect(() => {\n if (!visible) {\n return;\n }\n\n document.body.onload = () => setTimeout(() => {\n setCount((prev) => {\n return prev + 1;\n });\n delete document.body.onload;\n }, 1000);\n\n return () => {\n setCount((prev) => {\n return prev - 1;\n });\n };\n }, [setCount, visible]);\n\n return null;\n}\n","import React from 'react';\nimport { createMuiTheme, ThemeProvider } from '@material-ui/core';\n\nconst theme = createMuiTheme(\n /**\n * @see https://material-ui.com/customization/themes/#theme-configuration-variables\n */\n {\n // direction: \"rtl\",\n typography: {\n fontFamily: ['Poppins'].join(','),\n },\n\n palette: {\n primary: {\n // light: will be calculated from palette.primary.main,\n main: '#008d8b',\n // dark: will be calculated from palette.primary.main,\n // contrastText: \"#fff\" //will be calculated to contrast with palette.primary.main\n },\n secondary: {\n // light: will be calculated from palette.primary.main,\n main: '#3783e7',\n // dark: will be calculated from palette.primary.main,\n // contrastText: \"#fff\" //will be calculated to contrast with palette.primary.main\n },\n error: {\n // light: will be calculated from palette.primary.main,\n main: '#f018a6',\n // dark: will be calculated from palette.primary.main,\n // contrastText: \"#fff\" //will be calculated to contrast with palette.primary.main\n },\n },\n\n /**\n * @see https://material-ui.com/customization/globals/#default-props\n */\n props: {\n // Name of the component ⚛️\n MuiButtonBase: {\n // The properties to apply\n disableRipple: false, // No more ripple, on the whole application 💣!\n },\n\n // Set default elevation to 1 for popovers.\n MuiPopover: {\n elevation: 1,\n },\n },\n },\n);\n\nexport function MaterialThemeProvider(props) {\n const { children } = props;\n\n return {children};\n}\n","export { Layout } from './components/Layout';\nexport { ContentRoute } from './components/content/ContentRoute';\nexport { Content } from './components/content/Content';\n\n// core\nexport * from './_core/LayoutConfig';\nexport * from './_core/MetronicLayout';\nexport * from './_core/MetronicSplashScreen';\nexport * from './_core/MaterialThemeProvider';\nexport * from './_core/MetronicSubheader';\n"],"sourceRoot":""}