{"version":3,"sources":["pages/parentalleavespin/ParentalLeavespin.module.css","pages/developer/PageDeveloper.module.css","pages/preview/Preview.module.css","pages/unemploymentspin/Unemploymentspin.module.css","components/admin/visitorstatistics/VisitorStatistics.module.css","components/simple/salaryanalysis/salaryinterval/SalaryInterval.module.css","pages/simple/PageSimple.module.css","atoms/accordion/Accordion.module.css","components/advanced/reportsection/salarytable/SalaryTable.module.css","images/icons/svg/person.svg","atoms/modal/Modal.module.css","pages/errorboundary/PageErrorBoundary.module.css","components/header/Header.module.css","atoms/checkbox/Checkbox.module.css","atoms/select/Select.module.css","components/advanced/datasource/DataSource.module.css","pages/login/PageLogin.module.css","atoms/selectPreview/SelectPreview.module.css","pages/parentalleavespin/selectParentalLeaveSpin/SelectParentalLeaveSpin.module.css","components/header/menu/Menu.module.css","components/advanced/filters/filterlist/FilterList.module.css","components/advanced/reportsection/salarygraph/salarymarker/SalaryMarker.module.css","components/admin/filterexplanations/filterexplanationnotext/FilterExplanationNoText.module.css","components/admin/applicationlog/ApplicationLog.module.css","pages/admin/PageAdmin.module.css","pages/copyconfiguration/CopyConfiguration.module.css","pages/careerspin/Careerspin.module.css","components/admin/copyconfiguration/activeselections/ActiveSelections.module.css","atoms/buttonlink/ButtonLink.module.css","atoms/statisticsometer/Statisticsometer.module.css","pages/advanced/PageAdvanced.module.css","atoms/button/Button.module.css","components/admin/level3advanced/datasourceconfig/sortablelist/SortableList.module.css","components/admin/level3advanced/datasourceconfig/DataSourceConfig.module.css","components/admin/applicationlog/logitem/LogItem.module.css","components/admin/monitoringlog/logitem/LogItem.module.css","components/admin/copyconfiguration/statusbox/StatusBox.module.css","components/admin/notifications/notificationrow/NotificationRow.module.css","components/footer/Footer.module.css","pages/start/PageStart.module.css","atoms/input/Input.module.css","components/advanced/activefilters/ActiveFilters.module.css","components/admin/monitoringlog/MonitoringLog.module.css","components/start/analysiscard/AnalysisCard.module.css","components/simple/selectioncard/SelectionCard.module.css","atoms/panel/Panel.module.css","components/admin/accounts/Accounts.module.css","components/admin/navigationItem/NavigationItem.module.css","components/admin/copyconfiguration/CopyConfiguration.module.css","pages/loginInfo/LoginInfo.module.css","atoms/buttonGroup/ButtonGroup.module.css","images/icons/svg/barchart.svg","atoms/buttonactivefilter/ButtonActiveFilter.module.css","components/simple/checkboxselectgroup/CheckboxSelectGroup.module.css","components/simple/salaryprofile/SalaryProfile.module.css","components/advanced/filters/Filters.module.css","atoms/inputreadonly/InputReadOnly.module.css","components/admin/situationconfig/situationcard/SituationCard.module.css","components/admin/linksconfig/LinksConfig.module.css","components/admin/previewdatasourceconfig/previewdatasourcecard/PreviewDataSourceCard.module.css","components/admin/filterexplanations/FilterExplanations.module.css","pages/logout/Logout.module.css","testdata/saco-lonesok_logotype.svg","testdata/flowchart_token-authentication.svg","atoms/breadcrumbs/breadcrumbsitem/BreadcrumbsItem.module.css","atoms/section/Section.module.css","atoms/radiobutton/RadioButton.module.css","components/simple/situation/Situation.module.css","components/advanced/toolbar/downloadsection/DownloadSection.module.css","components/advanced/reportsection/ReportSection.module.css","atoms/tab/Tab.module.css","components/advanced/explanations/Explanations.module.css","components/advanced/custompresentation/CustomPresentation.module.css","atoms/buttonbar/ButtonBar.module.css","atoms/checkboxadmin/CheckboxAdmin.module.css","components/admin/linksconfig/linkcard/LinkCard.module.css","components/admin/level2simple/Level2Simple.module.css","atoms/sectionadmin/SectionAdmin.module.css","components/admin/previewconfig/PreviewConfig.module.css","components/admin/filterexplanations/filterexplanationitem/FilterExplanationItem.module.css","components/admin/generaltexts/generaltextitem/GeneralTextItem.module.css","pages/unemploymentspin/UnemploymentspinTab.module.css","components/header/banner/Banner.module.css","App.module.css","components/start/about/About.module.css","components/start/privacypolicy/PrivacyPolicy.module.css","components/simple/salaryanalysis/SalaryAnalysis.module.css","components/simple/salaryslider/SalarySlider.module.css","atoms/loader/Loader.module.css","atoms/notification/Notification.module.css","atoms/errornotification/ErrorNotification.module.css","components/advanced/toolbar/ToolBar.module.css","components/advanced/filters/filterlist/filteritem/FilterItem.module.css","components/advanced/datasource/datasourcesummary/DataSourceSummary.module.css","components/advanced/reportsection/salarygraph/SalaryGraph.module.css","components/advanced/explanations/explanationgroup/explanationitem/ExplanationItem.module.css","components/advanced/explanations/explanationgroup/instructionsvideo/InstructionsVideo.module.css","atoms/textarea/Textarea.module.css","components/admin/salaryprofileconfig/SalaryProfileConfig.module.css","components/admin/level3advanced/datasourceconfig/loadconfiguration/LoadConfiguration.module.css","components/admin/previewsalaryprofileconfig/PreviewSalaryProfileConfig.module.css","components/admin/filterexplanations/filterexplanationedit/FilterExplanationEdit.module.css","images/icons/svg/list.svg","images/icons/svg/marker.svg","images/icons/svg/circle.svg","pages/parentalleavespin/Slider/Slider.module.css","atoms/unionlink/UnionLink.module.css","atoms/explanationtext/ExplanationText.module.css","atoms/buttontransparent/ButtonTransparent.module.css","atoms/breadcrumbs/Breadcrumbs.module.css","components/simple/externallink/ExternalLink.module.css","components/simple/salaryslider/slider/Slider.module.css","components/advanced/toolbar/downloadsection/downloadexcel/DownloadExcel.module.css","components/advanced/presentation/Presentation.module.css","atoms/tabrow/TabRow.module.css","atoms/chart/Chart.module.css","components/advanced/explanations/explanationgroup/ExplanationGroup.module.css","images/box_plot_image.png","components/admin/level2simple/helpbox/HelpBox.module.css","components/admin/level3advanced/Level3Advanced.module.css","components/admin/level3advanced/standardconfig/StandardConfig.module.css","components/admin/previewconfig/helpbox/HelpBox.module.css","components/admin/accounts/accountrow/AccountRow.module.css","components/admin/accounts/createaccount/CreateAccount.module.css","components/admin/copyconfiguration/datasource/DataSource.module.css","components/admin/copyconfiguration/unionselect/UnionSelect.module.css","components/admin/copyconfiguration/helpbox/HelpBox.module.css","components/admin/notifications/addnotification/AddNotification.module.css","pages/404/Page404.module.css","pages/previewlab/PreviewLab.module.css","pages/careerspin/Slider/Slider.module.css","images/icons/svg/crowns.svg","images/icons/svg/unemployment.svg","components/admin/filterexplanations/filterexplanationcreate/FilterExplanationCreate.module.css","images/icons/svg/download.svg","images/icons/svg/arrow2.svg","pages/errorboundary/PageErrorBoundary.js","services/ApiService.js","atoms/visitorcounter/VisitorCounter.js","services/UseAuth.js","components/header/banner/Banner.js","atoms/buttonlink/ButtonLink.js","hooks/useVisible.js","components/header/menu/Menu.js","components/header/Header.js","atoms/unionlink/UnionLink.js","components/footer/Footer.js","pages/errorboundary/PageErrorProvocation.js","components/start/analysiscard/AnalysisCard.js","atoms/explanationtext/ExplanationText.js","hooks/useScrollTo.js","atoms/buttontransparent/ButtonTransparent.js","atoms/accordion/Accordion.js","components/start/about/About.js","components/start/privacypolicy/TechnicalInformation.js","pages/start/PageStart.js","atoms/breadcrumbs/breadcrumbsitem/BreadcrumbsItem.js","atoms/breadcrumbs/Breadcrumbs.js","atoms/section/Section.js","lib/antal.js","components/simple/salaryanalysis/salaryinterval/SalaryInterval.js","components/simple/externallink/ExternalLink.js","components/simple/salaryanalysis/SalaryAnalysis.js","atoms/radiobutton/RadioButton.js","components/simple/selectioncard/SelectionCard.js","components/simple/situation/Situation.js","atoms/input/Input.js","components/simple/salaryslider/slider/Slider.js","components/simple/salaryslider/SalarySlider.js","atoms/buttonactivefilter/ButtonActiveFilter.js","components/advanced/activefilters/ActiveFilters.js","atoms/checkbox/Checkbox.js","components/simple/checkboxselectgroup/CheckboxSelectGroup.js","components/simple/salaryprofile/SalaryProfile.js","atoms/loader/Loader.js","lib/emptyValues.js","atoms/notification/Notification.js","atoms/errornotification/ErrorNotification.js","pages/simple/PageSimple.js","components/simple/sellingpoints/SellingPoints.js","components/simple/welcome/Welcome.js","pages/simple/PageSimpleFree.js","lib/excel.js","components/advanced/toolbar/downloadsection/downloadexcel/DownloadExcel.js","components/advanced/toolbar/downloadsection/DownloadSection.js","components/advanced/toolbar/ToolBar.js","components/advanced/filters/filterlist/filteritem/FilterItem.js","components/advanced/filters/filterlist/FilterList.js","components/advanced/filters/Filters.js","atoms/select/Select.js","components/advanced/datasource/datasourcesummary/DataSourceSummary.js","components/advanced/datasource/DataSource.js","components/advanced/presentation/Presentation.js","lib/salaryTable.js","atoms/tabrow/TabRow.js","atoms/tab/Tab.js","components/advanced/reportsection/salarytable/SalaryTable.js","atoms/chart/Chart.js","lib/time.js","lib/salaryGraph.js","components/advanced/reportsection/salarygraph/SalaryGraph.js","components/advanced/reportsection/salarygraph/salarymarker/SalaryMarker.js","components/advanced/reportsection/ReportSection.js","components/advanced/explanations/explanationgroup/explanationitem/ExplanationItem.js","components/advanced/explanations/explanationgroup/ExplanationGroup.js","components/advanced/explanations/explanationgroup/instructionsvideo/InstructionsVideo.js","components/advanced/explanations/Explanations.js","components/advanced/custompresentation/CustomPresentation.js","atoms/statisticsometer/Statisticsometer.js","pages/advanced/PageAdvanced.js","lib/pageAdvanced.js","atoms/panel/Panel.js","const.js","atoms/button/Button.js","atoms/buttonbar/ButtonBar.js","components/admin/datasourceselect/DataSourceSelect.js","components/admin/situationconfig/situationcreate/SituationCreate.js","atoms/checkboxadmin/CheckboxAdmin.js","atoms/inputreadonly/InputReadOnly.js","atoms/textarea/Textarea.js","components/admin/situationconfig/situationcard/SituationCard.js","components/admin/situationconfig/SituationConfig.js","components/admin/linksconfig/linkcreate/LinkCreate.js","components/admin/linksconfig/linkcard/LinkCard.js","components/admin/linksconfig/LinksConfig.js","components/admin/level3advanced/datasourceconfig/sortablelist/SortableList.js","components/admin/salaryprofileconfig/SalaryProfileConfig.js","components/admin/level2simple/helpbox/HelpBox.js","components/admin/level2simple/Level2Simple.js","atoms/sectionadmin/SectionAdmin.js","components/admin/level3advanced/datasourceconfig/loadconfiguration/LoadConfiguration.js","components/admin/level3advanced/datasourceconfig/DataSourceConfig.js","components/admin/level3advanced/standardconfig/defaultsourceconfig/DefaultSourceConfig.js","components/admin/level3advanced/standardconfig/StandardConfig.js","components/admin/level3advanced/Level3Advanced.js","components/admin/previewdatasourceconfig/previewdatasourcecreate/PreviewDataSourceCreate.js","components/admin/previewdatasourceconfig/previewdatasourcecard/PreviewDataSourceCard.js","components/admin/previewdatasourceconfig/PreviewDataSourceConfig.js","components/admin/previewsalaryprofileconfig/PreviewSalaryProfileConfig.js","components/admin/previewconfig/helpbox/HelpBox.js","components/admin/previewconfig/PreviewConfig.js","atoms/markdowneditor/MarkdownEditor.js","components/admin/filterexplanations/filterexplanationcreate/FilterExplanationCreate.js","components/admin/filterexplanations/filterexplanationnotext/FilterExplanationNoText.js","components/admin/filterexplanations/filterexplanationedit/FilterExplanationEdit.js","components/admin/filterexplanations/filterexplanationitem/FilterExplanationItem.js","components/admin/filterexplanations/FilterExplanations.js","components/admin/accounts/editaccount/EditAccount.js","components/admin/accounts/accountrow/AccountRow.js","components/admin/accounts/createaccount/CreateAccount.js","components/admin/accounts/Accounts.js","components/admin/applicationlog/logitem/LogItem.js","components/admin/applicationlog/ApplicationLog.js","components/admin/monitoringlog/logitem/LogItem.js","components/admin/monitoringlog/MonitoringLog.js","components/admin/generaltexts/generaltextitem/GeneralTextItem.js","components/admin/generaltexts/GeneralTexts.js","components/admin/navigationItem/navigationItem.js","components/admin/unionConfig/unionlinkconfig/UnionLinkConfig.js","components/admin/unionConfig/UnionConfig.js","atoms/modal/Modal.js","components/admin/copyconfiguration/activeselections/ActiveSelections.js","components/admin/copyconfiguration/activeselections/ActiveUnionSelections.js","components/admin/copyconfiguration/datasource/DataSource.js","components/admin/copyconfiguration/unionselect/UnionSelect.js","components/admin/copyconfiguration/helpbox/HelpBox.js","components/admin/copyconfiguration/statusbox/StatusBox.js","components/admin/copyconfiguration/CopyConfiguration.js","components/admin/notifications/notificationrow/NotificationRow.js","components/admin/notifications/addnotification/AddNotification.js","components/admin/notifications/Notifications.js","assets/Colors.js","components/admin/visitorstatistics/barCharts/DayChart.js","components/admin/visitorstatistics/barCharts/WeekChart.js","components/admin/visitorstatistics/barCharts/MonthChart.js","components/admin/visitorstatistics/barCharts/YearChart.js","components/admin/visitorstatistics/barCharts/BarCharts.js","components/admin/visitorstatistics/pieCharts/ViewChart.js","components/admin/visitorstatistics/pieCharts/UnitChart.js","components/admin/visitorstatistics/pieCharts/BrowserChart.js","components/admin/visitorstatistics/pieCharts/PieCharts.js","components/admin/visitorstatistics/VisitorStatistics.js","pages/admin/PageAdmin.js","pages/404/Page404.js","pages/login/PageLogin.js","pages/developer/PageDeveloper.js","pages/developer/PageChangePort.js","pages/logout/Logout.js","pages/copyconfiguration/CopyConfiguration.js","services/TokenRedirect.js","services/ForbundsKodRedirect.js","pages/loginInfo/LoginInfo.js","lib/preview.js","atoms/selectPreview/SelectPreview.js","atoms/svg/SVGComponent.js","pages/preview/Preview.js","pages/previewlab/PreviewLab.js","pages/instructionvideo/Instructionvideo.js","atoms/buttonGroup/ButtonGroup.js","pages/careerspin/Slider/Slider.js","pages/careerspin/Careerspin.js","lib/careerspin.js","lib/parentalLeaveSpin.js","pages/parentalleavespin/selectParentalLeaveSpin/SelectParentalLeaveSpin.js","pages/parentalleavespin/Slider/Slider.js","pages/parentalleavespin/ParentalLeavespin.js","pages/unemploymentspin/UnemploymentspinTab.js","pages/unemploymentspin/chart.js","pages/unemploymentspin/chartAlder.js","pages/unemploymentspin/chartUtland.js","pages/unemploymentspin/chartKon.js","pages/unemploymentspin/Unemploymentspin.js","AppRouter.js","App.js","index.js"],"names":["module","exports","PageErrorBoundary","state","hasError","error","handleAsyncError","event","console","reason","errorMessage","message","setState","window","addEventListener","this","removeEventListener","className","styles","main","errorBox","header","text","href","link","footer","logo","src","Logo","alt","props","children","Component","withRouter","ApiService","BASE_URL","AppSettings","SERVER_URL","handleNetworkError","res","ok","json","then","err","status","Error","statusText","warn","createGetRequest","page","token","req","method","headers","Authorization","fetch","createDeleteRequest","createPostRequest","reqData","returnJson","body","JSON","stringify","createPostRequestWithCredentials","login","data","testLogin","tokenLogin","createPostRequestWithToken","forbundsKodLogin","getForbund","getFds","getConfiguration","copyConfigurationExecute","getActiveFds","getMenuselections","getPreviewMenuSelection","getPreviewMenuSelections","getMetatabs","getBreakby","getReport","getBinstat","getReportExcel","getUnemploymentStaticExcel","getUnemploymentData","sendVistitorStats","getSituations","getPreviewSituations","createSituation","updateSituation","id","deleteSituation","updateSelections","postDatasource","getUnionByUnionId","unionId","getUnionByForbundsKod","forbundsKod","getUnion","getUnions","refreshAdminToken","postConfiguredYear","getTexts","getTextsBoth","postText","deleteText","getLogs","getMonitoringLogs","getMonitoringLogsById","getVisitorStats","getVisitorStatsNew","getUserStatistics","getVisitorStatsByUnion","getVisitorExcel","clearCache","getSituationsFree","getReportFree","getMenuselectionsFree","createEventSource","messageEvent","EventSource","onmessage","e","getSubscribers","postSubscriber","updateAccount","subId","updatePassword","deleteSubscriber","getPresentations","postPresentations","Api","MESSAGES","VisitorCounter","path","user","useCookies","cookies","useEffect","low","high","active","request","setTimeout","statistics","Math","floor","random","propTypes","PropTypes","string","isRequired","shape","authContext","createContext","useAuth","useContext","ProvideAuth","auth","useState","parse","localStorage","getItem","setUser","decodeUser","usr","split","decodedJsonData","atob","decodedData","forbund","fk","unionid","role","exp","signout","removeItem","storeUser","decodedUser","setItem","signin","subscriberId","password","forbundsKodAdmin","catch","tokenSignin","browser","device","forbundSignin","forbundsId","autoRefreshToken","minutes","now","Date","soon","getTime","expires","expiresSoon","useProvideAuth","Provider","value","PrivateRoute","component","rest","render","to","pathname","AdminRoute","restrict","from","location","Banner","document","title","banner","ButtonLink","buttonIcon","label","altText","icon","large","menuItem","lastChild","accordionItem","disabled","onClick","style","buttonClassName","buttonIsLarge","isLarge","buttonIsMenuItem","isMenuItem","buttonIsAccordionItem","isAccordionItem","buttonIsLastChild","isLastChild","computedAltText","aria-label","size","color","fill","buttonLink","type","buttonText","defaultProps","undefined","useVisible","initialIsVisible","isVisible","setIsVisible","ref","useRef","handleClickOutside","current","contains","target","Menu","showMenu","setShowMenu","history","useHistory","goToPage","push","menuButtonContainer","menuButton","menuOptions","optionBtn","fallbackUnion","name","forbundskodSas","Header","imageLoadError","setImageLoadError","forbundList","setForbundList","union","setUnion","useLocation","process","getLogoSrc","str","toLowerCase","useCallback","foundUnion","find","d","length","sort","a","b","localeCompare","includes","headerElement","headerInner","headerDropshadow","headerClippath","headerContent","subMain","headerLogotype","onError","bannerCurveBackground","bannerDropshadow","bannerClippath","UnionLink","unionLink","capitalize","rel","Footer","showLogo","setUnionLink","groupId","textId","mainSection","innerContainerFull","subSection","subSectionContent","PageErrorProvocation","APP_ENVIRONMENT","AnalysisCard","description","analysisCard","simpleOption","advancedOption","cardSymbol","continueLink","getMarkdownText","rawMarkup","marked","replace","__html","DOMPurify","sanitize","ExplanationText","textItem","explanationText","dangerouslySetInnerHTML","useScrollTo","callback","hash","scrollIntoView","behavior","ButtonTransparent","buttonTransparent","Accordion","border","boxShadow","close","dark","initialOpen","marginBottom","slim","stacked","open","setOpen","accordionWrapper","isStacked","isSlim","hasBorder","hasBoxShadow","hasMarginBottom","accordion","heading","prevState","backgroundColor","accordionTitle","accordionContent","About","aboutText","setAboutText","txt","aboutWrapper","aboutInnerWrapper","TechnicalInformation","policyWrapper","policyInnerWrapper","PageStart","innerContainer","optionContainer","aboutCurveBackground","aboutDropshadow","aboutClippath","BreadcrumbsItem","match","index","routeName","url","isExact","breadcrumb","breadcrumbActive","breadcrumbInactive","Breadcrumbs","paths","pathList","reduce","prev","curr","currPath","getPaths","breadcrumbs","map","key","Section","dashed","extraClasses","sectionElement","isDashed","sectionHeading","numberOfRespondents","result","forEach","char","search","numbers","Number","formatRespondents","toLocaleString","roundToNearest","number","nearest","direction","ceil","round","SalaryInterval","salaryLimit","salaryMid","selectedSalary","calcPercent","salary","c","dinLonPercentage","salaryMidPercent","salaryLineOuter","lineFiller","salaryLineInner","background","percentileBound","left","midLine","yourSalary","yourSalaryCircle","strokeWidth","textContainer","percentileText","examples","midLineExplain","ExternalLink","externalLink","SalaryAnalysis","currentRespondents","salaryData","links","variant","average","lon_medel","overAverage","salaryAnalysis","RadioButton","onChange","checked","container","checkmarkWrapper","customCheckmark","SelectionCard","loading","selectedSituation","selectionChange","selected","describedby","selectionCard","onKeyUp","aria-describedby","htmlFor","inputContainer","selectionCardContent","Situation","situations","setSelectedSituation","subSectionTitle","DSL2","situation","DSL1","year","Input","forwardRef","autoComplete","onBlur","placeholder","max","min","minLength","step","pattern","displayInline","inputWrapper","inputLabel","input","Slider","changeFunction","slider","aria-valuemin","aria-valuemax","aria-valuenow","onInput","tabIndex","SalarySlider","setSelectedSalary","ButtonActiveFilter","buttonActiveFilter","ActiveFilters","activeFilters","disableMenuselection","setActiveFilters","activeFiltersHeading","f","display","filterName","filterButtonWrapper","values","s","Fragment","desc","item","FilterString","optionName","filterOption","findIndex","filter","sel_var","filterToUpdate","tempState","element","removeFilterOption","Checkbox","antal","customCheckbox","primary","secondary","optionTextWrapper","filterCount","CheckboxSelectGroup","itemIndex","options","SELECTION_DATATYPE","SELECTION_TEXT","setSelectedValues","selectedValues","option","setValues","log","some","v","matching","handleChange","persist","tempValues","o","valKey","indexOf","selection_datatype","mobileEmpty","expandable","selectable","greyed","SalaryProfile","dataSources","selectionList","summary","YEAR","FORBUND","listItem","selectionRow","resetFiltersBtn","Loader","small","loader","isSmall","isEmpty","Notification","niva","dataSource","notifications","setNotifications","filteredNotifications","setFilteredNotifications","t","dsl1","dsl2","notification","ErrorNotification","errornotifications","setErrorNotifications","hasErrors","PageSimple","setDataSources","setSelectionList","setSituations","setSalaryData","setSalaryLimit","setHasErrors","isLoadingReport","setIsLoadingReport","totalRespondents","setTotalRespondents","setCurrentRespondents","setDisableMenuselection","setLinks","handleError","selections","selection","isActive","opt","sortOptionsByNumber","SELECTION_ORDER","selectedValue","acc","Forbund","Dsl1","Dsl2","Year","selVars","filters","obj","filterObjects","Object","newObj","prevItem","matchingItem","filterItem","finally","lon_p10","lon_p90","total","listOfValues","val","diff","activeSituations","scrollTo","innerContainerSlim","topNav","mainContent","loaderAnimation","errorText","SellingPoints","Welcome","PageSimpleFree","pymChild","Child","polling","sendHeight","downloadExcel","endpoint","errorFunction","payload","fileName","toLocaleDateString","blob","URL","createObjectURL","createElement","download","appendChild","click","remove","DownloadExcel","selectedPresentation","tableData","activeDataSource","measureVar","source","DSL1_DESC","DSL2_DESC","breakby1Header","REPORT_TEXT","breakby2Header","lonereport","row1","row2","_TYPE_","row","breakby1","x","isData","DownloadSection","showOptions","setShowOptions","downloadSection","downloadBtn","downloadOptions","ToolBar","toolBar","FilterItem","handleSelectedFilters","list","activeFilter","filterValue","FilterList","filterList","showAllFilters","setShowAllFilters","newItem","filterListWrapper","hasItems","filterScrollArea","filterListPadding","slice","showAllFilterWrapper","Filters","userFilters","filterHeading","indicatorSymbol","Select","defaultValue","compact","shaded","filteredOptions","selectBox","isCompact","loaderWrapper","selectLoader","selectLabel","isShaded","selectWrapper","optionValue","optionDisabled","DataSourceSummary","availableDSL1","availableDSL2","forbundName","setForbundName","dslToString","dsl","availableDsl","print","DataSource","defaultYearFromDeepAnalysis","defaultYearToDeepAnalysis","setActiveDataSource","handleDataSourceChange","setForbund","availableYears","setAvailableYears","availableForbund","setAvailableForbund","setAvailableDSL1","setAvailableDSL2","yearRange","getAvailableSources","rules","every","property","expression","findSource","inRange","getYear","p","fromConfigured","sequentiallyFindSource","arr","groupedSort","keys","group","priorityOrder","indexA","indexB","sortedArr","flat","i","pop","setSource","measure_var","previousDatasource","availableSources","newSource","currentDsl1Available","filteredForbund","ds","y","lastYearsData","allAvailableYears","dataSourceHeading","dataSourceSelection","latestAvailableYear","getYearOptions","evt","toString","infoLink","Presentation","allowCustomPresentation","presentationList","setCustomPresentation","setSelectedPresentation","fetchingData","selectedBreakby","setSelectedBreakby","presentation","BREAKBY_VAR","matchingPresentation","pres","handleSelectedPresentation","formatNumber","formatAccessor","createOrSetObject","prevObj","totalind","accessor","assign","getTotalCol","original","isTotalRow","customPresentation","TabRow","tabRow","Tab","tab","passive","SalaryTable","setMeasureVar","customReport","columns","useMemo","center","sticky","breakby2","groupingCol","generateCustomColumns","Cell","rows","totalRow","generateCustomData","table","useTable","initialState","hiddenColumns","footerGroups","getTableBodyProps","getTableProps","headerGroups","prepareRow","tableContainer","tableWrapperPrint","getHeaderGroupProps","column","getHeaderProps","getRowProps","cells","cell","getCellProps","getFooterGroupProps","tablefoot","getFooterProps","Chart","chartContainer","chartInstance","setChartInstance","Graph","plugins","unregister","ChartDataLabels","newChartInstance","update","scales","duration","chart","today","months","isValidHistoricalYear","num","getFullYear","getAvailableYears","yearsPassed","thisYear","dates","created","minYear","reverse","getSolidData","entry","lon_p25","lon_p50","lon_p75","calcChartData","q1","median","q3","outliers","genLabels","unique","self","filterCustomData","getCustomLabels","customColors","calcCustomChartData","solidData","groups","hoverBackgroundColor","medianColor","outlierColor","borderColor","borderWidth","maxBarThickness","tempGroup","genData","labels","datasets","defaultOptions","tension","pointStyle","getAnnotations","salaryMarkerValue","activeTab","annotations","mode","scaleID","borderDash","enabled","content","formatLabelNumber","chartHasData","allData","dataset","Boolean","boxOptions","responsive","legend","position","xAxes","ticks","beginAtZero","gridLines","scaleLabel","yAxes","events","onHover","barOptions","tooltips","callbacks","tooltipItem","datasetIndex","yLabel","lineOptions","usePointStyle","autoSkip","maxTicksLimit","SalaryGraph","datasetLabel","isCustomPresentation","setActiveTab","setXMin","setXMax","setYMin","setYMax","barLabels","lineLabels","boxLabels","barData","lineData","boxData","labelString","hasData","bool","showLineDiagram","breakbyValue","firstYear","isTimeUnit","addChartOptions","newConfig","annotation","salaryGraph","SalaryMarker","setSalaryMarkerValue","salaryMarker","infoLabelWrapper","information","tooltip","tooltipText","unformattedValue","ReportSection","reportSection","noData","isReverse","ExplanationItem","renderImage","explanationItem","boxPlotImage","image","measurementsSortOrder","graphsSortOrder","ExplanationGroup","available","items","setItems","clicks","setClicks","toggled","setToggled","setFetchingData","responseData","mainIdx","mainText","splice","loaderContainer","InstructionsVideo","level","setVideoError","video","videoAdvanced","instructionsVideo","preload","width","autoplay","controls","kind","srcLang","startVideoAdvance","isAdvance","Explanations","newFilterList","concat","explanationGroups","helpSection","helpItemWrapper","explanationGroup","CustomPresentation","setBreakby1","setBreakby2","customPresentationHeading","customPresFlex","handleSelectBreakby1","handleSelectBreakby2","Statisticsometer","hasPartiallyFilledFilters","percent","roundedPercent","statisticsometer","statisticsText","meter","full","advanced","overview","PageAdvanced","setFilterList","setTableData","setPresentationList","setAllowCustomPresentation","selectedUnion","setSelectedUnion","shouldGetReportData","setShouldGetReportData","setDefaultYearFromDeepAnalysis","setDefaultYearToDeepAnalysis","sortedSelectedValues","promiseUnion","Promise","resolve","reject","promiseFds","all","unionData","fdsData","defaultSource","defaultDataSource","DEFAULT","resetMeasureVarToLon","Role","filterOrder","breakbys","breakbyItem","breakbyOrder","breakbyVar","breakbyText","sortOptionsByLetters","fltr","activeFltr","newState","newOptions","newOpt","logGetReportRequest","subSectionLeft","newDataSource","subSectionRight","reportSettings","Panel","admin","card","hasFieldset","panel","panelFieldset","panelLegend","regularPanel","isAdmin","level2Header","level3Header","level1Header","previewConfigHeader","filterExplanations","commonTexts","accounts","visitiorStatistics","applicationLog","copyConfigurationHeader","monitoringHeader","monitoringRunInfoHeader","Button","flipIcon","button","hasText","hasIcon","ButtonBar","prevNext","buttonBar","DataSourceSelect","setDsl1","setDsl2","setRole","setYear","dsl1Temp","datasource","searchInput","availableYear","SituationCreate","configureLvl1","setCreateNewSituation","setSituationCopied","setSituationCreated","situationToCopy","setName","setDescription","saveDisabled","setSaveDisabled","handleSubmit","preventDefault","createdSituation","activeSelections","updateRequest","selVar","selectionOrder","updatedSituation","formWrapperHalf","onSubmit","CheckboxAdmin","checkboxAdmin","labelText","InputReadOnly","useHyphens","inputReadOnly","textField","Textarea","classTextArea","extraTextAreaClasses","textareaLabel","textareaText","SituationCard","copySituation","editMode","setEditMode","situationName","setSituationName","situationDescription","setSituationDescription","situationIsActive","setSituationIsActive","situationCardInner","textInput","situationToDelete","SituationConfig","createNewSituation","setSituationToCopy","situationCopied","situationCreated","situationDeleted","setSituationDeleted","situationUpdated","setSituationUpdated","remainingSituations","tempSituations","getDataSources","toast","success","autoClose","closeOnClick","addNew","marginLeft","LinkCreate","setCreateNewLink","setLinkCreated","linkName","setLinkName","linkUrl","setLinkUrl","isSaving","setIsSaving","LinkCard","setLinkUpdated","setLinkDeleted","linkBox","linkCol","l","tempLinks","handleUpdate","LinksConfig","createNewLink","linkCreated","linkUpdated","linkDeleted","linksConfig","addLinkButton","VARIANTS","order","breakby","SortableList","updateFunction","activeItems","handleItemUpdate","newList","filterType","configTable","colSpan","data-breakby-id","breakbyId","data-breakby-var","data-filter-id","selectionId","data-filter-variable","data-selection-id","selectid","data-selection-variable","optionsList","itemList","unsortedItems","performMoveUp","performMoveDown","radioLabel","SalaryProfileConfig","currentSituation","setCurrentSituation","wrapForm","selectedSituationId","situationId","tempData","HelpBox","helpBox","Level2Simple","loadingSituations","setLoadingSituations","Const","helpLink","SectionAdmin","sectionAdmin","sectionContent","LoadConfiguration","previousYear","setBreakbys","setFilters","toastMessage","isLoading","setIsLoading","loadConfig","setLoadConfig","copyYear","setCopyYear","copyDsl1","setCopyDsl1","copyDsl2","setCopyDsl2","copyRole","setCopyRole","createObject","identificator","orderBy","sortBy","updateArray","object","count","tempItem","breakbyObject","filterObject","updatedBreakbys","breakbyCount","updatedFilters","DataSourceConfig","setIsActive","loadConfiguration","setLoadConfiguration","sortData","orderParameter","isFromDb","sourceSelectContainer","shown","hidden","updatedData","DefaultSourceConfig","setDefaultDataSource","StandardYearConfig","grid","handleChangeStandardConfig","Level3Advanced","msg","warning","info","StandardConfig","PreviewDataSourceCreate","isPreview","PreviewDataSourceCard","PreviewDataSourceConfig","PreviewSalaryProfileConfig","PreviewConfig","MarkdownEditor","autofocus","toolbar","spellChecker","FilterExplanationCreate","selvars","setFilterTexts","filterText","setFilterText","setTextId","isDefault","selvar","arrayOf","String","null","FilterExplanationNoText","filterTexts","loadingYears","isCreatingNewText","setIsCreatingNewText","setSelvars","setLoading","uniqueSelvar","loadingContainer","searchResult","missingFilterExplanations","missingTextContainer","FilterExplanationEdit","hideEditor","setHideEditor","isDuplicate","performSave","FilterExplanationItem","subHeader","FilterExplanations","loadingText","setLoadingText","loadingData","setLoadingData","filteredFilterTexts","setFilteredFilterTexts","searchString","setSearchString","temp","searchContainer","textList","filterTextsMissing","EditAccount","userAccount","setUserList","setAccountDeleted","setAccountUpdated","setEditAccount","setIsAdmin","newPassword","setNewPassword","isRedaktor","isFortroendevald","passwordRef","reportValidity","handleUpdateAccount","AccountRow","account","editAccount","CreateAccount","setAccountCreated","setAddAccount","unionList","setUnionList","setPassword","setLabel","isFortroendeVald","performSubmit","Accounts","userList","addAccount","setFilter","accountUpdated","accountDeleted","accountCreated","filteredUserList","userObj","forbundsKodSas","accountTable","createAccountBox","LogItem","exception","properties","timeStamp","format","isExpanded","setIsExpanded","copied","setCopied","flipBackState","copyLogMessage","stopPropagation","navigator","clipboard","writeText","textArea","top","focus","select","execCommand","removeChild","fallbackCopyLogMessage","logItem","logRow","logChevron","extraInfo","extraContent","buttonRow","ApplicationLog","logs","setLogs","pages","setPages","currentPage","setCurrentPage","getMonth","monthFrom","setMonthFrom","monthTo","setMonthTo","yearFrom","setYearFrom","yearTo","setYearTo","logLevel","setLogLevel","refresh","setRefresh","filteredLogs","logTools","month","logPanel","pageIndicator","MonitoringLog","monitoringrun","setMonitoringRun","URLSearchParams","get","monitoringRunId","logResponses","logInfo","jobType","monitoringStatus","startTime","endTime","resolvedTime","errorsCount","padding","GeneralTextItem","txtGroup","updateCb","txtGroupCopy","setTxtGroupCopy","forbundSA","formatHelpText","textIn","txtObj","renderSubTexts","defaultOption","unionTexts","createCopy","newTxt","originalTxt","updateTxt","GeneralTexts","generalTexts","setGeneralTexts","sortedTexts","updateTexts","response","groupName","NavigationItem","navigationItem","isDisabled","isHidden","activeIcon","UnionLinkConfig","setHeader","setId","updateState","toLocaleUpperCase","UnionConfig","Modal","show","handleClose","modaldarkBG","modalCentered","modal","modalHeader","modalHeading","modalBody","modalMessage","modalContent","modalButtons","modalBtn","ActiveSelections","configurationType","dslConfigurations","dslConfiguration","dsL2Configs","dsL2Config","copyFromTestToProd","dsL1Config","filterString","trimStart","trimEnd","ActiveUnionSelections","unions","isSelected","dslConfig","handleUpdateConfiguration","dsl2Config","UnionSelect","handleUpdateUnionSelection","selectAllUnions","unSelectAllUnions","StatusBox","jobStatus","statusBox","isJobRunning","currentSummaryStatus","date","statusMessage","summaryStatuses","ul","li","CopyConfiguration","isLoadingSimpleConfiguration","setIsLoadingSimpleConfiguration","isLoadingAdvancedConfiguration","setIsLoadingAdvancedConfiguration","simpleConfiguration","setSimpleConfiguration","advancedConfiguration","setAdvancedConfiguration","previewConfiguration","setPreviewConfiguration","showModal","setShowModal","setJobStatus","hasAnySelectionsSimple","setHasAnySelectionsSimple","hasAnySelectionsPreview","setHasAnySelectionsPreview","hasAnySelectionsAdvanced","setHasAnySelectionsAdvanced","jobStatusRef","existingConfiguration","newdslConfigList","dslConfigs","newConfiguration","unSelectAllDataSources","configuration","newdsL2ConfigList","handleJobStatusUpdate","jobStatusUpdateMsg","jsonJobStatusUpdate","simpleConfigurationRequest","fds","configurationtype","previewConfigurationRequest","promiseUnions","promiseSimpleConfiguration","promisePreviewConfiguration","simpleConfigurationData","previewConfigurationData","advancedConfigurationRequest","dSL1","class","resultOk","advancedConfig","copyConfigurationJobRequest","copySimpleConfigurationJobRequest","copyAdvancedConfigurationJobRequest","copyPreviewConfigurationJobRequest","triggerCopyConfiguration","NotificationRow","deleteCb","expand","setExpand","setMessage","editable","setEditable","rowContainer","entries","k","parseDataSources","textTitle","nativeEvent","inputType","bottomWrapper","buttonContainer","AddNotification","createCb","setAvailableSources","setNiva","setText","parseForSelect","fromEntries","removeEmpty","Notifications","texts","setTexts","setUpdate","saveNotification","meta","deleteNotification","Colors","fontSize","fontColor","datalabels","anchor","align","formatter","afterDataLimits","scale","grace","dayLabelKeys","1","2","3","4","5","6","7","DayChart","stats","chartData","setChartData","isTableExpanded","setIsTableExpanded","currentDay","getDay","dayA","dayB","currentWeekDays","day","lastWeekDays","sortedEntries","statsMap","currentDate","currentWeek","getWeek","lastWeek","statsMapKeysArray","Array","dayKey","medlem","fortroendevald","mapStatsToChartData","Map","chartStats","tableToggle","dataPoint","WeekChart","currentYear","lastYear","weekA","weekB","lastYearWeeks","week","currentYearWeeks","weeksHalfyearBackEntries","weeksHalfyearBackStats","weekData","substring","mapStatsToTableData","marginRight","monthLabelKeys","8","9","10","11","12","MonthChart","currentYearMonthsCount","setCurrentYearMonthsCount","lastYearMonthsCount","setLastYearMonthsCount","currentMonth","monthA","monthB","currentYearMonths","lastYearMonths","text-align","YearChart","yearA","yearB","recentYears","BarCharts","statsPerDay","setStatsPerDay","statsPerWeek","setStatsPerWeek","statsPerMonth","setStatsPerMonth","statsPerYear","setStatsPerYear","periodsStatistics","visitorsPerDay","visitorsPerWeek","visitorsPerMonth","visitorsPerYear","font","weight","keyLabels","ViewChart","pink","turquoise","viewKey","unitKeyLabels","unknown","desktop","mobile","tablet","unitSortOrder","UnitChart","lightGrey","grey","sortedStats","unitA","unitB","unit","browserKeyLabels","Chrome","Safari","FireFox","Opera","Samsung","Unknown","Other","browserSortOrder","BrowserChart","darkGrey","yellow","orange","browserA","browserB","PieCharts","statsPerView","setStatsPerView","statsPerUnit","setStatsPerUnit","statsPerBrowser","setStatsPerUnitBrowser","userStatistics","views","devices","browsers","VisitorStatistics","PageAdmin","adminForbund","setAdminForbund","ENABLE_COPY_CONFIGURATION","pageAdmin","leftColumn","adminH1","forbundSelectWrapper","toUpperCase","refreshToken","navHeader","Page404","PageLogin","userName","setUserName","loginType","setLoginType","loginForbund","setLoginForbund","loginLink","setLoginLink","handleLogin","origin","loginContainer","loginOptions","loginUnion","loginForm","loginTextInput","loginButton","PageDeveloper","developerContainer","preamble","box","attentionBox","flowchartSymbolContainer","FlowchartSymbol","noticeBox","noMarginTopBottom","PageChangePort","Logout","TokenRedirect","browserData","Bowser","userAgent","version","platform","useParams","ForbundsKodRedirect","LoginInfo","calculatePercentBelowSalary","salaryStat","givenSalary","Bin","percentBelow","Pct","getSalaryMarkerValue","mapData","salaryStatistic","textColor","generateOptions","parsing","xAxisKey","yAxisKey","maxRotation","formatLabelNumberxAxes","formatLabelNumberyAxes","context","dataIndex","controller","getDatasetMeta","height","actualNumberValue","custom","tooltipModel","tooltipEl","getElementById","classList","add","lines","stringValue","formattedString","parseInt","innerHTML","_chart","canvas","getBoundingClientRect","opacity","pageXOffset","caretX","pageYOffset","caretY","fontFamily","fontStyle","yPadding","xPadding","borderRadius","SelectPreview","SVGComponent","data-name","xmlns","viewBox","transform","Preview","displayValue","setSalary","chartRef","selectedDataSource","setSelectedDataSource","firstSelection","setFirstSelection","secondSelection","setSecondSelection","firstSelectedOption","setFirstSelectedOption","secondSelectedOption","setSecondSelectedOption","setSalaryStat","salaryPercentage","setSalaryPercentage","setTextColor","handleSelectionDataWrapper","selectionData","selectionObjects","firstSelectionObject","secondSelectionObject","handleSelectionData","innerWidth","mapStatsToChartDataWrapper","datasetIdKey","barColorBasedOnPercentage","updateTextPosition","existingDivElement","salaryForFirstMarker","getSalaryForFirstMarker","salaryMarkerIndex","getSalaryMarkerIndex","userSpecifiedSalaryModel","_model","chartArea","canvasRect","querySelector","divElement","leftMargin","leftPosition","topPosition","zIndex","ReactDOMServer","renderToString","intervalId","setInterval","clearInterval","searchParams","chef","documentElement","setProperty","labelColor","selectionColor","backgroundHeader","styleElement","font2","head","applyPreviewFonts","selectionRequest","UnionId","Chef","handleResize","filterArray","selectedSelection","secondSelectionOptions","fetchSecondOptions","buildSelectionVar","selectedOption","firstSelectionVar","secondSelectionVar","salaryStatRequest","Sel_var","promiseSalaryStat","salaryStatData","GetSrc","IsfirstSelection","GetTitle","outerContainer","speechBubbleContent","speechBubbleBoxLeft","speechBubbleBox","selectBoxRight","selectBoxLeft","InputLabel","labelId","strNumber","handleSalaryChange","arrowleft","dummyData","percentage","profession","sector","PreviewLab","education","setEducation","setSector","indexSalary","alignItems","FormControl","sx","m","MenuItem","allowLeadingZeros","allowNegative","customInput","TextField","onValueChange","floatValue","thousandSeparator","InputProps","endAdornment","InputAdornment","textAlign","Instructionvideo","ButtonGroup","buttons","doSomethingAfterClick","initialSelectedIndex","whiteText","clickedId","setClickedId","buttonLabel","customButton","textcolorWhite","firstButton","lastButton","Careerspin","salaryWithoutAgreement","setSalaryWithoutAgreement","salaryWithAgreement","setSalaryWithAgreement","monthlySalary","setMonthlySalary","parentalSupplement","setParentalSupplement","displayMonthlySalary","setDisplayMonthlySalary","selectableSector","setSelectableSector","buttonColor","setButtonColor","setSummationText","now2","selectableSectors","alternativ","pbb","arslon","tak","calcSjukpenning","sjukpenning","displaySalary","calculateCompensation","Calcforaldrapenning","foraldrapenning","foraldralon","roundedAddition","displayAddition","displaySalaryWithoutAgreement","calculateSalaryWithAgreement","roundedNr","displaySalaryWithAgreement","calculateParent","toFixed","calculateSalaryWithoutAgreement","calculateWorkInjury","sjuklon","calculateSick","root","textcolor","setBackgroundColor","newText","fetchData","updateSalaryValues","formattedNumber","CareerspinContainer","selectContainer","transparentArrow","spinContainer","salary_module_container","transparentArrowBottom","textContent","kollektivavtal","sektor","getStateText","getParentText","ersattning","getSickText","formatIncomeValue","maximumFractionDigits","getIncomeMarkerIndex","parent2Months","getMaxSumIndex","firstDataset","maxSum","Infinity","maxIndex","setIncomeDistribution","maxSumIndex","parent1MaxMonths","parent2MaxMonths","generatePointBackgroundColors","defaultBackgroundColor","targetBackgroundColor","maintainAspectRatio","secondDataset","minValue","maxValue","calculatedStepSize","calculateStepSize","stepSize","positionMaximizeIncomeElements","incomeMarkerIndex","maxSalaryModel","maximizeIncomeChatBubbleDivElement","maximizeIncomeMarkerDivElement","maximizeIncomeMaxMarkerDivElement","adjustLeft","x1","y1","positionMaximizeIncomeChatBubble","x2","positionMaximizeIncomeMarker","x3","flexDirection","justifyContent","positionMaximizeIncomeMaxMarker","sleep","ms","calculateDisposableIncome","monthlyIncome","parentalLeaveMonths","parentalSalaryMonths","municipalTax","burialFee","PBB","yearlyIncome","yearlyIncomeTwelveMonths","parentalAllowance","parentalSalary","stateIncomeTax","publicServiceFee","jobTaxCredit","workDeduction","parentalAllowanceFormula","parentalSalaryFormula","stateIncomeTaxFormula","publicServiceFeeFormula","jobTaxCreditFormula","workDeductionFormula","FFI","GA","BFI","TI","KI","AI","disposableIncome","childAllowance","formulas","calculateTotalDisposableIncomes","parent1MonthlyIncome","parent2MonthlyIncome","parent1ParentalSalaryMonths","parent2ParentalSalaryMonths","totalDisposableIncomes","parent2LeaveMonths","parent1LeaveMonths","parent1Results","parent2Results","totalDisposableIncome","parent1FFI","parent1BFI","parent1YearlyIncome","parent1GA","parent1AI","parent1DisposableIncome","parent1ParentalSalary","parent1ParentalAllowance","parent1StateIncomeTax","parent1MunicipalTax","parent1BurialFee","parent1PublicServiceFee","parent1JobTaxCredit","parent1WorkDeduction","parent1ChildAllowance","parent1Formulas","parent2FFI","parent2BFI","parent2YearlyIncome","parent2GA","parent2AI","parent2DisposableIncome","parent2ParentalSalary","parent2ParentalAllowance","parent2StateIncomeTax","parent2MunicipalTax","parent2BurialFee","parent2PublicServiceFee","parent2JobTaxCredit","parent2WorkDeduction","parent2ChildAllowance","parent2Formulas","totalParentalSalary","netIncome","income","join","formatTotalDisposableIncomesToTable","calculateHouseholdIncome","parent1Salary","parent2Salary","parent1Months","setLineData","setHouseholdIncomeData","setHasData","lineChartData","_","pointBorderColor","pointBackgroundColor","SelectParentalLeaveSpin","ParentalLeavespin","setParent1Salary","setParent2Salary","displayParent1Salary","setDisplayParent1Salary","displayParent2Salary","setDisplayParent2Salary","isIconUp","setIsIconUp","isHoveringChatBubble","setIsHoveringChatBubble","setParent1Months","setParent2Months","setParent1MaxMonths","setParent2MaxMonths","parent2And10Months","setParent2And10Months","parent4And8Months","setParent4And8Months","parent6And6Months","setParent6And6Months","parent8And4Months","setParent8And4Months","parent10And2Months","setParent10And2Months","selectedIncomeMarkerIndex","setSelectedIncomeMarkerIndex","setParent1ParentalSalaryMonths","setParent2ParentalSalaryMonths","helpChatBubbleVisible","setHelpChatBubbleVisible","calculationInfoModalVisible","setcalculationInfoModalVisible","calculationInfoChatBubbleVisible","householdIncomeData","selectedHouseholdIncomeData","setSelectedHouseholdIncomeData","maxHouseholdIncomeData","setMaxHouseholdIncomeData","isModalVisible","setIsModalVisible","newValueForParent1Months","waitCount","running","newParent1MaxMonths","newParent2MaxMonths","showOptimalDistribution","showHelpChatBubble","hideHelpChatBubble","showCalculationInfoModal","hideCalculationInfoModal","setDisplaySalary","setParentSalary","handleSalaryBlur","minSalary","maxSalary","displayMinSalary","displayMaxSalary","parsedValue","trim","handleParent1SalaryChange","handleParent1SalaryBlur","handleParent2SalaryChange","handleParent2SalaryBlur","handleFirstSelectionChange","setParentalSalaryMonths","filteredList","handleSecondSelectionChange","showCalculationInfoContent","calculationInfoModal","calculationInfoModalHidden","showInfoModal","closeModal","BarchartIcon","mobileicon","mobileMain","mobileContent","inputField","PersonIcon","iconContinue","stroke","strokeLinecap","strokeLinejoin","CircleIcon","helpIcon","hoverCursor","modalOverlay","closeButton","mobileResult","turquoisebutton","iconPil","up","mobileResultContent","mobiletable","incomeTable","Crowns","linkContainer","ListIcon","linkText","parentHide","headerField","onMouseEnter","onMouseLeave","helpChatBubbleContainer","helpChatBubble","divInomCanvas","maximizeIncomeChatBubble","snibb1","snibb2","snibb","maximizeIncomeHeaderRectangle","maximizeIncomeHeaderText","maximizeIncomeContentRectangle1","maximizeIncomeContentRectangle1Text","maximizeIncomeContentRectangle2","maximizeIncomeContentRectangle2Text","maximizeIncomeContentRectangle3","maximizeIncomeContentRectangle3Text1","maximizeIncomeContentRectangle3Text2","divInomCanvas2","MarkerIcon","divInomCanvas3","maxIncomeText","pinkbutton","calculationInfoChatBubbleContainer","calculationInfoChatBubble","ngShow","UnemploymentspinTab","UnemploymentspinTabActive","UnemploymentspinTabPassive","ApexChart","yearText","hoverText","currentYearSeries","previousYearSeries","helpText","series","categories","category","offsetY","colors","horizontal","xaxis","yaxis","plotOptions","bar","dataLabels","barHeight","barWidth","offsetX","shared","dataPointIndex","seriesIndex","w","currentYearValue","previousYearValue","previousYearDate","previous","currentYearDate","tickAmount","textAnchor","fontWeight","lineHeight","ChartAlder","ChartUtland","ChartKon","Unemploymentspin","activeButton","setData","setHoverText","setYearText","textData","setTextData","mainData","newData","alderData","utbildningData","konData","utlandData","hoverTextData","handleTabClick","UnemploymentspinContainer","UnemploymentspinSummary","UnemploymentspinHeader","Baseline","UnemploymentspinLogo","UnemploymentIcon","PT24px","FirstParagraph","UnemploymentspinAbout","SecondParagraph","currentTotal","ThirdParagraph","header_text","UnemploymentspinSacoGreen","UnemploymentspinTabRow","UnemploymentspinMain","utbildning_text","alder_text","kon_text","fodelseregion_text","tableHead","buttonsContainer","unemploymentBarChart","tableContent","isArray","UnemploymentspinSource","AppRouter","exact","App","contentContainer","scaledContent","smoothscroll","polyfill","ReactDOM","StrictMode","CookiesProvider"],"mappings":"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","file":"static/js/main.1a636e0a.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"parentHide\":\"ParentalLeavespin_parentHide__3GyG-\",\"container\":\"ParentalLeavespin_container__2C0gT\",\"scaled-content\":\"ParentalLeavespin_scaled-content__16u0_\",\"icon\":\"ParentalLeavespin_icon__1r8uX\",\"parentInputs\":\"ParentalLeavespin_parentInputs__2dkzb\",\"headerField\":\"ParentalLeavespin_headerField__zhKJn\",\"inputField\":\"ParentalLeavespin_inputField__3jgEG\",\"dropdowns\":\"ParentalLeavespin_dropdowns__1dMUP\",\"dropdown\":\"ParentalLeavespin_dropdown__1Edto\",\"selectBox\":\"ParentalLeavespin_selectBox__2TINc\",\"activeIcon\":\"ParentalLeavespin_activeIcon__1RgsW\",\"input\":\"ParentalLeavespin_input__w2bej\",\"input-parent-salary\":\"ParentalLeavespin_input-parent-salary__2Mi12\",\"helpIcon\":\"ParentalLeavespin_helpIcon__2IcGh\",\"helpChatBubble\":\"ParentalLeavespin_helpChatBubble__PXXhO\",\"helpChatBubbleContainer\":\"ParentalLeavespin_helpChatBubbleContainer__1-hKj\",\"helpChatBubbleVisible\":\"ParentalLeavespin_helpChatBubbleVisible__Xlkcf\",\"calculationInfoModal\":\"ParentalLeavespin_calculationInfoModal__3UqJU\",\"calculationInfoModalVisible\":\"ParentalLeavespin_calculationInfoModalVisible__11S3V\",\"calculationInfoModalHidden\":\"ParentalLeavespin_calculationInfoModalHidden__2TNWI\",\"modal-content\":\"ParentalLeavespin_modal-content__17BZ2\",\"close\":\"ParentalLeavespin_close__1I-J8\",\"calculationInfoChatBubble\":\"ParentalLeavespin_calculationInfoChatBubble__1_nU4\",\"calculationInfoChatBubbleContainer\":\"ParentalLeavespin_calculationInfoChatBubbleContainer__2RosN\",\"calculationInfoChatBubbleVisible\":\"ParentalLeavespin_calculationInfoChatBubbleVisible__2bDma\",\"maximizeIncomeChatBubble\":\"ParentalLeavespin_maximizeIncomeChatBubble__XkaZV\",\"snibb\":\"ParentalLeavespin_snibb__14pi0\",\"snibb1\":\"ParentalLeavespin_snibb1__2FJM5\",\"snibb2\":\"ParentalLeavespin_snibb2__3-hkh\",\"hoverCursor\":\"ParentalLeavespin_hoverCursor__DbEdF\",\"maximizeIncomeHeaderRectangle\":\"ParentalLeavespin_maximizeIncomeHeaderRectangle__1Ijmf\",\"maximizeIncomeHeaderText\":\"ParentalLeavespin_maximizeIncomeHeaderText__3sbR3\",\"maximizeIncomeContentRectangle1\":\"ParentalLeavespin_maximizeIncomeContentRectangle1__2L2lX\",\"maximizeIncomeContentRectangle1Text\":\"ParentalLeavespin_maximizeIncomeContentRectangle1Text__VHuvV\",\"maximizeIncomeContentRectangle2\":\"ParentalLeavespin_maximizeIncomeContentRectangle2__2ajLd\",\"maximizeIncomeContentRectangle2Text\":\"ParentalLeavespin_maximizeIncomeContentRectangle2Text__1BSHV\",\"maximizeIncomeContentRectangle3\":\"ParentalLeavespin_maximizeIncomeContentRectangle3__3K4Vv\",\"maximizeIncomeContentRectangle3Text1\":\"ParentalLeavespin_maximizeIncomeContentRectangle3Text1__1cxMJ\",\"maximizeIncomeContentRectangle3Text2\":\"ParentalLeavespin_maximizeIncomeContentRectangle3Text2__3pmFR\",\"divInomCanvas\":\"ParentalLeavespin_divInomCanvas__SQGQI\",\"divInomCanvas2\":\"ParentalLeavespin_divInomCanvas2__3waZY\",\"divInomCanvas3\":\"ParentalLeavespin_divInomCanvas3__2oZkm\",\"speechBubbleContent\":\"ParentalLeavespin_speechBubbleContent__rTcDZ\",\"header\":\"ParentalLeavespin_header__1AgbZ\",\"chart\":\"ParentalLeavespin_chart__3gKn0\",\"chartLabel\":\"ParentalLeavespin_chartLabel__1XR3j\",\"arrowleft\":\"ParentalLeavespin_arrowleft__16LTZ\",\"activeIconRight\":\"ParentalLeavespin_activeIconRight__NxUxB\",\"result\":\"ParentalLeavespin_result__33oOX\",\"grid-calculationinfomodal\":\"ParentalLeavespin_grid-calculationinfomodal__1ZTsj\",\"grid-calculationinfomodal-row\":\"ParentalLeavespin_grid-calculationinfomodal-row__HRLLD\",\"grid-calculationinfomodal-row-header\":\"ParentalLeavespin_grid-calculationinfomodal-row-header__16coi\",\"grid-calculationinfomodal-row-decription\":\"ParentalLeavespin_grid-calculationinfomodal-row-decription__2mEBN\",\"flex-e-c\":\"ParentalLeavespin_flex-e-c__2xynG\",\"flex-s-c\":\"ParentalLeavespin_flex-s-c__1GGCc\",\"p-10-0-10-0\":\"ParentalLeavespin_p-10-0-10-0__snnqa\",\"p-30-0-10-0\":\"ParentalLeavespin_p-30-0-10-0__1PbRE\",\"p-40-0-0-100\":\"ParentalLeavespin_p-40-0-0-100__2xOF9\",\"p-10-0-5-0\":\"ParentalLeavespin_p-10-0-5-0__2gKlM\",\"grid-parentalleave\":\"ParentalLeavespin_grid-parentalleave__3GQqe\",\"grid-parentalleave-r1\":\"ParentalLeavespin_grid-parentalleave-r1__39Dyz\",\"grid-parentalleave-r2\":\"ParentalLeavespin_grid-parentalleave-r2__2Vfsc\",\"no-radius\":\"ParentalLeavespin_no-radius__13a2Y\",\"column\":\"ParentalLeavespin_column__18pzw\",\"grid-parentalleave-r2-r1\":\"ParentalLeavespin_grid-parentalleave-r2-r1__2Sa1E\",\"grid-parentalleave-r2-r2\":\"ParentalLeavespin_grid-parentalleave-r2-r2__8tbzR\",\"grid-parentalleave-r2-r3\":\"ParentalLeavespin_grid-parentalleave-r2-r3__5Cck-\",\"grid-parentalleave-r2-r4\":\"ParentalLeavespin_grid-parentalleave-r2-r4__1YfKn\",\"grid-parentalleave-r2-r5\":\"ParentalLeavespin_grid-parentalleave-r2-r5__fpYSP\",\"grid-parentalleave-r2-r6\":\"ParentalLeavespin_grid-parentalleave-r2-r6__3VdfU\",\"grid-parentalleave-r2-r7\":\"ParentalLeavespin_grid-parentalleave-r2-r7__1xwAG\",\"grid-parentalleave-r2-r8\":\"ParentalLeavespin_grid-parentalleave-r2-r8__2B8yZ\",\"grid-parentalleave-r2-r9\":\"ParentalLeavespin_grid-parentalleave-r2-r9__2H9AO\",\"grid-parentalleave-r2-r10\":\"ParentalLeavespin_grid-parentalleave-r2-r10__321cc\",\"grid-parentalleave-r2-r11\":\"ParentalLeavespin_grid-parentalleave-r2-r11__3LsGK\",\"grid-parentalleave-r2-r12\":\"ParentalLeavespin_grid-parentalleave-r2-r12__2sJQX\",\"grid-parentalleave-r2-r13\":\"ParentalLeavespin_grid-parentalleave-r2-r13__1q-zj\",\"grid-parentalleave-r2-r14\":\"ParentalLeavespin_grid-parentalleave-r2-r14__2c0Oo\",\"grid-parentalleave-r2-r15\":\"ParentalLeavespin_grid-parentalleave-r2-r15__XCL1x\",\"grid-parentalleave-r2-r16\":\"ParentalLeavespin_grid-parentalleave-r2-r16__1e3oA\",\"grid-parentalleave-r2-r17\":\"ParentalLeavespin_grid-parentalleave-r2-r17__3-mh-\",\"up\":\"ParentalLeavespin_up__3TPw9\",\"grid-parentalleave-r3\":\"ParentalLeavespin_grid-parentalleave-r3__2VLX4\",\"grid-parentalleave-r3-r1\":\"ParentalLeavespin_grid-parentalleave-r3-r1__1tL97\",\"grid-parentalleave-r3-r2\":\"ParentalLeavespin_grid-parentalleave-r3-r2__1dEHj\",\"grid-parentalleave-r3-r3\":\"ParentalLeavespin_grid-parentalleave-r3-r3__1-aVe\",\"grid-parentalleave-r3-r4\":\"ParentalLeavespin_grid-parentalleave-r3-r4__30U6a\",\"grid-parentalleave-r3-r5\":\"ParentalLeavespin_grid-parentalleave-r3-r5__JerF0\",\"grid-parentalleave-r3-r6\":\"ParentalLeavespin_grid-parentalleave-r3-r6__2iFza\",\"grid-parentalleave-r3-r7\":\"ParentalLeavespin_grid-parentalleave-r3-r7__2VwR2\",\"grid-parentalleave-r3-r8\":\"ParentalLeavespin_grid-parentalleave-r3-r8__1D4co\",\"grid-parentalleave-r3-r9\":\"ParentalLeavespin_grid-parentalleave-r3-r9__3x5X7\",\"grid-parentalleave-r3-r10\":\"ParentalLeavespin_grid-parentalleave-r3-r10__1paYB\",\"grid-parentalleave-r3-r11\":\"ParentalLeavespin_grid-parentalleave-r3-r11__U3ZIa\",\"grid-parentalleave-r3-r8-r1\":\"ParentalLeavespin_grid-parentalleave-r3-r8-r1__znYLm\",\"grid-parentalleave-r3-r8-r1-c1\":\"ParentalLeavespin_grid-parentalleave-r3-r8-r1-c1__2k08h\",\"grid-parentalleave-r3-r8-r1-c2\":\"ParentalLeavespin_grid-parentalleave-r3-r8-r1-c2__3UcU9\",\"grid-parentalleave-r3-r8-r1-c3\":\"ParentalLeavespin_grid-parentalleave-r3-r8-r1-c3__31d0Y\",\"grid-parentalleave-r3-r8-r2\":\"ParentalLeavespin_grid-parentalleave-r3-r8-r2__an-aY\",\"grid-parentalleave-r3-r8-r2-c1\":\"ParentalLeavespin_grid-parentalleave-r3-r8-r2-c1__1dsle\",\"grid-parentalleave-r3-r8-r2-c2\":\"ParentalLeavespin_grid-parentalleave-r3-r8-r2-c2__1Dl5N\",\"grid-parentalleave-r3-r8-r2-c3\":\"ParentalLeavespin_grid-parentalleave-r3-r8-r2-c3__2u4eK\",\"grid-parentalleave-r3-r8-r3\":\"ParentalLeavespin_grid-parentalleave-r3-r8-r3__25gTM\",\"select-override\":\"ParentalLeavespin_select-override__2_qrz\",\"iconchevrondown-override\":\"ParentalLeavespin_iconchevrondown-override__32NSc\",\"linkContainer\":\"ParentalLeavespin_linkContainer__l-8BL\",\"link\":\"ParentalLeavespin_link__2dSc8\",\"linkText\":\"ParentalLeavespin_linkText__3iH7-\",\"maxIncomeText\":\"ParentalLeavespin_maxIncomeText__3iWuP\",\"turquoisebutton\":\"ParentalLeavespin_turquoisebutton__13YE3\",\"pinkbutton\":\"ParentalLeavespin_pinkbutton__16zU9\",\"textField\":\"ParentalLeavespin_textField__2e52u\",\"text-15-teal\":\"ParentalLeavespin_text-15-teal__2vwrY\",\"text-16-teal\":\"ParentalLeavespin_text-16-teal__1QNVM\",\"text-20-teal\":\"ParentalLeavespin_text-20-teal__25buR\",\"text-16-white\":\"ParentalLeavespin_text-16-white__CvoB2\",\"text-18-white\":\"ParentalLeavespin_text-18-white__1QY-s\",\"text-20-white\":\"ParentalLeavespin_text-20-white__1_Gy4\",\"text-24-white\":\"ParentalLeavespin_text-24-white__1gkZj\",\"text-16-black\":\"ParentalLeavespin_text-16-black__kiDbw\",\"text-16-black-light\":\"ParentalLeavespin_text-16-black-light__3QHHR\",\"text-20-black-light\":\"ParentalLeavespin_text-20-black-light__215Iq\",\"text-16-teal-light\":\"ParentalLeavespin_text-16-teal-light__2fhCr\",\"text-16-teal-light-underline\":\"ParentalLeavespin_text-16-teal-light-underline__KPJWr\",\"text-20-teal-light\":\"ParentalLeavespin_text-20-teal-light__2nvyb\",\"text-24-teal-light\":\"ParentalLeavespin_text-24-teal-light__272E1\",\"text-16-pink\":\"ParentalLeavespin_text-16-pink__3SQEf\",\"text-28-pink\":\"ParentalLeavespin_text-28-pink__1hpRi\",\"hidden\":\"ParentalLeavespin_hidden__3l6wx\",\"align-icon-to-text\":\"ParentalLeavespin_align-icon-to-text__bK_mU\",\"mr-10\":\"ParentalLeavespin_mr-10__GDh7v\",\"mr-12\":\"ParentalLeavespin_mr-12__2tX2y\",\"mt-16\":\"ParentalLeavespin_mt-16__nh-dY\",\"mobileMain\":\"ParentalLeavespin_mobileMain__1aQsW\",\"mobileResultContent\":\"ParentalLeavespin_mobileResultContent__3w2q5\",\"mobileResult\":\"ParentalLeavespin_mobileResult__2KcbY\",\"mobileContent\":\"ParentalLeavespin_mobileContent__3aJdz\",\"mobiletable\":\"ParentalLeavespin_mobiletable__3MZcJ\",\"highlight-row\":\"ParentalLeavespin_highlight-row__rUCuN\",\"incomeTable\":\"ParentalLeavespin_incomeTable__lNxci\",\"margin-bottom-20\":\"ParentalLeavespin_margin-bottom-20__2pCAW\",\"mobileicon\":\"ParentalLeavespin_mobileicon__2dG_Y\",\"iconPil\":\"ParentalLeavespin_iconPil__2y1aU\",\"modalOverlay\":\"ParentalLeavespin_modalOverlay__3Jtub\",\"modalContent\":\"ParentalLeavespin_modalContent__1PVvS\",\"closeButton\":\"ParentalLeavespin_closeButton__HP06u\",\"center\":\"ParentalLeavespin_center__rcxp0\",\"iconContinue\":\"ParentalLeavespin_iconContinue__2nYp0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main\":\"PageDeveloper_main__2WcoT\",\"topNav\":\"PageDeveloper_topNav__3wXZj\",\"innerContainerSlim\":\"PageDeveloper_innerContainerSlim__1X_Ak\",\"developerContainer\":\"PageDeveloper_developerContainer__1eJBR\",\"preamble\":\"PageDeveloper_preamble__3yv-t\",\"flowchartSymbolContainer\":\"PageDeveloper_flowchartSymbolContainer__1SIjv\",\"noticeBox\":\"PageDeveloper_noticeBox__1wTeg\",\"box\":\"PageDeveloper_box__N_Z0m\",\"attentionBox\":\"PageDeveloper_attentionBox__1OLJO\",\"noMarginTopBottom\":\"PageDeveloper_noMarginTopBottom__dRDC9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Preview_container__2sVTc\",\"activeIcon\":\"Preview_activeIcon__QcwZt\",\"selectBox\":\"Preview_selectBox__3H4xd\",\"input\":\"Preview_input__1qtIc\",\"header\":\"Preview_header__16evW\",\"chart\":\"Preview_chart__zE3Ch\",\"monthlySalary\":\"Preview_monthlySalary__meGQu\",\"salaryPercentage\":\"Preview_salaryPercentage__1adcy\",\"source\":\"Preview_source__14Rn9\",\"result\":\"Preview_result__3AB8U\",\"chat\":\"Preview_chat__2TcTv\",\"arrowleft\":\"Preview_arrowleft__1uYvA\",\"selectBoxLeft\":\"Preview_selectBoxLeft__1Nhoz\",\"selectBoxRight\":\"Preview_selectBoxRight__HUwgO\",\"speechBubbleContent\":\"Preview_speechBubbleContent__3afek\",\"speechBubbleBoxLeft\":\"Preview_speechBubbleBoxLeft__30l9Z\",\"speechBubbleBox\":\"Preview_speechBubbleBox__1caiE\",\"loaderAnimation\":\"Preview_loaderAnimation__2xXWo\",\"outerContainer\":\"Preview_outerContainer__3_X5J\",\"activeIconRight\":\"Preview_activeIconRight__3W5JO\",\"marginBottom\":\"Preview_marginBottom__UryRS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"unemploymentBarChart\":\"Unemploymentspin_unemploymentBarChart__opBD6\",\"UnemploymentspinContainer\":\"Unemploymentspin_UnemploymentspinContainer__2lTzr\",\"UnemploymentspinHeader\":\"Unemploymentspin_UnemploymentspinHeader__1t21M\",\"icon\":\"Unemploymentspin_icon__3qMj4\",\"PT24px\":\"Unemploymentspin_PT24px__21Nax\",\"UnemploymentspinLogo\":\"Unemploymentspin_UnemploymentspinLogo__Hoz8z\",\"UnemploymentspinSummary\":\"Unemploymentspin_UnemploymentspinSummary__Romn2\",\"UnemploymentspinArrow\":\"Unemploymentspin_UnemploymentspinArrow__2q78Z\",\"Baseline\":\"Unemploymentspin_Baseline__JX7OJ\",\"UnemploymentspinAbout\":\"Unemploymentspin_UnemploymentspinAbout__2GkJn\",\"FirstParagraph\":\"Unemploymentspin_FirstParagraph__3NCDS\",\"SecondParagraph\":\"Unemploymentspin_SecondParagraph__157Ce\",\"ThirdParagraph\":\"Unemploymentspin_ThirdParagraph__QYsSl\",\"regularPanel\":\"Unemploymentspin_regularPanel__2YHUX\",\"UnemploymentspinMain\":\"Unemploymentspin_UnemploymentspinMain__306B-\",\"UnemploymentspinSacoGreen\":\"Unemploymentspin_UnemploymentspinSacoGreen__2PsOR\",\"UnemploymentspinTabRow\":\"Unemploymentspin_UnemploymentspinTabRow__3RFTn\",\"textContent\":\"Unemploymentspin_textContent__1_AiE\",\"tableHead\":\"Unemploymentspin_tableHead__3sntm\",\"activeButton\":\"Unemploymentspin_activeButton__9dD8q\",\"buttonsContainer\":\"Unemploymentspin_buttonsContainer__2-0vF\",\"tableContent\":\"Unemploymentspin_tableContent__2JnlG\",\"UnemploymentspinSource\":\"Unemploymentspin_UnemploymentspinSource__4tmcS\",\"UnemploymentspinDownload\":\"Unemploymentspin_UnemploymentspinDownload__2hYRM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"chart\":\"VisitorStatistics_chart__Y3OPX\",\"chartContainer\":\"VisitorStatistics_chartContainer__2vACa\",\"header\":\"VisitorStatistics_header__1xvRg\",\"tableToggle\":\"VisitorStatistics_tableToggle__2s5ua\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main\":\"SalaryInterval_main__aDUCX\",\"textContainer\":\"SalaryInterval_textContainer__3y6NQ\",\"examples\":\"SalaryInterval_examples__IXJUV\",\"percentileText\":\"SalaryInterval_percentileText___3Zv2\",\"salaryLineOuter\":\"SalaryInterval_salaryLineOuter__MEyEl\",\"salaryLineInner\":\"SalaryInterval_salaryLineInner___-Y5_\",\"lineFiller\":\"SalaryInterval_lineFiller__2UHbK\",\"midLine\":\"SalaryInterval_midLine__37-vb\",\"percentileBound\":\"SalaryInterval_percentileBound__2ShBu\",\"yourSalary\":\"SalaryInterval_yourSalary__2wm_W\",\"yourSalaryCircle\":\"SalaryInterval_yourSalaryCircle__1JtPD\",\"midLineExplain\":\"SalaryInterval_midLineExplain__1nqGc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main\":\"PageSimple_main__3FJUY\",\"mainContent\":\"PageSimple_mainContent__2IT-s\",\"innerContainerSlim\":\"PageSimple_innerContainerSlim__1mwRJ\",\"optionCard\":\"PageSimple_optionCard__2qJgV\",\"cardSymbol\":\"PageSimple_cardSymbol__1tp_-\",\"advancedOption\":\"PageSimple_advancedOption__26fH6\",\"errorText\":\"PageSimple_errorText__27nEf\",\"loaderAnimation\":\"PageSimple_loaderAnimation__2zKtE\",\"topNav\":\"PageSimple_topNav__3OJW-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"accordionWrapper\":\"Accordion_accordionWrapper__FXgJn\",\"isStacked\":\"Accordion_isStacked__3t43v\",\"heading\":\"Accordion_heading__3LsK0\",\"accordion\":\"Accordion_accordion__g4Rvb\",\"open\":\"Accordion_open__SO6_q\",\"disabled\":\"Accordion_disabled__2GyU3\",\"isSlim\":\"Accordion_isSlim__2-dyw\",\"hasBorder\":\"Accordion_hasBorder__3_aL3\",\"hasBoxShadow\":\"Accordion_hasBoxShadow__2OrHo\",\"hasMarginBottom\":\"Accordion_hasMarginBottom__oTIbZ\",\"accordionContent\":\"Accordion_accordionContent__r_50X\",\"explanationItem\":\"Accordion_explanationItem__2XEgG\",\"loaderContainer\":\"Accordion_loaderContainer__3OF5M\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"SalaryTable_container__1JQAh\",\"tableContainer\":\"SalaryTable_tableContainer__1WP4_\",\"tabRow\":\"SalaryTable_tabRow__25YLv\",\"table\":\"SalaryTable_table__38GgZ\",\"sticky\":\"SalaryTable_sticky__rZDYa\",\"center\":\"SalaryTable_center__36DWu\",\"bottomRowPrint\":\"SalaryTable_bottomRowPrint__37rBA\",\"tableWrapperPrint\":\"SalaryTable_tableWrapperPrint__3Gw4R\",\"tablefoot\":\"SalaryTable_tablefoot__2Mcec\"};","module.exports = __webpack_public_path__ + \"static/media/person.022ff959.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modaldarkBG\":\"Modal_modaldarkBG__22xJ7\",\"modalCentered\":\"Modal_modalCentered__2O2Cd\",\"modal\":\"Modal_modal__M3lRm\",\"modalHeader\":\"Modal_modalHeader__3pBEm\",\"modalHeading\":\"Modal_modalHeading__2UKdN\",\"modalBody\":\"Modal_modalBody__2aZg0\",\"modalMessage\":\"Modal_modalMessage__VXwXa\",\"modalContent\":\"Modal_modalContent__20HcO\",\"modalButtons\":\"Modal_modalButtons__2qZpF\",\"modalactionsContainer\":\"Modal_modalactionsContainer__38GUg\",\"modalBtn\":\"Modal_modalBtn__2xONK\",\"modalButton\":\"Modal_modalButton__2csEb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main\":\"PageErrorBoundary_main__1WSr9\",\"errorBox\":\"PageErrorBoundary_errorBox__DKpve\",\"header\":\"PageErrorBoundary_header__m4C0W\",\"text\":\"PageErrorBoundary_text__3S2I8\",\"link\":\"PageErrorBoundary_link__3pJIR\",\"footer\":\"PageErrorBoundary_footer__3WpNu\",\"logo\":\"PageErrorBoundary_logo__1Jahb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"headerElement\":\"Header_headerElement__2MZ1L\",\"headerInner\":\"Header_headerInner__aGDS1\",\"headerContent\":\"Header_headerContent__1jPeU\",\"subMain\":\"Header_subMain__25k07\",\"headerLogotype\":\"Header_headerLogotype__3Atxc\",\"bannerCurveBackground\":\"Header_bannerCurveBackground__4ims_\",\"bannerDropshadow\":\"Header_bannerDropshadow__3vp1H\",\"bannerClippath\":\"Header_bannerClippath__3U114\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"customCheckbox\":\"Checkbox_customCheckbox__2Tfre\",\"loading\":\"Checkbox_loading__1-CMp\",\"disabled\":\"Checkbox_disabled__1gs8v\",\"checkmarkWrapper\":\"Checkbox_checkmarkWrapper__3Cs04\",\"customCheckmark\":\"Checkbox_customCheckmark__QbHpA\",\"primary\":\"Checkbox_primary__17P3T\",\"secondary\":\"Checkbox_secondary__46Rm3\",\"optionTextWrapper\":\"Checkbox_optionTextWrapper__4MM0L\",\"optionName\":\"Checkbox_optionName__joUkc\",\"filterCount\":\"Checkbox_filterCount__WDRNV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"selectBox\":\"Select_selectBox__1w2-g\",\"selectLabel\":\"Select_selectLabel__12i-L\",\"isShaded\":\"Select_isShaded__UrRzq\",\"hasMarginBottom\":\"Select_hasMarginBottom__1OjSq\",\"selectWrapper\":\"Select_selectWrapper__b3lYy\",\"disabled\":\"Select_disabled__gsMKD\",\"isCompact\":\"Select_isCompact__3xQAz\",\"loaderWrapper\":\"Select_loaderWrapper__322Sf\",\"selectLoader\":\"Select_selectLoader__28B9w\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dataSource\":\"DataSource_dataSource__3uHGV\",\"dataSourceHeading\":\"DataSource_dataSourceHeading__noGyE\",\"dataSourceSelection\":\"DataSource_dataSourceSelection__3msO5\",\"dataSourcesActive\":\"DataSource_dataSourcesActive__3vDaM\",\"toggleBtn\":\"DataSource_toggleBtn__3Ohgu\",\"indicatorSymbol\":\"DataSource_indicatorSymbol__QeRh3\",\"infoLink\":\"DataSource_infoLink__2K8OH\",\"print\":\"DataSource_print__15kZ_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loginContainer\":\"PageLogin_loginContainer__vYVx2\",\"main\":\"PageLogin_main__2nHdf\",\"loginOptions\":\"PageLogin_loginOptions__MWGB_\",\"loginForm\":\"PageLogin_loginForm__3ROZ6\",\"unionLink\":\"PageLogin_unionLink__18HBw\",\"loginButton\":\"PageLogin_loginButton__17Et4\",\"loginUnion\":\"PageLogin_loginUnion__2NHKX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"selectLabel\":\"SelectPreview_selectLabel__1o5yl\",\"isShaded\":\"SelectPreview_isShaded__11UOB\",\"selectBox\":\"SelectPreview_selectBox__3InfT\",\"hasMarginBottom\":\"SelectPreview_hasMarginBottom__1c3zu\",\"selectWrapper\":\"SelectPreview_selectWrapper__20bW2\",\"disabled\":\"SelectPreview_disabled__261nK\",\"isCompact\":\"SelectPreview_isCompact__3v5gQ\",\"loaderWrapper\":\"SelectPreview_loaderWrapper__FOSwd\",\"selectLoader\":\"SelectPreview_selectLoader__8pYhq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"selectLabel\":\"SelectParentalLeaveSpin_selectLabel__3m3Dd\",\"isShaded\":\"SelectParentalLeaveSpin_isShaded__xZZGb\",\"selectBox\":\"SelectParentalLeaveSpin_selectBox__16SOz\",\"hasMarginBottom\":\"SelectParentalLeaveSpin_hasMarginBottom__n5yb2\",\"selectWrapper\":\"SelectParentalLeaveSpin_selectWrapper__3jhIG\",\"disabled\":\"SelectParentalLeaveSpin_disabled__18SLm\",\"isCompact\":\"SelectParentalLeaveSpin_isCompact__2gqqn\",\"loaderWrapper\":\"SelectParentalLeaveSpin_loaderWrapper__3JjdF\",\"selectLoader\":\"SelectParentalLeaveSpin_selectLoader__2-O7R\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuButtonContainer\":\"Menu_menuButtonContainer__2XuZP\",\"menuButton\":\"Menu_menuButton__1xLEw\",\"menuOptions\":\"Menu_menuOptions__10brT\",\"optionBtn\":\"Menu_optionBtn__3M2VQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"disableMenuselection\":\"FilterList_disableMenuselection__39db1\",\"showAllFilterWrapper\":\"FilterList_showAllFilterWrapper__4uZK7\",\"showAllFilters\":\"FilterList_showAllFilters__3l9Tz\",\"filterScrollArea\":\"FilterList_filterScrollArea__XL8bn\",\"mobileEmpty\":\"FilterList_mobileEmpty__1Hf-n\",\"filterListPadding\":\"FilterList_filterListPadding__CvlS2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"salaryMarker\":\"SalaryMarker_salaryMarker__LpXcF\",\"input\":\"SalaryMarker_input__317yQ\",\"infoLabelWrapper\":\"SalaryMarker_infoLabelWrapper__2wYF8\",\"information\":\"SalaryMarker_information__1smwA\",\"label\":\"SalaryMarker_label__1DH3M\",\"icon\":\"SalaryMarker_icon__n9cC-\",\"tooltip\":\"SalaryMarker_tooltip__1VZKK\",\"tooltipText\":\"SalaryMarker_tooltipText__2aZiA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"selectBox\":\"FilterExplanationNoText_selectBox__oapTu\",\"loadingContainer\":\"FilterExplanationNoText_loadingContainer__1dj7A\",\"searchArea\":\"FilterExplanationNoText_searchArea__1563z\",\"searchInput\":\"FilterExplanationNoText_searchInput__1SJBK\",\"missingFilterExplanations\":\"FilterExplanationNoText_missingFilterExplanations__2WNUj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"logTools\":\"ApplicationLog_logTools__3Q6iF\",\"loaderAnimation\":\"ApplicationLog_loaderAnimation__xdTKU\",\"logPanel\":\"ApplicationLog_logPanel__1Qbih\",\"errorText\":\"ApplicationLog_errorText__1V7qk\",\"panelFooter\":\"ApplicationLog_panelFooter__3szvJ\",\"pageIndicator\":\"ApplicationLog_pageIndicator__2eeF4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageAdmin\":\"PageAdmin_pageAdmin__93x7u\",\"adminH1\":\"PageAdmin_adminH1__22hJq\",\"forbundSelectWrapper\":\"PageAdmin_forbundSelectWrapper__35qSs\",\"mainContent\":\"PageAdmin_mainContent__1QbpN\",\"navHeader\":\"PageAdmin_navHeader__13J_D\",\"toolBar\":\"PageAdmin_toolBar__1V2B8\",\"navButton\":\"PageAdmin_navButton__RROnd\",\"adminHeading\":\"PageAdmin_adminHeading__2x98v\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main\":\"CopyConfiguration_main__3FGzK\",\"mainContent\":\"CopyConfiguration_mainContent__fx_iR\",\"innerContainerSlim\":\"CopyConfiguration_innerContainerSlim__1UuMC\",\"optionCard\":\"CopyConfiguration_optionCard__EDWZW\",\"cardSymbol\":\"CopyConfiguration_cardSymbol__3MnZA\",\"advancedOption\":\"CopyConfiguration_advancedOption__51tM8\",\"errorText\":\"CopyConfiguration_errorText__1TdWz\",\"loaderAnimation\":\"CopyConfiguration_loaderAnimation__2pV89\",\"topNav\":\"CopyConfiguration_topNav__2IcAh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"CareerspinContainer\":\"Careerspin_CareerspinContainer__2vHL2\",\"Input\":\"Careerspin_Input__9qAUf\",\"transparentArrowBottom\":\"Careerspin_transparentArrowBottom__29pYH\",\"transparentArrow\":\"Careerspin_transparentArrow__1zmzx\",\"link\":\"Careerspin_link__3mCho\",\"spinContainer\":\"Careerspin_spinContainer__c5jOP\",\"textContent\":\"Careerspin_textContent__3ILk2\",\"selectContainer\":\"Careerspin_selectContainer__lb_Nn\",\"salary_module_container\":\"Careerspin_salary_module_container__2u1J2\",\"helpIcon\":\"Careerspin_helpIcon__20H19\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"activeFilters\":\"ActiveSelections_activeFilters__1Gvqb\",\"activeFiltersHeading\":\"ActiveSelections_activeFiltersHeading__2SHVX\",\"filterName\":\"ActiveSelections_filterName__1qrmG\",\"optionName\":\"ActiveSelections_optionName__Abd3K\",\"filterButtonWrapper\":\"ActiveSelections_filterButtonWrapper__37RSi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonLink\":\"ButtonLink_buttonLink__1UpTx\",\"buttonIcon\":\"ButtonLink_buttonIcon__3-yts\",\"buttonText\":\"ButtonLink_buttonText__6qXC0\",\"isLarge\":\"ButtonLink_isLarge__374f-\",\"isMenuItem\":\"ButtonLink_isMenuItem__3k5qz\",\"isLastChild\":\"ButtonLink_isLastChild__24E7U\",\"isAccordionItem\":\"ButtonLink_isAccordionItem__3rl2w\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"statisticsometer\":\"Statisticsometer_statisticsometer__3tdXl\",\"hasMarginBottom\":\"Statisticsometer_hasMarginBottom__3zTs7\",\"meter\":\"Statisticsometer_meter__2lILR\",\"full\":\"Statisticsometer_full__2_wYn\",\"overview\":\"Statisticsometer_overview__2O0WS\",\"advanced\":\"Statisticsometer_advanced__1s4Td\",\"statisticsText\":\"Statisticsometer_statisticsText__HwRA_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main\":\"PageAdvanced_main__3nLTQ\",\"mainSection\":\"PageAdvanced_mainSection__2PaY0\",\"innerContainerFull\":\"PageAdvanced_innerContainerFull__XiKn1\",\"subSectionLeft\":\"PageAdvanced_subSectionLeft__XfJlf\",\"subSectionRight\":\"PageAdvanced_subSectionRight__3W5tS\",\"subSectionContent\":\"PageAdvanced_subSectionContent__1eWw3\",\"reportSettings\":\"PageAdvanced_reportSettings__1nOOM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"Button_button__3Invw\",\"buttonIcon\":\"Button_buttonIcon__2XW3i\",\"hasText\":\"Button_hasText__1ilPf\",\"buttonText\":\"Button_buttonText__3_NxL\",\"hasIcon\":\"Button_hasIcon__3G1xq\",\"flipIcon\":\"Button_flipIcon__3WVZK\",\"primary\":\"Button_primary__3fj8r\",\"secondary\":\"Button_secondary__2qPG3\",\"ghost\":\"Button_ghost__2KFxn\",\"delete\":\"Button_delete__1iuWi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"configTable\":\"SortableList_configTable__ENbbr\",\"center\":\"SortableList_center__343v0\",\"radioLabel\":\"SortableList_radioLabel__2emWn\",\"disabled\":\"SortableList_disabled__2X9MM\",\"configItem\":\"SortableList_configItem__3bL86\",\"optionsList\":\"SortableList_optionsList__m72xA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sourceSelectContainer\":\"DataSourceConfig_sourceSelectContainer__3JbEf\",\"tabRow\":\"DataSourceConfig_tabRow__QDJWV\",\"loaderContainer\":\"DataSourceConfig_loaderContainer__9sqDl\",\"shown\":\"DataSourceConfig_shown__2QUno\",\"hidden\":\"DataSourceConfig_hidden__2qmSq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"logItem\":\"LogItem_logItem__27IHA\",\"logRow\":\"LogItem_logRow__23Iug\",\"logChevron\":\"LogItem_logChevron__2puqC\",\"extraInfo\":\"LogItem_extraInfo__1nClG\",\"copyButton\":\"LogItem_copyButton__IbtM_\",\"Information\":\"LogItem_Information__3v7oM\",\"Warning\":\"LogItem_Warning__1b16p\",\"Error\":\"LogItem_Error__3sd8Z\",\"timeStamp\":\"LogItem_timeStamp__3Eq77\",\"buttonRow\":\"LogItem_buttonRow__3DrBN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"logItem\":\"LogItem_logItem__o0LA_\",\"logRow\":\"LogItem_logRow__3jJG9\",\"logChevron\":\"LogItem_logChevron__3Yn9Q\",\"extraInfo\":\"LogItem_extraInfo__LVLhm\",\"copyButton\":\"LogItem_copyButton__2dGgt\",\"Information\":\"LogItem_Information__31vK5\",\"Warning\":\"LogItem_Warning__2NoGK\",\"Error\":\"LogItem_Error__7ZlmA\",\"timeStamp\":\"LogItem_timeStamp__3gCwz\",\"buttonRow\":\"LogItem_buttonRow__1-VmU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"statusBox\":\"StatusBox_statusBox__3hVg_\",\"loaderAnimation\":\"StatusBox_loaderAnimation__1QM5X\",\"loaderWrapper\":\"StatusBox_loaderWrapper__A-ZzQ\",\"selectLoader\":\"StatusBox_selectLoader__2ddd3\",\"ul\":\"StatusBox_ul__1qjNx\",\"userFilters\":\"StatusBox_userFilters__3kfVz\",\"filterHeading\":\"StatusBox_filterHeading__wt0VM\",\"indicatorSymbol\":\"StatusBox_indicatorSymbol__3xvQ8\",\"resetFiltersBtn\":\"StatusBox_resetFiltersBtn__3lN3p\",\"disableMenuselection\":\"StatusBox_disableMenuselection__26n6q\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"rowContainer\":\"NotificationRow_rowContainer__ZhNHx\",\"header\":\"NotificationRow_header__1iBZw\",\"source\":\"NotificationRow_source__20zeF\",\"textTitle\":\"NotificationRow_textTitle__2RUO6\",\"bottomWrapper\":\"NotificationRow_bottomWrapper__bo2dn\",\"buttonContainer\":\"NotificationRow_buttonContainer__2fHfp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main\":\"Footer_main__1W_j6\",\"innerContainerFull\":\"Footer_innerContainerFull__1ZzPw\",\"mainSection\":\"Footer_mainSection__o48DQ\",\"subSection\":\"Footer_subSection__2zuAD\",\"subSectionContent\":\"Footer_subSectionContent__6UciD\",\"logo\":\"Footer_logo__1bFOo\",\"sacoLink\":\"Footer_sacoLink__PdbKf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main\":\"PageStart_main__2DOeM\",\"innerContainer\":\"PageStart_innerContainer__2ydSJ\",\"optionContainer\":\"PageStart_optionContainer__E5ku2\",\"aboutClippath\":\"PageStart_aboutClippath__IpFnG\",\"aboutCurveBackground\":\"PageStart_aboutCurveBackground__ksM8S\",\"aboutDropshadow\":\"PageStart_aboutDropshadow__3_Amq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"inputWrapper\":\"Input_inputWrapper__3aeCw\",\"inputLabel\":\"Input_inputLabel__1EygG\",\"displayInline\":\"Input_displayInline__TE-rY\",\"input\":\"Input_input__3n7Rb\",\"number\":\"Input_number__1YDCe\",\"text\":\"Input_text__1z4y9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"activeFilters\":\"ActiveFilters_activeFilters__1cruB\",\"activeFiltersHeading\":\"ActiveFilters_activeFiltersHeading__WRKin\",\"filterName\":\"ActiveFilters_filterName__ZYBRD\",\"optionName\":\"ActiveFilters_optionName__1K3jK\",\"filterButtonWrapper\":\"ActiveFilters_filterButtonWrapper__1_CBJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"logTools\":\"MonitoringLog_logTools__18cCm\",\"loaderAnimation\":\"MonitoringLog_loaderAnimation__HWAeU\",\"logPanel\":\"MonitoringLog_logPanel__3uiVy\",\"errorText\":\"MonitoringLog_errorText__3HQvQ\",\"panelFooter\":\"MonitoringLog_panelFooter__-gein\",\"pageIndicator\":\"MonitoringLog_pageIndicator__mPQho\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"analysisCard\":\"AnalysisCard_analysisCard__2R2Jg\",\"continueLink\":\"AnalysisCard_continueLink__3F5np\",\"cardSymbol\":\"AnalysisCard_cardSymbol__5GQMZ\",\"simpleOption\":\"AnalysisCard_simpleOption__2it-v\",\"advancedOption\":\"AnalysisCard_advancedOption__24gvd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"selectionCard\":\"SelectionCard_selectionCard__1YZqL\",\"loading\":\"SelectionCard_loading__1Een1\",\"disabled\":\"SelectionCard_disabled__yItux\",\"selected\":\"SelectionCard_selected__3mJrA\",\"inputContainer\":\"SelectionCard_inputContainer__3a-7t\",\"selectionCardContent\":\"SelectionCard_selectionCardContent__2H66C\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"regularPanel\":\"Panel_regularPanel__3VmfW\",\"isAdmin\":\"Panel_isAdmin__15XEg\",\"panelFieldset\":\"Panel_panelFieldset__1rZLD\",\"panelLegend\":\"Panel_panelLegend__1AQPQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loaderAnimation\":\"Accounts_loaderAnimation__1htrQ\",\"filter\":\"Accounts_filter__1CIXZ\",\"accountTable\":\"Accounts_accountTable__du2i0\",\"table\":\"Accounts_table__33HM8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"navigationItem\":\"NavigationItem_navigationItem__1Knke\",\"isActive\":\"NavigationItem_isActive__1P58Z\",\"activeIcon\":\"NavigationItem_activeIcon__OVI-X\",\"isHidden\":\"NavigationItem_isHidden__1A5ho\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tabRow\":\"CopyConfiguration_tabRow__3gUch\",\"loaderAnimation\":\"CopyConfiguration_loaderAnimation__1XwqJ\",\"helpLink\":\"CopyConfiguration_helpLink__1AqdG\",\"ul\":\"CopyConfiguration_ul__3ooJp\",\"li\":\"CopyConfiguration_li__1uQI2\",\"userFilters\":\"CopyConfiguration_userFilters__QvSVb\",\"filterHeading\":\"CopyConfiguration_filterHeading__20Ux0\",\"indicatorSymbol\":\"CopyConfiguration_indicatorSymbol__2iTho\",\"resetFiltersBtn\":\"CopyConfiguration_resetFiltersBtn__1iHoC\",\"disableMenuselection\":\"CopyConfiguration_disableMenuselection__2ktn8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"LoginInfo_container__1oNgG\",\"header\":\"LoginInfo_header__2rSxx\",\"text\":\"LoginInfo_text__3Ni-D\",\"link\":\"LoginInfo_link__ftR-K\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"ButtonGroup_container__2JOCO\",\"active\":\"ButtonGroup_active__2CVa2\",\"customButton\":\"ButtonGroup_customButton__RFnZk\",\"firstButton\":\"ButtonGroup_firstButton__2Dsgr\",\"lastButton\":\"ButtonGroup_lastButton__3U5Y6\",\"textcolorWhite\":\"ButtonGroup_textcolorWhite__24Ax5\"};","module.exports = __webpack_public_path__ + \"static/media/barchart.68f1fa3d.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonActiveFilter\":\"ButtonActiveFilter_buttonActiveFilter__3B97Z\",\"buttonIcon\":\"ButtonActiveFilter_buttonIcon__2o-LI\",\"buttonText\":\"ButtonActiveFilter_buttonText__30xWm\",\"isLarge\":\"ButtonActiveFilter_isLarge__3G_Ce\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main\":\"CheckboxSelectGroup_main__wTffo\",\"header\":\"CheckboxSelectGroup_header__1G-CY\",\"mobileEmpty\":\"CheckboxSelectGroup_mobileEmpty__1FsGq\",\"greyed\":\"CheckboxSelectGroup_greyed__3lsI0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"resetFiltersBtn\":\"SalaryProfile_resetFiltersBtn__2Sxzt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"userFilters\":\"Filters_userFilters___R6wN\",\"filterHeading\":\"Filters_filterHeading__1z8ki\",\"indicatorSymbol\":\"Filters_indicatorSymbol__1b6cj\",\"resetFiltersBtn\":\"Filters_resetFiltersBtn__1lCZS\",\"disableMenuselection\":\"Filters_disableMenuselection__3MH4D\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"inputReadOnly\":\"InputReadOnly_inputReadOnly__xNh7a\",\"inputLabel\":\"InputReadOnly_inputLabel__3vxKX\",\"textField\":\"InputReadOnly_textField__1nvI5\",\"useHyphens\":\"InputReadOnly_useHyphens__3EOce\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"situationCard\":\"SituationCard_situationCard__1PolS\",\"situationCardInner\":\"SituationCard_situationCardInner__5NeUO\",\"situationDescription\":\"SituationCard_situationDescription__3w4WL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"linkItem\":\"LinksConfig_linkItem__8rxta\",\"linkLabel\":\"LinksConfig_linkLabel__TEDkw\",\"loaderAnimation\":\"LinksConfig_loaderAnimation__dtnm_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"situationCard\":\"PreviewDataSourceCard_situationCard__1-7Ft\",\"situationCardInner\":\"PreviewDataSourceCard_situationCardInner__1a_oz\",\"situationDescription\":\"PreviewDataSourceCard_situationDescription__wqYJT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main\":\"FilterExplanations_main__2XM4Q\",\"searchContainer\":\"FilterExplanations_searchContainer__3c7z-\",\"filterTextList\":\"FilterExplanations_filterTextList__2vzEj\",\"filterTextsMissing\":\"FilterExplanations_filterTextsMissing__2mER1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main\":\"Logout_main__1hPFO\",\"header\":\"Logout_header__1-aPH\",\"text\":\"Logout_text__2ivjb\"};","module.exports = __webpack_public_path__ + \"static/media/saco-lonesok_logotype.62c120b2.svg\";","module.exports = __webpack_public_path__ + \"static/media/flowchart_token-authentication.cf7b52b4.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"breadcrumb\":\"BreadcrumbsItem_breadcrumb__8zZOr\",\"breadcrumbInactive\":\"BreadcrumbsItem_breadcrumbInactive__1SBOc\",\"breadcrumbActive\":\"BreadcrumbsItem_breadcrumbActive__2zqF3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sectionElement\":\"Section_sectionElement__3knBJ\",\"isDashed\":\"Section_isDashed__1ODy6\",\"sectionHeading\":\"Section_sectionHeading__3OFYk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"RadioButton_container__394dx\",\"icon\":\"RadioButton_icon__2Q7cP\",\"checkmarkWrapper\":\"RadioButton_checkmarkWrapper__2edM1\",\"customCheckmark\":\"RadioButton_customCheckmark__2XIRn\",\"loading\":\"RadioButton_loading__v7jAg\",\"disabled\":\"RadioButton_disabled__1B0Hj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"subSection\":\"Situation_subSection__2-CEF\",\"subSectionTitle\":\"Situation_subSectionTitle__35mM9\",\"subSectionContent\":\"Situation_subSectionContent__16-c_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"downloadSection\":\"DownloadSection_downloadSection__3eDUQ\",\"downloadOptions\":\"DownloadSection_downloadOptions__1SMRS\",\"optionBtn\":\"DownloadSection_optionBtn__3cjG4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"reportSection\":\"ReportSection_reportSection__1ZPDQ\",\"noData\":\"ReportSection_noData__1J6tX\",\"loader\":\"ReportSection_loader__i0o57\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tab\":\"Tab_tab__3zNqX\",\"active\":\"Tab_active__1QnzX\",\"passive\":\"Tab_passive__2LUj2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"helpSection\":\"Explanations_helpSection__1XWU3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"customPresentation\":\"CustomPresentation_customPresentation__1vRvU\",\"customPresFlex\":\"CustomPresentation_customPresFlex__2NPKO\",\"customPresentationHeading\":\"CustomPresentation_customPresentationHeading__jNFm4\",\"customPresentationSelection\":\"CustomPresentation_customPresentationSelection__3TrGh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonBar\":\"ButtonBar_buttonBar__3GhT7\",\"prevNext\":\"ButtonBar_prevNext__aZHd-\",\"hasMarginBottom\":\"ButtonBar_hasMarginBottom__1qZLS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"checkboxAdmin\":\"CheckboxAdmin_checkboxAdmin__3yrh-\",\"labelText\":\"CheckboxAdmin_labelText__29IFa\",\"disabled\":\"CheckboxAdmin_disabled__2mxP3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"linksCard\":\"LinkCard_linksCard__2g6kf\",\"linkBox\":\"LinkCard_linkBox__3Adff\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tabRow\":\"Level2Simple_tabRow__X-5QI\",\"loaderAnimation\":\"Level2Simple_loaderAnimation__21Z04\",\"helpLink\":\"Level2Simple_helpLink__qSQrd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sectionAdmin\":\"SectionAdmin_sectionAdmin__1QXYj\",\"sectionHeading\":\"SectionAdmin_sectionHeading__2G-Q8\",\"sectionContent\":\"SectionAdmin_sectionContent__rtqOJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tabRow\":\"PreviewConfig_tabRow__1Dblu\",\"loaderAnimation\":\"PreviewConfig_loaderAnimation__2vdTf\",\"helpLink\":\"PreviewConfig_helpLink__1777N\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"defaultText\":\"FilterExplanationItem_defaultText__3AFZ4\",\"optionRow\":\"FilterExplanationItem_optionRow__3KKSF\",\"optionsList\":\"FilterExplanationItem_optionsList__3RtFh\",\"subHeader\":\"FilterExplanationItem_subHeader__WaE0x\",\"itemHeading\":\"FilterExplanationItem_itemHeading__2Eeki\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"defaultText\":\"GeneralTextItem_defaultText__mf969\",\"optionsList\":\"GeneralTextItem_optionsList__32h_Y\",\"label\":\"GeneralTextItem_label__3MxY8\",\"defaultOption\":\"GeneralTextItem_defaultOption__2SWGF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"UnemploymentspinTab\":\"UnemploymentspinTab_UnemploymentspinTab__3q-8w\",\"UnemploymentspinTabActive\":\"UnemploymentspinTab_UnemploymentspinTabActive__2fGYv\",\"UnemploymentspinTabPassive\":\"UnemploymentspinTab_UnemploymentspinTabPassive__d6i5e\",\"icon\":\"UnemploymentspinTab_icon__l1ZXB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main\":\"Banner_main__310xB\",\"innerContainerFull\":\"Banner_innerContainerFull__3AccF\",\"banner\":\"Banner_banner__5NfI4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"contentContainer\":\"App_contentContainer__1Uo_h\",\"scaledContent\":\"App_scaledContent__1oDUI\",\"formWrapperAHalf\":\"App_formWrapperAHalf__3RCzp\",\"LonesokFlexBox\":\"App_LonesokFlexBox__16fJg\",\"LonesokFlexCol\":\"App_LonesokFlexCol__sgWbO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"aboutWrapper\":\"About_aboutWrapper__35CBs\",\"aboutInnerWrapper\":\"About_aboutInnerWrapper__1-P7c\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"policyWrapper\":\"PrivacyPolicy_policyWrapper__3zjNl\",\"policyInnerWrapper\":\"PrivacyPolicy_policyInnerWrapper__jaWX7\",\"policySection\":\"PrivacyPolicy_policySection__RMstU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"salaryAnalysis\":\"SalaryAnalysis_salaryAnalysis__1xM1D\",\"externalLink\":\"SalaryAnalysis_externalLink__2Xdg3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"selectedSalary\":\"SalarySlider_selectedSalary__16iWr\",\"number\":\"SalarySlider_number__23Wy8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loader\":\"Loader_loader__3rSjE\",\"isSmall\":\"Loader_isSmall__x6W6B\",\"loaderSmall\":\"Loader_loaderSmall__1SCrt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Notification_container__3pfRZ\",\"notification\":\"Notification_notification__2t3DA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"ErrorNotification_container__3-88k\",\"notification\":\"ErrorNotification_notification__2TQ7a\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"toolBar\":\"ToolBar_toolBar__1oGqX\",\"menuItem\":\"ToolBar_menuItem__Gw0UI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filterItem\":\"FilterItem_filterItem__3AyQR\",\"greyed\":\"FilterItem_greyed__1Y1Ab\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"summary\":\"DataSourceSummary_summary__3iFfU\",\"print\":\"DataSourceSummary_print__Vk-Dp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"salaryGraph\":\"SalaryGraph_salaryGraph__2BSlv\",\"salaryMarkerWrapper\":\"SalaryGraph_salaryMarkerWrapper__2Y0Iy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"explanationItem\":\"ExplanationItem_explanationItem__2QFNS\",\"image\":\"ExplanationItem_image__2fUFi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"instructionsVideo\":\"InstructionsVideo_instructionsVideo__ywMoV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"inputWrapper\":\"Textarea_inputWrapper__2gUp1\",\"label\":\"Textarea_label__3Fmhv\",\"input\":\"Textarea_input__2-OC4\",\"number\":\"Textarea_number__2ivDT\",\"text\":\"Textarea_text__18aWr\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main\":\"SalaryProfileConfig_main__1ZWuG\",\"wrapForm\":\"SalaryProfileConfig_wrapForm__oy3vb\",\"selectionRow\":\"SalaryProfileConfig_selectionRow__2AC4X\",\"subSection\":\"SalaryProfileConfig_subSection__1JR1L\",\"arrowButton\":\"SalaryProfileConfig_arrowButton__1gl3p\",\"saveSection\":\"SalaryProfileConfig_saveSection__3VCOd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"LoadConfiguration_container__2huKk\",\"isLoading\":\"LoadConfiguration_isLoading__18Abo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main\":\"PreviewSalaryProfileConfig_main__12n-k\",\"wrapForm\":\"PreviewSalaryProfileConfig_wrapForm__3SoDV\",\"selectionRow\":\"PreviewSalaryProfileConfig_selectionRow__2uRR7\",\"subSection\":\"PreviewSalaryProfileConfig_subSection__3qoDt\",\"arrowButton\":\"PreviewSalaryProfileConfig_arrowButton__15RZ-\",\"saveSection\":\"PreviewSalaryProfileConfig_saveSection__33Sx_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid\":\"FilterExplanationEdit_grid__19w5L\",\"subHeader\":\"FilterExplanationEdit_subHeader__11ki5\",\"left\":\"FilterExplanationEdit_left__lFW8-\"};","module.exports = __webpack_public_path__ + \"static/media/list.377c4959.svg\";","module.exports = __webpack_public_path__ + \"static/media/marker.11721695.svg\";","module.exports = __webpack_public_path__ + \"static/media/circle.7f9efd15.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"slider\":\"Slider_slider__24xEK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"unionLink\":\"UnionLink_unionLink__3iWys\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"subHeader\":\"ExplanationText_subHeader__faPHq\",\"explanationText\":\"ExplanationText_explanationText__20Ch0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonTransparent\":\"ButtonTransparent_buttonTransparent__2DTKz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"breadcrumbs\":\"Breadcrumbs_breadcrumbs__3tNdo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"externalLink\":\"ExternalLink_externalLink__2zGpw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"slider\":\"Slider_slider__V2rIE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"optionBtn\":\"DownloadExcel_optionBtn__2VAAY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"presentation\":\"Presentation_presentation__1kR40\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tabRow\":\"TabRow_tabRow__3Asy0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"chart\":\"Chart_chart__Ee-8A\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loaderContainer\":\"ExplanationGroup_loaderContainer__CAAXD\"};","module.exports = __webpack_public_path__ + \"static/media/box_plot_image.bbb9e520.png\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"helpBox\":\"HelpBox_helpBox__2rCW5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loaderAnimation\":\"Level3Advanced_loaderAnimation__2RiaU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid\":\"StandardConfig_grid__CXOZf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"helpBox\":\"HelpBox_helpBox__3ESs6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"admin\":\"AccountRow_admin__2XNG7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loaderAnimation\":\"CreateAccount_loaderAnimation__VWmOF\",\"createAccountHeader\":\"CreateAccount_createAccountHeader__3oQ2P\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tabRow\":\"DataSource_tabRow__9NaLw\",\"loaderAnimation\":\"DataSource_loaderAnimation__1OYpr\",\"helpLink\":\"DataSource_helpLink__HXAac\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tabRow\":\"UnionSelect_tabRow__3fKSc\",\"loaderAnimation\":\"UnionSelect_loaderAnimation__iyRwJ\",\"helpLink\":\"UnionSelect_helpLink__3BKPi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"helpBox\":\"HelpBox_helpBox__1tuqD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"AddNotification_container__3m8Le\",\"textInput\":\"AddNotification_textInput__3_iST\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main\":\"Page404_main__2PLo0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"PreviewLab_container__iMb5s\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"slider\":\"Slider_slider__3M_eE\"};","module.exports = __webpack_public_path__ + \"static/media/crowns.29ba5305.svg\";","module.exports = __webpack_public_path__ + \"static/media/unemployment.13e1a247.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filterExplanationCreate\":\"FilterExplanationCreate_filterExplanationCreate__1iKY2\",\"filterExplanationHeading\":\"FilterExplanationCreate_filterExplanationHeading__38ZfB\",\"textArea\":\"FilterExplanationCreate_textArea__30FLZ\"};","module.exports = __webpack_public_path__ + \"static/media/download.630dd89e.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrow2.055e1e65.svg\";","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport styles from './PageErrorBoundary.module.css';\nimport Logo from '../../testdata/saco-lonesok_logotype.svg';\n\nclass PageErrorBoundary extends Component {\n state = { hasError: false, error: '' };\n\n static getDerivedStateFromError(error) {\n return { hasError: true, error };\n }\n\n componentDidMount() {\n window.addEventListener('unhandledrejection', this.handleAsyncError);\n }\n\n componentWillUnmount() {\n window.removeEventListener('unhandledrejection', this.handleAsyncError);\n }\n\n handleAsyncError = event => {\n console.error('Async error caught in PageErrorBoundary:', event.reason);\n \n const errorMessage =\n event.reason && event.reason.message\n ? event.reason.message\n : 'Ett okänt fel inträffade.';\n \n this.setState({ hasError: true, error: errorMessage });\n };\n \n\n render() {\n if (this.state.hasError) {\n return (\n
\n
\n

Något har gått fel!

\n

\n Tyvärr verkar Saco Lönesök inte vara tillgängligt för tillfället. Testa gärna lite senare.\n

\n

\n Är det bråttom? För frågor om lön, lönerådgivning eller statistik, kontakta ditt förbund.\n

\n

\n Har du tekniska synpunkter eller frågor? Hör av dig till Saco på{' '}\n \n lonesok@saco.se\n {' '}\n och ange gärna vilket förbund du tillhör.\n

\n

Tack för ditt tålamod!

\n
\n \"SACO\n
\n
\n
\n );\n }\n\n return this.props.children;\n }\n}\n\nexport default withRouter(PageErrorBoundary);\n","import AppSettings from '../appsettings.json';\n\nconst Api = () => {\n const BASE_URL = AppSettings.SERVER_URL;\n\n // function handleNetworkError(res) {\n // // console.log('res');\n // // console.log(res);\n // if (!res.ok) {\n // // console.log('res.ok1');\n // // console.log(res.ok);\n // throw res;\n // }\n // // console.log('res.ok2');\n // // console.log(res.ok);\n // return res;\n // }\n\n function handleNetworkError(res) {\n if (!res.ok) {\n return res.json().then(err => {\n // Hantera serverfel (500 och uppåt)\n if (res.status >= 500) {\n throw new Error(err.error || `Serverfel: ${res.statusText}`);\n }\n // Logga mindre allvarliga fel (4xx) och returnera ändå\n console.warn('Mindre fel upptäckt:', err.error || res.statusText);\n return res; // Returnera för att fortsatt hantera mindre fel.\n });\n }\n return res;\n }\n \n\n // TODO: Handle network errors\n // function handleNoContent(res) {\n // if (res.status === 204) {\n // throw res;\n // }\n\n // return res;\n // }\n\n function createGetRequest(page, token) {\n const req = {\n method: 'GET',\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\n };\n\n return fetch(`${BASE_URL}/${page}`, req)\n .then(res => handleNetworkError(res))\n .then(res => res.json());\n }\n\n function createGetRequestWithCredentials(page, token) {\n const req = {\n method: 'GET',\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\n credentials: 'include',\n };\n\n return fetch(`${BASE_URL}/${page}`, req)\n .then(res => handleNetworkError(res))\n .then(res => res.json());\n }\n\n function createDeleteRequest(page, token) {\n const req = {\n method: 'DELETE',\n headers: !token\n ? { 'Content-type': 'application/json' }\n : {\n 'Content-type': 'application/json',\n Authorization: `Bearer ${token}`,\n },\n };\n\n return fetch(`${BASE_URL}/${page}`, req)\n .then(res => handleNetworkError(res))\n .then(res => res.json());\n }\n\n function createPostRequest(page, reqData, token, returnJson = true) {\n const req = {\n method: 'POST',\n headers: !token\n ? { 'Content-type': 'application/json' }\n : {\n 'Content-type': 'application/json',\n Authorization: `Bearer ${token}`,\n },\n body: JSON.stringify(reqData),\n };\n\n return fetch(`${BASE_URL}/${page}`, req)\n .then(res => handleNetworkError(res))\n .then(res => (returnJson ? res.json() : res));\n }\n\n function createPostRequestWithCredentials(\n page,\n reqData,\n token,\n returnJson = true\n ) {\n const req = {\n method: 'POST',\n headers: !token\n ? { 'Content-type': 'application/json' }\n : {\n 'Content-type': 'application/json',\n Authorization: `Bearer ${token}`,\n },\n body: JSON.stringify(reqData),\n };\n\n return (\n fetch(`${BASE_URL}/${page}`, req)\n .then(res => handleNetworkError(res))\n // TODO: Handle network errors\n // .then(res => handleNoContent(res))\n .then(res => (returnJson ? res.json() : res))\n );\n }\n\n function createEventSource(page, messageEvent) {\n const eventSource = new EventSource(`${BASE_URL}/${page}`);\n eventSource.onmessage = e => messageEvent(e.data);\n }\n\n function createPostRequestWithToken(page, reqData, returnJson = true) {\n const { token } = reqData;\n const req = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/json',\n Authorization: `Bearer ${token}`,\n },\n body: JSON.stringify(reqData),\n };\n\n return fetch(`${BASE_URL}/${page}`, req)\n .then(res => handleNetworkError(res))\n .then(res => res.json());\n }\n // API Endpoints:\n // forbund (get), fds, menuselection, metatabs, breakby, report.\n\n // DevLogin/AdminLogin\n return {\n login: data => createPostRequest('Token', data, false),\n testLogin: data => createPostRequest('Token/login', data),\n tokenLogin: data => createPostRequestWithToken('Token/session', data),\n forbundsKodLogin: data => createPostRequest('Token/forbund/session', data),\n\n // Getters\n getForbund: token =>\n createGetRequest('UnionSalaryStatistics/forbund', token),\n\n // Posts\n getFds: (data, token) =>\n createPostRequest('UnionSalaryStatistics/fds', data, token),\n\n getConfiguration: (data, token) =>\n createPostRequest('CopyConfiguration/config', data, token),\n copyConfigurationExecute: (data, token) =>\n createPostRequest('CopyConfigurationJob/execute', data, token, false),\n getActiveFds: (data, token) =>\n createPostRequest('Presentation/fds', data, token),\n getMenuselections: (data, token) =>\n createPostRequest('UnionSalaryStatistics/menuselection', data, token),\n getPreviewMenuSelection: data =>\n createPostRequest('UnionSalaryStatistics/menuselection/preview', data),\n getPreviewMenuSelections: data =>\n createPostRequest('UnionSalaryStatistics/menuselections/preview', data),\n getMetatabs: (data, token) =>\n createPostRequest('UnionSalaryStatistics/metatabs', data, token),\n getBreakby: (data, token) =>\n createPostRequest('UnionSalaryStatistics/breakby', data, token),\n getReport: (data, token) =>\n createPostRequest('UnionSalaryStatistics/lonereport', data, token),\n\n getBinstat: data =>\n createPostRequest('UnionSalaryStatistics/binstat', data),\n\n getReportExcel: (data, token) =>\n createPostRequest('File/excel', data, token, false),\n\n getUnemploymentStaticExcel: () =>\n createPostRequest('Unemployment/excel', null, null, false),\n\n getUnemploymentData: () => createPostRequest('Unemployment/data', null, null, true),\n\n sendVistitorStats: (data, token) =>\n createPostRequest('Statistic', data, token),\n\n // Admin/New endpoints\n // FIXME: Måste få bättre koll.\n getSituations: token => createGetRequest('Situation', token),\n getPreviewSituations: token =>\n createGetRequest('Situation/getPreviewSituations', token),\n createSituation: (data, token) =>\n createPostRequest('Situation', data, token),\n updateSituation: (id, data, token) =>\n createPostRequest(`Situation/${id}`, data, token),\n deleteSituation: (id, token) =>\n createDeleteRequest(`Situation/${id}`, token),\n updateSelections: (id, data, token) =>\n createPostRequest(`Situation/${id}/selections`, data, token),\n postDatasource: (id, data, token) =>\n createPostRequest(`DataSource/${id}`, data, token),\n getUnionByUnionId: unionId => createPostRequest(`Union/${unionId}`),\n getUnionByForbundsKod: forbundsKod =>\n createPostRequest(`Union/forbundskod/${forbundsKod}`),\n\n getUnion: token => createGetRequest('Union', token),\n getUnions: token => createGetRequest('Union/getall', token),\n refreshAdminToken: (data, token) =>\n createPostRequest('Token/adminrefresh', data, token),\n postConfiguredYear: (unionId, data, token) =>\n createPostRequest(`Union/${unionId}/configuration`, data, token, false),\n\n /**\n * getAll: get all texts of groupId and textId. Texts with unionId take precedence.\n * both: get all texts, both with unionId and default texts.\n */\n getTexts: (data, token) => createPostRequest('Text/getall', data, token),\n getTextsBoth: (data, token) => createPostRequest('Text/both', data, token),\n postText: (data, token) => createPostRequest('Text', data, token),\n deleteText: (id, token) => createDeleteRequest(`Text/${id}`, token),\n\n getLogs: (data, token) => createPostRequest('Log/getall', data, token),\n getMonitoringLogs: (data, token) =>\n createPostRequest('MonitoringLog/getall', data, token),\n getMonitoringLogsById: (data, token) =>\n createPostRequest('MonitoringLog/getbyid', data, token),\n getVisitorStats: (data, token) =>\n createPostRequest('Statistic/getall', data, token),\n getVisitorStatsNew: (data, token) =>\n createPostRequest('Statistic/getPeriodsStatistics', data, token),\n getUserStatistics: (data, token) =>\n createPostRequest('Statistic/getUserStatistics', data, token),\n getVisitorStatsByUnion: (data, token) =>\n createPostRequest('Statistic/sessionsbyforbund', data, token),\n getVisitorExcel: (data, token) =>\n createPostRequest('Statistic/excel', data, token, false),\n\n clearCache: token =>\n createPostRequest('UnionSalaryStatistics/clearcache', {}, token, false),\n\n // Nivå 1 endpoints.\n getSituationsFree: () => createGetRequest('Situation/public'),\n getReportFree: data =>\n createPostRequestWithCredentials(\n 'UnionSalaryStatistics/lonereport/public',\n data\n ),\n getMenuselectionsFree: data =>\n createPostRequestWithCredentials(\n 'UnionSalaryStatistics/menuselection/public',\n data\n ),\n\n createEventSource: (page, messageEvent) => {\n const eventSource = new EventSource(`${BASE_URL}/${page}`);\n eventSource.onmessage = e => messageEvent(e.data);\n },\n\n // Kontohantering admin.\n getSubscribers: token => createGetRequest('Subscriber', token),\n postSubscriber: (data, token) =>\n createPostRequest('Subscriber', data, token),\n updateAccount: (subId, data, token) =>\n createPostRequest(`Subscriber/${subId}/Roles`, data, token, false),\n updatePassword: (subId, data, token) =>\n createPostRequest(`Subscriber/${subId}/Password`, data, token, false),\n deleteSubscriber: (id, token) =>\n createDeleteRequest(`Subscriber/${id}`, token),\n // Nivå 3 config.\n getPresentations: (data, token) =>\n createPostRequest('Presentation/getall', data, token),\n postPresentations: (data, token) =>\n createPostRequest('Presentation/breakbys', data, token),\n };\n};\n\nconst ApiService = Api();\nexport default ApiService;\n","import { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useCookies } from 'react-cookie';\nimport ApiService from 'services/ApiService';\n\nconst MESSAGES = {\n '/': 'Start',\n '/enkel': 'Nivå 2',\n '/avancerad': 'Nivå 3',\n};\n\nconst getRandomSeconds = (low, high) =>\n (Math.floor(Math.random() * high) + low) * 1000;\n\nconst VisitorCounter = ({ path, user }) => {\n const [cookies] = useCookies(['statistics']);\n\n useEffect(() => {\n let active = true;\n const request = { message: MESSAGES[path] || path };\n\n setTimeout(() => {\n // Only send statistic data if user allowed it\n if (active && cookies.statistics === 'allow') {\n ApiService.sendVistitorStats(request, user.token).then(() => {});\n }\n }, getRandomSeconds(10, 15));\n\n return () => {\n active = false;\n };\n }, [path, user, cookies.statistics]);\n return null;\n};\n\nVisitorCounter.propTypes = {\n path: PropTypes.string.isRequired,\n user: PropTypes.shape({}).isRequired,\n};\n\nexport default VisitorCounter;\n","/* eslint-disable react/prop-types */\nimport React, { useState, useContext, createContext } from 'react';\nimport { Route, Redirect } from 'react-router-dom';\nimport VisitorCounter from 'atoms/visitorcounter/VisitorCounter';\nimport ApiService from './ApiService';\n\nconst authContext = createContext();\n\nexport const useAuth = () => {\n return useContext(authContext);\n};\n\nfunction useProvideAuth() {\n // If there's a user in localStorage, the state will set it's initial value to that on mount.\n // Or else null.\n const [user, setUser] = useState(JSON.parse(localStorage.getItem('user')));\n\n const decodeUser = usr => {\n const data = usr.token.split('.')[1];\n const decodedJsonData = window.atob(data);\n const decodedData = JSON.parse(decodedJsonData);\n\n // FIXME: Anpassa när/om role-propertyn byter namn till role.\n return {\n token: usr.token,\n forbund: decodedData.fk,\n unionId: decodedData.unionid ? decodedData.unionid : '',\n role:\n decodedData[\n 'http://schemas.microsoft.com/ws/2008/06/identity/claims/role'\n ],\n exp: decodedData.exp,\n };\n };\n\n const signout = () => {\n // FIXME: User blir 'false' när man loggar ut? Borde kanske bli undefined/null.\n setUser(false);\n localStorage.removeItem('user');\n };\n\n const signin = (subscriberId, password, forbundsKodAdmin) => {\n return ApiService.login({ subscriberId, password, forbundsKodAdmin })\n .then(usr => {\n const decodedUser = decodeUser(usr);\n setUser(decodedUser);\n localStorage.setItem('user', JSON.stringify(decodedUser));\n })\n .catch(error => {\n throw error;\n });\n };\n\n const tokenSignin = (token, browser, device) => {\n return ApiService.tokenLogin({ token, browser, device }, signout)\n .then(usr => {\n const decodedUser = decodeUser(usr);\n setUser(decodedUser);\n localStorage.setItem('user', JSON.stringify(decodedUser));\n })\n .catch(error => {\n throw error;\n });\n };\n\n const forbundSignin = (forbundsId, browser, device) => {\n return ApiService.forbundsKodLogin({ forbundsId, browser, device })\n .then(usr => {\n const decodedUser = decodeUser(usr);\n setUser(decodedUser);\n localStorage.setItem('user', JSON.stringify(decodedUser));\n })\n .catch(error => {\n throw error;\n });\n };\n\n const storeUser = usr => {\n const decodedUser = decodeUser(usr);\n setUser(decodedUser);\n localStorage.setItem('user', JSON.stringify(decodedUser));\n };\n\n const autoRefreshToken = (token, minutes = 15) => {\n if (!token || !user) return;\n\n const now = new Date();\n const soon = new Date(now.getTime() + minutes * 60000);\n\n const decodedUser = decodeUser(user);\n\n // exp value comes in a shorter format for some reason\n const expires = new Date(decodedUser?.exp * 1000);\n const expiresSoon =\n now.getTime() <= expires.getTime() && soon.getTime() > expires.getTime();\n\n if (!expiresSoon) return;\n\n // use custom admin refresh endpoint, use current forbund\n if (user.role === 'admin') {\n ApiService.refreshAdminToken(\n { token, forbundsKodAdmin: user.forbund },\n token\n ).then(data => {\n storeUser(data);\n });\n return;\n }\n\n ApiService.tokenLogin({ token }).then(data => {\n storeUser(data);\n });\n };\n\n return {\n user,\n signin,\n storeUser,\n decodeUser,\n tokenSignin,\n forbundSignin,\n autoRefreshToken,\n signout,\n };\n}\n\nexport function ProvideAuth({ children }) {\n const auth = useProvideAuth();\n return {children};\n}\n\nexport const PrivateRoute = ({ component: Component, ...rest }) => {\n const { user } = useAuth();\n return (\n \n user ? (\n <>\n \n \n \n ) : (\n \n )\n }\n />\n );\n};\n\nexport const AdminRoute = ({\n component: Component,\n restrict = false,\n ...rest\n}) => {\n const { user } = useAuth();\n return (\n {\n if (\n user &&\n (user.role === 'admin' || (!restrict && user.role === 'redaktor'))\n ) {\n return ;\n }\n if (user) {\n return (\n \n );\n }\n return (\n \n );\n }}\n />\n );\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './Banner.module.css';\n\nconst Banner = ({ user }) => {\n document.title = 'Saco lönesök';\n return (\n
\n
\n
\n

Välkommen till Saco lönesök!

\n {user?.role === 'fortroendevald' ? (\n

\n Som förtroendevald har du tillgång till tre års lönestatistik och\n flera uppgifter.\n

\n ) : (\n

\n Lönesök finns i två olika varianter, en enkel och en avancerad.\n Den enkla sökningen är till för dig som vill ha en snabb överblick\n av ditt löneläge, medan du i den avancerade sökningen kan fördjupa\n dig i all tillgänglig lönestatistik.\n

\n )}\n
\n
\n
\n );\n};\n\nBanner.propTypes = {\n user: PropTypes.shape({\n role: PropTypes.string,\n }).isRequired,\n};\n\nexport default Banner;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n IconX,\n IconChevronDown,\n IconPlus,\n IconFileDownload,\n IconHelp,\n IconMinus,\n} from 'tabler-icons';\nimport styles from './ButtonLink.module.css';\n\nconst ButtonLink = ({\n className,\n label,\n altText,\n icon,\n large,\n menuItem,\n lastChild,\n accordionItem,\n disabled,\n onClick,\n style,\n}) => {\n const buttonClassName = className && className !== '' ? className : '';\n const buttonIsLarge = large ? `${styles.isLarge}` : '';\n const buttonIsMenuItem = menuItem ? `${styles.isMenuItem}` : '';\n const buttonIsAccordionItem = accordionItem\n ? `${styles.isAccordionItem}`\n : '';\n const buttonIsLastChild = lastChild ? `${styles.isLastChild}` : '';\n const computedAltText = altText && altText !== '' ? altText : label;\n\n let buttonIcon;\n if (icon && icon === 'Help') {\n buttonIcon = (\n \n );\n } else if (icon && icon === 'Download') {\n buttonIcon = ;\n } else if (icon && icon === 'Plus') {\n buttonIcon = ;\n } else if (icon && icon === 'Minus') {\n buttonIcon = ;\n } else if (icon && icon === 'ChevronDown') {\n if (buttonIsLarge) {\n buttonIcon = (\n \n );\n } else {\n buttonIcon = ;\n }\n } else if (icon && icon === 'X') {\n buttonIcon = ;\n }\n\n return (\n \n {buttonIcon}\n {label}\n \n );\n};\n\nButtonLink.propTypes = {\n label: PropTypes.string.isRequired,\n altText: PropTypes.string,\n className: PropTypes.string,\n icon: PropTypes.string,\n large: PropTypes.bool,\n menuItem: PropTypes.bool,\n lastChild: PropTypes.bool,\n accordionItem: PropTypes.bool,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n style: PropTypes.shape({}),\n};\n\nButtonLink.defaultProps = {\n altText: '',\n className: '',\n icon: '',\n large: false,\n menuItem: false,\n lastChild: false,\n accordionItem: false,\n disabled: false,\n onClick: () => {},\n style: undefined,\n};\n\nexport default ButtonLink;\n","import { useState, useRef, useEffect } from 'react';\n\nexport default function useVisible(initialIsVisible) {\n const [isVisible, setIsVisible] = useState(initialIsVisible);\n const ref = useRef(null);\n\n const handleClickOutside = event => {\n if (ref.current && !ref.current.contains(event.target)) {\n setIsVisible(false);\n }\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClickOutside, true);\n return () => {\n document.removeEventListener('click', handleClickOutside, true);\n };\n }, []);\n\n return { ref, isVisible, setIsVisible };\n}\n","import React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport ButtonLink from 'atoms/buttonlink/ButtonLink';\nimport { useAuth } from 'services/UseAuth';\nimport useVisible from 'hooks/useVisible';\nimport styles from './Menu.module.css';\n\nconst Menu = () => {\n const { ref, isVisible: showMenu, setIsVisible: setShowMenu } = useVisible(\n false\n );\n\n const { user } = useAuth();\n const history = useHistory();\n\n const goToPage = page => {\n setShowMenu(false);\n history.push(page);\n };\n\n const logout = () => {\n setShowMenu(false);\n history.push('/logga-ut');\n };\n\n return (\n
\n {user && (\n <>\n setShowMenu(!showMenu)}\n />\n\n {showMenu && (\n
\n goToPage('/enkel')}\n />\n goToPage('/avancerad')}\n />\n\n goToPage('/#om-saco-lonesok')}\n />\n goToPage('/#teknisk-info')}\n />\n {(user.role === 'admin' || user.role === 'redaktor') && (\n goToPage('/admin/nivå2')}\n />\n )}\n logout()}\n />\n
\n )}\n \n )}\n
\n );\n};\n\nexport default Menu;\n","/* eslint-disable camelcase */\nimport React, { useState, useEffect, useCallback } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { useAuth } from 'services/UseAuth';\nimport ApiService from 'services/ApiService';\nimport Banner from './banner/Banner';\nimport styles from './Header.module.css';\nimport Menu from './menu/Menu';\n\nconst fallbackUnion = {\n name: 'Saco lönesök',\n forbundskodSas: 'default',\n};\n\nconst Header = () => {\n const [imageLoadError, setImageLoadError] = useState(true);\n const [forbundList, setForbundList] = useState([]);\n const [union, setUnion] = useState(fallbackUnion);\n\n const location = useLocation();\n const { user } = useAuth();\n\n const path = `${process.env.PUBLIC_URL}/union_logotypes`;\n\n const getLogoSrc = str => `${path}/${str.toLowerCase()}_logo.svg`;\n\n const setFallbackSrc = e => {\n const { forbundskodSas, name } = fallbackUnion;\n if (imageLoadError) {\n setImageLoadError(false);\n e.target.src = getLogoSrc(forbundskodSas);\n e.target.title = name;\n e.target.alt = `${name} logotyp`;\n }\n };\n\n const getUnion = useCallback(() => {\n if (user) {\n const foundUnion = forbundList.find(\n d => d.forbundskodSas.toLowerCase() === user.forbund.toLowerCase()\n );\n\n if (foundUnion) {\n return foundUnion;\n }\n }\n return fallbackUnion;\n }, [user, forbundList]);\n\n useEffect(() => {\n if (forbundList.length === 0) return;\n setUnion(getUnion(forbundList));\n }, [forbundList, getUnion]);\n\n // Initially, get list of forbund\n useEffect(() => {\n if (user == null || forbundList.length !== 0) return;\n ApiService.getUnions(user.token).then(data => {\n setForbundList(\n data.sort((a, b) => `${a.name}`.localeCompare(b.name, 'sv'))\n );\n });\n }, [user, forbundList]);\n\n return (\n <>\n {location.pathname.includes('Instruktionsfilm') ||\n location.pathname.includes('oppensokning') ||\n location.pathname.toLowerCase().includes('unemploymentspin') ||\n location.pathname.includes('careerspin') ||\n location.pathname.toLowerCase().includes('parentalleavespin') ? (\n <>\n ) : (\n
\n
\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n {location.pathname === '/' && }\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n )}\n \n );\n};\n\nexport default Header;\n","import React from 'react';\nimport { bool, shape, string } from 'prop-types';\nimport styles from './UnionLink.module.css';\n\nexport default function UnionLink({ unionLink, capitalize }) {\n return (\n <>\n {unionLink ? (\n \n {capitalize ? 'K' : 'k'}ontakta {unionLink.header}\n \n ) : (\n `${capitalize ? 'K' : 'k'}ontakta ditt förbund`\n )}{' '}\n \n );\n}\n\nUnionLink.propTypes = {\n unionLink: shape({\n value: string,\n header: string,\n }),\n capitalize: bool,\n};\n\nUnionLink.defaultProps = {\n unionLink: null,\n capitalize: false,\n};\n","import UnionLink from 'atoms/unionlink/UnionLink';\nimport React, { useEffect, useState } from 'react';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport Logo from '../../testdata/saco-lonesok_logotype.svg';\nimport styles from './Footer.module.css';\nimport { useLocation } from 'react-router-dom';\n\nconst Footer = () => {\n const { user } = useAuth();\n const token = user?.token;\n const location = useLocation();\n const { pathname } = location;\n const showLogo =\n pathname === '/inloggning-info' ||\n pathname === '/logga-ut' ||\n pathname === '/logga-in';\n\n const [unionLink, setUnionLink] = useState();\n\n useEffect(() => {\n if (!token) return;\n const request = [\n {\n groupId: 'unionLink',\n textId: ['unionLink'],\n },\n ];\n\n ApiService.getTexts(request, token).then(data => {\n if (data && data[0]) return setUnionLink(data[0]);\n return setUnionLink();\n });\n }, [token]);\n\n return (\n <>\n {location.pathname.includes('Instruktionsfilm') ||\n location.pathname.includes('oppensokning') ||\n location.pathname.toLowerCase().includes('unemploymentspin') ||\n location.pathname.includes('careerspin') ||\n location.pathname.toLowerCase().includes('parentalleavespin') ? (\n <>\n ) : (\n
\n
\n
\n
\n

Har du frågor?

\n

\n om du har\n frågor om uppgifterna i lönestatistiken.\n

\n
\n {!showLogo && (\n
\n
\n \n
\n
\n )}\n
\n
\n
\n )}\n \n );\n};\n\nexport default Footer;\n","import React from 'react';\nimport AppSettings from '../../appsettings.json';\n\nconst PageErrorProvocation = () => {\n const ENVIRONMENT = AppSettings.APP_ENVIRONMENT;\n\n if (ENVIRONMENT !== 'production') {\n // Komponentens innehåll för att provocera fram ett fel i utvecklingsmiljön\n throw new Error('This is an error for testing purposes.');\n }\n\n // Returnera null om det är produktion\n return null;\n};\n\nexport default PageErrorProvocation;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport { IconChevronRight } from 'tabler-icons';\nimport styles from './AnalysisCard.module.css';\n\nconst AnalysisCard = ({ description, link, title, type }) => {\n const path = `${process.env.PUBLIC_URL}/illustrations`;\n\n return (\n \n \n

{title}

\n

{description}

\n \n Gå vidare\n \n \n \n );\n};\n\nAnalysisCard.propTypes = {\n description: PropTypes.string.isRequired,\n link: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n type: PropTypes.oneOf(['simple', 'advanced']).isRequired,\n};\n\nexport default AnalysisCard;\n","/* eslint-disable react/no-array-index-key, react/no-danger */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport marked from 'marked/lib/marked';\nimport DOMPurify from 'dompurify';\nimport styles from './ExplanationText.module.css';\n\nconst getMarkdownText = value => {\n const rawMarkup = marked.parse(value.replace(/\\n/, '
'));\n return { __html: DOMPurify.sanitize(rawMarkup) };\n};\n\nconst ExplanationText = ({ textItem: { value } }) => (\n \n);\n\nExplanationText.propTypes = {\n textItem: PropTypes.shape({\n id: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default ExplanationText;\n","import { useRef, useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\n\nconst useScrollTo = (id, callback) => {\n const location = useLocation();\n const ref = useRef();\n\n useEffect(() => {\n if (ref.current && location.hash === `#${id}`) {\n ref.current.scrollIntoView({ behavior: 'smooth' });\n\n if(callback) {\n callback();\n }\n }\n // eslint-disable-next-line\n }, [location, id]);\n\n return ref;\n};\n\nexport default useScrollTo;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './ButtonTransparent.module.css';\n\nconst ButtonTransparent = ({\n children,\n altText,\n className,\n disabled,\n onClick,\n style,\n}) => {\n const buttonClassName = className && className !== '' ? className : '';\n return (\n \n {children}\n \n );\n};\n\nButtonTransparent.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]).isRequired,\n className: PropTypes.string,\n altText: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n style: PropTypes.shape({}),\n};\n\nButtonTransparent.defaultProps = {\n className: undefined,\n disabled: false,\n onClick: () => {},\n style: undefined,\n};\n\nexport default ButtonTransparent;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport useScrollTo from 'hooks/useScrollTo';\nimport { IconChevronDown, IconChevronUp } from 'tabler-icons';\nimport styles from './Accordion.module.css';\nimport ButtonTransparent from '../buttontransparent/ButtonTransparent';\n\nconst Accordion = ({\n border,\n boxShadow,\n children,\n className,\n close,\n dark,\n disabled,\n id,\n initialOpen,\n marginBottom,\n onClick,\n slim,\n stacked,\n title,\n}) => {\n const [open, setOpen] = useState(initialOpen);\n\n const ref = useScrollTo(id, () => {\n setOpen(true);\n onClick();\n });\n\n useEffect(() => {\n if (close) setOpen(false);\n }, [close]);\n\n // TODO: Maybe change this variable name\n // It does'nt imply interactivity.. but at the same time it serves two purposes.. ¯\\_(ツ)_/¯\n useEffect(() => {\n if (initialOpen) setOpen(true);\n }, [initialOpen]);\n\n return (\n \n
\n \n {\n setOpen(prevState => !prevState);\n onClick();\n }}\n /* eslint-disable-next-line react/jsx-props-no-spreading */\n {...(dark && {\n style: { backgroundColor: 'var(--bg-grey-darker)' },\n })}\n >\n {title}\n {open ? (\n \n ) : (\n \n )}\n \n \n <>\n \n {children}\n \n \n
\n \n );\n};\n\nAccordion.propTypes = {\n border: PropTypes.bool,\n boxShadow: PropTypes.bool,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]).isRequired,\n className: PropTypes.string,\n close: PropTypes.bool,\n dark: PropTypes.bool,\n disabled: PropTypes.bool,\n id: PropTypes.string,\n initialOpen: PropTypes.bool,\n marginBottom: PropTypes.bool,\n onClick: PropTypes.func,\n slim: PropTypes.bool,\n stacked: PropTypes.bool,\n title: PropTypes.string.isRequired,\n};\n\nAccordion.defaultProps = {\n border: false,\n boxShadow: false,\n className: '',\n close: false,\n dark: false,\n disabled: false,\n id: '',\n initialOpen: false,\n marginBottom: false,\n onClick: () => {},\n slim: false,\n stacked: false,\n};\n\nexport default Accordion;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport ExplanationText from 'atoms/explanationtext/ExplanationText';\nimport styles from './About.module.css';\nimport Accordion from '../../../atoms/accordion/Accordion';\nimport useScrollTo from '../../../hooks/useScrollTo';\n\nconst About = ({ id }) => {\n const [aboutText, setAboutText] = useState('');\n const ref = useScrollTo(id);\n\n const { user } = useAuth();\n\n useEffect(() => {\n const request = [\n {\n groupId: 'about',\n },\n ];\n\n ApiService.getTexts(request, user.token).then(data => {\n setAboutText(\n data.find(txt => txt.groupId === 'about' && txt.textId === 'main')\n );\n });\n // eslint-disable-next-line\n }, []);\n\n return (\n
\n
\n \n {aboutText && }\n \n
\n
\n );\n};\n\nAbout.propTypes = {\n id: PropTypes.string.isRequired,\n};\n\nexport default About;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport useScrollTo from 'hooks/useScrollTo';\nimport styles from './PrivacyPolicy.module.css';\nimport Accordion from '../../../atoms/accordion/Accordion';\n\nconst TechnicalInformation = ({ id }) => {\n const ref = useScrollTo(id);\n\n return (\n
\n
\n \n

Integritetspolicy

\n

\n Uppgifterna i Saco lönesök består av anonymiserad data. Det innebär\n att det inte finns några personuppgifter i underlaget som används\n för lönestatistiken. För att visa statistik måste det finnas minst\n 30 observationer per förbund. Lönesök visar aldrig enskilda löner.\n

\n

\n För att du ska kunna vara inloggad i Saco lönesök och för att\n lönesök ska kunna hålla reda på vilket förbund besökaren tillhör,\n används cookies.\n

\n

Besöksstatistiken som Saco lönesök sparar:

\n
    \n
  • Vilket förbund besökaren tillhör.
  • \n
  • Vilken tid besökaren använder tjänsten.
  • \n
  • Om besökaren är medlem eller förtroendevald.
  • \n
  • Vilken del av tjänsten besökaren använder.
  • \n
  • Vilken webbläsare besökaren använder.
  • \n
  • Vilken enhet besökaren använder (desktop eller mobil).
  • \n
\n

Saco lönesök sparar inga personuppgifter.

\n

Teknisk information

\n

Rekommenderade webbläsare för Saco lönesök:

\n
\n Microsoft Edge (rekommenderad minimum version 107.0.1418.35)\n
\n
Google Chrome (rekommenderad minimum version 107.0.5304)
\n
Apple Safari (rekommenderad minimum version 15)
\n

\n Har du tekniska frågor eller hittat fel i systemet? Hör gärna av dig\n till{' '}\n \n lonesok@saco.se\n \n .\n

\n
\n
\n
\n );\n};\n\nTechnicalInformation.propTypes = {\n id: PropTypes.string.isRequired,\n};\n\nexport default TechnicalInformation;\n","import React from 'react';\nimport AnalysisCard from 'components/start/analysiscard/AnalysisCard';\nimport About from 'components/start/about/About';\nimport TechnicalInformation from 'components/start/privacypolicy/TechnicalInformation';\nimport styles from './PageStart.module.css';\n\nconst PageStart = () => {\n return (\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n );\n};\n\nexport default PageStart;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport styles from './BreadcrumbsItem.module.css';\n\nconst BreadcrumbsItem = ({ match, index, ...rest }) => {\n const routes = {\n '/': 'Start',\n '/enkel': 'Enkel',\n '/avancerad': 'Avancerad',\n '/for-utvecklare': 'För utvecklare',\n '/byte-av-port': 'För utvecklare - byte av port',\n '/bli-medlem': 'Enkel (gratis)',\n };\n\n const routeName = routes[match.url];\n if (match.isExact) {\n document.title = `${routeName} - Saco lönesök`;\n }\n\n return (\n
  • \n {index !== 0 && ' / '}\n {match.isExact ? (\n

    {routeName}

    \n ) : (\n \n {routeName}\n \n )}\n
  • \n );\n};\n\nBreadcrumbsItem.propTypes = {\n match: PropTypes.shape({\n isExact: PropTypes.bool,\n params: PropTypes.shape({}),\n path: PropTypes.string,\n url: PropTypes.string,\n }).isRequired,\n index: PropTypes.number.isRequired,\n};\n\nexport default BreadcrumbsItem;\n","import React from 'react';\nimport { Route, useLocation } from 'react-router-dom';\nimport BreadcrumbsItem from './breadcrumbsitem/BreadcrumbsItem';\nimport styles from './Breadcrumbs.module.css';\n\nconst Breadcrumbs = () => {\n const getPaths = str => {\n const pathList = ['/'];\n\n if (str === '/') return pathList;\n\n str.split('/').reduce((prev, curr) => {\n const currPath = `${prev}/${curr}`;\n pathList.push(currPath);\n return currPath;\n });\n\n return pathList;\n };\n\n const { pathname } = useLocation();\n const paths = getPaths(pathname);\n\n return (\n \n );\n};\n\nexport default Breadcrumbs;\n","/* eslint-disable camelcase */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport useScrollTo from 'hooks/useScrollTo';\nimport styles from './Section.module.css';\n\nconst Section = ({ title, children, className, dashed, id }) => {\n const ref = useScrollTo(id);\n const extraClasses = className && className !== '' ? className : '';\n return (\n \n {title !== '' && (\n

    \n {title}\n

    \n )}\n {children}\n \n );\n};\n\nSection.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]).isRequired,\n id: PropTypes.string,\n className: PropTypes.string,\n title: PropTypes.string,\n dashed: PropTypes.bool,\n};\n\nSection.defaultProps = {\n id: '',\n title: '',\n className: '',\n dashed: false,\n};\n\nexport default Section;\n","// Returns array of numbers\n// \"1200 - 1299\" => [1200, 1299]\n// \" > 200000\" => [0, 200000]\n// \" < 5\" => [0, 5]\nexport function numberOfRespondents(str) {\n if (!str || typeof str !== 'string') return [0, 0];\n\n const splitChars = ['-', '<', '>'];\n\n let result = [];\n\n splitChars.forEach(char => {\n const found = str.search(char);\n\n if (found > -1) {\n const numbers = str.split(char);\n if (numbers.length > 1) {\n result = [Number(numbers[0]), Number(numbers[1])];\n } else {\n result = [0, 0];\n }\n }\n });\n\n return result;\n}\n\n// Returns boolean based on number of respondents\n// enoughRespondents(\"1200 - 1299\", 30) => true\nexport function enoughRespondents(str, limit) {\n if (!str || typeof str !== 'string') return false;\n const numbers = str.split('-');\n return Number(numbers[0]) >= limit;\n}\n\n// Returns antal string formatted to Swedish locale\n// \"1200 - 1299\" => \"1 200 - 1 299\"\nexport function formatRespondents(str) {\n if (!str || typeof str !== 'string') return '–';\n const numbers = str.split('-');\n if (numbers.length < 2) return str;\n return `${Number(numbers[0]).toLocaleString('sv')}–${Number(\n numbers[1]\n ).toLocaleString('sv')}`;\n}\n\nfunction roundToNearest(number, nearest, direction) {\n if (direction === 'up') return Math.ceil(number / nearest) * nearest;\n if (direction === 'down') return Math.floor(number / nearest) * nearest;\n return Math.round(number / nearest) * nearest;\n}\n\n// Contains hard coded numbers to round to, just to imitate the censoring of respondents\n// that is going on inside of sas.\n\n// Returns a censored range of respondents\n// 12349 => \"12 300 - 12 399\"\nexport function censorReponsondants(number) {\n if (number < 1) return '';\n if (number < 5) return '< 5';\n if (number < 16) return '5–15';\n if (number < 30) return '16–29';\n if (number < 50) return '30–49';\n if (number < 100) return '50–99';\n if (number < 150) return '100–149';\n\n return `${roundToNearest(number - 1, 100, 'down').toLocaleString('sv')}–${(\n roundToNearest(number, 100, 'up') - 1\n ).toLocaleString('sv')}`;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { IconUser } from 'tabler-icons';\nimport styles from './SalaryInterval.module.css';\n\nconst SalaryInterval = ({ salaryLimit, salaryMid, selectedSalary }) => {\n const calcPercent = salary => {\n const a = salaryLimit[1] - salaryLimit[0];\n const b = salary - salaryLimit[0];\n\n let c = (b / a) * 100;\n\n // TODO: Någon bättre smooth overgång inte att allting bara blir max/min.\n if (c < -7) c = -7;\n if (c > 107) c = 107;\n\n return `${c}%`;\n };\n\n const dinLonPercentage = calcPercent(selectedSalary);\n const salaryMidPercent = calcPercent(salaryMid);\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n \n {selectedSalary && (\n \n
    \n \n
    \n
    \n )}\n
    \n
    \n
    \n
    \n

    \n {Number(salaryLimit[0]).toLocaleString('sv')} kr.\n

    \n
    \n
    \n \n
    \n

    Din lön

    \n
    \n

    Medellön

    \n
    \n

    \n {Number(salaryLimit[1]).toLocaleString('sv')} kr.\n

    \n
    \n
    \n );\n};\n\nSalaryInterval.propTypes = {\n salaryLimit: PropTypes.arrayOf(Number).isRequired,\n salaryMid: PropTypes.number.isRequired,\n selectedSalary: PropTypes.string,\n};\n\nSalaryInterval.defaultProps = {\n selectedSalary: null,\n};\n\nexport default SalaryInterval;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { IconChevronRight } from 'tabler-icons';\nimport styles from './ExternalLink.module.css';\n\nfunction ExternalLink({ header, value }) {\n return (\n \n {header}\n \n \n );\n}\n\nExternalLink.propTypes = {\n header: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n};\n\nexport default ExternalLink;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Section from 'atoms/section/Section';\nimport { censorReponsondants } from 'lib/antal';\nimport { Link } from 'react-router-dom';\nimport { IconChevronRight } from 'tabler-icons';\nimport { useAuth } from 'services/UseAuth';\nimport ApiService from 'services/ApiService';\nimport UnionLink from 'atoms/unionlink/UnionLink';\nimport SalaryInterval from './salaryinterval/SalaryInterval';\nimport ExternalLink from '../externallink/ExternalLink';\nimport styles from './SalaryAnalysis.module.css';\n\nconst SalaryAnalysis = ({\n currentRespondents,\n salaryData,\n selectedSalary,\n salaryLimit,\n links,\n variant,\n}) => {\n const {\n user: { token },\n } = useAuth();\n\n const [unionLink, setUnionLink] = useState();\n\n useEffect(() => {\n const request = [\n {\n groupId: 'unionLink',\n textId: ['unionLink'],\n },\n ];\n\n ApiService.getTexts(request, token).then(data => {\n if (data && data[0]) return setUnionLink(data[0]);\n return setUnionLink();\n });\n }, [token]);\n\n const salary = {\n number: selectedSalary,\n string: {Number(selectedSalary).toLocaleString('sv')},\n };\n\n const average = {\n number: salaryData.lon_medel,\n string: (\n <>\n {salaryData.lon_medel.toLocaleString('sv')} kronor per månad.\n \n ),\n };\n\n const overAverage = salary.number > average.number;\n\n const SalaryDisclaimerString = () => {\n return (\n

    \n Det finns många faktorer som påverkar din lön. Använd{' '}\n Saco lönesöks avancerade sökning för att se\n mer detaljerad statistik eller för\n en personlig lönerådgivning.{' '}\n

    \n );\n };\n\n return (\n
    \n
    \n \n

    \n Medellönen för urvalet är {average.string}{' '}\n {selectedSalary && (\n <>\n Din lön om {salary.string} kronor ligger{' '}\n {overAverage ? 'över' : 'under'} medellönen.\n \n )}\n

    \n
      \n
    • \n 80 % har en lön mellan{' '}\n \n {`${salaryLimit[0].toLocaleString(\n 'sv'\n )}–${salaryLimit[1].toLocaleString('sv')}`}\n {' '}\n kronor.\n
    • \n
    • \n 10 % har en lön som är lägre än{' '}\n {salaryLimit[0].toLocaleString('sv')} kronor.\n
    • \n
    • \n 10 % har en lön som är högre än{' '}\n {salaryLimit[1].toLocaleString('sv')} kronor.\n
    • \n
    \n {currentRespondents && (\n

    \n Ditt urval består av uppgifter från{' '}\n {censorReponsondants(currentRespondents)} medlemmar.\n

    \n )}\n {variant === 'simple' && SalaryDisclaimerString()}\n
    \n\n {variant === 'simple' && (\n
    \n {links &&\n links[0] &&\n links.map(({ header, id, value }) => (\n \n ))}\n \n Jag vill veta mer, ta mig till Saco lönesöks avancerade sökning!\n \n \n
    \n )}\n
    \n );\n};\n\nSalaryAnalysis.propTypes = {\n currentRespondents: PropTypes.number,\n salaryData: PropTypes.shape(Object).isRequired,\n selectedSalary: PropTypes.string,\n salaryLimit: PropTypes.arrayOf(Number).isRequired,\n links: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n groupId: PropTypes.string.isRequired,\n textId: PropTypes.string.isRequired,\n unionId: PropTypes.string.isRequired,\n header: PropTypes.string.isRequired,\n isDefault: PropTypes.bool.isRequired,\n value: PropTypes.string.isRequired,\n })\n ),\n variant: PropTypes.oneOf(['free', 'simple']),\n};\n\nSalaryAnalysis.defaultProps = {\n currentRespondents: null,\n selectedSalary: null,\n links: [],\n variant: 'free',\n};\n\nexport default SalaryAnalysis;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './RadioButton.module.css';\n\nconst RadioButton = ({ disabled, value, name, onChange, checked }) => {\n return (\n
    \n \n \n \n \n
    \n );\n};\n\nRadioButton.propTypes = {\n disabled: PropTypes.bool.isRequired,\n name: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n checked: PropTypes.bool.isRequired,\n};\n\nexport default RadioButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ButtonTransparent from 'atoms/buttontransparent/ButtonTransparent';\nimport RadioButton from 'atoms/radiobutton/RadioButton';\nimport styles from './SelectionCard.module.css';\n\nconst SelectionCard = ({\n description,\n index,\n label,\n loading,\n name,\n selectedSituation,\n selectionChange,\n value,\n}) => {\n const selected = index === selectedSituation?.index;\n const disabled = selected || loading;\n const describedby = `${name}-${value}`;\n\n return (\n
    \n {\n if (e.key === 'Enter' || e.key === ' ') {\n selectionChange(e.target.value);\n }\n }}\n disabled={loading}\n >\n \n
    \n selectionChange(e.target.value)}\n disabled={disabled}\n value={value}\n name={name}\n checked={selected}\n />\n
    \n
    \n {label}\n

    {description}

    \n
    \n \n \n
    \n );\n};\n\nSelectionCard.propTypes = {\n description: PropTypes.string.isRequired,\n index: PropTypes.number.isRequired,\n label: PropTypes.string.isRequired,\n loading: PropTypes.bool.isRequired,\n name: PropTypes.string.isRequired,\n selectedSituation: PropTypes.shape({ index: PropTypes.number }),\n selectionChange: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n};\n\nSelectionCard.defaultProps = {\n selectedSituation: undefined,\n};\n\nexport default SelectionCard;\n","/* eslint-disable react/jsx-curly-newline */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Section from 'atoms/section/Section';\nimport SelectionCard from '../selectioncard/SelectionCard';\nimport styles from './Situation.module.css';\n\nconst Situation = ({\n loading,\n situations,\n setSelectedSituation,\n selectedSituation,\n}) => {\n return (\n
    \n
    \n \n Välj den situation som passar dig bäst\n \n
    \n {situations\n .sort((a, b) => a.name.localeCompare(b.name))\n .sort((a, b) => {\n if (a.DSL2.toLowerCase() === 'df') return -1;\n if (b.DSL2.toLowerCase() !== 'df') return 1;\n return 0;\n })\n .map((situation, index) => (\n \n setSelectedSituation({\n index,\n DSL1: situation.DSL1,\n DSL2: situation.DSL2,\n year: situation.year,\n })\n }\n value={`wage${index}`}\n />\n ))}\n
    \n
    \n
    \n );\n};\n\nSituation.propTypes = {\n selectedSituation: PropTypes.shape({ index: PropTypes.number }),\n loading: PropTypes.bool.isRequired,\n situations: PropTypes.arrayOf(Object).isRequired,\n setSelectedSituation: PropTypes.func.isRequired,\n};\n\nSituation.defaultProps = {\n selectedSituation: undefined,\n};\nexport default Situation;\n","import PropTypes from 'prop-types';\nimport React, { forwardRef } from 'react';\nimport styles from './Input.module.css';\n\nconst Input = forwardRef(\n (\n {\n autoComplete,\n className,\n disabled,\n id,\n label,\n onChange,\n onBlur, // Lägg till onBlur här\n placeholder,\n type,\n value,\n max,\n min,\n minLength,\n step,\n title,\n pattern,\n displayInline,\n },\n ref\n ) => {\n return (\n \n {label && (\n \n {`${label}:`}\n \n )}\n \n
    \n );\n }\n);\n\nInput.propTypes = {\n autoComplete: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n displayInline: PropTypes.bool,\n disabled: PropTypes.bool,\n id: PropTypes.string.isRequired,\n label: PropTypes.string,\n max: PropTypes.number,\n min: PropTypes.number,\n minLength: PropTypes.number,\n onChange: PropTypes.func,\n onBlur: PropTypes.func, // Lägg till onBlur här\n pattern: PropTypes.string,\n placeholder: PropTypes.string,\n step: PropTypes.number,\n title: PropTypes.string,\n type: PropTypes.oneOf(['text', 'number', 'password']),\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n};\n\nInput.defaultProps = {\n autoComplete: 'on',\n className: '',\n displayInline: false,\n disabled: false,\n label: '',\n placeholder: null,\n type: 'text',\n value: '',\n max: null,\n min: null,\n minLength: null,\n step: null,\n title: null,\n pattern: null,\n onChange: () => {},\n onBlur: () => {}, // Lägg till onBlur här\n};\n\nexport default Input;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './Slider.module.css';\n\nfunction Slider({ id, max, min, changeFunction, step, value }) {\n return (\n changeFunction(e.target.value)}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={value}\n onInput={e => changeFunction(e.target.value)}\n name={id}\n id={id}\n aria-label=\"Löneslider\"\n onKeyUp={e => {\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n changeFunction(e.target.value);\n }\n }}\n tabIndex=\"0\"\n />\n );\n}\n\nSlider.propTypes = {\n id: PropTypes.string.isRequired,\n max: PropTypes.number.isRequired,\n min: PropTypes.number.isRequired,\n changeFunction: PropTypes.func.isRequired,\n step: PropTypes.number.isRequired,\n value: PropTypes.string.isRequired,\n};\n\nexport default Slider;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Input from 'atoms/input/Input';\nimport Section from 'atoms/section/Section';\nimport styles from './SalarySlider.module.css';\nimport Slider from './slider/Slider';\n\nconst SalarySlider = ({ selectedSalary, setSelectedSalary, salaryLimit }) => {\n const min = salaryLimit[0] - 5000 >= 20000 ? 20000 : 10000;\n const max = salaryLimit[1] + 20000;\n const step = 100;\n const now = selectedSalary || '';\n\n return (\n <>\n

    Din lön

    \n
    \n
    \n
    \n setSelectedSalary(e.target.value)}\n step={step}\n type=\"number\"\n value={now}\n displayInline\n />\n kronor per månad\n
    \n \n
    \n
    \n \n );\n};\n\nSalarySlider.propTypes = {\n selectedSalary: PropTypes.string,\n setSelectedSalary: PropTypes.func.isRequired,\n salaryLimit: PropTypes.arrayOf(Number).isRequired,\n};\n\nSalarySlider.defaultProps = {\n selectedSalary: null,\n};\n\nexport default SalarySlider;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { IconX} from 'tabler-icons';\nimport styles from './ButtonActiveFilter.module.css';\n\nconst ButtonActiveFilter = ({\n label,\n className,\n disabled,\n onClick,\n style,\n}) => {\n const buttonClassName = className && className !== '' ? `${styles[className]}` : '';\n\n return (\n \n {label}\n \n \n );\n};\n\nButtonActiveFilter.propTypes = {\n label: PropTypes.string.isRequired,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n style: PropTypes.shape({}),\n};\n\nButtonActiveFilter.defaultProps = {\n className: undefined,\n disabled: false,\n onClick: () => {},\n style: undefined,\n};\n\nexport default ButtonActiveFilter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ButtonActiveFilter from 'atoms/buttonactivefilter/ButtonActiveFilter';\nimport styles from './ActiveFilters.module.css';\n\nconst FilterString = (item, index, length) => {\n if (length === 1 || index === 0) {\n return item.desc;\n }\n if (index === length - 1) {\n return ` & ${item.desc}`;\n }\n return `, ${item.desc}`;\n};\n\nconst ActiveFilters = ({\n activeFilters,\n disableMenuselection,\n setActiveFilters,\n variant,\n}) => {\n const removeFilterOption = (f, filterOption) => {\n const index = activeFilters.findIndex(\n filter => filter.sel_var === f.sel_var\n );\n\n const filterToUpdate = activeFilters[index];\n\n filterToUpdate.values = filterToUpdate.values.filter(\n filter => filter.value !== filterOption.value\n );\n\n if (filterToUpdate) {\n setActiveFilters(prevState => {\n const tempState = [...prevState];\n tempState[index] = filterToUpdate;\n return tempState.filter(element => element.values.length > 0);\n });\n return;\n }\n\n setActiveFilters(prevState => [\n ...prevState.filter(prev => prev.sel_var !== f.sel_var),\n filterToUpdate,\n ]);\n };\n\n return (\n
    \n \n {variant === 'simple' ? 'Gjorda urval: ' : 'Valda filter: '}\n \n {activeFilters.map(f => (\n
    \n {`${f.name}:`}\n {variant === 'simple' ? (\n \n {f.values.map((s, index, { length }) => (\n \n {FilterString(s, index, length)}\n \n ))}\n \n ) : (\n f.values.map(s => {\n return (\n \n removeFilterOption(f, s)}\n />\n \n );\n })\n )}\n
    \n ))}\n
    \n );\n};\n\nActiveFilters.propTypes = {\n activeFilters: PropTypes.arrayOf(Object).isRequired,\n disableMenuselection: PropTypes.bool.isRequired,\n setActiveFilters: PropTypes.func.isRequired,\n variant: PropTypes.oneOf(['simple', 'advanced']),\n};\n\nActiveFilters.defaultProps = {\n variant: 'advanced',\n};\n\nexport default ActiveFilters;\n","/* eslint-disable camelcase */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { formatRespondents } from 'lib/antal';\nimport styles from './Checkbox.module.css';\n\nconst Checkbox = ({\n checked,\n disabled,\n item,\n loading,\n onChange,\n variant,\n className,\n}) => {\n const { antal, description, value, sel_var } = item;\n\n return (\n \n
    \n
    {description}
    \n
    \n

    \n {variant === 'secondary' && 'Antal uppgifter: '}\n {formatRespondents(antal)}\n

    \n
    \n
    \n \n \n \n \n \n );\n};\n\nCheckbox.propTypes = {\n checked: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool.isRequired,\n item: PropTypes.shape({\n antal: PropTypes.string.isRequired,\n description: PropTypes.string,\n sel_var: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n }).isRequired,\n loading: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n variant: PropTypes.oneOf(['primary', 'secondary']).isRequired,\n};\n\nCheckbox.defaultProps = {\n className: '',\n checked: undefined,\n loading: false,\n};\n\nexport default Checkbox;\n","/* eslint-disable camelcase */\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Checkbox from 'atoms/checkbox/Checkbox';\nimport Accordion from 'atoms/accordion/Accordion';\nimport styles from './CheckboxSelectGroup.module.css';\n\nconst CheckboxSelectGroup = ({\n loading,\n itemIndex,\n options,\n sel_var,\n SELECTION_DATATYPE,\n SELECTION_TEXT,\n setSelectedValues,\n selectedValues,\n}) => {\n const [values, setValues] = useState(\n options.map(option => ({\n ...option,\n checked: false,\n }))\n );\n console.log('setValues');\n console.log(values);\n console.log('options');\n console.log(options);\n\n useEffect(() => {\n if (\n options.some(\n option =>\n option.antal !== values.find(v => v.value === option.value).antal\n )\n ) {\n console.log('useEffect options');\n setValues(prevState => {\n return options.map(option => {\n const matching = prevState.find(prev => prev.value === option.value);\n return {\n ...option,\n checked: matching.checked || false,\n };\n });\n });\n }\n }, [options]);\n\n const handleChange = event => {\n event.persist();\n const { value, checked } = event.target;\n console.log('handleChange Event value:');\n console.log(value);\n setValues(prevState => [\n ...prevState.map(option => {\n if (option.value === value) {\n return { ...option, checked };\n }\n return option;\n }),\n ]);\n };\n\n // FIXME: The checkbox values are a little too decoupled from selectedValues\n useEffect(() => {\n // Reset if nothing selected\n if (!selectedValues.length) {\n setValues(prevState =>\n prevState.map(option => ({ ...option, checked: false }))\n );\n }\n }, [selectedValues]);\n\n useEffect(() => {\n const tempValues = values\n .filter(option => option.checked)\n .map(option => ({\n value: option.value,\n antal: option.antal,\n desc: option.description,\n }));\n\n setSelectedValues(prevState => {\n const item = prevState.find(o => o.valKey === sel_var);\n const tempState = [...prevState];\n\n if (item && tempValues.length > 0) {\n tempState[prevState.indexOf(item)] = {\n ...item,\n values: tempValues,\n };\n return tempState;\n }\n\n if (!item && tempValues.length > 0) {\n return [\n ...prevState,\n {\n name: SELECTION_TEXT,\n valKey: sel_var,\n sel_var,\n selection_datatype: SELECTION_DATATYPE,\n values: tempValues,\n },\n ];\n }\n\n if (item && tempValues.length < 1) {\n return [\n ...prevState.filter(o => JSON.stringify(o) !== JSON.stringify(item)),\n ];\n }\n return prevState;\n });\n\n console.log('Selected values:');\n console.log(selectedValues);\n // eslint-disable-next-line\n }, [values]);\n\n return (\n option.antal !== ' < 5') ? '' : styles.mobileEmpty\n }\n >\n
    \n
    \n Antal uppgifter\n
    \n {values.map(item => (\n \n ))}\n
    \n \n );\n};\n\nCheckboxSelectGroup.propTypes = {\n loading: PropTypes.bool.isRequired,\n itemIndex: PropTypes.number.isRequired,\n options: PropTypes.arrayOf(Object).isRequired,\n sel_var: PropTypes.string.isRequired,\n SELECTION_DATATYPE: PropTypes.string.isRequired,\n SELECTION_TEXT: PropTypes.string.isRequired,\n setSelectedValues: PropTypes.func.isRequired,\n selectedValues: PropTypes.arrayOf(Object),\n};\n\nCheckboxSelectGroup.defaultProps = {\n selectedValues: [],\n};\n\nexport default CheckboxSelectGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Section from 'atoms/section/Section';\nimport ActiveFilters from 'components/advanced/activefilters/ActiveFilters';\nimport ButtonLink from 'atoms/buttonlink/ButtonLink';\nimport CheckboxSelectGroup from '../checkboxselectgroup/CheckboxSelectGroup';\nimport styles from './SalaryProfile.module.css';\n\nconst SalaryProfile = ({\n loading,\n dataSources,\n selectedValues,\n selectionList,\n setSelectedValues,\n}) => {\n const forbundToString = str => {\n if (!str) return '';\n if (str.toLowerCase() === 'sa') {\n return 'samtliga Sacoförbund';\n }\n\n return 'ditt förbund';\n };\n\n return (\n
    \n {dataSources.length > 0 && (\n

    \n {`Statistiken du ser baseras på ${\n dataSources[0].YEAR\n } års uppgifter från ${forbundToString(dataSources[0].FORBUND)}.`}\n

    \n )}\n {selectionList.map((listItem, index) => (\n
    \n
    \n \n
    \n
    \n ))}\n {selectedValues.length > 0 && (\n <>\n \n {\n setSelectedValues([]);\n }}\n />\n \n )}\n
    \n );\n};\n\nSalaryProfile.propTypes = {\n dataSources: PropTypes.arrayOf(Object),\n loading: PropTypes.bool.isRequired,\n selectedValues: PropTypes.arrayOf(String).isRequired,\n selectionList: PropTypes.arrayOf(Object).isRequired,\n setSelectedValues: PropTypes.func.isRequired,\n};\n\nSalaryProfile.defaultProps = {\n dataSources: [],\n};\n\nexport default SalaryProfile;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './Loader.module.css';\n\nconst Loader = ({ variant, small, className }) => {\n const color = variant === 'primary' ? '#99d2d9' : '#DA8BBA';\n const extraClasses = className && className !== '' ? className : '';\n return (\n \n
    \n
    \n
    \n
    \n );\n};\n\nLoader.propTypes = {\n variant: PropTypes.oneOf(['primary', 'secondary']).isRequired,\n small: PropTypes.bool,\n className: PropTypes.string,\n};\n\nLoader.defaultProps = {\n small: false,\n className: '',\n};\n\nexport default Loader;\n","// Checks if option value is \"empty\"\nexport default function isEmpty(value) {\n return value === '.' || value === '';\n}\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ApiService from '../../services/ApiService';\nimport styles from './Notification.module.css';\n\nconst Notification = ({ token, forbund, niva, dataSource }) => {\n const [notifications, setNotifications] = useState([]);\n const [filteredNotifications, setFilteredNotifications] = useState([]);\n\n useEffect(() => {\n ApiService.getTextsBoth(\n [\n {\n groupId: 'notifications',\n unionId: [null, forbund],\n },\n ],\n token\n )\n .then(data => data.map(t => ({ ...t, textId: JSON.parse(t.textId) })))\n .then(data => setNotifications(data))\n .catch(error => {});\n // eslint-disable-next-line\n }, [token]);\n\n useEffect(() => {\n const { dsl1, dsl2, year } = dataSource;\n if (notifications.length) {\n setFilteredNotifications(\n notifications.filter(\n t =>\n (dataSource.forbund === 'SA' ? !t.unionId : !!t.unionId) &&\n (!t.textId.niva || niva === t.textId.niva) &&\n (!t.textId.dsl1 || dsl1 === t.textId.dsl1) &&\n (!t.textId.dsl2 || dsl2 === t.textId.dsl2) &&\n (!t.textId.year || year === Number(t.textId.year))\n )\n );\n }\n }, [notifications, dataSource, niva]);\n\n if (!notifications.length || !filteredNotifications.length) return null;\n return (\n
    \n {filteredNotifications.length &&\n filteredNotifications.map(t => (\n

    \n {t.value}\n

    \n ))}\n
    \n );\n};\n\nNotification.propTypes = {\n token: PropTypes.string.isRequired,\n forbund: PropTypes.string,\n niva: PropTypes.string.isRequired,\n dataSource: PropTypes.shape({\n forbund: PropTypes.string,\n dsl1: PropTypes.string,\n dsl2: PropTypes.string,\n year: PropTypes.number,\n }),\n};\n\nNotification.defaultProps = {\n forbund: '',\n dataSource: {\n forbund: 'SA',\n dsl1: null,\n dsl2: '',\n year: null,\n },\n};\n\nexport default Notification;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useAuth } from '../../services/UseAuth';\nimport ApiService from '../../services/ApiService';\nimport styles from './ErrorNotification.module.css';\n\nconst ErrorNotification = ({ token, forbund, niva, dataSource }) => {\n const [errornotifications, setErrorNotifications] = useState([]);\n const { user } = useAuth();\n useEffect(() => {\n console.log('Errornotification');\n ApiService.getMonitoringLogs(\n {\n niva: niva,\n unionId: user.unionId,\n },\n token\n )\n .then(data => setErrorNotifications(data))\n .catch(error => {});\n }, [token]);\n\n useEffect(() => {\n console.log('Errornotifications:');\n console.log(errornotifications);\n }, [errornotifications]);\n\n // return (\n //
    \n //
    \n //

    Error notification content

    \n //
    \n //
    \n // );\n\n return (\n
    \n {errornotifications && errornotifications.hasErrors && (\n
    \n {/* Visa din felnotis här */}\n

    \n Ett tillfälligt systemfel har uppstått. Vi jobbar på att lösa det så\n snabbt som möjligt. Vänligen försök igen senare.\n

    \n
    \n )}\n
    \n );\n};\n\nErrorNotification.propTypes = {\n token: PropTypes.string.isRequired,\n forbund: PropTypes.string,\n niva: PropTypes.string.isRequired,\n dataSource: PropTypes.shape({\n forbund: PropTypes.string,\n dsl1: PropTypes.string,\n dsl2: PropTypes.string,\n year: PropTypes.number,\n }),\n};\n\nErrorNotification.defaultProps = {\n forbund: '',\n dataSource: {\n forbund: 'SA',\n dsl1: null,\n dsl2: '',\n year: null,\n },\n};\n\nexport default ErrorNotification;\n","/* eslint-disable camelcase */\nimport React, { useState, useEffect, useCallback } from 'react';\nimport Breadcrumbs from 'atoms/breadcrumbs/Breadcrumbs';\nimport SalaryAnalysis from 'components/simple/salaryanalysis/SalaryAnalysis';\nimport Situation from 'components/simple/situation/Situation';\nimport SalarySlider from 'components/simple/salaryslider/SalarySlider';\nimport SalaryProfile from 'components/simple/salaryprofile/SalaryProfile';\nimport Loader from 'atoms/loader/Loader';\nimport ApiService from 'services/ApiService';\nimport { useHistory } from 'react-router-dom';\nimport { useAuth } from 'services/UseAuth';\nimport { numberOfRespondents } from 'lib/antal';\nimport isEmpty from 'lib/emptyValues';\nimport styles from './PageSimple.module.css';\nimport Notification from '../../atoms/notification/Notification';\nimport ErrorNotification from '../../atoms/errornotification/ErrorNotification';\n\n// FIXME: När en situation väljs görs en onödig request till menuselection.\nconst PageSimple = () => {\n const [dataSources, setDataSources] = useState([]);\n\n const [selectionList, setSelectionList] = useState([]);\n const [selectedSalary, setSelectedSalary] = useState();\n\n const [selectedValues, setSelectedValues] = useState([]);\n const [selectedSituation, setSelectedSituation] = useState();\n const [situations, setSituations] = useState();\n\n const [salaryData, setSalaryData] = useState();\n const [salaryLimit, setSalaryLimit] = useState([]);\n const [hasErrors, setHasErrors] = useState(false);\n const [isLoadingReport, setIsLoadingReport] = useState(false);\n\n const [totalRespondents, setTotalRespondents] = useState();\n const [currentRespondents, setCurrentRespondents] = useState();\n\n const [disableMenuselection, setDisableMenuselection] = useState(false);\n\n const [links, setLinks] = useState([]);\n\n const [, setState] = useState();\n\n const { user, signout, autoRefreshToken } = useAuth();\n const { token, forbund } = user;\n\n const history = useHistory();\n\n // TODO: Handle network errors\n const handleError = useCallback(\n error => {\n if (error.status === 401) {\n signout();\n history.push('/logga-ut');\n } else {\n setState(() => {\n throw error;\n });\n }\n },\n [signout, history]\n );\n\n useEffect(() => {\n if (!selectedSituation) return;\n\n // FIXME: Borde nollställa variabler som beror på val.\n setSelectedValues([]);\n setSalaryData(null);\n setSelectionList(\n situations[selectedSituation.index].selections\n .filter(selection => selection.isActive)\n .map(selection => {\n const options = selection.options\n .filter(opt => !isEmpty(opt.value))\n .sort((a, b) =>\n selection.sortOptionsByNumber\n ? Number(a.value) - Number(b.value)\n : a.description.localeCompare(b.description, 'sv')\n );\n return {\n ...selection,\n options,\n };\n })\n .sort((a, b) => a.SELECTION_ORDER - b.SELECTION_ORDER)\n );\n // eslint-disable-next-line\n }, [selectedSituation, situations]);\n\n // Get menu selections if selectedValues changes\n // Also get report\n useEffect(() => {\n if (!selectedSituation) return;\n setDisableMenuselection(true);\n let filter;\n\n if (selectedValues.length > 0) {\n filter = selectedValues.map(selectedValue => {\n const s = selectedValue.values.reduce((acc, curr) => {\n return `${\n selectedValue.selection_datatype === 'N'\n ? curr.value\n : `'${curr.value}'`\n }${acc ? `, ${acc}` : ''}`;\n }, null);\n\n return `${selectedValue.sel_var} in (${s})`;\n });\n }\n\n const request = {\n Forbund: forbund,\n Dsl1: selectedSituation.DSL1,\n Dsl2: selectedSituation.DSL2,\n Year: selectedSituation.year,\n filter,\n };\n\n ApiService.getMenuselections(request, token)\n .then(data => {\n const selVars = selectionList.map(selection => selection.sel_var);\n const filters = data\n .filter(obj => selVars.includes(obj.sel_var))\n .reduce((acc, curr) => {\n acc[curr.sel_var] = [...(acc[curr.sel_var] || []), curr];\n return acc;\n }, {});\n\n const filterObjects = Object.values(filters).map(obj => ({\n // TODO: Se över om datamodellen ska ändras\n // Då slipper man göra följande map\n options: obj\n .map(o => {\n const newObj = o;\n newObj.description = newObj.desc;\n return newObj;\n })\n // Rensar tomma värden, dom som heter Okänd/Inget värde.\n .filter(opt => !isEmpty(opt.value)),\n SELECTION_TEXT: obj[0].SELECTION_TEXT,\n sel_var: obj[0].sel_var,\n SELECTION_ORDER: obj[0].SELECTION_ORDER,\n SELECTION_DATATYPE: obj[0].SELECTION_DATATYPE,\n }));\n\n setSelectionList(prevState => {\n return prevState.map(prevItem => {\n const matchingItem = filterObjects.find(\n filterItem => filterItem.sel_var === prevItem.sel_var\n );\n if (matchingItem) {\n matchingItem.id = prevItem.id;\n matchingItem.isActive = prevItem.isActive;\n matchingItem.sortOptionsByNumber = prevItem.sortOptionsByNumber;\n matchingItem.options = matchingItem.options.sort((a, b) =>\n matchingItem.sortOptionsByNumber\n ? Number(a.value) - Number(b.value)\n : a.description.localeCompare(b.description, 'sv')\n );\n return matchingItem;\n }\n return prevItem;\n });\n });\n })\n .catch(error => handleError(error))\n .finally(() => setDisableMenuselection(false));\n\n ApiService.getReport(request, token)\n .then(data => {\n // TODO: Bättre felhantering.\n // Kolla igenom resultatdata och se om vi har något att visa.\n const { lon_p10, lon_p90, lon_medel } = data[0];\n if (\n data.length === 0 ||\n [lon_p10, lon_p90, lon_medel].some(item => item == null)\n ) {\n setHasErrors(true);\n setSalaryLimit([]);\n setSalaryData(null);\n } else {\n setHasErrors(false);\n setSalaryLimit([data[0].lon_p10, data[0].lon_p90]);\n setSalaryData(data[0]);\n }\n })\n // See if token is about to expire and keep the session alive\n .then(() => autoRefreshToken(token))\n .catch(error => handleError(error))\n .finally(() => setIsLoadingReport(false));\n // eslint-disable-next-line\n }, [selectedValues]);\n\n // Get total respondents and report for selected situation\n useEffect(() => {\n if (selectedSituation) {\n const request = {\n forbund: [user.forbund],\n year: selectedSituation.year,\n dsl1: selectedSituation.DSL1,\n dsl2: selectedSituation.DSL2,\n };\n\n ApiService.getFds(request, token).then(data => {\n setDataSources(data);\n const total = data.reduce((a, b) => a + b.total, 0);\n setTotalRespondents(total);\n setCurrentRespondents(total);\n });\n\n if (user == null) return;\n const linkRequest = [\n {\n groupId: 'level2link',\n },\n ];\n ApiService.getTexts(linkRequest, token).then(data => setLinks(data));\n }\n // eslint-disable-next-line\n }, [selectedSituation]);\n\n // Set current respondents when selectedValues changes\n // TODO: Refactor this code\n useEffect(() => {\n if (selectedValues.length > 0) {\n const { values, sel_var } = selectedValues[selectedValues.length - 1];\n const matchingItem = selectionList.find(\n selection => selection.sel_var === sel_var\n );\n const listOfValues = values.map(val => val.value);\n const actualValues = matchingItem.options.filter(val =>\n listOfValues.includes(val.value)\n );\n const current = actualValues.reduce((a, b) => {\n const low = numberOfRespondents(b.antal)[0];\n const high = numberOfRespondents(b.antal)[1];\n const diff = (high - low) / 2;\n\n if (Number(low) && Number(high)) {\n return a + low + diff;\n }\n\n return a;\n }, 0);\n setCurrentRespondents(current);\n } else {\n setCurrentRespondents(totalRespondents);\n }\n }, [selectionList, selectedValues, totalRespondents]);\n\n // Initial setup.\n useEffect(() => {\n ApiService.getSituations(token)\n .then(data => {\n const activeSituations = data.filter(d => d.isActive);\n setSituations(activeSituations);\n if (activeSituations.length === 1) {\n setSelectedSituation({\n index: 0,\n DSL1: activeSituations[0].DSL1,\n DSL2: activeSituations[0].DSL2,\n year: activeSituations[0].year,\n });\n }\n })\n .catch(error => handleError(error));\n\n window.scrollTo(0, 0);\n // eslint-disable-next-line\n }, []);\n\n return (\n
    \n
    \n \n \n
    \n \n
    \n
    \n {situations ? (\n <>\n {situations.length > 1 && (\n \n )}\n \n ) : (\n
    \n \n
    \n )}\n\n {selectedSituation && (\n <>\n {totalRespondents > 0 && currentRespondents > 0 ? (\n \n ) : (\n
    \n \n
    \n )}\n \n )}\n\n {salaryData &&\n !hasErrors &&\n totalRespondents > 0 &&\n currentRespondents > 0 && (\n <>\n {!hasErrors && (\n
    \n {isLoadingReport && (\n
    \n \n
    \n )}\n {!isLoadingReport && salaryData && (\n <>\n
    \n \n
    \n \n \n )}\n
    \n )}\n \n )}\n {hasErrors && (\n <>\n
    \n Urvalet gav inga resultat, testa sök bredare.\n
    \n \n )}\n
    \n
    \n
    \n );\n};\n\nexport default PageSimple;\n","import React from 'react';\nimport styles from './SellingPoints.module.css';\n\nconst SellingPoints = () => {\n return (\n
    \n
    \n

    Bli medlem för statistik i toppklass

    \n

    \n För att kunna föra en bra lönediskussion måste man kunna lita på sina\n argument. Då behöver man högkvalitativ lönestatistik att luta sig mot.\n Det får du med Saco lönesök, som bygger på löneuppgifter från över 370\n 000 akademiker.\n

    \n

    \n I Saco lönesök kan du kan göra lönejämförelser för att se hur\n ingångslönerna eller löneutvecklingen ser ut, både för din egen\n utbildning, ditt yrke och/eller för andra yrkesgrupper. Du kan också\n bryta ner statistiken på olika åldersgrupper, examensår, befattningar,\n regioner och arbetsmarknadssektorer.\n

    \n

    Som medlem får du tillgång till:

    \n
      \n
    • Branschspecifik lönestatistik från arbetsgivare och medlemmar
    • \n
    • Möjlighet till analys i två nivåer
    • \n
        \n
      • Enkel
      • \n
      • Avancerad
      • \n
      \n
    • Möjlighet att spara dina resultat
    • \n
    \n
    \n
    \n );\n};\n\nexport default SellingPoints;\n","import React from 'react';\nimport styles from './Welcome.module.css';\n\nconst Welcome = () => {\n return (\n
    \n

    Välkommen!

    \n

    \n Har du koll på ditt löneläge? Med Saco lönesök får du tillgång till\n Sveriges bästa lönestatistik för akademiker. Saco lönesök är flexibelt\n och ger dig stora möjligheter att anpassa lönestatistik utifrån ditt\n unika behov. Använd Saco lönesök inför ditt lönesamtal, innan du tackar\n ja till ett nytt jobb och när du funderar på att byta bransch, roll\n eller yrke. Lönestatistik är ditt främsta verktyg i löneförhandlingen.\n

    \n

    \n Nedan kan du göra en grov uppskattning av ditt löneläge. För att få\n tillgång till hela Saco lönesök behöver du vara medlem i ett\n Sacoförbund.\n

    \n
    \n );\n};\n\nexport default Welcome;\n","/* eslint-disable camelcase */\nimport React, { useState, useEffect, useCallback } from 'react';\nimport { Child } from 'pym.js';\nimport SalaryAnalysis from 'components/simple/salaryanalysis/SalaryAnalysis';\nimport Situation from 'components/simple/situation/Situation';\nimport SalarySlider from 'components/simple/salaryslider/SalarySlider';\nimport SalaryProfile from 'components/simple/salaryprofile/SalaryProfile';\nimport Loader from 'atoms/loader/Loader';\nimport ApiService from 'services/ApiService';\nimport SellingPoints from 'components/simple/sellingpoints/SellingPoints';\nimport ExternalLink from 'components/simple/externallink/ExternalLink';\nimport Welcome from 'components/simple/welcome/Welcome';\nimport isEmpty from 'lib/emptyValues';\nimport { useAuth } from 'services/UseAuth';\nimport { useHistory } from 'react-router-dom';\nimport styles from './PageSimple.module.css';\n\nconst PageSimpleFree = () => {\n const [selectionList, setSelectionList] = useState([]);\n const [selectedSalary, setSelectedSalary] = useState();\n\n const [selectedValues, setSelectedValues] = useState([]);\n const [selectedSituation, setSelectedSituation] = useState();\n const [situations, setSituations] = useState();\n\n const [salaryData, setSalaryData] = useState();\n const [salaryLimit, setSalaryLimit] = useState([]);\n const [hasErrors, setHasErrors] = useState(false);\n const [isLoadingReport, setIsLoadingReport] = useState(false);\n\n const [links, setLinks] = useState([]);\n\n const [disableMenuselection, setDisableMenuselection] = useState(false);\n\n const [, setState] = useState();\n\n const { signout } = useAuth();\n const history = useHistory();\n\n // TODO: Handle network errors\n const handleError = useCallback(\n error => {\n if (error.status === 401) {\n signout();\n history.push('/logga-ut');\n } else {\n setState(() => {\n throw error;\n });\n }\n },\n [signout, history]\n );\n\n // This page is included as an iframe\n useEffect(() => {\n let pymChild = new Child({ polling: 1000 });\n pymChild.sendHeight();\n\n return () => {\n pymChild = null;\n };\n }, []);\n\n useEffect(() => {\n if (!selectedSituation) return;\n\n // FIXME: Borde nollställa variabler som beror på val.\n setSelectedValues([]);\n setSalaryData(null);\n setSelectionList(\n situations[selectedSituation.index].selections\n .filter(selection => selection.isActive)\n .map(selection => ({\n ...selection,\n // filter out \"empty\" options initially\n options: selection.options.filter(opt => !isEmpty(opt.value)),\n }))\n .sort((a, b) => a.SELECTION_ORDER - b.SELECTION_ORDER)\n );\n }, [selectedSituation, situations]);\n\n // Get menu selections if selectedValues changes\n // Also get report\n useEffect(() => {\n if (!selectedSituation) return;\n setDisableMenuselection(true);\n let filter;\n\n if (selectedValues.length > 0) {\n filter = selectedValues.map(selectedValue => {\n const s = selectedValue.values.reduce((acc, curr) => {\n return `${\n selectedValue.selection_datatype === 'N'\n ? curr.value\n : `'${curr.value}'`\n }${acc ? `, ${acc}` : ''}`;\n }, null);\n\n return `${selectedValue.sel_var} in (${s})`;\n });\n }\n\n const request = {\n Dsl1: selectedSituation.DSL1,\n Dsl2: selectedSituation.DSL2,\n Year: selectedSituation.year,\n filter,\n };\n\n ApiService.getMenuselectionsFree(request)\n .then(data => {\n const selVars = selectionList.map(selection => selection.sel_var);\n const filters = data\n .filter(obj => selVars.includes(obj.sel_var))\n .reduce((acc, curr) => {\n acc[curr.sel_var] = [...(acc[curr.sel_var] || []), curr];\n return acc;\n }, {});\n\n const filterObjects = Object.values(filters).map(obj => ({\n // TODO: Se över om datamodellen ska ändras\n // Då slipper man göra följande map\n options: obj\n .map(o => {\n const newObj = o;\n newObj.description = newObj.desc;\n return newObj;\n })\n // Rensar tomma värden, dom som heter Okänd/Inget värde.\n .filter(opt => !isEmpty(opt.value)),\n SELECTION_TEXT: obj[0].SELECTION_TEXT,\n sel_var: obj[0].sel_var,\n SELECTION_ORDER: obj[0].SELECTION_ORDER,\n SELECTION_DATATYPE: obj[0].SELECTION_DATATYPE,\n }));\n\n setSelectionList(prevState => {\n return prevState.map(prevItem => {\n const matchingItem = filterObjects.find(\n filterItem => filterItem.sel_var === prevItem.sel_var\n );\n if (matchingItem) {\n matchingItem.id = prevItem.id;\n matchingItem.isActive = prevItem.isActive;\n return matchingItem;\n }\n return prevState;\n });\n });\n })\n .catch(error => handleError(error))\n .finally(() => setDisableMenuselection(false));\n\n ApiService.getReportFree(request)\n .then(data => {\n // TODO: Bättre felhantering.\n // Kolla igenom resultatdata och se om vi har något att visa.\n const { lon_p10, lon_p90, lon_medel } = data[0];\n if (\n data.length === 0 ||\n [lon_p10, lon_p90, lon_medel].some(item => item == null)\n ) {\n setHasErrors(true);\n setSalaryLimit([]);\n setSalaryData(null);\n } else {\n setHasErrors(false);\n setSalaryLimit([data[0].lon_p10, data[0].lon_p90]);\n setSalaryData(data[0]);\n }\n })\n .catch(error => handleError(error))\n .finally(() => setIsLoadingReport(false));\n // eslint-disable-next-line\n }, [handleError, selectedValues]);\n\n // Initial setup (situations and links).\n useEffect(() => {\n ApiService.getSituationsFree()\n .then(data => {\n const activeSituations = data.filter(d => d.isActive);\n setSituations(activeSituations);\n if (activeSituations.length === 1) {\n setSelectedSituation({\n index: 0,\n DSL1: activeSituations[0].DSL1,\n DSL2: activeSituations[0].DSL2,\n year: activeSituations[0].year,\n });\n }\n })\n .catch(error => handleError(error));\n const linkRequest = [\n {\n groupId: 'level1link',\n },\n ];\n ApiService.getTexts(linkRequest).then(data => setLinks(data));\n }, [handleError]);\n\n return (\n
    \n
    \n {/*
    \n \n
    */}\n
    \n \n {situations ? (\n <>\n {situations.length > 1 && (\n \n )}\n \n ) : (\n
    \n \n
    \n )}\n\n {selectedSituation && (\n \n )}\n\n {salaryData && !hasErrors && (\n <>\n {!hasErrors && (\n
    \n {isLoadingReport && (\n
    \n \n
    \n )}\n {!isLoadingReport && salaryData && (\n <>\n
    \n \n
    \n \n \n )}\n
    \n )}\n \n )}\n {hasErrors && (\n <>\n
    \n Urvalet gav inga resultat, testa sök bredare.\n
    \n \n )}\n
    \n \n {links[0] &&\n links.map(({ header, id, value }) => (\n \n ))}\n
    \n
    \n );\n};\n\nexport default PageSimpleFree;\n","export default function downloadExcel(\n name,\n endpoint,\n errorFunction,\n payload,\n token\n) {\n // TODO: Access response headers and read fileName from there\n const fileName = `${name}_${new Date().toLocaleDateString('sv')}.xlsx`;\n\n // Download excel file\n endpoint(payload, token)\n .then(res => res.blob())\n .then(blob => {\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = fileName;\n document.body.appendChild(a); // we need to append the element to the dom -> otherwise it will not work in firefox\n a.click();\n a.remove(); // afterwards we remove the element again\n })\n .catch(error => errorFunction(error));\n}\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ButtonLink from 'atoms/buttonlink/ButtonLink';\nimport { useAuth } from 'services/UseAuth';\nimport ApiService from 'services/ApiService';\nimport { useHistory } from 'react-router-dom';\nimport downloadExcel from 'lib/excel';\nimport styles from './DownloadExcel.module.css';\n\nconst DownloadExcel = ({ \n selectedPresentation, \n tableData, \n activeFilters, \n activeDataSource, \n dataSources, \n measureVar\n}) => {\n // TODO: Accept null for fields?\n // Would reflect the actual table html better\n const { DSL1_DESC, DSL2_DESC, FORBUND, YEAR } = activeDataSource && dataSources.find(\n source =>\n source.FORBUND === activeDataSource.forbund &&\n source.DSL1 === activeDataSource.dsl1 &&\n source.DSL2 === activeDataSource.dsl2 &&\n source.YEAR === activeDataSource.year\n );\n\n const request = {\n breakby1Header: selectedPresentation[0]\n ? selectedPresentation[0]?.REPORT_TEXT\n : null,\n breakby2Header: selectedPresentation[1]\n ? selectedPresentation[1]?.REPORT_TEXT\n : null,\n lonereport: tableData\n .sort((row1, row2) => row2._TYPE_ - row1._TYPE_) // eslint-disable-line no-underscore-dangle\n .map(row => row._TYPE_ === 0 ? {...row, breakby1: \"Samtliga\"} : row), // eslint-disable-line no-underscore-dangle\n\n dataSource: {\n forbund: FORBUND,\n dsl1: DSL1_DESC,\n dsl2: DSL2_DESC,\n year: YEAR\n },\n filters: activeFilters.map(f => { return {name: f.name, values: f.values.map(x => x.desc)}}),\n measureVar\n }\n const isData = request.lonereport.length > 0;\n\n const [, setState] = useState();\n\n const { user, signout } = useAuth();\n\n const history = useHistory();\n\n // TODO: Better error handling?\n const handleError = error => {\n if (error.status === 401) {\n signout();\n history.push('/logga-ut');\n } else {\n setState(() => {\n throw error;\n });\n }\n };\n\n return (\n {\n downloadExcel(\n 'Report',\n ApiService.getReportExcel,\n handleError,\n request,\n user.token\n );\n }}\n />\n );\n};\n\nDownloadExcel.propTypes = {\n selectedPresentation: PropTypes.arrayOf(Object),\n tableData: PropTypes.arrayOf(Object),\n activeDataSource: PropTypes.shape({\n forbund: PropTypes.string,\n dsl1: PropTypes.string,\n dsl2: PropTypes.string,\n year: PropTypes.number,\n }),\n dataSources: PropTypes.arrayOf(Object),\n activeFilters: PropTypes.arrayOf(Object),\n measureVar: PropTypes.string.isRequired\n};\n\nDownloadExcel.defaultProps = {\n selectedPresentation: null,\n tableData: [],\n dataSources: [],\n activeDataSource: {},\n activeFilters: [],\n};\n\nexport default DownloadExcel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ButtonLink from 'atoms/buttonlink/ButtonLink';\nimport useVisible from 'hooks/useVisible';\nimport styles from './DownloadSection.module.css';\nimport DownloadExcel from './downloadexcel/DownloadExcel';\n\nconst DownloadSection = ({\n selectedPresentation,\n tableData,\n activeDataSource,\n activeFilters,\n dataSources,\n measureVar,\n}) => {\n const {\n ref,\n isVisible: showOptions,\n setIsVisible: setShowOptions,\n } = useVisible(false);\n\n return (\n
    \n setShowOptions(!showOptions)}\n />\n {showOptions && (\n
    \n \n
    \n )}\n
    \n );\n};\n\nDownloadSection.propTypes = {\n selectedPresentation: PropTypes.arrayOf(Object),\n tableData: PropTypes.arrayOf(Object),\n activeDataSource: PropTypes.shape({\n forbund: PropTypes.string,\n dsl1: PropTypes.string,\n dsl2: PropTypes.string,\n year: PropTypes.number,\n }).isRequired,\n dataSources: PropTypes.arrayOf(Object),\n activeFilters: PropTypes.arrayOf(Object),\n measureVar: PropTypes.string.isRequired,\n};\n\nDownloadSection.defaultProps = {\n tableData: [],\n selectedPresentation: null,\n dataSources: [],\n activeFilters: [],\n};\n\nexport default DownloadSection;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Breadcrumbs from 'atoms/breadcrumbs/Breadcrumbs';\nimport styles from './ToolBar.module.css';\nimport DownloadSection from './downloadsection/DownloadSection';\n\nconst ToolBar = ({\n selectedPresentation,\n tableData,\n activeFilters,\n activeDataSource,\n dataSources,\n measureVar,\n}) => {\n return (\n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nToolBar.propTypes = {\n selectedPresentation: PropTypes.arrayOf(Object),\n tableData: PropTypes.arrayOf(Object),\n activeDataSource: PropTypes.shape({\n forbund: PropTypes.string,\n dsl1: PropTypes.string,\n dsl2: PropTypes.string,\n year: PropTypes.number,\n }),\n dataSources: PropTypes.arrayOf(Object),\n activeFilters: PropTypes.arrayOf(Object),\n measureVar: PropTypes.string.isRequired,\n};\n\nToolBar.defaultProps = {\n selectedPresentation: null,\n tableData: [],\n dataSources: [],\n activeDataSource: {},\n activeFilters: [],\n};\n\nexport default ToolBar;\n","/* eslint-disable camelcase */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Checkbox from 'atoms/checkbox/Checkbox';\nimport styles from './FilterItem.module.css';\n\nconst FilterItem = ({\n activeFilters,\n disableMenuselection,\n handleSelectedFilters,\n listItem,\n}) => {\n return (\n
    \n {listItem.list.map(item => {\n const { sel_var, value, selectable, antal } = item;\n return (\n activeFilter.sel_var === sel_var)\n .some(activeFilter =>\n activeFilter.values.some(\n filterValue => filterValue.value === value\n )\n )}\n disabled={disableMenuselection || !selectable || antal === ' < 5'}\n item={item}\n key={sel_var + value}\n onChange={() => handleSelectedFilters(item)}\n variant=\"secondary\"\n className={antal === ' < 5' ? styles.greyed : ''}\n />\n );\n })}\n
    \n );\n};\n\nFilterItem.propTypes = {\n activeFilters: PropTypes.arrayOf(Object).isRequired,\n disableMenuselection: PropTypes.bool.isRequired,\n handleSelectedFilters: PropTypes.func.isRequired,\n listItem: PropTypes.shape({\n list: PropTypes.arrayOf(\n PropTypes.shape({\n sel_var: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n selectable: PropTypes.bool,\n antal: PropTypes.string,\n })\n ),\n }).isRequired,\n};\n\nexport default FilterItem;\n","import Accordion from 'atoms/accordion/Accordion';\nimport ButtonLink from 'atoms/buttonlink/ButtonLink';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport FilterItem from './filteritem/FilterItem';\nimport styles from './FilterList.module.css';\n\nconst FILTER_LIMIT = 4;\n\nconst FilterList = ({\n filterList,\n activeFilters,\n setActiveFilters,\n disableMenuselection,\n}) => {\n const [showAllFilters, setShowAllFilters] = useState(false);\n\n // FIXME: Borde lösa snyggare.\n // TODO: Behöver tillgång till namn på filter och namn på option.\n // TODO: Fixa datamodell överallt.\n const handleSelectedFilters = filterOption => {\n const index = activeFilters.findIndex(\n activeFilter => activeFilter.sel_var === filterOption.sel_var\n );\n\n const item = activeFilters[index];\n\n let newItem;\n\n if (item == null) {\n newItem = {\n name: filterOption.name,\n sel_var: filterOption.sel_var,\n selection_datatype: filterOption.SELECTION_DATATYPE,\n values: [\n {\n value: filterOption.value,\n desc: filterOption.description,\n antal: filterOption.antal,\n },\n ],\n };\n } else if (item.values.some(obj => obj.value === filterOption.value)) {\n newItem = {\n name: filterOption.name,\n sel_var: filterOption.sel_var,\n selection_datatype: filterOption.SELECTION_DATATYPE,\n values: item.values.filter(opt => opt.value !== filterOption.value),\n };\n } else {\n newItem = item;\n newItem.values.push({\n value: filterOption.value,\n desc: filterOption.description,\n antal: filterOption.antal,\n });\n }\n\n if (item) {\n setActiveFilters(prevState => {\n const tempState = [...prevState];\n tempState[index] = newItem;\n return tempState.filter(element => element.values.length > 0);\n });\n return;\n }\n\n setActiveFilters(prevState => [\n ...prevState.filter(prev => prev.sel_var !== newItem.sel_var),\n newItem,\n ]);\n };\n\n // TODO: Kanske bara borde visa alla filter som default och fixa scrollen istället?\n return (\n 0 ? styles.hasItems : ''\n }`}\n >\n
    \n
    \n {filterList.length > 0 &&\n filterList\n .slice(0, showAllFilters ? filterList.length : FILTER_LIMIT)\n .map(listItem => (\n option.antal !== ' < 5')\n ? ''\n : styles.mobileEmpty\n }\n >\n \n \n ))}\n
    \n
    \n {!showAllFilters && filterList.length > FILTER_LIMIT ? (\n
    \n setShowAllFilters(true)}\n />\n
    \n ) : (\n
    \n setShowAllFilters(false)}\n />\n
    \n )}\n
    \n );\n};\n\nFilterList.propTypes = {\n filterList: PropTypes.arrayOf(Object).isRequired,\n activeFilters: PropTypes.arrayOf(Object).isRequired,\n setActiveFilters: PropTypes.func.isRequired,\n disableMenuselection: PropTypes.bool.isRequired,\n};\n\nexport default FilterList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { IconFilter } from 'tabler-icons';\nimport ButtonLink from 'atoms/buttonlink/ButtonLink';\nimport styles from './Filters.module.css';\nimport FilterList from './filterlist/FilterList';\n\nconst Filters = ({\n filterList,\n activeFilters,\n setActiveFilters,\n disableMenuselection,\n}) => {\n return (\n
    \n
    \n
    \n

    \n \n Filter\n

    \n
    \n
    \n setActiveFilters([])}\n />\n
    \n
    \n \n
    \n );\n};\n\nFilters.propTypes = {\n filterList: PropTypes.arrayOf(Object).isRequired,\n activeFilters: PropTypes.arrayOf(Object).isRequired,\n setActiveFilters: PropTypes.func.isRequired,\n disableMenuselection: PropTypes.bool.isRequired,\n};\n\nexport default Filters;\n","import Loader from 'atoms/loader/Loader';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styles from './Select.module.css';\n\nfunction Select({\n defaultValue,\n disabled,\n loading,\n variant,\n label,\n id,\n onChange,\n options,\n value,\n compact,\n marginBottom,\n shaded,\n}) {\n console.log('Options: ', options);\n const filteredOptions = value\n ? options.filter(opt => opt.value !== null)\n : options;\n console.log('FilteredOptions: ', filteredOptions);\n return (\n \n {loading && (\n
    \n \n
    \n )}\n {label && (\n \n {`${label}:`}\n \n )}\n
    \n \n {filteredOptions.map(\n ({ desc, key, value: optionValue, disabled: optionDisabled }) => (\n \n )\n )}\n \n
    \n
    \n );\n}\n\nSelect.propTypes = {\n defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disabled: PropTypes.bool,\n loading: PropTypes.bool,\n compact: PropTypes.bool,\n marginBottom: PropTypes.bool,\n shaded: PropTypes.bool,\n id: PropTypes.string.isRequired,\n label: PropTypes.string,\n variant: PropTypes.oneOf(['primary', 'secondary']),\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(Object).isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n};\n\nSelect.defaultProps = {\n defaultValue: undefined,\n disabled: false,\n loading: false,\n compact: false,\n marginBottom: false,\n shaded: false,\n label: '',\n variant: 'primary',\n onChange: () => {},\n value: undefined,\n};\n\nexport default Select;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './DataSourceSummary.module.css';\nimport { useAuth } from '../../../../services/UseAuth';\nimport ApiService from '../../../../services/ApiService';\n\nconst DataSourceSummary = ({\n activeDataSource,\n availableDSL1,\n availableDSL2,\n}) => {\n const { year, dsl1, dsl2, forbund } = activeDataSource;\n const [forbundName, setForbundName] = useState('samtliga Sacoförbund');\n const {\n user: { token },\n } = useAuth();\n\n useEffect(() => {\n ApiService.getUnion(token).then(res => setForbundName(res.name));\n }, []);\n\n const dslToString = (dsl, availableDsl) => {\n return availableDsl.find(item => item.dsl === dsl)?.desc;\n };\n\n return (\n <>\n

    \n {`Du tittar på statistik från ${year} från ${\n forbund === 'SA' ? 'samtliga Sacoförbund' : forbundName\n }.`}\n {!!availableDSL1.length && (\n \n {` Statistiken baseras på ${dslToString(dsl1, availableDSL1)}`}\n {!!availableDSL2.length && ` - ${dslToString(dsl2, availableDSL2)}`}\n .\n \n )}\n

    \n \n );\n};\n\nDataSourceSummary.propTypes = {\n activeDataSource: PropTypes.shape({\n year: PropTypes.number,\n dsl1: PropTypes.string,\n dsl2: PropTypes.string,\n }).isRequired,\n availableDSL1: PropTypes.arrayOf(Object),\n availableDSL2: PropTypes.arrayOf(Object),\n};\n\nDataSourceSummary.defaultProps = {\n availableDSL1: [],\n availableDSL2: [],\n};\n\nexport default DataSourceSummary;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useHistory } from 'react-router-dom';\nimport { IconDatabase } from 'tabler-icons';\nimport Select from 'atoms/select/Select';\nimport { useAuth } from 'services/UseAuth';\nimport styles from './DataSource.module.css';\nimport DataSourceSummary from './datasourcesummary/DataSourceSummary';\n\nconst DataSource = ({\n activeDataSource,\n dataSources,\n defaultYearFromDeepAnalysis,\n defaultYearToDeepAnalysis,\n disableMenuselection,\n setActiveDataSource,\n handleDataSourceChange,\n}) => {\n const history = useHistory();\n\n const [forbund, setForbund] = useState(activeDataSource.forbund);\n const [availableYears, setAvailableYears] = useState([]);\n const [availableForbund, setAvailableForbund] = useState([]);\n const [availableDSL1, setAvailableDSL1] = useState([]);\n const [availableDSL2, setAvailableDSL2] = useState([]);\n\n const { user } = useAuth();\n const { role } = user;\n\n const yearRange =\n defaultYearFromDeepAnalysis !== 0 &&\n defaultYearFromDeepAnalysis !== null &&\n defaultYearToDeepAnalysis - defaultYearFromDeepAnalysis > 1;\n\n const getAvailableSources = (source, rules) =>\n source.filter(item =>\n rules.every(({ property, expression }) => expression(item[property]))\n );\n\n const findSource = (source, rules) =>\n source.find(item =>\n rules.every(({ property, expression }) => expression(item[property]))\n );\n\n const inRange = (x, min, max) => (x - min) * (x - max) <= 0;\n\n const getYear = p => {\n const from = defaultYearFromDeepAnalysis;\n const to = defaultYearToDeepAnalysis;\n\n // defaultYearFromDeepAnalysis might be null, it might also be 0 in some cases\n const fromConfigured = from !== null && from !== 0;\n\n \n console.log(`activeDataSource.year: ${activeDataSource.year}`);\n \n\n if (role === 'medlem' && fromConfigured && from !== to) {\n return inRange(p, from, to);\n }\n\n // If defaultYearFromDeepAnalysis is not configured members has to have the option\n // to search one year back in time, out of the configured range\n if (role === 'medlem') {\n return inRange(p, to - 1, to);\n }\n\n return p === activeDataSource.year;\n };\n\n // This function uses the findSource function recursively with a list of rules.\n // If the findSource function don't return a result for all of the defined rules\n // the function will try again with all rules except the last one.\n // const sequentiallyFindSource = (arr, rules) => {\n // let result;\n // console.log(\"sequentiallyFindSource arr:\", arr);\n // console.log(\"sequentiallyFindSource rules:\", rules);\n // console.table(rules);\n // rules.forEach((rule, index) => {\n // console.log(`Rule ${index}: property = ${rule.property}, expression = ${rule.expression.toString()}`);\n // });\n\n\n // for (let i = 0; i < rules.length; i += 1) {\n // result = findSource(arr, rules);\n // if (!result) {\n // rules.pop();\n // }\n // if (result) {\n // break;\n // }\n // }\n\n // // If no result, find the first source with the \"DEFAULT\" property set to 1\n // if (!result) {\n // result = findSource(arr, [\n // { property: 'DEFAULT', expression: p => p === 1 },\n // ]);\n // }\n\n // // If there's no default source configured, choose the first object in the array\n // if (!result) [result] = arr;\n // console.log(\"sequentiallyFindSource result:\", result);\n // return result;\n // };\n\n const sequentiallyFindSource = (arr, rules) => {\n console.log(\"Starting sequentiallyFindSource\");\n console.log(\"Initial array (arr):\", arr);\n console.log(\"Initial rules:\", rules);\n\n // Gruppvis sortering: Behåll den övergripande ordningen men prioritera rätt val inom grupperna\n const groupedSort = arr.reduce((acc, item) => {\n const key = item.DSL1; // Gruppera på DSL1\n if (!acc[key]) acc[key] = [];\n acc[key].push(item);\n return acc;\n }, {});\n\n Object.keys(groupedSort).forEach(group => {\n groupedSort[group].sort((a, b) => {\n // Löner från enkät (LE) - Prioritera \"Samtliga\" inom denna grupp\n if (group === \"LE\") {\n if (a.DSL2 === \"DF\") return -1;\n if (b.DSL2 === \"DF\") return 1;\n }\n // Löner från arbetsgivare (AG) - Prioritera sektorer i rätt ordning\n if (group === \"AG\") {\n const priorityOrder = [\n \"Regional sektor\", \n \"Regional sektor - chefslöner\",\n \"Kommunal sektor\", \n \"Kommunal sektor - chefslöner\",\n \"Statlig sektor\",\n \"Statlig sektor - chefslöner\" // Denna ska hamna sist\n ];\n\n const indexA = priorityOrder.findIndex(desc => a.DSL2_DESC.includes(desc));\n const indexB = priorityOrder.findIndex(desc => b.DSL2_DESC.includes(desc));\n\n if (indexA !== -1 && indexB !== -1) {\n return indexA - indexB; // Sortera baserat på index i priorityOrder\n }\n }\n return 0;\n });\n });\n\n // Återskapa listan i rätt ordning utan att störa andra grupper\n const sortedArr = Object.values(groupedSort).flat();\n\n console.log(\"Sorted array before applying rules:\", sortedArr);\n\n let result;\n for (let i = 0; i < rules.length; i += 1) {\n console.log(`Iteration ${i + 1} - Applying rules:`, rules);\n result = findSource(sortedArr, rules);\n \n if (result) {\n console.log(`Found result at iteration ${i + 1}:`, result);\n break;\n } else {\n console.log(`No result found at iteration ${i + 1}. Removing last rule.`);\n rules.pop();\n }\n }\n\n if (!result) {\n console.log(\"No result found with all rules. Trying DEFAULT = 1.\");\n result = findSource(sortedArr, [{ property: 'DEFAULT', expression: p => p === 1 }]);\n }\n\n if (!result && sortedArr.length > 0) {\n console.log(\"No default found, choosing first in list.\");\n [result] = sortedArr;\n }\n\n console.log(\"Final result from sequentiallyFindSource:\", result);\n return result;\n};\n\n\n const setSource = source =>\n setActiveDataSource({\n forbund: source.FORBUND,\n dsl1: source.DSL1,\n dsl2: source.DSL2,\n measureVar: source.measure_var,\n year: source.YEAR,\n });\n\n const handleChange = (value, type) => {\n const previousDatasource = { ...activeDataSource };\n console.log(`handleChange value: ${value} type: ${type}`);\n if (type === 'year') {\n console.log(`handleChange value: ${value} type: ${type}`);\n handleDataSourceChange(value);\n\n const availableSources = getAvailableSources(dataSources, [\n { property: 'YEAR', expression: p => p === Number(value) },\n ]);\n\n console.log(\"handleChange availableSources:\", availableSources);\n\n const newSource = sequentiallyFindSource(availableSources, [\n { property: 'DSL1', expression: p => p === previousDatasource.dsl1 },\n {\n property: 'FORBUND',\n expression: p => p === previousDatasource.forbund,\n },\n { property: 'DSL2', expression: p => p === previousDatasource.dsl2 },\n ]);\n console.log(\"handleChange newSource:\", newSource);\n setSource(newSource);\n }\n\n\n if (type === 'forbund') {\n const availableSources = getAvailableSources(dataSources, [\n { property: 'FORBUND', expression: p => p === value },\n { property: 'YEAR', expression: p => p === activeDataSource.year },\n ]).sort((a, b) => b?.YEAR - a?.YEAR);\n\n console.log(\"Available sources for selected forbund and year:\", availableSources);\n console.log(\"Current activeDataSource:\", activeDataSource);\n\n // Kontrollera om den nuvarande insamlingskällan (DSL1) fortfarande är tillgänglig\n const currentDsl1Available = availableSources.some(source => source.DSL1 === activeDataSource.dsl1);\n \n console.log(\"Is current DSL1 available in new sources?:\", currentDsl1Available);\n\n if (currentDsl1Available) {\n // Behåll den nuvarande insamlingskällan om den finns tillgänglig\n console.log(\"Behåll den nuvarande insamlingskällan availableSources\", availableSources);\n console.log(\"Behåll den nuvarande insamlingskällan activeDataSource\", activeDataSource);\n console.log(\"Behåll den nuvarande insamlingskällan previousDatasource\", previousDatasource);\n const newSource = sequentiallyFindSource(availableSources, [\n { property: 'DSL1', expression: p => p === activeDataSource.dsl1 },\n // { property: 'DSL2', expression: p => p === activeDataSource.dsl2 },\n ]);\n console.log(\"Keeping current DSL1, selected new source (should be same as current):\", newSource);\n setSource(newSource);\n } else {\n // Om den nuvarande insamlingskällan inte är tillgänglig, välj en standardkälla\n const newSource = sequentiallyFindSource(availableSources, [\n { property: 'DSL1', expression: p => p === previousDatasource.dsl1 },\n { property: 'DSL2', expression: p => p === previousDatasource.dsl2 },\n ]);\n console.log(\"Current DSL1 not available, choosing a new default source:\", newSource);\n setSource(newSource);\n }\n\n setForbund(value);\n }\n\n\n if (type === 'dsl1') {\n \n const availableSources = getAvailableSources(dataSources, [\n {\n property: 'FORBUND',\n expression: p => p === activeDataSource.forbund,\n },\n { property: 'DSL1', expression: p => p === value },\n {\n property: 'YEAR',\n expression: p => getYear(p),\n },\n ]).sort((a, b) => {\n if (\n a.YEAR === activeDataSource.year &&\n b.YEAR !== activeDataSource.year\n ) {\n return -1;\n }\n if (\n a.YEAR !== activeDataSource.year &&\n b.YEAR === activeDataSource.year\n ) {\n return 1;\n }\n return b?.YEAR - a?.YEAR;\n });\n\n console.log(\"handleChange dsl1 availableSources:\", availableSources);\n\n const newSource = sequentiallyFindSource(availableSources, [\n { property: 'YEAR', expression: p => p === previousDatasource.year },\n { property: 'DSL2', expression: p => p === previousDatasource.dsl2 },\n ]);\n\n console.log(\"handleChange dsl1 newSource:\", newSource);\n\n setSource(newSource);\n }\n\n if (type === 'dsl2') {\n const availableSources = getAvailableSources(dataSources, [\n {\n property: 'FORBUND',\n expression: p => p === activeDataSource.forbund,\n },\n {\n property: 'YEAR',\n expression: p => getYear(p),\n },\n { property: 'DSL2', expression: p => p === value },\n ]).sort((a, b) => {\n if (\n a.YEAR === activeDataSource.year &&\n b.YEAR !== activeDataSource.year\n ) {\n return -1;\n }\n if (\n a.YEAR !== activeDataSource.year &&\n b.YEAR === activeDataSource.year\n ) {\n return 1;\n }\n return b?.YEAR - a?.YEAR;\n });\n\n let newSource;\n\n // Try an older source only if the user currently are viewing the default year\n // If not, the user should be redirected to the newest possible source\n if (role === 'medlem' && !yearRange) {\n newSource = sequentiallyFindSource(availableSources, [\n {\n property: 'YEAR',\n expression: p => {\n if (activeDataSource.year === defaultYearToDeepAnalysis) {\n return p >= defaultYearToDeepAnalysis - 1;\n }\n\n return p === defaultYearToDeepAnalysis;\n },\n },\n ]);\n } else {\n newSource = sequentiallyFindSource(availableSources, [\n {\n property: 'YEAR',\n expression: p => p === previousDatasource.year,\n },\n ]);\n }\n setSource(newSource);\n }\n };\n\n useEffect(() => {\n\n console.log(\"setAvailableForbund (before filtering):\", dataSources);\n\n // Filtrera de förbund som har data för det valda året\n const filteredForbund = dataSources\n .filter(source => source.YEAR === activeDataSource.year) // Filtrera för valt år\n .reduce((acc, curr) => {\n if (!acc.includes(curr.FORBUND)) acc.push(curr.FORBUND);\n return acc;\n }, []);\n\n setAvailableForbund(filteredForbund);\n console.log(\"setAvailableForbund (filtered):\", filteredForbund);\n\n setAvailableYears(\n dataSources\n .filter(\n ds =>\n ds.DSL1 === activeDataSource.dsl1 &&\n ds.DSL2 === activeDataSource.dsl2\n )\n .reduce((acc, curr) => {\n if (!acc.includes(curr.YEAR)) acc.push(curr.YEAR);\n return acc;\n }, [])\n .filter(y => {\n if (\n role === 'medlem' &&\n defaultYearFromDeepAnalysis &&\n forbund !== 'SA'\n ) {\n return inRange(\n y,\n defaultYearFromDeepAnalysis,\n defaultYearToDeepAnalysis\n );\n }\n\n if (role === 'medlem') {\n return inRange(\n y,\n defaultYearToDeepAnalysis - 1,\n defaultYearToDeepAnalysis\n );\n }\n\n return y;\n })\n .sort()\n );\n }, [\n activeDataSource,\n role,\n dataSources,\n defaultYearFromDeepAnalysis,\n defaultYearToDeepAnalysis,\n forbund,\n ]);\n\n useEffect(() => {\n setAvailableDSL1(\n getAvailableSources(dataSources, [\n {\n property: 'FORBUND',\n expression: p => p === activeDataSource.forbund,\n },\n {\n property: 'YEAR',\n expression: p => getYear(p),\n },\n ])\n .map(ds => {\n return {\n dsl: ds.DSL1,\n desc: ds.DSL1_DESC,\n };\n })\n .reduce((acc, curr) => {\n if (!acc.some(a => a.dsl === curr.dsl)) acc.push(curr);\n return acc;\n }, [])\n );\n // eslint-disable-next-line\n }, [\n activeDataSource.year,\n activeDataSource.forbund,\n defaultYearFromDeepAnalysis,\n defaultYearToDeepAnalysis,\n role,\n ]);\n\n useEffect(() => {\n setAvailableDSL2(\n getAvailableSources(dataSources, [\n {\n property: 'FORBUND',\n expression: p => p === activeDataSource.forbund,\n },\n { property: 'DSL1', expression: p => p === activeDataSource.dsl1 },\n {\n property: 'YEAR',\n expression: p => getYear(p),\n },\n ])\n .sort((a, b) => b.YEAR - a.YEAR) // Sortera efter år, senaste först\n .map(ds => {\n const lastYearsData = ds.YEAR !== activeDataSource.year;\n return {\n dsl: ds.DSL2,\n desc: lastYearsData ? `${ds.DSL2_DESC} - ${ds.YEAR}` : ds.DSL2_DESC,\n lastYearsData,\n };\n })\n .sort((a, b) => a.lastYearsData - b.lastYearsData) // Sortera så att senaste året kommer först\n .reduce((acc, curr) => {\n if (!acc.some(a => a.dsl === curr.dsl)) acc.push(curr);\n return acc;\n }, [])\n .filter(a => a.desc !== 'Ok�nt' && a.desc !== 'Okänt') // Filtrera bort \"Okänt\"\n .sort((a, b) => {\n // Prioritera \"Samtliga\" överst\n if (a.desc.includes(\"Samtliga\")) return -1;\n if (b.desc.includes(\"Samtliga\")) return 1;\n return 0;\n })\n );\n // eslint-disable-next-line\n}, [\n activeDataSource.year,\n activeDataSource.dsl1,\n activeDataSource.forbund,\n defaultYearFromDeepAnalysis,\n defaultYearToDeepAnalysis,\n role,\n]);\n\n\n const allAvailableYears = () =>\n availableYears.map(item => ({\n key: item,\n value: item,\n desc: item,\n }));\n\n // TODO: se över logiken, utför i backend och returnera en array med optionsen bara i ett API-kall\n const getYearOptions = () => {\n if (role === 'medlem') {\n if (activeDataSource.forbund === 'CF') {\n return allAvailableYears();\n }\n const latestAvailableYear = availableYears[availableYears.length - 1];\n\n return [\n {\n key: latestAvailableYear,\n value: latestAvailableYear,\n desc: latestAvailableYear,\n },\n ];\n }\n\n return allAvailableYears();\n };\n\n return (\n <>\n
    \n

    \n \n Statistikkällor\n

    \n \n\n {/* Dont let users change year, unless there's an interval configured */}\n {/* That is: defaultYearFromDeepAnalysis can't be null, zero or just defaultYearToDeepAnalysis - 1 */}\n {(role !== 'medlem' || (role === 'medlem' && yearRange)) && (\n
    \n handleChange(evt.target.value, 'year')}\n value={activeDataSource.year.toString()}\n />\n
    \n )}\n\n
    \n handleChange(evt.target.value, 'forbund')}\n options={availableForbund.map(item => ({\n key: item,\n value: item,\n desc: item === 'SA' ? 'Samtliga Sacoförbund' : 'Mitt förbund',\n }))}\n value={activeDataSource.forbund}\n />\n
    \n \n
    \n handleChange(evt.target.value, 'dsl1')}\n options={availableDSL1.map(({ desc, dsl }) => ({\n key: dsl,\n value: dsl,\n desc,\n }))}\n value={activeDataSource.dsl1}\n />\n
    \n {availableDSL2.length > 0 && (\n
    \n handleChange(evt.target.value, 'dsl2')}\n options={availableDSL2.map(({ desc, dsl }) => ({\n key: dsl,\n value: dsl,\n desc,\n }))}\n value={activeDataSource.dsl2}\n />\n
    \n )}\n \n history.push('#statistics')}\n >\n Läs om statistikkällorna\n \n
    \n
    \n \n
    \n \n );\n};\n\nDataSource.propTypes = {\n activeDataSource: PropTypes.shape({\n forbund: PropTypes.string.isRequired,\n dsl1: PropTypes.string.isRequired,\n dsl2: PropTypes.string.isRequired,\n measureVar: PropTypes.arrayOf(String).isRequired,\n year: PropTypes.number.isRequired,\n }).isRequired,\n dataSources: PropTypes.arrayOf(Object).isRequired,\n defaultYearFromDeepAnalysis: PropTypes.number,\n defaultYearToDeepAnalysis: PropTypes.number.isRequired,\n disableMenuselection: PropTypes.bool.isRequired,\n setActiveDataSource: PropTypes.func.isRequired,\n handleDataSourceChange: PropTypes.func.isRequired,\n};\n\nDataSource.defaultProps = {\n defaultYearFromDeepAnalysis: null,\n};\n\nexport default DataSource;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Select from 'atoms/select/Select';\nimport styles from './Presentation.module.css';\n\nconst Presentation = ({\n allowCustomPresentation,\n presentationList,\n selectedPresentation,\n setCustomPresentation,\n setSelectedPresentation,\n fetchingData,\n}) => {\n const [selectedBreakby, setSelectedBreakby] = useState('');\n\n const handleSelectedPresentation = e => {\n if (e.target.value === 'custom') {\n setCustomPresentation(true);\n } else {\n setCustomPresentation(false);\n const matchingPresentation = presentationList.find(\n pres => pres.BREAKBY_VAR === e.target.value\n );\n setSelectedPresentation([matchingPresentation]);\n }\n\n setSelectedBreakby(e.target.value);\n };\n\n useEffect(() => {\n if (\n selectedBreakby !== 'custom' &&\n presentationList &&\n presentationList.length > 0\n ) {\n const isSelectedBreakbyAvailable = presentationList.some(\n presentation => presentation.BREAKBY_VAR === selectedBreakby\n );\n\n if (isSelectedBreakbyAvailable) {\n setSelectedPresentation([\n presentationList.find(\n presentation => presentation.BREAKBY_VAR === selectedBreakby\n ),\n ]);\n } else {\n setSelectedPresentation([presentationList[0]]);\n setSelectedBreakby(presentationList[0].BREAKBY_VAR);\n }\n }\n }, [presentationList, selectedBreakby, setSelectedPresentation]);\n\n useEffect(() => {\n if (\n selectedPresentation.length === 1 &&\n selectedPresentation[0].BREAKBY_VAR &&\n selectedBreakby !== 'custom'\n ) {\n setSelectedBreakby(selectedPresentation[0].BREAKBY_VAR);\n }\n }, [selectedPresentation]);\n\n return (\n
    \n {presentationList && presentationList.length > 0 && selectedBreakby && (\n handleSelectedPresentation(e)}\n options={[\n ...presentationList.map(({ BREAKBY_VAR, REPORT_TEXT }) => ({\n key: BREAKBY_VAR,\n value: BREAKBY_VAR,\n desc: REPORT_TEXT,\n })),\n ...(presentationList.length > 1 && allowCustomPresentation\n ? [\n {\n key: 'custom',\n value: 'custom',\n desc: 'Egen rapport',\n },\n ]\n : []),\n ]}\n value={selectedBreakby}\n />\n )}\n
    \n );\n};\n\nPresentation.propTypes = {\n allowCustomPresentation: PropTypes.bool.isRequired,\n presentationList: PropTypes.arrayOf(Object),\n selectedPresentation: PropTypes.arrayOf(Object),\n setCustomPresentation: PropTypes.func.isRequired,\n setSelectedPresentation: PropTypes.func.isRequired,\n fetchingData: PropTypes.bool.isRequired,\n};\n\nPresentation.defaultProps = {\n presentationList: [],\n selectedPresentation: [],\n};\n\nexport default Presentation;\n","/* eslint-disable camelcase, no-underscore-dangle, no-param-reassign */\n\nexport function debounce(func, timeout = 300) {\n let timer;\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(this, args);\n }, timeout);\n };\n}\n\nexport function formatNumber(value) {\n if (!value) return '-';\n return value.toLocaleString('sv');\n}\n\nexport function formatAccessor(str) {\n return str && str.toLowerCase().replace(/\\s/g, '-').toLocaleString('en');\n}\n\nexport function generateCustomColumns(acc, curr, groupingCol) {\n if (!acc.find(item => item[groupingCol] === curr[groupingCol]))\n acc.push({ [groupingCol]: curr[groupingCol] });\n return acc;\n}\n\nexport function createOrSetObject({ acc, curr, prevObj, keys, id, totalind }) {\n if (prevObj) {\n keys.forEach(({ key, accessor }) => {\n prevObj[formatAccessor(accessor)] = curr[key];\n });\n\n return acc;\n }\n\n acc.push(\n Object.assign(\n {},\n {\n breakby1: id,\n _TYPE_: curr._TYPE_,\n totalind: totalind ? 'Y' : 'N',\n },\n ...keys.map(({ key, accessor }) => ({\n [formatAccessor(accessor)]: curr[key],\n }))\n )\n );\n\n return acc;\n}\n\nexport function generateCustomData(acc, curr) {\n const prevObj = acc.find(row => row.breakby1 === curr.breakby1);\n const totalRow = acc.find(row => row.breakby1 === formatAccessor('total'));\n\n // Hämta totalrad\n if (curr._TYPE_ === 0) {\n createOrSetObject({\n acc,\n curr,\n prevObj: totalRow,\n keys: [\n { key: 'antal', accessor: 'total-antal-samtliga' },\n { key: 'lon_medel', accessor: 'total-lon_medel-samtliga' },\n ],\n id: 'total',\n totalind: true,\n });\n }\n\n // Hämta samtliga-kolumner\n if (curr._TYPE_ === 1) {\n createOrSetObject({\n acc,\n curr,\n prevObj,\n keys: [\n { key: 'antal', accessor: 'antal-samtliga' },\n { key: 'lon_medel', accessor: 'lon_medel-samtliga' },\n ],\n id: curr.breakby1,\n totalind: false,\n });\n }\n\n // Hämta deltotalrader\n if (curr._TYPE_ === 2) {\n createOrSetObject({\n acc,\n curr,\n prevObj: totalRow,\n keys: [\n { key: 'antal', accessor: `total-antal-${curr.breakby2}` },\n { key: 'lon_medel', accessor: `total-lon_medel-${curr.breakby2}` },\n ],\n id: 'total',\n totalind: true,\n });\n }\n\n // Hämta vanliga rader\n if (curr._TYPE_ === 3) {\n createOrSetObject({\n acc,\n curr,\n prevObj,\n keys: [\n { key: 'antal', accessor: `antal-${curr.breakby2}` },\n { key: 'lon_medel', accessor: `lon_medel-${curr.breakby2}` },\n ],\n id: curr.breakby1,\n totalind: false,\n });\n }\n\n return acc;\n}\n\nexport function getTotalCol(arr, accessor) {\n return formatNumber(\n arr\n .filter(row => row.original.totalind === 'Y')\n .map(row => row.original[accessor])[0]\n );\n}\n\nexport function getWidth() {\n return (\n window.innerWidth ||\n document.documentElement.clientWidth ||\n document.body.clientWidth\n );\n}\n\nexport function isTotalRow(obj, customPresentation) {\n const { _TYPE_, totalind } = obj;\n if (customPresentation) {\n return totalind === 'Y' && _TYPE_ === 0;\n }\n return totalind === 'Y' && (_TYPE_ === 0 || _TYPE_ === 1);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './TabRow.module.css';\n\nconst TabRow = ({ children, className }) => {\n return (\n
    {children}
    \n );\n};\n\nTabRow.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]).isRequired,\n className: PropTypes.string,\n};\n\nTabRow.defaultProps = {\n className: '',\n};\n\nexport default TabRow;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './Tab.module.css';\n\nconst Tab = ({ active, label, altText, onClick }) => {\n const computedAltText = altText && altText !== '' ? altText : label;\n return (\n \n {label}\n \n );\n};\n\nTab.propTypes = {\n active: PropTypes.bool.isRequired,\n label: PropTypes.string.isRequired,\n altText: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n};\n\nTab.defaultProps = {\n altText: '',\n};\n\nexport default Tab;\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTable } from 'react-table';\nimport TabRow from 'atoms/tabrow/TabRow';\nimport Tab from 'atoms/tab/Tab';\nimport { formatRespondents } from 'lib/antal';\nimport {\n formatAccessor,\n formatNumber,\n generateCustomColumns,\n generateCustomData,\n getTotalCol,\n isTotalRow,\n} from 'lib/salaryTable';\nimport styles from './SalaryTable.module.css';\n\nconst BREAKPOINT = 1024;\n\nconst SalaryTable = ({\n activeDataSource,\n measureVar,\n selectedPresentation,\n setMeasureVar,\n tableData,\n}) => {\n const customReport = selectedPresentation.length === 2;\n\n // Get a reference to the table\n const tableRef = ref => {\n if (!ref) return;\n const table = ref;\n };\n\n // Set up columns\n const columns = useMemo(\n () =>\n !customReport\n ? [\n {\n Header: selectedPresentation[0].REPORT_TEXT,\n accessor: 'breakby1',\n Footer: 'Samtliga',\n className: styles.sticky,\n },\n {\n Header: 'Antal',\n accessor: 'antal',\n Cell: ({ value }) => formatRespondents(value),\n Footer: ({ rows }) =>\n formatRespondents(getTotalCol(rows, 'antal')),\n },\n {\n Header: 'Medel',\n accessor: 'lon_medel',\n Cell: ({ value }) => formatNumber(value),\n Footer: ({ rows }) => getTotalCol(rows, 'lon_medel'),\n },\n {\n Header: '10:e perc',\n accessor: 'lon_p10',\n Cell: ({ value }) => formatNumber(value),\n Footer: ({ rows }) => getTotalCol(rows, 'lon_p10'),\n },\n {\n Header: 'Undre kvartil',\n accessor: 'lon_p25',\n Cell: ({ value }) => formatNumber(value),\n Footer: ({ rows }) => getTotalCol(rows, 'lon_p25'),\n },\n {\n Header: 'Median',\n accessor: 'lon_p50',\n Cell: ({ value }) => formatNumber(value),\n Footer: ({ rows }) => getTotalCol(rows, 'lon_p50'),\n },\n {\n Header: 'Övre kvartil',\n accessor: 'lon_p75',\n Cell: ({ value }) => formatNumber(value),\n Footer: ({ rows }) => getTotalCol(rows, 'lon_p75'),\n },\n {\n Header: '90:e perc',\n accessor: 'lon_p90',\n Cell: ({ value }) => formatNumber(value),\n Footer: ({ rows }) => getTotalCol(rows, 'lon_p90'),\n },\n {\n Header: 'Totalindikator',\n accessor: 'totalind',\n },\n {\n Header: 'Typ',\n accessor: '_TYPE_',\n },\n ]\n : [\n {\n Header: selectedPresentation[1].REPORT_TEXT,\n accessor: 'breakby2',\n className: styles.center,\n columns: [\n {\n Header: '',\n accessor: 'spacer-0',\n className: styles.sticky,\n columns: [\n {\n Header: selectedPresentation[0].REPORT_TEXT,\n accessor: 'breakby1',\n Footer: 'Samtliga',\n className: styles.sticky,\n },\n ],\n },\n ...tableData\n .filter(\n row =>\n row.breakby2 &&\n !['okänd', 'inget värde'].includes(\n row.breakby2.toLowerCase()\n )\n )\n .reduce(\n (acc, curr) => generateCustomColumns(acc, curr, 'breakby2'),\n []\n )\n // .sort((a, b) => a.breakby2.localeCompare(b.breakby2, 'sv'))\n .map(({ breakby2 }) => ({\n Header: breakby2,\n accessor: formatAccessor(breakby2),\n columns: [\n {\n Header: 'Antal',\n accessor: formatAccessor(`antal-${breakby2}`),\n Cell: ({ value }) => formatRespondents(value),\n Footer: ({ rows }) =>\n formatRespondents(\n getTotalCol(\n rows,\n formatAccessor(`total-antal-${breakby2}`)\n )\n ),\n },\n {\n Header: 'Medel',\n accessor: formatAccessor(`lon_medel-${breakby2}`),\n Cell: ({ value }) => formatNumber(value),\n Footer: ({ rows }) =>\n getTotalCol(\n rows,\n formatAccessor(`total-lon_medel-${breakby2}`)\n ),\n },\n ],\n })),\n {\n Header: 'Samtliga',\n accessor: 'samtliga-col',\n columns: [\n {\n Header: 'Antal',\n accessor: formatAccessor('antal-samtliga'),\n Cell: ({ value }) => formatRespondents(value),\n Footer: ({ rows }) =>\n formatRespondents(\n getTotalCol(\n rows,\n formatAccessor(`total-antal-samtliga`)\n )\n ),\n },\n {\n Header: 'Medel',\n accessor: formatAccessor('lon_medel-samtliga'),\n Cell: ({ value }) => formatNumber(value),\n Footer: ({ rows }) =>\n getTotalCol(\n rows,\n formatAccessor(`total-lon_medel-samtliga`)\n ),\n },\n ],\n },\n ],\n },\n {\n Header: 'Totalindikator',\n accessor: 'totalind',\n },\n {\n Header: 'Typ',\n accessor: '_TYPE_',\n },\n ],\n [selectedPresentation, customReport, tableData]\n );\n\n // Setup data\n const data = useMemo(\n () =>\n !customReport\n ? tableData\n : tableData.reduce((acc, curr) => generateCustomData(acc, curr), []),\n [customReport, tableData]\n );\n\n // Set up table\n const table = useTable({\n columns,\n data,\n initialState: {\n hiddenColumns: ['totalind', '_TYPE_'],\n },\n });\n\n const {\n footerGroups,\n getTableBodyProps,\n getTableProps,\n headerGroups,\n prepareRow,\n rows,\n } = table;\n\n return (\n
    \n {activeDataSource.measureVar.length > 1 && (\n \n setMeasureVar('LON')}\n />\n setMeasureVar('FLON')}\n />\n \n )}\n
    \n \n \n \n {headerGroups.map(group => (\n \n {group.headers.map(column => (\n \n {column.className === styles.center && (\n \n \n ))}\n \n ))}\n \n \n {rows\n .filter(row => !isTotalRow(row.values) && row.values.breakby1)\n .map(row => {\n prepareRow(row);\n return (\n \n {row.cells.map(cell => (\n \n ))}\n \n );\n })}\n {footerGroups\n // Dont print rows that are completely empty in the footer\n .filter(group => group.headers.every(header => header.Footer))\n .map(group => (\n \n {group.headers.map(column => (\n \n {column.render('Footer')}\n \n ))}\n \n ))}\n \n
    \n )}\n \n {column.render('Header')}\n
    \n {cell.value ? cell.render('Cell') : '-'}\n
    \n
    \n
    \n
    \n );\n};\n\nSalaryTable.propTypes = {\n activeDataSource: PropTypes.shape({\n forbund: PropTypes.string,\n dsl1: PropTypes.string,\n dsl2: PropTypes.string,\n measureVar: PropTypes.arrayOf(PropTypes.string),\n year: PropTypes.number,\n }).isRequired,\n measureVar: PropTypes.string.isRequired,\n selectedPresentation: PropTypes.arrayOf(Object).isRequired,\n setMeasureVar: PropTypes.func.isRequired,\n tableData: PropTypes.arrayOf(PropTypes.object).isRequired,\n};\n\nexport default SalaryTable;\n","import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Chart as Graph } from 'chart.js';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport 'chartjs-chart-box-and-violin-plot/build/Chart.BoxPlot';\nimport styles from './Chart.module.css';\n\nconst Chart = ({ data, id, options, setValues, type }) => {\n const chartContainer = useRef(null);\n const [chartInstance, setChartInstance] = useState(null);\n\n Graph.plugins.unregister(ChartDataLabels);\n\n useEffect(() => {\n if (chartContainer && chartContainer.current && !chartInstance) {\n const newChartInstance = new Graph(chartContainer.current, {\n data,\n options,\n type,\n });\n setChartInstance(newChartInstance);\n }\n // eslint-disable-next-line\n }, [chartContainer, data, options, type, chartInstance]);\n\n useEffect(() => {\n if (chartInstance && data) {\n chartInstance.data = data;\n chartInstance.update();\n setValues(\n chartInstance.scales['x-axis-0'],\n chartInstance.scales['y-axis-0']\n );\n }\n // eslint-disable-next-line\n }, [data, chartInstance]);\n\n useEffect(() => {\n if (chartInstance && options) {\n chartInstance.options = options;\n chartInstance.update({ duration: 0 });\n }\n // eslint-disable-next-line\n }, [options, chartInstance]);\n\n return (\n \n );\n};\n\nChart.propTypes = {\n data: PropTypes.shape({}).isRequired,\n id: PropTypes.string,\n options: PropTypes.shape({}),\n setValues: PropTypes.func,\n type: PropTypes.string.isRequired,\n};\n\nChart.defaultProps = {\n id: '',\n options: PropTypes.shape({}),\n setValues: () => {},\n};\n\nexport default Chart;\n","const STARTING_YEAR = 2021;\nexport const today = new Date();\nexport const oneYearFromNow = new Date(today.getTime() + 86400000 * 365);\n\nexport const months = [\n 'Januari',\n 'Februari',\n 'Mars',\n 'April',\n 'Maj',\n 'Juni',\n 'Juli',\n 'Augusti',\n 'September',\n 'Oktober',\n 'November',\n 'December',\n];\n\n// \"Valid\" is a year from 100 years ago up until this year\nfunction isValidHistoricalYear(num) {\n return num > today.getFullYear() - 100 && num <= today.getFullYear();\n}\n\nexport function isTimeUnit(breakbyValue) {\n if (!breakbyValue) return false;\n // The breakby value might be a year in a string\n // Like so: \"1965\"\n const year = Number(breakbyValue);\n\n // The breakby value might be a span of years which we also want to consider a unit of time\n // Like this: \"1940-1945\"\n const firstYear = !year && breakbyValue.split('-')[0];\n\n if (year && isValidHistoricalYear(year)) {\n return true;\n }\n\n if (firstYear && isValidHistoricalYear(firstYear)) {\n return true;\n }\n\n return false;\n}\n\n// Returns a list of all years from set of data or from STARTING_YEAR\nexport function getAvailableYears(data) {\n const thisYear = today.getFullYear();\n let yearsPassed;\n let list;\n\n if (data) {\n const dates = [...data]\n .map(({ created }) => created)\n .sort((a, b) => Date.parse(a) - Date.parse(b));\n\n const minYear = new Date(dates[0]).getFullYear();\n const maxYear = new Date(dates.reverse()[0]).getFullYear();\n yearsPassed = maxYear - minYear;\n list = [minYear];\n } else {\n yearsPassed = thisYear - STARTING_YEAR;\n list = [STARTING_YEAR];\n }\n\n if (yearsPassed > 0) {\n for (let i = 1; i < yearsPassed + 1; i += 1) {\n list.push(list[0] + i);\n }\n }\n\n return list;\n}\n\n// Returns a list of all available months from set of data\nexport function getAvailableMonths(data, year) {\n if (year === '' || year === 'all') return [];\n const dates = [...data]\n .map(({ created }) => created)\n .filter(date => {\n return new Date(date).getFullYear() === year;\n })\n .sort((a, b) => Date.parse(a) - Date.parse(b));\n\n const minMonth = new Date(dates[0]).getMonth();\n const maxMonth = new Date(dates.reverse()[0]).getMonth();\n const monthsPassed = maxMonth - minMonth;\n\n const res = [minMonth];\n\n if (monthsPassed > 0) {\n for (let i = 1; i < monthsPassed + 1; i += 1) {\n res.push(minMonth + i);\n }\n }\n\n return res;\n}\n","/* eslint-disable camelcase */\nimport { isTotalRow } from './salaryTable';\n\n// Returns a solid array of data for graphs\nexport function getSolidData(data, type = '') {\n return data\n .filter(entry => !isTotalRow(entry) && entry.breakby1)\n .filter(entry => {\n const { lon_p25, lon_p50, lon_medel, lon_p75, lon_p90 } = entry;\n\n if (type === 'box')\n return !Object.values({\n lon_p25,\n lon_p50,\n lon_p75,\n lon_p90,\n }).includes(null);\n\n if (type === 'bar') {\n return !Object.values({ lon_medel }).includes(null);\n }\n\n if (type === 'line')\n return !Object.values({ lon_p25, lon_p50, lon_p75 }).includes(null);\n\n return !Object.values(entry).includes(null);\n });\n}\n\n// Format chart data\nexport function calcChartData(data, type) {\n const result = getSolidData(data, type);\n\n if (type === 'box') {\n return result.map(x => ({\n min: x.lon_p10,\n q1: x.lon_p25,\n median: x.lon_p50,\n q3: x.lon_p75,\n max: x.lon_p90,\n outliers: [x.lon_medel],\n }));\n }\n\n if (type === 'line') {\n return result.map(x => ({\n q1: x.lon_p25,\n median: x.lon_p50,\n q3: x.lon_p75,\n }));\n }\n\n return result.map(x => x.lon_medel);\n}\n\n// Returns labels for charts\nexport function genLabels(data, type) {\n return getSolidData(data, type).map(x => Object.values(x)[0]);\n}\n\n// [1, 1, 2, 2] => [1, 2]\nexport function unique(value, index, self) {\n return self.indexOf(value) === index;\n}\n\nexport function uniqueByProp(arr, property) {\n return arr.filter(\n (e, i) => arr.findIndex(a => a[property] === e[property]) === i\n );\n}\n\nexport function filterCustomData(row) {\n return (\n row.breakby1 &&\n row.breakby2 &&\n !['inget värde', 'okänd'].includes(row.breakby2.toLowerCase()) &&\n !['inget värde', 'okänd'].includes(row.breakby1.toLowerCase())\n );\n}\n\nexport function getCustomLabels(data, type) {\n return getSolidData(data, type)\n .filter(row => filterCustomData(row))\n .map(row => row.breakby1)\n .sort((a, b) => a.localeCompare(b, 'sv'))\n .filter(unique);\n}\n\n// To be sure, we need at least 21 unique colors for customReport\nconst customColors = [\n '#DA8BBA', // secondary\n '#99D2D9', // primary\n '#FFFAFA', // white\n '#708090', // grey\n '#EEE8AA', // gold\n '#F08080', // red\n '#90EE90', // green\n '#6495ED', // blue\n '#FFB6C1', // pink\n '#BA55D3', // purple\n // These colors will most likely not be used, but in case:\n '#F4A460', // orange\n '#00BFFF', // deepskyblue\n '#696969', // dimgray\n '#DAA520', // goldenrod\n '#9400D3', // darkviolet\n '#00008B', // darkblue\n '#006400', // darkgreen\n '#8B0000', // darkred\n '#FF1493', // deeppink\n '#FF8C00', // darkorange\n '#4B0082', // indigo\n '#FFFFFF', // white\n];\n\n// TODO: Refactor this\nexport function calcCustomChartData(data, type) {\n const solidData = getSolidData(data, type)\n .filter(row => filterCustomData(row))\n .sort((a, b) => a.breakby1.localeCompare(b.breakby1, 'sv'));\n\n const groups = uniqueByProp(solidData, 'breakby2').map((row, i) => {\n const color = customColors[i % customColors.length];\n\n if (type === 'box') {\n return {\n data: {},\n label: row.breakby2,\n backgroundColor: color,\n hoverBackgroundColor: color,\n medianColor: '#333333',\n outlierColor: '#333333',\n borderColor: '#333333',\n borderWidth: 2,\n maxBarThickness: 40,\n };\n }\n\n return {\n data: {},\n label: row.breakby2,\n type,\n backgroundColor: color,\n hoverBackgroundColor: color,\n fill: false,\n borderColor: '#333333',\n borderWidth: 2,\n maxBarThickness: 80,\n };\n });\n\n solidData.forEach(item => {\n groups.map(group => {\n const tempGroup = { ...group };\n // It's a match\n if (group.label === item.breakby2) {\n if (type === 'box') {\n tempGroup.data[item.breakby1] = {\n min: item.lon_p10,\n q1: item.lon_p25,\n median: item.lon_p50,\n q3: item.lon_p75,\n max: item.lon_p90,\n outliers: [item.lon_medel],\n };\n }\n\n if (type === 'bar') {\n tempGroup.data[item.breakby1] = item.lon_medel;\n }\n }\n\n // Its not a match\n if (group.label !== item.breakby2) {\n // key does not exist\n if (!(item.breakby1 in group.data)) {\n tempGroup.data[item.breakby1] = null;\n }\n }\n return tempGroup;\n });\n });\n\n return groups.map(group => ({\n ...group,\n data: Object.values(group.data),\n }));\n}\n\n// Returns a mapped data object for a chart.js instance\nexport function genData(data, type, labels, customPresentation = false) {\n if (type === 'box') {\n return {\n labels: customPresentation ? getCustomLabels(data, type) : labels,\n datasets: customPresentation\n ? calcCustomChartData(data, type, customPresentation)\n : [\n {\n label: 'Löner',\n backgroundColor: '#DA8BBA',\n borderColor: '#333333',\n borderWidth: 2,\n medianColor: '#333333',\n outlierColor: '#333333',\n data: calcChartData(data, type),\n maxBarThickness: 40,\n },\n ],\n };\n }\n\n if (type === 'line') {\n const defaultOptions = {\n borderWidth: 2,\n fill: false,\n type,\n tension: 0.1,\n };\n\n return {\n labels,\n datasets: [\n {\n backgroundColor: '#33a0a0',\n borderColor: '#33a0a0',\n borderWidth: 0,\n data: calcChartData(data, type).map(({ q1 }) => q1),\n label: 'Undre kvartil',\n pointStyle: 'rect',\n ...defaultOptions,\n },\n {\n backgroundColor: '#DA8BBA',\n borderColor: '#DA8BBA',\n data: calcChartData(data, type).map(({ median }) => median),\n label: 'Median',\n pointStyle: 'circle',\n ...defaultOptions,\n },\n {\n backgroundColor: '#333333',\n borderColor: '#333333',\n data: calcChartData(data, type).map(({ q3 }) => q3),\n label: 'Övre kvartil',\n pointStyle: 'rectRounded',\n ...defaultOptions,\n },\n ],\n };\n }\n\n return {\n labels: customPresentation ? getCustomLabels(data, type) : labels,\n datasets: customPresentation\n ? calcCustomChartData(data, type, customPresentation)\n : [\n {\n type,\n label: 'Medellön',\n backgroundColor: '#DA8BBA',\n data: calcChartData(data, type),\n fill: false,\n maxBarThickness: 80,\n },\n ],\n };\n}\n\n// Returns configuration object for \"Ange din lön\"\nexport function getAnnotations(\n salaryMarkerValue,\n activeTab,\n) {\n if (!salaryMarkerValue) return {};\n return {\n annotations: [\n {\n type: 'line',\n mode: activeTab === 'box' ? 'vertical' : 'horizontal',\n scaleID: activeTab === 'box' ? 'x-axis-0' : 'y-axis-0',\n value: salaryMarkerValue,\n borderColor: '#333333',\n borderWidth: 2,\n borderDash: [2, 2],\n label: {\n enabled: true,\n content: 'Din lön',\n backgroundColor: 'rgba(0,0,0,0.75)',\n },\n },\n ],\n };\n}\n\n// Format labels to Swedish locale\nfunction formatLabelNumber(value) {\n if (typeof value === 'number') {\n return value.toLocaleString('sv');\n }\n return value;\n}\n\n// Check if chart has data to display\nexport function chartHasData(data, customPresentation, min = 0, max = 21) {\n if (customPresentation && data && data.datasets[0]) {\n let allData = [];\n\n data.datasets.forEach(dataset => {\n allData = [...allData, ...dataset.data.filter(Boolean)];\n });\n\n return allData.length > min && allData.length <= max;\n }\n\n return (\n data &&\n data.datasets[0] &&\n data.datasets[0].data.length > min &&\n data.datasets[0].data.length <= max\n );\n}\n\nexport const boxOptions = {\n responsive: true,\n legend: {\n position: 'bottom',\n },\n title: {\n display: false,\n },\n scales: {\n xAxes: [\n {\n ticks: {\n beginAtZero: false,\n callback: value => formatLabelNumber(value),\n },\n gridLines: { display: true },\n scaleLabel: {\n display: true,\n },\n },\n ],\n yAxes: [\n {\n gridLines: { display: false },\n ticks: {\n beginAtZero: false,\n callback: value => formatLabelNumber(value),\n },\n scaleLabel: {\n display: true,\n },\n },\n ],\n },\n events: ['hover'],\n onHover: null,\n};\n\nexport const barOptions = {\n responsive: true,\n title: {\n display: false,\n },\n legend: {\n position: 'bottom',\n },\n scales: {\n xAxes: [\n {\n gridLines: { display: false },\n scaleLabel: {\n display: true,\n },\n ticks: {\n callback: value => formatLabelNumber(value),\n },\n },\n ],\n yAxes: [\n {\n gridLines: { display: true },\n ticks: {\n beginAtZero: true,\n callback: value => formatLabelNumber(value),\n },\n scaleLabel: {\n display: true,\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label(tooltipItem, d) {\n let label = d.datasets[tooltipItem.datasetIndex].label || '';\n\n if (label) {\n label += ': ';\n }\n\n label += Number(tooltipItem.yLabel).toLocaleString('sv');\n return `${label} kronor per månad`;\n },\n },\n },\n};\n\nexport const lineOptions = {\n responsive: true,\n title: {\n display: false,\n },\n legend: {\n position: 'bottom',\n labels: {\n usePointStyle: true,\n },\n },\n scales: {\n xAxes: [\n {\n gridLines: { display: true },\n scaleLabel: {\n display: true,\n },\n ticks: {\n autoSkip: true,\n maxTicksLimit: 32,\n callback: value => formatLabelNumber(value),\n },\n },\n ],\n yAxes: [\n {\n gridLines: { display: true },\n ticks: {\n beginAtZero: true,\n callback: value => formatLabelNumber(value),\n },\n scaleLabel: {\n display: true,\n },\n },\n ],\n },\n events: ['hover'],\n onHover: null,\n};\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport 'chartjs-plugin-annotation';\nimport Chart from 'atoms/chart/Chart';\nimport { isTimeUnit } from 'lib/time';\nimport TabRow from 'atoms/tabrow/TabRow';\nimport Tab from 'atoms/tab/Tab';\nimport {\n barOptions,\n boxOptions,\n chartHasData,\n genData,\n genLabels,\n getAnnotations,\n lineOptions,\n} from 'lib/salaryGraph';\nimport styles from './SalaryGraph.module.css';\n\nconst SalaryGraph = ({\n customPresentation,\n datasetLabel,\n salaryData,\n selectedPresentation,\n salaryMarkerValue,\n}) => {\n const isCustomPresentation =\n customPresentation && selectedPresentation.length === 2;\n const [activeTab, setActiveTab] = useState('box');\n const [xMin, setXMin] = useState(0);\n const [xMax, setXMax] = useState(0);\n const [yMin, setYMin] = useState(0);\n const [yMax, setYMax] = useState(0);\n\n // Labels\n const barLabels = genLabels(salaryData, 'bar');\n const lineLabels = genLabels(salaryData, 'line');\n const boxLabels = genLabels(salaryData, 'box');\n\n // Chart.js data objects\n const barData = genData(salaryData, 'bar', barLabels, isCustomPresentation);\n const lineData = genData(\n salaryData,\n 'line',\n lineLabels,\n isCustomPresentation\n );\n const boxData = genData(salaryData, 'box', boxLabels, isCustomPresentation);\n\n const labelString = datasetLabel[0].REPORT_TEXT || '';\n\n console.log('salaryData:');\n console.log(salaryData);\n\n console.log('lineData:');\n console.log(lineData);\n\n console.log('lineLabels');\n console.log(lineLabels);\n\n // Returns a boolean, is there any chart data at all?\n const hasData = [\n chartHasData(barData, isCustomPresentation),\n chartHasData(lineData, isCustomPresentation),\n chartHasData(boxData, isCustomPresentation),\n ].some(bool => bool);\n\n // Stores max and min values for X and Y Axis from the current graph\n const setValues = (x, y) => {\n setXMin(typeof x.min === 'number' ? x.min : 0);\n setXMax(typeof x.max === 'number' ? x.max : 0);\n setYMin(typeof y.min === 'number' ? y.min : 0);\n setYMax(typeof y.max === 'number' ? y.max : 0);\n };\n\n /*\n * Not every presentation is suitable for line charts\n * This code checks if the middle value in salaryData looks like time units\n * Additionally it checks for substring \"år\" in the labelString variable\n * TODO: Consider this implementation\n */\n const showLineDiagram =\n isTimeUnit(salaryData[Math.floor(salaryData.length / 2)]?.breakby1) &&\n labelString.toLowerCase().search('år') > -1;\n\n // Configure Chart.js options object\n const addChartOptions = (obj, type) => {\n const otherLabel = 'kronor per månad';\n\n const newConfig = {\n ...obj,\n annotation: getAnnotations(salaryMarkerValue, activeTab),\n };\n\n if (type === 'box') {\n newConfig.scales.xAxes[0].scaleLabel.labelString = otherLabel;\n newConfig.scales.yAxes[0].scaleLabel.labelString = labelString;\n return newConfig;\n }\n\n newConfig.scales.xAxes[0].scaleLabel.labelString = labelString;\n newConfig.scales.yAxes[0].scaleLabel.labelString = otherLabel;\n\n return newConfig;\n };\n\n // Set a default chart type initially\n useEffect(() => {\n if (chartHasData(barData, isCustomPresentation)) {\n setActiveTab('bar');\n return;\n }\n\n if (chartHasData(boxData, isCustomPresentation)) {\n setActiveTab('box');\n return;\n }\n\n if (chartHasData(lineData, isCustomPresentation, 1) && showLineDiagram) {\n setActiveTab('line');\n }\n\n // eslint-disable-next-line\n }, [isCustomPresentation]);\n\n return (\n <>\n {hasData && (\n
    \n \n {chartHasData(barData, isCustomPresentation) && (\n setActiveTab('bar')}\n />\n )}\n {chartHasData(boxData, isCustomPresentation) && (\n setActiveTab('box')}\n />\n )}\n {chartHasData(lineData, isCustomPresentation, 1) &&\n showLineDiagram &&\n !isCustomPresentation && (\n setActiveTab('line')}\n />\n )}\n \n\n {activeTab === 'box' && (\n \n )}\n {activeTab === 'bar' && (\n \n )}\n {activeTab === 'line' && (\n \n )}\n
    \n )}\n \n );\n};\n\nSalaryGraph.propTypes = {\n customPresentation: PropTypes.bool.isRequired,\n datasetLabel: PropTypes.arrayOf(PropTypes.object),\n salaryData: PropTypes.arrayOf(PropTypes.object).isRequired,\n selectedPresentation: PropTypes.arrayOf(PropTypes.shape({})),\n salaryMarkerValue: PropTypes.number,\n};\n\nSalaryGraph.defaultProps = {\n datasetLabel: [],\n selectedPresentation: [],\n salaryMarkerValue: null,\n};\n\nexport default SalaryGraph;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Input from 'atoms/input/Input';\nimport styles from './SalaryMarker.module.css';\nimport { IconInfoCircle } from 'tabler-icons';\n\nconst SalaryMarker = ({ salaryMarkerValue, setSalaryMarkerValue }) => {\n const formatNumberForDisplay = number => {\n return number.toLocaleString('sv-SE');\n };\n\n const handleChange = e => {\n const unformattedValue = e.target.value.replace(/\\s/g, '');\n setSalaryMarkerValue(Number(unformattedValue));\n };\n\n return (\n
    \n
    \n
    \n
    \n \n

    \n Ange din egen månadslön och jämför med värdena i diagrammet.\n

    \n

    \n Ligger din lön utanför skalan syns den inte i diagrammet.\n

    \n
    \n Information\n
    \n \n
    \n \n
    \n );\n};\n\nSalaryMarker.propTypes = {\n salaryMarkerValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n setSalaryMarkerValue: PropTypes.func.isRequired,\n};\n\nSalaryMarker.defaultProps = {\n salaryMarkerValue: '',\n};\n\nexport default SalaryMarker;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Loader from 'atoms/loader/Loader';\nimport { isTotalRow } from 'lib/salaryTable';\nimport { numberOfRespondents } from 'lib/antal';\nimport styles from './ReportSection.module.css';\nimport SalaryTable from './salarytable/SalaryTable';\nimport SalaryGraph from './salarygraph/SalaryGraph';\nimport SalaryMarker from './salarygraph/salarymarker/SalaryMarker';\n\nconst ReportSection = ({\n activeDataSource,\n customPresentation,\n fetchingData,\n measureVar,\n selectedPresentation,\n setMeasureVar,\n tableData,\n}) => {\n const [salaryMarkerValue, setSalaryMarkerValue] = useState(null);\n return (\n
    \n {fetchingData ? (\n \n ) : (\n <>\n {tableData && tableData.length > 0 ? (\n <>\n {tableData.find(row => {\n return (\n isTotalRow(\n row,\n customPresentation && selectedPresentation.length > 1\n ) && numberOfRespondents(row.antal)[1] <= 30\n );\n }) ? (\n
    \n

    \n \n Statistikunderlaget är för litet. Resultat visas inte om\n urvalet är färre än 30.\n \n

    \n

    \n Bocka för fler likartade val, tag bort något val eller gör\n ett helt nytt val.\n

    \n
    \n ) : (\n <>\n \n \n i.isReverse)\n ? [...tableData].reverse()\n : tableData\n }\n selectedPresentation={selectedPresentation}\n salaryMarkerValue={salaryMarkerValue}\n />\n \n )}\n \n ) : (\n
    Data saknas för denna sökning.
    \n )}\n \n )}\n
    \n );\n};\n\nReportSection.propTypes = {\n activeDataSource: PropTypes.shape({}),\n customPresentation: PropTypes.bool.isRequired,\n fetchingData: PropTypes.bool.isRequired,\n measureVar: PropTypes.string.isRequired,\n selectedPresentation: PropTypes.arrayOf(Object),\n setMeasureVar: PropTypes.func.isRequired,\n tableData: PropTypes.arrayOf(Object).isRequired,\n};\n\nReportSection.defaultProps = {\n activeDataSource: null,\n selectedPresentation: [],\n};\n\nexport default ReportSection;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ExplanationText from 'atoms/explanationtext/ExplanationText';\nimport styles from './ExplanationItem.module.css';\nimport boxPlotImage from '../../../../../images/box_plot_image.png';\nimport Accordion from '../../../../../atoms/accordion/Accordion';\n\nconst ExplanationItem = ({ header, textId, textItem }) => {\n const { groupId } = textItem;\n const renderImage = groupId === 'graph' && textId === 'box';\n\n return (\n
    \n {textId !== 'main' &&

    {header}

    }\n \n\n {renderImage && (\n \n \n \n )}\n
    \n );\n};\n\nExplanationItem.propTypes = {\n header: PropTypes.string,\n textId: PropTypes.string.isRequired,\n textItem: PropTypes.shape({\n id: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nExplanationItem.defaultProps = {\n header: '',\n};\n\nexport default ExplanationItem;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport Loader from 'atoms/loader/Loader';\nimport Accordion from 'atoms/accordion/Accordion';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport { useHistory } from 'react-router-dom';\nimport styles from './ExplanationGroup.module.css';\nimport ExplanationItem from './explanationitem/ExplanationItem';\n\nconst measurementsSortOrder = [\n 'main',\n 'average',\n 'median',\n 'lowquartile',\n 'highquartile',\n '10perc',\n '90perc',\n];\n\nconst graphsSortOrder = ['bar', 'line', 'box'];\n\nconst ExplanationGroup = ({ available, groupId, textId, title }) => {\n // TODO: Refactor this component, it now holds data about its toggled state\n // This could maybe be moved to the accordion compoonent somehow.\n\n const { user, signout } = useAuth();\n const { token } = user;\n\n const [, setState] = useState();\n const [items, setItems] = useState([]);\n const [clicks, setClicks] = useState(0);\n const [toggled, setToggled] = useState(false);\n const [fetchingData, setFetchingData] = useState(false);\n\n const disabled = !toggled && fetchingData;\n\n const history = useHistory();\n\n const handleError = useCallback(\n error => {\n if (error.status === 401) {\n signout();\n history.push('/logga-ut');\n } else {\n setState(() => {\n throw error;\n });\n }\n },\n [signout, history]\n );\n\n const handleClick = () => {\n setToggled(!toggled);\n\n if (!toggled) {\n setClicks(prevState => prevState + 1);\n }\n };\n\n useEffect(() => {\n if (clicks === 1 || (clicks > 0 && items.length < 1 && !fetchingData)) {\n setFetchingData(true);\n if (!available) return;\n const request = [\n {\n groupId,\n textId,\n },\n ];\n\n ApiService.getTexts(request, token)\n .then(responseData => {\n const mainIdx = responseData.findIndex(a => a.textId === 'main');\n const mainText = responseData.splice(mainIdx, 1);\n responseData.sort((a, b) => a.header.localeCompare(b.header, 'sv'));\n\n if (mainText.length > 0) {\n responseData.splice(0, 0, mainText[0]);\n }\n\n setItems(responseData);\n })\n .catch(error => handleError(error))\n .finally(() => setFetchingData(false));\n }\n // eslint-disable-next-line\n }, [available, clicks, groupId, handleError, token]);\n\n // Reset accordion if data source changes\n useEffect(() => {\n setClicks(0);\n setToggled(false);\n }, [textId]);\n\n const sortMeasurements = () =>\n groupId === 'measurements' &&\n items.length > 0 &&\n items.sort(\n (a, b) =>\n measurementsSortOrder.indexOf(a.textId) -\n measurementsSortOrder.indexOf(b.textId)\n );\n\n const sortGraphs = () =>\n groupId === 'graph' &&\n items.length > 0 &&\n items.sort(\n (a, b) =>\n graphsSortOrder.indexOf(a.textId) - graphsSortOrder.indexOf(b.textId)\n );\n\n useEffect(() => {\n sortMeasurements();\n sortGraphs();\n }, [items]);\n\n return (\n \n {fetchingData ? (\n
    \n \n
    \n ) : (\n <>\n {items.length > 0 &&\n items.map(item => (\n \n ))}\n \n )}\n \n );\n};\n\nExplanationGroup.propTypes = {\n available: PropTypes.bool,\n groupId: PropTypes.string.isRequired,\n textId: PropTypes.arrayOf(PropTypes.string),\n title: PropTypes.string.isRequired,\n};\n\nExplanationGroup.defaultProps = {\n available: true,\n textId: [],\n};\n\nexport default ExplanationGroup;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './InstructionsVideo.module.css';\n\n\nconst InstructionsVideo = ({ level }) => {\n\n const [videoError, setVideoError] = useState(false);\n const video = `${process.env.PUBLIC_URL}/instructions_video/instructionsVideo.mp4`;\n const videoAdvanced = `${process.env.PUBLIC_URL}/instructions_video/instructionsVideoAdvanced.mp4`;\n\n return (\n <>\n {level == 'enkel' &&\n
    \n \n
    \n }\n {level == 'avancerad' &&\n
    \n \n
    \n }\n \n );\n};\n\nexport default InstructionsVideo;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Accordion from 'atoms/accordion/Accordion';\nimport Section from 'atoms/section/Section';\nimport ExplanationGroup from './explanationgroup/ExplanationGroup';\nimport InstructionsVideo from './explanationgroup/instructionsvideo/InstructionsVideo';\nimport styles from './Explanations.module.css';\n\nconst Explanations = ({ filterList, forbund, id }) => {\n var newFilterList = filterList\n .map(filterItem => filterItem.sel_var)\n .concat('LON');\n\n if (forbund === 'SN' || 'LA' || 'CF') {\n newFilterList = newFilterList.concat('FLON');\n }\n\n const explanationGroups = [\n {\n groupId: 'statistics',\n title: 'Var kommer statistiken ifrån?',\n },\n\n {\n groupId: 'graph',\n title: 'Olika diagram',\n textId: ['line', 'bar', 'box'],\n },\n\n {\n groupId: 'measurements',\n title: 'Statistiska mått',\n },\n\n {\n groupId: 'menuselection',\n title: 'Förklaring av filter och begrepp',\n textId: newFilterList,\n available: newFilterList.length > 0,\n },\n ];\n return (\n \n \n\n {explanationGroups\n .filter(explanationGroup => explanationGroup.available !== false)\n .map(explanationGroup => (\n
    \n \n
    \n ))}\n \n );\n};\n\nconst startVideoAdvance = isAdvance => {\n if (isAdvance) {\n window.open(`Instruktionsfilm/avancerad`, '', 'height=500,width=900');\n } else {\n window.open(`Instruktionsfilm/enkel`, '', 'height=500,width=900');\n }\n};\n\nExplanations.propTypes = {\n filterList: PropTypes.arrayOf(Object).isRequired,\n id: PropTypes.string.isRequired,\n};\n\nexport default Explanations;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Select from 'atoms/select/Select';\nimport styles from './CustomPresentation.module.css';\n\nconst CustomPresentation = ({ presentationList, setSelectedPresentation }) => {\n const [breakby1, setBreakby1] = useState();\n const [breakby2, setBreakby2] = useState();\n\n useEffect(() => {\n if (breakby1 != null && breakby2 != null) {\n setSelectedPresentation([breakby1, breakby2]);\n }\n // eslint-disable-next-line\n }, [breakby1, breakby2]);\n\n const handleSelectBreakby1 = e => {\n try {\n setBreakby1(JSON.parse(e.target.value));\n } catch (err) {}\n };\n\n const handleSelectBreakby2 = e => {\n try {\n setBreakby2(JSON.parse(e.target.value));\n } catch (err) {}\n };\n\n return (\n
    \n

    Skapa egen rapport

    \n
    \n {presentationList && (\n <>\n
    \n handleSelectBreakby1(e)}\n options={[\n {\n key: 'null_breakby1',\n value: null,\n desc: 'Välj ett alternativ',\n },\n ...presentationList\n .filter(\n element => element?.BREAKBY_VAR !== breakby2?.BREAKBY_VAR\n )\n .map(p => ({\n key: p.BREAKBY_VAR,\n value: JSON.stringify(p),\n desc: p.REPORT_TEXT,\n })),\n ]}\n />\n
    \n
    \n handleSelectBreakby2(e)}\n options={[\n {\n key: 'null_breakby2',\n value: null,\n desc: 'Välj ett alternativ',\n },\n\n ...presentationList\n .filter(\n element => element?.BREAKBY_VAR !== breakby1?.BREAKBY_VAR\n )\n .map(p => ({\n // ...presentationList.map(p => ({\n key: p.BREAKBY_VAR,\n value: JSON.stringify(p),\n desc: p.REPORT_TEXT,\n })),\n ]}\n />\n
    \n \n )}\n
    \n
    \n );\n};\n\nCustomPresentation.propTypes = {\n presentationList: PropTypes.arrayOf(Object).isRequired,\n setSelectedPresentation: PropTypes.func.isRequired,\n};\n\nexport default CustomPresentation;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './Statisticsometer.module.css';\n\nconst ROUND_TO = 5;\nconst LIMIT = 97;\n\nconst Statisticsometer = ({\n currentRespondents,\n hasPartiallyFilledFilters,\n totalRespondents,\n variant,\n marginBottom,\n}) => {\n const percent = (currentRespondents / totalRespondents) * 100;\n const roundedPercent = Math.ceil(percent / ROUND_TO) * ROUND_TO;\n\n const presentationText = () => {\n if (roundedPercent < 10) {\n return 'Visar statistik som baseras på mindre än 10 % av tillgängligt dataunderlag';\n }\n\n if (roundedPercent >= LIMIT) {\n return `Visar statistik som baseras på ${\n hasPartiallyFilledFilters ? 'ca' : ''\n } 100 % av tillgängligt dataunderlag`;\n }\n\n return `Visar statistik som baseras på ca ${roundedPercent} % av tillgängligt dataunderlag`;\n };\n\n return (\n \n
    {presentationText()}
    \n = LIMIT ? styles.full : ''} ${\n variant === 'advanced' ? styles.advanced : styles.overview\n }`}\n style={{ width: `${roundedPercent >= 100 ? 100 : roundedPercent}%` }}\n />\n
    \n );\n};\n\nStatisticsometer.propTypes = {\n currentRespondents: PropTypes.number.isRequired,\n hasPartiallyFilledFilters: PropTypes.bool.isRequired,\n totalRespondents: PropTypes.number.isRequired,\n variant: PropTypes.string,\n marginBottom: PropTypes.bool,\n};\n\nStatisticsometer.defaultProps = {\n variant: 'overview',\n marginBottom: false,\n};\n\nexport default Statisticsometer;\n","import React, { useEffect, useState, useCallback } from 'react';\nimport ToolBar from 'components/advanced/toolbar/ToolBar';\nimport ActiveFilters from 'components/advanced/activefilters/ActiveFilters';\nimport Filters from 'components/advanced/filters/Filters';\nimport DataSource from 'components/advanced/datasource/DataSource';\nimport Presentation from 'components/advanced/presentation/Presentation';\nimport ReportSection from 'components/advanced/reportsection/ReportSection';\nimport Explanations from 'components/advanced/explanations/Explanations';\nimport CustomPresentation from 'components/advanced/custompresentation/CustomPresentation';\nimport Statisticsometer from 'atoms/statisticsometer/Statisticsometer';\nimport { useAuth } from 'services/UseAuth';\nimport { useHistory } from 'react-router-dom';\nimport ApiService from 'services/ApiService';\nimport { numberOfRespondents } from 'lib/antal';\nimport { resetMeasureVarToLon, logGetReportRequest } from 'lib/pageAdvanced';\nimport isEmpty from 'lib/emptyValues';\nimport styles from './PageAdvanced.module.css';\nimport Notification from '../../atoms/notification/Notification';\nimport ErrorNotification from '../../atoms/errornotification/ErrorNotification';\n\nconst PageAdvanced = () => {\n const [filterList, setFilterList] = useState([]);\n const [tableData, setTableData] = useState([]);\n const [fetchingData, setFetchingData] = useState(true);\n\n const [dataSources, setDataSources] = useState([]);\n const [activeDataSource, setActiveDataSource] = useState();\n const [measureVar, setMeasureVar] = useState('LON');\n const [activeFilters, setActiveFilters] = useState([]);\n const [disableMenuselection, setDisableMenuselection] = useState(false);\n\n const [, setState] = useState();\n const { user, signout, autoRefreshToken } = useAuth();\n const { forbund, token } = user;\n\n const [totalRespondents, setTotalRespondents] = useState(1);\n const [currentRespondents, setCurrentRespondents] = useState(1);\n\n const [presentationList, setPresentationList] = useState();\n const [selectedPresentation, setSelectedPresentation] = useState([]);\n const [allowCustomPresentation, setAllowCustomPresentation] = useState(false);\n const [customPresentation, setCustomPresentation] = useState(false);\n\n const [selectedUnion, setSelectedUnion] = useState(null);\n\n const [shouldGetReportData, setShouldGetReportData] = useState(true);\n\n const [\n defaultYearFromDeepAnalysis,\n setDefaultYearFromDeepAnalysis,\n ] = useState(0);\n const [defaultYearToDeepAnalysis, setDefaultYearToDeepAnalysis] = useState(0);\n\n const sortedSelectedValues = activeFilters.reduce((acc, curr) => {\n acc[curr.sel_var] = curr.values.length;\n return acc;\n }, {});\n\n const hasPartiallyFilledFilters = filterList.some(\n filter =>\n sortedSelectedValues[filter.sel_var] &&\n sortedSelectedValues[filter.sel_var] < filter.list.length\n );\n\n const history = useHistory();\n\n const handleError = useCallback(\n error => {\n if (error.status === 401) {\n signout();\n history.push('/logga-ut');\n } else {\n setState(() => {\n console.error(error);\n });\n }\n },\n [signout, history]\n );\n\n // Någon slags init.\n useEffect(() => {\n let active = true;\n\n if (active) {\n const promiseUnion = new Promise((resolve, reject) =>\n ApiService.getUnion(user.token)\n .then(data => resolve(data))\n .catch(error => reject(handleError(error)))\n );\n\n const request = {\n forbund: [forbund, 'SA'],\n };\n\n const promiseFds = new Promise((resolve, reject) =>\n ApiService.getActiveFds(request, token)\n .then(data => resolve(data))\n .catch(error => reject(handleError(error)))\n );\n\n Promise.all([promiseUnion, promiseFds]).then(([unionData, fdsData]) => {\n setSelectedUnion(unionData);\n setDataSources(fdsData);\n\n // Admin can define a default source in the admin panel\n const defaultSource =\n fdsData.find(\n ds =>\n ds.YEAR === unionData.defaultDataSource?.year &&\n ds.DSL1 === unionData.defaultDataSource?.DSL1 &&\n ds.DSL2 === unionData.defaultDataSource?.DSL2 &&\n ds.FORBUND === unionData.forbundskodSas\n ) ||\n // DSL2 Isn't required\n fdsData.find(\n ds =>\n ds.YEAR === unionData.defaultDataSource?.year &&\n ds.DSL1 === unionData.defaultDataSource?.DSL1 &&\n ds.FORBUND === unionData.forbundskodSas\n ) ||\n // If union doesn't have the data source\n fdsData.find(\n ds =>\n ds.YEAR === unionData.defaultDataSource?.year &&\n ds.DSL1 === unionData.defaultDataSource?.DSL1 &&\n ds.DSL2 === unionData.defaultDataSource?.DSL2\n ) ||\n // DSL2 Isn't required\n fdsData.find(\n ds =>\n ds.YEAR === unionData.defaultDataSource?.year &&\n ds.DSL1 === unionData.defaultDataSource?.DSL1\n ) ||\n // Datasources can also be flagged as \"DEFAULT\" in SAS\n fdsData\n .filter(ds => ds.YEAR === unionData.defaultYearToDeepAnalysis)\n .find(ds => ds.DEFAULT === 1) ||\n // The config is optional in both SAS and the admin panel, the standard year isn't\n fdsData.find(ds => ds.YEAR === unionData.defaultYearToDeepAnalysis) ||\n fdsData.sort((a, b) => b.YEAR - a.YEAR)[0];\n\n setActiveDataSource({\n forbund: defaultSource.FORBUND,\n dsl1: defaultSource.DSL1,\n dsl2: defaultSource.DSL2,\n measureVar: defaultSource.measure_var,\n year: defaultSource.YEAR,\n });\n\n setDefaultYearFromDeepAnalysis(unionData.defaultYearFromDeepAnalysis);\n setDefaultYearToDeepAnalysis(unionData.defaultYearToDeepAnalysis);\n setAllowCustomPresentation(unionData.allowCustomPresentation);\n });\n\n window.scrollTo(0, 0);\n }\n return () => {\n active = false;\n };\n // eslint-disable-next-line\n }, []);\n\n // Set selected presentation if theres a list\n useEffect(() => {\n if (presentationList && presentationList.length > 0) {\n if (!selectedPresentation.length) {\n setSelectedPresentation([presentationList[0]]);\n }\n }\n }, [presentationList]);\n\n const handleDataSourceChange = newDataSource => {\n setActiveDataSource(newDataSource);\n\n if (presentationList && presentationList.length > 0) {\n const isSelectedBreakbyAvailable = presentationList.some(\n presentation =>\n presentation.BREAKBY_VAR === selectedPresentation[0]?.BREAKBY_VAR\n );\n\n if (!isSelectedBreakbyAvailable) {\n setSelectedPresentation([presentationList[0]]);\n }\n } else {\n setSelectedPresentation([]);\n }\n };\n\n // Get configured menuselections\n useEffect(() => {\n let active = true;\n\n console.log(\"useEffect activeDataSource\", activeDataSource);\n if (activeDataSource != null) {\n resetMeasureVarToLon(activeDataSource, setMeasureVar);\n\n setDisableMenuselection(true);\n\n const request = {\n Forbund: activeDataSource.forbund,\n Dsl1: activeDataSource.dsl1,\n Dsl2: activeDataSource.dsl2, // FIXME: Vad händer när dsl2 är null?\n Year: activeDataSource.year,\n Role: user.role === 'fortoendevald' ? 'fortoendevald' : 'medlem',\n };\n\n if (active && activeFilters.length === 0) {\n ApiService.getPresentations(request, token)\n .then(data => {\n // Configured filters.\n const filters = data.filters\n .filter(filter => filter.isActive)\n .sort((a, b) => a.filterOrder - b.filterOrder)\n .reduce((acc, curr) => {\n if (acc[curr.sel_var] == null) {\n acc[curr.sel_var] = {\n options: curr.options\n .map(opt => {\n return {\n ...opt,\n sel_var: curr.sel_var,\n SELECTION_DATATYPE: curr.SELECTION_DATATYPE,\n name: curr.SELECTION_TEXT,\n value: opt.value,\n };\n })\n .filter(opt => !isEmpty(opt.value))\n .sort((a, b) =>\n curr.sortOptionsByNumber\n ? Number(a.value) - Number(b.value)\n : a.description.localeCompare(b.description, 'sv')\n ),\n name: curr.SELECTION_TEXT,\n sel_var: curr.sel_var,\n };\n } else {\n acc[curr.sel_var].options.push(...curr.options);\n }\n return acc;\n }, {});\n const filterObjects = Object.values(filters).map(obj => ({\n list: [...obj.options],\n name: obj.name,\n sel_var: obj.sel_var,\n }));\n setFilterList(filterObjects);\n\n // Configured breakbys.\n if (data.breakbys.length > 0) {\n setPresentationList(\n data.breakbys\n .filter(breakbyItem => breakbyItem.isActive)\n .sort((a, b) => {\n if (a.breakbyOrder != null && b.breakbyOrder != null) {\n return a.breakbyOrder - b.breakbyOrder;\n }\n return `${a.REPORT_TEXT}`.localeCompare(\n b.REPORT_TEXT,\n 'sv'\n );\n })\n .map(\n ({\n breakbyVar,\n breakbyText,\n sortOptionsByLetters,\n isReverse,\n }) => ({\n BREAKBY_VAR: breakbyVar,\n REPORT_TEXT: breakbyText,\n sortOptionsByLetters,\n isReverse,\n })\n )\n );\n } else {\n // FIXME: Agera på detta. Ibland är listan över breakbys tom\n }\n\n // Update total number.\n const dataSource = dataSources.find(\n source =>\n source.FORBUND === activeDataSource.forbund &&\n source.DSL1 === activeDataSource.dsl1 &&\n source.DSL2 === activeDataSource.dsl2 &&\n source.YEAR === activeDataSource.year\n );\n\n if (dataSource) {\n setTotalRespondents(dataSource.total);\n }\n })\n .catch(error => handleError(error))\n .finally(() => setDisableMenuselection(false));\n }\n }\n return () => {\n active = false;\n };\n // eslint-disable-next-line\n }, [activeDataSource, activeFilters]);\n\n useEffect(() => {\n let active = Boolean(filterList.length && activeFilters.length);\n\n if (activeDataSource != null) {\n let filter;\n if (\n activeFilters.length > 0 &&\n activeFilters.filter(({ values }) => values.length).length\n ) {\n filter = activeFilters\n .filter(activeFilter => activeFilter.values.length)\n .map(activeFilter => {\n const s = activeFilter.values.reduce((acc, curr) => {\n return `${\n activeFilter?.selection_datatype === 'N'\n ? curr.value\n : `'${curr.value}'`\n }${acc ? `, ${acc}` : ''}`;\n }, null);\n\n return `${activeFilter.sel_var} in (${s})`;\n });\n }\n\n const request = {\n Forbund: activeDataSource.forbund,\n Dsl1: activeDataSource.dsl1,\n Dsl2: activeDataSource.dsl2,\n Year: activeDataSource.year,\n filter,\n };\n\n if (active) {\n setDisableMenuselection(true);\n\n // Only used to update \"antal\" (counter) for each menuselection when changes are made.\n ApiService.getMenuselections(request, token)\n .then(data => {\n const filters = data\n .filter(fltr =>\n filterList.some(\n activeFltr => fltr.sel_var === activeFltr.sel_var\n )\n )\n .reduce(\n (acc, curr) => ({\n ...acc,\n [curr.sel_var]: acc[curr.sel_var]\n ? [...acc[curr.sel_var], curr]\n : [curr],\n }),\n {}\n );\n\n if (!Object.keys(filters).length) return;\n const newState = filterList.map(fltr => {\n const newOptions = filters[fltr.sel_var];\n if (newOptions)\n return {\n name: fltr.name,\n sel_var: fltr.sel_var,\n list: fltr.list.map(listItem => {\n const newOpt = newOptions.find(\n opt => opt.value === listItem.value\n );\n\n return {\n ...listItem,\n ...(newOpt && {\n antal: newOpt.antal,\n selectable: newOpt.selectable,\n }),\n };\n }),\n };\n\n return fltr;\n });\n\n setFilterList(newState);\n })\n .catch(error => handleError(error))\n .finally(() => setDisableMenuselection(false));\n }\n }\n\n return () => {\n active = false;\n };\n // eslint-disable-next-line\n }, [activeFilters]);\n\n useEffect(() => {\n let active = true;\n\n if (shouldGetReportData === true) {\n if (\n presentationList != null &&\n selectedPresentation != null &&\n activeDataSource != null\n ) {\n let filter;\n\n if (\n activeFilters.length > 0 &&\n activeFilters.filter(({ values }) => values.length).length\n ) {\n filter = activeFilters\n .filter(activeFilter =>\n filterList.some(\n fltr =>\n activeFilter.values.length &&\n fltr.sel_var === activeFilter.sel_var\n )\n )\n .map(activeFilter => {\n const s = activeFilter.values.reduce((acc, curr) => {\n return `${\n activeFilter?.selection_datatype === 'N'\n ? curr.value\n : `'${curr.value}'`\n }${acc ? `, ${acc}` : ''}`;\n }, null);\n\n return `${activeFilter.sel_var} in (${s})`;\n });\n }\n\n const request = {\n Forbund: activeDataSource.forbund,\n Dsl1: activeDataSource.dsl1,\n Dsl2: activeDataSource.dsl2,\n measure_var: measureVar,\n Year: activeDataSource.year,\n breakby1: selectedPresentation[0].BREAKBY_VAR\n ? selectedPresentation[0].BREAKBY_VAR\n : null,\n breakby2:\n selectedPresentation.length > 1\n ? selectedPresentation[1].BREAKBY_VAR\n : null,\n filter,\n };\n\n if (active) {\n setFetchingData(true);\n\n logGetReportRequest(request);\n\n ApiService.getReport(request, token)\n .then(data =>\n setTableData(() => {\n if (\n selectedPresentation.length > 0 &&\n selectedPresentation[0].sortOptionsByLetters\n ) {\n return data.sort(\n (a, b) =>\n a.breakby1 && a.breakby1.localeCompare(b.breakby1, 'sv')\n );\n }\n return data;\n })\n )\n // TODO: Just check if token is about to expire once, this code is a little everywhere\n .then(() => autoRefreshToken(token))\n .catch(error => handleError(error))\n .finally(() => setFetchingData(false));\n }\n }\n } else {\n setShouldGetReportData(true);\n }\n\n return () => {\n active = false;\n };\n\n // eslint-disable-next-line\n }, [activeFilters, selectedPresentation, measureVar]);\n\n useEffect(() => {\n if (activeFilters.length > 0) {\n const current = Math.ceil(\n []\n .concat(\n ...activeFilters\n .slice(activeFilters.length - 1)\n .map(item => item.values)\n )\n .reduce((a, b) => {\n const low = numberOfRespondents(b.antal)[0];\n const high = numberOfRespondents(b.antal)[1];\n const diff = (high - low) / 2;\n\n if (Number(low) && Number(high)) {\n return a + low + diff;\n }\n\n return a;\n }, 0)\n );\n setCurrentRespondents(current);\n } else {\n setCurrentRespondents(totalRespondents);\n }\n // eslint-disable-next-line\n }, [activeFilters, totalRespondents]);\n\n useEffect(() => {\n setShouldGetReportData(false);\n setActiveFilters([]);\n }, [activeDataSource]);\n\n // Tillåt ej \"Egen rapport\" om förbundet är SI (CF) och alternativ valt är chefslöner eller nyexaminerade\n useEffect(() => {\n\n if (activeDataSource) {\n if (\n (activeDataSource.forbund === 'CF' && activeDataSource.dsl2 === 'CH') ||\n activeDataSource.dsl2 === 'FJ'\n ) {\n setAllowCustomPresentation(false);\n } else if (selectedUnion.allowCustomPresentation) {\n setAllowCustomPresentation(true);\n } else {\n setAllowCustomPresentation(false);\n }\n }\n }, [activeDataSource]);\n\n // Disable CustomPresentation (Egen rapport) when current active data source is changed\n useEffect(() => {\n setCustomPresentation(false);\n }, [activeDataSource]);\n\n return (\n
    \n
    \n \n \n
    \n
    \n {activeDataSource && (\n \n )}\n \n
    \n
    \n
    \n {activeFilters.length > 0 && (\n \n )}\n
    \n \n \n
    \n {customPresentation && (\n \n )}\n \n \n
    \n
    \n
    \n
    \n
    \n );\n};\n\nexport default PageAdvanced;\n","export function resetMeasureVarToLon(dataSource, setMeasureVar) {\n if (dataSource.measureVar != null && dataSource.measureVar.length <= 1) {\n setMeasureVar('LON');\n }\n}\n\nexport function logGetReportRequest(request) {\n console.log('----------------------------');\n console.log(`getReport Forbund: ${request.Forbund}`);\n console.log(`getReport DSL1: ${request.Dsl1}`);\n console.log(`getReport DSL2: ${request.Dsl2}`);\n console.log(`getReport Measurevar: ${request.measure_var}`);\n console.log(`getReport year: ${request.Year}`);\n console.log(`getReport breakby1: ${request.breakby1}`);\n console.log(`getReport breakby2: ${request.breakby2}`);\n console.log(`getReport filter: ${request.filter}`);\n console.log('----------------------------');\n}\n","/* eslint-disable camelcase */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './Panel.module.css';\n\nconst Panel = ({children, className, legend, admin, card}) => {\n const extraClasses = className && className !== '' ? className : '';\n const hasFieldset = card && card !== '';\n return (\n
    \n {hasFieldset ? (\n
    \n {legend}\n {children}\n
    \n ) : (\n
    \n {children}\n
    \n )}\n
    \n );\n};\n\nPanel.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]).isRequired,\n className: PropTypes.string,\n legend: PropTypes.string,\n card: PropTypes.bool,\n admin: PropTypes.bool\n};\n\nPanel.defaultProps = {\n className: '',\n legend: '',\n card: false,\n admin: false\n};\n\nexport default Panel;\n","export default {\n admin: {\n level2Header: 'Enkel sökning',\n level3Header: 'Avancerad sökning',\n level1Header: 'Konfiguration',\n previewConfigHeader: 'Öppen sökning',\n filterExplanations: 'Filter',\n commonTexts: 'Informationstexter',\n union: 'Länk till förbundet',\n notifications: 'Notiser',\n accounts: 'Användarkonton',\n visitiorStatistics: 'Besöksstatistik',\n applicationLog: 'Applikationslogg',\n copyConfigurationHeader: 'Kopiera konfiguration',\n monitoringHeader: 'Monitorering',\n monitoringRunInfoHeader: 'Körningsinformation',\n },\n};\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport {\n IconArrowNarrowDown,\n IconArrowNarrowUp,\n IconChevronsLeft,\n IconChevronsRight,\n IconCopy,\n IconDownload,\n IconEdit,\n IconPlus,\n IconRefresh,\n IconTrash,\n} from 'tabler-icons';\nimport styles from './Button.module.css';\n\nconst Button = ({ className, disabled, label, altText, onClick, style, type, variant, icon, flipIcon }) => {\n const extraClasses = className && className !== '' ? className : '';\n const computedAltText = altText && altText !== '' ? altText : label;\n return (\n \n {icon && (\n \n {icon === 'ArrowDown' && }\n {icon === 'ArrowUp' && }\n {icon === 'Copy' && }\n {icon === 'Download' && }\n {icon === 'Edit' && }\n {icon === 'Next' && }\n {icon === 'Plus' && }\n {icon === 'Previous' && }\n {icon === 'Refresh' && }\n {icon === 'Trash' && }\n \n )}\n \n {label}\n \n \n );\n};\n\nButton.propTypes = {\n className: PropTypes.string,\n disabled: PropTypes.bool,\n flipIcon: PropTypes.bool,\n label: PropTypes.string.isRequired,\n altText: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n icon: PropTypes.string,\n style: PropTypes.shape({}),\n type: PropTypes.oneOf(['submit', 'button']),\n variant: PropTypes.oneOf(['primary', 'secondary', 'ghost', 'delete']).isRequired,\n};\n\nButton.defaultProps = {\n altText: '',\n className: undefined,\n disabled: false,\n flipIcon: false,\n style: undefined,\n icon: undefined,\n type: 'button',\n};\n\nexport default Button;\n","/* eslint-disable camelcase */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './ButtonBar.module.css';\n\nconst ButtonBar = ({children, prevNext, marginBottom}) => {\n return (\n
    \n {children}\n
    \n );\n};\n\nButtonBar.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]).isRequired,\n prevNext: PropTypes.bool,\n marginBottom: PropTypes.bool\n};\n\nButtonBar.defaultProps = {\n prevNext: false,\n marginBottom: false\n};\n\nexport default ButtonBar;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Select from 'atoms/select/Select';\nimport styles from './DataSourceSelect.module.css';\n\nconst DataSourceSelect = ({\n dataSources,\n dsl1,\n dsl2,\n role,\n setDsl1,\n setDsl2,\n setRole,\n setYear,\n year,\n}) => {\n const [availableYears, setAvailableYears] = useState([]);\n const [availableDSL1, setAvailableDSL1] = useState([]);\n const [availableDSL2, setAvailableDSL2] = useState([]);\n\n useEffect(() => {\n if (dataSources == null) return;\n setAvailableYears(\n dataSources\n .reduce((acc, curr) => {\n if (!acc.includes(curr.YEAR)) acc.push(curr.YEAR);\n return acc;\n }, [])\n .sort()\n .reverse()\n );\n }, [dataSources]);\n\n useEffect(() => {\n // TODO: Något sätt att hämta ut DSL1/2 baserat på år.\n if (year == null) {\n // Nollställ\n setAvailableDSL1([]);\n setAvailableDSL2([]);\n return;\n }\n\n const dsl1Temp = dataSources\n .filter(dataSource => dataSource.YEAR === year)\n .reduce((acc, curr) => {\n if (!acc.some(a => a.dsl === curr.DSL1))\n acc.push({ dsl: curr.DSL1, desc: curr.DSL1_DESC });\n return acc;\n }, []);\n setAvailableDSL1(dsl1Temp);\n }, [year, dataSources]);\n\n useEffect(() => {\n if (dsl1 === '') {\n setDsl2('');\n return;\n }\n\n setAvailableDSL2(\n dataSources\n .filter(dataSource => dataSource.YEAR === year)\n .filter(dataSource => dataSource.DSL1 === dsl1)\n .map(dataSource => {\n return { dsl: dataSource.DSL2, desc: dataSource.DSL2_DESC };\n })\n .filter(datasource => datasource.dsl.length)\n );\n // eslint-disable-next-line\n }, [dsl1, dataSources, year]);\n\n useEffect(() => {\n if (dsl2 !== '' && !availableDSL2.some(d => d.dsl === dsl2)) setDsl2('');\n if (dsl1 !== '' && !availableDSL1.some(d => d.dsl === dsl1)) setDsl1('');\n }, [availableDSL1, availableDSL2]);\n\n return (\n
    \n {\n e.persist();\n setYear(Number(e.target.value));\n }}\n options={[\n { key: 'year_null', value: '', desc: 'Inget valt' },\n ...availableYears\n .map(availableYear => ({\n key: availableYear,\n value: availableYear,\n desc: availableYear,\n }))\n .reverse(),\n ]}\n />\n {\n e.persist();\n setDsl1(e.target.value);\n }}\n options={[\n { key: 'dsl1_null', value: '', desc: 'Inget valt' },\n ...availableDSL1.map(({ dsl, desc }) => ({\n key: dsl,\n value: dsl,\n desc,\n })),\n ]}\n />\n {\n e.persist();\n setDsl2(e.target.value);\n }}\n options={[\n { key: 'dsl2_null', value: '', desc: 'Inget valt' },\n ...availableDSL2.map(({ dsl, desc }) => ({\n key: dsl,\n value: dsl,\n desc,\n })),\n ]}\n />\n {role !== null && (\n {\n e.persist();\n setRole(e.target.value);\n }}\n options={[\n { key: 'medlem', value: 'medlem', desc: 'Medlem' },\n {\n key: 'fortroendevald',\n value: 'fortroendevald',\n desc: 'Förtroendevald',\n },\n ]}\n />\n )}\n
    \n );\n};\n\nDataSourceSelect.propTypes = {\n dataSources: PropTypes.arrayOf(Object),\n dsl1: PropTypes.string.isRequired,\n dsl2: PropTypes.string.isRequired,\n role: PropTypes.string,\n setDsl1: PropTypes.func.isRequired,\n setDsl2: PropTypes.func.isRequired,\n setRole: PropTypes.func,\n setYear: PropTypes.func.isRequired,\n year: PropTypes.number,\n};\n\nDataSourceSelect.defaultProps = {\n dataSources: null,\n role: null,\n setRole: null,\n year: undefined,\n};\n\nexport default DataSourceSelect;\n","/* eslint-disable camelcase */\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Button from 'atoms/button/Button';\nimport Input from 'atoms/input/Input';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport { useAuth } from 'services/UseAuth';\nimport ApiService from 'services/ApiService';\nimport Panel from 'atoms/panel/Panel';\nimport styles from './SituationCreate.module.css';\nimport DataSourceSelect from '../../datasourceselect/DataSourceSelect';\n\nconst SituationCreate = ({\n configureLvl1,\n dataSources,\n setCreateNewSituation,\n setSituationCopied,\n setSituationCreated,\n setSituations,\n situationToCopy,\n}) => {\n const [name, setName] = useState('');\n const [description, setDescription] = useState('');\n const [dsl1, setDsl1] = useState('');\n const [dsl2, setDsl2] = useState('');\n const [year, setYear] = useState();\n\n const [saveDisabled, setSaveDisabled] = useState(true);\n\n const { user } = useAuth();\n\n const handleSubmit = evt => {\n setSaveDisabled(true);\n evt.preventDefault();\n\n // Send network request.\n const request = {\n name,\n description,\n dsl1,\n dsl2,\n year,\n isActive: situationToCopy === null, // FIXME: Ska isActive defaulta till true när man skapar en ny?, åtminstone inte när man kopierar\n forbundsKod: configureLvl1 ? 'sa' : null,\n };\n\n const createSituation = new Promise((resolve, reject) =>\n ApiService.createSituation(request, user.token)\n .then(data => resolve(data))\n .catch(error => reject(error))\n );\n\n if (situationToCopy == null) {\n createSituation.then(data => {\n setSituations(prevState => [...prevState, data]);\n setCreateNewSituation(prevState => !prevState);\n setSituationCreated(true);\n });\n } else {\n createSituation.then(createdSituation => {\n const activeSelections = situationToCopy.selections.filter(\n situation => situation.isActive\n );\n\n const updateRequest = {\n selections: createdSituation.selections.map(selection => {\n const index = [...activeSelections]\n .map(({ sel_var }) => sel_var)\n .findIndex(selVar => selVar === selection.sel_var);\n\n return {\n id: selection.id,\n selectionOrder:\n index > -1\n ? activeSelections[index].SELECTION_ORDER\n : selection.SELECTION_ORDER,\n isActive: index > -1,\n };\n }),\n };\n\n ApiService.updateSelections(\n createdSituation.id,\n updateRequest,\n user.token\n ).then(updatedSituation => {\n setSituations(prevState => [...prevState, updatedSituation]);\n setCreateNewSituation(prevState => !prevState);\n setSituationCopied(true);\n });\n });\n }\n };\n\n useEffect(() => {\n if (name.length === 0 || description.length === 0) {\n setSaveDisabled(true);\n return;\n }\n\n if (\n dataSources.some(\n ds => ds.DSL1 === dsl1 && ds.DSL2 === dsl2 && ds.YEAR === year\n )\n ) {\n setSaveDisabled(false);\n } else setSaveDisabled(true);\n }, [name, description, year, dsl1, dsl2, dataSources]);\n\n useEffect(() => {\n if (situationToCopy != null) {\n setName(situationToCopy.name);\n setDescription(situationToCopy.description);\n setYear(situationToCopy.year);\n setDsl1(situationToCopy.DSL1);\n setDsl2(situationToCopy.DSL2 || '');\n }\n }, [situationToCopy]);\n\n return (\n \n
    \n
    \n setName(evt.target.value)}\n placeholder=\"Namn\"\n type=\"text\"\n value={name}\n />\n setDescription(evt.target.value)}\n placeholder=\"Beskrivning\"\n type=\"text\"\n value={description}\n />\n \n \n
    \n
    \n \n handleSubmit(evt)}\n label=\"Spara\"\n altText=\"Spara situation\"\n disabled={saveDisabled}\n />\n setCreateNewSituation(prevState => !prevState)}\n />\n \n
    \n );\n};\n\nSituationCreate.propTypes = {\n configureLvl1: PropTypes.bool.isRequired,\n dataSources: PropTypes.arrayOf(Object).isRequired,\n setCreateNewSituation: PropTypes.func.isRequired,\n setSituationCopied: PropTypes.func.isRequired,\n setSituationCreated: PropTypes.func.isRequired,\n setSituations: PropTypes.func.isRequired,\n situationToCopy: PropTypes.shape({\n name: PropTypes.string,\n description: PropTypes.string,\n year: PropTypes.number,\n DSL1: PropTypes.string,\n DSL2: PropTypes.string,\n selections: PropTypes.arrayOf(Object),\n }),\n};\n\nSituationCreate.defaultProps = {\n situationToCopy: null,\n};\n\nexport default SituationCreate;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './CheckboxAdmin.module.css';\n\nconst CheckboxAdmin = ({ id, label, checked, disabled, onChange }) => {\n return (\n \n \n {label !== null && {label}}\n \n );\n};\n\nCheckboxAdmin.propTypes = {\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n id: PropTypes.string.isRequired,\n label: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n};\n\nCheckboxAdmin.defaultProps = {\n checked: false,\n disabled: false,\n label: null,\n};\n\nexport default CheckboxAdmin;\n","/* eslint-disable camelcase */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './InputReadOnly.module.css';\n\nconst InputReadOnly = ({label, text, className, useHyphens}) => {\n const extraClasses = className && className !== '' ? className : '';\n \n return (\n
    \n
    {label}:
    \n
    {text}
    \n
    \n );\n};\n\nInputReadOnly.propTypes = {\n label: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired,\n className: PropTypes.string,\n useHyphens: PropTypes.bool\n};\n\nInputReadOnly.defaultProps = {\n className: '',\n useHyphens: false\n};\n\nexport default InputReadOnly;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './Textarea.module.css';\n\nconst Textarea = forwardRef(\n (\n {\n className,\n classTextArea,\n disabled,\n id,\n label,\n onChange,\n placeholder,\n value\n },\n ref\n ) => {\n const extraClasses = className && className !== '' ? className : '';\n const extraTextAreaClasses = classTextArea && classTextArea !== '' ? classTextArea : '';\n return (\n \n {`${label}:`}\n \n \n );\n }\n);\n\nTextarea.propTypes = {\n className: PropTypes.string,\n classTextArea: PropTypes.string,\n disabled: PropTypes.bool,\n id: PropTypes.string.isRequired,\n label: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n placeholder: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n};\n\nTextarea.defaultProps = {\n className: '',\n classTextArea: '',\n disabled: false,\n label: '',\n placeholder: null,\n value: ''\n};\n\nexport default Textarea;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Button from 'atoms/button/Button';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport CheckboxAdmin from 'atoms/checkboxadmin/CheckboxAdmin';\nimport InputReadOnly from 'atoms/inputreadonly/InputReadOnly';\nimport Input from 'atoms/input/Input';\nimport Textarea from 'atoms/textarea/Textarea';\nimport Panel from 'atoms/panel/Panel';\nimport styles from './SituationCard.module.css';\n\nconst SituationCard = ({\n copySituation,\n deleteSituation,\n situation,\n updateSituation,\n}) => {\n const [editMode, setEditMode] = useState(false);\n\n const [situationName, setSituationName] = useState(situation.name);\n const [situationDescription, setSituationDescription] = useState(\n situation.description\n );\n const [situationIsActive, setSituationIsActive] = useState(\n situation.isActive\n );\n\n const handleDelete = () => {\n const situationToDelete = {\n id: situation.id,\n name: situationName,\n description: situationDescription,\n isActive: situationIsActive,\n };\n\n deleteSituation(situationToDelete);\n setEditMode(prevState => !prevState);\n };\n\n const handleUpdate = () => {\n const updatedSituation = {\n id: situation.id,\n name: situationName,\n description: situationDescription,\n isActive: situationIsActive,\n };\n\n updateSituation(updatedSituation);\n setEditMode(prevState => !prevState);\n };\n\n return (\n \n
    \n
    \n
    \n {!editMode && (\n \n )}\n {editMode && (\n setSituationName(e.target.value)}\n placeholder=\"Namn\"\n type=\"text\"\n value={situationName}\n />\n )}\n {!editMode && (\n \n )}\n {editMode && (\n setSituationDescription(e.target.value)}\n />\n )}\n \n
    \n\n
    \n \n \n \n
    \n
    \n\n
    \n \n setSituationIsActive(prevState => !prevState)}\n />\n {editMode ? (\n <>\n \n \n setEditMode(prevState => !prevState)}\n label=\"Avbryt\"\n />\n \n ) : (\n <>\n copySituation(situation)}\n />\n setEditMode(prevState => !prevState)}\n label=\"Redigera\"\n icon=\"Edit\"\n altText=\"Redigera situation\"\n />\n \n )}\n \n
    \n \n );\n};\n\nSituationCard.propTypes = {\n deleteSituation: PropTypes.func.isRequired,\n copySituation: PropTypes.func.isRequired,\n situation: PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n isActive: PropTypes.bool,\n description: PropTypes.string,\n DSL1: PropTypes.string,\n DSL2: PropTypes.string,\n year: PropTypes.number,\n }).isRequired,\n updateSituation: PropTypes.func.isRequired,\n};\n\nexport default SituationCard;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport Button from 'atoms/button/Button';\nimport { useAuth } from 'services/UseAuth';\nimport ApiService from 'services/ApiService';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport styles from './SituationConfig.module.css';\nimport SituationCreate from './situationcreate/SituationCreate';\nimport SituationCard from './situationcard/SituationCard';\n\nconst SituationConfig = ({ configureLvl1, setSituations, situations }) => {\n const [createNewSituation, setCreateNewSituation] = useState(false);\n const [dataSources, setDataSources] = useState();\n const [situationToCopy, setSituationToCopy] = useState();\n\n const [situationCopied, setSituationCopied] = useState(false);\n const [situationCreated, setSituationCreated] = useState(false);\n const [situationDeleted, setSituationDeleted] = useState(false);\n const [situationUpdated, setSituationUpdated] = useState(false);\n\n const { user } = useAuth();\n const { token, forbund } = user;\n\n const deleteSituation = situationToDelete => {\n ApiService.deleteSituation(situationToDelete.id, token).then(data => {\n const remainingSituations = situations.filter(\n situation => situation.id !== data\n );\n setSituations(remainingSituations);\n setSituationDeleted(true);\n });\n };\n\n const updateSituation = updatedSituation => {\n ApiService.updateSituation(\n updatedSituation.id,\n updatedSituation,\n token\n ).then(data => {\n const index = situations.findIndex(situation => situation.id === data.id);\n const tempSituations = [...situations];\n if (index !== -1) {\n tempSituations[index] = data;\n }\n setSituations(tempSituations);\n setSituationUpdated(true);\n });\n };\n\n const getDataSources = () => {\n const request = { forbund: configureLvl1 ? ['sa'] : [forbund] };\n ApiService.getFds(request, token).then(data => setDataSources(data));\n };\n\n useEffect(() => {\n getDataSources();\n // eslint-disable-next-line\n }, [token, forbund, configureLvl1]);\n\n useEffect(() => {\n if (\n !situationCopied &&\n !situationCreated &&\n !situationDeleted &&\n !situationUpdated\n )\n return;\n\n if (situationCopied) {\n toast.success('Situation duplicerad');\n setSituationCopied(false);\n }\n if (situationCreated) {\n toast.success('Situation skapad');\n setSituationCreated(false);\n }\n if (situationDeleted) {\n toast.success('Situation borttagen');\n setSituationDeleted(false);\n }\n if (situationUpdated) {\n toast.success('Situation uppdaterad');\n setSituationUpdated(false);\n }\n }, [situationCopied, situationCreated, situationDeleted, situationUpdated]);\n\n return (\n
    \n \n {situations\n .sort((a, b) => a.name.localeCompare(b.name))\n .sort((a, b) => {\n if (a.DSL2.toLowerCase() === 'df') return -1;\n if (b.DSL2.toLowerCase() !== 'df') return 1;\n return 0;\n })\n .map(situation => (\n {\n setCreateNewSituation(true);\n setSituationToCopy(s);\n }}\n deleteSituation={deleteSituation}\n key={situation.id}\n setSituationUpdated={setSituationUpdated}\n situation={situation}\n updateSituation={updateSituation}\n />\n ))}\n
    \n {!createNewSituation ? (\n \n {\n setCreateNewSituation(prevState => !prevState);\n setSituationToCopy(null);\n }}\n style={{ marginLeft: 'auto' }}\n variant=\"primary\"\n />\n \n ) : (\n \n )}\n
    \n
    \n );\n};\n\nSituationConfig.propTypes = {\n configureLvl1: PropTypes.bool,\n setSituations: PropTypes.func.isRequired,\n situations: PropTypes.arrayOf(Object).isRequired,\n};\n\nSituationConfig.defaultProps = {\n configureLvl1: false,\n};\n\nexport default SituationConfig;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Button from 'atoms/button/Button';\nimport Input from 'atoms/input/Input';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport { useAuth } from 'services/UseAuth';\nimport ApiService from 'services/ApiService';\nimport Panel from 'atoms/panel/Panel';\n\nconst LinkCreate = ({\n setLinks,\n configureLvl1,\n setCreateNewLink,\n setLinkCreated,\n}) => {\n const [linkName, setLinkName] = useState('');\n const [linkUrl, setLinkUrl] = useState('');\n const [isSaving, setIsSaving] = useState(false);\n\n const { user } = useAuth();\n\n const handleSubmit = () => {\n setIsSaving(true);\n const request = {\n unionId: configureLvl1 ? null : user.unionId,\n groupId: configureLvl1 ? 'level1link' : 'level2link',\n textId: linkName,\n header: linkName,\n value: linkUrl,\n };\n ApiService.postText(request, user.token)\n .then(data => {\n setLinks(prevState => [...prevState, data]);\n setLinkCreated(true);\n setCreateNewLink(false);\n })\n .finally(() => setIsSaving(false));\n };\n return (\n \n
    \n setLinkName(evt.target.value)}\n placeholder=\"Länktext\"\n type=\"text\"\n value={linkName}\n />\n setLinkUrl(evt.target.value)}\n placeholder=\"HTTP-länk\"\n type=\"text\"\n value={linkUrl}\n />\n \n \n handleSubmit()}\n disabled={isSaving}\n />\n setCreateNewLink(prevState => !prevState)}\n />\n \n
    \n );\n};\n\nLinkCreate.propTypes = {\n setLinks: PropTypes.func.isRequired,\n configureLvl1: PropTypes.bool.isRequired,\n setCreateNewLink: PropTypes.func.isRequired,\n setLinkCreated: PropTypes.func.isRequired,\n};\n\nexport default LinkCreate;\n","import Button from 'atoms/button/Button';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport Input from 'atoms/input/Input';\nimport Panel from 'atoms/panel/Panel';\nimport InputReadOnly from 'atoms/inputreadonly/InputReadOnly';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport styles from './LinkCard.module.css';\n\nconst LinkCard = ({\n link,\n setLinks,\n setLinkUpdated,\n setLinkDeleted,\n configureLvl1,\n}) => {\n const { header, value, id, groupId, textId } = link;\n\n const [editMode, setEditMode] = useState(false);\n\n const [linkName, setLinkName] = useState(header);\n const [linkUrl, setLinkUrl] = useState(value);\n const [isSaving, setIsSaving] = useState(false);\n\n const { user } = useAuth();\n\n const handleUpdate = () => {\n setIsSaving(true);\n const request = {\n id,\n groupId,\n textId,\n unionId: configureLvl1 ? null : user.unionId,\n header: linkName,\n value: linkUrl,\n };\n\n ApiService.postText(request, user.token)\n .then(data => {\n setLinks(prevState => {\n const index = prevState.findIndex(\n situation => situation.id === data.id\n );\n const tempLinks = [...prevState];\n if (index !== -1) {\n tempLinks[index] = data;\n }\n\n return tempLinks;\n });\n setLinkUpdated(true);\n })\n .finally(() => {\n setIsSaving(false);\n setEditMode(false);\n });\n };\n\n const handleDelete = () => {\n ApiService.deleteText(id, user.token).then(data => {\n setLinks(prevState => [...prevState.filter(l => l.id !== data)]);\n setLinkDeleted(true);\n });\n };\n\n return (\n \n
    \n
    \n
    \n {editMode ? (\n setLinkName(evt.target.value)}\n placeholder=\"Länktext\"\n type=\"text\"\n value={linkName}\n />\n ) : (\n \n )}\n
    \n
    \n {editMode ? (\n setLinkUrl(evt.target.value)}\n placeholder=\"HTTP-länk\"\n type=\"text\"\n value={linkUrl}\n />\n ) : (\n \n )}\n
    \n
    \n
    \n
    \n \n {editMode && (\n <>\n handleDelete()}\n label=\"Ta bort\"\n icon=\"Trash\"\n altText=\"Ta bort länk\"\n disabled={isSaving}\n />\n handleUpdate()}\n label=\"Spara\"\n altText=\"Spara länk\"\n disabled={isSaving}\n />\n setEditMode(prevState => !prevState)}\n label=\"Avbryt\"\n disabled={isSaving}\n />\n \n )}\n {!editMode && (\n <>\n setEditMode(prevState => !prevState)}\n label=\"Redigera\"\n icon=\"Edit\"\n altText=\"Redigera länk\"\n />\n \n )}\n \n
    \n
    \n );\n};\n\nLinkCard.propTypes = {\n link: PropTypes.shape({\n header: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n id: PropTypes.string.isRequired,\n groupId: PropTypes.string.isRequired,\n textId: PropTypes.string.isRequired,\n }).isRequired,\n setLinks: PropTypes.func.isRequired,\n setLinkUpdated: PropTypes.func.isRequired,\n setLinkDeleted: PropTypes.func.isRequired,\n configureLvl1: PropTypes.bool.isRequired,\n};\n\nexport default LinkCard;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ToastContainer, toast } from 'react-toastify';\nimport Button from 'atoms/button/Button';\nimport Loader from 'atoms/loader/Loader';\nimport { useAuth } from 'services/UseAuth';\nimport ApiService from 'services/ApiService';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport styles from './LinksConfig.module.css';\nimport LinkCreate from './linkcreate/LinkCreate';\nimport LinkCard from './linkcard/LinkCard';\nimport 'react-toastify/dist/ReactToastify.css';\n\nconst LinksConfig = ({ configureLvl1 }) => {\n const [createNewLink, setCreateNewLink] = useState(false);\n const [linkCreated, setLinkCreated] = useState(false);\n const [linkUpdated, setLinkUpdated] = useState(false);\n const [linkDeleted, setLinkDeleted] = useState(false);\n const [links, setLinks] = useState();\n\n const { user } = useAuth();\n useEffect(() => {\n const request = [\n {\n groupId: configureLvl1 ? 'level1link' : 'level2link',\n },\n ];\n ApiService.getTexts(request, user.token).then(data => setLinks(data));\n }, [user.token, configureLvl1]);\n\n useEffect(() => {\n if (!linkCreated && !linkUpdated && !linkDeleted) return;\n\n if (linkCreated) {\n toast.success('Länk Skapad');\n setLinkCreated(false);\n }\n if (linkUpdated) {\n toast.success('Länk Uppdaterad');\n setLinkUpdated(false);\n }\n if (linkDeleted) {\n toast.success('Länk Borttagen');\n setLinkDeleted(false);\n }\n }, [linkCreated, linkUpdated, linkDeleted]);\n\n return (\n
    \n \n {links ? (\n links.map(link => (\n \n ))\n ) : (\n
    \n \n
    \n )}\n
    \n {!createNewLink ? (\n \n setCreateNewLink(prevState => !prevState)}\n icon=\"Plus\"\n label=\"Lägg till\"\n altText=\"Lägg till länk\"\n />\n \n ) : (\n \n )}\n
    \n
    \n );\n};\n\nLinksConfig.propTypes = {\n configureLvl1: PropTypes.bool,\n};\n\nLinksConfig.defaultProps = {\n configureLvl1: false,\n};\n\nexport default LinksConfig;\n","/* eslint-disable no-param-reassign */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from 'atoms/button/Button';\nimport CheckboxAdmin from 'atoms/checkboxadmin/CheckboxAdmin';\nimport { IconCheck } from 'tabler-icons';\nimport Accordion from 'atoms/accordion/Accordion';\nimport isEmpty from 'lib/emptyValues';\nimport styles from './SortableList.module.css';\n\nconst VARIANTS = {\n filter: {\n order: 'filterOrder',\n title: 'SELECTION_TEXT',\n id: 'sel_var',\n },\n breakby: {\n order: 'breakbyOrder',\n title: 'breakbyText',\n id: 'breakbyVar',\n },\n selection: {\n order: 'SELECTION_ORDER',\n title: 'SELECTION_TEXT',\n id: 'sel_var',\n },\n};\n\nconst SortableList = ({ data, isSaving, updateFunction, variant }) => {\n const { order, title, id } = VARIANTS[variant];\n const activeItems = data.filter(a => a.isActive).length;\n\n\n console.log('----------------------------');\n console.log(\"sortablelist.data:\", data);\n console.log('----------------------------');\n\n const performMoveUp = (index, listItem) => {\n if (index === 0 && listItem[order] != null) {\n return;\n }\n\n const itemList = data.filter(item => item.isActive);\n const unsortedItems = data.filter(item => !item.isActive);\n\n if (index > 0 && itemList[index - 1][order] != null)\n itemList[index - 1][order] += 1;\n\n if (listItem[order] == null) {\n listItem[order] = index;\n } else {\n listItem[order] -= 1;\n }\n\n updateFunction([\n ...itemList.sort((a, b) => (a[order] > b[order] ? 1 : -1)),\n ...unsortedItems,\n ]);\n };\n\n const performMoveDown = (index, listItem) => {\n const itemList = data.filter(item => item.isActive);\n const unsortedItems = data.filter(item => !item.isActive);\n\n if (index === itemList.length - 1) return;\n\n if (itemList[index + 1][order] != null) itemList[index + 1][order] -= 1;\n\n if (listItem[order] == null) {\n listItem[order] = index;\n } else {\n listItem[order] += 1;\n }\n\n updateFunction([\n ...itemList.sort((a, b) => (a[order] > b[order] ? 1 : -1)),\n ...unsortedItems,\n ]);\n };\n\n const handleItemUpdate = (index, listItem, property, value = null) => {\n const newList = data.map(item => {\n if (item[id] === listItem[id]) {\n const updatedItem = {\n ...item,\n [property]: value !== null ? value : !item[property],\n [order]: property === 'isActive' ? activeItems : item[order],\n };\n\n return updatedItem;\n }\n if (item[order] > index && item[property]) {\n item[order] -= 1;\n }\n return item;\n });\n\n updateFunction(newList);\n };\n\n const filterType = variant === 'filter' || variant === 'selection';\n\n return (\n \n \n \n \n \n \n {filterType ? : }\n {!filterType && }\n \n \n \n \n {variant === 'breakby' && }\n \n \n \n {data\n .sort((a, b) => a[order] - b[order])\n .sort((a, b) => {\n if (a.isActive === b.isActive) return 0;\n if (a.isActive) return -1;\n return 1;\n })\n .map((item, i) => (\n \n\n \n {!filterType && (\n \n )}\n \n \n \n \n {variant === 'breakby' && (\n \n )}\n \n ))}\n \n
    \n \n Ordning för{' '}\n {filterType ? 'filtervariabler' : 'presentationsvariabler'}\n
    FilterPresentationsvariabelFörvalt alternativOrdningAktivAlfabetiskNummerordningOmvänd ordning (diagram)
    \n {variant === 'filter' || variant === 'selection' ? (\n \n
    \n {item.options ? (\n item.options\n .filter(({ value }) => !isEmpty(value))\n .sort((a, b) =>\n item.sortOptionsByNumber\n ? Number(a.value) - Number(b.value)\n : a.description.localeCompare(b.description, 'sv')\n )\n .map(({ description }, index) => (\n {description}\n ))\n ) : (\n \n )}\n
    \n
    \n ) : (\n item[title]\n )}\n
    \n {i === 0 && (\n \n )}\n \n performMoveUp(i, item)}\n icon=\"ArrowUp\"\n label=\"\"\n altText={`Flytta upp ${item[title]}`}\n disabled={!item.isActive || isSaving || i === 0}\n />\n performMoveDown(i, item)}\n icon=\"ArrowDown\"\n label=\"\"\n altText={`Flytta ner ${item[title]}`}\n disabled={\n !item.isActive ||\n isSaving ||\n i === data.filter(a => a.isActive).length - 1\n }\n />\n \n handleItemUpdate(i, item, 'isActive')}\n />\n \n \n {filterType ? (\n {\n return handleItemUpdate(\n i,\n item,\n 'sortOptionsByNumber',\n false\n );\n }}\n disabled={!item.isActive}\n checked={item.sortOptionsByNumber === false}\n />\n ) : (\n {\n return handleItemUpdate(\n i,\n item,\n 'sortOptionsByLetters',\n true\n );\n }}\n disabled={!item.isActive}\n checked={item.sortOptionsByLetters === true}\n />\n )}\n \n \n \n {filterType ? (\n {\n return handleItemUpdate(\n i,\n item,\n 'sortOptionsByNumber',\n true\n );\n }}\n disabled={!item.isActive}\n checked={item.sortOptionsByNumber === true}\n />\n ) : (\n {\n return handleItemUpdate(\n i,\n item,\n 'sortOptionsByLetters',\n false\n );\n }}\n disabled={!item.isActive}\n checked={item.sortOptionsByLetters === false}\n />\n )}\n \n \n \n handleItemUpdate(i, item, 'isReverse', !item.isReverse)}\n />\n
    \n );\n};\n\nSortableList.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n isSaving: PropTypes.bool.isRequired,\n updateFunction: PropTypes.func.isRequired,\n variant: PropTypes.oneOf(['filter', 'breakby', 'selection']).isRequired,\n};\n\nexport default SortableList;\n","import Button from 'atoms/button/Button';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport Select from 'atoms/select/Select';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { toast, ToastContainer } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport SortableList from '../level3advanced/datasourceconfig/sortablelist/SortableList';\nimport styles from './SalaryProfileConfig.module.css';\n\nconst SalaryProfileConfig = ({ situations, setSituations }) => {\n const [selectionList, setSelectionList] = useState();\n const [currentSituation, setCurrentSituation] = useState();\n const [isSaving, setIsSaving] = useState(false);\n const { user } = useAuth();\n\n const handleSubmit = () => {\n setIsSaving(true);\n const situationId = currentSituation.id; // TODO: Hämta upp situationsid\n\n const request = {\n selections: selectionList.map(selection => {\n return {\n id: selection.id,\n isActive: selection.isActive,\n selectionOrder: selection.SELECTION_ORDER,\n sortOptionsByNumber: selection.sortOptionsByNumber,\n };\n }),\n };\n\n ApiService.updateSelections(situationId, request, user.token)\n .then(data => {\n const tempData = [...situations];\n const index = tempData.findIndex(\n situation => situation.id === situationId\n );\n\n if (index > -1) {\n tempData[index] = data;\n }\n\n setSituations(tempData);\n toast.success('Situation Uppdaterad');\n })\n .finally(() => setIsSaving(false));\n };\n\n return (\n
    \n \n
    \n
    \n {\n const { value } = evt.target;\n if (value !== null && value !== undefined && value !== '') {\n const selectedSituationId = value;\n\n const selectedSituation = situations.find(\n situation => situation.id === selectedSituationId\n );\n console.log('Situation');\n console.log(selectedSituation.id);\n console.log(selectedSituation.name);\n console.log('Selections');\n console.log(selectedSituation.selections);\n\n setSelectionList(selectedSituation.selections);\n setCurrentSituation({ id: selectedSituation.id });\n } else {\n setSelectionList(null);\n setCurrentSituation(null);\n }\n }}\n options={\n situations && [\n { desc: 'Ingen vald', key: '', value: '' },\n ...situations\n .filter(situation => situation.isActive)\n .map((situation, i) => ({\n key: situation.id,\n value: situation.id, // Konvertera indexet till en sträng\n desc: `${situation.name} - ${situation.year}`,\n })),\n ]\n }\n />\n
    \n
    \n {selectionList && (\n \n )}\n {currentSituation && (\n \n {/* TODO: Om man gör ändringar borde knappen bli enabled */}\n handleSubmit()}\n label=\"Spara\"\n altText=\"Spara vald ordning\"\n disabled={isSaving}\n />\n {/*
    \n );\n};\n\nSalaryProfileConfig.propTypes = {\n situations: PropTypes.arrayOf(Object).isRequired,\n setSituations: PropTypes.func.isRequired,\n};\n\nexport default SalaryProfileConfig;\n","/* eslint-disable camelcase */\nimport React from 'react';\nimport styles from './HelpBox.module.css';\n\nconst HelpBox = () => {\n return (\n
    \n

    Hjälp

    \n

    För att konfigurera förbundsanpassningar gör följande:

    \n
      \n
    • Skapa situationer
    • \n
        \n
      • 1..* (en till många)
      • \n
      • Om det bara finns en situation så visas den inte i Enkel vy.
      • \n
      • \n Tjänsten anropar automatiskt SAS och hämtar de år som är inlagda i\n SAS.\n
      • \n
      \n
    • Välj och ordna filter/urval
    • \n
        \n
      • \n Tjänsten anropar automatiskt SAS och hämtar den data (urval) som\n finns där.\n
      • \n
      • Om det bara finns en situation så visas den inte i Enkel vy.
      • \n
      \n
    • Länkar
    • \n
        \n
      • Lägg till flera länkar till förbundets sajt för mer läsning.
      • \n
      \n
    \n
    \n );\n};\n\nHelpBox.propTypes = {};\n\nHelpBox.defaultProps = {};\n\nexport default HelpBox;\n","import ButtonLink from 'atoms/buttonlink/ButtonLink';\nimport Loader from 'atoms/loader/Loader';\nimport Panel from 'atoms/panel/Panel';\nimport Section from 'atoms/section/Section';\nimport Tab from 'atoms/tab/Tab';\nimport TabRow from 'atoms/tabrow/TabRow';\nimport Const from 'const';\nimport useScrollTo from 'hooks/useScrollTo';\nimport React, { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport SituationConfig from 'components/admin/situationconfig/SituationConfig';\nimport LinksConfig from '../linksconfig/LinksConfig';\nimport SalaryProfileConfig from '../salaryprofileconfig/SalaryProfileConfig';\nimport HelpBox from './helpbox/HelpBox';\nimport styles from './Level2Simple.module.css';\n\nconst Level2Simple = () => {\n const history = useHistory();\n const ref = useScrollTo('hjalp');\n const { user, signout, autoRefreshToken } = useAuth();\n const { token } = user;\n\n const [activeTab, setActiveTab] = useState('situation');\n const [situations, setSituations] = useState();\n const [loadingSituations, setLoadingSituations] = useState(false);\n\n useEffect(() => {\n if (user.role === 'redaktor') return;\n setLoadingSituations(true);\n ApiService.getSituations(token)\n .then(data => {\n setSituations(data);\n })\n .then(() => autoRefreshToken(token))\n .catch(error => {\n if (error.status === 401) {\n signout();\n history.push('/logga-ut');\n }\n })\n .finally(() => setLoadingSituations(false));\n // eslint-disable-next-line\n }, [token, signout, history]);\n\n if (user.role === 'redaktor')\n return (\n \n
    \n \n
    \n
    \n );\n\n // admins\n return (\n \n
    \n \n setActiveTab('situation')}\n />\n setActiveTab('statistics')}\n />\n setActiveTab('links')}\n />\n\n history.push('#hjalp')}\n />\n \n\n {loadingSituations ? (\n
    \n \n
    \n ) : (\n <>\n {situations && (\n <>\n {activeTab === 'situation' && situations && (\n \n )}\n {activeTab === 'statistics' && situations && (\n \n )}\n {activeTab === 'links' && }\n \n )}\n \n )}\n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default Level2Simple;\n","/* eslint-disable camelcase */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './SectionAdmin.module.css';\n\nconst SectionAdmin = ({title, children}) => {\n return (\n
    \n

    \n {title}\n

    \n
    \n {children}\n
    \n
    \n );\n};\n\nSectionAdmin.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]).isRequired,\n title: PropTypes.string.isRequired\n};\n\nSectionAdmin.defaultProps = {\n \n};\n\nexport default SectionAdmin;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport SectionAdmin from 'atoms/sectionadmin/SectionAdmin';\nimport Button from 'atoms/button/Button';\nimport DataSourceSelect from 'components/admin/datasourceselect/DataSourceSelect';\nimport { useAuth } from 'services/UseAuth';\nimport ApiService from 'services/ApiService';\nimport Loader from 'atoms/loader/Loader';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport styles from './LoadConfiguration.module.css';\n\nfunction LoadConfiguration({\n breakbys,\n dataSources,\n dsl1,\n dsl2,\n filters,\n isSaving,\n previousYear,\n setBreakbys,\n setFilters,\n toastMessage,\n year,\n role,\n}) {\n const [isLoading, setIsLoading] = useState(false);\n const [loadConfig, setLoadConfig] = useState(false);\n\n const [copyYear, setCopyYear] = useState(previousYear || year);\n const [copyDsl1, setCopyDsl1] = useState(dsl1);\n const [copyDsl2, setCopyDsl2] = useState(dsl2);\n const [copyRole, setCopyRole] = useState(role);\n\n const {\n user: { forbund, token },\n } = useAuth();\n\n // Reduce an array into an object\n // [ { sel_var: \"ARBSEK\", filterOrder: 0, isActive: true } ] => { \"ARBSEK\": { filterOrder: 0, isActive: true } }\n const createObject = ({ data, key, identificator, orderBy, sortBy }) =>\n data[key].reduce((acc, curr) => {\n if (!acc[curr[identificator]]) {\n acc[curr[identificator]] = {\n [orderBy]: curr[orderBy],\n [sortBy]: curr[sortBy],\n isActive: curr.isActive,\n };\n }\n\n return acc;\n }, {});\n\n // Update array with copied data\n const updateArray = ({ data, object, identificator, orderBy, sortBy }) => {\n let count = 0;\n const updatedData = data.map(item => {\n const tempItem = { ...item };\n\n if (object[tempItem[identificator]]) {\n tempItem[orderBy] = object[tempItem[identificator]][orderBy];\n tempItem[sortBy] = object[tempItem[identificator]][sortBy];\n tempItem.isActive = object[tempItem[identificator]].isActive;\n\n count += 1;\n }\n\n return tempItem;\n });\n\n return [updatedData, count];\n };\n\n useEffect(() => {\n if (!loadConfig) return;\n if (\n dataSources == null ||\n !dataSources.some(\n ds =>\n ds.YEAR === copyYear && ds.DSL1 === copyDsl1 && ds.DSL2 === copyDsl2\n ) ||\n isLoading\n )\n return;\n setIsLoading(true);\n\n const request = {\n forbund,\n year: copyYear,\n dsl1: copyDsl1,\n dsl2: copyDsl2,\n role,\n };\n\n ApiService.getPresentations(request, token)\n .then(data => {\n const breakbyObject = createObject({\n data,\n key: 'breakbys',\n identificator: 'breakbyId',\n orderBy: 'breakbyOrder',\n sortBy: 'sortOptionsByLetters',\n });\n\n const filterObject = createObject({\n data,\n key: 'filters',\n identificator: 'selectionId',\n orderBy: 'filterOrder',\n sortBy: 'sortOptionsByNumber',\n });\n\n const [updatedBreakbys, breakbyCount] = updateArray({\n data: breakbys,\n object: breakbyObject,\n identificator: 'breakbyId',\n orderBy: 'breakbyOrder',\n sortBy: 'sortOptionsByLetters',\n });\n\n setBreakbys(updatedBreakbys);\n\n const [updatedFilters, filterCount] = updateArray({\n data: filters,\n object: filterObject,\n identificator: 'selectionId',\n orderBy: 'filterOrder',\n sortBy: 'sortOptionsByNumber',\n });\n\n setFilters(updatedFilters);\n\n if (breakbyCount > 0 || filterCount > 0) {\n toastMessage(\n 'info',\n `Kopieringen av konfigurationen lyckades, hittade ${breakbyCount} matchande presentationssätt och \n ${filterCount} matchande filter. Spara för att godkänna konfigurationen.`\n );\n } else {\n toastMessage(\n 'warning',\n `Försökte utföra kopiering av konfiguration, men datakällorna innehåller inga matchande presentationssätt \n eller filter.`\n );\n }\n })\n .catch(() => {\n toastMessage('error', 'Kopiering av konfiguration misslyckad');\n })\n .finally(() => {\n setIsLoading(false);\n setLoadConfig(false);\n });\n // eslint-disable-next-line\n }, [loadConfig]);\n\n return (\n \n
    \n {isLoading && (\n
    \n \n
    \n )}\n

    Välj en annan statistikkälla att kopiera konfiguration från.

    \n \n \n setLoadConfig(true)}\n variant=\"primary\"\n label=\"Ladda in konfiguration\"\n altText=\"Ladda in konfiguration\"\n disabled={isSaving || isLoading}\n />\n \n
    \n
    \n );\n}\n\nLoadConfiguration.propTypes = {\n breakbys: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n dataSources: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n dsl1: PropTypes.string.isRequired,\n dsl2: PropTypes.string.isRequired,\n filters: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n isSaving: PropTypes.bool.isRequired,\n previousYear: PropTypes.number,\n setBreakbys: PropTypes.func.isRequired,\n setFilters: PropTypes.func.isRequired,\n toastMessage: PropTypes.func.isRequired,\n year: PropTypes.number.isRequired,\n role: PropTypes.string.isRequired,\n};\n\nLoadConfiguration.defaultProps = {\n previousYear: null,\n};\n\nexport default LoadConfiguration;\n","/* eslint-disable camelcase */\nimport Button from 'atoms/button/Button';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport Loader from 'atoms/loader/Loader';\nimport SectionAdmin from 'atoms/sectionadmin/SectionAdmin';\nimport Tab from 'atoms/tab/Tab';\nimport TabRow from 'atoms/tabrow/TabRow';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport CheckboxAdmin from 'atoms/checkboxadmin/CheckboxAdmin';\nimport DataSourceSelect from '../../datasourceselect/DataSourceSelect';\nimport SortableList from './sortablelist/SortableList';\nimport styles from './DataSourceConfig.module.css';\nimport LoadConfiguration from './loadconfiguration/LoadConfiguration';\n\nconst DataSourceConfig = ({\n dataSources,\n toastMessage,\n isSaving,\n setIsSaving,\n}) => {\n const [activeTab, setActiveTab] = useState('filter');\n\n const [dsl1, setDsl1] = useState('');\n const [dsl2, setDsl2] = useState('');\n const [year, setYear] = useState();\n const [role, setRole] = useState('medlem');\n\n const [isActive, setIsActive] = useState(true);\n const [breakbys, setBreakbys] = useState([]);\n const [filters, setFilters] = useState([]);\n\n const [loadConfiguration, setLoadConfiguration] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n\n const {\n user: { forbund, token },\n } = useAuth();\n\n // Sort the array, set the order of each item\n const sortData = (data, orderParameter) =>\n data\n .sort(a => (a[orderParameter] == null ? 1 : -1))\n .sort((a, b) => a[orderParameter] - b[orderParameter])\n .sort((a, b) => {\n if (a.isActive === b.isActive) return 0;\n if (a.isActive) return -1;\n return 1;\n })\n .map((item, index) => {\n const tempItem = { ...item };\n tempItem[orderParameter] = index;\n return tempItem;\n });\n\n const handleSubmit = () => {\n if (isSaving) return;\n\n setIsSaving(true);\n\n const request = {\n forbund,\n dsl1,\n dsl2,\n year,\n isActive,\n breakbys,\n filters,\n role,\n };\n\n ApiService.postPresentations(request, token)\n .then(updatedData => {\n // Uppdatera lokal state med responsen från backend\n setBreakbys(sortData(updatedData.breakbys, 'breakbyOrder'));\n setFilters(sortData(updatedData.filters, 'filterOrder'));\n setIsActive(updatedData.isActive);\n\n toastMessage(\n 'success',\n 'Nivå 3 presentations och filtervariabler sparade.'\n );\n })\n .catch(() =>\n toastMessage('error', 'Ett fel uppstod vid sparning av data.')\n )\n .finally(() => setIsSaving(false));\n\n };\n\n useEffect(() => {\n if (isLoading) return;\n if (\n dataSources == null ||\n !dataSources.some(\n ds => ds.YEAR === year && ds.DSL1 === dsl1 && ds.DSL2 === dsl2\n )\n ) {\n setIsActive(true);\n setBreakbys([]);\n setFilters([]);\n return;\n }\n\n setIsLoading(true);\n\n ApiService.getPresentations(\n {\n forbund,\n year,\n dsl1,\n dsl2,\n role,\n },\n token\n )\n .then(data => {\n setBreakbys(sortData(data.breakbys, 'breakbyOrder'));\n setFilters(sortData(data.filters, 'filterOrder'));\n setIsActive(data.isActive);\n\n console.log('----------------------------');\n console.log(`data.isFromDb: ${data.isFromDb}`);\n console.log(\"data.breakbys:\", data.breakbys);\n console.log(\"data.filters:\", data.filters);\n console.log('----------------------------');\n\n })\n .finally(() => setIsLoading(false));\n // eslint-disable-next-line\n }, [year, dsl1, dsl2, role]);\n\n return (\n <>\n \n
    \n

    \n Varje datakälla som du väljer kan ha sin egen uppsättning filter\n (urval) och presentationssätt.\n

    \n \n
    \n\n {isLoading && (\n
    \n \n
    \n )}\n\n {(breakbys.length > 0 || filters.length > 0) && !isLoading && (\n <>\n setIsActive(prevState => !prevState)}\n />\n \n setActiveTab('filter')}\n />\n setActiveTab('presentation')}\n />\n \n \n \n
    \n\n \n \n \n \n setLoadConfiguration(true)}\n variant=\"secondary\"\n label=\"Ladda in konfiguration\"\n altText=\"Ladda in konfiguration från annan källa\"\n disabled={isSaving}\n />\n handleSubmit(isSaving)}\n variant=\"primary\"\n label=\"Spara\"\n altText=\"Spara löneprofil\"\n disabled={isSaving}\n />\n \n \n )}\n \n {loadConfiguration && (\n ds.DSL1 === dsl1 && ds.DSL2 === dsl2)\n .sort((a, b) => b.YEAR - a.YEAR)\n .find(ds => ds.YEAR < year)?.YEAR\n }\n />\n )}\n \n );\n};\n\nDataSourceConfig.propTypes = {\n dataSources: PropTypes.arrayOf(Object),\n toastMessage: PropTypes.func.isRequired,\n isSaving: PropTypes.bool.isRequired,\n setIsSaving: PropTypes.func.isRequired,\n};\n\nDataSourceConfig.defaultProps = {\n dataSources: null,\n};\n\nexport default DataSourceConfig;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport DataSourceSelect from 'components/admin/datasourceselect/DataSourceSelect';\n\nexport default function DefaultSourceConfig({\n dataSources,\n defaultDataSource,\n defaultYearFromDeepAnalysis,\n defaultYearToDeepAnalysis,\n setDefaultDataSource,\n}) {\n const [year, setYear] = useState(defaultDataSource?.year || 0);\n const [dsl1, setDsl1] = useState(defaultDataSource?.DSL1 || '');\n const [dsl2, setDsl2] = useState(defaultDataSource?.DSL2 || '');\n\n useEffect(() => {\n if (year && dsl1 && dsl2) {\n setDefaultDataSource({ year, DSL1: dsl1, DSL2: dsl2 });\n return;\n }\n\n if (year && dsl1) {\n setDefaultDataSource({ year, DSL1: dsl1, DSL2: null });\n }\n // eslint-disable-next-line\n }, [year, dsl1, dsl2]);\n\n useEffect(() => {\n if (!defaultDataSource) return;\n const { year: YEAR, DSL1, DSL2 } = defaultDataSource;\n\n if (year !== YEAR) setYear(YEAR);\n if (dsl1 !== DSL1) setDsl1(DSL1);\n if (dsl2 !== DSL2 && DSL2) setDsl2(DSL2);\n // eslint-disable-next-line\n }, [\n defaultDataSource?.year,\n defaultDataSource?.DSL1,\n defaultDataSource?.DSL2,\n ]);\n\n return (\n {\n // Administrator might not have configured the \"from year\"\n if (!defaultYearFromDeepAnalysis) {\n return (\n ds.YEAR >= defaultYearToDeepAnalysis - 1 &&\n ds.YEAR <= defaultYearToDeepAnalysis\n );\n }\n\n return (\n ds.YEAR >= defaultYearFromDeepAnalysis &&\n ds.YEAR <= defaultYearToDeepAnalysis\n );\n })\n }\n year={year}\n setYear={setYear}\n dsl1={dsl1}\n setDsl1={setDsl1}\n dsl2={dsl2}\n setDsl2={setDsl2}\n />\n );\n}\n\nDefaultSourceConfig.propTypes = {\n dataSources: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n defaultYearFromDeepAnalysis: PropTypes.number,\n defaultYearToDeepAnalysis: PropTypes.number,\n defaultDataSource: PropTypes.shape({\n year: PropTypes.number,\n DSL1: PropTypes.string,\n DSL2: PropTypes.string,\n }),\n setDefaultDataSource: PropTypes.func.isRequired,\n};\n\nDefaultSourceConfig.defaultProps = {\n defaultYearFromDeepAnalysis: null,\n defaultYearToDeepAnalysis: null,\n defaultDataSource: null,\n};\n","import Button from 'atoms/button/Button';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport CheckboxAdmin from 'atoms/checkboxadmin/CheckboxAdmin';\nimport SectionAdmin from 'atoms/sectionadmin/SectionAdmin';\nimport Select from 'atoms/select/Select';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport DefaultSourceConfig from './defaultsourceconfig/DefaultSourceConfig';\nimport styles from './StandardConfig.module.css';\n\nconst StandardYearConfig = ({ availableYears, toastMessage, dataSources }) => {\n const [\n defaultYearFromDeepAnalysis,\n setDefaultYearFromDeepAnalysis,\n ] = useState();\n const [defaultYearToDeepAnalysis, setDefaultYearToDeepAnalysis] = useState();\n const [defaultDataSource, setDefaultDataSource] = useState();\n const [allowCustomPresentation, setAllowCustomPresentation] = useState(false);\n\n const [isLoading, setIsLoading] = useState(false);\n const [isSaving, setIsSaving] = useState(false);\n const { user } = useAuth();\n\n const handleChangeStandardConfig = () => {\n setIsSaving(true);\n const request = {\n defaultDataSource,\n defaultYearFromDeepAnalysis:\n defaultYearFromDeepAnalysis < defaultYearToDeepAnalysis\n ? defaultYearFromDeepAnalysis\n : 0,\n defaultYearToDeepAnalysis,\n allowCustomPresentation,\n };\n\n ApiService.postConfiguredYear(user.unionId, request, user.token)\n .then(() => toastMessage('success', 'Standardkonfiguration uppdaterad'))\n .catch(err => {\n toastMessage('error', 'Fel vid uppdatering av standardkonfiguration');\n throw err;\n })\n .finally(() => setIsSaving(false));\n };\n\n useEffect(() => {\n setIsLoading(true);\n ApiService.getUnion(user.token)\n .then(data => {\n setDefaultDataSource(data.defaultDataSource);\n setDefaultYearFromDeepAnalysis(data.defaultYearFromDeepAnalysis);\n setDefaultYearToDeepAnalysis(data.defaultYearToDeepAnalysis);\n setAllowCustomPresentation(data?.allowCustomPresentation);\n })\n .finally(() => setIsLoading(false));\n }, [user]);\n\n return (\n \n

    Ställ in standardvärden för nivå 3

    \n

    Konfigurera standardår

    \n

    \n Utöka medlemmars befogenheter i nivå 3 genom att ange ett årsintervall\n inom vilket medlemmar får se lönestatistik. Begränsa medlemmars rätt att\n hämta rapporter genom att inte alls ange ett "år från" eller\n välja året innan "år till" (ex. år från: 2020, år till: 2021).\n

    \n

    \n Förtroendevalda ser alla urval och presentationssätt och kan också välja\n olika år.\n

    \n
    \n {\n return setDefaultYearFromDeepAnalysis(Number(evt.target.value));\n }}\n options={[\n {\n key: 'arfran_null',\n value: '',\n desc: 'Välj ett startår för intervallet...',\n },\n ...availableYears\n .filter(y => y < defaultYearToDeepAnalysis)\n .sort()\n .map(year => ({\n key: year,\n value: year,\n desc: year,\n })),\n ]}\n />\n {\n return setDefaultYearToDeepAnalysis(Number(evt.target.value));\n }}\n options={[\n {\n key: 'artill_null',\n value: '',\n desc: 'Välj ett slutår för intervallet...',\n },\n ...availableYears.sort().map(year => ({\n key: year,\n value: year,\n desc: year,\n })),\n ]}\n />\n
    \n

    Konfigurera standardkälla

    \n

    \n Välj en källa inom intervallet för standardår som är förvald för\n användare av nivå 3\n

    \n \n

    Tillåt egen rapport

    \n

    \n Tillåt medlemmar att välja "egen rapport" under presentationer\n för att skapa en egen lönerapport.\n

    \n setAllowCustomPresentation(prevState => !prevState)}\n />\n
    \n \n handleChangeStandardConfig()}\n variant=\"primary\"\n label=\"Spara\"\n altText=\"Spara sektion\"\n disabled={\n defaultYearFromDeepAnalysis === null ||\n defaultYearToDeepAnalysis === null ||\n isSaving\n }\n />\n \n
    \n
    \n );\n};\n\nStandardYearConfig.propTypes = {\n availableYears: PropTypes.arrayOf(PropTypes.number).isRequired,\n toastMessage: PropTypes.func.isRequired,\n dataSources: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n};\n\nStandardYearConfig.defaultProps = {};\n\nexport default StandardYearConfig;\n","import React, { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { toast, ToastContainer } from 'react-toastify';\nimport Loader from 'atoms/loader/Loader';\nimport Panel from 'atoms/panel/Panel';\nimport Section from 'atoms/section/Section';\nimport Const from 'const';\nimport 'react-toastify/dist/ReactToastify.css';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport DataSourceConfig from './datasourceconfig/DataSourceConfig';\nimport styles from './Level3Advanced.module.css';\nimport StandardConfig from './standardconfig/StandardConfig';\n\nconst Level3Advanced = () => {\n const { user, signout, autoRefreshToken } = useAuth();\n const { token, forbund } = user;\n\n const history = useHistory();\n\n // Datasources.\n const [dataSources, setDataSources] = useState();\n const [availableYears, setAvailableYears] = useState(undefined);\n const [isLoading, setIsLoading] = useState(false);\n const [isSaving, setIsSaving] = useState(false);\n\n // INIT.\n useEffect(() => {\n setIsLoading(true);\n const request = {\n forbund: [forbund],\n };\n ApiService.getFds(request, token)\n .then(data => setDataSources(data))\n .then(() => {\n autoRefreshToken(token);\n })\n .catch(error => {\n if (error.status === 401) {\n signout();\n history.push('/logga-ut');\n }\n })\n .finally(() => setIsLoading(false));\n // eslint-disable-next-line\n }, [token, forbund]);\n\n useEffect(() => {\n if (dataSources == null) return;\n setAvailableYears(\n dataSources\n .reduce((acc, curr) => {\n if (!acc.includes(curr.YEAR)) acc.push(curr.YEAR);\n return acc;\n }, [])\n .sort()\n );\n }, [dataSources]);\n\n const toastMessage = (type, msg) => {\n if (type === 'success') {\n toast.success(msg);\n }\n if (type === 'error') {\n toast.error(msg);\n }\n if (type === 'warning') {\n toast.warning(msg);\n }\n if (type === 'info') {\n toast.info(msg);\n }\n };\n\n return (\n \n
    \n \n {isLoading ? (\n
    \n \n
    \n ) : (\n <>\n {availableYears && (\n \n )}\n \n \n )}\n
    \n
    \n );\n};\n\nexport default Level3Advanced;\n","/* eslint-disable camelcase */\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Button from 'atoms/button/Button';\nimport Input from 'atoms/input/Input';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport { useAuth } from 'services/UseAuth';\nimport ApiService from 'services/ApiService';\nimport Panel from 'atoms/panel/Panel';\nimport styles from './PreviewDataSourceCreate.module.css';\nimport DataSourceSelect from '../../datasourceselect/DataSourceSelect';\n\nconst PreviewDataSourceCreate = ({\n configureLvl1,\n dataSources,\n setCreateNewSituation,\n setSituationCopied,\n setSituationCreated,\n setSituations,\n situationToCopy,\n}) => {\n const [name, setName] = useState('');\n const [description, setDescription] = useState('');\n const [dsl1, setDsl1] = useState('');\n const [dsl2, setDsl2] = useState('');\n const [year, setYear] = useState();\n\n const [saveDisabled, setSaveDisabled] = useState(true);\n\n const { user } = useAuth();\n\n const handleSubmit = evt => {\n setSaveDisabled(true);\n evt.preventDefault();\n\n // Send network request.\n const request = {\n name,\n description,\n dsl1,\n dsl2,\n year,\n isActive: situationToCopy === null, // FIXME: Ska isActive defaulta till true när man skapar en ny?, åtminstone inte när man kopierar\n isPreview: true,\n forbundsKod: configureLvl1 ? 'sa' : null,\n };\n\n const createSituation = new Promise((resolve, reject) =>\n ApiService.createSituation(request, user.token)\n .then(data => resolve(data))\n .catch(error => reject(error))\n );\n\n if (situationToCopy == null) {\n createSituation.then(data => {\n setSituations(prevState => [...prevState, data]);\n setCreateNewSituation(prevState => !prevState);\n setSituationCreated(true);\n });\n } else {\n createSituation.then(createdSituation => {\n const activeSelections = situationToCopy.selections.filter(\n situation => situation.isActive\n );\n\n const updateRequest = {\n selections: createdSituation.selections.map(selection => {\n const index = [...activeSelections]\n .map(({ sel_var }) => sel_var)\n .findIndex(selVar => selVar === selection.sel_var);\n\n return {\n id: selection.id,\n selectionOrder:\n index > -1\n ? activeSelections[index].SELECTION_ORDER\n : selection.SELECTION_ORDER,\n isActive: index > -1,\n };\n }),\n };\n\n ApiService.updateSelections(\n createdSituation.id,\n updateRequest,\n user.token\n ).then(updatedSituation => {\n setSituations(prevState => [...prevState, updatedSituation]);\n setCreateNewSituation(prevState => !prevState);\n setSituationCopied(true);\n });\n });\n }\n };\n\n useEffect(() => {\n if (name.length === 0 || description.length === 0) {\n setSaveDisabled(true);\n return;\n }\n\n if (\n dataSources.some(\n ds => ds.DSL1 === dsl1 && ds.DSL2 === dsl2 && ds.YEAR === year\n )\n ) {\n setSaveDisabled(false);\n } else setSaveDisabled(true);\n }, [name, description, year, dsl1, dsl2, dataSources]);\n\n useEffect(() => {\n if (situationToCopy != null) {\n setName(situationToCopy.name);\n setDescription(situationToCopy.description);\n setYear(situationToCopy.year);\n setDsl1(situationToCopy.DSL1);\n setDsl2(situationToCopy.DSL2 || '');\n }\n }, [situationToCopy]);\n\n return (\n \n
    \n
    \n setName(evt.target.value)}\n placeholder=\"Namn\"\n type=\"text\"\n value={name}\n />\n setDescription(evt.target.value)}\n placeholder=\"Beskrivning\"\n type=\"text\"\n value={description}\n />\n \n \n
    \n
    \n \n handleSubmit(evt)}\n label=\"Spara\"\n altText=\"Spara statistikkälla\"\n disabled={saveDisabled}\n />\n setCreateNewSituation(prevState => !prevState)}\n />\n \n
    \n );\n};\n\nPreviewDataSourceCreate.propTypes = {\n configureLvl1: PropTypes.bool.isRequired,\n dataSources: PropTypes.arrayOf(Object).isRequired,\n setCreateNewSituation: PropTypes.func.isRequired,\n setSituationCopied: PropTypes.func.isRequired,\n setSituationCreated: PropTypes.func.isRequired,\n setSituations: PropTypes.func.isRequired,\n situationToCopy: PropTypes.shape({\n name: PropTypes.string,\n description: PropTypes.string,\n year: PropTypes.number,\n DSL1: PropTypes.string,\n DSL2: PropTypes.string,\n selections: PropTypes.arrayOf(Object),\n }),\n};\n\nPreviewDataSourceCreate.defaultProps = {\n situationToCopy: null,\n};\n\nexport default PreviewDataSourceCreate;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Button from 'atoms/button/Button';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport CheckboxAdmin from 'atoms/checkboxadmin/CheckboxAdmin';\nimport InputReadOnly from 'atoms/inputreadonly/InputReadOnly';\nimport Input from 'atoms/input/Input';\nimport Textarea from 'atoms/textarea/Textarea';\nimport Panel from 'atoms/panel/Panel';\nimport styles from './PreviewDataSourceCard.module.css';\n\nconst PreviewDataSourceCard = ({\n copySituation,\n deleteSituation,\n situation,\n updateSituation,\n}) => {\n const [editMode, setEditMode] = useState(false);\n\n const [situationName, setSituationName] = useState(situation.name);\n const [situationDescription, setSituationDescription] = useState(\n situation.description\n );\n const [situationIsActive, setSituationIsActive] = useState(\n situation.isActive\n );\n\n const handleDelete = () => {\n const situationToDelete = {\n id: situation.id,\n name: situationName,\n description: situationDescription,\n isActive: situationIsActive,\n };\n\n deleteSituation(situationToDelete);\n setEditMode(prevState => !prevState);\n };\n\n const handleUpdate = () => {\n const updatedSituation = {\n id: situation.id,\n name: situationName,\n description: situationDescription,\n isActive: situationIsActive,\n };\n\n updateSituation(updatedSituation);\n setEditMode(prevState => !prevState);\n };\n\n return (\n \n
    \n
    \n
    \n {!editMode && (\n \n )}\n {editMode && (\n setSituationName(e.target.value)}\n placeholder=\"Namn\"\n type=\"text\"\n value={situationName}\n />\n )}\n {!editMode && (\n \n )}\n {editMode && (\n setSituationDescription(e.target.value)}\n />\n )}\n \n
    \n\n
    \n \n \n \n
    \n
    \n\n
    \n \n setSituationIsActive(prevState => !prevState)}\n />\n {editMode ? (\n <>\n \n \n setEditMode(prevState => !prevState)}\n label=\"Avbryt\"\n />\n \n ) : (\n <>\n copySituation(situation)}\n />\n setEditMode(prevState => !prevState)}\n label=\"Redigera\"\n icon=\"Edit\"\n altText=\"Redigera statistikkälla\"\n />\n \n )}\n \n
    \n \n );\n};\n\nPreviewDataSourceCard.propTypes = {\n deleteSituation: PropTypes.func.isRequired,\n copySituation: PropTypes.func.isRequired,\n situation: PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n isActive: PropTypes.bool,\n description: PropTypes.string,\n DSL1: PropTypes.string,\n DSL2: PropTypes.string,\n year: PropTypes.number,\n }).isRequired,\n updateSituation: PropTypes.func.isRequired,\n};\n\nexport default PreviewDataSourceCard;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport Button from 'atoms/button/Button';\nimport { useAuth } from 'services/UseAuth';\nimport ApiService from 'services/ApiService';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport styles from './PreviewDataSourceConfig.module.css';\nimport PreviewDataSourceCreate from './previewdatasourcecreate/PreviewDataSourceCreate';\nimport PreviewDataSourceCard from './previewdatasourcecard/PreviewDataSourceCard';\n\nconst PreviewDataSourceConfig = ({ configureLvl1, setSituations, situations }) => {\n const [createNewSituation, setCreateNewSituation] = useState(false);\n const [dataSources, setDataSources] = useState();\n const [situationToCopy, setSituationToCopy] = useState();\n\n const [situationCopied, setSituationCopied] = useState(false);\n const [situationCreated, setSituationCreated] = useState(false);\n const [situationDeleted, setSituationDeleted] = useState(false);\n const [situationUpdated, setSituationUpdated] = useState(false);\n\n const { user } = useAuth();\n const { token, forbund } = user;\n\n const deleteSituation = situationToDelete => {\n ApiService.deleteSituation(situationToDelete.id, token).then(data => {\n const remainingSituations = situations.filter(\n situation => situation.id !== data\n );\n setSituations(remainingSituations);\n setSituationDeleted(true);\n });\n };\n\n const updateSituation = updatedSituation => {\n ApiService.updateSituation(\n updatedSituation.id,\n updatedSituation,\n token\n ).then(data => {\n const index = situations.findIndex(situation => situation.id === data.id);\n const tempSituations = [...situations];\n if (index !== -1) {\n tempSituations[index] = data;\n }\n setSituations(tempSituations);\n setSituationUpdated(true);\n });\n };\n\n const getDataSources = () => {\n const request = { forbund: configureLvl1 ? ['sa'] : [forbund] };\n ApiService.getFds(request, token).then(data => setDataSources(data));\n };\n\n useEffect(() => {\n getDataSources();\n // eslint-disable-next-line\n }, [token, forbund, configureLvl1]);\n\n useEffect(() => {\n if (\n !situationCopied &&\n !situationCreated &&\n !situationDeleted &&\n !situationUpdated\n )\n return;\n\n if (situationCopied) {\n toast.success('Statistikkälla duplicerad');\n setSituationCopied(false);\n }\n if (situationCreated) {\n toast.success('Statistikkälla skapad');\n setSituationCreated(false);\n }\n if (situationDeleted) {\n toast.success('Statistikkälla borttagen');\n setSituationDeleted(false);\n }\n if (situationUpdated) {\n toast.success('Statistikkälla uppdaterad');\n setSituationUpdated(false);\n }\n }, [situationCopied, situationCreated, situationDeleted, situationUpdated]);\n\n return (\n
    \n \n {situations\n .sort((a, b) => a.name.localeCompare(b.name))\n .sort((a, b) => {\n if (a.DSL2.toLowerCase() === 'df') return -1;\n if (b.DSL2.toLowerCase() !== 'df') return 1;\n return 0;\n })\n .map(situation => (\n {\n setCreateNewSituation(true);\n setSituationToCopy(s);\n }}\n deleteSituation={deleteSituation}\n key={situation.id}\n setSituationUpdated={setSituationUpdated}\n situation={situation}\n updateSituation={updateSituation}\n />\n ))}\n
    \n {!createNewSituation ? (\n \n {\n setCreateNewSituation(prevState => !prevState);\n setSituationToCopy(null);\n }}\n style={{ marginLeft: 'auto' }}\n variant=\"primary\"\n />\n \n ) : (\n \n )}\n
    \n
    \n );\n};\n\nPreviewDataSourceConfig.propTypes = {\n configureLvl1: PropTypes.bool,\n setSituations: PropTypes.func.isRequired,\n situations: PropTypes.arrayOf(Object).isRequired,\n};\n\nPreviewDataSourceConfig.defaultProps = {\n configureLvl1: false,\n};\n\nexport default PreviewDataSourceConfig;\n","import Button from 'atoms/button/Button';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport Select from 'atoms/select/Select';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { toast, ToastContainer } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport SortableList from '../level3advanced/datasourceconfig/sortablelist/SortableList';\nimport styles from './PreviewSalaryProfileConfig.module.css';\n\nconst PreviewSalaryProfileConfig = ({ situations, setSituations }) => {\n const [selectionList, setSelectionList] = useState();\n const [currentSituation, setCurrentSituation] = useState();\n const [isSaving, setIsSaving] = useState(false);\n const { user } = useAuth();\n\n const handleSubmit = () => {\n setIsSaving(true);\n const situationId = currentSituation.id; // TODO: Hämta upp situationsid\n\n const request = {\n selections: selectionList.map(selection => {\n return {\n id: selection.id,\n isActive: selection.isActive,\n selectionOrder: selection.SELECTION_ORDER,\n sortOptionsByNumber: selection.sortOptionsByNumber,\n };\n }),\n };\n\n ApiService.updateSelections(situationId, request, user.token)\n .then(data => {\n const tempData = [...situations];\n const index = tempData.findIndex(\n situation => situation.id === situationId\n );\n\n if (index > -1) {\n tempData[index] = data;\n }\n\n setSituations(tempData);\n toast.success('Statistikkälla uppdaterad');\n })\n .finally(() => setIsSaving(false));\n };\n\n return (\n
    \n \n
    \n
    \n {\n const { value } = evt.target;\n if (value) {\n setSelectionList(situations[Number(value)].selections);\n setCurrentSituation({ id: situations[Number(value)].id });\n } else {\n setSelectionList(null);\n setCurrentSituation(null);\n }\n }}\n options={\n situations && [\n { desc: 'Ingen vald', key: '', value: '' },\n ...situations\n .filter(situation => situation.isActive)\n .map((situation, i) => ({\n key: situation.id,\n value: i,\n desc: `${situation.name} - ${situation.year}`,\n })),\n ]\n }\n />\n
    \n
    \n {selectionList && (\n \n )}\n {currentSituation && (\n \n {/* TODO: Om man gör ändringar borde knappen bli enabled */}\n handleSubmit()}\n label=\"Spara\"\n altText=\"Spara vald ordning\"\n disabled={isSaving}\n />\n {/*
    \n );\n};\n\nPreviewSalaryProfileConfig.propTypes = {\n situations: PropTypes.arrayOf(Object).isRequired,\n setSituations: PropTypes.func.isRequired,\n};\n\nexport default PreviewSalaryProfileConfig;\n","/* eslint-disable camelcase */\nimport React from 'react';\nimport styles from './HelpBox.module.css';\n\nconst HelpBox = () => {\n return (\n
    \n

    Hjälp

    \n

    För att konfigurera förbundsanpassningar gör följande:

    \n
      \n
    • Skapa statistikkällor
    • \n
        \n
      • 1..* (en till många)
      • \n
      • \n Tjänsten anropar automatiskt SAS och hämtar de år som är inlagda i\n SAS.\n
      • \n
      \n
    • Välj och ordna filter/urval
    • \n
        \n
      • \n Tjänsten anropar automatiskt SAS och hämtar den data (urval) som\n finns där.\n
      • \n
      \n
    \n
    \n );\n};\n\nHelpBox.propTypes = {};\n\nHelpBox.defaultProps = {};\n\nexport default HelpBox;\n","import ButtonLink from 'atoms/buttonlink/ButtonLink';\nimport Loader from 'atoms/loader/Loader';\nimport Panel from 'atoms/panel/Panel';\nimport Section from 'atoms/section/Section';\nimport Tab from 'atoms/tab/Tab';\nimport TabRow from 'atoms/tabrow/TabRow';\nimport Const from 'const';\nimport useScrollTo from 'hooks/useScrollTo';\nimport React, { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport PreviewDataSourceConfig from 'components/admin/previewdatasourceconfig/PreviewDataSourceConfig';\nimport LinksConfig from '../linksconfig/LinksConfig';\nimport PreviewSalaryProfileConfig from '../previewsalaryprofileconfig/PreviewSalaryProfileConfig';\nimport HelpBox from './helpbox/HelpBox';\nimport styles from './PreviewConfig.module.css';\n\nconst PreviewConfig = () => {\n const history = useHistory();\n const ref = useScrollTo('hjalp');\n const { user, signout, autoRefreshToken } = useAuth();\n const { token } = user;\n\n const [activeTab, setActiveTab] = useState('situation');\n const [situations, setSituations] = useState();\n const [loadingSituations, setLoadingSituations] = useState(false);\n\n useEffect(() => {\n //if (!(user.role === 'admin' && user.forbund.toLowerCase() === 'sa')) return;\n setLoadingSituations(true);\n console.log('getPreviewSituations');\n ApiService.getPreviewSituations(token)\n .then(data => {\n setSituations(data);\n })\n .then(() => autoRefreshToken(token))\n .catch(error => {\n if (error.status === 401) {\n signout();\n history.push('/logga-ut');\n }\n })\n .finally(() => setLoadingSituations(false));\n // eslint-disable-next-line\n }, [token, signout, history]);\n\n // admins\n return (\n \n
    \n \n setActiveTab('situation')}\n />\n setActiveTab('statistics')}\n />\n\n history.push('#hjalp')}\n />\n \n\n {loadingSituations ? (\n
    \n \n
    \n ) : (\n <>\n {situations && (\n <>\n {activeTab === 'situation' && situations && (\n \n )}\n {activeTab === 'statistics' && situations && (\n \n )}\n {activeTab === 'links' && }\n \n )}\n \n )}\n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default PreviewConfig;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport SimpleMdeReact from 'react-simplemde-editor';\nimport 'easymde/dist/easymde.min.css';\n\nexport default function MarkdownEditor({\n value,\n onChange,\n autofocus,\n status,\n toolbar,\n}) {\n const options = useMemo(() => {\n return {\n autofocus,\n spellChecker: false,\n status,\n toolbar,\n };\n }, [autofocus, status, toolbar]);\n\n return ;\n}\n\nMarkdownEditor.propTypes = {\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n autofocus: PropTypes.bool,\n status: PropTypes.bool,\n // eslint-disable-next-line\n toolbar: PropTypes.any,\n};\n\nMarkdownEditor.defaultProps = {\n value: '',\n autofocus: false,\n status: false,\n toolbar: [\n 'bold',\n 'italic',\n 'strikethrough',\n '|',\n 'quote',\n 'unordered-list',\n 'ordered-list',\n '|',\n 'undo',\n 'redo',\n '|',\n 'guide',\n 'preview',\n ],\n};\n","import Button from 'atoms/button/Button';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport MarkdownEditor from 'atoms/markdowneditor/MarkdownEditor';\nimport Panel from 'atoms/panel/Panel';\nimport Select from 'atoms/select/Select';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport styles from './FilterExplanationCreate.module.css';\n\nconst FilterExplanationCreate = ({ selvars, setFilterTexts, setEditMode }) => {\n const { user } = useAuth();\n\n const [filterText, setFilterText] = useState('');\n const [textId, setTextId] = useState(selvars[0].sel_var);\n const isDefault = user.forbund === 'SA';\n\n const handleSubmit = () => {\n const request = {\n groupId: 'menuselection',\n textId,\n header: selvars.find(selvar => selvar.sel_var === textId).desc,\n value: filterText,\n isDefault,\n unionId: isDefault ? null : user.unionId,\n };\n\n ApiService.postText(request, user.token).then(data => {\n setFilterTexts(prevState => [...prevState, data]);\n\n if (setEditMode) setEditMode(prevState => !prevState);\n });\n };\n\n return (\n \n setTextId(evt.target.value)}\n value={textId}\n options={\n selvars &&\n selvars.map(selvar => ({\n key: selvar.sel_var,\n value: selvar.sel_var,\n desc: selvar.desc,\n }))\n }\n />\n
    \n setFilterText(value)}\n autofocus\n />\n
    \n \n handleSubmit()}\n label=\"Spara\"\n altText=\"Spara filtertext\"\n marginBottom\n />\n \n \n );\n};\n\nFilterExplanationCreate.propTypes = {\n selvars: PropTypes.arrayOf(String),\n setEditMode: PropTypes.func,\n setFilterTexts: PropTypes.func.isRequired,\n};\n\nFilterExplanationCreate.defaultProps = {\n selvars: PropTypes.arrayOf(String),\n setEditMode: PropTypes.null,\n};\n\nexport default FilterExplanationCreate;\n","import Button from 'atoms/button/Button';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport Loader from 'atoms/loader/Loader';\nimport SectionAdmin from 'atoms/sectionadmin/SectionAdmin';\nimport Select from 'atoms/select/Select';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport FilterExplanationCreate from '../filterexplanationcreate/FilterExplanationCreate';\nimport styles from './FilterExplanationNoText.module.css';\n\nconst FilterExplanationNoText = ({\n dataSources,\n filterTexts,\n setFilterTexts,\n loadingYears,\n}) => {\n const [dsl1, setDsl1] = useState('');\n const [dsl2, setDsl2] = useState('');\n const [year, setYear] = useState();\n\n const [availableYears, setAvailableYears] = useState([]);\n const [availableDSL1, setAvailableDSL1] = useState([]);\n const [availableDSL2, setAvailableDSL2] = useState([]);\n\n const [isCreatingNewText, setIsCreatingNewText] = useState(false);\n const [selvars, setSelvars] = useState();\n\n const [loading, setLoading] = useState(false);\n\n const { user } = useAuth();\n\n useEffect(() => {\n if (dataSources == null) return;\n setAvailableYears(\n dataSources\n .reduce((acc, curr) => {\n if (!acc.includes(curr.YEAR)) acc.push(curr.YEAR);\n return acc;\n }, [])\n .sort()\n );\n // eslint-disable-next-line\n }, [dataSources]);\n\n useEffect(() => {\n if (year == null) {\n // Nollställ\n setAvailableDSL1([]);\n setAvailableDSL2([]);\n return;\n }\n\n const dsl1Temp = dataSources\n .filter(dataSource => dataSource.YEAR === year)\n .reduce((acc, curr) => {\n if (!acc.some(a => a.dsl === curr.DSL1))\n acc.push({ dsl: curr.DSL1, desc: curr.DSL1_DESC });\n return acc;\n }, []);\n setAvailableDSL1(dsl1Temp);\n // eslint-disable-next-line\n }, [year, dataSources]);\n\n useEffect(() => {\n if (dsl1 === '') return;\n setDsl2('');\n setAvailableDSL2(\n dataSources\n .filter(dataSource => dataSource.YEAR === year)\n .filter(dataSource => dataSource.DSL1 === dsl1)\n .map(dataSource => {\n return { dsl: dataSource.DSL2, desc: dataSource.DSL2_DESC };\n })\n .filter(datasource => datasource.dsl.length)\n );\n // eslint-disable-next-line\n }, [dsl1, dataSources, year]);\n\n useEffect(() => {\n if (dataSources == null) return;\n\n let temp;\n if (dsl2 == null) {\n temp = dataSources.find(\n source =>\n source.DSL1 === dsl1 && source.YEAR === year && source.DSL2 === ''\n );\n } else {\n temp = dataSources.find(\n source =>\n source.DSL1 === dsl1 && source.YEAR === year && source.DSL2 === dsl2\n );\n }\n\n if (temp == null) return;\n\n const request = {\n Forbund: user.forbund,\n dsl1,\n dsl2: dsl2 || null,\n year, // År.\n };\n\n setLoading(true);\n ApiService.getMenuselections(request, user.token)\n .then(data => {\n // TODO: hämta ut alla unika sel_vars\n // TODO: Jämför unika sel_vars med vilka itemIds som finns i filterTexts.\n const uniqueSelvar = data.reduce((acc, curr) => {\n if (\n !acc.some(a => a.sel_var === curr.sel_var) &&\n !filterTexts.some(txt => txt.textId === curr.sel_var)\n )\n acc.push({ sel_var: curr.sel_var, desc: curr.SELECTION_TEXT });\n return acc;\n }, []);\n\n setSelvars(uniqueSelvar);\n })\n .finally(() => setLoading(false));\n // eslint-disable-next-line\n }, [year, dsl1, dsl2, user, dataSources]);\n\n return (\n
    \n \n
    \n

    För att hitta önskade filter behöver du välja år och datakälla.

    \n
    \n {\n e.persist();\n setYear(Number(e.target.value));\n }}\n options={[\n { key: 'year_null', value: '', desc: 'Inget valt' },\n ...availableYears.map(availableYear => ({\n key: availableYear,\n value: availableYear,\n desc: availableYear,\n })),\n ]}\n />\n
    \n
    \n {\n e.persist();\n setDsl1(e.target.value);\n }}\n options={[\n { key: 'dsl1_null', value: '', desc: 'Inget valt' },\n ...availableDSL1.map(dsl => ({\n key: dsl.dsl,\n value: dsl.dsl,\n desc: dsl.desc,\n })),\n ]}\n />\n
    \n
    \n {\n e.persist();\n setDsl2(e.target.value);\n }}\n options={[\n { key: 'dsl2_null', value: '', desc: 'Inget valt' },\n ...availableDSL2.map(dsl => ({\n key: dsl.dsl,\n value: dsl.dsl,\n desc: dsl.desc,\n })),\n ]}\n />\n
    \n
    \n {loading ? (\n
    \n \n
    \n ) : (\n <>\n
    \n {selvars && (\n
      \n {selvars.map(selvar => (\n \n {`${selvar.desc} - ${selvar.sel_var}`}\n \n ))}\n
    \n )}\n
    \n {selvars && !isCreatingNewText && (\n \n setIsCreatingNewText(prevState => !prevState)}\n icon=\"Plus\"\n label=\"Lägg till\"\n altText=\"Lägg till förklaring\"\n />\n \n )}\n \n )}\n {isCreatingNewText && (\n \n )}\n
    \n
    \n );\n};\n\nFilterExplanationNoText.propTypes = {\n dataSources: PropTypes.arrayOf(Object),\n filterTexts: PropTypes.arrayOf(Object),\n setFilterTexts: PropTypes.func.isRequired,\n loadingYears: PropTypes.bool,\n};\n\nFilterExplanationNoText.defaultProps = {\n dataSources: [],\n filterTexts: [],\n loadingYears: false,\n};\n\nexport default FilterExplanationNoText;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Button from 'atoms/button/Button';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport MarkdownEditor from 'atoms/markdowneditor/MarkdownEditor';\nimport styles from './FilterExplanationEdit.module.css';\n\nconst FilterExplanationEdit = ({ text, setEditMode, setFilterTexts }) => {\n const [hideEditor, setHideEditor] = useState(false);\n const [filterText, setFilterText] = useState(text.value);\n\n const { user } = useAuth();\n const isDefault = user.forbund === 'SA';\n\n const performSave = () => {\n const request = {\n ...((isDefault || text.unionId === user.unionId) && { id: text.id }),\n header: text.header,\n textId: text.textId,\n groupId: text.groupId,\n value: filterText,\n isDefault,\n unionId: isDefault ? null : user.unionId,\n };\n\n ApiService.postText(request, user.token).then(data => {\n setFilterTexts(prevState => {\n const index = prevState.findIndex(i => i.textId === data.textId);\n const isDuplicate = prevState[index].id === data.id;\n return [\n ...prevState.slice(0, index),\n data,\n ...prevState.slice(isDuplicate ? index + 1 : index),\n ];\n });\n });\n\n setEditMode(false);\n };\n\n const performDelete = () => {\n setHideEditor(true);\n ApiService.deleteText(text.id, user.token).then(() =>\n setFilterTexts(prevState => prevState.filter(txt => txt.id !== text.id))\n );\n setEditMode(prevState => !prevState);\n };\n\n const performReset = () => {\n setFilterText(text.value);\n\n setEditMode(prevState => !prevState);\n };\n\n return (\n
    \n {!hideEditor && (\n {\n setFilterText(value);\n }}\n />\n )}\n \n {(isDefault || text.unionId === user.unionId) && (\n \n )}\n performSave()}\n label=\"Spara\"\n altText=\"Spara filtertext\"\n />\n performReset()}\n label=\"Avbryt\"\n />\n \n
    \n );\n};\n\nFilterExplanationEdit.propTypes = {\n text: PropTypes.shape({\n id: PropTypes.string,\n groupId: PropTypes.string,\n header: PropTypes.string,\n textId: PropTypes.string,\n value: PropTypes.string,\n unionId: PropTypes.string,\n isDefault: PropTypes.bool,\n }).isRequired,\n setEditMode: PropTypes.func.isRequired,\n setFilterTexts: PropTypes.func.isRequired,\n};\n\nexport default FilterExplanationEdit;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Button from 'atoms/button/Button';\nimport ExplanationText from 'atoms/explanationtext/ExplanationText';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport Accordion from 'atoms/accordion/Accordion';\nimport styles from './FilterExplanationItem.module.css';\nimport FilterExplanationEdit from '../filterexplanationedit/FilterExplanationEdit';\n\nconst FilterExplanationItem = ({ text, setFilterTexts }) => {\n const [editMode, setEditMode] = useState(false);\n\n return (\n \n {!editMode && (\n
    \n {!text.unionId && (\n Delad text:\n )}\n \n \n setEditMode(prevState => !prevState)}\n label=\"Redigera\"\n altText=\"Redigera filtertext\"\n icon=\"Edit\"\n />\n \n
    \n )}\n {editMode && (\n
    \n \n
    \n )}\n \n );\n};\n\nFilterExplanationItem.propTypes = {\n text: PropTypes.shape({\n id: PropTypes.string,\n groupId: PropTypes.string,\n header: PropTypes.string,\n textId: PropTypes.string,\n value: PropTypes.string,\n unionId: PropTypes.string,\n isDefault: PropTypes.bool,\n }).isRequired,\n setFilterTexts: PropTypes.func.isRequired,\n};\n\nexport default FilterExplanationItem;\n","import Input from 'atoms/input/Input';\nimport Panel from 'atoms/panel/Panel';\nimport Section from 'atoms/section/Section';\nimport SectionAdmin from 'atoms/sectionadmin/SectionAdmin';\nimport Const from 'const';\nimport React, { useEffect, useState } from 'react';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport { useHistory } from 'react-router-dom';\nimport FilterExplanationNoText from './filterexplanationnotext/FilterExplanationNoText';\nimport FilterExplanationItem from './filterexplanationitem/FilterExplanationItem';\nimport styles from './FilterExplanations.module.css';\n\nconst FilterExplanations = () => {\n const { user, signout, autoRefreshToken } = useAuth();\n const { token, forbund } = user;\n const history = useHistory();\n\n const [loadingText, setLoadingText] = useState(false);\n const [loadingData, setLoadingData] = useState(false);\n const [dataSources, setDataSources] = useState();\n const [filterTexts, setFilterTexts] = useState([]);\n const [filteredFilterTexts, setFilteredFilterTexts] = useState([]);\n\n const [searchString, setSearchString] = useState('');\n\n useEffect(() => {\n const request = [\n {\n groupId: 'menuselection',\n },\n ];\n\n setLoadingText(true);\n ApiService.getTextsBoth(request, token)\n .then(data => setFilterTexts(data))\n .then(() => autoRefreshToken(token))\n .catch(error => {\n if (error.status === 401) {\n signout();\n history.push('/logga-ut');\n }\n })\n .finally(() => {\n setLoadingText(false);\n });\n\n const getDataSources = () => {\n const req = { forbund: [forbund] };\n setLoadingData(true);\n ApiService.getFds(req, token)\n .then(data => setDataSources(data))\n .finally(() => {\n setLoadingData(false);\n });\n };\n\n getDataSources();\n // eslint-disable-next-line\n }, [token, forbund]);\n\n useEffect(() => {\n if (!filterTexts.length) return;\n\n let temp = filterTexts;\n if (searchString.length < 3) {\n temp = temp.reduce(\n (acc, curr) =>\n acc.find(i => i.textId === curr.textId)\n ? [...acc, curr].filter(i => i.textId !== curr.textId || i.unionId)\n : [...acc, curr],\n []\n );\n } else {\n temp = temp.filter(\n obj =>\n obj.textId.toLowerCase().indexOf(searchString) > -1 ||\n obj.value.toLowerCase().indexOf(searchString) > -1 ||\n obj.header.toLowerCase().indexOf(searchString) > -1\n );\n }\n\n setFilteredFilterTexts(temp);\n }, [searchString, filterTexts]);\n\n return (\n \n
    \n

    \n Här kan du ändra beskrivningarna av de filter som Saco lönesök\n använder sig av.\n

    \n \n \n

    \n Beskrivningarna av filter kan vara gemensamma för alla förbund eller\n förbundsspecifika. Som grund har alla filter Sacos\n standardbeskrivningar.\n

    \n
    \n setSearchString(evt.target.value.toLowerCase())}\n value={searchString}\n />\n
    \n
    \n {filteredFilterTexts.length > 0 &&\n filteredFilterTexts.map((text, i) => (\n \n ))}\n {Object.keys(filteredFilterTexts).length === 0 && (\n
    \n Filterförklaringar saknas\n
    \n )}\n
    \n
    \n
    \n
    \n );\n};\n\nFilterExplanations.propTypes = {};\n\nexport default FilterExplanations;\n","import Button from 'atoms/button/Button';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport CheckboxAdmin from 'atoms/checkboxadmin/CheckboxAdmin';\nimport Input from 'atoms/input/Input';\nimport Panel from 'atoms/panel/Panel';\nimport PropTypes from 'prop-types';\nimport React, { useRef, useState } from 'react';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\n\nconst EditAccount = ({\n userAccount,\n setUserList,\n setAccountDeleted,\n setAccountUpdated,\n setEditAccount,\n}) => {\n const [isAdmin, setIsAdmin] = useState(userAccount.isAdmin);\n const [isSaving, setIsSaving] = useState(false);\n const [newPassword, setNewPassword] = useState('');\n\n const { isRedaktor, isFortroendevald } = userAccount;\n\n // Refs\n const passwordRef = useRef();\n\n const { user } = useAuth();\n const handleUpdateAccount = () => {\n setIsSaving(true);\n // FIXME: Borde göra en promise kedja här så vi kan vara säkra på att saker sker.\n // Nu är isSaving och toaster states inte 100% rätt.\n if (userAccount.isAdmin !== isAdmin) {\n ApiService.updateAccount(\n userAccount.id,\n { isAdmin, isRedaktor, isFortroendevald },\n user.token\n ).then(() => null);\n }\n if (newPassword.length > 0) {\n if (!passwordRef.current.reportValidity()) {\n setIsSaving(false);\n return;\n }\n\n ApiService.updatePassword(\n userAccount.id,\n { password: newPassword },\n user.token\n ).then(() => null);\n }\n\n setUserList(prevState =>\n prevState.map(usr => {\n if (usr.id === userAccount.id) {\n return {\n ...userAccount,\n isAdmin,\n };\n }\n return usr;\n })\n );\n setAccountUpdated(true);\n setIsSaving(false);\n setEditAccount(false);\n };\n\n const handleDeleteAccount = () => {\n setIsSaving(true);\n ApiService.deleteSubscriber(userAccount.id, user.token)\n .then(() => {\n setAccountDeleted(true);\n setUserList(prevState =>\n prevState.filter(usr => usr.id !== userAccount.id)\n );\n })\n .finally(() => {\n setEditAccount(false);\n setIsSaving(false);\n });\n };\n\n return (\n \n {user.role === 'admin' && (\n
    \n setIsAdmin(prevState => !prevState)}\n />\n
    \n
    \n setNewPassword(evt.target.value)}\n placeholder=\"Nytt lösenord...\"\n ref={passwordRef}\n type=\"password\"\n value={newPassword}\n />\n \n )}\n
    \n \n handleDeleteAccount()}\n label=\"Ta bort\"\n icon=\"Trash\"\n altText=\"Ta bort konto\"\n disabled={isSaving}\n />\n {user.role === 'admin' && (\n handleUpdateAccount()}\n label=\"Spara\"\n altText=\"Spara konto\"\n disabled={\n isSaving || (isAdmin === userAccount.isAdmin && !newPassword)\n }\n />\n )}\n \n
    \n );\n};\n\nEditAccount.propTypes = {\n userAccount: PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n isFortroendevald: PropTypes.bool,\n isRedaktor: PropTypes.bool,\n isAdmin: PropTypes.bool,\n label: PropTypes.string,\n }).isRequired,\n setUserList: PropTypes.func.isRequired,\n setAccountDeleted: PropTypes.func.isRequired,\n setAccountUpdated: PropTypes.func.isRequired,\n setEditAccount: PropTypes.func.isRequired,\n};\n\nexport default EditAccount;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Button from 'atoms/button/Button';\nimport EditAccount from '../editaccount/EditAccount';\nimport styles from './AccountRow.module.css';\n\nconst AccountRow = ({\n userAccount,\n setUserList,\n setAccountDeleted,\n setAccountUpdated,\n}) => {\n const [editAccount, setEditAccount] = useState(false);\n\n const { id, name, label } = userAccount;\n\n const getRole = account => {\n if (!account) return '';\n if (account.isAdmin) return 'Admin';\n if (account.isRedaktor) return 'Redaktör';\n if (account.isFortroendevald) return 'Förtroendevald';\n return 'Medlem';\n };\n\n return (\n <>\n \n {id}\n {name}\n {getRole(userAccount)}\n {label}\n \n {editAccount ? (\n setEditAccount(prevState => !prevState)}\n style={{ marginLeft: 'auto' }}\n label=\"Avbryt\"\n />\n ) : (\n setEditAccount(prevState => !prevState)}\n style={{ marginLeft: 'auto' }}\n label=\"Redigera\"\n icon=\"Edit\"\n />\n )}\n \n \n {editAccount && (\n \n \n \n \n \n )}\n \n );\n};\n\nAccountRow.propTypes = {\n userAccount: PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n isFortroendevald: PropTypes.bool,\n isRedaktor: PropTypes.bool,\n isAdmin: PropTypes.bool,\n label: PropTypes.string,\n }).isRequired,\n setUserList: PropTypes.func.isRequired,\n setAccountDeleted: PropTypes.func.isRequired,\n setAccountUpdated: PropTypes.func.isRequired,\n};\n\nexport default AccountRow;\n","import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport Button from 'atoms/button/Button';\nimport Loader from 'atoms/loader/Loader';\nimport Select from 'atoms/select/Select';\nimport Input from 'atoms/input/Input';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport { useAuth } from 'services/UseAuth';\nimport ApiService from 'services/ApiService';\nimport Panel from 'atoms/panel/Panel';\nimport styles from './CreateAccount.module.css';\n\nconst CreateAccount = ({ setAccountCreated, setAddAccount, setUserList }) => {\n const [isSaving, setIsSaving] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [unionList, setUnionList] = useState([]);\n\n // Refs\n const passwordRef = useRef();\n\n // User input.\n const [password, setPassword] = useState('');\n const [role, setRole] = useState('medlem');\n const [selectedUnion, setSelectedUnion] = useState({});\n const [label, setLabel] = useState();\n\n const { user } = useAuth();\n\n const performSubmit = () => {\n if (!passwordRef.current.reportValidity()) return;\n setIsSaving(true);\n const request = {\n name: selectedUnion.name,\n password,\n forbundskodSas: selectedUnion.forbundskodSas,\n isFortroendeVald: role === 'fortroendevald',\n isRedaktor: role === 'redaktor',\n isAdmin: role === 'admin',\n label,\n };\n\n ApiService.postSubscriber(request, user.token)\n .then(data => {\n setUserList(prevState => [\n ...prevState,\n // TODO: Endpoint needs to return name of created account\n { ...data, name: selectedUnion.name },\n ]);\n setAccountCreated(true);\n })\n .finally(() => {\n setAddAccount(prevState => !prevState);\n setIsSaving(false);\n });\n };\n\n useEffect(() => {\n if (user.role === 'redaktor') {\n ApiService.getUnion(user.token).then(data => setSelectedUnion(data));\n return;\n }\n setIsLoading(true);\n\n ApiService.getUnions(user.token)\n .then(data => {\n setUnionList(\n data\n .filter(a => a.forbundskodSas !== 'XX')\n .sort((a, b) => `${a.name}`.localeCompare(b.name, 'sv'))\n );\n })\n .finally(() => setIsLoading(false));\n }, [user.token]);\n\n useEffect(() => {\n if (unionList.length > 0) {\n setSelectedUnion(unionList[0]);\n }\n }, [unionList]);\n\n return (\n \n {isLoading ? (\n
    \n \n
    \n ) : (\n <>\n
    \n {user.role === 'admin' && (\n setSelectedUnion(JSON.parse(evt.target.value))}\n options={[\n ...unionList.map(union => ({\n key: union.id,\n value: JSON.stringify(union),\n desc: union.name,\n })),\n ]}\n value={JSON.stringify(selectedUnion)}\n />\n )}\n setRole(e.target.value)}\n value={role}\n options={[\n { key: 'medlem', value: 'medlem', desc: 'Medlem' },\n {\n key: 'fortroendevald',\n value: 'fortroendevald',\n desc: 'Förtroendevald',\n },\n {\n key: 'redaktor',\n value: 'redaktor',\n desc: 'Redaktör',\n },\n ]}\n />\n setLabel(evt.target.value)}\n placeholder=\"Etikett\"\n type=\"text\"\n value={label}\n />\n setPassword(evt.target.value)}\n placeholder=\"Lösenord\"\n ref={passwordRef}\n type=\"password\"\n value={password}\n />\n
    \n \n performSubmit()}\n label=\"Spara\"\n altText=\"Spara konto\"\n disabled={isSaving || password.length < 10}\n />\n setAddAccount(false)}\n label=\"Avbryt\"\n disabled={isSaving}\n />\n \n \n \n )}\n
    \n );\n};\n\nCreateAccount.propTypes = {\n setAccountCreated: PropTypes.func.isRequired,\n setAddAccount: PropTypes.func.isRequired,\n setUserList: PropTypes.func.isRequired,\n};\n\nexport default CreateAccount;\n","import Button from 'atoms/button/Button';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport Loader from 'atoms/loader/Loader';\nimport Panel from 'atoms/panel/Panel';\nimport Section from 'atoms/section/Section';\nimport Select from 'atoms/select/Select';\nimport Const from 'const';\nimport React, { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { toast, ToastContainer } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport AccountRow from './accountrow/AccountRow';\nimport styles from './Accounts.module.css';\nimport CreateAccount from './createaccount/CreateAccount';\n\nconst Accounts = () => {\n const [userList, setUserList] = useState([]);\n const [addAccount, setAddAccount] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n\n const [filter, setFilter] = useState('');\n\n const [accountUpdated, setAccountUpdated] = useState(false);\n const [accountDeleted, setAccountDeleted] = useState(false);\n const [accountCreated, setAccountCreated] = useState(false);\n\n const history = useHistory();\n const { user, signout, autoRefreshToken } = useAuth();\n const { token } = user;\n\n useEffect(() => {\n setIsLoading(true);\n ApiService.getSubscribers(token)\n .then(data => {\n data.sort((a, b) => `${a.name}`.localeCompare(b.name, 'sv'));\n setUserList(data);\n })\n .then(() => autoRefreshToken(token))\n .catch(error => {\n if (error.status === 401) {\n signout();\n history.push('/logga-ut');\n }\n })\n .finally(() => setIsLoading(false));\n // eslint-disable-next-line\n }, [token]);\n\n useEffect(() => {\n if (!accountUpdated && !accountDeleted && !accountCreated) return;\n\n if (accountCreated) {\n toast.success('Konto Skapat');\n setAccountCreated(false);\n }\n if (accountUpdated) {\n toast.success('Konto Uppdaterat');\n setAccountUpdated(false);\n }\n if (accountDeleted) {\n toast.error('Konto Borttaget');\n setAccountDeleted(false);\n }\n }, [accountUpdated, accountDeleted, accountCreated]);\n\n const filteredUserList = userList.filter(\n userObj => filter === '' || userObj.forbundsKodSas === filter\n );\n\n return (\n \n
    \n \n {isLoading ? (\n
    \n \n
    \n ) : (\n <>\n {user.role === 'admin' && (\n
    \n setFilter(e.target.value)}\n options={[\n { key: 'user_null', value: '', desc: 'Samtliga förbund' },\n ...userList\n .filter(\n (a, b, arr) =>\n arr.findIndex(obj => obj.name === a.name) === b\n )\n .map(\n ({ id: key, forbundsKodSas: value, name: desc }) => ({\n key,\n value,\n desc,\n })\n ),\n ]}\n value={filter}\n />\n
    \n )}\n
    \n \n \n \n \n \n \n \n \n \n \n \n {filteredUserList.length > 0 &&\n filteredUserList.map(usr => (\n \n ))}\n \n
    AnvändarnamnFörbundRollEtikettHantera
    \n
    \n {!addAccount && (\n \n setAddAccount(prevState => !prevState)}\n icon=\"Plus\"\n altText=\"Lägg till konto\"\n label=\"Lägg till\"\n />\n \n )}\n\n
    \n {addAccount && (\n \n )}\n
    \n \n )}\n
    \n
    \n );\n};\n\nAccounts.propTypes = {};\n\nexport default Accounts;\n","import Button from 'atoms/button/Button';\nimport { format } from 'date-fns';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { IconChevronDown, IconChevronUp } from 'tabler-icons';\nimport styles from './LogItem.module.css';\n\nconst LogItem = ({ log }) => {\n const { message, exception, properties } = log;\n const timeStamp = `[${format(\n new Date(log.timeStamp),\n 'yyyy-MM-dd HH:mm.ss'\n )}]:`;\n\n const [isExpanded, setIsExpanded] = useState(false);\n const [copied, setCopied] = useState(false);\n\n const flipBackState = () =>\n setTimeout(() => {\n setCopied(false);\n }, 2000);\n\n // IE support\n const fallbackCopyLogMessage = text => {\n const textArea = document.createElement('textarea');\n textArea.value = text;\n\n // Avoid scrolling to bottom\n textArea.style.top = '0';\n textArea.style.left = '0';\n textArea.style.position = 'fixed';\n\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n\n try {\n document.execCommand('copy');\n setCopied(true);\n } catch (err) {\n // TODO: Handle errors?\n }\n\n document.body.removeChild(textArea);\n flipBackState();\n };\n\n // All other browsers\n const copyLogMessage = e => {\n e.preventDefault();\n e.stopPropagation();\n\n const text = `${timeStamp || ''} ${message || ''} \\n\\n ${exception || ''} ${\n properties || ''\n }`;\n\n if (!navigator.clipboard) {\n fallbackCopyLogMessage(text);\n return;\n }\n\n navigator.clipboard\n .writeText(text)\n .then(() => setCopied(true))\n .catch(err => {\n // TODO: Handle errors?\n })\n .finally(() => flipBackState());\n };\n\n return (\n setIsExpanded(prevState => !prevState)}\n onKeyUp={() => null}\n tabIndex={0}\n >\n
    \n \n {isExpanded ? : }\n \n \n {timeStamp}\n {message}\n \n
    \n {isExpanded && (\n <>\n
    \n
    \n

    {exception}

    \n

    {properties}

    \n
    \n
    \n
    \n copyLogMessage(e)}\n icon=\"Copy\"\n label={copied ? 'Meddelande kopierat' : 'Kopiera'}\n altText=\"Kopiera loggmeddelande\"\n />\n
    \n \n )}\n \n );\n};\n\nLogItem.propTypes = {\n log: PropTypes.shape({\n level: PropTypes.string,\n timeStamp: PropTypes.string,\n message: PropTypes.string,\n exception: PropTypes.string,\n properties: PropTypes.string,\n }).isRequired,\n};\n\nexport default LogItem;\n","import Button from 'atoms/button/Button';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport Loader from 'atoms/loader/Loader';\nimport Panel from 'atoms/panel/Panel';\nimport Section from 'atoms/section/Section';\nimport Select from 'atoms/select/Select';\nimport Const from 'const';\nimport { getAvailableYears, months, today } from 'lib/time';\nimport React, { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport styles from './ApplicationLog.module.css';\nimport LogItem from './logitem/LogItem';\n\nconst ApplicationLog = () => {\n const [logs, setLogs] = useState([]);\n const [loading, setLoading] = useState(true);\n\n const logsPerPage = 50;\n const [pages, setPages] = useState(0);\n const [currentPage, setCurrentPage] = useState(0);\n\n const [monthFrom, setMonthFrom] = useState(today.getMonth() + 1);\n const [monthTo, setMonthTo] = useState(today.getMonth() + 1);\n const [yearFrom, setYearFrom] = useState(today.getFullYear());\n const [yearTo, setYearTo] = useState(today.getFullYear());\n const [logLevel, setLogLevel] = useState('');\n\n const [refresh, setRefresh] = useState(true);\n\n const history = useHistory();\n const { user, signout, autoRefreshToken } = useAuth();\n const { token } = user;\n\n const logLevels = [\n { key: 'all', value: '', desc: 'Alla' },\n { key: 'warning', value: 'Warning', desc: 'Varning' },\n { key: 'error', value: 'Error', desc: 'Fel' },\n { key: 'info', value: 'Information', desc: 'Information' },\n ];\n\n useEffect(() => {\n if (!refresh) return;\n setLoading(true);\n\n const request = {\n level: logLevel || null,\n yearFrom: yearFrom || null,\n yearTo: yearTo || null,\n monthFrom: monthFrom || null,\n monthTo: monthTo || null,\n };\n\n ApiService.getLogs(request, token)\n .then(data => {\n setCurrentPage(0);\n setLogs(data);\n })\n .then(() => autoRefreshToken(token))\n .catch(error => {\n if (error.status === 401) {\n signout();\n history.push('/logga-ut');\n }\n })\n .finally(() => {\n setLoading(false);\n setRefresh(false);\n });\n // eslint-disable-next-line\n }, [token, logLevel, yearFrom, yearTo, monthFrom, monthTo, refresh]);\n\n useEffect(() => {\n setPages(Math.ceil(logs.length / logsPerPage));\n }, [logs]);\n\n const filteredLogs = logs.slice(\n currentPage * logsPerPage,\n currentPage * logsPerPage + logsPerPage\n );\n\n return (\n \n
    \n
    \n
    \n {\n setYearFrom(Number(e.target.value));\n setYearTo(Number(e.target.value));\n setRefresh(true);\n }}\n options={[\n { key: 'year_from_null', value: '', desc: 'Alla loggar' },\n ...getAvailableYears().map(year => ({\n key: year,\n value: year,\n desc: year,\n })),\n ]}\n value={yearFrom}\n />\n
    \n
    \n {\n setMonthFrom(Number(e.target.value));\n setMonthTo(Number(e.target.value));\n setRefresh(true);\n }}\n options={[\n { key: 'month_from_null', value: '', desc: 'Samtliga månader' },\n ...months.map((month, i) => ({\n key: month,\n value: i + 1,\n desc: month,\n disabled:\n i > today.getMonth() && yearFrom >= today.getFullYear(),\n })),\n ]}\n value={yearFrom && yearTo ? monthFrom : ''}\n />\n
    \n
    \n {\n setLogLevel(e.target.value);\n setRefresh(true);\n }}\n options={logLevels.map(({ key, value, desc }) => ({\n key,\n value,\n desc,\n }))}\n value={logLevel}\n />\n
    \n
    \n setRefresh(true)}\n label=\"Uppdatera\"\n altText=\"Uppdatera logg\"\n icon=\"Refresh\"\n />\n
    \n
    \n\n {loading ? (\n
    \n \n
    \n ) : (\n
    \n {filteredLogs.length > 0 ? (\n filteredLogs.map(log => )\n ) : (\n \n Hittade inga loggar, prova att justera filtret\n \n )}\n
    \n )}\n\n {pages > 0 && (\n \n setCurrentPage(prevState => prevState - 1)}\n label=\"Föregående sida\"\n />\n \n {`${currentPage + 1} / ${pages}`}\n \n setCurrentPage(prevState => prevState + 1)}\n label=\"Nästa sida\"\n />\n \n )}\n
    \n );\n};\n\nexport default ApplicationLog;\n","import Button from 'atoms/button/Button';\nimport { format } from 'date-fns';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { IconChevronDown, IconChevronUp } from 'tabler-icons';\nimport styles from './LogItem.module.css';\n\nconst LogItem = ({ log, union }) => {\n const { message, exception, properties } = log;\n const timeStamp = `[${format(\n new Date(log.timeStamp),\n 'yyyy-MM-dd HH:mm.ss'\n )}]:`;\n\n const [isExpanded, setIsExpanded] = useState(false);\n const [copied, setCopied] = useState(false);\n\n const flipBackState = () =>\n setTimeout(() => {\n setCopied(false);\n }, 2000);\n\n // IE support\n const fallbackCopyLogMessage = text => {\n const textArea = document.createElement('textarea');\n textArea.value = text;\n\n // Avoid scrolling to bottom\n textArea.style.top = '0';\n textArea.style.left = '0';\n textArea.style.position = 'fixed';\n\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n\n try {\n document.execCommand('copy');\n setCopied(true);\n } catch (err) {\n // TODO: Handle errors?\n }\n\n document.body.removeChild(textArea);\n flipBackState();\n };\n\n // All other browsers\n const copyLogMessage = e => {\n e.preventDefault();\n e.stopPropagation();\n\n const text = `${timeStamp || ''} ${message || ''} \\n\\n ${exception || ''} ${\n properties || ''\n }`;\n\n if (!navigator.clipboard) {\n fallbackCopyLogMessage(text);\n return;\n }\n\n navigator.clipboard\n .writeText(text)\n .then(() => setCopied(true))\n .catch(err => {\n // TODO: Handle errors?\n })\n .finally(() => flipBackState());\n };\n\n return (\n setIsExpanded(prevState => !prevState)}\n onKeyUp={() => null}\n tabIndex={0}\n >\n
    \n \n {isExpanded ? : }\n \n \n {timeStamp} {message} {`Förbund: ${union}`}\n \n
    \n {isExpanded && (\n <>\n
    \n
    \n

    {exception}

    \n

    {properties}

    \n
    \n
    \n
    \n copyLogMessage(e)}\n icon=\"Copy\"\n label={copied ? 'Meddelande kopierat' : 'Kopiera'}\n altText=\"Kopiera loggmeddelande\"\n />\n
    \n \n )}\n \n );\n};\n\nLogItem.propTypes = {\n log: PropTypes.shape({\n level: PropTypes.string,\n timeStamp: PropTypes.string,\n message: PropTypes.string,\n exception: PropTypes.string,\n properties: PropTypes.string,\n }).isRequired,\n union: PropTypes.string,\n};\n\nLogItem.defaultProps = {\n union: '-',\n};\nexport default LogItem;\n","import Button from 'atoms/button/Button';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport Loader from 'atoms/loader/Loader';\nimport Panel from 'atoms/panel/Panel';\nimport Section from 'atoms/section/Section';\nimport Select from 'atoms/select/Select';\nimport Const from 'const';\nimport { getAvailableYears, months, today } from 'lib/time';\nimport React, { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport SectionAdmin from 'atoms/sectionadmin/SectionAdmin';\nimport styles from './MonitoringLog.module.css';\nimport LogItem from './logitem/LogItem';\nimport { useLocation } from 'react-router-dom';\n\nconst MonitoringLog = () => {\n const [monitoringrun, setMonitoringRun] = useState({});\n const [logs, setLogs] = useState([]);\n const [loading, setLoading] = useState(true);\n\n const logsPerPage = 50;\n const [pages, setPages] = useState(0);\n const [currentPage, setCurrentPage] = useState(0);\n\n const [monthFrom, setMonthFrom] = useState(today.getMonth() + 1);\n const [monthTo, setMonthTo] = useState(today.getMonth() + 1);\n const [yearFrom, setYearFrom] = useState(today.getFullYear());\n const [yearTo, setYearTo] = useState(today.getFullYear());\n const [logLevel, setLogLevel] = useState('');\n\n const [refresh, setRefresh] = useState(true);\n\n const history = useHistory();\n const { user, signout, autoRefreshToken } = useAuth();\n const { token } = user;\n\n const location = useLocation();\n\n const logLevels = [\n { key: 'all', value: '', desc: 'Alla' },\n { key: 'warning', value: 'Warning', desc: 'Varning' },\n { key: 'error', value: 'Error', desc: 'Fel' },\n { key: 'info', value: 'Information', desc: 'Information' },\n ];\n\n useEffect(() => {\n if (!refresh) return;\n setLoading(true);\n\n const request = {\n level: logLevel || null,\n yearFrom: yearFrom || null,\n yearTo: yearTo || null,\n monthFrom: monthFrom || null,\n monthTo: monthTo || null,\n };\n\n const searchParams = new URLSearchParams(location.search);\n const id = searchParams.get('id');\n console.log('monitoringRunId');\n console.log(id);\n\n ApiService.getMonitoringLogsById(\n {\n monitoringRunId: id,\n },\n token\n )\n .then(data => {\n setCurrentPage(0);\n\n console.log(data); // Log the entire response\n\n // Now you can set the logResponses to your state or wherever needed\n setMonitoringRun(data);\n setLogs(data.logResponses || []); // Ensure logs is an array\n })\n .catch(error => {})\n .finally(() => {\n setLoading(false);\n setRefresh(false);\n });\n }, [token, logLevel, yearFrom, yearTo, monthFrom, monthTo, refresh]);\n\n useEffect(() => {\n setPages(Math.ceil(logs.length / logsPerPage));\n }, [logs]);\n\n const filteredLogs = logs.slice(\n currentPage * logsPerPage,\n currentPage * logsPerPage + logsPerPage\n );\n\n return (\n \n
    \n \n {loading ? (\n
    \n \n
    \n ) : (\n
    \n

    \n JobbId: {monitoringrun.id}\n

    \n

    \n Jobbtyp: {monitoringrun.jobType}\n

    \n

    \n Jobbstatus: {monitoringrun.monitoringStatus}\n

    \n

    \n Starttid: {monitoringrun.startTime}\n

    \n

    \n Sluttid: {monitoringrun.endTime}\n

    \n

    \n Åtgärdad tid: {monitoringrun.resolvedTime}\n

    \n

    \n Felmeddelande: {monitoringrun.errorMessage}\n

    \n

    \n Felfunktion: {monitoringrun.errorFunction}\n

    \n

    \n Antal fel: {monitoringrun.errorsCount}\n

    \n
    \n )}\n
    \n \n
    \n {loading ? (\n
    \n \n
    \n ) : (\n
    \n {filteredLogs.length > 0 ? (\n filteredLogs.map(log => (\n \n ))\n ) : (\n \n Hittade inga loggar, prova att justera filtret\n \n )}\n
    \n )}\n\n {pages > 0 && (\n \n setCurrentPage(prevState => prevState - 1)}\n label=\"Föregående sida\"\n />\n \n {`${currentPage + 1} / ${pages}`}\n \n setCurrentPage(prevState => prevState + 1)}\n label=\"Nästa sida\"\n />\n \n )}\n
    \n
    \n
    \n
    \n );\n};\n\nexport default MonitoringLog;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Button from 'atoms/button/Button';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport Accordion from 'atoms/accordion/Accordion';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport MarkdownEditor from 'atoms/markdowneditor/MarkdownEditor';\nimport ExplanationText from 'atoms/explanationtext/ExplanationText';\nimport styles from './GeneralTextItem.module.css';\n\nconst GeneralTextItem = ({ txtGroup, updateCb }) => {\n const [editMode, setEditMode] = useState(false);\n const [txtGroupCopy, setTxtGroupCopy] = useState([...txtGroup]);\n\n const { user } = useAuth();\n const { unionId } = user;\n const forbundSA = user.forbund === 'SA';\n\n useEffect(() => {\n // Rerender on prop change\n setTxtGroupCopy([...txtGroup]);\n }, [txtGroup]);\n\n const formatHelpText = textIn => {\n if (editMode) {\n return (\n <>\n {\n setTxtGroupCopy(prevState =>\n prevState.map(txtObj => {\n return txtObj.id === textIn.id\n ? { ...txtObj, value }\n : txtObj;\n })\n );\n }}\n />\n \n );\n }\n return ;\n };\n\n const performSave = () => {\n // Copy to union specific text\n const createCopy = !forbundSA && !txtGroup[0].unionId;\n\n const textsToUpdate = txtGroupCopy.filter(newTxt => {\n const comp = txtGroup.find(originalTxt => originalTxt.id === newTxt.id);\n return comp.value !== newTxt.value || createCopy;\n });\n\n textsToUpdate.forEach(updateTxt => {\n const request = {\n ...(!createCopy && { id: updateTxt.id }),\n value: updateTxt.value,\n header: updateTxt.header,\n groupId: updateTxt.groupId,\n textId: updateTxt.textId,\n isDefault: forbundSA,\n ...(!forbundSA && { unionId }),\n };\n\n // TODO: Add user feedback\n ApiService.postText(request, user.token).then(() => {\n updateCb(txtGroup[0].groupId);\n });\n });\n return setEditMode(prevState => !prevState);\n };\n\n const performDelete = () => {\n // Don't delete default texts\n const unionTexts = txtGroup.filter(txt => txt.unionId);\n\n return Promise.all(\n unionTexts.map(txt => ApiService.deleteText(txt.id, user.token))\n ).then(() => {\n updateCb(txtGroup[0].groupId);\n setEditMode(prevState => !prevState);\n });\n };\n\n const performCancel = () => {\n setEditMode(prevState => !prevState);\n setTxtGroupCopy(txtGroup);\n };\n\n const renderSubTexts = () => {\n const textsToPrint = txtGroupCopy.filter(txt => txt.textId !== 'main');\n\n return textsToPrint.map(txt => {\n return (\n
    \n

    {txt.header}

    \n {formatHelpText(txt)}\n
    \n );\n });\n };\n\n return (\n txt.textId === 'main').header +\n (!txtGroup[0].unionId ? '' : ' - förbundsspecifik')\n }\n slim\n border\n marginBottom\n >\n {!editMode && (\n
    \n {formatHelpText(txtGroupCopy.find(txt => txt.textId === 'main'))}\n {renderSubTexts()}\n \n setEditMode(prevState => !prevState)}\n label=\"Redigera\"\n icon=\"Edit\"\n altText=\"Redigera text\"\n />\n \n
    \n )}\n {editMode && (\n
    \n {formatHelpText(txtGroupCopy.find(txt => txt.textId === 'main'))}\n {renderSubTexts()}\n \n {txtGroup[0].unionId && (\n \n )}\n performSave()}\n label=\"Spara\"\n altText=\"Spara text\"\n />\n performCancel()}\n label=\"Avbryt\"\n />\n \n
    \n )}\n \n );\n};\n\nGeneralTextItem.propTypes = {\n txtGroup: PropTypes.arrayOf(Object).isRequired,\n updateCb: PropTypes.func.isRequired,\n};\n\nexport default GeneralTextItem;\n","import Loader from 'atoms/loader/Loader';\nimport Panel from 'atoms/panel/Panel';\nimport Const from 'const';\nimport Section from 'atoms/section/Section';\nimport React, { useEffect, useState } from 'react';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport { useHistory } from 'react-router-dom';\nimport GeneralTextItem from './generaltextitem/GeneralTextItem';\n\n/* \n TEXTER SOM SKA FINNAS:\n (about/main)\n (statistics/main)\n (statistics/survey)\n (statistics/employer)\n (presentation/main)\n (salary/main)\n (salary/fixed)\n (salary/total)\n (measurements/main)\n (measurements/average)\n (measurements/10perc)\n (measurements/lowquartile)\n (measurements/median)\n (measurements/highquartile)\n (measurements/90perc)\n (measurements/averagemedian)\n (graph/main)\n (graph/box)\n (graph/line)\n (graph/bar)\n*/\n\nconst GeneralTexts = () => {\n const [isLoading, setIsLoading] = useState(false);\n const [generalTexts, setGeneralTexts] = useState();\n\n const history = useHistory();\n const { user, signout, autoRefreshToken } = useAuth();\n const { token } = user;\n\n useEffect(() => {\n setIsLoading(true);\n const request = [\n {\n groupId: 'about',\n },\n {\n groupId: 'statistics',\n },\n {\n groupId: 'measurements',\n },\n {\n groupId: 'graph',\n textId: ['main', 'line', 'bar', 'box'],\n },\n ];\n\n // Dom här ska ALLTID finnas (även om value kan vara tomt (?)).\n // (about/main)\n // (statistics/main)\n // (statistics/survey)\n // (statistics/employer)\n // (presentation/main)\n // (salary/main)\n // (salary/fixed)\n // (salary/total)\n // (measurements/main)\n // (measurements/10percentile)\n // (graph/main)\n // (graph/box)\n // (graph/line)\n // (graph/bar)\n\n ApiService.getTexts(request, token)\n .then(data => {\n const sortedTexts = data.reduce((acc, curr) => {\n if (acc[curr.groupId] == null) {\n acc[curr.groupId] = [curr];\n } else {\n acc[curr.groupId].push(curr);\n }\n\n return acc;\n }, []);\n\n setGeneralTexts(sortedTexts);\n })\n .then(() => autoRefreshToken(token))\n .catch(error => {\n if (error.status === 401) {\n signout();\n history.push('/logga-ut');\n }\n })\n .finally(() => setIsLoading(false));\n // eslint-disable-next-line\n }, [token]);\n\n const updateTexts = groupId => {\n const request = [{ groupId }];\n ApiService.getTexts(request, token).then(response => {\n setGeneralTexts({ ...generalTexts, [groupId]: response });\n });\n };\n\n const renderGeneralTextItem = (txtGroup, groupName) => (\n \n );\n\n return (\n \n
    \n {isLoading && }\n {/* FIXME: renderar 2 gånger. */}\n {!isLoading &&\n generalTexts &&\n Object.keys(generalTexts).map(group =>\n renderGeneralTextItem(generalTexts[group], group)\n )}\n
    \n
    \n );\n};\n\nexport default GeneralTexts;\n","import { Link } from 'react-router-dom';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { IconChevronRight } from 'tabler-icons';\nimport styles from './NavigationItem.module.css';\n\nconst NavigationItem = ({ title, to, active, disabled, hidden }) => {\n return (\n \n {title}\n {active && (\n \n \n \n )}\n \n );\n};\n\nNavigationItem.propTypes = {\n hidden: PropTypes.bool,\n disabled: PropTypes.bool,\n active: PropTypes.bool,\n title: PropTypes.string.isRequired,\n to: PropTypes.string.isRequired,\n};\n\nNavigationItem.defaultProps = {\n hidden: false,\n disabled: false,\n active: false,\n};\n\nexport default NavigationItem;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport Button from 'atoms/button/Button';\nimport SectionAdmin from 'atoms/sectionadmin/SectionAdmin';\nimport Loader from 'atoms/loader/Loader';\nimport Panel from 'atoms/panel/Panel';\nimport Input from 'atoms/input/Input';\nimport InputReadOnly from 'atoms/inputreadonly/InputReadOnly';\nimport { toast } from 'react-toastify';\nimport styles from './UnionLinkConfig.module.css';\n\nconst groupId = 'unionLink';\nconst textId = 'unionLink';\n\nexport default function UnionLinkConfig({ forbundList }) {\n const {\n user: { forbund, unionId, token },\n } = useAuth();\n\n const [isLoading, setIsLoading] = useState(false);\n const [isSaving, setIsSaving] = useState(false);\n const [editMode, setEditMode] = useState(false);\n\n const [header, setHeader] = useState('');\n const [linkUrl, setLinkUrl] = useState('');\n const [id, setId] = useState('');\n\n const updateState = link => {\n if (!link) {\n setLinkUrl('');\n setId('');\n } else {\n setHeader(link?.header);\n setLinkUrl(link?.value);\n setId(link?.id);\n }\n setEditMode(false);\n };\n\n const handleUpdate = () => {\n setIsSaving(true);\n\n const request = {\n id: id || null,\n groupId,\n textId,\n header,\n value: linkUrl,\n unionId,\n };\n\n ApiService.postText(request, token)\n .then(data => {\n updateState(data);\n toast.success('Förbundslänk sparad');\n })\n .catch(() => toast.error('Misslyckades att spara förbundslänken'))\n .finally(() => setIsSaving(false));\n };\n\n const handleDelete = () => {\n setIsSaving(true);\n if (id) {\n ApiService.deleteText(id, token)\n .then(() => {\n updateState();\n toast.success('Förbundslänk raderad');\n })\n .catch(() => toast.error('Misslyckades att spara förbundslänken'))\n .finally(() => setIsSaving(false));\n }\n };\n\n useEffect(() => {\n if (forbundList.length === 0) return;\n const forbundName =\n forbundList.find(f => f.forbundskodSas === forbund?.toLocaleUpperCase())\n ?.name || '';\n\n setHeader(forbundName);\n }, [forbundList, forbund]);\n\n useEffect(() => {\n setIsLoading(true);\n const request = [\n {\n groupId,\n textId: [textId],\n },\n ];\n ApiService.getTexts(request, token)\n .then(data => {\n if (data && data[0]) return updateState(data[0]);\n return updateState();\n })\n .finally(() => setIsLoading(false));\n }, [token]);\n\n return (\n \n

    Här lägger du in en länk till förbundets hemsida. Visas i sidfoten.

    \n {isLoading && (\n
    \n \n
    \n )}\n\n {!isLoading && (\n \n
    \n
    \n
    \n {editMode ? (\n \n ) : (\n \n )}\n
    \n
    \n {editMode ? (\n setLinkUrl(evt.target.value)}\n placeholder=\"HTTP-länk\"\n type=\"text\"\n value={linkUrl}\n />\n ) : (\n \n )}\n
    \n
    \n
    \n
    \n \n {editMode && (\n <>\n handleDelete()}\n label=\"Ta bort\"\n icon=\"Trash\"\n altText=\"Ta bort länk\"\n disabled={isSaving || !id}\n />\n handleUpdate()}\n label=\"Spara\"\n altText=\"Spara länk\"\n disabled={isSaving || !linkUrl}\n />\n setEditMode(prevState => !prevState)}\n label=\"Avbryt\"\n disabled={isSaving}\n />\n \n )}\n {!editMode && (\n <>\n setEditMode(prevState => !prevState)}\n label=\"Redigera\"\n icon=\"Edit\"\n altText=\"Redigera länk\"\n />\n \n )}\n \n
    \n \n )}\n
    \n );\n}\n\nUnionLinkConfig.propTypes = {\n forbundList: PropTypes.arrayOf(PropTypes.shape({})),\n};\n\nUnionLinkConfig.defaultProps = {\n forbundList: [],\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Panel from 'atoms/panel/Panel';\nimport Section from 'atoms/section/Section';\nimport Const from 'const';\nimport { ToastContainer } from 'react-toastify';\nimport UnionLinkConfig from './unionlinkconfig/UnionLinkConfig';\n\nexport default function UnionConfig({ forbundList }) {\n return (\n \n \n
    \n \n
    \n
    \n );\n}\n\nUnionConfig.propTypes = {\n forbundList: PropTypes.arrayOf(PropTypes.shape({})),\n};\n\nUnionConfig.defaultProps = {\n forbundList: [],\n};\n","import React, { useState } from 'react';\nimport Button from 'atoms/button/Button';\nimport PropTypes from 'prop-types';\nimport styles from './Modal.module.css';\n\nconst Modal = ({ show, title, message, children, handleClose }) => {\n // const handleOkClick = () => {\n // console.log('Hej innifrån modal');\n // handleClose();\n // };\n\n if (show === false) {\n return null;\n }\n return (\n <>\n
    \n
    \n
    \n
    \n
    {title}
    \n
    \n
    \n
    {message}
    \n
    \n
    {children}
    \n
    \n handleClose('true')}\n variant=\"primary\"\n label=\" Ok \"\n altText=\"Ok\"\n disabled={false}\n />\n handleClose('false')}\n label=\"Avbryt\"\n altText=\"Avbryt\"\n disabled={false}\n />\n
    \n
    \n
    \n \n );\n};\n\nModal.propTypes = {\n show: PropTypes.bool,\n title: PropTypes.string,\n message: PropTypes.string,\n handleClose: PropTypes.func,\n};\n\nModal.defaultProps = {\n // setShow: PropTypes.func,\n};\n\nexport default Modal;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './ActiveSelections.module.css';\n\nconst FilterString = (item, index, length) => {\n let filterString = item.DSL2_DESC.trimStart().trimEnd();\n\n if (filterString === 'Okänt') {\n filterString = 'Samtliga';\n }\n\n if (length === 1 || index === 0) {\n return filterString;\n }\n if (index === length - 1) {\n return ` & ${filterString}`;\n }\n return `, ${filterString}`;\n};\n\nconst ActiveSelections = ({ configurationType, dslConfigurations }) => {\n return (\n
    \n {'Gjorda urval: '}\n {dslConfigurations.length > 0 &&\n dslConfigurations\n .filter(\n dslConfiguration =>\n dslConfiguration.dsL2Configs.filter(\n dsL2Config => dsL2Config.copyFromTestToProd === true\n ).length > 0\n )\n .map(dslConfiguration => (\n \n \n {`${dslConfiguration.dsL1Config.DSL1_DESC}:`}\n \n\n \n {dslConfiguration.dsL2Configs\n .filter(dsL2Config => dsL2Config.copyFromTestToProd === true)\n .map((dsL2Config, index, { length }) => (\n \n {FilterString(dsL2Config, index, length)}\n \n ))}\n \n
    \n ))}\n
    \n );\n};\n\nActiveSelections.propTypes = {\n configurationType: PropTypes.string.isRequired,\n dslConfigurations: PropTypes.arrayOf(Object).isRequired,\n};\n\nexport default ActiveSelections;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './ActiveSelections.module.css';\n\nconst FilterString = (item, index, length) => {\n let itemName = '';\n if (length === 1 || index === 0) {\n itemName = item.name;\n return itemName;\n }\n if (index === length - 1) {\n itemName = `& ${item.name}`;\n return itemName;\n }\n itemName = `, ${item.name}`;\n return itemName;\n};\n\nconst ActiveUnionSelections = ({ unions }) => {\n return (\n
    \n {'Gjorda urval: '}\n {unions\n .filter(union => union.isSelected === true)\n .map((union, index, { length }) => (\n
    \n \n {FilterString(union, index, length)}\n \n
    \n ))}\n
    \n );\n};\n\nActiveUnionSelections.propTypes = {\n unions: PropTypes.arrayOf(Object).isRequired,\n};\n\nexport default ActiveUnionSelections;\n","import CheckboxAdmin from 'atoms/checkboxadmin/CheckboxAdmin';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport Accordion from 'atoms/accordion/Accordion';\nimport styles from './DataSource.module.css';\n\nconst DataSource = ({\n configurationType,\n dslConfig,\n handleUpdateConfiguration,\n}) => {\n const handleItemUpdate = (dsl1, dsl2) => {\n const newList = dslConfig.dsL2Configs.map(dsl2Config => {\n if (dsl2Config.DSL2 === dsl2) {\n const updateddsl2Config = {\n ...dsl2Config,\n copyFromTestToProd: !dsl2Config.copyFromTestToProd,\n };\n\n return updateddsl2Config;\n }\n\n return dsl2Config;\n });\n dslConfig.dsL2Configs = newList;\n handleUpdateConfiguration(dslConfig, configurationType);\n };\n\n return (\n <>\n \n
    \n {dslConfig.dsL2Configs.map(dsl2Config => (\n \n \n handleItemUpdate(dslConfig.dsL1Config.DSL1, dsl2Config.DSL2)\n }\n />\n
    \n
    \n ))}\n
    \n \n \n );\n};\n\nDataSource.defaultProps = {\n dslConfig: null,\n};\n\nexport default DataSource;\n","import React from 'react';\nimport CheckboxAdmin from 'atoms/checkboxadmin/CheckboxAdmin';\nimport PropTypes from 'prop-types';\nimport Button from 'atoms/button/Button';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport styles from './UnionSelect.module.css';\n\nconst UnionSelect = ({ unions, handleUpdateUnionSelection }) => {\n const handleItemUpdate = id => {\n const newList = unions.map(union => {\n if (union.id === id) {\n const updatedUnion = {\n ...union,\n isSelected: !union.isSelected,\n };\n return updatedUnion;\n }\n\n return union;\n });\n handleUpdateUnionSelection(newList);\n };\n\n const selectAllUnions = () => {\n const newList = unions.map(union => {\n const updatedUnion = {\n ...union,\n isSelected: true,\n };\n return updatedUnion;\n });\n handleUpdateUnionSelection(newList);\n };\n\n const unSelectAllUnions = () => {\n const newList = unions.map(union => {\n const updatedUnion = {\n ...union,\n isSelected: false,\n };\n return updatedUnion;\n });\n handleUpdateUnionSelection(newList);\n };\n\n return (\n
    \n {unions.map(union => (\n
    \n handleItemUpdate(union.id)}\n />\n
    \n
    \n ))}\n
    \n \n selectAllUnions()}\n label=\"Markera alla\"\n altText=\"Markera alla förbund\"\n disabled={false}\n />\n unSelectAllUnions()}\n label=\"Avmarkera alla\"\n altText=\"Avmarkera alla förbund\"\n disabled={false}\n />\n \n
    \n );\n};\n\nUnionSelect.propTypes = {\n unions: PropTypes.arrayOf(Object).isRequired,\n handleUpdateUnionSelection: PropTypes.func.isRequired,\n};\n\nexport default UnionSelect;\n","/* eslint-disable camelcase */\nimport React from 'react';\nimport styles from './HelpBox.module.css';\n\nconst HelpBox = () => {\n return (\n
    \n

    Hjälp

    \n

    \n För att kopiera konfiguration från testmiljö till produktionsmiljö för\n valt förbund gör följande:\n

    \n
      \n
    • Enkel sökning
    • \n
        \n
      • Välj datakällor som ska kopieras.
      • \n
      \n
    • Avancerad sökning
    • \n
        \n
      • Välj förbund för vilka konfiguration ska kopieras.
      • \n
      • Välj datakällor som ska kopieras.
      • \n
      \n
    • Öppen sökning
    • \n
        \n
      • Välj datakällor som ska kopieras.
      • \n
      \n
    • Klicka på Kopiera konfiguration
    • \n
        \n
      • \n Tjänsten kopierar konfiguration från testmiljö till produktionsmiljö\n för de vyer som har valts samt för valda förbund.\n
      • \n
      • \n All befintlig konfiguration för valda vyer och datakällor kommer att\n tas bort i produktionsmiljön och ersättas av konfiguration gjord i\n testmiljön. (Gäller konfiguration för samtliga år)\n
      • \n
      \n
    \n
    \n );\n};\n\nHelpBox.propTypes = {};\n\nHelpBox.defaultProps = {};\n\nexport default HelpBox;\n","/* eslint-disable camelcase */\nimport React from 'react';\nimport Loader from 'atoms/loader/Loader';\nimport { IconCircleCheck } from 'tabler-icons';\nimport styles from './StatusBox.module.css';\n\nconst StatusBox = ({ jobStatus }) => {\n return (\n <>\n
    \n

    Status

    \n\n {jobStatus !== null && jobStatus && jobStatus.isJobRunning ? (\n
    \n \n
    \n ) : (\n

    Inget jobb för att kopiera konfiguration körs för tillfället.

    \n )}\n {jobStatus !== null &&\n jobStatus &&\n jobStatus.isJobRunning &&\n jobStatus.currentSummaryStatus &&\n jobStatus.currentSummaryStatus !== null && (\n
    \n

    {`[${jobStatus.currentSummaryStatus.date}] ${jobStatus.currentSummaryStatus.statusMessage}`}

    \n
    \n )}\n\n {jobStatus !== null &&\n jobStatus &&\n jobStatus.summaryStatuses &&\n jobStatus.summaryStatuses.length > 0 ? (\n
      \n {jobStatus &&\n jobStatus.summaryStatuses.length > 0 &&\n jobStatus.summaryStatuses.map((\n status,\n index // Lägg till 'key' prop\n ) => (\n
    • \n
      \n \n \n {`[${status.date}] ${status.statusMessage} `}{' '}\n \n
      \n
    • \n ))}\n
    \n ) : (\n <>\n )}\n
    \n \n );\n};\n\nStatusBox.propTypes = {};\n\nStatusBox.defaultProps = {};\n\nexport default StatusBox;\n","import ButtonLink from 'atoms/buttonlink/ButtonLink';\nimport Panel from 'atoms/panel/Panel';\nimport Button from 'atoms/button/Button';\nimport ButtonBar from 'atoms/buttonbar/ButtonBar';\nimport Section from 'atoms/section/Section';\nimport Const from 'const';\nimport useScrollTo from 'hooks/useScrollTo';\nimport React, { useState, useEffect, useCallback, useRef } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport ApiService from 'services/ApiService';\nimport { useAuth } from 'services/UseAuth';\nimport Modal from 'atoms/modal/Modal';\nimport Accordion from 'atoms/accordion/Accordion';\nimport ActiveSelections from 'components/admin/copyconfiguration/activeselections/ActiveSelections';\nimport ActiveUnionSelections from 'components/admin/copyconfiguration/activeselections/ActiveUnionSelections';\nimport DataSource from 'components/admin/copyconfiguration/datasource/DataSource';\nimport UnionSelect from 'components/admin/copyconfiguration/unionselect/UnionSelect';\nimport Loader from 'atoms/loader/Loader';\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\n\nimport HelpBox from './helpbox/HelpBox';\nimport StatusBox from './statusbox/StatusBox';\nimport styles from './CopyConfiguration.module.css';\n\nconst CopyConfiguration = () => {\n const history = useHistory();\n const ref = useScrollTo('hjalp');\n const { user, signout, autoRefreshToken } = useAuth();\n const { token, forbund } = user;\n const [, setState] = useState();\n const [\n isLoadingSimpleConfiguration,\n setIsLoadingSimpleConfiguration,\n ] = useState(false);\n const [\n isLoadingAdvancedConfiguration,\n setIsLoadingAdvancedConfiguration,\n ] = useState(false);\n\n const [simpleConfiguration, setSimpleConfiguration] = useState();\n const [advancedConfiguration, setAdvancedConfiguration] = useState();\n const [previewConfiguration, setPreviewConfiguration] = useState();\n const [unionList, setUnionList] = useState([]);\n const [showModal, setShowModal] = useState(false);\n const [jobStatus, setJobStatus] = useState();\n const [hasAnySelectionsSimple, setHasAnySelectionsSimple] = useState(false);\n const [hasAnySelectionsPreview, setHasAnySelectionsPreview] = useState(false);\n const [hasAnySelectionsAdvanced, setHasAnySelectionsAdvanced] = useState(\n false\n );\n\n const jobStatusRef = useRef();\n\n useEffect(() => {\n jobStatusRef.current = jobStatus;\n }, [jobStatus]);\n\n const HasAnySelectionsSimple = () => {\n setHasAnySelectionsSimple(false);\n if (\n simpleConfiguration &&\n simpleConfiguration.dslConfigs &&\n simpleConfiguration.dslConfigs.length > 0\n ) {\n simpleConfiguration.dslConfigs.forEach(dslConfig => {\n dslConfig.dsL2Configs.forEach(dsl2Config => {\n if (dsl2Config.copyFromTestToProd === true) {\n setHasAnySelectionsSimple(true);\n }\n });\n });\n }\n };\n\n const HasAnySelectionsPreview = () => {\n setHasAnySelectionsPreview(false);\n\n if (\n previewConfiguration &&\n previewConfiguration.dslConfigs &&\n previewConfiguration.dslConfigs.length > 0\n ) {\n previewConfiguration.dslConfigs.forEach(dslConfig => {\n dslConfig.dsL2Configs.forEach(dsl2Config => {\n if (dsl2Config.copyFromTestToProd === true) {\n setHasAnySelectionsPreview(true);\n }\n });\n });\n }\n };\n\n const HasAnySelectionsAdvanced = () => {\n setHasAnySelectionsAdvanced(false);\n\n if (\n advancedConfiguration &&\n advancedConfiguration.dslConfigs &&\n advancedConfiguration.dslConfigs.length > 0\n ) {\n advancedConfiguration.dslConfigs.forEach(dslConfig => {\n dslConfig.dsL2Configs.forEach(dsl2Config => {\n if (dsl2Config.copyFromTestToProd === true) {\n setHasAnySelectionsAdvanced(true);\n }\n });\n });\n }\n };\n\n const triggerCopyConfiguration = () => {\n let advancedConfig = {\n configurationType: 'advanced',\n forbund: [],\n dslConfigs: [],\n };\n\n if (advancedConfiguration !== null) {\n advancedConfig = advancedConfiguration;\n }\n const copyConfigurationJobRequest = {\n copySimpleConfigurationJobRequest: simpleConfiguration,\n copyAdvancedConfigurationJobRequest: advancedConfig,\n copyPreviewConfigurationJobRequest: previewConfiguration,\n };\n\n ApiService.copyConfigurationExecute(copyConfigurationJobRequest, token)\n .then(() => {\n toast.success('Kopiering av konfiguration startad.');\n })\n .catch(error => {\n if (error.status === 501) {\n toast.error(\n 'Ett jobb för kopiering av konfiguration körs redan. Det är inte tillåtet att köra mer än ett jobb samtidigt.'\n );\n } else if (error.status === 502) {\n toast.error(error.message);\n } else {\n toast.error('Något gick fel vid kopiering av konfiguration.');\n }\n });\n };\n\n const handleUpdateUnionSelection = unions => {\n setUnionList(unions);\n };\n\n const handleUpdateConfiguration = (dslConfiguration, configurationType) => {\n let existingConfiguration = {};\n\n if (configurationType === 'Simple') {\n existingConfiguration = simpleConfiguration;\n } else if (configurationType === 'Advanced') {\n existingConfiguration = advancedConfiguration;\n } else if (configurationType === 'Preview') {\n existingConfiguration = previewConfiguration;\n }\n\n const newdslConfigList = existingConfiguration.dslConfigs.map(item => {\n if (item.dsL1Config.DSL1 === dslConfiguration.dsL1Config.DSL1) {\n const updateddslConfig = {\n ...item,\n dsL2Configs: dslConfiguration.dsL2Configs,\n };\n return updateddslConfig;\n }\n return item;\n });\n\n const newConfiguration = { ...existingConfiguration };\n newConfiguration.dslConfigs = newdslConfigList;\n\n if (configurationType === 'Simple') {\n setSimpleConfiguration(newConfiguration);\n } else if (configurationType === 'Advanced') {\n setAdvancedConfiguration(newConfiguration);\n } else if (configurationType === 'Preview') {\n setPreviewConfiguration(newConfiguration);\n }\n };\n\n const handleModalClose = resultOk => {\n if (resultOk === 'true') {\n setShowModal(false);\n triggerCopyConfiguration();\n } else {\n setShowModal(false);\n }\n };\n\n const unSelectAllUnions = () => {\n const newList = unionList.map(union => {\n const updatedUnion = {\n ...union,\n isSelected: false,\n };\n return updatedUnion;\n });\n setUnionList(newList);\n };\n\n const unSelectAllDataSources = configuration => {\n if (!configuration) return;\n if (!configuration.dslConfigs) return;\n const newdslConfigList = configuration.dslConfigs.map(dslConfig => {\n const newdsL2ConfigList = dslConfig.dsL2Configs.map(dsl2Config => {\n const updateddsl2Config = {\n ...dsl2Config,\n copyFromTestToProd: false,\n };\n return updateddsl2Config;\n });\n\n const updateddslConfig = {\n dsL1Config: dslConfig.dsL1Config,\n dsL2Configs: newdsL2ConfigList,\n };\n\n return updateddslConfig;\n });\n\n const newConfiguration = { ...configuration };\n newConfiguration.dslConfigs = newdslConfigList;\n\n if (configuration.configurationType === 'Simple') {\n setSimpleConfiguration(newConfiguration);\n } else if (configuration.configurationType === 'Advanced') {\n setAdvancedConfiguration(newConfiguration);\n } else if (configuration.configurationType === 'Preview') {\n setPreviewConfiguration(newConfiguration);\n }\n };\n\n const handleError = useCallback(error => {\n if (error.status === 401) {\n console.log('error 401');\n signout();\n history.push('/logga-ut');\n } else {\n setState(() => {\n throw error;\n });\n }\n }, []);\n\n const handleJobStatusUpdate = jobStatusUpdateMsg => {\n try {\n const jsonJobStatusUpdate = JSON.parse(jobStatusUpdateMsg);\n\n console.log('JobStatusUpdate:');\n console.log(jsonJobStatusUpdate);\n setJobStatus(prevState => jsonJobStatusUpdate);\n } catch (err) {\n console.log(err);\n }\n };\n\n useEffect(() => {\n console.log('Efter setJobStatus:');\n console.log(jobStatus);\n }, [jobStatus]);\n\n // INIT.\n useEffect(() => {\n ApiService.createEventSource(\n 'CopyConfigurationJob/status',\n handleJobStatusUpdate\n );\n\n setIsLoadingSimpleConfiguration(true);\n\n const simpleConfigurationRequest = {\n fds: {\n forbund: [forbund],\n dsl1: null,\n dsl2: null,\n year: null,\n },\n configurationtype: 'simple',\n };\n\n const previewConfigurationRequest = {\n fds: {\n forbund: [forbund],\n dsl1: null,\n dsl2: null,\n year: null,\n },\n configurationtype: 'preview',\n };\n\n const promiseUnions = new Promise((resolve, reject) =>\n ApiService.getUnions(user.token)\n .then(data => resolve(data))\n .catch(error => reject(handleError(error)))\n );\n\n const promiseSimpleConfiguration = new Promise((resolve, reject) =>\n ApiService.getConfiguration(simpleConfigurationRequest, token)\n .then(data => resolve(data))\n .catch(error => reject(handleError(error)))\n );\n\n const promisePreviewConfiguration = new Promise((resolve, reject) =>\n ApiService.getConfiguration(previewConfigurationRequest, token)\n .then(data => resolve(data))\n .catch(error => reject(handleError(error)))\n );\n\n Promise.all([\n promiseUnions,\n promiseSimpleConfiguration,\n promisePreviewConfiguration,\n ])\n .then(\n ([unionData, simpleConfigurationData, previewConfigurationData]) => {\n setUnionList(\n unionData\n .filter(a => a.forbundskodSas !== 'XX')\n .sort((a, b) => `${a.name}`.localeCompare(b.name, 'sv'))\n .map(union => ({ ...union, isSelected: false }))\n );\n setSimpleConfiguration(simpleConfigurationData);\n setPreviewConfiguration(previewConfigurationData);\n autoRefreshToken(token);\n }\n )\n .finally(() => setIsLoadingSimpleConfiguration(false));\n }, [token, forbund]);\n\n useEffect(() => {\n HasAnySelectionsSimple();\n }, [simpleConfiguration]);\n\n useEffect(() => {\n HasAnySelectionsPreview();\n }, [previewConfiguration]);\n\n useEffect(() => {\n HasAnySelectionsAdvanced();\n }, [advancedConfiguration]);\n\n useEffect(() => {\n if (unionList && unionList.filter(union => union.isSelected).length > 0) {\n const selectedUnions = unionList\n .filter(union => union.isSelected)\n .map(union => {\n return union.forbundskodSas;\n });\n\n const advancedConfigurationRequest = {\n fds: {\n forbund: selectedUnions,\n dsl1: null,\n dsl2: null,\n year: null,\n },\n configurationtype: 'advanced',\n };\n setIsLoadingAdvancedConfiguration(true);\n ApiService.getConfiguration(advancedConfigurationRequest, token)\n .then(data => setAdvancedConfiguration(data))\n .then(() => {\n autoRefreshToken(token);\n })\n .catch(error => {\n if (error.status === 401) {\n signout();\n history.push('/logga-ut');\n }\n })\n .finally(() => setIsLoadingAdvancedConfiguration(false));\n } else {\n setAdvancedConfiguration(null);\n }\n }, [unionList]);\n\n return (\n <>\n \n \n
    \n

    \n Här kan du kopiera konfiguration från testmiljö till\n produktionsmiljö. Välj datakällor för respektive vy och klicka på\n kopiera konfiguration.\n

    \n\n \n
    \n
    \n

    Välj datakällor

    \n\n {isLoadingSimpleConfiguration ? (\n
    \n \n
    \n ) : (\n <>\n {simpleConfiguration &&\n simpleConfiguration.dslConfigs.map((dslConfig, index) => (\n \n \n
    \n
    \n ))}\n\n
    \n {simpleConfiguration && (\n \n )}\n {\n unSelectAllDataSources(simpleConfiguration);\n }}\n />\n \n )}\n
    \n \n\n \n
    \n
    \n

    Välj förbund

    \n

    \n Välj ett eller flera förbund för vilka inställningarna för\n avancerad sökning ska kopieras.\n

    \n \n {unionList && (\n \n )}\n\n
    \n \n\n
    \n {unionList && (\n \n )}\n {\n unSelectAllUnions();\n }}\n />\n\n

    Välj datakällor

    \n {isLoadingAdvancedConfiguration ? (\n
    \n \n
    \n ) : (\n <>\n {advancedConfiguration &&\n advancedConfiguration.dslConfigs.map((dslConfig, index) => (\n \n \n
    \n
    \n ))}\n
    \n\n {advancedConfiguration && (\n <>\n \n \n )}\n {\n unSelectAllDataSources(advancedConfiguration);\n }}\n />\n \n )}\n
    \n \n\n
    \n
    \n \n {user.role === 'admin' && (\n setShowModal(true)}\n label=\"Kopiera konfiguration\"\n altText=\"Starta jobb för att kopiera konfiguration\"\n disabled={\n !(\n hasAnySelectionsSimple ||\n hasAnySelectionsPreview ||\n hasAnySelectionsAdvanced\n )\n }\n />\n )}\n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n \n {simpleConfiguration && hasAnySelectionsSimple && (\n <>\n

    Enkel sökning

    \n \n \n )}\n\n {advancedConfiguration && hasAnySelectionsAdvanced && (\n <>\n

    Avancerad sökning

    \n Förbund\n {unionList && (\n \n )}\n Datakällor\n \n \n )}\n\n {previewConfiguration && hasAnySelectionsPreview && (\n <>\n

    Öppen sökning

    \n \n \n )}\n \n
    \n
    \n \n );\n};\n\nexport default CopyConfiguration;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './NotificationRow.module.css';\nimport Button from '../../../../atoms/button/Button';\n\nconst NotificationRow = ({\n id,\n textId,\n unionId,\n value,\n deleteCb,\n updateCb,\n forbund,\n}) => {\n const [expand, setExpand] = useState(false);\n const [message, setMessage] = useState(value);\n const [editable, setEditable] = useState(false);\n\n const handleExpand = () => {\n if (!editable) setExpand(!expand);\n };\n\n const handleText = e => {\n // Return if user presses the enter key\n if (e.nativeEvent.inputType === 'insertLineBreak') return;\n\n setMessage(e.target.value);\n };\n\n const parseDataSources = json => {\n let dataSources;\n\n try {\n dataSources = Object.entries(JSON.parse(json)).map(\n ([k, v]) => ` ${k}:${v} `\n );\n } catch (e) {\n dataSources = [];\n }\n\n return dataSources.length ? dataSources : 'samtliga';\n };\n\n return (\n <>\n \n
    \n {(unionId &&

    {`endast förbund: ${forbund}`}

    ) || (\n

    samtliga förbund

    \n )}\n

    \n {`Källa: ${parseDataSources(textId)}`}\n

    \n
    \n

    meddelande

    \n {!editable ? (\n

    {`${message}`}

    \n ) : (\n