{"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","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","pages/errorboundary/PageErrorBoundary.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/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","testdata/saco-lonesok_logotype.svg","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","this","className","styles","main","header","text","href","link","props","children","Component","withRouter","ApiService","BASE_URL","AppSettings","SERVER_URL","handleNetworkError","res","ok","createGetRequest","page","token","req","method","headers","Authorization","fetch","then","json","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","message","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","window","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","alt","type","buttonText","defaultProps","undefined","useVisible","initialIsVisible","isVisible","setIsVisible","ref","useRef","handleClickOutside","event","current","contains","target","addEventListener","removeEventListener","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","src","onError","bannerCurveBackground","bannerDropshadow","bannerClippath","UnionLink","unionLink","capitalize","rel","Footer","showLogo","setUnionLink","groupId","textId","mainSection","innerContainerFull","subSection","subSectionContent","logo","Logo","PageErrorProvocation","APP_ENVIRONMENT","Error","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","console","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","setState","handleError","status","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","sequentiallyFindSource","arr","i","pop","setSource","measure_var","previousDatasource","availableSources","newSource","ds","y","lastYearsData","allAvailableYears","dataSourceHeading","dataSourceSelection","evt","latestAvailableYear","getYearOptions","toString","infoLink","Presentation","allowCustomPresentation","presentationList","setCustomPresentation","setSelectedPresentation","fetchingData","selectedBreakby","setSelectedBreakby","presentation","BREAKBY_VAR","matchingPresentation","pres","handleSelectedPresentation","formatNumber","formatAccessor","createOrSetObject","prevObj","keys","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","group","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","err","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","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","sourceSelectContainer","shown","hidden","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","errorMessage","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.ec1849cc.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 = {\"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 = {\"main\":\"PageErrorBoundary_main__1WSr9\",\"header\":\"PageErrorBoundary_header__m4C0W\",\"text\":\"PageErrorBoundary_text__3S2I8\",\"link\":\"PageErrorBoundary_link__3pJIR\",\"reloadBtn\":\"PageErrorBoundary_reloadBtn__27jW7\"};","// 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/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\"};","module.exports = __webpack_public_path__ + \"static/media/saco-lonesok_logotype.62c120b2.svg\";","// 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';\n\nclass PageErrorBoundary extends Component {\n state = { hasError: false, error: '' };\n\n static getDerivedStateFromError(error) {\n return { hasError: true, error };\n }\n\n render() {\n if (this.state.hasError) {\n return (\n
\n

Ånej! Saco Lönesök fungerar inte.

\n\n

\n Tyvärr verkar det som att vår webbplats inte är tillgänglig för\n tillfället. Testa gärna igen senare, vi jobbar med problemet och\n hoppas att allt fungerar snart igen.\n

\n\n

\n Har du akuta frågor om lön eller statistik? Kontakta ditt förbund.\n

\n\n

\n Har du tekniska frågor om Lönesök på en övergripande nivå? Hör av\n dig till{' '}\n \n lonesok@saco.se\n {' '}\n och ange vilket förbund du tillhör.\n

\n\n

Tack för ditt tålamod!

\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 // 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 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\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 return result;\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\n if (type === 'year') {\n handleDataSourceChange(value);\n const availableSources = getAvailableSources(dataSources, [\n { property: 'YEAR', expression: p => p === Number(value) },\n ]);\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\n setSource(newSource);\n }\n\n // Helps members load the newest available source\n // Prevents 400-errors from lonereport endpoint\n // We're not sure if the 'SA'-union is configured the same way as the current union\n if (type === 'forbund') {\n // Two commented rules below caused errors. It tries to find sources that are\n // same as the chosen ones, which breaks if user changes datasource and there\n // aren't available sources from ex. same year or with the same dsl1.\n // Now it takes what it can get when forbund changes.\n const availableSources = getAvailableSources(dataSources, [\n { property: 'FORBUND', expression: p => p === value },\n // { property: 'YEAR', expression: p => getYear(p) },\n // { property: 'DSL1', expression: p => p === activeDataSource.dsl1 },\n ]).sort((a, b) => b?.YEAR - a?.YEAR);\n\n const newSource = sequentiallyFindSource(availableSources, [\n { property: 'DSL1', expression: p => p === previousDatasource.dsl1 },\n { property: 'DSL2', expression: p => p === previousDatasource.dsl2 },\n ]);\n\n setSource(newSource);\n setForbund(value);\n }\n\n if (type === 'dsl1') {\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 const newSource = sequentiallyFindSource(availableSources, [\n { property: 'YEAR', expression: p => p === previousDatasource.year },\n { property: 'DSL2', expression: p => p === previousDatasource.dsl2 },\n ]);\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 setAvailableForbund(\n dataSources.reduce((acc, curr) => {\n if (!acc.includes(curr.FORBUND)) acc.push(curr.FORBUND);\n return acc;\n }, [])\n );\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)\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) => {\n // TODO: Do we need this?\n // if (activeDataSource.year < defaultYearToDeepAnalysis) {\n // return b.lastYearsData - a.lastYearsData;\n // }\n return a.lastYearsData - b.lastYearsData;\n })\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')\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 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 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 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 {/* 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 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 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 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 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 // TODO: Consider this\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 {!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 {/* TODO: Merge with: components/admin/salaryprofileconfig/selectionitem/SelectionItem' */}\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 // eslint-disable-next-line\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};\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: 'breakbyVar',\n orderBy: 'breakbyOrder',\n sortBy: 'sortOptionsByLetters',\n });\n\n const filterObject = createObject({\n data,\n key: 'filters',\n identificator: 'sel_var',\n orderBy: 'filterOrder',\n sortBy: 'sortOptionsByNumber',\n });\n\n const [updatedBreakbys, breakbyCount] = updateArray({\n data: breakbys,\n object: breakbyObject,\n identificator: 'breakbyVar',\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: 'sel_var',\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 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(() =>\n toastMessage(\n 'success',\n 'Nivå 3 presentations och filtervariabler sparade.'\n )\n )\n .finally(() => setIsSaving(false));\n };\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 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 .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