{"version":3,"sources":["webpack:///./app/assets/javascripts/typescript/react/components/charting/chartTheme.js","webpack:///./app/assets/javascripts/typescript/react/components/charting/factories/abstractXYChartFactory.js","webpack:///./app/assets/javascripts/typescript/utils/withMName.js","webpack:///./app/assets/javascripts/typescript/react/components/helpers/reactModalHelper.js","webpack:///./app/assets/javascripts/typescript/fixtures/factors.js","webpack:///./app/assets/javascripts/typescript/react/components/charting/factories/lineChartYearFactory.js","webpack:///./app/assets/javascripts/typescript/react/components/charting/factories/barChartFactory.js","webpack:///./app/assets/javascripts/typescript/fixtures/counties.js","webpack:///./app/assets/javascripts/typescript/react/components/charting/factorChartComponent.tsx","webpack:///./app/assets/javascripts/typescript/react/components/charting/converterUtil.js","webpack:///./app/assets/javascripts/typescript/react/components/charting/factories/util.js","webpack:///./app/assets/javascripts/typescript/react/components/ranking/rankingUtil.js","webpack:///./app/assets/javascripts/typescript/react/components/hooks/useQueryParamSynched.js","webpack:///./app/assets/javascripts/typescript/react/components/lib/filterList.js","webpack:///./app/assets/javascripts/typescript/services/factorService.js","webpack:///./app/assets/javascripts/typescript/react/components/guides/guidePieSmall.tsx","webpack:///./app/assets/javascripts/typescript/react/components/charting/toBarChartConverter.js","webpack:///./app/assets/javascripts/typescript/react/components/charting/footer/footerSelect.tsx","webpack:///./app/assets/javascripts/typescript/grouping.js","webpack:///./app/assets/javascripts/typescript/react/components/ranking/deltaArrowNumber.tsx","webpack:///./app/assets/javascripts/typescript/react/components/comparison/municipalityComparison.tsx","webpack:///./app/assets/javascripts/typescript/react/clients/presentableDataClient.js","webpack:///./app/assets/javascripts/typescript/react/components/helpers/factorChartHelper.js","webpack:///./app/assets/javascripts/typescript/react/components/whyDidYouRenderBootstrapper.js","webpack:///./app/assets/javascripts/typescript/react/components/listing/autoComplete.tsx","webpack:///./app/assets/javascripts/typescript/react/components/lib/markSubstringMatches.tsx","webpack:///./app/assets/javascripts/typescript/react/components/guides/guideCheckbox.tsx","webpack:///./app/assets/javascripts/typescript/react/components/charting/toLineChartYearConverter.js","webpack:///./app/assets/javascripts/typescript/react/components/charting/XYChartComponent.tsx","webpack:///./app/assets/javascripts/typescript/react/components/charting/multiChartLayoutHelper.js","webpack:///./app/assets/javascripts/typescript/react/components/charting/factories/invertedRankingChartFactory.js","webpack:///./app/assets/javascripts/typescript/react/components/charting/toBarChartCombinedConverter.js","webpack:///./app/assets/javascripts/typescript/react/components/charting/footer/chartFooter.tsx","webpack:///./app/assets/javascripts/typescript/react/components/comparison/top5Comparison.tsx","webpack:///./app/assets/javascripts/typescript/react/components/comparison/skrComparison.tsx","webpack:///./app/assets/javascripts/typescript/react/components/listing/hooks.js","webpack:///./app/assets/javascripts/typescript/react/components/charting/selectTheme.js","webpack:///./app/assets/javascripts/typescript/react/components/charting/factories/municipalityBarChartFactory.js","webpack:///./app/assets/javascripts/typescript/react/components/lib/miniPubSub.js","webpack:///./app/assets/javascripts/typescript/react/models/external/chartData.js","webpack:///./app/assets/javascripts/typescript/adaptiveCharts.js","webpack:///./app/assets/javascripts/typescript/react/components/ranking/rankingWidget.tsx","webpack:///./app/assets/javascripts/typescript/react/components/ranking/rankingWidgetTable.tsx","webpack:///./app/assets/javascripts/typescript/react/components/ranking/rankingHistoryRow.tsx","webpack:///./app/assets/javascripts/typescript/react/components/ranking/rankingLargestDeltas.tsx","webpack:///./app/assets/javascripts/typescript/react/util/func.js","webpack:///./app/assets/javascripts/typescript/react/components/guides/guidesChartWidget.tsx","webpack:///./app/assets/javascripts/typescript/react/components/factorChartWidgetReducers.tsx","webpack:///./app/assets/javascripts/typescript/react/components/guides/guideBoxesComponent.tsx","webpack:///./app/assets/javascripts/typescript/fixtures/guides.js","webpack:///./app/assets/javascripts/typescript/react/components/factorChartWidget.tsx","webpack:///./app/assets/javascripts/typescript/react/components/factorChartDescription.tsx","webpack:///./app/assets/javascripts/typescript/react/components/comparison/countyComparison.tsx","webpack:///./app/assets/javascripts/typescript/react/components/listing/selectionList.tsx","webpack:///./app/assets/javascripts/typescript/react/components/listing/listGroup.tsx","webpack:///./app/assets/javascripts/typescript/react/components/listing/listItem.tsx","webpack:///./app/assets/javascripts/typescript/react/components/charting/footer/respondentTypeSelect.tsx","webpack:///./app/assets/javascripts/typescript/react/components/charting/footer/selectUtil.tsx","webpack:///./app/assets/javascripts/typescript/react/components/surveyFactorBothChartWidget.tsx","webpack:///./app/assets/javascripts/typescript/react/components/rankingChartWidget.tsx","webpack:///./app/assets/javascripts/typescript/react/components/chartWidget.tsx","webpack:///./app/assets/javascripts/typescript/react/components/headerMunicipalitySearch.tsx","webpack:///./app/assets/javascripts/typescript/react/components/charting/printLayoutWindow.js","webpack:///./app/assets/javascripts/typescript/react/components/guides/guideSection.tsx","webpack:///./app/assets/javascripts/typescript/react/components/guides/guideSectionTableBody.tsx","webpack:///./app/assets/javascripts/typescript/backbone/models/chartSelection.js","webpack:///./app/assets/javascripts/typescript/utils/util.js","webpack:///./app/assets/javascripts/typescript/services/groupingService.js","webpack:///./app/assets/javascripts/typescript/fixtures/grouping.js","webpack:///./app/assets/javascripts/typescript/react/components/charting/footer/chartConfigSelect.tsx","webpack:///./app/assets/javascripts/typescript/react/components/charting/guideChartComponent.tsx","webpack:///./app/assets/javascripts/typescript/react/clients/guidesDataClient.js","webpack:///./app/assets/javascripts/typescript/react/components/guides/guidePieBlueMedium.tsx","webpack:///./app/assets/javascripts/typescript/react/components/guides/guidePieLarge.tsx","webpack:///./app/assets/javascripts/typescript/react/components/guides/guidePieSmallSubscribed.tsx","webpack:///./app/assets/javascripts/typescript/react/components/guides/guideSections.tsx","webpack:///./app/assets/javascripts/typescript/react/components/municipalityOverviewChartWidget.tsx","webpack:///./app/assets/javascripts/typescript/react/components/ranking/rankingWidgetOverview.tsx","webpack:///./app/assets/javascripts/typescript/react/components/rankingModal.tsx","webpack:///./app/javascript/packs/application.js","webpack:///./app/assets/javascripts/typescript/statistics.js","webpack:///./app/assets/javascripts/typescript/backbone/views/autoComplete.js","webpack:///./app/assets/javascripts/typescript/backbone/views/nestedDropDown.js","webpack:///./app/assets/javascripts/typescript/downloadForm.js","webpack:///./app/assets/javascripts/typescript/backbone/views/mapDownloadForm.js","webpack:///./app/assets/javascripts/typescript/backbone/views/collapsable.js","webpack:///./app/assets/javascripts/typescript/backbone/views/startPageChart.js","webpack:///./app/assets/javascripts/typescript/backbone/views/chartSelectionView.js","webpack:///./app/assets/javascripts/typescript/backbone/views/chartSurveySource.js","webpack:///./app/assets/javascripts/typescript/backbone/views/municipalitySelection.js","webpack:///./app/assets/javascripts/typescript/backbone/views/topMunicipalities.js","webpack:///./app/assets/javascripts/typescript/backbone/views/chartExcelDownloads.js","webpack:///./app/assets/javascripts/typescript/backbone/views/bigChart.js","webpack:///./app/assets/javascripts/typescript/charts.js","webpack:///./app/assets/javascripts/typescript/backbone/views/comparePanel.js","webpack:///./app/assets/javascripts/typescript/hamburger.js","webpack:///./app/assets/javascripts/typescript/environment.js","webpack:///./app/assets/javascripts/typescript/rankingTableExensions.js","webpack:///./app/assets/javascripts/typescript/services/chartConfig.js","webpack:///./app/assets/javascripts/typescript/services/comparisonConfig.js","webpack:///./app/assets/javascripts/typescript/react/constants/modal.js","webpack:///./app/assets/javascripts/typescript/fixtures/skr.js","webpack:///./app/assets/javascripts/typescript/services/countyService.js","webpack:///./app/assets/javascripts/typescript/faq.js","webpack:///./app/assets/javascripts/typescript/backbone/views/faqQuestion.js","webpack:///./app/assets/javascripts/typescript/react/components sync ^\\.\\/.*$","webpack:///./app/assets/javascripts/typescript/react/components/charting/chartTheme.ts","webpack:///./app/assets/javascripts/typescript/react/components/charting/converterUtil.ts","webpack:///./app/assets/javascripts/typescript/react/components/charting/factories/abstractXYChartFactory.ts","webpack:///./app/assets/javascripts/typescript/react/components/charting/factories/barChartFactory.ts","webpack:///./app/assets/javascripts/typescript/react/components/charting/factories/invertedRankingChartFactory.ts","webpack:///./app/assets/javascripts/typescript/react/components/charting/factories/lineChartYearFactory.ts","webpack:///./app/assets/javascripts/typescript/react/components/charting/factories/municipalityBarChartFactory.ts","webpack:///./app/assets/javascripts/typescript/react/components/charting/factories/util.ts","webpack:///./app/assets/javascripts/typescript/services/guidesService.js","webpack:///./app/assets/javascripts/typescript/react/components/charting/multiChartLayoutHelper.ts","webpack:///./app/assets/javascripts/typescript/react/components/charting/printLayoutWindow.ts","webpack:///./app/assets/javascripts/typescript/react/components/charting/selectTheme.ts","webpack:///./app/assets/javascripts/typescript/react/components/charting/toBarChartCombinedConverter.ts","webpack:///./app/assets/javascripts/typescript/react/components/charting/toBarChartConverter.ts","webpack:///./app/assets/javascripts/typescript/react/components/charting/toLineChartYearConverter.ts","webpack:///./app/assets/javascripts/typescript/react/components/helpers/factorChartHelper.ts","webpack:///./app/assets/javascripts/typescript/react/components/helpers/reactModalHelper.ts","webpack:///./app/assets/javascripts/typescript/react/components/hooks/useQueryParamSynched.ts","webpack:///./app/assets/javascripts/typescript/react/components/lib/filterList.ts","webpack:///./app/assets/javascripts/typescript/react/components/lib/miniPubSub.ts","webpack:///./app/assets/javascripts/typescript/react/components/listing/hooks.ts","webpack:///./app/assets/javascripts/typescript/react/components/ranking/rankingUtil.ts","webpack:///./app/assets/javascripts/typescript/react/components/whyDidYouRenderBootstrapper.ts"],"names":["__importDefault","this","mod","__esModule","Object","defineProperty","exports","value","snTheme","snAnimatedTheme","numberFormatter2Decimals","numberFormatter1Decimals","numberFormatter0Decimals","WhiteColor","GridColor","BackgroundColor","PrimaryOrangeColor","PrimaryColor","PrimaryTextColor","core_1","charts_1","sv_SE_1","color","NumberFormatter","numberFormat","target","Chart","defaultState","transitionDuration","chart","paddingRight","XYChart","cursor","XYCursor","Language","locale","default","Legend","legend","contentAlign","fontSize","ColorSet","list","AxisRenderer","renderer","minWidth","labels","template","fill","grid","stroke","strokeWidth","location","AxisRendererX","renderer_1","opposite","minGridDistance","AxisRendererY","ValueAxis","valueAxis","maxPrecision","title","Label","tooltip","disabled","Series","series","autoTextColor","hiddenState","properties","opacity","showOnInit","__createBinding","create","o","m","k","k2","undefined","enumerable","get","__setModuleDefault","v","__importStar","result","prototype","hasOwnProperty","call","AbstractXYChartFactory","chartTheme_1","_","props","createChart","chartElemIdOrContainer","onReady","createChild","data","setChartProps","categoryAxis","getCategoryAxis","push","CategoryAxis","dataFields","category","getValueAxis","configAxes","createChartSeries","addFullScreenButton","addSNLogo","addLegend","addExport","events","on","itemContainers","marginTop","paddingTop","paddingBottom","tooltipText","e","each","label","maxWidth","measuredWidth","togglable","_this","window","printLayout","exporting","menu","ExportMenu","items","exportMenuElemId","exportMenuContainer","document","getElementById","container","console","error","seriesExportExclusion","seriesExportExclusions","adapter","add","cName","getSeriesCategoryName","categoryName","vName","getSeriesValueName","valueName","includes","exportDataFilter","setChartTitle","tapToActivate","logoImage","Image","href","isMeasured","padding","horizontalCenter","verticalCenter","x","percent","width","dy","showSNLogo","hidden","show","hide","fullScreenButtonHandler","fullScreenButton","Button","text","fontWeight","fontFamily","background","icon","Sprite","path","paddingLeft","iconPosition","cursorOverStyle","MouseCursorStyle","pointer","states","removeKey","exportable","titles","applyPrimaryTitleSettings","subtitle","chartContainer","marginLeft","align","wrap","applySubTitleSettings","scaleDescription","topTitle","toUpperCase","ev","hardInvalidate","_categoryAxis","_valueAxis","valueAxisTitle","reverseXY","yAxes","xAxes","valueX","valueY","categoryY","categoryX","addSeriesModifications","_series","forEach","seriesAttributes","createSeries","defaultChartType","getSeriesValueXYName","seriesAttribute","SeriesClass","seriesName","name","numberFormatter","seriesIsIntegerData","addSeriesBullets","marginRight","withMName","desc","mname","setReactModalAppElement","react_modal_1","setAppElement","warn","__assign","assign","t","s","i","n","arguments","length","p","apply","Factors","ChartDataTransformerRules","gradingScaleTypeDescription","chartData_1","xScalesGradingGoodnessLevelOrderLowHigh","defaultFactorChartingArray","chartDataTransformerRule","xscales","dashed2019FactorChartingArray","map","charting","dashYears","_Factors","slug","api_name","ranking","source","description","long_description","chartingArray","yearLabelTransformerName","ranking_years","extra_description","factorComparison","lacksCountyData","isIntegerData","singleDimensionComparable","includeSwedenByDefault","subtype","gradingScaleType","applicableToPoliticians","short_name","defaultChartDataEndpointName","extraLabelWidth","truncate","withoutGradingScale","sorting","sortDir","sortOrder","year","extraHeight","charting_","titleOverride","sourceExclude","excludeSweden","unit","yscales","isSpecialInvertedRankingChart","unitExclude","years","isBiggerBetter","preamble","ruleName","transformer","identityTransformer","seriesNamesFilterer","extendStatics","__extends","d","b","setPrototypeOf","__proto__","Array","__","constructor","LineChartYearFactory","Year","abstractXYChartFactory_1","_super","extraMin","extraMax","bullet","bullets","CircleBullet","circle","radius","addCustomBulletAppliedToLastYearDataPoint","outerBullet","fillOpacity","strokeOpacity","propertyFields","OUTER_BULLET_CIRCLE_OPACITY_FIELD_NAME","LINE_SEGMENT_DASH_ARRAY","LINE_SEGMENT_DASH_ARRAY_POLITICIAN","indexOf","strokeDasharray","LineSeries","OUTER_BULLET_CIRCLE_OPACITY_VISIBLE_VALUE","BarChartFactory","Category","underscore_1","ColumnSeries","leftAxesContainer","setMinBasedOnData","minPerCategory","min","values","filter","isNumber","minOverall","Math","_a","_b","_c","_d","cellStartLocation","cellEndLocation","tooltipX","addCornerRadius","radiusFn","roundedIfPositive","_radius","dataItem","ColumnSeriesDataItem","columns","column","setMinValueZero","valueLabel","addColumnSeriesLabelBullets","csDataItem","itemWidth","dx","valueXYName","formatter","LabelBullet","hideOversized","markers","height","Municipalities","CountiesAndMunicipalities","CountyNames","Sweden","Counties","county","county_is_first","first","sort","flatMap","difference","__spreadArrays","il","r","a","j","jl","FactorChartComponent","React","react_1","lineChartYearFactory_1","toLineChartYearConverter_1","barChartFactory_1","toBarChartConverter_1","XYChartComponent_1","invertedRankingChartFactory_1","toBarChartCombinedConverter_1","getTopTitle","chartProps","extraParenthesizedItems","sourceTranslated","factorService","getSourceTranslated","factorSlug","units","sa","seriesUnit","uniqueUnits","uniq","parenthesisData","respondentType","elem","isEmpty","toLowerCase","join","getSources","sources","sourceFilter","sourcesList","uniqSources","chain","splitSources","us","split","latestYearSurveyFactorExportDataFilterCreator","isRankingFactor","getSource","item","uglyRequestIndexHackCounter","MunicipalityFactorValues","dataClientFactory","chartingLabel","municipalities","useState","lineChartYearFactoryProps","setLineChartYearFactoryProps","useEffect","requestIndex","getMFVData","then","chartData","chartDataDataTransformer","chartConfig","getChartConfig","lcyData","toLineChartYearData","sourceExcludeFilter","getFactorDescription","getScaleDescription","chartFactory","isRankingChart","InvertedRankingChartFactory","createElement","XYChartComponent","chartFooterComponent","useSurveyFactorBothLineChart","getSFBData","SurveyFactorBothLineChart","useCallback","SurveyFactorBothMultiLineChart","getSFBMData","useSurveySimpleBarchart","barChartFactoryProps","setBarChartFactoryProps","SurveySimpleBarchartCombined","dataEndpoint","propsWithoutRespondentTypes","getBarChartDataCombinedRespondents","toBarChartDataCombined","SurveySimpleBarchart","getBarChartData","toBarChartData","InDepthSurveyQuestions","getDataEndpoint","seriesAttributesFromDataDesc","datadesc","indexFilter","unitFilter","index","dd","createAxisGrid","axisRanges","findIndex","range","getDelta","getAvailableYears","ranks","keys","yStr","parseInt","latestYear","latestRank","previousRank","useQueryParamSynched","qs_1","react_2","qpParamName","initialValue","qpValue","parse","search","substring","setValue0","setValue","qp","history","replaceState","stringify","useFilterList","namePassesFilter","isFilteringActive","filterList","nameLower","toLocaleLowerCase","some","filterString","initial","setFilterList","inputValue","trim","filterList_1","FactorService","factors_1","func_1","chartConfig_1","comparisonConfig_1","SourceSwedishMapping","survey","statistics","factors","factorFromSlug","keyBy","f","validatedLookup","property","Error","getFactor","getName","isRespondentTypeApplicable","getApiName","getChartingLabels","c","isDefined","getCharting","theOneMatchingLabel","find","rest","slice","getChartDataDataTransformer","factorCharting","rule","identity","ChartConfig","getComparisonConfig","ComparisonConfig","GuidePieSmall","percentage","className","converterUtil_1","chartService","attributes","seriesLegendNames","cdd","seriesData","entry","toString","categoryField","zipped","zip","dataSeriesFields","key_1","sortBy","reverse","xscales_1","xScales","unitExcludeFilter","_cdd","replace","match","FooterSelect","react_select_1","selectTheme_1","selectUtil_1","positioning","menuPlacementTop","menuPosition","menuPlacement","selectedLabel","options","defaultValue","option","onChange","isSelectOption","onSelectedChange","isDisabled","theme","SelectTheme","styles","customStyles","Grouping","groups","comparable","big_cities","commuter_munis_near_big_city","larger_cities","commuter_munis_near_larger_city","low_commute_munis_near_larger_city","smaller_cities","commuter_munis_near_smaller_city","countryside_muni","countryside_muni_with_tourism","ab_stockholms_lan","c_uppsala_lan","d_sodermanlands_lan","e_ostergotlands_lan","f_jonkopings_lan","g_kronobergs_lan","h_kalmar_lan","i_gotlands_lan","k_blekinge_lan","m_skane_lan","n_hallands_lan","o_vastra_gotalands_lan","s_varmlands_lan","t_orebro_lan","u_vastmanlands_lan","w_dalarnas_lan","x_gavleborgs_lan","y_vasternorrlands_lan","z_jamtlands_lan","ac_vasterbottens_lan","bd_norrbottens_lan","forMunicipality","municipality","groupName","groupLists","countyFor","countyCache","buildCountyCache","nameSlug","names","countyGroup","DeltaArrowNumber","DeltaArrow","rankingUtil_1","delta","SelectedMunicipalitiesNonPartitioned","MunicipalityComparison","useMunicipalityComparison","autoComplete_1","counties_1","factorChartWidgetReducers_1","react_responsive_1","initialMunicipality","comparisonReducer","municipalityReducer","useReducer","comparisonMunicipalities","comparisonMunicipalitiesDispatch","initialSelected","selectedReducer","selectedMunicipalities","selectedMunicipalitiesDispatch","reset","initialMunicipalities","includeCounties","active","presetComparisonComponents","top5ComparisonNode","countyComparisonNode","skrComparisonNode","visible","setVisible","allAlternatives","concat","toggleVisible","preventDefault","onSelect","onDeselect","resetMunicipalities","showComp","pcs","isMobile","useMediaQuery","query","selectedComp","id","onKeyDown","key","SelectedMunicipalitiesPartitioned","AutoComplete","placeHolder","isMatchFunction","startsWithMatchFunction","onClick","style","display","onMouseDown","selected","sm","comparison","cm","presentableDataClientFactory","PresentableDataClient","axios_1","baseUrl","factorApiName","paramsBuilderCommon","kommun","factor","type","paramsBuilderMFV","describe","xscale","yscale","params","getPresentableRequest","paramsBuilderSFB","paramsBuilderSSBC","presentableName","yScales","resultEntrepreneurs","resultPoliticians","getRequest","url","paramsSerializer","arrayFormat","headers","catch","apiBaseUrl","filterMunicipalitiesBasedOnFactor","getRespondentType","lodash_1","groupingService","selectedFactorSlug","getFactorGroup","isApplicableToPoliticians","comparisonConfig","comparisonMunicipalities0","selectedMunicipalities0","noCounties","indexOfMatchFunction","markSubstringMatches_1","alternative","startsWith","getVisibleList","isMatch","allAlternativesLower","nSuggestions","setFilterString","selectedIndex","setSelectedIndex","initialVisible","visibleList","setVisibleList","validInput","setValidInput","placeholder","filterString_1","onBlur","visibleList_1","fromIndex","nextVisibleIndex","visibleList_2","prevVisibleIndex","findLastIndex","Suggestions","suggestions","MarkSubstringMatches","str","subStrings","_i","subStrings_1","markMe","matchSegments","regexp","RegExp","lastMatchIndex","exec","firstNonMatchSegment","Fragment","lastNonMatch","matchStr","lastIndex","suffix","GuideCheckbox","checked","indexOfYear","DataDescriptionYearName","yearLabel","yearLabelTransformer","yearField","max","outerBulletCircleOpacityFieldName","outerBulletCircleOpacityVisibleValue","dashYears_1","itemUpdated","dashYearsPoliticians","animated_1","react_fast_compare_1","multiChartLayoutHelper_1","addLicense","defaultThemes","printThemes","createReadyMarkerDiv","setAttribute","body","append","status","log","unuseTheme","useTheme","isArray","disposables","MultiChartLayoutHelper","chartElemId","createCharts","disposeChart","dispose","random","componentDidUpdate","prevProps","prevState","propsEqual","stateEqual","state","componentDidMount","componentWillUnmount","render","Component","mainContainer","Container","layout","titleLegendContainer","valign","alignmentLabel","position","chartsContainer","charts","factory","setupLegendData","allAxes","categoryAxisTitleHeight","axis","measuredHeight","minHeight","chartAxes","alignAxisTitles","chart0","legendData_1","util_1","inversed","baseGrid","createGrid","strictMinMax","mainTitle","seriesNameTo","stripRespondentTypeFromTopTitle","parenBody","chartDataEntrepreneurs","chartDataPoliticians","barChartDataEntrepreneurs","barChartDataPoliticians","isEqual","eData","mapKeys","mergedData","pData","merge","mergedAttributes","entrepreneurs","policitians","withUpdatedSeriesNameE","withUpdatedSeriesNameP","entrepreneursTT","ChartFooterComponent","memo","chartingSelectComponent","respondentTypeSelectComponent","Top5Comparison","setActive","activeFactor","err","SKRComparison","skr_1","allSKRChildren","SKR","children","groupToMunicipalities","group","activeMunicipality","found","gName","useFocusMnemonic","mousetrap_1","bindString","inputRef","useRef","bind","current","focus","unbind","borderRadius","colors","neutral20","primary","primary25","neutral80","primary50","MunicipalityBarChartFactory","Municipality","categoryAxisTitle","maxValue","cornerRadius","miniPubSub","MiniPubSub","subscribers","subscribe","subscriber","notify","seriesNames","seriesNamesToInclude","dataSeriesIndicesToKeep","pickBy","Number","filterIndices","updatedDataDesc","updatedData","dataRow","updatedHeader","header","updatedTypes","types","indexMap","reduce","acc","sortValue","indexMapSorter","array","withSortValue","updatedDataData","row","Fklimat","jquery_1","AdaptiveCharts","initialize","calculateTheme","register","callback","isOnPhoneVersion","calculateHeight","targetHeight","middle","onResize","oldTheme","renderTo","elementId","presentable","parameters","adaptive","drawChart","extend","Artilect","renderFinished","resize","debounce","RankingWidget","rankingWidgetTable_1","rankingHistoryRow_1","useQueryParamSynched_1","rankingLargestDeltas_1","entries","head","setMunicipality0","selectedEntry","RankingWidgetTable","setMunicipality","RankingHistoryRow","sortYear","RankingLargestDeltas","QPSortValues","deltaArrowNumber_1","svCollator","Intl","Collator","defaultSortDir","DELTA","RANK","setSort","setSortDir","dir","other","NAME","compare","compareFn","createOnClickHandler","arrowDir","autoComplete","rank","specialColor","renderRows","takeRight","dropRight","factorService_1","DeltaFactorBox","deltaFactorRanks","setData","tableRows","chunk","pair","left","right","leftSlug","rightSlug","isFunc","payload","StringUnion","assertIsDefined","doReduce","val","freeze","valueSet","Set","guard","has","unionNamespace","check","actual","JSON","expected","TypeError","GuidesChartWidget","reactModalHelper_1","municipalityComparison_1","guideBoxesComponent_1","GuideBoxesComponent","focusMunicipality","guideSlugToLink","guideSlugToChecklistLink","addUniqSort","prev","specialSortAndUniqFn","doSort","removeUniqSort","stringArray","without","_tag","municipalitiesOpt","alwaysLast","first_1","updated","resultingMunicipalities","afterRemove","VimeoBox","GuideBox","guides_1","NonCheckListLinksArea","guideEntry","downloadUrl","ChecklistLinksArea","link","checklistLink","guide","src","thumbUrl","renderLinksArea","frameBorder","scrolling","vimeoId","allowFullScreen","videoCredits","guideSlugs","GuideSlug","guideSlug","NonChecklistGuideSlug","Guides","ChecklistGuideSlug","VimeoGuideSlug","ChecklistGuidesEntries","order","checklistUrl","checkListTitle","sections","presentableDataClient_1","factorChartComponent_1","groupingService_1","grouping_1","factorChartDescription_1","chartFooter_1","modal_1","top5Comparison_1","countyComparison_1","skrComparison_1","selectionList_1","respondentTypeSelect_1","factorChartHelper_1","footerSelect_1","use_state_with_deps_1","factorNameFromSlug","GroupingService","modalIsOpen","setModalIsOpen","initialFactorSlug","setSelectedFactorSlug","chartingLabels","_e","useStateWithDeps","setChartingLabel","_f","_g","defaultRespondentType","_h","setRespondentType","onRespondentTypeChange","selectedValue","useLayoutEffect","updatedRespondentType","toggleModal","openNow","respondentSelectDisabled","chartComponentFactory","isModal","l","RespondentTypeSelect","comparisonComponents","isSingleDimensionComparable","_j","activeComponent","setActiveComponent","excludedFactors","getFactorsFromGroup","factorsGroupName","flatten","comparisonDisabled","CountyComparison","isOpen","modalCustomStyles","onRequestClose","shouldCloseOnEsc","modalContentDimensions","SelectionList","excludedItems","itemGroups","selectedSlug","setSelectedSlug","nameFromSlug","FactorChartDescription","comp","withGradingScale","showGradingScale","readMore","descriptionSpan","countyName","findKey","tail","hooks_1","listGroup_1","setSelectedSlug0","setIsOpen","filteredGroups","mapValues","slugs","groupElements","listItemProps","isSelected","isVisible","ListGroup","itemProps","ref","listItem_1","isExpanded","setExpanded","groupExpanded","isGroupVisible","ListItem","dropdownIndicator","provided","indicatorSeparator","overrideProps","initialRespondentType","chartingLabelPropsExtensions","existingLabels","countyService_1","CountyService","getAllRegions","regionName","redirectUrl","GuideSectionComponent","guidePieSmall_1","guideSectionTableBody_1","immer_1","GuideSectionTableHeader","section","includeSweden","editable","checkedPercentage","sectionReducer","municipalitySlug_1","municipalitySlug","gir_1","guideItemResponse","checkedPercentage_1","gi","guide_item_id","responses","guideItemStatistics","sectionDispatch","GuideSectionTableBody","guideCheckbox_1","guidesDataClient_1","MunicipalityColumn","GuidesDataClient","updateResponse","response","MobileMunicipality","GuideNoteInput","showName","item_note","setText","textAreaRef","textAreaHeight","setTextAreaHeight","scrollHeight","buttonDisplay","setButtonDisplay","textAreaId","htmlFor","rows","onFocus","sectionRows","municipalityColumns","notesInputs","checkedCount","totalCount","ChartSelection","Backbone","municipalityNames","countyNames","set","compareTo","fetchTopMunicipalities","hasIcon","factorsWithIcons","effectiveFactor","factorsWithoutGradingScale","unapplicableToPoliticians","addMunicipality","region","detect","removeMunicipality","top","meaninglessTopFive","$","ajax","success","downloadAsExcel","dataType","Model","toStringArray","grouping","getFactorsFromGroup0","memoize","factorsGroup","groupingEntries","ge","ChartConfigSelect","GuideChartComponent","municipalityBarChartFactory_1","guidesService_1","guidesService","GuidesService","guidesData","setGuidesData","getGuidesMainData","chartFactories","forOwn","dataArray","categoryKey","dataEntry","getTitle","sn","getGuidesProgressState","itemId","note","putRequest","municipality_slug","put","GuidePieBlueMedium","progressState","GuidePieLarge","GuidePieSmallSubscribed","miniPubSub_1","initialPercentage","setPercentage","subscribeKey","GuideSections","guideSection_1","MunicipalityOverviewChartWidget","firstLabel","setFactorCharting","onFactorChartingChange","RankingWidgetOverView","RankingModal","modalStyle","overlay","zIndex","backgroundColor","content","bottom","transform","buttonStyle","border","enableAllPlugins","componentRequireContext","require","useContext","nestedDropDown_1","downloadForm_1","mapDownloadForm_1","collapsable_1","startPageChart_1","chartSelectionView_1","chartSurveySource_1","municipalitySelection_1","topMunicipalities_1","chartExcelDownloads_1","chartSelection_1","bigChart_1","comparePanel_1","NestedDropDown","el","createFor","DownloadForm","MapDownloadForm","Collapsable","StartPageChart","selectedChart","model","Muni","scale","toggle","BigChart","ComparePanel","municipalityName","ChartSelectionView","ChartSurveySource","MunicipalitySelection","TopMunicipalities","ChartExcelDownload","__decorate","decorators","getOwnPropertyDescriptor","Reflect","decorate","withMName_1","shownSuggestions","onKeyField","onFieldFocus","onFieldBlur","onClickSuggestion","onFormSubmit","bindAll","$el","autocompleteNames","field","button","numberOfSuggestions","NUMBER_OF_SUGGESTIONS","updateFormStatus","displaySuggestions","hideSuggestions","trigger","submit","keyCode","blur","setTimeout","matches","take","html","foundMatch","attr","View","NestedDropDownModel","select","extractChoice","innerHTML","not","optgroup","prompt","eq","dropDown","after","promptEl","removeClass","optionsEl","updateLabel","onClickPrompt","stopPropagation","toggleClass","updatePlaceholder","toggleGroupName","$groupName","$options","parent","onClickGroupName","onClickOption","$selectedOption","selectedOptionValue","$containingSelect","closest","prevSelectedValue","$containingSelectParent","$prevSelectedA","$groupNameA","addClass","css","onSuggestionMatch","onSuggestionMiss","onChangeFormat","buttonMatch","allSelectsChosen","radioSelected","enableWithNull","change","selects","selectIsNonEmpty","targetUrl","toggleContents","adaptiveCharts_1","onChangeFactor","autocomplete","onChangeMunicipality","click","activeYear","factorAPINames","show_shares","factorNames","isFactorWithoutGradingScale","factorDescriptions","onFactorChange","onMunicipalityChange","onSelectChange","onRemoveMunicipality","onAddSuggestion","onClearAll","onChangeGroup","showTop","onTopChanged","shown","selectedTemplate","toggleOptions","is","muni","pluck","setChartType","setSubseries","descriptionContainer","sourceSelection","reportContainer","self_1","bindList","fromSwedenStatisticsPage","fromSwedenSurveyPage","updateDescription","updateChart","updateSourceSelection","updateReportContainer","subseries","showBadgeIcon","dataAllowTypeSelection","dataShowSubseries","showTypeSelection","showSubseries","hideSweden","hideSwedenInterval","clearInterval","setInterval","Highcharts","swSeries","destroy","Charts","drawBigChart","reportContainerTemplate","additionalParameters","_importanceCharts","kind","amount_of_business","amount_of_business_absolute","business_climate_change_5_years","municipality_runs_competing_businesses","survey_contact_understanding","survey_contact_clearfee","survey_contact_handling","survey_contact_reachable","survey_contact_digitized","contracting","dontPassXscale","entrepreneurship","young_entrepreneurs","global_trade_per_capita","jobs_per_business","largest_employers","excludeAverage","passMuniInsteadOfKommun","largest_private_employers","most_prioritized_actions","knowledge_of_muni_work","muni_contact_latest_year","muni_contact_latest_year_about","muni_contact_hesitate","company_education_contact","advice_on_permission","net_costs","crime_change_2years","crime_a_problem","crime_risk_kind","company_relocate","net_population_change","excludeType","disallowDecimals","zeroCenter","new_entrepreneurship","retirees","type_of_business","unemployment","chartHeight","DEFAULT","importanceCharts","inDepthTooltipFormatter","round","y","apiParams","additional","counties","xAxis","allowDecimals","tickInterval","yAxis","yAxisText","targetId","optionsParam","animate","showlegend","tooltipformatter","themes","mobile","highcharts","spacingLeft","enabled","plotOptions","line","lineWidth","marker","symbol","hover","lineColor","tickColor","tickPosition","overflow","gridLineColor","margin","font","lineHeight","borderWidth","itemMarginTop","itemDistance","itemStyle","textTransform","itemHoverStyle","redrawSelectedOptions","updateComparison","updateSelectedMunicipalities","clearComparison","onGroupSelection","reject","remove","visible_1","intersection","setCookie","days","date","Date","now","toUTCString","cookie","$headerEl","$headerExpanded","$headerExpandedSlide","headerHeight","outerHeight","hideMobileMenu","hasClass","aid","aidSplit","charAt","scrollTop","offset","hash","Cookies","jQuery","$thCurrent","$thCurrentA","$thYearNotCurrent","$tdYearNotCurrent","$tdPlaceholder","$expand","$collapse","$button","empty","pre","q","hrefQP","prop","insertAfter","configurable","createExcludeFilter","excludeString","input","getYearLabelTransformer","intYear","maxHeight","heightPercentage","widthPercentage","faqQuestion_1","ViewFaqQuestion","toggleAnswer","answer","slideUp","slideDown","webpackContext","req","webpackContextResolve","__webpack_require__","code","resolve","module","guides"],"mappings":"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K0E,IAAIJ,EAAgBY,EAAQlF,EAAK0E,GAEtI,OADAK,EAAmBG,EAAQlF,GACpBkF,CACX,EACAhF,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ0W,eAAiB1W,EAAQ2W,0BAA4B3W,EAAQ4W,YAAc5W,EAAQ6W,OAAS7W,EAAQ8W,cAAW,EACvH,IAAI1R,EAAIP,EAAa,EAAQ,KAC7B7E,EAAQ8W,SAAW,CACf,OAAU,CACN,kBAAqB,CACjB,oBACA,WACA,WACA,WACA,UACA,WACA,iBACA,aACA,QACA,eACA,UACA,eACA,QACA,UACA,aACA,QACA,YACA,aACA,mBACA,YACA,UACA,eACA,oBACA,aACA,UACA,eACA,mBAEJ,cAAiB,CACb,iBACA,cACA,OACA,UACA,UACA,QACA,UACA,gBACA,gBAEJ,oBAAuB,CACnB,0BACA,aACA,OACA,SACA,cACA,cACA,eACA,kBACA,QACA,eAEJ,oBAAuB,CACnB,6BACA,UACA,cACA,QACA,eACA,YACA,SACA,gBACA,oBACA,WACA,eACA,OACA,gBACA,iBAEJ,iBAAoB,CAChB,0BACA,QACA,WACA,WACA,YACA,OACA,kBACA,aACA,eACA,eACA,YACA,WACA,WACA,cAEJ,iBAAoB,CAChB,oBACA,UACA,UACA,UACA,WACA,WACA,aACA,cACA,cAEJ,aAAgB,CACZ,gBACA,WACA,WACA,YACA,YACA,SACA,kBACA,mBACA,QACA,aACA,YACA,WACA,gBAEJ,eAAkB,CACd,kBACA,WAEJ,eAAkB,CACd,kBACA,YACA,aACA,eACA,UACA,iBAEJ,YAAe,CACX,kBACA,OACA,cACA,YACA,YACA,WACA,cACA,gBACA,gBACA,WACA,aACA,UACA,eACA,cACA,aACA,QACA,OACA,WACA,OACA,WACA,aACA,WACA,SACA,eACA,YACA,UACA,YACA,aACA,WACA,QACA,YACA,eACA,iBACA,sBAEJ,eAAkB,CACd,kBACA,aACA,WACA,QACA,aACA,SACA,WAEJ,uBAA0B,CACtB,gCACA,MACA,cACA,aACA,YACA,WACA,UACA,UACA,eACA,gBACA,cACA,eACA,cACA,YACA,aACA,MACA,aACA,YACA,aACA,QACA,eACA,aACA,UACA,YACA,OACA,WACA,WACA,aACA,QACA,WACA,QACA,YACA,aACA,cACA,eACA,aACA,QACA,QACA,WACA,WACA,UACA,iBACA,cACA,YACA,aACA,OACA,iBACA,gBACA,aACA,gBAEJ,gBAAmB,CACf,sBACA,SACA,MACA,YACA,WACA,QACA,UACA,aACA,WACA,MACA,eACA,WACA,WACA,QACA,YACA,SACA,gBAEJ,aAAgB,CACZ,mBACA,YACA,YACA,YACA,eACA,YACA,QACA,UACA,WACA,aACA,eACA,OACA,aAEJ,mBAAsB,CAClB,yBACA,SACA,WACA,gBACA,aACA,YACA,UACA,OACA,kBACA,aACA,kBAEJ,eAAkB,CACd,kBACA,SACA,cACA,QACA,SACA,WACA,UACA,UACA,kBACA,OACA,OACA,aACA,eACA,WACA,UACA,eAEJ,iBAAoB,CAChB,uBACA,aACA,WACA,SACA,aACA,UACA,aACA,UACA,cACA,YACA,gBAEJ,sBAAyB,CACrB,4BACA,kBACA,WACA,eACA,YACA,WACA,UACA,sBAEJ,gBAAmB,CACf,sBACA,OACA,YACA,gBACA,SACA,UACA,eACA,SACA,gBAEJ,qBAAwB,CACpB,0BACA,WACA,UACA,WACA,UACA,aACA,YACA,cACA,gBACA,UACA,WACA,UACA,aACA,UACA,eACA,YAEJ,mBAAsB,CAClB,qBACA,WACA,aACA,QACA,eACA,YACA,WACA,QACA,SACA,WACA,SACA,WACA,aACA,eACA,sBAIZ9W,EAAQ6W,OAAS,UAGjB7W,EAAQ4W,YAAcxR,EAAE+J,IAAInP,EAAQ8W,SAASC,QAAQ,SAAUC,GAAmB,OAAO5R,EAAE6R,MAAMD,EAAkB,IAAGE,OACtHlX,EAAQ2W,0BAA4BvR,EAAE+R,QAAQnX,EAAQ8W,SAASC,QAAQ,SAAU9W,GAAS,OAAOA,CAAO,IAAGiX,OAC3GlX,EAAQ0W,eAAiBtR,EAAEgS,WAAWpX,EAAQ2W,0BAA2B3W,EAAQ4W,Y,+BChYjF,IAAI5I,EAAYrO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EAClD5kD,EAAQwmC,kBAAoB,CACxBwK,QAAS,CACLC,OAAQ,IACRC,gBAAiB,wBAErBC,QAAS,CACLI,OAAQ,IACRzZ,aAAc,MACdsZ,OAAQ,OACR/c,UAAW,QACX5d,OAAQouC,MACRD,UAAWA,EAAY,KACvBlmB,KAAM,MACNp1B,QAAS,sBACTsqB,SAAU,QACV+K,MAAO,OACP+O,IAAK,MACL2D,UAAW,uBACX9uC,SAAU,QACVoH,MAAOm7C,MACP39C,SAAUA,SACV+pC,gBAAiB,Q,+BChCzBpxC,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ82B,SAAM,EACd92B,EAAQ82B,IAAM,CACV,EAAK,CACD,YAAe,iDACf,SAAY,CACR,GAAM,CACF,KAAQ,oBACR,YAAe,uHACf,eAAkB,CACd,cACA,WACA,cAGR,GAAM,CACF,KAAQ,uCACR,YAAe,2JACf,eAAkB,CACd,MACA,cACA,YACA,WACA,YACA,WACA,WACA,UACA,WACA,UACA,aACA,iBACA,aACA,aACA,cACA,QACA,aACA,aACA,QACA,aACA,QACA,eACA,WACA,QACA,UACA,SACA,aACA,QACA,eACA,cACA,aACA,UACA,aACA,YACA,UACA,oBACA,eACA,aACA,UACA,WACA,eACA,eACA,sBAKhB,EAAK,CACD,YAAe,6DACf,SAAY,CACR,GAAM,CACF,KAAQ,qBACR,YAAe,sHACf,eAAkB,CACd,cACA,WACA,aACA,WACA,WACA,cACA,kBACA,SACA,WACA,eACA,eACA,WACA,OACA,gBACA,YACA,mBACA,iBACA,UACA,UACA,iBACA,cACA,YACA,iBAGR,GAAM,CACF,KAAQ,6CACR,YAAe,yIACf,eAAkB,CACd,UACA,QACA,WACA,OACA,cACA,cACA,WACA,WACA,SACA,SACA,QACA,cACA,OACA,YACA,gBACA,aACA,OACA,aACA,gBACA,WACA,MACA,QACA,UACA,UACA,SACA,QACA,SACA,aACA,WACA,UACA,OACA,YACA,aACA,mBACA,OACA,aACA,UACA,UACA,WACA,cACA,OACA,WACA,kBACA,aACA,YACA,aACA,WACA,oBACA,gBACA,QACA,WACA,YACA,QACA,WACA,eACA,gBACA,eACA,YACA,gBACA,gBACA,eACA,iBACA,uBAGR,GAAM,CACF,KAAQ,mDACR,YAAe,sJACf,eAAkB,CACd,YACA,OACA,QACA,YACA,cACA,QACA,gBACA,eACA,YACA,UACA,aACA,SACA,WACA,QACA,eACA,YACA,WACA,UACA,YACA,aACA,aACA,UACA,aACA,mBAKhB,EAAK,CACD,YAAe,yDACf,SAAY,CACR,GAAM,CACF,KAAQ,4BACR,YAAe,sHACf,eAAkB,CACd,SACA,aACA,eACA,QACA,UACA,aACA,kBACA,YACA,YACA,aACA,cACA,SACA,eACA,UACA,UACA,YACA,eACA,cACA,aACA,WACA,gBACA,YACA,UACA,aACA,eACA,QACA,uBAGR,GAAM,CACF,KAAQ,oDACR,YAAe,uOACf,eAAkB,CACd,SACA,UACA,UACA,YACA,WACA,WACA,UACA,WACA,OACA,gBACA,YACA,eACA,YACA,WACA,MACA,SACA,YACA,YACA,aACA,YACA,aACA,eACA,WACA,WACA,WACA,kBACA,UACA,aACA,eACA,QACA,OACA,eACA,UACA,QACA,kBACA,eACA,WACA,eACA,QACA,WACA,WACA,YACA,cACA,WACA,OACA,cACA,iBACA,OACA,aACA,aACA,kBAGR,GAAM,CACF,KAAQ,uBACR,YAAe,uJACf,eAAkB,CACd,aACA,SACA,aACA,aACA,UACA,YACA,WACA,UACA,YACA,eACA,QACA,WACA,UACA,UACA,WACA,UACA,YACA,cACA,SACA,UACA,eACA,eACA,QACA,YACA,eACA,SACA,YACA,UACA,WACA,aACA,WACA,UACA,WACA,eACA,qBAGR,GAAM,CACF,KAAQ,8CACR,YAAe,+OACf,eAAkB,CACd,WACA,WACA,YACA,MACA,eACA,gBACA,WACA,UACA,kBACA,OACA,OACA,aACA,aACA,UACA,aACA,WACA,eACA,QACA,SACA,eACA,kB,mCCrWpB,IAAI5yB,EAAmBvE,MAAQA,KAAKuE,kBAAqBpE,OAAOqE,OAAS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","file":"js/application-c0362ea6e32ca16de20e.chunk.js","sourcesContent":["\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.snTheme = exports.snAnimatedTheme = exports.numberFormatter2Decimals = exports.numberFormatter1Decimals = exports.numberFormatter0Decimals = exports.WhiteColor = exports.GridColor = exports.BackgroundColor = exports.PrimaryOrangeColor = exports.PrimaryColor = exports.PrimaryTextColor = void 0;\nvar core_1 = require(\"@amcharts/amcharts4/core\");\nvar charts_1 = require(\"@amcharts/amcharts4/charts\");\nvar sv_SE_1 = __importDefault(require(\"@amcharts/amcharts4/lang/sv_SE\"));\nexports.PrimaryTextColor = core_1.color(\"#33414e\");\nexports.PrimaryColor = core_1.color(\"#62717F\");\nexports.PrimaryOrangeColor = core_1.color(\"#EA8F12\");\nexports.BackgroundColor = core_1.color(\"#F7F8FA\");\nexports.GridColor = core_1.color(\"#617180\");\nexports.WhiteColor = core_1.color(\"#fff\");\nexports.numberFormatter0Decimals = new core_1.NumberFormatter();\nexports.numberFormatter0Decimals.numberFormat = \"#,###.\";\nexports.numberFormatter1Decimals = new core_1.NumberFormatter();\nexports.numberFormatter1Decimals.numberFormat = \"#,###.0\";\nexports.numberFormatter2Decimals = new core_1.NumberFormatter();\nexports.numberFormatter2Decimals.numberFormat = \"#,###.00\";\nfunction snAnimatedTheme(target) {\n if (target instanceof charts_1.Chart) {\n var chart = target;\n // animation properties\n chart.defaultState.transitionDuration = 250;\n }\n}\nexports.snAnimatedTheme = snAnimatedTheme;\nfunction snTheme(target) {\n if (target instanceof charts_1.Chart) {\n var chart = target;\n chart.paddingRight = 20;\n if (chart instanceof charts_1.XYChart) {\n chart.cursor = new charts_1.XYCursor();\n }\n }\n if (target instanceof core_1.Language) {\n var language = target;\n language.locale = sv_SE_1.default;\n }\n if (target instanceof charts_1.Legend) {\n var legend = target;\n // positioning\n legend.contentAlign = \"center\";\n legend.fontSize = \"16px\";\n }\n if (target instanceof core_1.ColorSet) {\n target.list = [\n exports.PrimaryColor,\n exports.PrimaryOrangeColor,\n core_1.color(\"#B12F26\"),\n core_1.color(\"#A1AFBD\"),\n core_1.color(\"#875891\"),\n core_1.color(\"#EE6457\"),\n core_1.color(\"#42B1B0\"),\n core_1.color(\"#C85582\"),\n core_1.color(\"#8CAFCE\"),\n core_1.color(\"#836875\"),\n ];\n }\n if (target instanceof charts_1.AxisRenderer) {\n var renderer = target;\n renderer.minWidth = 35;\n renderer.fontSize = \"11px\";\n renderer.labels.template.fill = exports.PrimaryColor;\n // grid\n renderer.grid.template.stroke = core_1.color(exports.GridColor);\n renderer.grid.template.strokeWidth = 0.5;\n renderer.grid.template.location = 0;\n if (target instanceof charts_1.AxisRendererX) {\n var renderer_1 = target;\n // render above chart\n renderer_1.opposite = true;\n renderer_1.minGridDistance = 25;\n }\n if (target instanceof charts_1.AxisRendererY) {\n renderer.minGridDistance = 30;\n }\n }\n if (target instanceof charts_1.ValueAxis) {\n var valueAxis = target;\n // https://www.amcharts.com/docs/v4/reference/valueaxis/#maxPrecision_property\n valueAxis.maxPrecision = 1;\n valueAxis.title = new core_1.Label();\n valueAxis.title.fontSize = \"12px\";\n if (valueAxis.tooltip) {\n valueAxis.tooltip.disabled = true;\n }\n }\n if (target instanceof charts_1.Series) {\n var series = target;\n series.strokeWidth = 3;\n if (series.tooltip) {\n series.tooltip.autoTextColor = true;\n }\n // animation properties\n series.defaultState.transitionDuration = 0;\n series.hiddenState.transitionDuration = 0;\n series.hiddenState.properties.opacity = 0;\n series.showOnInit = false;\n }\n}\nexports.snTheme = snTheme;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractXYChartFactory = void 0;\nvar core_1 = require(\"@amcharts/amcharts4/core\");\nvar chartTheme_1 = require(\"../chartTheme\");\nvar charts_1 = require(\"@amcharts/amcharts4/charts\");\nvar _ = __importStar(require(\"lodash\"));\nvar AbstractXYChartFactory = /** @class */ (function () {\n function AbstractXYChartFactory(props) {\n this.props = props;\n }\n AbstractXYChartFactory.prototype.createChart = function (chartElemIdOrContainer, onReady) {\n var chart = typeof chartElemIdOrContainer === 'string'\n ? core_1.create(chartElemIdOrContainer, charts_1.XYChart)\n : chartElemIdOrContainer.createChild(charts_1.XYChart);\n chart.data = this.props.data;\n this.setChartProps(chart);\n var categoryAxis = this.getCategoryAxis(chart).push(new charts_1.CategoryAxis());\n categoryAxis.dataFields.category = this.props.category;\n var valueAxis = this.getValueAxis(chart).push(new charts_1.ValueAxis());\n this.configAxes(categoryAxis, valueAxis);\n this.createChartSeries(chart);\n this.addFullScreenButton(chart);\n this.addSNLogo(chart);\n this.addLegend(chart);\n this.addExport(chart);\n chart.events.on(\"ready\", function () {\n onReady && onReady();\n });\n return chart;\n };\n AbstractXYChartFactory.prototype.addLegend = function (chart) {\n chart.legend = new charts_1.Legend();\n // NOTE: cumbersome to put into theme due to construction order or itemContainers etc\n chart.legend.itemContainers.template.marginTop = 10;\n chart.legend.itemContainers.template.paddingTop = 0;\n chart.legend.itemContainers.template.paddingBottom = 0;\n // make two columns of legend labels fit and show tooltip if truncated\n chart.legend.itemContainers.template.tooltipText = \"{name}\";\n chart.events.on(\"sizechanged\", function (e) {\n e.target.legend.labels.each(function (label) {\n label.maxWidth = e.target.legend.measuredWidth / 2 - 30 * 2;\n });\n });\n chart.legend.labels.template.fill = chartTheme_1.PrimaryColor;\n // Since hiding a series by clicking on the legend doesn't update the comparison municipalities (chart state changes\n // does not propagate to the comparison component) it was deemed better to disable the toggling functionality\n // entirely.\n chart.legend.itemContainers.template.togglable = false;\n };\n AbstractXYChartFactory.prototype.addExport = function (chart) {\n var _this = this;\n if (window.printLayout)\n return;\n // Enable export\n // @see https://www.amcharts.com/docs/v4/concepts/exporting/\n chart.exporting.menu = new core_1.ExportMenu();\n chart.exporting.menu.items = [\n {\n \"label\": \"Ladda ner\",\n \"menu\": [\n { \"label\": \"Skriv ut\", \"type\": \"print\" },\n { \"label\": \"Spara PNG\", \"type\": \"png\" },\n // PDF not working for some reason. Some issue with dynamic pdf lib loading?\n // {\"label\": \"Spara PDF\", \"type\": \"pdf\"},\n { \"label\": \"Spara XLSX\", \"type\": \"xlsx\" },\n { \"label\": \"Spara SVG\", \"type\": \"svg\" }\n ]\n }\n ];\n var exportMenuElemId = this.props.exportMenuElemId;\n if (typeof exportMenuElemId === 'string') {\n var exportMenuContainer = document.getElementById(exportMenuElemId);\n if (exportMenuContainer) {\n chart.exporting.menu.container = exportMenuContainer;\n }\n else {\n console.error(\"Export menu element not found: \" + exportMenuElemId);\n }\n }\n // Don't want to have the series styling controlling special data in the exported data.\n /* https://www.amcharts.com/docs/v4/tutorials/exporting-data-for-visible-series-only/#Limiting_exported_fields */\n var seriesExportExclusion = this.seriesExportExclusions();\n var categoryName = function (series) { return _this.getSeriesCategoryName(series); };\n var valueName = function (series) { return _this.getSeriesValueName(series); };\n chart.exporting.adapter.add(\"formatDataFields\", function (data) {\n data.dataFields = {};\n chart.series.each(function (series) {\n var cName = categoryName(series);\n var vName = valueName(series);\n if (cName && vName && !_.includes(seriesExportExclusion, cName)) {\n data.dataFields[cName] = cName;\n data.dataFields[vName] = vName;\n }\n });\n return data;\n });\n var exportDataFilter = this.props.exportDataFilter;\n chart.exporting.adapter.add(\"data\", function (data) {\n return exportDataFilter ? exportDataFilter(data) : data;\n });\n };\n // meant to be overridden\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n AbstractXYChartFactory.prototype.seriesExportExclusions = function () {\n return [];\n };\n AbstractXYChartFactory.prototype.setChartProps = function (chart) {\n this.setChartTitle(chart);\n // helps on touch devices\n // https://www.amcharts.com/docs/v4/concepts/touch/#Grip_appearance\n chart.tapToActivate = true;\n };\n AbstractXYChartFactory.prototype.addSNLogo = function (container) {\n var _this = this;\n var logoImage = container.createChild(core_1.Image);\n // logoImage.href = \"/sn-logo.svg\";\n // Inline version of the above because of export problems...\n logoImage.href = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjcyNXB0IgogICBoZWlnaHQ9IjM0NC4xN3B0IgogICB2aWV3Qm94PSIwIDAgNzI1IDM0NC4xNyIKICAgdmVyc2lvbj0iMS4yIgogICBpZD0ic3ZnNzAiCiAgIHNvZGlwb2RpOmRvY25hbWU9InNuLWxvZ28uc3ZnIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjQgKDVkYTY4OWMzMTMsIDIwMTktMDEtMTQpIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE3NCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxIgogICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiCiAgICAgZ3JpZHRvbGVyYW5jZT0iMTAiCiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEwIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxMjM0IgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjczMiIKICAgICBpZD0ibmFtZWR2aWV3NzIiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMzU3OTMxMDMiCiAgICAgaW5rc2NhcGU6Y3g9IjQ4My4zMzMzMyIKICAgICBpbmtzY2FwZTpjeT0iMjI5LjQ0NjY4IgogICAgIGlua3NjYXBlOndpbmRvdy14PSI4MjgiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjE2MTciCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmc3MCIgLz4KICA8ZGVmcwogICAgIGlkPSJkZWZzNSI+CiAgICA8Y2xpcFBhdGgKICAgICAgIGlkPSJjbGlwMSI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMCAyOTggTCAzNSAyOTggTCAzNSAzNDQuMTcxODc1IEwgMCAzNDQuMTcxODc1IFogTSAwIDI5OCAiCiAgICAgICAgIGlkPSJwYXRoMiIgLz4KICAgIDwvY2xpcFBhdGg+CiAgPC9kZWZzPgogIDxnCiAgICAgaWQ9InN1cmZhY2U4OTYiPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSIgc3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOm5vbnplcm87ZmlsbDpyZ2IoMjUuNDkxMzMzJSwzMi4zODY3OCUsMzYuOTQxNTI4JSk7ZmlsbC1vcGFjaXR5OjE7IgogICAgICAgZD0iTSAxNzUuNzM0Mzc1IDMzNi4yODkwNjIgQyAxNzUuNzM0Mzc1IDMzNi4yODkwNjIgMTg0LjM0NzY1NiAzMzYuMjUzOTA2IDE4OC4zOTA2MjUgMzM2LjI1MzkwNiBDIDE5MS40Njg3NSAzMzYuMjUzOTA2IDE5NS43MzQzNzUgMzM1LjQxNDA2MiAxOTYuMTc1NzgxIDMzMS40ODQzNzUgQyAxOTYuOTY4NzUgMzI0LjQxNzk2OSAxNzcuNjA1NDY5IDMyMy42OTUzMTIgMTc5LjE0ODQzOCAzMDkuOTI1NzgxIEMgMTgwLjEyODkwNiAzMDEuMTY3OTY5IDE4OC4zNzg5MDYgMjk3Ljc2NTYyNSAxOTYuMDQ2ODc1IDI5Ny43NjU2MjUgQyAyMDAuMzk0NTMxIDI5Ny43NjU2MjUgMjA5LjI3NzM0NCAyOTguMzAwNzgxIDIwOS4yNzczNDQgMjk4LjMwMDc4MSBMIDIwOC4yNjU2MjUgMzA1LjA1MDc4MSBDIDIwOC4yNjU2MjUgMzA1LjA1MDc4MSAyMDAuODQ3NjU2IDMwNC45MDYyNSAxOTcuMDQyOTY5IDMwNC45MDYyNSBDIDE5NC43NSAzMDQuOTA2MjUgMTkxLjI2NTYyNSAzMDUuODE2NDA2IDE5MC45NDkyMTkgMzA4LjY1NjI1IEMgMTkwLjIwNzAzMSAzMTUuMjM0Mzc1IDIxMC4yODUxNTYgMzE2LjA4NTkzOCAyMDguNjgzNTk0IDMzMC4zMzU5MzggQyAyMDguMTg3NSAzMzQuNzQ2MDk0IDIwNC45MTAxNTYgMzQzLjUwMzkwNiAxODkuMzI4MTI1IDM0My41MDM5MDYgQyAxODMuNzE0ODQ0IDM0My41MDM5MDYgMTc0Ljc2MTcxOSAzNDMuNDI5Njg4IDE3NC43NjE3MTkgMzQzLjQyOTY4OCBMIDE3NS43MzQzNzUgMzM2LjI4OTA2MiAiCiAgICAgICBpZD0icGF0aDciIC8+CiAgICA8ZwogICAgICAgY2xpcC1wYXRoPSJ1cmwoI2NsaXAxKSIKICAgICAgIGNsaXAtcnVsZT0ibm9uemVybyIKICAgICAgIGlkPSJnMTEiPgogICAgICA8cGF0aAogICAgICAgICBzdHlsZT0iIHN0cm9rZTpub25lO2ZpbGwtcnVsZTpub256ZXJvO2ZpbGw6cmdiKDI1LjQ5MTMzMyUsMzIuMzg2NzglLDM2Ljk0MTUyOCUpO2ZpbGwtb3BhY2l0eToxOyIKICAgICAgICAgZD0iTSAwLjk3MjY1NiAzMzYuOTQ5MjE5IEMgMC45NzI2NTYgMzM2Ljk0OTIxOSA5LjU4NTkzOCAzMzYuOTI5Njg4IDEzLjYyODkwNiAzMzYuOTI5Njg4IEMgMTYuNzEwOTM4IDMzNi45Mjk2ODggMjAuOTY4NzUgMzM2LjA3NDIxOSAyMS40MTQwNjIgMzMyLjE1MjM0NCBDIDIyLjIwNzAzMSAzMjUuMDc4MTI1IDIuODM5ODQ0IDMyNC4zNTU0NjkgNC4zODY3MTkgMzEwLjU5Mzc1IEMgNS4zNzEwOTQgMzAxLjgzNTkzOCAxMy42MTMyODEgMjk4LjQzNzUgMjEuMjgxMjUgMjk4LjQzNzUgQyAyNS42MzI4MTIgMjk4LjQzNzUgMzQuNTExNzE5IDI5OC45NzI2NTYgMzQuNTExNzE5IDI5OC45NzI2NTYgTCAzMy41MDM5MDYgMzA1LjcxNDg0NCBDIDMzLjUwMzkwNiAzMDUuNzE0ODQ0IDI2LjA4MjAzMSAzMDUuNTgyMDMxIDIyLjI4MTI1IDMwNS41ODIwMzEgQyAxOS45ODgyODEgMzA1LjU4MjAzMSAxNi41IDMwNi40ODQzNzUgMTYuMTgzNTk0IDMwOS4zMTY0MDYgQyAxNS40NDUzMTIgMzE1LjkwNjI1IDM1LjUxOTUzMSAzMTYuNzUzOTA2IDMzLjkyMTg3NSAzMzEuMDAzOTA2IEMgMzMuNDI1NzgxIDMzNS40MTQwNjIgMzAuMTQ4NDM4IDM0NC4xNzE4NzUgMTQuNTcwMzEyIDM0NC4xNzE4NzUgQyA4Ljk1MzEyNSAzNDQuMTcxODc1IDAgMzQ0LjA5NzY1NiAwIDM0NC4wOTc2NTYgTCAwLjk3MjY1NiAzMzYuOTQ5MjE5ICIKICAgICAgICAgaWQ9InBhdGg5IiAvPgogICAgPC9nPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSIgc3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOm5vbnplcm87ZmlsbDpyZ2IoMjUuNDkxMzMzJSwzMi4zODY3OCUsMzYuOTQxNTI4JSk7ZmlsbC1vcGFjaXR5OjE7IgogICAgICAgZD0iTSA0MC41MzkwNjIgMjk5LjA5Mzc1IEwgNTIuOTIxODc1IDI5OS4wOTM3NSBMIDYwLjgyMDMxMiAzMzAuOTE0MDYyIEwgNjAuOTQ1MzEyIDMzMC45MTQwNjIgTCA3NS43NSAyOTkuMDkzNzUgTCA4My40NzY1NjIgMjk5LjA5Mzc1IEwgNjMuMTE3MTg4IDM0Mi43NSBMIDUxLjQ2MDkzOCAzNDIuNzUgTCA0MC41MzkwNjIgMjk5LjA5Mzc1ICIKICAgICAgIGlkPSJwYXRoMTMiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9IiBzdHJva2U6bm9uZTtmaWxsLXJ1bGU6bm9uemVybztmaWxsOnJnYigyNS40OTEzMzMlLDMyLjM4Njc4JSwzNi45NDE1MjglKTtmaWxsLW9wYWNpdHk6MTsiCiAgICAgICBkPSJNIDkwLjc1MzkwNiAyOTkuMDkzNzUgTCAxMjAuNTg1OTM4IDI5OS4wOTM3NSBMIDExOS43NzM0MzggMzA2LjMzNTkzOCBMIDEwMS41OTc2NTYgMzA2LjMzNTkzOCBMIDEwMC40MDIzNDQgMzE2Ljk2NDg0NCBMIDExOC4zMzIwMzEgMzE2Ljk2NDg0NCBMIDExNy41OTc2NTYgMzIzLjQ4NDM3NSBMIDk5LjY3MTg3NSAzMjMuNDg0Mzc1IEwgOTguMzI0MjE5IDMzNS41IEwgMTE3Ljk0OTIxOSAzMzUuNSBMIDExNy4xMzY3MTkgMzQyLjc1IEwgODUuODU1NDY5IDM0Mi43NSBMIDkwLjc1MzkwNiAyOTkuMDkzNzUgIgogICAgICAgaWQ9InBhdGgxNSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iIHN0cm9rZTpub25lO2ZpbGwtcnVsZTpub256ZXJvO2ZpbGw6cmdiKDI1LjQ5MTMzMyUsMzIuMzg2NzglLDM2Ljk0MTUyOCUpO2ZpbGwtb3BhY2l0eToxOyIKICAgICAgIGQ9Ik0gMTMyLjcyMjY1NiAyOTkuMDkzNzUgTCAxNDIuNDQ1MzEyIDI5OS4wOTM3NSBMIDE1OC4wMzkwNjIgMzI1LjI5Njg3NSBMIDE1OC4xNjAxNTYgMzI1LjI5Njg3NSBMIDE2MS4xMDE1NjIgMjk5LjA5Mzc1IEwgMTY5Ljg1OTM3NSAyOTkuMDkzNzUgTCAxNjQuOTYwOTM4IDM0Mi43NSBMIDE1NS4yODkwNjIgMzQyLjc1IEwgMTM5LjY0MDYyNSAzMTYuNTQyOTY5IEwgMTM5LjUxNTYyNSAzMTYuNTQyOTY5IEwgMTM2LjU3NDIxOSAzNDIuNzUgTCAxMjcuODIwMzEyIDM0Mi43NSBMIDEzMi43MjI2NTYgMjk5LjA5Mzc1ICIKICAgICAgIGlkPSJwYXRoMTciIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9IiBzdHJva2U6bm9uZTtmaWxsLXJ1bGU6bm9uemVybztmaWxsOnJnYigyNS40OTEzMzMlLDMyLjM4Njc4JSwzNi45NDE1MjglKTtmaWxsLW9wYWNpdHk6MTsiCiAgICAgICBkPSJNIDIyMS44MjgxMjUgMjk5LjA5Mzc1IEwgMjMzLjQ4NDM3NSAyOTkuMDkzNzUgTCAyMzEuMTI4OTA2IDMyMC4wNDI5NjkgTCAyMzEuMjUzOTA2IDMyMC4wNDI5NjkgTCAyNDguOTQ1MzEyIDI5OS4wOTM3NSBMIDI1OC4wMDM5MDYgMjk5LjA5Mzc1IEwgMjQxLjg2MzI4MSAzMTguMDUwNzgxIEwgMjU2LjYwMTU2MiAzNDIuNzUgTCAyNDIuNjU2MjUgMzQyLjc1IEwgMjMxLjA1MDc4MSAzMjEuODU1NDY5IEwgMjMwLjkyOTY4OCAzMjEuODU1NDY5IEwgMjI4LjU4MjAzMSAzNDIuNzUgTCAyMTYuOTI1NzgxIDM0Mi43NSBMIDIyMS44MjgxMjUgMjk5LjA5Mzc1ICIKICAgICAgIGlkPSJwYXRoMTkiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9IiBzdHJva2U6bm9uZTtmaWxsLXJ1bGU6bm9uemVybztmaWxsOnJnYigyNS40OTEzMzMlLDMyLjM4Njc4JSwzNi45NDE1MjglKTtmaWxsLW9wYWNpdHk6MTsiCiAgICAgICBkPSJNIDI3NS40NDUzMTIgMzA2LjM5NDUzMSBMIDI2MS44ODI4MTIgMzA2LjM5NDUzMSBMIDI2Mi42OTkyMTkgMjk5LjA5Mzc1IEwgMzAwLjczODI4MSAyOTkuMDkzNzUgTCAyOTkuOTE0MDYyIDMwNi4zOTQ1MzEgTCAyODcuMTA1NDY5IDMwNi4zOTQ1MzEgTCAyODMuMDIzNDM4IDM0Mi43NSBMIDI3MS4zNjcxODggMzQyLjc1IEwgMjc1LjQ0NTMxMiAzMDYuMzk0NTMxICIKICAgICAgIGlkPSJwYXRoMjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9IiBzdHJva2U6bm9uZTtmaWxsLXJ1bGU6bm9uemVybztmaWxsOnJnYigyNS40OTEzMzMlLDMyLjM4Njc4JSwzNi45NDE1MjglKTtmaWxsLW9wYWNpdHk6MTsiCiAgICAgICBkPSJNIDU4Mi45NTMxMjUgMzM2LjI4OTA2MiBDIDU4Mi45NTMxMjUgMzM2LjI4OTA2MiA1OTAuMjg1MTU2IDMzNi4yNTM5MDYgNTk0LjMyODEyNSAzMzYuMjUzOTA2IEMgNTk3LjQxMDE1NiAzMzYuMjUzOTA2IDYwMS42NzE4NzUgMzM1LjQxNDA2MiA2MDIuMTA5Mzc1IDMzMS40ODQzNzUgQyA2MDIuOTA2MjUgMzI0LjQxNzk2OSA1ODMuNTQyOTY5IDMyMy42OTUzMTIgNTg1LjA4NTkzOCAzMDkuOTI1NzgxIEMgNTg2LjA3NDIxOSAzMDEuMTY3OTY5IDU5NC4zMTI1IDI5Ny43NjU2MjUgNjAxLjk4NDM3NSAyOTcuNzY1NjI1IEMgNjA2LjMzMjAzMSAyOTcuNzY1NjI1IDYxNS4yMTQ4NDQgMjk4LjMwMDc4MSA2MTUuMjE0ODQ0IDI5OC4zMDA3ODEgTCA2MTQuMjAzMTI1IDMwNS4wNTA3ODEgQyA2MTQuMjAzMTI1IDMwNS4wNTA3ODEgNjA2Ljc4OTA2MiAzMDQuOTA2MjUgNjAyLjk4MDQ2OSAzMDQuOTA2MjUgQyA2MDAuNjgzNTk0IDMwNC45MDYyNSA1OTcuMjA3MDMxIDMwNS44MTY0MDYgNTk2Ljg4NjcxOSAzMDguNjU2MjUgQyA1OTYuMTQ4NDM4IDMxNS4yMzQzNzUgNjE2LjIyMjY1NiAzMTYuMDg1OTM4IDYxNC42MjEwOTQgMzMwLjMzNTkzOCBDIDYxNC4xMjUgMzM0Ljc0NjA5NCA2MTAuODQ3NjU2IDM0My41MDM5MDYgNTk1LjI2OTUzMSAzNDMuNTAzOTA2IEMgNTg5LjY1MjM0NCAzNDMuNTAzOTA2IDU4MS45ODA0NjkgMzQzLjQyOTY4OCA1ODEuOTgwNDY5IDM0My40Mjk2ODggTCA1ODIuOTUzMTI1IDMzNi4yODkwNjIgIgogICAgICAgaWQ9InBhdGgyMyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iIHN0cm9rZTpub25lO2ZpbGwtcnVsZTpub256ZXJvO2ZpbGw6cmdiKDI1LjQ5MTMzMyUsMzIuMzg2NzglLDM2Ljk0MTUyOCUpO2ZpbGwtb3BhY2l0eToxOyIKICAgICAgIGQ9Ik0gMzI1LjY0MDYyNSAyOTkuMDkzNzUgTCAzMzUuMzU5Mzc1IDI5OS4wOTM3NSBMIDM1MC45NTcwMzEgMzI1LjI5Njg3NSBMIDM1MS4wNzgxMjUgMzI1LjI5Njg3NSBMIDM1NC4wMTU2MjUgMjk5LjA5Mzc1IEwgMzYyLjc3NzM0NCAyOTkuMDkzNzUgTCAzNTcuODc1IDM0Mi43NSBMIDM0OC4yMTA5MzggMzQyLjc1IEwgMzMyLjU1NDY4OCAzMTYuNTQyOTY5IEwgMzMyLjQzMzU5NCAzMTYuNTQyOTY5IEwgMzI5LjQ5NjA5NCAzNDIuNzUgTCAzMjAuNzM0Mzc1IDM0Mi43NSBMIDMyNS42NDA2MjUgMjk5LjA5Mzc1ICIKICAgICAgIGlkPSJwYXRoMjUiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9IiBzdHJva2U6bm9uZTtmaWxsLXJ1bGU6bm9uemVybztmaWxsOnJnYigyNS40OTEzMzMlLDMyLjM4Njc4JSwzNi45NDE1MjglKTtmaWxsLW9wYWNpdHk6MTsiCiAgICAgICBkPSJNIDM2NC4yODEyNSAzNDIuNzUgTCAzNzIuMDc4MTI1IDM0Mi43NSBMIDM3Ny42MDkzNzUgMzMxLjYzNjcxOSBMIDM5NC43MDMxMjUgMzMxLjYzNjcxOSBMIDM5Ny42Nzk2ODggMzQyLjc1IEwgNDA5LjM5NDUzMSAzNDIuNzUgTCAzOTcuNTYyNSAyOTkuMDkzNzUgTCAzODUuOTEwMTU2IDI5OS4wOTM3NSBaIE0gMzk0LjQzNzUgMjk1LjI2OTUzMSBMIDQwMS45NzI2NTYgMjk1LjI2OTUzMSBMIDQwMi44MjQyMTkgMjg3LjcyNjU2MiBMIDM5NS4yODUxNTYgMjg3LjcyNjU2MiBaIE0gMzgxLjc3MzQzOCAyOTUuMjY5NTMxIEwgMzg5LjMxNjQwNiAyOTUuMjY5NTMxIEwgMzkwLjE2MDE1NiAyODcuNzI2NTYyIEwgMzgyLjYxNzE4OCAyODcuNzI2NTYyIFogTSAzODAuOTc2NTYyIDMyNC43NDYwOTQgTCAzODguNjMyODEyIDMwOS4zMDA3ODEgTCAzOTIuODEyNSAzMjQuNzQ2MDk0IFogTSAzODAuOTc2NTYyIDMyNC43NDYwOTQgIgogICAgICAgaWQ9InBhdGgyNyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iIHN0cm9rZTpub25lO2ZpbGwtcnVsZTpub256ZXJvO2ZpbGw6cmdiKDI1LjQ5MTMzMyUsMzIuMzg2NzglLDM2Ljk0MTUyOCUpO2ZpbGwtb3BhY2l0eToxOyIKICAgICAgIGQ9Ik0gNDE1LjY4NzUgMzQyLjc1IEwgNDI2LjYxNzE4OCAzNDIuNzUgTCA0MjguNTc4MTI1IDMyNS4yOTY4NzUgTCA0MzIuNjgzNTk0IDMyNS4yOTY4NzUgTCA0NDIuMzA0Njg4IDM0Mi43NSBMIDQ1NC4yMTQ4NDQgMzQyLjc1IEwgNDQzLjE3MTg3NSAzMjMuODA0Njg4IEMgNDQ4LjEzNjcxOSAzMjEuNTc0MjE5IDQ1MS41MzUxNTYgMzE3LjU4NTkzOCA0NTIuMDMxMjUgMzEwLjAxNTYyNSBDIDQ1Mi41NTQ2ODggMzAyLjEwNTQ2OSA0NDYuNzkyOTY5IDI5OS4wOTM3NSA0NDEuMzU5Mzc1IDI5OS4wOTM3NSBMIDQyMC41ODU5MzggMjk5LjA5Mzc1IFogTSA0MzAuNzAzMTI1IDMwNi4zMzU5MzggTCA0MzQuMjY1NjI1IDMwNi4zMzU5MzggQyA0MzkuNDYwOTM4IDMwNi4zMzU5MzggNDQxLjQxNDA2MiAzMDguNzYxNzE5IDQ0MS4wNzQyMTkgMzExLjcxODc1IEMgNDQwLjcxNDg0NCAzMTQuOTE3OTY5IDQzOS4xOTE0MDYgMzE4Ljc3MzQzOCA0MzMuMTc1NzgxIDMxOC43NzM0MzggTCA0MjkuMzA4NTk0IDMxOC43NzM0MzggTCA0MzAuNzAzMTI1IDMwNi4zMzU5MzggIgogICAgICAgaWQ9InBhdGgyOSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iIHN0cm9rZTpub25lO2ZpbGwtcnVsZTpub256ZXJvO2ZpbGw6cmdiKDI1LjQ5MTMzMyUsMzIuMzg2NzglLDM2Ljk0MTUyOCUpO2ZpbGwtb3BhY2l0eToxOyIKICAgICAgIGQ9Ik0gNDY2LjgyNDIxOSAyOTkuMDkzNzUgTCA0NzguNDgwNDY5IDI5OS4wOTM3NSBMIDQ3My41NzgxMjUgMzQyLjc1IEwgNDYxLjkyNTc4MSAzNDIuNzUgTCA0NjYuODI0MjE5IDI5OS4wOTM3NSAiCiAgICAgICBpZD0icGF0aDMxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSIgc3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOm5vbnplcm87ZmlsbDpyZ2IoMjUuNDkxMzMzJSwzMi4zODY3OCUsMzYuOTQxNTI4JSk7ZmlsbC1vcGFjaXR5OjE7IgogICAgICAgZD0iTSA0OTEuNTExNzE5IDI5OS4wOTM3NSBMIDUwMS4yMzA0NjkgMjk5LjA5Mzc1IEwgNTE2LjgyODEyNSAzMjUuMjk2ODc1IEwgNTE2Ljk0OTIxOSAzMjUuMjk2ODc1IEwgNTE5Ljg4NjcxOSAyOTkuMDkzNzUgTCA1MjguNjQ0NTMxIDI5OS4wOTM3NSBMIDUyMy43NDIxODggMzQyLjc1IEwgNTE0LjA4MjAzMSAzNDIuNzUgTCA0OTguNDI1NzgxIDMxNi41NDI5NjkgTCA0OTguMzAwNzgxIDMxNi41NDI5NjkgTCA0OTUuMzU5Mzc1IDM0Mi43NSBMIDQ4Ni42MDU0NjkgMzQyLjc1IEwgNDkxLjUxMTcxOSAyOTkuMDkzNzUgIgogICAgICAgaWQ9InBhdGgzMyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iIHN0cm9rZTpub25lO2ZpbGwtcnVsZTpub256ZXJvO2ZpbGw6cmdiKDI1LjQ5MTMzMyUsMzIuMzg2NzglLDM2Ljk0MTUyOCUpO2ZpbGwtb3BhY2l0eToxOyIKICAgICAgIGQ9Ik0gNTcyLjY0ODQzOCAzNDMuNDI5Njg4IEMgNTcyLjY0ODQzOCAzNDMuNDI5Njg4IDU2Mi45ODQzNzUgMzQzLjczNDM3NSA1NTYuOTQ5MjE5IDM0My43MzQzNzUgQyA1NDIuNzU3ODEyIDM0My43MzQzNzUgNTM0LjIxNDg0NCAzMzUuNDQ5MjE5IDUzNS44NDM3NSAzMjAuOTUzMTI1IEMgNTM3LjQ2ODc1IDMwNi40NjQ4NDQgNTQ3LjkwMjM0NCAyOTcuODk4NDM4IDU2Mi4wOTM3NSAyOTcuODk4NDM4IEMgNTY3Ljg5MDYyNSAyOTcuODk4NDM4IDU3NS44MjgxMjUgMjk4LjUyNzM0NCA1NzUuODI4MTI1IDI5OC41MjczNDQgTCA1NzQuNzg1MTU2IDMwNS41MDc4MTIgQyA1NzQuNzg1MTU2IDMwNS41MDc4MTIgNTY4LjMzOTg0NCAzMDUuMjU3ODEyIDU2My44NzUgMzA1LjI1NzgxMiBDIDU1My4zMDg1OTQgMzA1LjI1NzgxMiA1NDkuMTM2NzE5IDMxMi44MDQ2ODggNTQ4LjI1MzkwNiAzMjAuNjQ4NDM4IEMgNTQ3LjE2MDE1NiAzMzAuNDMzNTk0IDU1MS41OTc2NTYgMzM2LjU5NzY1NiA1NjEuNzQyMTg4IDMzNi41OTc2NTYgTCA1NjMuMzU5Mzc1IDMyMi4yMTg3NSBMIDU3NS4wMTE3MTkgMzIyLjIxODc1IEwgNTcyLjY0ODQzOCAzNDMuNDI5Njg4ICIKICAgICAgIGlkPSJwYXRoMzUiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9IiBzdHJva2U6bm9uZTtmaWxsLXJ1bGU6bm9uemVybztmaWxsOnJnYigyNS40OTEzMzMlLDMyLjM4Njc4JSwzNi45NDE1MjglKTtmaWxsLW9wYWNpdHk6MTsiCiAgICAgICBkPSJNIDYyNy43NjU2MjUgMjk5LjA5Mzc1IEwgNjM5LjQyNTc4MSAyOTkuMDkzNzUgTCA2MzUuMzM5ODQ0IDMzNS41IEwgNjUxLjk1MzEyNSAzMzUuNSBMIDY1MS4xMzY3MTkgMzQyLjc1IEwgNjIyLjg3NSAzNDIuNzUgTCA2MjcuNzY1NjI1IDI5OS4wOTM3NSAiCiAgICAgICBpZD0icGF0aDM3IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSIgc3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOm5vbnplcm87ZmlsbDpyZ2IoMjUuNDkxMzMzJSwzMi4zODY3OCUsMzYuOTQxNTI4JSk7ZmlsbC1vcGFjaXR5OjE7IgogICAgICAgZD0iTSA2NjMuMzA4NTk0IDI5OS4wOTM3NSBMIDY3NC45Njg3NSAyOTkuMDkzNzUgTCA2NzAuMDY2NDA2IDM0Mi43NSBMIDY1OC40MDYyNSAzNDIuNzUgTCA2NjMuMzA4NTk0IDI5OS4wOTM3NSAiCiAgICAgICBpZD0icGF0aDM5IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSIgc3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOm5vbnplcm87ZmlsbDpyZ2IoMjUuNDkxMzMzJSwzMi4zODY3OCUsMzYuOTQxNTI4JSk7ZmlsbC1vcGFjaXR5OjE7IgogICAgICAgZD0iTSA2ODIuMDYyNSAyOTkuMDkzNzUgTCA2OTQuNDQxNDA2IDI5OS4wOTM3NSBMIDcwMi4zNDM3NSAzMzAuOTE0MDYyIEwgNzAyLjQ2NDg0NCAzMzAuOTE0MDYyIEwgNzE3LjI2OTUzMSAyOTkuMDkzNzUgTCA3MjUgMjk5LjA5Mzc1IEwgNzA0LjY0MDYyNSAzNDIuNzUgTCA2OTIuOTg0Mzc1IDM0Mi43NSBMIDY4Mi4wNjI1IDI5OS4wOTM3NSAiCiAgICAgICBpZD0icGF0aDQxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSIgc3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOm5vbnplcm87ZmlsbDpyZ2IoOTcuMzk2ODUxJSw4NS40Njc1MjklLDkuNTI3NTg4JSk7ZmlsbC1vcGFjaXR5OjE7IgogICAgICAgZD0iTSAxODQuMjU3ODEyIDE2Ny4zNDc2NTYgQyAxNTcuMzAwNzgxIDE2Ny4yNTc4MTIgMTI0LjMyODEyNSAxNzEuNTQ2ODc1IDEwMi45NTcwMzEgMTc2LjAxNTYyNSBDIDgxLjU4NTkzOCAxODAuNDg0Mzc1IDgyLjA5Mzc1IDE4NC4xNTYyNSAxMDMuODE2NDA2IDE4NC4yMTQ4NDQgQyAxMTIuMzg2NzE5IDE4NC4yMzQzNzUgMTYyLjMxMjUgMTg0LjMwNDY4OCAyMTkuNjEzMjgxIDE4NC4zNzg5MDYgQyAyMzguNzEwOTM4IDE4MS45ODQzNzUgMzAzLjA1ODU5NCAxNzQuMTkxNDA2IDM1Ny42NTYyNSAxNjcuNTk3NjU2IEMgMjkxLjExNzE4OCAxNjcuNTE1NjI1IDIwMC45MDYyNSAxNjcuNDAyMzQ0IDE4NC4yNTc4MTIgMTY3LjM0NzY1NiAiCiAgICAgICBpZD0icGF0aDQzIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSIgc3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOm5vbnplcm87ZmlsbDpyZ2IoOTguNTY4NzI2JSw4MC40NzYzNzklLDkuMTYxMzc3JSk7ZmlsbC1vcGFjaXR5OjE7IgogICAgICAgZD0iTSAzNTcuNjU2MjUgMTY3LjU5NzY1NiBDIDMwMy4wNTg1OTQgMTc0LjE5MTQwNiAyMzguNzEwOTM4IDE4MS45ODQzNzUgMjE5LjYxMzI4MSAxODQuMzc4OTA2IEMgMjE3LjI4NTE1NiAxODQuNjcxODc1IDIxNS42MjEwOTQgMTg0Ljg4MjgxMiAyMTQuNzM4MjgxIDE4NS4wMDM5MDYgQyAxODQuMzgyODEyIDE4OS4xMDkzNzUgMTU1LjM4MjgxMiAxOTYuNjc1NzgxIDEzNC45NDkyMTkgMjAzLjU1MDc4MSBDIDExNC4yNjk1MzEgMjEwLjUxNTYyNSAxMTUuMjAzMTI1IDIxNC4yMzgyODEgMTM2LjkyNTc4MSAyMTEuNTY2NDA2IEMgMTQ1LjU4MjAzMSAyMTAuNSAxOTIuNDI5Njg4IDIwNC44MTI1IDI0NS42NTIzNDQgMTk4LjM1NTQ2OSBDIDI1Ny40NDE0MDYgMTk1LjM1NTQ2OSAzMjUuMzE2NDA2IDE3OC41MDc4MTIgMzgwLjM0Mzc1IDE2NC44NTkzNzUgQyAzNzMuMDg5ODQ0IDE2NS43MzQzNzUgMzY1LjQ3MjY1NiAxNjYuNjUyMzQ0IDM1Ny42NTYyNSAxNjcuNTk3NjU2ICIKICAgICAgIGlkPSJwYXRoNDUiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9IiBzdHJva2U6bm9uZTtmaWxsLXJ1bGU6bm9uemVybztmaWxsOnJnYig5OC4wMTMzMDYlLDczLjU1MTk0MSUsOC43ODQ0ODUlKTtmaWxsLW9wYWNpdHk6MTsiCiAgICAgICBkPSJNIDM4MC4zNDM3NSAxNjQuODU5Mzc1IEMgMzI1LjMxNjQwNiAxNzguNTA3ODEyIDI1Ny40NDE0MDYgMTk1LjM1NTQ2OSAyNDUuNjUyMzQ0IDE5OC4zNTU0NjkgQyAyNDUuNTgyMDMxIDE5OC4zNzEwOTQgMjQ1LjUgMTk4LjM5MDYyNSAyNDUuNDM3NSAxOTguNDEwMTU2IEMgMjI2LjE3MTg3NSAyMDMuMzE2NDA2IDE5My43OTY4NzUgMjE0LjU5NzY1NiAxNzAuNjA5Mzc1IDIyNi4wODU5MzggQyAxNTEuNjEzMjgxIDIzNS41IDE1Mi45MTc5NjkgMjM4LjkzMzU5NCAxNzMuNjg3NSAyMzMuODA4NTk0IEMgMTgyLjQyNTc4MSAyMzEuNjQ4NDM4IDIyOC43NSAyMjAuMTQwNjI1IDI3OS40OTIxODggMjA3LjUzMTI1IEMgMjgwLjM4NjcxOSAyMDcuMTcxODc1IDI4MS4yODkwNjIgMjA2LjgwNDY4OCAyODIuMTY3OTY5IDIwNi40NjA5MzggQyAyOTUuODk0NTMxIDIwMS4xMTcxODggMzU5Ljk0MTQwNiAxNzYuNTUwNzgxIDQwOC4zMzk4NDQgMTU3LjkxNDA2MiBDIDM5OS42OTE0MDYgMTYwLjA1ODU5NCAzOTAuMjIyNjU2IDE2Mi40MDYyNSAzODAuMzQzNzUgMTY0Ljg1OTM3NSAiCiAgICAgICBpZD0icGF0aDQ3IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSIgc3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOm5vbnplcm87ZmlsbDpyZ2IoOTcuNzkwNTI3JSw2OC43NDA4NDUlLDkuMzM5OTA1JSk7ZmlsbC1vcGFjaXR5OjE7IgogICAgICAgZD0iTSA0MDguMzM5ODQ0IDE1Ny45MTQwNjIgQyAzNTkuOTQxNDA2IDE3Ni41NTA3ODEgMjk1Ljg5NDUzMSAyMDEuMTE3MTg4IDI4Mi4xNjc5NjkgMjA2LjQ2MDkzOCBDIDI4MS4yODkwNjIgMjA2LjgwNDY4OCAyODAuMzg2NzE5IDIwNy4xNzE4NzUgMjc5LjQ5MjE4OCAyMDcuNTMxMjUgQyAyNTcuNjcxODc1IDIxNi4zMzU5MzggMjMxLjkyNTc4MSAyMzAuMzc4OTA2IDIxNS4wODU5MzggMjQxLjc2NTYyNSBDIDE5OC4zNzg5MDYgMjUzLjA2MjUgMjAwLjIwMzEyNSAyNTYuMzY3MTg4IDIxOS4xODM1OTQgMjQ5LjA1NDY4OCBDIDIyOC4wNDY4NzUgMjQ1LjY0MDYyNSAyNzQuODUxNTYyIDIyNy42MzI4MTIgMzIyLjIzMDQ2OSAyMDkuNDAyMzQ0IEMgMzIzLjY5MTQwNiAyMDguNTcwMzEyIDMyNS4xMzY3MTkgMjA3Ljc2OTUzMSAzMjYuNTQyOTY5IDIwNy4wMTk1MzEgQyAzNDEuMDAzOTA2IDE5OS4zMjAzMTIgNDA0LjE5MTQwNiAxNjUuMzc4OTA2IDQ0Mi44MDQ2ODggMTQ0LjYyODkwNiBDIDQzMy4zMjAzMTIgMTQ4LjI5Njg3NSA0MjEuMzk4NDM4IDE1Mi44OTA2MjUgNDA4LjMzOTg0NCAxNTcuOTE0MDYyICIKICAgICAgIGlkPSJwYXRoNDkiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9IiBzdHJva2U6bm9uZTtmaWxsLXJ1bGU6bm9uemVybztmaWxsOnJnYig5Ny4yNzYzMDYlLDYyLjY3NzAwMiUsOS4wMzQ3MjklKTtmaWxsLW9wYWNpdHk6MTsiCiAgICAgICBkPSJNIDQ0Mi44MDQ2ODggMTQ0LjYyODkwNiBDIDQwNC4xOTE0MDYgMTY1LjM3ODkwNiAzNDEuMDAzOTA2IDE5OS4zMjAzMTIgMzI2LjU0Mjk2OSAyMDcuMDE5NTMxIEMgMzI1LjEzNjcxOSAyMDcuNzY5NTMxIDMyMy42OTE0MDYgMjA4LjU3MDMxMiAzMjIuMjMwNDY5IDIwOS40MDIzNDQgQyAzMDMuNjkxNDA2IDIxOS45MzM1OTQgMjgxLjI3NzM0NCAyMzYuNTkzNzUgMjY4LjExMzI4MSAyNDguNTE5NTMxIEMgMjUzLjkxNDA2MiAyNjEuMzkwNjI1IDI1Ni4xNzE4NzUgMjY0LjI4OTA2MiAyNzMuMTY3OTY5IDI1NS4yNzczNDQgQyAyODEuNjcxODc1IDI1MC43Njk1MzEgMzE5LjMzMjAzMSAyMzAuNTUwNzgxIDM1NC44NDM3NSAyMTEuNDY4NzUgQyAzNTguNSAyMDguNDI1NzgxIDM2Mi4wMTU2MjUgMjA1LjY3MTg3NSAzNjUuMTkxNDA2IDIwMy40MTc5NjkgQyAzNzUuNzYxNzE5IDE5NS45Mjk2ODggNDMxLjI2OTUzMSAxNTYuMjczNDM4IDQ2Mi4wMzkwNjIgMTM0LjI4NTE1NiBDIDQ1Ni45MjU3ODEgMTM3LjAzNTE1NiA0NTAuMzI4MTI1IDE0MC41ODIwMzEgNDQyLjgwNDY4OCAxNDQuNjI4OTA2ICIKICAgICAgIGlkPSJwYXRoNTEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9IiBzdHJva2U6bm9uZTtmaWxsLXJ1bGU6bm9uemVybztmaWxsOnJnYig5Ni44NjU4NDUlLDU3Ljc1Mjk5MSUsOS4xMTg2NTIlKTtmaWxsLW9wYWNpdHk6MTsiCiAgICAgICBkPSJNIDQ2Mi4wMzkwNjIgMTM0LjI4NTE1NiBDIDQzMS4yNjk1MzEgMTU2LjI3MzQzOCAzNzUuNzYxNzE5IDE5NS45Mjk2ODggMzY1LjE5MTQwNiAyMDMuNDE3OTY5IEMgMzYyLjAxNTYyNSAyMDUuNjcxODc1IDM1OC41IDIwOC40MjU3ODEgMzU0Ljg0Mzc1IDIxMS40Njg3NSBDIDM0MS40OTIxODggMjIyLjU3ODEyNSAzMjYuMTQ0NTMxIDIzNy43NzczNDQgMzE3LjQ2ODc1IDI0OC41NTA3ODEgQyAzMDYuNDE0MDYyIDI2Mi4yNjU2MjUgMzA4Ljk1NzAzMSAyNjQuOTMzNTk0IDMyMy4zNzEwOTQgMjU0LjY2NDA2MiBDIDMzNi40MTAxNTYgMjQ1LjM3NSAzODQuOTQ1MzEyIDIxMC43MTQ4NDQgMzk0LjEwMTU2MiAyMDQuMTc1NzgxIEMgMzk4Ljc2OTUzMSAxOTguNTExNzE5IDQwMy43MjY1NjIgMTkzLjAzNTE1NiA0MDguNTc4MTI1IDE4OC41MTE3MTkgQyA0MTQuMjE0ODQ0IDE4My4yNTc4MTIgNDQ2LjE1NjI1IDE1My41MjM0MzggNDgyLjYzNjcxOSAxMTkuNTcwMzEyIEMgNDgyLjU4MjAzMSAxMTkuNjA1NDY5IDQ3NC4yNTc4MTIgMTI1LjU1ODU5NCA0NjIuMDM5MDYyIDEzNC4yODUxNTYgIgogICAgICAgaWQ9InBhdGg1MyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iIHN0cm9rZTpub25lO2ZpbGwtcnVsZTpub256ZXJvO2ZpbGw6cmdiKDc2LjU2ODYwNCUsMTIuNDgxNjg5JSwxNS44MDIwMDIlKTtmaWxsLW9wYWNpdHk6MTsiCiAgICAgICBkPSJNIDQzOC42OTE0MDYgMTg0LjY2NDA2MiBDIDQ0MS4yMTA5MzggMTg0LjY3MTg3NSA0NzAuMDc4MTI1IDE4NC43MjY1NjIgNDgyLjgzOTg0NCAxODQuNzI2NTYyIEMgNTA0LjUzOTA2MiAxODQuNzI2NTYyIDUzNi4zMTY0MDYgMTgxLjUgNTYxLjM5NDUzMSAxNzYuNjMyODEyIEMgNTg2LjQ3NjU2MiAxNzEuNzY1NjI1IDU4NS4wNzAzMTIgMTY3Ljg3ODkwNiA1NjMuMjk2ODc1IDE2Ny44NjcxODggQyA1NDYuOTkyMTg4IDE2Ny44NTkzNzUgNDYyLjIzODI4MSAxNjcuNzE4NzUgNDU2Ljk1MzEyNSAxNjcuNzA3MDMxIEMgNDU0Ljg2MzI4MSAxNjkuNjQ0NTMxIDQ1Mi43ODkwNjIgMTcxLjU3NDIxOSA0NTAuNzMwNDY5IDE3My40ODgyODEgQyA0NDYuNjM2NzE5IDE3Ny4yODUxNTYgNDQyLjYxNzE4OCAxODEuMDE5NTMxIDQzOC42OTE0MDYgMTg0LjY2NDA2MiAiCiAgICAgICBpZD0icGF0aDU1IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSIgc3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOm5vbnplcm87ZmlsbDpyZ2IoODUuODcwMzYxJSwxMS45Njg5OTQlLDE1LjQ1MjU3NiUpO2ZpbGwtb3BhY2l0eToxOyIKICAgICAgIGQ9Ik0gNDUwLjczMDQ2OSAxNzMuNDg4MjgxIEMgNDUzLjkxNDA2MiAxNzMuMTIxMDk0IDQ5MC4wNzQyMTkgMTY4Ljk1MzEyNSA1MTQuNzczNDM4IDE2NS42OTkyMTkgQyA1NDAuNjMyODEyIDE2Mi4zMDA3ODEgNTcwLjA3NDIxOSAxNTUuMjgxMjUgNTkxLjkyMTg3NSAxNDguMDgyMDMxIEMgNjE2LjE5NTMxMiAxNDAuMDc4MTI1IDYxNC4yNzM0MzggMTM2LjUxMTcxOSA1OTIuNTkzNzUgMTM5LjE0MDYyNSBDIDU3MS42MjEwOTQgMTQxLjY4MzU5NCA0NzguMDE5NTMxIDE1My4wNTA3ODEgNDcxLjkzNzUgMTUzLjc4OTA2MiBDIDQ2OS4wMzEyNSAxNTYuNDg4MjgxIDQ2Ni4xMjEwOTQgMTU5LjE5MTQwNiA0NjMuMjM0Mzc1IDE2MS44NzEwOTQgQyA0NTkuMDE5NTMxIDE2NS43ODkwNjIgNDU0LjgzOTg0NCAxNjkuNjY3OTY5IDQ1MC43MzA0NjkgMTczLjQ4ODI4MSAiCiAgICAgICBpZD0icGF0aDU3IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSIgc3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOm5vbnplcm87ZmlsbDpyZ2IoOTIuNjgxODg1JSwxMS4wNDU4MzclLDE1LjAwODU0NSUpO2ZpbGwtb3BhY2l0eToxOyIKICAgICAgIGQ9Ik0gNjA1LjY2MDE1NiAxMDguOTE0MDYyIEMgNTg1LjY3NTc4MSAxMTMuODU5Mzc1IDQ5NS43MzQzNzUgMTM2LjIyNjU2MiA0ODkuMDM5MDYyIDEzNy44OTA2MjUgQyA0ODguMDkzNzUgMTM4Ljc2OTUzMSA0ODcuMTYwMTU2IDEzOS42NDA2MjUgNDg2LjIxMDkzOCAxNDAuNTIzNDM4IEMgNDgyLjU3ODEyNSAxNDMuOTAyMzQ0IDQ3OC45MjU3ODEgMTQ3LjI5Mjk2OSA0NzUuMjgxMjUgMTUwLjY4MzU5NCBDIDQ3MS4yNSAxNTQuNDI1NzgxIDQ2Ny4yMjY1NjIgMTU4LjE2MDE1NiA0NjMuMjM0Mzc1IDE2MS44NzEwOTQgQyA0NjcuNTUwNzgxIDE2MC44MDQ2ODggNTE0LjE2MDE1NiAxNDkuMjY1NjI1IDUzMy45MTc5NjkgMTQ0LjMwODU5NCBDIDU1NC42NDA2MjUgMTM5LjExMzI4MSA1ODMuNjc5Njg4IDEyOC42NjQwNjIgNjA2LjI4OTA2MiAxMTcuODM1OTM4IEMgNjI4Ljg5ODQzOCAxMDcuMDA3ODEyIDYyNi40MjE4NzUgMTAzLjc3NzM0NCA2MDUuNjYwMTU2IDEwOC45MTQwNjIgIgogICAgICAgaWQ9InBhdGg1OSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iIHN0cm9rZTpub25lO2ZpbGwtcnVsZTpub256ZXJvO2ZpbGw6cmdiKDkzLjg4NDI3NyUsMjMuNjE3NTU0JSwxMi43NDU2NjclKTtmaWxsLW9wYWNpdHk6MTsiCiAgICAgICBkPSJNIDYxMy43NDIxODggNzguNzUgQyA1OTUuMTEzMjgxIDg1Ljg3NSA1MTUuMjYxNzE5IDExNi42NDA2MjUgNTA5LjUwMzkwNiAxMTguODU5Mzc1IEMgNTA1LjA4MjAzMSAxMjIuOTcyNjU2IDUwMC41NzQyMTkgMTI3LjE2Nzk2OSA0OTYgMTMxLjQyMTg3NSBDIDQ5Mi43NjE3MTkgMTM0LjQzMzU5NCA0ODkuNDkyMTg4IDEzNy40NzI2NTYgNDg2LjIxMDkzOCAxNDAuNTIzNDM4IEMgNDgyLjU3ODEyNSAxNDMuOTAyMzQ0IDQ3OC45MjU3ODEgMTQ3LjI5Mjk2OSA0NzUuMjgxMjUgMTUwLjY4MzU5NCBDIDQ3OS40NTcwMzEgMTQ5LjA3ODEyNSA1MzMuNzMwNDY5IDEyOC4yNTc4MTIgNTQ5Ljc5Mjk2OSAxMjIuMDExNzE5IEMgNTY2LjUwNzgxMiAxMTUuNTE1NjI1IDU5My4xMDE1NjIgMTAyLjM5MDYyNSA2MTUuNzIyNjU2IDg3LjYyODkwNiBDIDYzNS43NDYwOTQgNzQuNTU0Njg4IDYzMy4wNzAzMTIgNzEuMzU1NDY5IDYxMy43NDIxODggNzguNzUgIgogICAgICAgaWQ9InBhdGg2MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iIHN0cm9rZTpub25lO2ZpbGwtcnVsZTpub256ZXJvO2ZpbGw6cmdiKDk0LjA3ODA2NCUsMzIuMjg3NTk4JSwxMC42NTA2MzUlKTtmaWxsLW9wYWNpdHk6MTsiCiAgICAgICBkPSJNIDYxNy41NTg1OTQgNTAuOTQ5MjE5IEwgNTM0LjYwNTQ2OSA5NS40ODgyODEgQyA1MjIuOTg4MjgxIDEwNi4zMTY0MDYgNTA5Ljc0MjE4OCAxMTguNjQwNjI1IDQ5NiAxMzEuNDIxODc1IEMgNDkyLjc2MTcxOSAxMzQuNDMzNTk0IDQ4OS40OTIxODggMTM3LjQ3MjY1NiA0ODYuMjEwOTM4IDE0MC41MjM0MzggTCA1NjUuNjQ0NTMxIDk3Ljg5MDYyNSBDIDU4Mi4xMjUgODkuMDQyOTY5IDYwNi44OTg0MzggNzEuNTkzNzUgNjIwLjY5OTIxOSA1OS4xMjEwOTQgTCA2MjIuNDcyNjU2IDU3LjUyMzQzOCBDIDYzNi4yNjk1MzEgNDUuMDUwNzgxIDYzNC4wNDY4NzUgNDIuMDk3NjU2IDYxNy41NTg1OTQgNTAuOTQ5MjE5ICIKICAgICAgIGlkPSJwYXRoNjMiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9IiBzdHJva2U6bm9uZTtmaWxsLXJ1bGU6bm9uemVybztmaWxsOnJnYig5NS40NzExOTElLDQyLjA2Njk1NiUsOS4zNzgwNTIlKTtmaWxsLW9wYWNpdHk6MTsiCiAgICAgICBkPSJNIDYxNC40NDE0MDYgMjUuNDY4NzUgQyA2MDEuNTc0MjE5IDM0LjY5MTQwNiA1ODguOTkyMTg4IDQzLjY0MDYyNSA1ODYuNTU0Njg4IDQ1LjM3MTA5NCBDIDU4My4yNjk1MzEgNDkuMDc4MTI1IDU3OS42MTcxODggNTIuOTkyMTg4IDU3NS40OTIxODggNTcuMTQ0NTMxIEMgNTcxLjc5Mjk2OSA2MC44NTkzNzUgNTM2LjAwNzgxMiA5NC4yMTg3NSA0OTYgMTMxLjQyMTg3NSBDIDUwNS4xODM1OTQgMTI0Ljg5MDYyNSA1NjAuMTY0MDYyIDg1Ljc5Mjk2OSA1NzIuNjI4OTA2IDc2LjcxMDkzOCBDIDU4OS4xMDE1NjIgNjQuNzAzMTI1IDYwNS42NDg0MzggNDkuMDUwNzgxIDYxOC45Mjk2ODggMzMuMzI4MTI1IEMgNjMyLjE2Nzk2OSAxNy42NjAxNTYgNjI4Ljc2OTUzMSAxNS4xOTUzMTIgNjE0LjQ0MTQwNiAyNS40Njg3NSAiCiAgICAgICBpZD0icGF0aDY1IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSIgc3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOm5vbnplcm87ZmlsbDpyZ2IoOTYuMzI3MjA5JSw1My42MTE3NTUlLDkuMDUzMDQlKTtmaWxsLW9wYWNpdHk6MTsiCiAgICAgICBkPSJNIDYwNC4xMjg5MDYgNi40OTIxODggQyA2MDQuMTI4OTA2IDYuNDkyMTg4IDUzOC4xMjUgNjcuOTIxODc1IDQ4Mi42MzY3MTkgMTE5LjU3MDMxMiBDIDQ0Ni4xNTYyNSAxNTMuNTIzNDM4IDQxNC4yMTQ4NDQgMTgzLjI1NzgxMiA0MDguNTc4MTI1IDE4OC41MTE3MTkgQyA0MDMuNzI2NTYyIDE5My4wMzUxNTYgMzk4Ljc2OTUzMSAxOTguNTExNzE5IDM5NC4xMDE1NjIgMjA0LjE3NTc4MSBDIDM4NS4wOTM3NSAyMTUuMTAxNTYyIDM3Ny4xNzU3ODEgMjI2Ljc1IDM3My4yODUxNTYgMjMzLjc1MzkwNiBDIDM2NS43ODkwNjIgMjQ3LjI1IDM2OC43MTg3NSAyNDkuNTI3MzQ0IDM3OS45NDUzMTIgMjM5LjE1NjI1IEMgMzkxLjE3NTc4MSAyMjguNzg1MTU2IDU2Ny4wMzkwNjIgNjUuNjQwNjI1IDU3NS40OTIxODggNTcuMTQ0NTMxIEMgNTk1LjY3NTc4MSAzNi44NDc2NTYgNjA1LjA4MjAzMSAyMS44NTkzNzUgNjEwLjc2NTYyNSAxMS44OTA2MjUgQyA2MTguMzk4NDM4IC0xLjQ5MjE4OCA2MTUuMzc4OTA2IC0zLjk5NjA5NCA2MDQuMTI4OTA2IDYuNDkyMTg4ICIKICAgICAgIGlkPSJwYXRoNjciIC8+CiAgPC9nPgo8L3N2Zz4K\";\n logoImage.isMeasured = false;\n logoImage.padding(0, 0, 0, 0);\n logoImage.horizontalCenter = \"right\";\n logoImage.verticalCenter = \"top\";\n logoImage.x = core_1.percent(100);\n logoImage.width = 75;\n logoImage.dy = -15;\n if (!this.props.showSNLogo) {\n logoImage.hidden = true;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n container.exporting.events.on(\"exportstarted\", function (_) {\n logoImage.show(0);\n // invalidate() not needed?\n // logoImage.parent?.invalidate();\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n container.exporting.events.on(\"exportfinished\", function (_) {\n if (!_this.props.showSNLogo) {\n logoImage.hide(0);\n }\n });\n };\n AbstractXYChartFactory.prototype.addFullScreenButton = function (container) {\n var fullScreenButtonHandler = this.props.fullScreenButtonHandler;\n if (!fullScreenButtonHandler)\n return;\n var fullScreenButton = container.createChild(core_1.Button);\n if (fullScreenButton.label) {\n // styling\n fullScreenButton.label.text = \"STÖRRE\";\n fullScreenButton.label.fontWeight = \"600\";\n fullScreenButton.label.fontFamily = \"Montserrat\";\n fullScreenButton.label.fontSize = \"15px\";\n fullScreenButton.label.fill = chartTheme_1.PrimaryColor;\n fullScreenButton.background.fill = chartTheme_1.BackgroundColor;\n fullScreenButton.background.stroke = chartTheme_1.BackgroundColor;\n // icon\n fullScreenButton.icon = new core_1.Sprite();\n fullScreenButton.icon.fill = chartTheme_1.PrimaryOrangeColor;\n // FontAwesome \"expand-alt\", https://fontawesome.com/icons/expand-alt?style=solid\n fullScreenButton.icon.path = \"M6.99107143,5.70535714 C7.1875,5.90178571 7.38392857,5.90178571 7.58035714,5.70535714 L7.58035714,5.70535714 L10.0714286,3.21428571 L10.9017857,4.09821429 C11.0982143,4.29464286 11.3303571,4.33928571 11.5982143,4.23214286 C11.8660714,4.125 12,3.92857143 12,3.64285714 L12,3.64285714 L12,0.642857143 C12,0.517857143 11.9732143,0.40625 11.9196429,0.308035714 C11.8660714,0.209821429 11.7901786,0.133928571 11.6919643,0.0803571429 C11.59375,0.0267857143 11.4821429,0 11.3571429,0 L11.3571429,0 L8.35714286,0 C8.07142857,0 7.875,0.133928571 7.76785714,0.401785714 C7.66071429,0.669642857 7.70535714,0.901785714 7.90178571,1.09821429 L7.90178571,1.09821429 L8.78571429,1.92857143 L6.29464286,4.41964286 C6.09821429,4.61607143 6.09821429,4.8125 6.29464286,5.00892857 L6.29464286,5.00892857 L6.99107143,5.70535714 Z M3.64285714,12 C3.92857143,12 4.125,11.8660714 4.23214286,11.5982143 C4.33928571,11.3303571 4.29464286,11.0982143 4.09821429,10.9017857 L4.09821429,10.9017857 L3.21428571,10.0714286 L5.70535714,7.58035714 C5.90178571,7.38392857 5.90178571,7.1875 5.70535714,6.99107143 L5.70535714,6.99107143 L5.00892857,6.29464286 C4.8125,6.09821429 4.61607143,6.09821429 4.41964286,6.29464286 L4.41964286,6.29464286 L1.92857143,8.78571429 L1.09821429,7.90178571 C0.901785714,7.70535714 0.669642857,7.66071429 0.401785714,7.76785714 C0.133928571,7.875 0,8.07142857 0,8.35714286 L0,8.35714286 L0,11.3571429 C0,11.5357143 0.0625,11.6875 0.1875,11.8125 C0.3125,11.9375 0.464285714,12 0.642857143,12 L0.642857143,12 L3.64285714,12 Z\";\n fullScreenButton.icon.paddingTop = 2.5;\n fullScreenButton.icon.paddingLeft = 13;\n fullScreenButton.iconPosition = \"right\";\n // positioning\n fullScreenButton.isMeasured = false;\n fullScreenButton.padding(0, 0, 0, 0);\n fullScreenButton.horizontalCenter = \"right\";\n fullScreenButton.verticalCenter = \"top\";\n fullScreenButton.x = core_1.percent(100);\n // interactivity\n fullScreenButton.cursorOverStyle = core_1.MouseCursorStyle.pointer;\n fullScreenButton.background.states.removeKey(\"hover\");\n fullScreenButton.events.on(\"hit\", function () { return fullScreenButtonHandler(); });\n // don't show in exported formats\n fullScreenButton.exportable = false;\n }\n };\n AbstractXYChartFactory.prototype.setChartTitle = function (chart) {\n var titles = [];\n // subtitle/description as a subtitle below the title\n // if (this.props.subtitle) {\n // const title = chart.titles.create();\n // title.wrap = true;\n // title.width = percent(98);\n // title.text = this.props.subtitle;\n // AbstractXYChartFactory.applySubTitleSettings(title);\n // titles.push(title);\n // }\n if (this.props.title) {\n var title = chart.titles.create();\n title.text = this.props.title;\n AbstractXYChartFactory.applyPrimaryTitleSettings(title);\n titles.push(title);\n }\n // subtitle/description as a caption below\n if (this.props.subtitle) {\n var title = chart.chartContainer.createChild(core_1.Label);\n title.marginTop = 20;\n title.marginLeft = 23;\n title.align = \"center\";\n title.width = core_1.percent(97);\n title.wrap = true;\n title.text = this.props.subtitle;\n AbstractXYChartFactory.applySubTitleSettings(title);\n titles.push(title);\n }\n if (this.props.scaleDescription) {\n var scaleDescription = chart.chartContainer.createChild(core_1.Label);\n scaleDescription.marginLeft = 22;\n scaleDescription.align = \"center\";\n scaleDescription.width = core_1.percent(97);\n scaleDescription.wrap = true;\n scaleDescription.text = \"[bold]\" + this.props.scaleDescription + \"[/]\";\n AbstractXYChartFactory.applySubTitleSettings(scaleDescription);\n titles.push(scaleDescription);\n }\n if (this.props.topTitle) {\n var title = chart.titles.create();\n title.text = this.props.topTitle.toUpperCase();\n AbstractXYChartFactory.applySubTitleSettings(title);\n titles.push(title);\n }\n if (window.printLayout) {\n // Version 4.9.19: Work around for super weird issued of truncated titles when using Puppeteer.\n chart.events.on(\"ready\", function (ev) {\n ev.target.titles.each(function (title) {\n title.hardInvalidate();\n });\n });\n }\n return titles;\n };\n // meant to be overridden\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n AbstractXYChartFactory.prototype.configAxes = function (_categoryAxis, _valueAxis) {\n if (typeof this.props.valueAxisTitle === 'string') {\n _valueAxis.title.text = this.props.valueAxisTitle;\n }\n };\n AbstractXYChartFactory.prototype.getCategoryAxis = function (chart) {\n return this.reverseXY() ? chart.yAxes : chart.xAxes;\n };\n AbstractXYChartFactory.prototype.getValueAxis = function (chart) {\n return this.reverseXY() ? chart.xAxes : chart.yAxes;\n };\n AbstractXYChartFactory.prototype.getSeriesValueName = function (series) {\n return this.reverseXY() ? series.dataFields.valueX : series.dataFields.valueY;\n };\n AbstractXYChartFactory.prototype.getSeriesCategoryName = function (series) {\n return this.reverseXY() ? series.dataFields.categoryY : series.dataFields.categoryX;\n };\n AbstractXYChartFactory.prototype.reverseXY = function () {\n return false;\n };\n // meant to be overridden\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n AbstractXYChartFactory.prototype.addSeriesModifications = function (_series) { };\n AbstractXYChartFactory.prototype.createChartSeries = function (chart) {\n var _this = this;\n _.forEach(this.props.seriesAttributes, function (seriesAttributes) { return _this.createSeries(chart, seriesAttributes, _this.defaultChartType()); });\n };\n AbstractXYChartFactory.prototype.getSeriesValueXYName = function () {\n return \"value\" + (this.reverseXY() ? 'X' : 'Y');\n };\n AbstractXYChartFactory.prototype.createSeries = function (chart, seriesAttribute, SeriesClass) {\n var seriesName = seriesAttribute.seriesName;\n var series = chart.series.push(new SeriesClass());\n series.name = seriesName;\n if (this.reverseXY()) {\n series.dataFields.categoryY = this.props.category;\n series.dataFields.valueX = seriesName;\n }\n else {\n series.dataFields.categoryX = this.props.category;\n series.dataFields.valueY = seriesName;\n }\n series.numberFormatter = this.props.seriesIsIntegerData ? chartTheme_1.numberFormatter0Decimals : chartTheme_1.numberFormatter2Decimals;\n series.tooltipText = \"{\" + this.getSeriesValueXYName() + \"}\";\n this.addSeriesBullets(series);\n this.addSeriesModifications(series);\n return series;\n };\n AbstractXYChartFactory.applyPrimaryTitleSettings = function (title) {\n title.fontWeight = \"600\";\n title.fontFamily = \"Montserrat\";\n title.fontSize = \"20px\";\n title.fill = chartTheme_1.PrimaryTextColor;\n title.align = \"left\"; // need to be set after the text, or it will be reset\n title.marginRight = 15;\n title.paddingBottom = 8;\n title.wrap = true;\n };\n AbstractXYChartFactory.applySubTitleSettings = function (subtitle) {\n subtitle.fontFamily = \"Source Sans Pro\";\n subtitle.fontSize = \"16px\";\n subtitle.fill = chartTheme_1.PrimaryColor;\n subtitle.align = \"left\"; // need to be set after the text, or it will be reset\n subtitle.paddingBottom = 8;\n // Need to accommodate the \"STÖRRE\" button\n subtitle.maxWidth = 515;\n subtitle.wrap = true;\n };\n return AbstractXYChartFactory;\n}());\nexports.AbstractXYChartFactory = AbstractXYChartFactory;\n","\"use strict\";\n// export interface Function {\n// mname: string;\n// }\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.withMName = void 0;\n/**\n * Sets the property mname to the method name of the method being decorated.\n *\n * Poor mans workaround for Function.name being empty for method names when targeting ES5. Some more info:\n * https://github.com/microsoft/TypeScript/issues/5611\n * */\n// Need to have any here...\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction withMName(_, name, desc) {\n desc.value.mname = name;\n}\nexports.withMName = withMName;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setReactModalAppElement = void 0;\nvar react_modal_1 = __importDefault(require(\"react-modal\"));\nfunction setReactModalAppElement() {\n try {\n react_modal_1.default.setAppElement(\"#footer-wrapper\");\n }\n catch (e) {\n console.warn(e);\n console.warn(\"Screen readers will suffer.\");\n }\n}\nexports.setReactModalAppElement = setReactModalAppElement;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Factors = exports.ChartDataTransformerRules = exports.gradingScaleTypeDescription = void 0;\nvar chartData_1 = require(\"../react/models/external/chartData\");\n// generate factors.yml: `bundle exec rails assets:generate_yaml`\n// xscales for 'Konkurrens...' and 'Brottslighet/otrygghet'.\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nvar xScalesGradingGoodnessLevelOrderHighLow = [\n 'I mycket hög utsträckning',\n 'I ganska hög utsträckning',\n 'I varken hög eller låg utsträckning',\n 'I ganska låg utsträckning',\n 'I mycket låg utsträckning',\n 'Inte alls',\n 'Vet ej'\n];\nvar xScalesGradingGoodnessLevelOrderLowHigh = [\n 'Inte alls',\n 'I mycket låg utsträckning',\n 'I ganska låg utsträckning',\n 'I varken hög eller låg utsträckning',\n 'I ganska hög utsträckning',\n 'I mycket hög utsträckning',\n 'Vet ej'\n];\nvar SURVEY_YEAR_LATEST = 2024;\nvar defaultFactorChartingArray = [\n {\n label: 'Företagare',\n chartDataTransformerRule: 'EntrepreneurRespondents',\n chart: {\n xscales: ['']\n }\n },\n {\n label: 'Företagare och politiker',\n chartDataTransformerRule: 'BothRespondents',\n chart: {\n xscales: ['']\n }\n }\n];\nvar dashed2019FactorChartingArray = defaultFactorChartingArray\n .map(function (charting) { return (__assign(__assign({}, charting), { chart: __assign(__assign({}, charting.chart), { dashYears: [2019] }) })); });\nvar _Factors /*: Factor[] -- use this as a const context to infer types from instead*/ = [\n {\n slug: 'young_entrepreneurs',\n api_name: 'Ung Företagsamhet',\n ranking: false,\n source: 'statistics',\n description: 'Andelen elever per årskull som drev UF-företag.',\n long_description: 'Andelen elever per årskull som drev UF-företag.',\n name: 'Ung Företagsamhet',\n chartingArray: [\n {\n chart: {\n yearLabelTransformerName: 'UF'\n }\n }\n ]\n },\n {\n slug: 'new_entrepreneurship',\n api_name: 'Nyföretagsamhet',\n ranking: true,\n ranking_years: [\n [\n 2011,\n 2019\n ]\n ],\n source: 'statistics',\n description: 'Antal nyföretagsamma per 1 000 invånare i kommunen som under det senaste året tillkommit gruppen företagsamma.',\n long_description: 'De individer som innehar F-skattsedel, är delägare i ett aktivt handelsbolag, är vd eller styrelseordförande i ett aktivt aktiebolag räknas som ”företagsamma”. De som senaste året blivit ”företagsamma” bedöms som ”nyföretagsamma”. Faktorn beskriver nyföretagsamma personer per 1 000 invånare i kommunen.',\n name: 'Nyföretagsamhet',\n chartingArray: [\n {\n chart: {\n xscales: [\n 'Antal nyföretagsamma individer'\n ]\n }\n }\n ]\n },\n {\n slug: 'employment_level',\n api_name: 'Andel i arbete',\n ranking: true,\n ranking_years: [\n [\n 2000,\n 2019\n ]\n ],\n source: 'statistics',\n description: 'Andelen invånare som förvärvsarbetar.',\n long_description: 'Faktorn visar andelen förvärvsarbetande personer i åldern 16-64 år av samtliga invånare i en kommun. Har kommunen ett bra företagsklimat är det lättare att starta och driva företag. Det skapar fler företag och i sin tur fler arbetstillfällen.',\n name: 'Andel i arbete'\n },\n {\n slug: 'employment_level_daytime_population',\n api_name: 'Jobb i kommunen',\n ranking: true,\n ranking_years: [\n [\n 2020\n ]\n ],\n source: 'statistics',\n description: 'Jobb i kommunen i förhållande till befolkning',\n long_description: 'Relationen mellan antalet personer (20–74 år) som har sin arbetsplats i kommunen och antalet personer (20–74 år) som bor i kommunen. Har kommunen ett bra företagsklimat är det lättare att starta och driva företag. Det skapar fler företag och i sin tur fler arbetstillfällen.',\n extra_description: 'Ny rankinggrundad statistik från 2020. Värdet för Sverige är ett medel av alla kommuner där varje enskild kommun har samma vikt oberoende av befolkningsmängd.',\n name: 'Jobb i kommunen',\n chartingArray: [\n {\n factorComparison: {\n lacksCountyData: true\n }\n }\n ]\n },\n {\n slug: 'municipal_tax',\n api_name: 'Kommunalskatt',\n ranking: true,\n ranking_years: [\n [\n 2000\n ]\n ],\n source: 'statistics',\n description: 'Hur hög är den kommunala inkomstskatten?',\n long_description: 'Den totala kommunalskatten, inklusive skatt till regionen. Kommunalskatten har störst påverkan på människors privatekonomi. Den påverkar möjligheten att bygga det kapital som krävs för att starta företag. För företagen är det också viktigt att den lokala köpkraften är så stark som möjligt. En låg kommunalskatt gör också kommunen mer attraktiv för inflyttare, vilket är viktigt för företagens kompetensförsörjning.',\n name: 'Kommunalskatt'\n },\n {\n slug: 'municipal_equalization',\n api_name: 'Kommunal utjämning',\n ranking: false,\n source: 'statistics',\n description: 'Kommunalekonomiskt utjämningsbidrag utfall kr/invånare, källa SCB.',\n long_description: 'Kommunalekonomiskt utjämningsbidrag utfall kr/invånare, källa SCB.',\n name: 'Kommunal utjämning',\n chartingArray: [\n {\n chart: {\n isIntegerData: true\n },\n factorComparison: {\n singleDimensionComparable: false,\n lacksCountyData: true\n }\n }\n ]\n },\n {\n slug: 'private_sector_employment',\n api_name: 'Marknadsförsörjning',\n ranking: true,\n ranking_years: [\n [\n 2000\n ]\n ],\n source: 'statistics',\n description: 'Andel av hushållens inkomster som kommer från marknadsaktiviteter, t.ex. lön från privata företag.',\n long_description: 'Faktorn marknadsförsörjning visar hur stor andel av kommuninvånarnas inkomster som kommer från privata företag, föreningar och stiftelser. Marknadsförsörjning kan ses som ett mått på det lokala näringslivets vitalitet och omfattning. Att en kommun har en låg marknadsförsörjning beror på att en stor andel av invånarna får sina inkomster från det offentliga. Det kan leda till att förutsättningarna för entreprenörskap och nyföretagande försämras. Om marknadsförsörjningen ökar, och fler får sina inkomster från den privata sektorn, stärks finansieringen av den offentliga servicen.',\n name: 'Marknadsförsörjning'\n },\n {\n slug: 'amount_of_business',\n api_name: 'Arbetsställen',\n ranking: true,\n ranking_years: [\n [\n 2000,\n 2019\n ]\n ],\n source: 'statistics',\n description: 'Antalet arbetsställen per 1 000 invånare.',\n long_description: 'Antalet arbetsställen per 1 000 invånare. Svenskt Näringsliv ranking av företagsklimatet i Sveriges kommuner bygger på antal arbetsställen med minst en anställd. Källa: SCB:s Företagsregister.',\n extra_description: 'År 2019 genomförde SCB en statistikomläggning som innebar att RAMS-statistiken bytte metod och datakälla. Detta påverkar tidsserien för arbetsställen från och med 2020 års datapunkt. De största skillnaderna ser vi i arbetsställen med 0 anställda som ökat med ca 55 000 och arbetsställen med 1-9 anställda som minskat med ca 40 000. Detta indikerar en systematisk omklassificering av företag mellan dessa två storleksklasser.',\n name: 'Arbetsställen'\n },\n {\n slug: 'amount_of_business_absolute',\n api_name: 'Totalt antal företag',\n ranking: false,\n source: 'statistics',\n description: 'Totalt antal aktiva företag.',\n long_description: 'Totalt antal aktiva företag. Källa: SCB:s Företagsregister',\n name: 'Totalt antal företag',\n chartingArray: [\n {\n factorComparison: {\n singleDimensionComparable: false,\n includeSwedenByDefault: false\n }\n }\n ]\n },\n {\n slug: 'contracting',\n api_name: 'Entreprenader',\n ranking: true,\n ranking_years: [\n [\n 2000\n ]\n ],\n source: 'statistics',\n description: 'Hur stor del av kommunens totala verksamhet som är utlagd på entreprenad i privat drift.',\n long_description: 'Faktorn entreprenader visar andelen av den kommunala verksamheten som köps in från privata företag, föreningar och stiftelser. Många företag är beroende av att kommuner är affärsmässiga och gör affärer med näringslivet genom att upphandla varor och tjänster och att de tillämpar valfrihetssystem. En kommun som lägger ut en stor andel av sin verksamhet på entreprenad bidrar till att marknaden och affärsmöjligheterna växer för företagen, vilket stimulerar näringslivet i kommunen.',\n name: 'Entreprenader'\n },\n {\n slug: 'services_to_businesses',\n api_name: 'Kommunens service och bemötande',\n ranking: true,\n ranking_years: [\n [\n 2000\n ]\n ],\n source: 'survey',\n subtype: 'service',\n description: 'Kommunens service och bemötande',\n long_description: 'Den kommunala servicen har stor betydelse för företagens etablering och expansion. För ett enskilt företag kan det vara förödande om ett bygglovsärende eller ett serveringstillstånd drar ut på tiden. En bra kommunal service präglas av effektivitet, tillgänglighet och kunskap om företagandets villkor.',\n extra_description: 'Frågans formulering är ändrad 2020. Formuleringen 2002–2019 var ”Kommunens service till företagen”.',\n name: 'Kommunens service och bemötande vid handläggning av företagsärenden',\n chartingArray: dashed2019FactorChartingArray\n },\n {\n slug: 'application_of_laws',\n api_name: 'Kommunens tillämpning av lagar och regler',\n ranking: true,\n ranking_years: [\n [\n 2000,\n 2019\n ]\n ],\n source: 'survey',\n subtype: 'service',\n description: 'Kommunens tillämpning av lagar och regler.',\n long_description: 'Faktorn beskriver hur företagarna ser på kommunens tillämpning av lagar och regler. Tillämpningen handlar om effektivitet i ärendehanteringen, förståelse för företagets ärende och återkoppling om vilka möjligheter som finns. Innan 2007 kallades enkätfrågan \"Kommunala regler och byråkratier\".',\n extra_description: 'Denna fråga utgår ur enkäten från och med 2020.',\n name: 'Tillämpning av lagar och regler',\n chartingArray: defaultFactorChartingArray\n },\n {\n slug: 'competition_with_private_companies',\n api_name: 'I vilken utsträckning anser du att kommunens verksamheter tränger undan privat näringsverksamhet?',\n ranking: true,\n ranking_years: [\n [\n 2000\n ]\n ],\n source: 'survey',\n subtype: 'service',\n description: 'I vilken utsträckning anser du att kommunens verksamheter tränger undan privat näringsverksamhet?',\n long_description: 'Faktorn mäter i vilken utsträckning företagen anser att kommunens verksamhet tränger undan privat verksamhet. En kommun bör fråga sig om det finns kommunalt utförda tjänster som lika väl hade kunnat utföras av företagen. Genom att lägga ut verksamheter på entreprenad, införa valfrihetssystem och utmaningsrätt kan kommunen uppmuntra till att offentligt finansierade verksamheter utförs av privata företag.',\n extra_description: 'Faktorns tidsserie bröts 2020 på grund av ny formulering av svarsalternativ. Tidigare svarsalternativ på skalan 1 till 6 där 1 = I stor utsträckning och 6 = Inte alls',\n name: 'Konkurrens från kommunen',\n chartingArray: dashed2019FactorChartingArray\n .map(function (charting) {\n return (__assign(__assign({}, charting), { factorComparison: {\n singleDimensionComparable: true,\n gradingScaleType: 'named-rev',\n applicableToPoliticians: false\n } }));\n })\n },\n {\n slug: 'access_to_competent_labour',\n api_name: 'Hur är tillgången på arbetskraft med relevant kompetens',\n ranking: true,\n ranking_years: [\n [\n 2000\n ]\n ],\n source: 'survey',\n subtype: 'service',\n description: 'Hur är tillgången på arbetskraft med relevant kompetens.',\n long_description: 'Tillgången på medarbetare med relevant kompetens är avgörande för ­företagens möjlighet att växa. Enligt Svenskt Näringslivs ­rekryteringsenkät ­misslyckas många rekryteringsförsök. Den enskilt största orsaken till ­företagens svårig­heter att rekrytera är brist på personer med rätt yrkes­erfarenhet, attityd och engagemang. Här kan kommunen bidra till att stärka kvaliteten i yrkesutbildningarna och på så sätt öka deras attraktivitet.',\n name: 'Tillgång till kompetens',\n chartingArray: defaultFactorChartingArray\n },\n {\n slug: 'roads_railways_airports',\n api_name: 'Vägnät, tåg- och flygförbindelser',\n ranking: true,\n ranking_years: [\n [\n 2000\n ]\n ],\n source: 'survey',\n subtype: 'service',\n description: 'Vägnät, tåg- och flygförbindelser.',\n long_description: 'Faktorn beskriver hur företagen upplever vägnätet samt tåg- och flygförbindelser, det vill säga den fysiska infrastrukturen. För företagen är god infrastruktur en avgörande fråga för företagsklimatet eftersom den påverkar såväl leveranser som tillgång till kunder och personal.',\n name: 'Vägnät, tåg- och flyg',\n chartingArray: defaultFactorChartingArray\n },\n {\n slug: 'telecom_and_it_networks',\n api_name: 'Mobilnät och bredband',\n ranking: true,\n ranking_years: [\n [\n 2000\n ]\n ],\n source: 'survey',\n subtype: 'service',\n description: 'Mobilnät och bredband.',\n long_description: 'Faktorn beskriver hur företagen upplever mobilnät och bredband i kommunen. I takt med att digitaliseringen ökar blir det allt viktigare för företag att snabbt och enkelt kunna kommunicera med omvärlden. Ett undermåligt fibernät ger en negativ begränsning som i värsta fall kan leda till att viktiga affärer går förlorade.',\n extra_description: 'Ny formulering av frågan från och med 2020, tidigare var det Tele och IT-nät',\n name: 'Mobilnät och bredband',\n chartingArray: dashed2019FactorChartingArray\n },\n {\n slug: 'summary_evaluation',\n api_name: 'Vilket sammanfattande omdöme vill du ge företagsklimatet i kommunen',\n ranking: true,\n ranking_years: [\n [\n 2000\n ]\n ],\n source: 'survey',\n subtype: 'service',\n description: 'Sammanfattande omdöme av företagsklimatet i kommunen.',\n long_description: 'Den viktigaste frågan i enkäten, och den tyngst vägande rankingfaktorn, är det sammanfattande omdömet om företagsklimatet i kommunen. Företagarna får utifrån sina egna erfarenheter ge ett samlat betyg på hur de upplever att driva företag i kommunen.',\n name: 'Sammanfattande omdöme',\n chartingArray: defaultFactorChartingArray\n },\n {\n slug: 'attitudes_public',\n api_name: 'Allmänhetens attityder till företagande',\n short_name: 'Allmänhetens attityder',\n ranking: true,\n ranking_years: [\n [\n 2000,\n 2019\n ]\n ],\n source: 'survey',\n subtype: 'attitude',\n description: 'Allmänhetens attityder till företagande.',\n long_description: 'Faktorn beskriver hur företagen upplever allmänhetens attityder till företagande. Allmänhetens inställning till och kunskaper om företagande har stor betydelse för det lokala företagsklimatet.',\n name: 'Allmänhetens attityder till företagande',\n chartingArray: defaultFactorChartingArray\n },\n {\n slug: 'attitudes_politicians',\n api_name: 'Kommunpolitikernas attityder till företagande',\n short_name: 'Kommunpolitikers attityder',\n ranking: true,\n ranking_years: [\n [\n 2000\n ]\n ],\n source: 'survey',\n subtype: 'attitude',\n description: 'Kommunpolitikernas attityder till företagande',\n long_description: 'Det är politikerna som i slutändan har den yttersta makten att fatta de besluten som påverkar förutsättningarna att driva företag i kommunen. Politikernas syn på och samarbete med näringslivet är därför en avgörande faktor för det lokala företagsklimatet.',\n name: 'Kommunpolitikernas attityder till företagande',\n chartingArray: defaultFactorChartingArray\n },\n {\n slug: 'attitudes_civil_servants',\n api_name: 'Kommunala tjänstemäns attityder till företagande',\n short_name: 'Kommunala tjänstemäns attityder',\n ranking: true,\n ranking_years: [\n [\n 2000\n ]\n ],\n source: 'survey',\n subtype: 'attitude',\n description: 'Tjänstemäns attityder till företagande.',\n long_description: 'Två av tre företagare har årligen kontakt med sin kommun. Det kan handla om bygglov, miljötillsyn eller en upphandling. Hur tjänstepersoner agerar är av yttersta vikt för hur enkelt det är att starta, driva och utveckla företag i kommunen. Även de tjänstepersoner som inte direkt arbetar med service till företagen behöver inse att deras agerande också påverkar företagsklimatet.',\n name: 'Kommunala tjänstemäns attityder till företagande',\n chartingArray: defaultFactorChartingArray\n },\n {\n slug: 'attitudes_media',\n api_name: 'Medias attityder till företagande',\n short_name: 'Medias attityder',\n ranking: true,\n ranking_years: [\n [\n 2000,\n 2019\n ]\n ],\n source: 'survey',\n subtype: 'attitude',\n description: 'Medias attityder till företagande.',\n long_description: 'Faktorn visar hur företagarna upplever medias attityder till företagande. Media speglar samhället och har möjlighet att i stor utsträckning påverka bilden av det lokala näringslivet. Att visa en ensidigt negativ bild av företag och företagande skapar ett klimat där färre vill starta och driva företag. Genom att lyfta fram framgångsrika företagare skapas också förebilder för unga människor som går i tankar om att starta företag.',\n extra_description: 'Denna fråga utgår ur enkäten från och med 2020.',\n name: 'Medias attityder till företagande',\n chartingArray: defaultFactorChartingArray\n },\n {\n slug: 'attitudes_schools',\n api_name: 'Skolans kontakt med det lokala näringslivet',\n short_name: 'Skolans kontakt',\n ranking: true,\n ranking_years: [\n [\n 2000,\n 2019\n ]\n ],\n source: 'survey',\n subtype: 'attitude',\n description: 'Skolans kontakt med det lokala näringslivet',\n long_description: 'Faktorn visar hur företagarna upplever skolans kontakt med det lokala näringslivet. Eftersom dagens unga både är morgondagens arbetstagare och arbetsgivare är det viktigt att skolan förmedlar kunskap om näringslivet och företagande.',\n extra_description: 'Frågans formulering är ändrad 2020. Formuleringen 2002-2019 var \"Skolans attityder till företagande\".',\n name: 'Skolans kontakt med det lokala näringslivet',\n chartingArray: dashed2019FactorChartingArray\n },\n {\n slug: 'dialog_with_businesses',\n api_name: 'Dialog mellan företag och kommunens beslutsfattare',\n ranking: true,\n ranking_years: [\n [\n 2020\n ]\n ],\n source: 'survey',\n name: 'Dialog mellan företag och kommunens beslutsfattare',\n long_description: 'Dialog utgör grunden för kommunens näringslivsarbete, och syftar till att bygga relationer och skapa ömsesidigt förtroende mellan företagen och kommunen. Ömsesidigt förtroende och förståelse är särskilt viktigt i kontakterna mellan företagare och de myndighetsutövande enheterna inom kommunen.',\n extra_description: 'Ny rankinggrundad fråga från 2020. Frågans formulering ändrades 2020. Formuleringen 2002-2019 var \"Dialog mellan företag och kommunledning (politiker och tjänstemän)\".',\n chartingArray: dashed2019FactorChartingArray\n },\n {\n slug: 'initiatives_from_businesses',\n api_name: 'Företagens engagemang för att förbättra företagsklimatet',\n ranking: false,\n source: 'survey',\n name: 'Företagens engagemang',\n long_description: 'Företagens engagemang för att förbättra företagsklimatet',\n extra_description: 'Frågans formulering ändrades 2020. Formuleringen 2002-2019 var \"Företagens egna initiativ för att förbättra företagsklimatet\"',\n chartingArray: dashed2019FactorChartingArray,\n },\n {\n slug: 'information_to_businesses',\n api_name: 'Kommunens information till företagen',\n ranking: true,\n ranking_years: [\n [\n 2020\n ]\n ],\n source: 'survey',\n name: 'Kommunens information till företagen',\n long_description: 'Faktorn mäter hur väl kommunen lyckas med information till företagen. Det händer mycket i en kommun som är relevant för företagen att veta om. Det kan vara information som berör företagen direkt men också som är av indirekt karaktär.',\n extra_description: 'Ny rankinggrundad fråga från 2020.',\n chartingArray: defaultFactorChartingArray\n },\n {\n slug: 'municipal_contracting',\n api_name: 'Kommunens upphandling',\n ranking: true,\n ranking_years: [\n [\n 2020\n ]\n ],\n source: 'survey',\n name: 'Kommunens upphandling',\n long_description: 'Faktorn mäter företagens upplevelse av den kommunala upphandlingen. Den kommun som lyckas med sitt upphandlingsarbete skapar stor nytta för både medborgarna, kommunen, det lokala näringslivet och i slutänden hela samhället genom att använda skattemedel på ett effektivt och ändamålsenligt sätt.',\n extra_description: 'Ny rankinggrundad fråga från 2020.',\n chartingArray: defaultFactorChartingArray\n },\n {\n slug: 'summary_evaluation_sweden',\n api_name: 'Vilket sammanfattande omdöme vill du ge företagsklimatet i Sverige',\n ranking: false,\n source: 'survey',\n name: 'Företagsklimatet i Sverige',\n long_description: 'Sammanfattande omdöme om företagsklimatet i Sverige',\n chartingArray: defaultFactorChartingArray\n },\n {\n slug: 'type_of_business',\n api_name: 'Inom vilken bransch är ditt företag huvudsakligen verksamt?',\n ranking: false,\n source: 'survey',\n name: 'Inom vilken bransch är ditt företag huvudsakligen verksamt?',\n long_description: 'Inom vilken bransch är ditt företag huvudsakligen verksamt?',\n chartingArray: [\n {\n chart: {\n defaultChartDataEndpointName: 'SurveySimpleBarchart',\n extraLabelWidth: 130,\n truncate: true\n },\n factorComparison: {\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'muni_contact_latest_year',\n api_name: 'Har du under senaste året haft kontakt med kommunen?',\n ranking: false,\n source: 'survey',\n name: 'Har du under senaste året haft kontakt med kommunen?',\n long_description: 'Har du under senaste året haft kontakt med kommunen?',\n chartingArray: [\n {\n chart: {\n defaultChartDataEndpointName: 'SurveySimpleBarchart',\n extraLabelWidth: 130,\n truncate: true\n },\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'muni_contact_latest_year_about',\n api_name: 'Gällde kontakten något av följande',\n ranking: false,\n source: 'survey',\n name: 'Om kontakt med kommunen förekom: Gällde kontakten något av följande?',\n long_description: 'Om kontakt med kommunen förekom: Gällde kontakten något av följande? (Flera svar möjliga)',\n chartingArray: [\n {\n chart: {\n defaultChartDataEndpointName: 'SurveySimpleBarchart',\n extraLabelWidth: 130,\n truncate: true,\n sorting: {\n sortDir: 'desc',\n sortOrder: 'value'\n }\n },\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'muni_contact_hesitate',\n api_name: 'Har du under de senaste 12 månaderna, utifrån risken att det kan komma att påverka ditt företag negativt, känt tvekan att lämna klagomål till kommunen?',\n ranking: false,\n source: 'survey',\n name: 'Tvekan att lämna klagomål till kommunen?',\n long_description: 'Har du under de senaste 12 månaderna, utifrån risken att det kan komma att påverka ditt företag negativt, känt tvekan att lämna klagomål till kommunen?',\n extra_description: 'Denna fråga ställdes som extrafråga 2024, 2022, 2020 samt 2016. Formuleringen före 2024 var ”Har du någon gång känt tvekan att lämna klagomål till kommunen med risken att detta kommer påverka ditt företag negativt?”',\n chartingArray: [\n {\n chart: {\n defaultChartDataEndpointName: 'SurveySimpleBarchart',\n year: 2024,\n },\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n // chartingArray: [\n // {\n // chart: {\n // xscales: [\n // ''\n // ],\n // defaultChartDataEndpointName: 'MunicipalityFactorValues'\n // },\n // factorComparison: {\n // withoutGradingScale: false,\n // gradingScaleType: 'named',\n // applicableToPoliticians: false\n // }\n // }\n // ]\n },\n {\n slug: 'company_education_contact',\n api_name: 'Vill ni, på ditt företag, ha kontakt med skolan i din kommun? I så fall på vilket sätt?',\n ranking: false,\n source: 'survey',\n name: 'Vill ni, på ditt företag, ha kontakt med skolan i din kommun?',\n long_description: 'Vill ni, på ditt företag, ha kontakt med skolan i din kommun? I så fall på vilket sätt?',\n extra_description: 'Denna fråga ställdes som extrafråga 2023.',\n chartingArray: [\n {\n chart: {\n defaultChartDataEndpointName: 'SurveySimpleBarchart',\n year: 2023,\n extraLabelWidth: 70,\n },\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'company_education_available',\n api_name: 'Finns det utbildningar i ditt närområde som matchar ditt företags kompetensbehov?',\n ranking: false,\n source: 'survey',\n name: 'Finns det utbildningar som matchar ditt företags kompetensbehov?',\n long_description: 'Finns det utbildningar i ditt närområde som matchar ditt företags kompetensbehov?',\n extra_description: 'Denna fråga ställdes som extrafråga 2023.',\n chartingArray: [\n {\n chart: {\n defaultChartDataEndpointName: 'SurveySimpleBarchart',\n year: 2023,\n },\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'muni_measures_view',\n api_name: 'I vilken utsträckning vidtar kommunen åtgärder utifrån de synpunkter som företagare i kommunen har?',\n ranking: false,\n source: 'survey',\n name: 'Åtgärder utifrån företagares synpunkter?',\n long_description: 'I vilken utsträckning vidtar kommunen åtgärder utifrån de synpunkter som företagare i kommunen har?\\'',\n extra_description: 'Denna fråga ställdes som extrafråga 2022.',\n chartingArray: [\n {\n chart: {\n defaultChartDataEndpointName: 'SurveySimpleBarchart',\n year: 2022\n },\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'advice_on_permission',\n api_name: 'Företaget får de råd och den vägledning som vi behöver vid kommunens tillståndsgivning, tillsyn eller kontroll.',\n ranking: false,\n source: 'survey',\n description: 'I vilken utsträckning instämmer du i följande påstående: Företaget får de råd och den vägledning som vi behöver vid kommunens tillståndsgivning, tillsyn eller kontroll.',\n name: 'Vägledning vid tillståndsgivning, tillsyn eller kontroll',\n long_description: 'Företaget får de råd och den vägledning som vi behöver vid kommunens tillståndsgivning, tillsyn eller kontroll.',\n extra_description: 'Frågan ställs endast till de företag som svarat att de haft kontakt med kommunen angående tillståndsgivning, tillsyn eller kontroll.',\n chartingArray: [\n {\n chart: {\n xscales: [\n ''\n ],\n defaultChartDataEndpointName: 'MunicipalityFactorValues'\n },\n factorComparison: {\n withoutGradingScale: false,\n gradingScaleType: 'named',\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'crime_a_problem',\n api_name: 'Upplever du att brottslighet är ett problem för företagen i din kommun?',\n ranking: false,\n source: 'survey',\n name: 'Är brottslighet ett problem för företagen?',\n long_description: 'Politiker: Upplever du att brottslighet är ett problem för företagen i din kommun? Företagare: Upplever du att brottslighet är ett problem för ditt företag?',\n extra_description: 'Denna fråga ställdes som extrafråga 2017.',\n chartingArray: [\n {\n chart: {\n defaultChartDataEndpointName: 'SurveySimpleBarchartCombined',\n extraHeight: true,\n year: 2017\n },\n factorComparison: {\n withoutGradingScale: true,\n includeSwedenByDefault: false\n }\n }\n ]\n },\n {\n slug: 'crime_change_2years',\n api_name: 'Hur upplever du att brottsligheten mot företag har förändrats i din kommun under de senaste två åren?',\n ranking: false,\n source: 'survey',\n name: 'Hur har brottsligheten förändrats de senaste två åren?',\n long_description: 'Politiker: Hur upplever du att brottsligheten mot företag har förändrats i din kommun under de senaste två åren? Företagare: Hur upplever du att brottsligheten mot ditt företag har förändrats under de senaste två åren?',\n extra_description: 'Denna fråga ställdes som extrafråga 2017.',\n chartingArray: [\n {\n chart: {\n defaultChartDataEndpointName: 'SurveySimpleBarchartCombined',\n extraHeight: true,\n year: 2017,\n xscales: [\n 'Brottsligheten har ökat',\n 'Brottsligheten är oförändrad',\n 'Brottsligheten har minskat',\n 'Vet ej'\n ]\n },\n factorComparison: {\n withoutGradingScale: true,\n includeSwedenByDefault: false\n }\n }\n ]\n },\n {\n slug: 'crime_risk_kind',\n api_name: 'För vilken/vilka av följande typer av brott bedömer du att risken att ditt företag ska drabbas är hög?',\n ranking: false,\n source: 'survey',\n name: 'Vilka brottstyper bedömer du att det är hög risk att drabbas av?',\n long_description: 'För vilken/vilka av följande typer av brott bedömer du att risken att ditt företag ska drabbas är hög?',\n extra_description: 'Denna fråga ställdes som extrafråga 2017.',\n chartingArray: [\n {\n chart: {\n defaultChartDataEndpointName: 'SurveySimpleBarchart',\n year: 2017,\n sorting: {\n sortDir: 'desc',\n sortOrder: 'value'\n }\n },\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'crime_a_problem_own_business',\n name: 'Påverkan av brottslighet/otrygghet',\n api_name: 'I vilken utsträckning påverkas ditt företag negativt av brottslighet/otrygghet i din kommun?',\n ranking: true,\n ranking_years: [\n [\n 2020\n ]\n ],\n source: 'survey',\n description: 'I vilken utsträckning påverkas ditt företag negativt av brottslighet/otrygghet i din kommun?',\n long_description: 'Brottslighet och otrygghet hämmar företagens tillväxt- och utvecklingsmöjligheter. Faktorn beskriver i vilken utsträckning som företag påverkas negativt av brottslighet/otrygghet i kommunen.',\n extra_description: 'Ny rankinggrundad fråga från 2020.',\n chartingArray: defaultFactorChartingArray\n .map(function (charting) {\n var charting_ = __assign(__assign({}, charting), { factorComparison: {\n gradingScaleType: 'named-rev',\n applicableToPoliticians: false\n } });\n charting_.chart = __assign(__assign({}, charting_.chart), { titleOverride: \"Brottslighet och otrygghet\" });\n return charting_;\n })\n },\n {\n slug: 'company_relocate',\n api_name: 'Har du någon gång övervägt att flytta ditt företag till en kommun med ett bättre företagsklimat?',\n ranking: false,\n source: 'survey',\n //description: 'Har du övervägt att flytta företaget?',\n long_description: 'Har du någon gång övervägt att flytta ditt företag till en kommun med ett bättre företagsklimat?',\n extra_description: 'Denna fråga ställdes som extrafråga 2024, 2020 samt 2017.',\n name: 'Har du övervägt att flytta företaget?',\n chartingArray: [\n {\n chart: {\n defaultChartDataEndpointName: 'SurveySimpleBarchart',\n year: 2024\n },\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'business_climate_change_5_years',\n api_name: 'Upplever du att företagsklimatet blivit bättre, oförändrat eller sämre i din kommun senaste 5 åren?',\n ranking: false,\n source: 'survey',\n name: 'Hur har företagsklimatet förändrats de senaste 5 åren?',\n long_description: 'Upplever du att företagsklimatet blivit bättre, oförändrat eller sämre i din kommun senaste 5 åren?',\n extra_description: 'Denna fråga ställdes som extrafråga 2021, 2018 samt 2015.',\n chartingArray: [\n {\n chart: {\n defaultChartDataEndpointName: 'SurveySimpleBarchartCombined',\n extraHeight: true,\n year: 2021\n },\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: true,\n includeSwedenByDefault: false\n }\n }\n ]\n },\n {\n slug: 'municipality_runs_competing_businesses',\n api_name: 'Bedriver din kommun eller kommunala bolag verksamhet som ditt företag skulle vilja utföra?',\n ranking: false,\n source: 'survey',\n name: 'Bedriver din kommun verksamhet som ditt företag skulle vilja utföra?',\n long_description: 'Bedriver din kommun eller kommunala bolag verksamhet som ditt företag skulle vilja utföra?',\n extra_description: 'Denna fråga ställdes som extrafråga 2018 samt 2011.',\n chartingArray: [\n {\n chart: {\n defaultChartDataEndpointName: 'SurveySimpleBarchart',\n year: 2018\n },\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'survey_contact_understanding',\n api_name: 'Jag upplever att kommunens handläggare hade förståelse för min verksamhet.',\n ranking: false,\n source: 'survey',\n description: 'I vilken utsträckning instämmer du i följande påstående: Jag upplever att kommunens handläggare hade förståelse för min verksamhet.',\n name: 'Förståelse för verksamheten',\n long_description: 'I vilken utsträckning instämmer du i följande påstående: Jag upplever att kommunens handläggare hade förståelse för min verksamhet.',\n extra_description: 'Frågan ställs endast till de företag som svarat att de haft kontakt med kommunen angående tillståndsgivning, tillsyn eller kontroll.',\n chartingArray: [\n {\n chart: {\n xscales: [\n ''\n ],\n defaultChartDataEndpointName: 'MunicipalityFactorValues'\n },\n factorComparison: {\n withoutGradingScale: false,\n gradingScaleType: 'named',\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'survey_contact_clearfee',\n api_name: 'Det framstår som tydligt för mig hur kommunen beräknat sin avgift.',\n ranking: false,\n source: 'survey',\n description: 'I vilken utsträckning instämmer du i följande påstående: Det framstår som tydligt för mig hur kommunen beräknat sin avgift.',\n name: 'Tydligt beräknad avgift',\n long_description: 'I vilken utsträckning instämmer du i följande påstående: Det framstår som tydligt för mig hur kommunen beräknat sin avgift.',\n extra_description: 'Denna fråga ställdes som extrafråga 2019.',\n chartingArray: [\n {\n chart: {\n extraLabelWidth: 130,\n xscales: xScalesGradingGoodnessLevelOrderLowHigh,\n defaultChartDataEndpointName: 'SurveySimpleBarchart',\n year: 2019\n },\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'survey_contact_handling',\n api_name: 'Kommunens handläggningstid framstår som rimlig.',\n ranking: false,\n source: 'survey',\n description: 'I vilken utsträckning instämmer du i följande påstående: Kommunens handläggningstid framstår som rimlig.',\n name: 'Rimlig handläggningstid',\n long_description: 'I vilken utsträckning instämmer du i följande påstående: Kommunens handläggningstid framstår som rimlig.',\n extra_description: 'Frågan ställs endast till de företag som svarat att de haft kontakt med kommunen angående tillståndsgivning, tillsyn eller kontroll.',\n chartingArray: [\n {\n chart: {\n xscales: [\n ''\n ],\n defaultChartDataEndpointName: 'MunicipalityFactorValues'\n },\n factorComparison: {\n withoutGradingScale: false,\n gradingScaleType: 'named',\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'survey_contact_reachable',\n api_name: 'Det är lätt för mig att komma i kontakt med kommunens handläggare.',\n ranking: false,\n source: 'survey',\n description: 'I vilken utsträckning instämmer du i följande påstående: Det är lätt för mig att komma i kontakt med kommunens handläggare.',\n name: 'Lätt att komma i kontakt med handläggare',\n long_description: 'I vilken utsträckning instämmer du i följande påstående: Det är lätt för mig att komma i kontakt med kommunens handläggare.',\n extra_description: 'Frågan ställs endast till de företag som svarat att de haft kontakt med kommunen angående tillståndsgivning, tillsyn eller kontroll.',\n chartingArray: [\n {\n chart: {\n xscales: [\n ''\n ],\n defaultChartDataEndpointName: 'MunicipalityFactorValues'\n },\n factorComparison: {\n withoutGradingScale: false,\n gradingScaleType: 'named',\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'survey_contact_digitized',\n api_name: 'Jag skulle önska en mer digitaliserad hantering av kommunens ärenden.',\n ranking: false,\n source: 'survey',\n description: 'I vilken utsträckning instämmer du i följande påstående: Jag skulle önska en mer digitaliserad hantering av kommunens ärenden.',\n name: 'Mer digitaliserad hantering av ärenden',\n long_description: 'I vilken utsträckning instämmer du i följande påstående: Jag skulle önska en mer digitaliserad hantering av kommunens ärenden.',\n extra_description: 'Denna fråga ställdes som extrafråga 2019.',\n chartingArray: [\n {\n chart: {\n extraLabelWidth: 130,\n xscales: xScalesGradingGoodnessLevelOrderLowHigh,\n defaultChartDataEndpointName: 'SurveySimpleBarchart',\n year: 2019\n },\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'how_important_for_company_relevant_highshool_programs',\n api_name: 'Relevanta gymnasieprogram',\n ranking: false,\n source: 'survey',\n subtype: 'importance',\n name: 'Relevant gymnasieprogram',\n long_description: 'Hur viktiga är följande erfarenheter/utbildningar vid rekryteringar till ditt företag? Relevant gymnasieprogram',\n chartingArray: [\n {\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'how_important_for_company_company_trainee_positions',\n api_name: 'Företagsförlagd praktik',\n ranking: false,\n source: 'survey',\n subtype: 'importance',\n name: 'Företagsförlagd praktik',\n long_description: 'Hur viktiga är följande erfarenheter/utbildningar vid rekryteringar till ditt företag? Företagsförlagd praktik',\n chartingArray: [\n {\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'how_important_for_company_relevant_skilled_workers_programs',\n api_name: 'Relevant eftergymnasial yrkesutbildning',\n ranking: false,\n source: 'survey',\n subtype: 'importance',\n name: 'Relevant eftergymnasial yrkesutbildning',\n long_description: 'Hur viktiga är följande erfarenheter/utbildningar vid rekryteringar till ditt företag? Relevant eftergymnasial yrkesutbildning',\n chartingArray: [\n {\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'how_important_for_company_relevant_higher_education',\n api_name: 'Relevant högskola/universitetsutbildning',\n ranking: false,\n source: 'survey',\n subtype: 'importance',\n name: 'Relevant högskola/universitetsutbildning',\n long_description: 'Hur viktiga är följande erfarenheter/utbildningar vid rekryteringar till ditt företag? Relevant högskola/universitetsutbildning',\n chartingArray: [\n {\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'how_important_for_company_targeted_adult_education',\n api_name: 'Branschinriktad vuxenutbildning',\n ranking: false,\n source: 'survey',\n subtype: 'importance',\n name: 'Branschinriktad vuxenutbildning',\n long_description: 'Hur viktiga är följande erfarenheter/utbildningar vid rekryteringar till ditt företag? Branschinriktat vuxenutbildning',\n chartingArray: [\n {\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'how_important_for_company_summer_jobs',\n api_name: 'Sommar-/extrajobb',\n ranking: false,\n source: 'survey',\n subtype: 'importance',\n name: 'Sommar-/extrajobb',\n long_description: 'Hur viktiga är följande erfarenheter/utbildningar vid rekryteringar till ditt företag? Sommar-/extrajobb',\n chartingArray: [\n {\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'how_important_for_company_work_experience',\n api_name: 'Några års arbetslivserfarenhet',\n ranking: false,\n source: 'survey',\n subtype: 'importance',\n name: 'Några års arbetslivserfarenhet',\n long_description: 'Hur viktiga är följande erfarenheter/utbildningar vid rekryteringar till ditt företag? Några års arbetslivserfarenhet',\n chartingArray: [\n {\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'how_important_for_muni_housing',\n api_name: 'Bostäder',\n ranking: false,\n source: 'survey',\n subtype: 'importance',\n name: 'Bostäder',\n long_description: 'Hur viktiga är följande frågor inför framtiden för att stärka näringslivet och därmed kommunen? Bostäder',\n chartingArray: [\n {\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'how_important_for_muni_entrepreneurial_climate',\n api_name: 'Bättre företagsklimat',\n ranking: false,\n source: 'survey',\n subtype: 'importance',\n name: 'Bättre företagsklimat',\n long_description: 'Hur viktiga är följande frågor inför framtiden för att stärka näringslivet och därmed kommunen? Bättre företagsklimat',\n chartingArray: [\n {\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'how_important_for_muni_more_companies',\n api_name: 'Fler företag',\n ranking: false,\n source: 'survey',\n subtype: 'importance',\n name: 'Fler företag',\n long_description: 'Hur viktiga är följande frågor inför framtiden för att stärka näringslivet och därmed kommunen? Fler företag',\n chartingArray: [\n {\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'how_important_for_muni_pop_moving_in',\n api_name: 'Få fler att flytta till kommunen',\n ranking: false,\n source: 'survey',\n subtype: 'importance',\n name: 'Få fler att flytta till kommunen',\n long_description: 'Hur viktiga är följande frågor inför framtiden för att stärka näringslivet och därmed kommunen? Få fler att flytta till kommunen',\n chartingArray: [\n {\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'how_important_for_muni_youth_staying',\n api_name: 'Få unga att bo kvar i kommunen',\n ranking: false,\n source: 'survey',\n subtype: 'importance',\n name: 'Få unga att bo kvar i kommunen',\n long_description: 'Hur viktiga är följande frågor inför framtiden för att stärka näringslivet och därmed kommunen? Få unga att bo kvar i kommunen',\n chartingArray: [\n {\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'how_important_for_muni_quality_education',\n api_name: 'God kvalitet i skola/utbildning',\n ranking: false,\n source: 'survey',\n subtype: 'importance',\n name: 'God kvalitet i skola/utbildning',\n long_description: 'Hur viktiga är följande frågor inför framtiden för att stärka näringslivet och därmed kommunen? God kvalitet i skola/utbildning',\n chartingArray: [\n {\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'how_important_for_muni_competent_workers',\n api_name: 'Kompetensförsörjning',\n ranking: false,\n source: 'survey',\n subtype: 'importance',\n name: 'Kompetensförsörjning',\n long_description: 'Hur viktiga är följande frågor inför framtiden för att stärka näringslivet och därmed kommunen? Kompetensförsörjning',\n chartingArray: [\n {\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'how_important_for_muni_diverse_entrepreneurial_climate',\n api_name: 'Mer diversifierat näringsliv',\n ranking: false,\n source: 'survey',\n subtype: 'importance',\n name: 'Mer diversifierat näringsliv',\n long_description: 'Hur viktiga är följande frågor inför framtiden för att stärka näringslivet och därmed kommunen? Mer diversifierat näringsliv',\n chartingArray: [\n {\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'higher_education',\n api_name: 'Högre utbildningsnivå',\n ranking: false,\n source: 'statistics',\n name: 'Högre utbildningsnivå',\n long_description: 'Statistiken hämtas från SCB:s Utbildningsregister. Diagrammet visar andelen med eftergymnasial utbildning i åldern 16-74 år av totalbefolkningen.'\n },\n {\n slug: 'new_businesses',\n api_name: 'Nyföretagande',\n ranking: false,\n source: 'statistics',\n name: 'Nyföretagande',\n long_description: 'Statistiken hämtas från SCB:s Företagsdatabas. Nyföretagande visar antal nya företag per 1 000 invånare. 2010 skedde en stor ökning i nyföretagandet jämfört med tidigare år. Anledningen till det är främst ändrade regler för att sätta aktivitetsstatus för företag.'\n },\n {\n slug: 'foreign_companies',\n api_name: 'Andel utländska bolag',\n ranking: false,\n source: 'statistics',\n name: 'Andel utländska bolag',\n long_description: 'Visar andelen utlandsägda bolag av det totala antalet bolag i kommunen. Statistiken hämtas från SCB:s företagsdatabas.'\n },\n {\n slug: 'foreign_guest_nights',\n api_name: 'Utländska gästnätter per invånare',\n ranking: false,\n source: 'statistics',\n name: 'Utländska gästnätter per invånare',\n long_description: 'Utländska gästnätter per invånare'\n },\n {\n slug: 'employment_in_foreign_companies',\n api_name: 'Andel anställda i utlandsägda bolag',\n ranking: false,\n source: 'statistics',\n name: 'Andel anställda i utlandsägda bolag',\n long_description: 'Visar andelen anställda i utlandsägda bolag av det totala antalet anställda i kommunen. Statistiken hämtas från SCB:s företagsdatabas.'\n },\n {\n slug: 'entrepreneurship',\n api_name: 'Företagsamhet',\n ranking: true,\n ranking_years: [\n [\n 2020\n ]\n ],\n source: 'statistics',\n name: 'Företagsamhet',\n description: 'Faktorn visar andelen företagsamma av den arbetsföra befolkningen (16-74 år) samt bland de unga (16-34 år)',\n long_description: 'De individer som är godkända för F-skatt, är delägare i ett aktivt handelsbolag eller är vd eller styrelsemedlem i ett aktivt aktiebolag räknas som företagsamma. Faktorn visar andelen företagsamma av den arbetsföra befolkningen (16-74 år).',\n extra_description: 'Ny rankinggrundad statistik från 2020. ',\n chartingArray: [\n {\n chart: {\n sourceExclude: 'kreicberg'\n },\n factorComparison: {\n includeSwedenByDefault: false\n }\n }\n ]\n },\n {\n slug: 'population',\n api_name: 'Folkmängd',\n ranking: false,\n source: 'statistics',\n name: 'Folkmängd',\n long_description: 'Antalet invånare 31 december varje år. Källa: SCB',\n chartingArray: [\n {\n chart: {\n isIntegerData: true\n },\n factorComparison: {\n includeSwedenByDefault: false\n }\n }\n ]\n },\n {\n slug: 'municipal_economy',\n api_name: 'Kommunal ekonomi',\n ranking: false,\n source: 'statistics',\n name: 'Kommunal ekonomi',\n long_description: 'Kommunal ekonomi, totala kostnader per invånare, är verksamhetens kostnader för kommunkoncernen (inklusive kommunägda bolag) per invånare. Uppgifterna hämtas från Räkenskapssammandraget som årligen sammanställs av SCB.',\n chartingArray: [\n {\n chart: {\n isIntegerData: true\n },\n factorComparison: {\n lacksCountyData: true\n }\n }\n ]\n },\n {\n slug: 'global_trade_per_capita',\n api_name: 'Global handel per invånare',\n ranking: false,\n source: 'statistics',\n name: 'Global handel per invånare',\n long_description: 'Statistiken visar export och import i kronor per invånare. Statistiken hämtas från SCB. För årtalen 2009 och 2010 ingår även tjänstehandel vilket gör att jämförelser med åren innan och efter blir missvisande.',\n chartingArray: [\n {\n chart: {\n isIntegerData: true\n }\n }\n ]\n },\n {\n slug: 'net_population_change',\n api_name: 'In- och utflyttning',\n ranking: false,\n source: 'statistics',\n name: 'In- och utflyttning',\n long_description: 'Statistiken visar nettoinflyttningen till kommunen i absoluta tal för åldersgrupperna 15-24 år samt 25-34 år. Källa: SCB.',\n chartingArray: [\n {\n chart: {\n xscales: [\n 'Ålder 15-24',\n 'Ålder 25-34'\n ]\n },\n factorComparison: {\n lacksCountyData: true,\n excludeSweden: true\n }\n }\n ]\n },\n {\n slug: 'retirees',\n api_name: 'Pensionärer',\n ranking: false,\n source: 'statistics',\n name: 'Pensionärer',\n long_description: 'Diagrammet visar antalet invånare över 65 respektive 80 år som andel av befolkningen mellan 19-64 år.',\n chartingArray: [\n {\n chart: {\n xscales: [\n 'Kvot 65+/19-64',\n 'Kvot 80+/19-64'\n ]\n },\n factorComparison: {\n singleDimensionComparable: false\n }\n }\n ]\n },\n {\n slug: 'net_costs',\n api_name: 'Nettokostnader',\n ranking: false,\n source: 'statistics',\n name: 'Nettokostnader',\n long_description: 'Statistiken visar kommunens nettokostnader per invånare för kommunens olika verksamhetsområden. Källa: SCB.',\n chartingArray: [\n {\n chart: {\n year: 2023,\n isIntegerData: true,\n defaultChartDataEndpointName: 'InDepthSurveyQuestions',\n extraLabelWidth: 70,\n truncate: true,\n unit: 'kr/invånare',\n sorting: {\n sortOrder: 'value',\n sortDir: 'desc'\n }\n },\n factorComparison: {\n singleDimensionComparable: false,\n lacksCountyData: true\n }\n }\n ]\n },\n {\n slug: 'largest_employers',\n api_name: 'Största arbetsgivare',\n ranking: false,\n source: 'statistics',\n name: 'Största arbetsgivare',\n long_description: 'Största arbetsgivare i kommunen. Andelen beräknas på dagbefolkningen i kommunen.',\n chartingArray: [\n {\n chart: {\n year: 2023,\n isIntegerData: false,\n defaultChartDataEndpointName: 'InDepthSurveyQuestions',\n extraLabelWidth: 100,\n truncate: true,\n unit: 'Procentuell andel av totalt antal anställda i kommunen',\n yscales: [\n 'Procentuell andel av totalt antal anställda i kommunen'\n ],\n sorting: {\n sortOrder: 'value',\n sortDir: 'desc'\n }\n },\n factorComparison: {\n singleDimensionComparable: false,\n disabled: true,\n excludeSweden: true\n }\n }\n ]\n },\n {\n slug: 'largest_private_employers',\n api_name: 'Största privata arbetsgivare',\n ranking: false,\n source: 'statistics',\n name: 'Största privata arbetsgivare',\n long_description: 'Största privata arbetsgivare i kommunen. Andelen beräknas på dagbefolkningen i kommunen.',\n chartingArray: [\n {\n chart: {\n year: 2023,\n isIntegerData: false,\n defaultChartDataEndpointName: 'InDepthSurveyQuestions',\n extraLabelWidth: 100,\n truncate: true,\n unit: 'Procentuell andel av totalt antal anställda i kommunen',\n yscales: [\n 'Procentuell andel av totalt antal anställda i kommunen'\n ],\n sorting: {\n sortOrder: 'value',\n sortDir: 'desc'\n }\n },\n factorComparison: {\n singleDimensionComparable: false,\n disabled: true,\n excludeSweden: true\n }\n }\n ]\n },\n {\n slug: 'unemployment',\n api_name: 'Arbetslöshet',\n ranking: false,\n source: 'statistics',\n name: 'Arbetslöshet',\n long_description: 'Tabellen visar öppet arbetslösa och sökande i program med aktivitetsstöd i procent av den registerbaserade arbetskraften i åldersgrupperna 16-64 år och 18-24 år (ungdomsarbetslösheten). Källa: Arbetsförmedlingen.'\n },\n {\n slug: 'jobs_per_business',\n api_name: 'Arbetstillfällen efter näringsgren',\n ranking: false,\n source: 'statistics',\n name: 'Arbetstillfällen efter näringsgren',\n long_description: 'Arbetstillfällen efter näringsgren',\n chartingArray: [\n {\n chart: {\n year: 2021,\n defaultChartDataEndpointName: 'InDepthSurveyQuestions',\n extraLabelWidth: 100,\n extraHeight: true,\n truncate: true,\n unit: '%',\n sorting: {\n sortOrder: 'value',\n sortDir: 'desc'\n }\n },\n factorComparison: {\n singleDimensionComparable: false,\n lacksCountyData: true\n }\n }\n ]\n },\n {\n slug: 'most_prioritized_actions',\n name: 'Prioriterade åtgärder',\n api_name: 'Vilket eller vilka av följande områden tycker du kommunen ska prioritera för att förbättra företagsklimatet i kommunen?',\n ranking: false,\n source: 'survey',\n long_description: 'Vilket eller vilka av följande områden tycker du kommunen ska prioritera för att förbättra företagsklimatet i kommunen?',\n chartingArray: [\n {\n chart: {\n defaultChartDataEndpointName: 'SurveySimpleBarchart',\n extraHeight: true,\n extraLabelWidth: 130,\n truncate: true,\n year: SURVEY_YEAR_LATEST,\n sorting: {\n sortDir: 'desc',\n sortOrder: 'value'\n }\n },\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false,\n includeSwedenByDefault: false\n }\n }\n ]\n },\n {\n slug: 'knowledge_of_muni_work',\n name: 'Kunskap om kommunens arbete',\n api_name: 'Känner du att du har kunskap om hur kommunen arbetar för att förbättra företagsklimatet?',\n ranking: false,\n source: 'survey',\n long_description: 'Företagare: \"Känner du att du har kunskap om hur kommunen arbetar för att förbättra företagsklimatet?\". Politiker: \"Involverar kommunen företagen i kommunens arbete för att förbättra företagsklimatet?\"',\n extra_description: 'Denna fråga ställdes som extrafråga 2021, 2018 samt 2015. Dataserien finns att ladda ner under menyfliken \"ladda ner\".',\n chartingArray: [\n {\n chart: {\n defaultChartDataEndpointName: 'SurveySimpleBarchartCombined',\n extraHeight: true,\n year: 2021\n },\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: true,\n includeSwedenByDefault: false\n }\n }\n ]\n },\n {\n slug: 'how_many_employees_municipality',\n name: 'Hur många anställda har ditt företag i den här kommunen?',\n api_name: 'Hur många anställda har ditt företag i den här kommunen?',\n ranking: false,\n source: 'survey',\n long_description: 'Hur många anställda har ditt företag i den här kommunen?',\n chartingArray: [\n {\n chart: {\n defaultChartDataEndpointName: 'SurveySimpleBarchart',\n xscales: [\n 'Inga anställda',\n '1-5 anställda',\n '6-25 anställda',\n '26-50 anställda',\n '51-100 anställda',\n 'Fler än 100 anställda'\n ]\n },\n factorComparison: {\n withoutGradingScale: true,\n applicableToPoliticians: false\n }\n }\n ]\n },\n {\n slug: 'ranking',\n api_name: 'Ranking',\n ranking: false,\n source: 'ranking',\n description: 'Rankingutveckling',\n long_description: 'Varje år presenterar Svenskt Näringsliv en ranking av företagsklimatet i Sveriges 290 kommuner. Syftet är att visa var i landet det är bäst att starta och driva företag.',\n name: 'Ranking',\n chartingArray: [\n {\n chart: {\n isIntegerData: true,\n isSpecialInvertedRankingChart: true,\n unitExclude: 'Rank',\n years: [2015, 2024]\n },\n factorComparison: {\n singleDimensionComparable: true,\n isBiggerBetter: false,\n withoutGradingScale: true,\n lacksCountyData: true,\n excludeSweden: true\n }\n }\n ]\n }\n];\nexports.gradingScaleTypeDescription = {\n 'level': {\n preamble: 'Betyg sätts på en skala mellan 1 och 6 där ',\n scaleDescription: '1 betyder \"i stor utsträckning\" och 6 betyder \"inte alls\".'\n },\n 'named': {\n preamble: 'Betyg sätts på en skala mellan 6 och 1 där ',\n scaleDescription: '6=I mycket hög utsträckning, I ganska hög.., I varken hög eller låg.., I ganska låg.., 2=I mycket låg utsträckning och 1=Inte alls.'\n },\n 'named-rev': {\n preamble: 'Betyg sätts på en skala mellan 1 och 6 där ',\n scaleDescription: '1=I mycket hög utsträckning, I ganska hög.., I varken eller, I ganska låg.., I mycket låg utsträckning och 6=Inte alls.'\n },\n 'goodness': {\n preamble: 'Betyg sätts på en skala mellan ',\n scaleDescription: '1 = dåligt och 6 = utmärkt. Positiv andel är betyg 4 (bra) eller högre.'\n }\n};\nexports.ChartDataTransformerRules = [\n { ruleName: 'Identity', transformer: chartData_1.identityTransformer },\n { ruleName: 'EntrepreneurRespondents', transformer: chartData_1.seriesNamesFilterer(['Företagare']) },\n { ruleName: 'PoliticianRespondents', transformer: chartData_1.seriesNamesFilterer(['Politician']) },\n { ruleName: 'BothRespondents', transformer: chartData_1.seriesNamesFilterer(['Företagare', 'Politiker']) }\n];\n// re-type it to 'Factors[]' and export\nexports.Factors = _Factors;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LineChartYearFactory = exports.Year = void 0;\nvar charts_1 = require(\"@amcharts/amcharts4/charts\");\nvar abstractXYChartFactory_1 = require(\"./abstractXYChartFactory\");\nvar chartTheme_1 = require(\"../chartTheme\");\nvar core_1 = require(\"@amcharts/amcharts4/core\");\nexports.Year = 'year';\nvar LineChartYearFactory = /** @class */ (function (_super) {\n __extends(LineChartYearFactory, _super);\n function LineChartYearFactory(props) {\n return _super.call(this, props) || this;\n }\n LineChartYearFactory.prototype.configAxes = function (categoryAxis, valueAxis) {\n _super.prototype.configAxes.call(this, categoryAxis, valueAxis);\n // add a little bit of extra space to not truncate bullets etc when very close to min/max value\n valueAxis.extraMin = 0.05;\n valueAxis.extraMax = 0.05;\n };\n LineChartYearFactory.prototype.addSeriesBullets = function (series) {\n var bullet = series.bullets.push(new charts_1.CircleBullet());\n bullet.circle.radius = 5;\n bullet.circle.stroke = core_1.color(chartTheme_1.BackgroundColor);\n bullet.circle.strokeWidth = 2;\n this.addCustomBulletAppliedToLastYearDataPoint(series);\n };\n LineChartYearFactory.prototype.addCustomBulletAppliedToLastYearDataPoint = function (series) {\n var outerBullet = series.bullets.push(new charts_1.CircleBullet());\n outerBullet.circle.radius = 7;\n outerBullet.fillOpacity = 0.0;\n outerBullet.circle.strokeWidth = 2;\n outerBullet.circle.strokeOpacity = 0.0;\n // Add custom bullet for last datapoint\n // @See: https://www.amcharts.com/docs/v4/concepts/bullets/#Bullets_in_data\n outerBullet.circle.propertyFields.strokeOpacity = LineChartYearFactory.OUTER_BULLET_CIRCLE_OPACITY_FIELD_NAME;\n };\n LineChartYearFactory.prototype.seriesExportExclusions = function () {\n return [\n LineChartYearFactory.OUTER_BULLET_CIRCLE_OPACITY_FIELD_NAME,\n LineChartYearFactory.LINE_SEGMENT_DASH_ARRAY,\n LineChartYearFactory.LINE_SEGMENT_DASH_ARRAY_POLITICIAN\n ];\n };\n LineChartYearFactory.prototype.addSeriesModifications = function (series) {\n if (series.name.indexOf(\"Politiker\") > -1) {\n // Hack for working around missing dashed line issue when there are gaps in series\n series.propertyFields.strokeDasharray = LineChartYearFactory.LINE_SEGMENT_DASH_ARRAY_POLITICIAN;\n }\n else {\n series.propertyFields.strokeDasharray = LineChartYearFactory.LINE_SEGMENT_DASH_ARRAY;\n }\n };\n LineChartYearFactory.prototype.defaultChartType = function () { return charts_1.LineSeries; };\n LineChartYearFactory.OUTER_BULLET_CIRCLE_OPACITY_FIELD_NAME = \"outerBulletCircleOpacity\";\n LineChartYearFactory.OUTER_BULLET_CIRCLE_OPACITY_VISIBLE_VALUE = 0.7;\n LineChartYearFactory.LINE_SEGMENT_DASH_ARRAY = \"lineSegmentDashArray\";\n // Not happy about adding domain specific data here, but found no other way to pickup which series it is.\n LineChartYearFactory.LINE_SEGMENT_DASH_ARRAY_POLITICIAN = \"lineSegmentDashArrayPolitician\";\n return LineChartYearFactory;\n}(abstractXYChartFactory_1.AbstractXYChartFactory));\nexports.LineChartYearFactory = LineChartYearFactory;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BarChartFactory = exports.Category = void 0;\nvar charts_1 = require(\"@amcharts/amcharts4/charts\");\nvar core_1 = require(\"@amcharts/amcharts4/core\");\nvar abstractXYChartFactory_1 = require(\"./abstractXYChartFactory\");\nvar chartTheme_1 = require(\"../chartTheme\");\nvar underscore_1 = __importDefault(require(\"underscore\"));\nexports.Category = 'category';\nvar BarChartFactory = /** @class */ (function (_super) {\n __extends(BarChartFactory, _super);\n function BarChartFactory(props) {\n return _super.call(this, props) || this;\n }\n BarChartFactory.prototype.defaultChartType = function () { return charts_1.ColumnSeries; };\n BarChartFactory.prototype.reverseXY = function () { return true; };\n BarChartFactory.prototype.setChartProps = function (chart) {\n _super.prototype.setChartProps.call(this, chart);\n if (this.props.truncate) {\n // Use a couple of more pixels to the left\n chart.leftAxesContainer.paddingLeft = -10;\n }\n };\n /* Always include zero in order to preserve differences, unless there's a negative value in which case the minimum\n * value is used instead. */\n BarChartFactory.prototype.setMinBasedOnData = function (valueAxis) {\n valueAxis.chart.events.on(\"ready\", function () {\n var minPerCategory = valueAxis.chart.data.map(function (v) { return underscore_1.default.min(underscore_1.default.values(v).filter(underscore_1.default.isNumber)); });\n var minOverall = underscore_1.default.min(minPerCategory);\n valueAxis.min = Math.min(0, minOverall);\n });\n };\n BarChartFactory.prototype.configAxes = function (categoryAxis, valueAxis) {\n var _a, _b, _c, _d;\n _super.prototype.configAxes.call(this, categoryAxis, valueAxis);\n categoryAxis.renderer.maxWidth = 130 + ((_a = this.props.extraLabelWidth) !== null && _a !== void 0 ? _a : 0);\n categoryAxis.renderer.labels.template.maxWidth = 130 + ((_b = this.props.extraLabelWidth) !== null && _b !== void 0 ? _b : 0);\n categoryAxis.renderer.labels.template.truncate = (_c = this.props.truncate) !== null && _c !== void 0 ? _c : false;\n categoryAxis.renderer.labels.template.wrap = (_d = (!this.props.truncate)) !== null && _d !== void 0 ? _d : true;\n categoryAxis.renderer.labels.template.contentAlign = 'right';\n // cell padding - grouping of bars\n categoryAxis.renderer.cellStartLocation = 0.1;\n categoryAxis.renderer.cellEndLocation = 0.9;\n if (this.props.truncate) {\n // When truncating labels there is lot's of vertical room for more labels.\n categoryAxis.renderer.minGridDistance = 10;\n // Add tool tip for labels when truncating.\n categoryAxis.renderer.labels.template.tooltipText = \"{\" + exports.Category + \"}\";\n categoryAxis.renderer.labels.template.tooltipX = core_1.percent(100);\n }\n valueAxis.renderer.minGridDistance = 50;\n this.setMinBasedOnData(valueAxis);\n };\n /*\n * Need to have different rounded-corner-logic depending on whether the value is positive or negative. Otherwise we\n * could've just set it with: series.columns.template.column.cornerRadius(0, 3, 0, 3);\n * https://stackoverflow.com/questions/56555893/how-to-add-rounded-corners-for-amcharts\n * */\n BarChartFactory.prototype.addCornerRadius = function (series, radius) {\n var radiusFn = function (roundedIfPositive) {\n return function (_radius, target) {\n var _a, _b;\n if (target.dataItem instanceof charts_1.ColumnSeriesDataItem) {\n return (((_a = target === null || target === void 0 ? void 0 : target.dataItem) === null || _a === void 0 ? void 0 : _a.valueX) >= 0 && roundedIfPositive) ||\n (((_b = target === null || target === void 0 ? void 0 : target.dataItem) === null || _b === void 0 ? void 0 : _b.valueX) < 0 && !roundedIfPositive)\n ? radius\n : 0;\n }\n return 0;\n };\n };\n series.columns.template.column.adapter.add(\"cornerRadiusTopLeft\", radiusFn(false));\n series.columns.template.column.adapter.add(\"cornerRadiusTopRight\", radiusFn(true));\n series.columns.template.column.adapter.add(\"cornerRadiusBottomLeft\", radiusFn(false));\n series.columns.template.column.adapter.add(\"cornerRadiusBottomRight\", radiusFn(true));\n };\n BarChartFactory.prototype.setMinValueZero = function (chart) {\n this.getValueAxis(chart).each(function (valueAxis) {\n if (valueAxis instanceof charts_1.ValueAxis) {\n valueAxis.min = 0;\n }\n });\n };\n BarChartFactory.prototype.addSeriesBullets = function (series) {\n if (series instanceof charts_1.ColumnSeries) {\n this.addCornerRadius(series, 3);\n var valueLabel = BarChartFactory.addColumnSeriesLabelBullets(series, this.getSeriesValueXYName(), this.props.seriesIsIntegerData ? chartTheme_1.numberFormatter0Decimals : chartTheme_1.numberFormatter1Decimals);\n // which point of the label container should be used for anchoring it to the bar (\"right\" makes it appear inside\n // the bar itself\n valueLabel.label.horizontalCenter = \"right\";\n var itemWidthThreshold_1 = 30;\n valueLabel.events.on(\"ready\", function (e) {\n if (e.target.dataItem instanceof charts_1.ColumnSeriesDataItem) {\n var csDataItem = e.target.dataItem;\n if (csDataItem.valueX < 0) {\n // we use the left side of the label as center when the value is negative so that it's inside the bar\n e.target.label.horizontalCenter = \"left\";\n e.target.label.fill = chartTheme_1.WhiteColor;\n // prevent labels from disappearing if value is too small\n if (csDataItem.itemWidth < itemWidthThreshold_1) {\n // when the bar is very short and the item is negative, we show it 3 px to the right of the 0 line (y-axis)\n e.target.label.fill = chartTheme_1.PrimaryTextColor;\n e.target.label.dx = csDataItem.itemWidth + 3;\n }\n }\n else {\n // prevent labels from disappearing if value is too small\n if (csDataItem.itemWidth < itemWidthThreshold_1) {\n e.target.label.fill = chartTheme_1.PrimaryTextColor;\n e.target.label.horizontalCenter = \"left\";\n e.target.label.dx = 5;\n }\n }\n }\n });\n }\n };\n BarChartFactory.addColumnSeriesLabelBullets = function (series, valueXYName, formatter) {\n var valueLabel = series.bullets.push(new charts_1.LabelBullet());\n valueLabel.label.text = \"{\" + valueXYName + \".formatNumber(\\\"\" + formatter.numberFormat + \"\\\")}\";\n valueLabel.label.fill = chartTheme_1.WhiteColor;\n valueLabel.label.fontSize = 11;\n valueLabel.label.fontWeight = \"bold\";\n valueLabel.label.truncate = false;\n valueLabel.label.hideOversized = false;\n return valueLabel;\n };\n BarChartFactory.prototype.addLegend = function (chart) {\n _super.prototype.addLegend.call(this, chart);\n // make legend markers smaller than default\n chart.legend.markers.template.width = 12;\n chart.legend.markers.template.height = 12;\n };\n return BarChartFactory;\n}(abstractXYChartFactory_1.AbstractXYChartFactory));\nexports.BarChartFactory = BarChartFactory;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Municipalities = exports.CountiesAndMunicipalities = exports.CountyNames = exports.Sweden = exports.Counties = void 0;\nvar _ = __importStar(require(\"lodash\"));\nexports.Counties = {\n \"county\": {\n \"ab_stockholms_lan\": [\n \"Stockholms län\",\n \"Botkyrka\",\n \"Danderyd\",\n \"Ekerö\",\n \"Haninge\",\n \"Huddinge\",\n \"Järfälla\",\n \"Lidingö\",\n \"Nacka\",\n \"Norrtälje\",\n \"Nykvarn\",\n \"Nynäshamn\",\n \"Salem\",\n \"Sigtuna\",\n \"Sollentuna\",\n \"Solna\",\n \"Stockholm\",\n \"Sundbyberg\",\n \"Södertälje\",\n \"Tyresö\",\n \"Täby\",\n \"Upplands-Bro\",\n \"Upplands Väsby\",\n \"Vallentuna\",\n \"Vaxholm\",\n \"Värmdö\",\n \"Österåker\"\n ],\n \"c_uppsala_lan\": [\n \"Uppsala län\",\n \"Enköping\",\n \"Heby\",\n \"Håbo\",\n \"Knivsta\",\n \"Tierp\",\n \"Uppsala\",\n \"Älvkarleby\",\n \"Östhammar\"\n ],\n \"d_sodermanlands_lan\": [\n \"Södermanlands län\",\n \"Eskilstuna\",\n \"Flen\",\n \"Gnesta\",\n \"Katrineholm\",\n \"Nyköping\",\n \"Oxelösund\",\n \"Strängnäs\",\n \"Trosa\",\n \"Vingåker\"\n ],\n \"e_ostergotlands_lan\": [\n \"Östergötlands län\",\n \"Boxholm\",\n \"Finspång\",\n \"Kinda\",\n \"Linköping\",\n \"Mjölby\",\n \"Motala\",\n \"Norrköping\",\n \"Söderköping\",\n \"Vadstena\",\n \"Valdemarsvik\",\n \"Ydre\",\n \"Åtvidaberg\",\n \"Ödeshög\"\n ],\n \"f_jonkopings_lan\": [\n \"Jönköpings län\",\n \"Aneby\",\n \"Eksjö\",\n \"Gislaved\",\n \"Gnosjö\",\n \"Habo\",\n \"Jönköping\",\n \"Mullsjö\",\n \"Nässjö\",\n \"Sävsjö\",\n \"Tranås\",\n \"Vaggeryd\",\n \"Vetlanda\",\n \"Värnamo\"\n ],\n \"g_kronobergs_lan\": [\n \"Kronobergs län\",\n \"Alvesta\",\n \"Lessebo\",\n \"Ljungby\",\n \"Markaryd\",\n \"Tingsryd\",\n \"Uppvidinge\",\n \"Växjö\",\n \"Älmhult\"\n ],\n \"h_kalmar_lan\": [\n \"Kalmar län\",\n \"Borgholm\",\n \"Emmaboda\",\n \"Hultsfred\",\n \"Högsby\",\n \"Kalmar\",\n \"Mönsterås\",\n \"Mörbylånga\",\n \"Nybro\",\n \"Oskarshamn\",\n \"Torsås\",\n \"Vimmerby\",\n \"Västervik\"\n ],\n \"i_gotlands_lan\": [\n \"Gotlands län\",\n \"Gotland\"\n ],\n \"k_blekinge_lan\": [\n \"Blekinge län\",\n \"Karlshamn\",\n \"Karlskrona\",\n \"Olofström\",\n \"Ronneby\",\n \"Sölvesborg\"\n ],\n \"m_skane_lan\": [\n \"Skåne län\",\n \"Bjuv\",\n \"Bromölla\",\n \"Burlöv\",\n \"Båstad\",\n \"Eslöv\",\n \"Helsingborg\",\n \"Hässleholm\",\n \"Höganäs\",\n \"Hörby\",\n \"Höör\",\n \"Klippan\",\n \"Kristianstad\",\n \"Kävlinge\",\n \"Landskrona\",\n \"Lomma\",\n \"Lund\",\n \"Malmö\",\n \"Osby\",\n \"Perstorp\",\n \"Simrishamn\",\n \"Sjöbo\",\n \"Skurup\",\n \"Staffanstorp\",\n \"Svalöv\",\n \"Svedala\",\n \"Tomelilla\",\n \"Trelleborg\",\n \"Vellinge\",\n \"Ystad\",\n \"Åstorp\",\n \"Ängelholm\",\n \"Örkelljunga\",\n \"Östra Göinge\"\n ],\n \"n_hallands_lan\": [\n \"Hallands län\",\n \"Falkenberg\",\n \"Halmstad\",\n \"Hylte\",\n \"Kungsbacka\",\n \"Laholm\",\n \"Varberg\"\n ],\n \"o_vastra_gotalands_lan\": [\n \"Västra Götalands län\",\n \"Ale\",\n \"Alingsås\",\n \"Bengtsfors\",\n \"Bollebygd\",\n \"Borås\",\n \"Dals-Ed\",\n \"Essunga\",\n \"Falköping\",\n \"Färgelanda\",\n \"Grästorp\",\n \"Gullspång\",\n \"Göteborg\",\n \"Götene\",\n \"Herrljunga\",\n \"Hjo\",\n \"Härryda\",\n \"Karlsborg\",\n \"Kungälv\",\n \"Lerum\",\n \"Lidköping\",\n \"Lilla Edet\",\n \"Lysekil\",\n \"Mariestad\",\n \"Mark\",\n \"Mellerud\",\n \"Munkedal\",\n \"Mölndal\",\n \"Orust\",\n \"Partille\",\n \"Skara\",\n \"Skövde\",\n \"Sotenäs\",\n \"Stenungsund\",\n \"Strömstad\",\n \"Svenljunga\",\n \"Tanum\",\n \"Tibro\",\n \"Tidaholm\",\n \"Tjörn\",\n \"Tranemo\",\n \"Trollhättan\",\n \"Töreboda\",\n \"Uddevalla\",\n \"Ulricehamn\",\n \"Vara\",\n \"Vårgårda\",\n \"Vänersborg\",\n \"Åmål\",\n \"Öckerö\"\n ],\n \"s_varmlands_lan\": [\n \"Värmlands län\",\n \"Arvika\",\n \"Eda\",\n \"Filipstad\",\n \"Forshaga\",\n \"Grums\",\n \"Hagfors\",\n \"Hammarö\",\n \"Karlstad\",\n \"Kil\",\n \"Kristinehamn\",\n \"Munkfors\",\n \"Storfors\",\n \"Sunne\",\n \"Säffle\",\n \"Torsby\",\n \"Årjäng\"\n ],\n \"t_orebro_lan\": [\n \"Örebro län\",\n \"Askersund\",\n \"Degerfors\",\n \"Hallsberg\",\n \"Hällefors\",\n \"Karlskoga\",\n \"Kumla\",\n \"Laxå\",\n \"Lekeberg\",\n \"Lindesberg\",\n \"Ljusnarsberg\",\n \"Nora\",\n \"Örebro\"\n ],\n \"u_vastmanlands_lan\": [\n \"Västmanlands län\",\n \"Arboga\",\n \"Fagersta\",\n \"Hallstahammar\",\n \"Kungsör\",\n \"Köping\",\n \"Norberg\",\n \"Sala\",\n \"Skinnskatteberg\",\n \"Surahammar\",\n \"Västerås\"\n ],\n \"w_dalarnas_lan\": [\n \"Dalarnas län\",\n \"Avesta\",\n \"Borlänge\",\n \"Falun\",\n \"Gagnef\",\n \"Hedemora\",\n \"Leksand\",\n \"Ludvika\",\n \"Malung-Sälen\",\n \"Mora\",\n \"Orsa\",\n \"Rättvik\",\n \"Smedjebacken\",\n \"Säter\",\n \"Vansbro\",\n \"Älvdalen\"\n ],\n \"x_gavleborgs_lan\": [\n \"Gävleborgs län\",\n \"Bollnäs\",\n \"Gävle\",\n \"Hofors\",\n \"Hudiksvall\",\n \"Ljusdal\",\n \"Nordanstig\",\n \"Ockelbo\",\n \"Ovanåker\",\n \"Sandviken\",\n \"Söderhamn\"\n ],\n \"y_vasternorrlands_lan\": [\n \"Västernorrlands län\",\n \"Härnösand\",\n \"Kramfors\",\n \"Sollefteå\",\n \"Sundsvall\",\n \"Timrå\",\n \"Ånge\",\n \"Örnsköldsvik\"\n ],\n \"z_jamtlands_lan\": [\n \"Jämtlands län\",\n \"Berg\",\n \"Bräcke\",\n \"Härjedalen\",\n \"Krokom\",\n \"Ragunda\",\n \"Strömsund\",\n \"Åre\",\n \"Östersund\"\n ],\n \"ac_vasterbottens_lan\": [\n \"Västerbottens län\",\n \"Bjurholm\",\n \"Dorotea\",\n \"Lycksele\",\n \"Malå\",\n \"Nordmaling\",\n \"Norsjö\",\n \"Robertsfors\",\n \"Skellefteå\",\n \"Sorsele\",\n \"Storuman\",\n \"Umeå\",\n \"Vilhelmina\",\n \"Vindeln\",\n \"Vännäs\",\n \"Åsele\"\n ],\n \"bd_norrbottens_lan\": [\n \"Norrbottens län\",\n \"Arjeplog\",\n \"Arvidsjaur\",\n \"Boden\",\n \"Gällivare\",\n \"Haparanda\",\n \"Jokkmokk\",\n \"Kalix\",\n \"Kiruna\",\n \"Luleå\",\n \"Pajala\",\n \"Piteå\",\n \"Älvsbyn\",\n \"Överkalix\",\n \"Övertorneå\"\n ]\n }\n};\nexports.Sweden = \"Sverige\";\n// set of string names of _counties_\n// eslint-disable-next-line @typescript-eslint/no-non-null-assertion,@typescript-eslint/no-extra-non-null-assertion\nexports.CountyNames = _.map(exports.Counties.county, function (county_is_first) { return _.first(county_is_first); }).sort();\nexports.CountiesAndMunicipalities = _.flatMap(exports.Counties.county, function (value) { return value; }).sort();\nexports.Municipalities = _.difference(exports.CountiesAndMunicipalities, exports.CountyNames);\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FactorChartComponent = void 0;\nvar React = __importStar(require(\"react\"));\nvar react_1 = require(\"react\");\nvar lineChartYearFactory_1 = require(\"./factories/lineChartYearFactory\");\nvar toLineChartYearConverter_1 = require(\"./toLineChartYearConverter\");\nvar barChartFactory_1 = require(\"./factories/barChartFactory\");\nvar toBarChartConverter_1 = require(\"./toBarChartConverter\");\nvar _ = __importStar(require(\"lodash\"));\nvar XYChartComponent_1 = require(\"./XYChartComponent\");\nvar invertedRankingChartFactory_1 = require(\"./factories/invertedRankingChartFactory\");\nvar toBarChartCombinedConverter_1 = require(\"./toBarChartCombinedConverter\");\nvar getTopTitle = function (props, chartProps, extraParenthesizedItems) {\n var sourceTranslated = props.factorService.getSourceTranslated(props.factorSlug);\n var units = chartProps === null || chartProps === void 0 ? void 0 : chartProps.seriesAttributes.map(function (sa) { return sa.seriesUnit; });\n var uniqueUnits = _.uniq(units);\n var parenthesisData = _.filter(__spreadArrays([\n props.respondentType\n ], uniqueUnits, (extraParenthesizedItems !== null && extraParenthesizedItems !== void 0 ? extraParenthesizedItems : [])), function (elem) {\n return !_.isEmpty(elem) &&\n (elem === null || elem === void 0 ? void 0 : elem.toLowerCase()) !== \"svarssnitt\";\n } // ugly hack for removing unwanted \"Svarssnitt\" unit in title\n );\n return !_.isEmpty(parenthesisData)\n ? sourceTranslated + \" (\" + parenthesisData.join(\", \") + \")\"\n : \"\" + sourceTranslated;\n};\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nvar getSources = function (sources, sourceFilter) {\n if (sourceFilter === void 0) { sourceFilter = function () { return true; }; }\n var sourcesList;\n if (sources) {\n var uniqSources = _.chain(sources).uniq().filter(function (s) { return !_.isEmpty(s); }).value();\n var splitSources = _.flatMap(uniqSources, function (us) { return us.split(\",\"); });\n sourcesList = _.filter(splitSources, sourceFilter);\n }\n else {\n sourcesList = undefined;\n }\n return sourcesList !== undefined && !_.isEmpty(sourcesList) ? \"K\\u00E4lla: \" + sourcesList.join(\", \") : undefined;\n};\n/* During the time between the survey release and the ranking release, the survey ranking factors should not be included\n* in the data which is exported as XLSX directly from the charts. Need to be updated before ranking release. */\nvar forbiddenExportYear = '2025';\nvar latestYearSurveyFactorExportDataFilterCreator = function (factorService, factorSlug) {\n if (factorService.isRankingFactor(factorSlug) && factorService.getSource(factorSlug)) {\n return function (data) {\n var filteredData = data.data.filter(function (item) {\n var year = item.year;\n return year != forbiddenExportYear;\n });\n return { data: filteredData };\n };\n }\n else {\n return undefined;\n }\n};\n// Ugly hack for making sure the result of the most recently issued api call doesn't get overwritten by a slower request\n// issued earlier. Whole issue originates from the includeSwedenByDefault() functionality and causes multiple API calls.\n// (Switching between Nyföretagsamhet and Arbetsställen triggers it around half of the time.)\nvar uglyRequestIndexHackCounter = 0;\nvar MunicipalityFactorValues = function (props) {\n var dataClientFactory = props.dataClientFactory, factorSlug = props.factorSlug, chartingLabel = props.chartingLabel, municipalities = props.municipalities, respondentType = props.respondentType, factorService = props.factorService;\n var _a = react_1.useState(), lineChartYearFactoryProps = _a[0], setLineChartYearFactoryProps = _a[1];\n React.useEffect(function () {\n // Uncomment to notice the double api requests\n // console.log(\"MUNICIPALITIES:\")\n // console.log(municipalities);\n var requestIndex = ++uglyRequestIndexHackCounter;\n dataClientFactory(factorSlug, chartingLabel).getMFVData({ municipalities: municipalities, respondentType: respondentType })\n .then(function (chartData) {\n if (requestIndex !== uglyRequestIndexHackCounter) {\n return;\n }\n if (props.chartDataDataTransformer) {\n chartData = props.chartDataDataTransformer(chartData);\n }\n var chartConfig = factorService.getChartConfig(factorSlug, chartingLabel);\n var lcyData = toLineChartYearConverter_1.toLineChartYearData(chartData, chartConfig);\n var sources = getSources(_.values(lcyData.sources), chartConfig.sourceExcludeFilter);\n setLineChartYearFactoryProps(__assign(__assign({}, lcyData), { fullScreenButtonHandler: props.fullScreenButtonHandler, showSNLogo: props.showSNLogo, exportMenuElemId: props.exportMenuElemId, exportDataFilter: latestYearSurveyFactorExportDataFilterCreator(factorService, factorSlug), topTitle: getTopTitle(props, lcyData, [chartConfig.unit, sources]), subtitle: factorService.getFactorDescription(factorSlug), scaleDescription: factorService.getScaleDescription(factorSlug, chartingLabel), seriesIsIntegerData: chartConfig.seriesIsIntegerData }));\n });\n }, [props, factorSlug, chartingLabel, municipalities, respondentType, dataClientFactory, factorService]);\n if (!lineChartYearFactoryProps)\n return null;\n var ChartFactory = factorService.getChartConfig(factorSlug, chartingLabel).isRankingChart\n ? invertedRankingChartFactory_1.InvertedRankingChartFactory\n : lineChartYearFactory_1.LineChartYearFactory;\n var chartFactory = new ChartFactory(lineChartYearFactoryProps);\n return React.createElement(XYChartComponent_1.XYChartComponent, { chartFactory: chartFactory, width: props.width, height: props.height, chartFooterComponent: props.chartFooterComponent });\n};\nfunction useSurveyFactorBothLineChart(getSFBData, props) {\n var dataClientFactory = props.dataClientFactory, factorSlug = props.factorSlug, municipalities = props.municipalities, respondentType = props.respondentType, factorService = props.factorService, chartingLabel = props.chartingLabel;\n var _a = React.useState(), lineChartYearFactoryProps = _a[0], setLineChartYearFactoryProps = _a[1];\n React.useEffect(function () {\n var requestIndex = ++uglyRequestIndexHackCounter;\n getSFBData()\n .then(function (chartData) {\n if (requestIndex !== uglyRequestIndexHackCounter) {\n return;\n }\n if (props.chartDataDataTransformer) {\n chartData = props.chartDataDataTransformer(chartData);\n }\n var chartConfig = factorService.getChartConfig(factorSlug, chartingLabel);\n var lcyData = toLineChartYearConverter_1.toLineChartYearData(chartData, chartConfig);\n var sources = getSources(_.values(lcyData.sources), chartConfig.sourceExcludeFilter);\n setLineChartYearFactoryProps(__assign(__assign({}, lcyData), { fullScreenButtonHandler: props.fullScreenButtonHandler, showSNLogo: props.showSNLogo, exportMenuElemId: props.exportMenuElemId, exportDataFilter: latestYearSurveyFactorExportDataFilterCreator(factorService, factorSlug), topTitle: getTopTitle(props, lcyData, __spreadArrays(municipalities, [chartConfig.unit, sources])), subtitle: factorService.getFactorDescription(factorSlug), scaleDescription: factorService.getScaleDescription(factorSlug, chartingLabel), seriesIsIntegerData: chartConfig.seriesIsIntegerData }));\n });\n }, [props, factorSlug, municipalities, respondentType, dataClientFactory, factorService, getSFBData, chartingLabel]);\n if (!lineChartYearFactoryProps)\n return null;\n var chartFactory = new lineChartYearFactory_1.LineChartYearFactory(lineChartYearFactoryProps);\n return React.createElement(XYChartComponent_1.XYChartComponent, { chartFactory: chartFactory, width: props.width, height: props.height, chartFooterComponent: props.chartFooterComponent });\n}\nvar SurveyFactorBothLineChart = function (props) {\n return useSurveyFactorBothLineChart(React.useCallback(function () { return props.dataClientFactory(props.factorSlug, props.chartingLabel).getSFBData(props); }, [props]), props);\n};\nvar SurveyFactorBothMultiLineChart = function (props) {\n return useSurveyFactorBothLineChart(React.useCallback(function () { return props.dataClientFactory(props.factorSlug, props.chartingLabel).getSFBMData(props); }, [props]), props);\n};\nfunction useSurveySimpleBarchart(transformer, props) {\n var _a;\n var factorSlug = props.factorSlug, factorService = props.factorService, chartingLabel = props.chartingLabel;\n var _b = React.useState(), barChartFactoryProps = _b[0], setBarChartFactoryProps = _b[1];\n React.useEffect(function () {\n var requestIndex = ++uglyRequestIndexHackCounter;\n transformer().then(function (props) {\n if (requestIndex !== uglyRequestIndexHackCounter) {\n return;\n }\n setBarChartFactoryProps(props);\n });\n }, [transformer, setBarChartFactoryProps]);\n if (!barChartFactoryProps)\n return null;\n var chartConfig = factorService.getChartConfig(factorSlug, chartingLabel);\n var sources = getSources(_.values(barChartFactoryProps.sources), chartConfig.sourceExcludeFilter);\n var chartFactory = new barChartFactory_1.BarChartFactory(__assign(__assign({}, barChartFactoryProps), { fullScreenButtonHandler: props.fullScreenButtonHandler, showSNLogo: props.showSNLogo, exportMenuElemId: props.exportMenuElemId, exportDataFilter: latestYearSurveyFactorExportDataFilterCreator(factorService, factorSlug), topTitle: getTopTitle(props, barChartFactoryProps, [barChartFactoryProps.year, chartConfig.unit, sources]), subtitle: factorService.getFactorDescription(factorSlug), scaleDescription: factorService.getScaleDescription(factorSlug, chartingLabel), extraLabelWidth: chartConfig === null || chartConfig === void 0 ? void 0 : chartConfig.extraLabelWidth, truncate: (_a = factorService.getChartConfig(factorSlug)) === null || _a === void 0 ? void 0 : _a.truncate, seriesIsIntegerData: chartConfig.seriesIsIntegerData }));\n return React.createElement(XYChartComponent_1.XYChartComponent, { chartFactory: chartFactory, width: props.width, height: props.height, chartFooterComponent: props.chartFooterComponent });\n}\nvar SurveySimpleBarchartCombined = function (props) {\n var dataClientFactory = props.dataClientFactory, factorSlug = props.factorSlug, municipalities = props.municipalities, respondentType = props.respondentType, factorService = props.factorService, dataEndpoint = props.dataEndpoint, chartingLabel = props.chartingLabel;\n var propsWithoutRespondentTypes = __assign(__assign({}, props), { respondentType: undefined });\n var callback = React.useCallback(function () {\n return dataClientFactory(factorSlug, chartingLabel)\n .getBarChartDataCombinedRespondents({ municipalities: municipalities, respondentType: respondentType }, dataEndpoint !== null && dataEndpoint !== void 0 ? dataEndpoint : 'SurveySimpleBarchart')\n .then(function (chartData) { return toBarChartCombinedConverter_1.toBarChartDataCombined(chartData, factorService.getChartConfig(factorSlug, chartingLabel)); });\n }, [dataClientFactory, factorSlug, chartingLabel, municipalities, respondentType, dataEndpoint, factorService]);\n return useSurveySimpleBarchart(callback, propsWithoutRespondentTypes);\n};\nvar SurveySimpleBarchart = function (props) {\n var dataClientFactory = props.dataClientFactory, municipalities = props.municipalities, respondentType = props.respondentType, factorService = props.factorService, factorSlug = props.factorSlug, chartingLabel = props.chartingLabel, dataEndpoint = props.dataEndpoint;\n var callback = React.useCallback(function () {\n return dataClientFactory(factorSlug, chartingLabel).getBarChartData({ municipalities: municipalities, respondentType: respondentType }, dataEndpoint !== null && dataEndpoint !== void 0 ? dataEndpoint : 'SurveySimpleBarchart')\n .then(function (chartData) { return toBarChartConverter_1.toBarChartData(chartData, factorService.getChartConfig(factorSlug, chartingLabel)); });\n }, [dataClientFactory, factorSlug, chartingLabel, municipalities, respondentType, dataEndpoint, factorService]);\n return useSurveySimpleBarchart(callback, props);\n};\nvar InDepthSurveyQuestions = function (props) {\n return React.createElement(SurveySimpleBarchart, __assign({}, props, { dataEndpoint: 'InDepthSurveyQuestions' }));\n};\nexports.FactorChartComponent = function (props) {\n if (_.isEmpty(props.municipalities))\n return null;\n var dataEndpoint = props.dataEndpoint, factorSlug = props.factorSlug, factorService = props.factorService, chartingLabel = props.chartingLabel;\n // chart type selector\n switch (dataEndpoint !== null && dataEndpoint !== void 0 ? dataEndpoint : factorService.getDataEndpoint(factorSlug, chartingLabel)) {\n case 'MunicipalityFactorValues':\n return React.createElement(MunicipalityFactorValues, __assign({}, props));\n case 'SurveyFactorBoth':\n return React.createElement(SurveyFactorBothLineChart, __assign({}, props));\n case 'SurveyFactorBothMulti':\n return React.createElement(SurveyFactorBothMultiLineChart, __assign({}, props));\n case 'SurveySimpleBarchart':\n return React.createElement(SurveySimpleBarchart, __assign({}, props));\n case 'SurveySimpleBarchartCombined':\n return React.createElement(SurveySimpleBarchartCombined, __assign({}, props));\n case 'InDepthSurveyQuestions':\n return React.createElement(InDepthSurveyQuestions, __assign({}, props));\n }\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.seriesAttributesFromDataDesc = void 0;\nvar _ = __importStar(require(\"lodash\"));\nfunction seriesAttributesFromDataDesc(datadesc, indexFilter, unitFilter) {\n return _.chain(datadesc)\n .filter(function (_, index) { return indexFilter(index); })\n .map(function (dd) {\n if (dd.unit && unitFilter(dd.unit)) {\n return { seriesName: dd.legend, seriesUnit: dd.unit };\n }\n else {\n return { seriesName: dd.legend, seriesUnit: null };\n }\n })\n .value();\n}\nexports.seriesAttributesFromDataDesc = seriesAttributesFromDataDesc;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createAxisGrid = void 0;\nexports.createAxisGrid = function (valueAxis) { return function (value) {\n if (valueAxis.axisRanges.values.findIndex(function (range) { return range.value === value; }) === -1) {\n var range = valueAxis.axisRanges.create();\n range.value = value;\n range.label.text = \"{value}\";\n }\n}; };\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDelta = exports.getAvailableYears = void 0;\nvar _ = __importStar(require(\"lodash\"));\nfunction getAvailableYears(ranks) {\n return _.keys(ranks).map(function (yStr) { return parseInt(yStr); }).sort();\n}\nexports.getAvailableYears = getAvailableYears;\nfunction getDelta(ranks, latestYear) {\n var latestRank = ranks[latestYear];\n var previousRank = ranks[latestYear - 1];\n if (!latestRank || !previousRank || latestRank === previousRank) {\n return 0;\n }\n else {\n return previousRank - latestRank;\n }\n}\nexports.getDelta = getDelta;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useQueryParamSynched = void 0;\nvar qs_1 = __importDefault(require(\"qs\"));\nvar react_1 = require(\"react\");\nvar react_2 = require(\"react\");\nfunction useQueryParamSynched(qpParamName, initialValue) {\n var qpValue = qs_1.default.parse(window.location.search.substring(1))[qpParamName];\n var _a = react_2.useState(qpValue !== null && qpValue !== void 0 ? qpValue : initialValue), value = _a[0], setValue0 = _a[1];\n var setValue = react_1.useCallback(function (value) {\n var qp = qs_1.default.parse(window.location.search.substring(1));\n qp[qpParamName] = value;\n window.history.replaceState({}, \"\", \"?\" + qs_1.default.stringify(qp));\n setValue0(value);\n }, [setValue0, qpParamName]);\n return [value, setValue];\n}\nexports.useQueryParamSynched = useQueryParamSynched;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFilterList = exports.namePassesFilter = exports.isFilteringActive = void 0;\nvar _ = __importStar(require(\"lodash\"));\nvar react_1 = __importDefault(require(\"react\"));\nexports.isFilteringActive = function (filterList) { return !_.isEmpty(filterList); };\nexports.namePassesFilter = function (name, filterList) {\n if (!exports.isFilteringActive(filterList))\n return true;\n var nameLower = name.toLocaleLowerCase();\n return _.some(filterList, function (filterString) { return nameLower.indexOf(filterString) !== -1; });\n};\nfunction useFilterList(initial) {\n var _a = react_1.default.useState(initial), filterList = _a[0], setFilterList = _a[1];\n var onChange = function (e) {\n var inputValue = e.target.value.trim();\n if ('' === inputValue) {\n // all visible\n setFilterList([]);\n }\n else {\n // filter\n var filterList_1 = inputValue.split(\",\").map(function (s) { return s.trim().toLocaleLowerCase(); }).filter(function (s) { return s.length !== 0; });\n setFilterList(filterList_1);\n }\n };\n return [filterList, setFilterList, onChange];\n}\nexports.useFilterList = useFilterList;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FactorService = void 0;\nvar factors_1 = require(\"../fixtures/factors\");\nvar _ = __importStar(require(\"lodash\"));\nvar func_1 = require(\"../react/util/func\");\nvar chartConfig_1 = require(\"./chartConfig\");\nvar comparisonConfig_1 = require(\"./comparisonConfig\");\nvar SourceSwedishMapping = {\n survey: \"Enkätsvar\",\n statistics: \"Statistik\",\n ranking: \"Ranking\"\n};\n/*\n* Future improvement: Since the FactorSlug is an argument to all methods it might be an idea to add an wrapper where the\n* FactorSlug is fixed. This would avoid us having to pass both the service and the FactorSlug as a parameter in a lot\n* of places. */\nvar FactorService = /** @class */ (function () {\n function FactorService(factors) {\n if (factors === void 0) { factors = factors_1.Factors; }\n this.factors = factors;\n this.factorFromSlug = _.keyBy(factors, function (f) { return f.slug; });\n }\n FactorService.prototype.validatedLookup = function (o, factorSlug, property) {\n var value = o[factorSlug];\n if (!value) {\n throw new Error(property + \" not found for slug \" + factorSlug);\n }\n return value[property];\n };\n FactorService.prototype.getFactor = function (factorSlug) {\n return this.factorFromSlug[factorSlug];\n };\n FactorService.prototype.getName = function (factorSlug) {\n return this.factorFromSlug[factorSlug].name;\n };\n FactorService.prototype.isRespondentTypeApplicable = function (factorSlug, chartingLabel) {\n var excludedEndpoints = ['SurveyFactorBothMulti', 'SurveySimpleBarchartCombined'];\n return !_.includes(excludedEndpoints, this.getDataEndpoint(factorSlug, chartingLabel));\n };\n FactorService.prototype.getSource = function (factorSlug) {\n return this.validatedLookup(this.factorFromSlug, factorSlug, 'source');\n };\n // Ideally translations should not go here. Move at will.\n FactorService.prototype.getSourceTranslated = function (factorSlug) {\n return SourceSwedishMapping[this.getSource(factorSlug)];\n };\n FactorService.prototype.getApiName = function (factorSlug) {\n return this.validatedLookup(this.factorFromSlug, factorSlug, 'api_name');\n };\n FactorService.prototype.getChartingLabels = function (factorSlug) {\n var charting = this.validatedLookup(this.factorFromSlug, factorSlug, 'chartingArray');\n var labels = charting === null || charting === void 0 ? void 0 : charting.map(function (c) { return c.label; });\n return labels ? labels.filter(func_1.isDefined) : [];\n };\n FactorService.prototype.getCharting = function (factorSlug, label) {\n var chartingArray = this.validatedLookup(this.factorFromSlug, factorSlug, 'chartingArray');\n if (func_1.isDefined(chartingArray)) {\n if (label) {\n // if a label is provided we need to match it\n var theOneMatchingLabel = _.find(chartingArray, function (c) { return c.label === label; });\n if (theOneMatchingLabel) {\n return theOneMatchingLabel;\n }\n else {\n throw Error(\"Factor slug: \\\"\" + factorSlug + \"\\\". No chart config matching label \" + label + \" found.\");\n }\n }\n else {\n // if no label is required, we just pick the first (analogous to old behavior with single chart config)\n var first = chartingArray[0], rest = chartingArray.slice(1);\n if (_.isEmpty(rest)) {\n return first;\n }\n else {\n throw Error(\"Factor slug: \\\"\" + factorSlug + \"\\\". Need to provide a charting label. Valid are: \" + chartingArray.map(function (c) { return c.label; }).join(\", \"));\n }\n }\n }\n // fallback to just return an empty charting\n return {};\n };\n FactorService.prototype.getChartDataDataTransformer = function (factorCharting) {\n var _a;\n var ruleName = factorCharting === null || factorCharting === void 0 ? void 0 : factorCharting.chartDataTransformerRule;\n if (factorCharting === null || factorCharting === void 0 ? void 0 : factorCharting.chartDataTransformerRule) {\n var transformer = (_a = _.find(factors_1.ChartDataTransformerRules, function (rule) { return rule.ruleName === ruleName; })) === null || _a === void 0 ? void 0 : _a.transformer;\n if (!transformer) {\n throw new Error('No corresponding transformer to ' + ruleName);\n }\n return transformer;\n }\n return _.identity;\n };\n FactorService.prototype.getChartConfig = function (factorSlug, chartingLabel) {\n var _a;\n return new chartConfig_1.ChartConfig((_a = this.getCharting(factorSlug, chartingLabel)) === null || _a === void 0 ? void 0 : _a.chart);\n };\n FactorService.prototype.getComparisonConfig = function (factorSlug, label) {\n var _a;\n return new comparisonConfig_1.ComparisonConfig((_a = this.getCharting(factorSlug, label)) === null || _a === void 0 ? void 0 : _a.factorComparison);\n };\n FactorService.prototype.getDataEndpoint = function (factorSlug, chartingLabel) {\n var dataEndpoint = this.getChartConfig(factorSlug, chartingLabel).defaultChartDataEndpointName;\n if (dataEndpoint) {\n return dataEndpoint;\n }\n if (!dataEndpoint && this.getSource(factorSlug) === 'survey') {\n // default survey chart shows both respondents types\n return 'SurveyFactorBothMulti';\n }\n return 'MunicipalityFactorValues';\n };\n FactorService.prototype.getFactorDescription = function (factorSlug) {\n var _a;\n return (_a = this.validatedLookup(this.factorFromSlug, factorSlug, 'description')) !== null && _a !== void 0 ? _a : '';\n };\n FactorService.prototype.getScaleDescription = function (factorSlug, label) {\n var _a;\n var gradingScaleType = (_a = this.getComparisonConfig(factorSlug, label)) === null || _a === void 0 ? void 0 : _a.gradingScaleType;\n return gradingScaleType\n ? factors_1.gradingScaleTypeDescription[gradingScaleType].scaleDescription\n : undefined;\n };\n FactorService.prototype.isRankingFactor = function (factorSlug) {\n return this.validatedLookup(this.factorFromSlug, factorSlug, 'ranking');\n };\n return FactorService;\n}());\nexports.FactorService = FactorService;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GuidePieSmall = void 0;\nvar React = __importStar(require(\"react\"));\nexports.GuidePieSmall = function (_a) {\n var percentage = _a.percentage;\n return React.createElement(\"div\", { className: \"guider-pie\", \"data-value\": percentage });\n};\n// rails-react needs a default export in order to be able to find a component\n// noinspection JSUnusedGlobalSymbols\nexports.default = exports.GuidePieSmall;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBarChartData = void 0;\nvar _ = __importStar(require(\"lodash\"));\nvar barChartFactory_1 = require(\"./factories/barChartFactory\");\nvar converterUtil_1 = require(\"./converterUtil\");\nfunction toBarChartData(chartData, chartService) {\n var _a, _b, _c, _d;\n var attributes = chartData.attributes, data = chartData.data;\n var datadesc = attributes.datadesc;\n var indexOfCategory = 0;\n var seriesLegendNames = _.map(datadesc, function (cdd) { return cdd.legend; });\n var seriesData = _.map(data.data, function (entry) {\n var _a;\n var _b;\n var category = ((_b = entry[indexOfCategory]) !== null && _b !== void 0 ? _b : \"\").toString();\n var categoryField = (_a = {}, _a[barChartFactory_1.Category] = category, _a);\n var zipped = _.zip(seriesLegendNames, entry);\n var dataSeriesFields = {};\n _.forEach(zipped, function (_a, index) {\n var seriesName = _a[0], value = _a[1];\n if (index !== indexOfCategory) {\n dataSeriesFields[seriesName] = value;\n }\n });\n return _.assign({}, categoryField, dataSeriesFields);\n });\n var sorting = chartService.sorting;\n if ((sorting === null || sorting === void 0 ? void 0 : sorting.sortOrder) === 'value') {\n // just pick first series name (Municipality)\n var key_1 = _.chain(seriesData).first().keys().find(function (k) { return k != barChartFactory_1.Category; }).value();\n seriesData = _.sortBy(seriesData, function (e) { return e[key_1]; });\n if (sorting.sortDir === 'asc') {\n seriesData = seriesData.reverse();\n }\n }\n else {\n var xscales_1 = chartService.xScales;\n seriesData = xscales_1\n ? _.sortBy(seriesData, function (d) { return -xscales_1.indexOf(d[barChartFactory_1.Category]); })\n : _.sortBy(seriesData, function (d) { return d[barChartFactory_1.Category]; }).reverse();\n }\n var unitExcludeFilter = chartService.unitExcludeFilter;\n var seriesAttributes = converterUtil_1.seriesAttributesFromDataDesc(datadesc, function (index) { return index !== indexOfCategory; }, function (unit) { return unitExcludeFilter(unit); });\n var legend = (_a = chartData.attributes.datadesc.find(function (_cdd, index) { return index === indexOfCategory; })) === null || _a === void 0 ? void 0 : _a.legend;\n var subtitle = chartData.attributes.subtitle.toUpperCase();\n if (legend) {\n subtitle = subtitle.replace(\")\", \", \" + legend + \")\");\n }\n var year = (_c = (_b = chartData.attributes.subtitle) === null || _b === void 0 ? void 0 : _b.match(/[0-9]{4}/g)) === null || _c === void 0 ? void 0 : _c[0];\n return {\n category: barChartFactory_1.Category,\n data: seriesData,\n seriesAttributes: seriesAttributes,\n title: (_d = chartService.titleOverride) !== null && _d !== void 0 ? _d : attributes.title,\n topTitle: subtitle,\n year: year,\n sources: attributes.sources\n };\n}\nexports.toBarChartData = toBarChartData;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FooterSelect = void 0;\nvar react_1 = __importDefault(require(\"react\"));\nvar react_select_1 = __importDefault(require(\"react-select\"));\nvar selectTheme_1 = require(\"../selectTheme\");\nvar selectUtil_1 = require(\"./selectUtil\");\nexports.FooterSelect = function (props) {\n var onChange = function (option) {\n if (option && selectUtil_1.isSelectOption(option)) {\n props.onSelectedChange(option.value);\n }\n };\n var positioning = props.menuPlacementTop\n ? { menuPosition: undefined, menuPlacement: \"top\" }\n : { menuPosition: \"fixed\", menuPlacement: \"auto\" };\n return props.selectedLabel && !props.disabled && react_1.default.createElement(\"div\", null,\n react_1.default.createElement(react_select_1.default, __assign({ options: props.options, defaultValue: props.options.find(function (option) { return option.label === props.selectedLabel; }), value: props.options.find(function (option) { return option.label === props.selectedLabel; }), onChange: onChange, isDisabled: props.disabled, theme: selectTheme_1.SelectTheme, styles: selectUtil_1.customStyles }, positioning))) || null;\n};\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Grouping = void 0;\n// Sources:\n// https://skr.se/tjanster/kommunerochregioner/faktakommunerochregioner/kommungruppsindelning.2051.html\nvar underscore_1 = __importDefault(require(\"underscore\"));\nvar groups = {\n comparable: {\n big_cities: ['Stockholm', 'Malmö', 'Göteborg'],\n commuter_munis_near_big_city: ['Upplands Väsby', 'Vallentuna', 'Österåker', 'Värmdö', 'Järfälla', 'Ekerö', 'Huddinge', 'Botkyrka', 'Salem', 'Haninge', 'Tyresö', 'Upplands-Bro', 'Täby', 'Danderyd', 'Sollentuna', 'Nacka', 'Sundbyberg', 'Solna', 'Lidingö', 'Vaxholm', 'Sigtuna', 'Nynäshamn', 'Håbo', 'Staffanstorp', 'Burlöv', 'Vellinge', 'Kävlinge', 'Lomma', 'Svedala', 'Skurup', 'Trelleborg', 'Kungsbacka', 'Härryda', 'Partille', 'Öckerö', 'Stenungsund', 'Ale', 'Lerum', 'Bollebygd', 'Lilla Edet', 'Mölndal', 'Kungälv', 'Alingsås'],\n larger_cities: ['Södertälje', 'Uppsala', 'Eskilstuna', 'Linköping', 'Norrköping', 'Jönköping', 'Växjö', 'Lund', 'Helsingborg', 'Halmstad', 'Trollhättan', 'Borås', 'Karlstad', 'Örebro', 'Västerås', 'Borlänge', 'Gävle', 'Sundsvall', 'Östersund', 'Umeå', 'Luleå'],\n commuter_munis_near_larger_city: ['Nykvarn', 'Älvkarleby', 'Knivsta', 'Heby', 'Tierp', 'Gnesta', 'Strängnäs', 'Trosa', 'Åtvidaberg', 'Söderköping', 'Mjölby', 'Aneby', 'Mullsjö', 'Habo', 'Lessebo', 'Alvesta', 'Svalöv', 'Örkelljunga', 'Bjuv', 'Sjöbo', 'Hörby', 'Höör', 'Perstorp', 'Klippan', 'Åstorp', 'Landskrona', 'Höganäs', 'Eslöv', 'Ängelholm', 'Laholm', 'Färgelanda', 'Grästorp', 'Mark', 'Svenljunga', 'Vänersborg', 'Kil', 'Hammarö', 'Forshaga', 'Grums', 'Lekeberg', 'Hallsberg', 'Kumla', 'Nora', 'Surahammar', 'Hallstahammar', 'Gagnef', 'Säter', 'Timrå', 'Krokom', 'Nordmaling', 'Bjurholm', 'Vännäs'],\n low_commute_munis_near_larger_city: ['Enköping', 'Östhammar', 'Flen', 'Kinda', 'Finspång', 'Valdemarsvik', 'Motala', 'Vaggeryd', 'Nässjö', 'Tranås', 'Uppvidinge', 'Tingsryd', 'Hylte', 'Tranemo', 'Herrljunga', 'Lysekil', 'Uddevalla', 'Ulricehamn', 'Munkfors', 'Kristinehamn', 'Säffle', 'Laxå', 'Askersund', 'Lindesberg', 'Sala', 'Köping', 'Ockelbo', 'Hofors', 'Sandviken', 'Bräcke', 'Berg', 'Vindeln', 'Robertsfors', 'Älvsbyn', 'Boden'],\n smaller_cities: ['Norrtälje', 'Nyköping', 'Katrineholm', 'Värnamo', 'Ljungby', 'Kalmar', 'Oskarshamn', 'Västervik', 'Gotland', 'Karlskrona', 'Karlshamn', 'Ystad', 'Kristianstad', 'Hässleholm', 'Falkenberg', 'Varberg', 'Mariestad', 'Lidköping', 'Skövde', 'Falköping', 'Karlskoga', 'Falun', 'Avesta', 'Hudiksvall', 'Härnösand', 'Örnsköldsvik', 'Skellefteå', 'Piteå', 'Kiruna'],\n commuter_munis_near_smaller_city: ['Vingåker', 'Oxelösund', 'Ödeshög', 'Ydre', 'Boxholm', 'Vadstena', 'Gnosjö', 'Sävsjö', 'Eksjö', 'Älmhult', 'Markaryd', 'Högsby', 'Torsås', 'Mörbylånga', 'Hultsfred', 'Mönsterås', 'Emmaboda', 'Nybro', 'Olofström', 'Ronneby', 'Sölvesborg', 'Östra Göinge', 'Tomelilla', 'Bromölla', 'Osby', 'Simrishamn', 'Tjörn', 'Orust', 'Munkedal', 'Vårgårda', 'Essunga', 'Karlsborg', 'Gullspång', 'Mellerud', 'Vara', 'Götene', 'Tibro', 'Töreboda', 'Skara', 'Hjo', 'Tidaholm', 'Storfors', 'Degerfors', 'Ljusnarsberg', 'Skinnskatteberg', 'Kungsör', 'Norberg', 'Fagersta', 'Arboga', 'Smedjebacken', 'Hedemora', 'Nordanstig'],\n countryside_muni: ['Gislaved', 'Vetlanda', 'Vimmerby', 'Dals-Ed', 'Bengtsfors', 'Åmål', 'Torsby', 'Årjäng', 'Sunne', 'Filipstad', 'Hagfors', 'Arvika', 'Hällefors', 'Vansbro', 'Mora', 'Ludvika', 'Ovanåker', 'Ljusdal', 'Söderhamn', 'Bollnäs', 'Ånge', 'Kramfors', 'Sollefteå', 'Ragunda', 'Strömsund', 'Norsjö', 'Malå', 'Sorsele', 'Dorotea', 'Vilhelmina', 'Åsele', 'Lycksele', 'Arvidsjaur', 'Jokkmokk', 'Överkalix', 'Kalix', 'Övertorneå', 'Pajala', 'Gällivare', 'Haparanda'],\n countryside_muni_with_tourism: ['Borgholm', 'Båstad', 'Sotenäs', 'Tanum', 'Strömstad', 'Eda', 'Malung-Sälen', 'Leksand', 'Rättvik', 'Orsa', 'Älvdalen', 'Åre', 'Härjedalen', 'Storuman', 'Arjeplog']\n },\n county: {\n ab_stockholms_lan: ['Stockholms län', 'Botkyrka', 'Danderyd', 'Ekerö', 'Haninge', 'Huddinge', 'Järfälla', 'Lidingö', 'Nacka', 'Norrtälje', 'Nykvarn', 'Nynäshamn', 'Salem', 'Sigtuna', 'Sollentuna', 'Solna', 'Stockholm', 'Sundbyberg', 'Södertälje', 'Tyresö', 'Täby', 'Upplands-Bro', 'Upplands Väsby', 'Vallentuna', 'Vaxholm', 'Värmdö', 'Österåker'],\n c_uppsala_lan: ['Uppsala län', 'Enköping', 'Heby', 'Håbo', 'Knivsta', 'Tierp', 'Uppsala', 'Älvkarleby', 'Östhammar'],\n d_sodermanlands_lan: ['Södermanlands län', 'Eskilstuna', 'Flen', 'Gnesta', 'Katrineholm', 'Nyköping', 'Oxelösund', 'Strängnäs', 'Trosa', 'Vingåker'],\n e_ostergotlands_lan: ['Östergötlands län', 'Boxholm', 'Finspång', 'Kinda', 'Linköping', 'Mjölby', 'Motala', 'Norrköping', 'Söderköping', 'Vadstena', 'Valdemarsvik', 'Ydre', 'Åtvidaberg', 'Ödeshög'],\n f_jonkopings_lan: ['Jönköpings län', 'Aneby', 'Eksjö', 'Gislaved', 'Gnosjö', 'Habo', 'Jönköping', 'Mullsjö', 'Nässjö', 'Sävsjö', 'Tranås', 'Vaggeryd', 'Vetlanda', 'Värnamo'],\n g_kronobergs_lan: ['Kronobergs län', 'Alvesta', 'Lessebo', 'Ljungby', 'Markaryd', 'Tingsryd', 'Uppvidinge', 'Växjö', 'Älmhult'],\n h_kalmar_lan: ['Kalmar län', 'Borgholm', 'Emmaboda', 'Hultsfred', 'Högsby', 'Kalmar', 'Mönsterås', 'Mörbylånga', 'Nybro', 'Oskarshamn', 'Torsås', 'Vimmerby', 'Västervik'],\n i_gotlands_lan: ['Gotlands län', 'Gotland'],\n k_blekinge_lan: ['Blekinge län', 'Karlshamn', 'Karlskrona', 'Olofström', 'Ronneby', 'Sölvesborg'],\n m_skane_lan: ['Skåne län', 'Bjuv', 'Bromölla', 'Burlöv', 'Båstad', 'Eslöv', 'Helsingborg', 'Hässleholm', 'Höganäs', 'Hörby', 'Höör', 'Klippan', 'Kristianstad', 'Kävlinge', 'Landskrona', 'Lomma', 'Lund', 'Malmö', 'Osby', 'Perstorp', 'Simrishamn', 'Sjöbo', 'Skurup', 'Staffanstorp', 'Svalöv', 'Svedala', 'Tomelilla', 'Trelleborg', 'Vellinge', 'Ystad', 'Åstorp', 'Ängelholm', 'Örkelljunga', 'Östra Göinge'],\n n_hallands_lan: ['Hallands län', 'Falkenberg', 'Halmstad', 'Hylte', 'Kungsbacka', 'Laholm', 'Varberg'],\n o_vastra_gotalands_lan: ['Västra Götalands län', 'Ale', 'Alingsås', 'Bengtsfors', 'Bollebygd', 'Borås', 'Dals-Ed', 'Essunga', 'Falköping', 'Färgelanda', 'Grästorp', 'Gullspång', 'Göteborg', 'Götene', 'Herrljunga', 'Hjo', 'Härryda', 'Karlsborg', 'Kungälv', 'Lerum', 'Lidköping', 'Lilla Edet', 'Lysekil', 'Mariestad', 'Mark', 'Mellerud', 'Munkedal', 'Mölndal', 'Orust', 'Partille', 'Skara', 'Skövde', 'Sotenäs', 'Stenungsund', 'Strömstad', 'Svenljunga', 'Tanum', 'Tibro', 'Tidaholm', 'Tjörn', 'Tranemo', 'Trollhättan', 'Töreboda', 'Uddevalla', 'Ulricehamn', 'Vara', 'Vårgårda', 'Vänersborg', 'Åmål', 'Öckerö'],\n s_varmlands_lan: ['Värmlands län', 'Arvika', 'Eda', 'Filipstad', 'Forshaga', 'Grums', 'Hagfors', 'Hammarö', 'Karlstad', 'Kil', 'Kristinehamn', 'Munkfors', 'Storfors', 'Sunne', 'Säffle', 'Torsby', 'Årjäng'],\n t_orebro_lan: ['Örebro län', 'Askersund', 'Degerfors', 'Hallsberg', 'Hällefors', 'Karlskoga', 'Kumla', 'Laxå', 'Lekeberg', 'Lindesberg', 'Ljusnarsberg', 'Nora', 'Örebro'],\n u_vastmanlands_lan: ['Västmanlands län', 'Arboga', 'Fagersta', 'Hallstahammar', 'Kungsör', 'Köping', 'Norberg', 'Sala', 'Skinnskatteberg', 'Surahammar', 'Västerås'],\n w_dalarnas_lan: ['Dalarnas län', 'Avesta', 'Borlänge', 'Falun', 'Gagnef', 'Hedemora', 'Leksand', 'Ludvika', 'Malung-Sälen', 'Mora', 'Orsa', 'Rättvik', 'Smedjebacken', 'Säter', 'Vansbro', 'Älvdalen'],\n x_gavleborgs_lan: ['Gävleborgs län', 'Bollnäs', 'Gävle', 'Hofors', 'Hudiksvall', 'Ljusdal', 'Nordanstig', 'Ockelbo', 'Ovanåker', 'Sandviken', 'Söderhamn'],\n y_vasternorrlands_lan: ['Västernorrlands län', 'Härnösand', 'Kramfors', 'Sollefteå', 'Sundsvall', 'Timrå', 'Ånge', 'Örnsköldsvik'],\n z_jamtlands_lan: ['Jämtlands län', 'Berg', 'Bräcke', 'Härjedalen', 'Krokom', 'Ragunda', 'Strömsund', 'Åre', 'Östersund'],\n ac_vasterbottens_lan: ['Västerbottens län', 'Bjurholm', 'Dorotea', 'Lycksele', 'Malå', 'Nordmaling', 'Norsjö', 'Robertsfors', 'Skellefteå', 'Sorsele', 'Storuman', 'Umeå', 'Vilhelmina', 'Vindeln', 'Vännäs', 'Åsele'],\n bd_norrbottens_lan: ['Norrbottens län', 'Arjeplog', 'Arvidsjaur', 'Boden', 'Gällivare', 'Haparanda', 'Jokkmokk', 'Kalix', 'Kiruna', 'Luleå', 'Pajala', 'Piteå', 'Älvsbyn', 'Överkalix', 'Övertorneå']\n }\n};\nvar Grouping = /** @class */ (function () {\n function Grouping() {\n }\n Grouping.forMunicipality = function (municipality, groupName) {\n var _a;\n var groupLists = underscore_1.default.values(groups[groupName]);\n return (_a = underscore_1.default.find(groupLists, function (municipalities) { return underscore_1.default.includes(municipalities, municipality); })) !== null && _a !== void 0 ? _a : [];\n };\n Grouping.countyFor = function (municipality) {\n var _a;\n if (!this.countyCache) {\n this.countyCache = Grouping.buildCountyCache();\n }\n var nameSlug = (_a = this.countyCache) === null || _a === void 0 ? void 0 : _a[municipality];\n if (!nameSlug) {\n console.warn(\"Missing NameSlug for: \" + municipality);\n }\n return nameSlug;\n };\n Grouping.buildCountyCache = function () {\n var result = {};\n underscore_1.default.each(groups.county, function (names, countyGroup) {\n var slug = countyGroup.replace(/^[a-z]+_/, '');\n var name = underscore_1.default.first(names);\n if (name) {\n underscore_1.default.each(names, function (municipality) {\n result[municipality] = { name: name, slug: slug };\n });\n }\n });\n return result;\n };\n Grouping.groups = groups;\n Grouping.countyCache = undefined;\n return Grouping;\n}());\nexports.Grouping = Grouping;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeltaArrowNumber = exports.DeltaArrow = void 0;\nvar React = __importStar(require(\"react\"));\nvar rankingUtil_1 = require(\"./rankingUtil\");\nexports.DeltaArrow = function (_a) {\n var delta = _a.delta;\n if (delta === 0) {\n return null;\n }\n else {\n if (delta > 0) {\n return React.createElement(\"i\", { className: \"fa fa-arrow-up\" });\n }\n else {\n return React.createElement(\"i\", { className: \"fa fa-arrow-down\" });\n }\n }\n};\nexports.DeltaArrowNumber = function (props) {\n var delta = rankingUtil_1.getDelta(props.ranks, props.latestYear);\n if (delta === 0) {\n return React.createElement(\"span\", null, \"-\");\n }\n else {\n if (delta > 0) {\n return React.createElement(\"span\", null,\n React.createElement(\"i\", { className: \"fa fa-arrow-up\" }),\n \" \",\n delta);\n }\n else {\n return React.createElement(\"span\", null,\n React.createElement(\"i\", { className: \"fa fa-arrow-down\" }),\n \" \",\n delta);\n }\n }\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelectedMunicipalitiesNonPartitioned = exports.MunicipalityComparison = exports.useMunicipalityComparison = void 0;\nvar React = __importStar(require(\"react\"));\nvar react_1 = require(\"react\");\nvar autoComplete_1 = require(\"../listing/autoComplete\");\nvar counties_1 = require(\"../../../fixtures/counties\");\nvar _ = __importStar(require(\"lodash\"));\nvar factorChartWidgetReducers_1 = require(\"../factorChartWidgetReducers\");\nvar react_responsive_1 = require(\"react-responsive\");\n// letting return type be inferred here\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction useMunicipalityComparison(initialMunicipality) {\n // comparison municipalities\n var comparisonReducer = React.useState(function () { return factorChartWidgetReducers_1.municipalityReducer(initialMunicipality, \"comparison\"); })[0];\n var _a = react_1.useReducer(comparisonReducer, []), comparisonMunicipalities = _a[0], comparisonMunicipalitiesDispatch = _a[1];\n // selected municipalities\n var initialSelected = function () { return typeof initialMunicipality === 'string' ? [initialMunicipality] : initialMunicipality; };\n var selectedReducer = React.useState(function () { return factorChartWidgetReducers_1.municipalityReducer(initialMunicipality, \"selected\"); })[0];\n var _b = react_1.useReducer(selectedReducer, initialSelected()), selectedMunicipalities = _b[0], selectedMunicipalitiesDispatch = _b[1];\n var reset = function () {\n comparisonMunicipalitiesDispatch(['SET', []]);\n selectedMunicipalitiesDispatch(['SET', initialSelected()]);\n };\n return {\n comparisonMunicipalities: comparisonMunicipalities, comparisonMunicipalitiesDispatch: comparisonMunicipalitiesDispatch,\n selectedMunicipalities: selectedMunicipalities, selectedMunicipalitiesDispatch: selectedMunicipalitiesDispatch,\n reset: reset\n };\n}\nexports.useMunicipalityComparison = useMunicipalityComparison;\nexports.MunicipalityComparison = function (_a) {\n var disabled = _a.disabled, initialMunicipalities = _a.initialMunicipalities, includeCounties = _a.includeCounties, excludeSweden = _a.excludeSweden, active = _a.active, selectedMunicipalities = _a.selectedMunicipalities, selectedMunicipalitiesDispatch = _a.selectedMunicipalitiesDispatch, comparisonMunicipalities = _a.comparisonMunicipalities, reset = _a.reset, presetComparisonComponents = _a.presetComparisonComponents, top5ComparisonNode = _a.top5ComparisonNode, countyComparisonNode = _a.countyComparisonNode, skrComparisonNode = _a.skrComparisonNode;\n var _b = React.useState(false), visible = _b[0], setVisible = _b[1];\n var allAlternatives = includeCounties\n ? (excludeSweden ? counties_1.CountiesAndMunicipalities : counties_1.CountiesAndMunicipalities.concat(counties_1.Sweden))\n : (excludeSweden ? counties_1.Municipalities : counties_1.Municipalities.concat(counties_1.Sweden));\n var toggleVisible = function (e) {\n e.preventDefault();\n setVisible(!visible);\n };\n var onSelect = function (municipality) {\n selectedMunicipalitiesDispatch(['ADD', [municipality]]);\n setVisible(false);\n };\n var onDeselect = function (municipality) {\n selectedMunicipalitiesDispatch(['REMOVE', [municipality]]);\n setVisible(false);\n };\n var resetMunicipalities = function () {\n selectedMunicipalitiesDispatch(['SET', initialMunicipalities]);\n setVisible(false);\n };\n var unExpandOnEscape = function (e) {\n if (e.key === \"Escape\")\n setVisible(false);\n };\n var showComp = function (pcs) { return _.includes(presetComparisonComponents, pcs); };\n var isMobile = react_responsive_1.useMediaQuery({ query: '(max-width: 767px)' });\n var selectedComp = React.createElement(exports.SelectedMunicipalitiesNonPartitioned, { selectedMunicipalities: selectedMunicipalities, comparisonMunicipalities: comparisonMunicipalities, onSelect: onSelect, onDeselect: onDeselect, reset: resetMunicipalities });\n return (React.createElement(\"div\", { className: \"chart-container\" },\n React.createElement(\"div\", { className: \"js-chart-selection\", id: \"chart-selection-survey\" },\n React.createElement(\"div\", { className: \"compare js-municipality-selection \" + (disabled ? \"disabled\" : \"\"), onKeyDown: unExpandOnEscape },\n visible\n ? React.createElement(\"div\", { className: \"municipalities\" },\n React.createElement(\"span\", null,\n React.createElement(SelectedMunicipalitiesPartitioned, { selectedMunicipalities: selectedMunicipalities, comparisonMunicipalities: [], onSelect: onSelect, onDeselect: onDeselect, reset: resetMunicipalities }),\n React.createElement(autoComplete_1.AutoComplete, { placeHolder: \"Lägg till jämförelsekommun\", allAlternatives: allAlternatives, isMatchFunction: autoComplete_1.startsWithMatchFunction, onSelect: onSelect })),\n React.createElement(\"span\", null,\n React.createElement(\"i\", { className: \"fas fa-chevron-up\", onClick: toggleVisible })))\n : React.createElement(\"div\", { className: \"prompt js-prompt TODO\" },\n React.createElement(\"a\", { href: \"#\", onClick: toggleVisible },\n \"V\\u00E4lj fler kommuner f\\u00F6r att j\\u00E4mf\\u00F6ra\",\n React.createElement(\"i\", { className: \"fas fa-chevron-down\" }))),\n !_.isEmpty(presetComparisonComponents) &&\n React.createElement(\"div\", { className: \"options js-options\", style: { display: (visible ? \"block\" : \"none\") } },\n React.createElement(\"ul\", { className: \"presets \" + (!showComp('county') && !showComp('SKR') ? 'only-one' : '') },\n showComp('top') && top5ComparisonNode,\n isMobile && active === 'top' && selectedComp,\n showComp('county') && countyComparisonNode,\n isMobile && active === 'county' && selectedComp,\n showComp('SKR') && skrComparisonNode,\n isMobile && active === 'SKR' && selectedComp),\n !isMobile && React.createElement(\"div\", { className: \"municipalities\" }, selectedComp),\n reset && React.createElement(\"a\", { className: \"clear-all js-clear-all\", href: \"#\", onMouseDown: reset }, \"Rensa alla val\"))))));\n};\nvar SelectedMunicipalitiesPartitioned = function (_a) {\n var selectedMunicipalities = _a.selectedMunicipalities, comparisonMunicipalities = _a.comparisonMunicipalities, onSelect = _a.onSelect, onDeselect = _a.onDeselect;\n var i = 0;\n var selected = selectedMunicipalities.map(function (sm) {\n return React.createElement(\"li\", { key: i++ },\n React.createElement(\"a\", { className: \"selected\", onMouseDown: function () { return onDeselect(sm); } }, sm));\n });\n var comparison = comparisonMunicipalities.map(function (cm) {\n return React.createElement(\"li\", { key: i++, onMouseDown: function () { return onSelect(cm); } },\n React.createElement(\"a\", { className: \"suggestion\" }, cm));\n });\n return React.createElement(\"ul\", { className: \"selected js-selected\" }, selected.concat(comparison));\n};\nexports.SelectedMunicipalitiesNonPartitioned = function (_a) {\n var selectedMunicipalities = _a.selectedMunicipalities, comparisonMunicipalities = _a.comparisonMunicipalities, onSelect = _a.onSelect, onDeselect = _a.onDeselect;\n var i = 0;\n var comparison = comparisonMunicipalities.map(function (m) {\n return _.includes(selectedMunicipalities, m)\n ? React.createElement(\"li\", { key: i++ },\n React.createElement(\"a\", { className: \"selected\", onMouseDown: function () { return onDeselect(m); } }, m))\n : React.createElement(\"li\", { key: i++, onMouseDown: function () { return onSelect(m); } },\n React.createElement(\"a\", { className: \"suggestion\" }, m));\n });\n return (React.createElement(\"div\", { className: \"municipalities\" },\n React.createElement(\"ul\", { className: \"selected js-selected\" }, comparison)));\n};\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.presentableDataClientFactory = exports.PresentableDataClient = void 0;\nvar axios_1 = __importDefault(require(\"axios\"));\nvar qs_1 = __importDefault(require(\"qs\"));\nvar PresentableDataClient = /** @class */ (function () {\n function PresentableDataClient(baseUrl, factorApiName, chartService) {\n var _this = this;\n this.baseUrl = baseUrl;\n this.factorApiName = factorApiName;\n this.chartService = chartService;\n this.paramsBuilderCommon = function (query) {\n var municipalities = query.municipalities, respondentType = query.respondentType;\n return {\n kommun: municipalities,\n factor: _this.factorApiName,\n type: respondentType,\n };\n };\n this.paramsBuilderMFV = function (query) {\n var _a;\n var yscales = query.yscales, describe = query.describe;\n var xscales = (_a = query.xscales) !== null && _a !== void 0 ? _a : _this.chartService.xScales;\n var year = query.years || _this.chartService.years;\n return __assign(__assign(__assign(__assign(__assign({}, _this.paramsBuilderCommon(query)), (year && { year: year })), (xscales && { xscale: xscales })), (yscales && { yscale: yscales })), (describe && { describe: describe }));\n };\n this.getMFVData = function (query) {\n var params = _this.paramsBuilderMFV(query);\n return _this.getPresentableRequest('MunicipalityFactorValues', params);\n };\n this.paramsBuilderSFB = function (query) {\n return __assign(__assign({}, _this.paramsBuilderMFV(query)), { \"show_shares\": false });\n };\n this.getSFBData = function (query) {\n var params = _this.paramsBuilderSFB(query);\n return _this.getPresentableRequest('SurveyFactorBoth', params);\n };\n this.getSFBMData = function (query) {\n var params = _this.paramsBuilderSFB(query);\n return _this.getPresentableRequest('SurveyFactorBothMulti', params);\n };\n this.paramsBuilderSSBC = function (query) {\n var year = query.year;\n year = year || _this.chartService.year;\n return __assign(__assign({}, _this.paramsBuilderCommon(query)), (year && { year: year }));\n };\n this.getBarChartData = function (query, presentableName) {\n var _a, _b, _c, _d;\n var params = _this.paramsBuilderSSBC(query);\n var yscales = (_a = _this.chartService.yScales) === null || _a === void 0 ? void 0 : _a.map(function (e) { return e; });\n if (\"yscales\" in query) {\n yscales = (_b = query.yscales) === null || _b === void 0 ? void 0 : _b.map(function (e) { return e; });\n }\n var xscales = (_c = _this.chartService.xScales) === null || _c === void 0 ? void 0 : _c.map(function (e) { return e; });\n if (\"xscales\" in query) {\n xscales = (_d = query.xscales) === null || _d === void 0 ? void 0 : _d.map(function (e) { return e; });\n }\n params = __assign(__assign(__assign({}, params), (xscales && { xscale: xscales })), (yscales && { yscale: yscales }));\n return _this.getPresentableRequest(presentableName, params);\n };\n this.getBarChartDataCombinedRespondents = function (query, presentableName) {\n query.respondentType = 'Företagare';\n return _this.getBarChartData(query, presentableName)\n .then(function (resultEntrepreneurs) {\n query.respondentType = 'Politiker';\n return _this.getBarChartData(query, presentableName)\n .then(function (resultPoliticians) {\n return [resultEntrepreneurs, resultPoliticians];\n });\n });\n };\n // I believe 'object' is the way to go here.\n // eslint-disable-next-line @typescript-eslint/ban-types\n this.getPresentableRequest = function (presentableName, params) {\n return _this.getRequest(_this.baseUrl + \"rest/graphs/\" + presentableName + \"/json\", params);\n };\n // Adding some type gymnastics preventing direct call to this with presentable endpoint names\n // @see: https://github.com/microsoft/TypeScript/issues/4183\n // I believe 'object' is the way to go here.\n // eslint-disable-next-line @typescript-eslint/ban-types\n this.getRequest = function (url, params) {\n return axios_1.default.get(url, {\n params: params,\n paramsSerializer: function (params) { return qs_1.default.stringify(params, { arrayFormat: 'repeat' }); },\n headers: { \"Accept\": \"application/json\" }\n }).then(function (r) { return r.data; }).catch(function (e) { return console.error(e); });\n };\n }\n return PresentableDataClient;\n}());\nexports.PresentableDataClient = PresentableDataClient;\nexports.presentableDataClientFactory = function (apiBaseUrl, factorService) {\n return function (factorSlug, chartingLabel) {\n return new PresentableDataClient(apiBaseUrl, factorService.getApiName(factorSlug), factorService.getChartConfig(factorSlug, chartingLabel));\n };\n};\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filterMunicipalitiesBasedOnFactor = exports.getRespondentType = void 0;\nvar lodash_1 = __importDefault(require(\"lodash\"));\nvar counties_1 = require(\"../../../fixtures/counties\");\nfunction getRespondentType(groupingService, factorService, selectedFactorSlug, respondentType, chartingLabel) {\n var _a;\n if (groupingService.getFactorGroup(selectedFactorSlug) === 'survey'\n && factorService.isRespondentTypeApplicable(selectedFactorSlug, chartingLabel)) {\n if (!((_a = factorService.getComparisonConfig(selectedFactorSlug, chartingLabel)) === null || _a === void 0 ? void 0 : _a.isApplicableToPoliticians)) {\n return 'Företagare';\n }\n else {\n if (respondentType === undefined) {\n return 'Företagare';\n }\n else {\n return respondentType;\n }\n }\n }\n else {\n return undefined;\n }\n}\nexports.getRespondentType = getRespondentType;\nfunction filterMunicipalitiesBasedOnFactor(comparisonConfig, comparisonMunicipalities0, selectedMunicipalities0) {\n // filter out counties from selected/comparison regions, will be kept in state but invisible until a valid factor is chosen\n var noCounties = comparisonConfig.lacksCountyData;\n var comparisonMunicipalities = noCounties ? lodash_1.default.difference(comparisonMunicipalities0, counties_1.CountyNames) : comparisonMunicipalities0;\n var selectedMunicipalities = noCounties ? lodash_1.default.difference(selectedMunicipalities0, counties_1.CountyNames) : selectedMunicipalities0;\n // like above, but Sweden\n var excludeSweden = comparisonConfig.excludeSweden;\n comparisonMunicipalities = excludeSweden ? lodash_1.default.difference(comparisonMunicipalities, [counties_1.Sweden]) : comparisonMunicipalities;\n selectedMunicipalities = excludeSweden ? lodash_1.default.difference(selectedMunicipalities, [counties_1.Sweden]) : selectedMunicipalities;\n return { comparisonMunicipalities: comparisonMunicipalities, selectedMunicipalities: selectedMunicipalities };\n}\nexports.filterMunicipalitiesBasedOnFactor = filterMunicipalitiesBasedOnFactor;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = __importDefault(require(\"react\"));\nif (process.env.NODE_ENV === 'development') {\n console.log(\"Enabling why-did-you-render.\");\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n var whyDidYouRender = require('@welldone-software/why-did-you-render');\n whyDidYouRender(react_1.default, {\n // onlyLogs: true,\n // titleColor: \"green\",\n // diffNameColor: \"aqua\",\n // hotReloadBufferMs: 0,\n logOnDifferentValues: true,\n trackAllPureComponents: true\n });\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AutoComplete = exports.startsWithMatchFunction = exports.indexOfMatchFunction = void 0;\nvar React = __importStar(require(\"react\"));\nvar react_1 = require(\"react\");\nvar _ = __importStar(require(\"lodash\"));\nvar markSubstringMatches_1 = require(\"../lib/markSubstringMatches\");\nvar MAX_SUGGESTIONS = 10;\nexports.indexOfMatchFunction = function (filterString, alternative) { return alternative.indexOf(filterString) !== -1; };\nexports.startsWithMatchFunction = function (filterString, alternative) { return alternative.startsWith(filterString); };\n// Type is on the next line...\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nvar getVisibleListFactory = function (isMatch) {\n return function (filterString, allAlternativesLower) {\n var nSuggestions = 0;\n return allAlternativesLower.map(function (alternative) {\n return !!(filterString &&\n isMatch(filterString, alternative) &&\n (nSuggestions++ < MAX_SUGGESTIONS));\n });\n };\n};\nexports.AutoComplete = function (props) {\n var getVisibleList = react_1.useState(function () { return getVisibleListFactory(props.isMatchFunction); })[0];\n var allAlternativesLower = props.allAlternatives.map(function (a) { return a.toLocaleLowerCase(); });\n var _a = React.useState(null), filterString = _a[0], setFilterString = _a[1];\n var _b = React.useState(-1), selectedIndex = _b[0], setSelectedIndex = _b[1];\n var initialVisible = function () { return allAlternativesLower.map(function () { return false; }); };\n var _c = React.useState(initialVisible), visibleList = _c[0], setVisibleList = _c[1];\n var _d = React.useState(''), validInput = _d[0], setValidInput = _d[1];\n var reset = function () {\n setFilterString(null);\n setSelectedIndex(-1);\n setVisibleList(initialVisible);\n };\n var onKeyDown = function (e) {\n if (!filterString)\n return;\n switch (e.key) {\n case \"ArrowDown\": {\n e.preventDefault();\n var visibleList_1 = getVisibleList(filterString, allAlternativesLower);\n var fromIndex = selectedIndex !== -1 ? selectedIndex : 0;\n var nextVisibleIndex = _.findIndex(visibleList_1, function (visible, i) { return visible && i > selectedIndex; }, fromIndex);\n if (nextVisibleIndex !== -1) {\n setSelectedIndex(nextVisibleIndex);\n }\n break;\n }\n case \"ArrowUp\": {\n e.preventDefault();\n var visibleList_2 = getVisibleList(filterString, allAlternativesLower);\n var fromIndex = selectedIndex !== -1 ? selectedIndex : visibleList_2.length - 1;\n var prevVisibleIndex = _.findLastIndex(visibleList_2, function (visible, i) { return visible && i < selectedIndex; }, fromIndex);\n if (prevVisibleIndex !== -1) {\n setSelectedIndex(prevVisibleIndex);\n }\n break;\n }\n case \"Enter\": {\n e.preventDefault();\n if (selectedIndex !== -1) {\n props.onSelect(props.allAlternatives[selectedIndex]);\n reset();\n }\n else {\n var indexOf = allAlternativesLower.indexOf(filterString);\n if (indexOf !== -1) {\n // exact match of an alternative\n props.onSelect(props.allAlternatives[indexOf]);\n reset();\n }\n else {\n // nothing selected and input field does not contain a valid alternative\n setValidInput('invalid');\n }\n }\n break;\n }\n case \"Escape\": {\n reset();\n }\n }\n };\n var onChange = function (e) {\n var inputValue = e.target.value.trim();\n if ('' === inputValue) {\n // none visible\n reset();\n }\n else {\n // filter\n var filterString_1 = inputValue.toLocaleLowerCase();\n setFilterString(filterString_1);\n setValidInput('');\n setSelectedIndex(-1);\n setVisibleList(getVisibleList(filterString_1, allAlternativesLower));\n }\n };\n return React.createElement(\"div\", { className: \"autocomplete\" },\n React.createElement(\"div\", { className: \"field\" },\n React.createElement(\"i\", { className: \"fa fa-search\" }),\n React.createElement(\"input\", { className: validInput, placeholder: props.placeHolder, type: \"text\", value: filterString || '', onChange: onChange, onBlur: reset, onKeyDown: onKeyDown }),\n React.createElement(Suggestions, { filterString: filterString, allAlternatives: props.allAlternatives, selectedIndex: selectedIndex, visibleList: visibleList, onSelect: props.onSelect })));\n};\nvar Suggestions = function (_a) {\n var filterString = _a.filterString, allAlternatives = _a.allAlternatives, selectedIndex = _a.selectedIndex, visibleList = _a.visibleList, onSelect = _a.onSelect;\n var suggestions = _.zip(allAlternatives, visibleList).map(function (_a, i) {\n var alternative = _a[0], visible = _a[1];\n return React.createElement(\"li\", { key: i, className: \"suggestions \" + (visible ? '' : 'hidden') + \" \" + (i === selectedIndex ? 'selected' : ''), onMouseDown: alternative ? function () { return onSelect(alternative); } : undefined },\n React.createElement(\"a\", { href: \"#\" }, visible\n ? alternative && React.createElement(markSubstringMatches_1.MarkSubstringMatches, { str: alternative, subStrings: filterString ? [filterString] : [] })\n : alternative));\n });\n return React.createElement(\"ul\", { className: \"suggestions \" + (filterString !== null ? '' : 'hidden') }, suggestions);\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MarkSubstringMatches = void 0;\nvar React = __importStar(require(\"react\"));\n// return typing any due to:\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/27805\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexports.MarkSubstringMatches = function (_a) {\n var str = _a.str, subStrings = _a.subStrings;\n // only mark first hit for simplicity\n for (var _i = 0, subStrings_1 = subStrings; _i < subStrings_1.length; _i++) {\n var markMe = subStrings_1[_i];\n var matchSegments = [];\n var regexp = RegExp(markMe, \"gi\");\n var match = void 0;\n var key = 0;\n var lastMatchIndex = -1;\n while ((match = regexp.exec(str)) !== null) {\n // add non-matching segments to list\n if (lastMatchIndex === -1 /* first */) {\n if (match.index !== 0) {\n // if match doesn't begin at index 0 we add the first non match segment to list\n var firstNonMatchSegment = str.substring(0, match.index);\n matchSegments.push(React.createElement(React.Fragment, { key: key++ }, firstNonMatchSegment));\n }\n }\n else {\n var lastNonMatch = str.substring(lastMatchIndex, match.index);\n matchSegments.push(React.createElement(React.Fragment, { key: key++ }, lastNonMatch));\n }\n // add matching segment to list with distinct style\n var matchStr = str.substring(match.index, regexp.lastIndex);\n matchSegments.push(React.createElement(\"u\", { key: key++ }, matchStr));\n lastMatchIndex = regexp.lastIndex;\n }\n if (lastMatchIndex != -1 && regexp.lastIndex !== str.length) {\n var suffix = str.substring(lastMatchIndex);\n matchSegments.push(React.createElement(React.Fragment, { key: key++ }, suffix));\n }\n if (matchSegments.length !== 0) {\n return React.createElement(\"span\", null, matchSegments);\n }\n }\n return str;\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GuideCheckbox = void 0;\nvar React = __importStar(require(\"react\"));\nexports.GuideCheckbox = function (props) {\n return React.createElement(\"a\", { onClick: props.onClick }, props.checked ?\n React.createElement(\"span\", { \"aria-label\": \"Klicka f\\u00F6r att kryssa ur\", className: \"check checked\", \"data-balloon-pos\": \"up\" },\n React.createElement(\"i\", { className: \"fas fa-check\" }))\n :\n React.createElement(\"span\", { \"aria-label\": \"Klicka f\\u00F6r att kryssa i\", className: \"check uncheck\", \"data-balloon-pos\": \"up\" },\n React.createElement(\"i\", { className: \"fas fa-check\" })));\n};\n// rails-react needs a default export in order to be able to find a component\n// noinspection JSUnusedGlobalSymbols\nexports.default = exports.GuideCheckbox;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toLineChartYearData = void 0;\nvar lineChartYearFactory_1 = require(\"./factories/lineChartYearFactory\");\nvar chartData_1 = require(\"../../models/external/chartData\");\nvar _ = __importStar(require(\"lodash\"));\nvar converterUtil_1 = require(\"./converterUtil\");\nfunction toLineChartYearData(chartData, chartService) {\n var _a, _b;\n var attributes = chartData.attributes, data = chartData.data;\n var datadesc = attributes.datadesc;\n var indexOfYear = _.findIndex(datadesc, function (cdd) { return cdd.name === chartData_1.DataDescriptionYearName; });\n var seriesLegendNames = _.map(datadesc, function (cdd) { return cdd.legend; });\n var seriesData = _.map(data.data, function (entry) {\n var _a;\n var year = entry[indexOfYear].toString();\n var yearLabel = chartService.yearLabelTransformer(year);\n var yearField = (_a = {}, _a[lineChartYearFactory_1.Year] = yearLabel, _a);\n var zipped = _.zip(seriesLegendNames, entry);\n var dataSeriesFields = {};\n _.forEach(zipped, function (_a, index) {\n var seriesName = _a[0], value = _a[1];\n if (value && index !== indexOfYear) {\n dataSeriesFields[seriesName] = value;\n }\n });\n return __assign(__assign({}, yearField), dataSeriesFields);\n });\n // Used for making the bullet of the last year data point special\n var latestYear = _.chain(seriesData).map(function (item) { return item.year; }).max().value();\n var outerBulletCircleOpacityFieldName = lineChartYearFactory_1.LineChartYearFactory.OUTER_BULLET_CIRCLE_OPACITY_FIELD_NAME;\n var outerBulletCircleOpacityVisibleValue = lineChartYearFactory_1.LineChartYearFactory.OUTER_BULLET_CIRCLE_OPACITY_VISIBLE_VALUE;\n seriesData = _.chain(seriesData)\n .map(function (item) {\n var _a, _b;\n return item.year === latestYear\n ? __assign(__assign({}, item), (_a = {}, _a[outerBulletCircleOpacityFieldName] = outerBulletCircleOpacityVisibleValue, _a)) : __assign(__assign({}, item), (_b = {}, _b[outerBulletCircleOpacityFieldName] = 0.0, _b));\n })\n .value();\n if (chartService.dashYears) {\n var dashYears_1 = (_a = chartService.dashYears) === null || _a === void 0 ? void 0 : _a.map(function (year) { return \"\" + year; });\n // Used for being able to signify a \"broken\" data series by dotting it\n seriesData = _.chain(seriesData)\n .map(function (item) {\n var _a, _b, _c, _d;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var itemUpdated = _.includes(dashYears_1, item.year)\n ? __assign(__assign({}, item), (_a = {}, _a[lineChartYearFactory_1.LineChartYearFactory.LINE_SEGMENT_DASH_ARRAY] = \"6,3\", _a)) : __assign(__assign({}, item), (_b = {}, _b[lineChartYearFactory_1.LineChartYearFactory.LINE_SEGMENT_DASH_ARRAY] = \"\", _b));\n // Brittle hack for working around missing dashed line issue when there are gaps in series\n var dashYearsPoliticians = dashYears_1 && _.flatMap(dashYears_1, function (dy) { return [dy, \"\" + (parseInt(dy) + 1)]; });\n itemUpdated = _.includes(dashYearsPoliticians, itemUpdated.year)\n ? __assign(__assign({}, itemUpdated), (_c = {}, _c[lineChartYearFactory_1.LineChartYearFactory.LINE_SEGMENT_DASH_ARRAY_POLITICIAN] = \"6,3\", _c)) : __assign(__assign({}, itemUpdated), (_d = {}, _d[lineChartYearFactory_1.LineChartYearFactory.LINE_SEGMENT_DASH_ARRAY_POLITICIAN] = \"\", _d));\n return itemUpdated;\n })\n .value();\n }\n var unitExcludeFilter = chartService.unitExcludeFilter;\n var seriesAttributes = converterUtil_1.seriesAttributesFromDataDesc(datadesc, function (index) { return index !== indexOfYear; }, function (unit) { return unitExcludeFilter(unit); });\n var title = (_b = chartService.titleOverride) !== null && _b !== void 0 ? _b : attributes.title;\n return { data: seriesData, seriesAttributes: seriesAttributes, title: title, sources: attributes.sources, category: lineChartYearFactory_1.Year };\n}\nexports.toLineChartYearData = toLineChartYearData;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.XYChartComponent = void 0;\nvar React = __importStar(require(\"react\"));\nvar core_1 = require(\"@amcharts/amcharts4/core\");\nvar animated_1 = __importDefault(require(\"@amcharts/amcharts4/themes/animated\"));\nvar chartTheme_1 = require(\"./chartTheme\");\nvar react_fast_compare_1 = __importDefault(require(\"react-fast-compare\"));\nvar multiChartLayoutHelper_1 = require(\"./multiChartLayoutHelper\");\ncore_1.addLicense(\"CH200401233957118\");\nvar defaultThemes = [\n animated_1.default,\n chartTheme_1.snTheme,\n chartTheme_1.snAnimatedTheme\n];\nvar printThemes = [\n chartTheme_1.snTheme\n];\n// Not react hooks, just functions named \"use...\"\n// eslint-disable-next-line react-hooks/rules-of-hooks\nvar useDefaultThemes = function () { return defaultThemes.forEach(function (theme) { return core_1.useTheme(theme); }); };\n// eslint-disable-next-line react-hooks/rules-of-hooks\nvar unusedDefaultThemes = function () { return defaultThemes.forEach(function (theme) { return core_1.unuseTheme(theme); }); };\n// eslint-disable-next-line react-hooks/rules-of-hooks\nvar usePrintThemes = function () { return printThemes.forEach(function (theme) { return core_1.useTheme(theme); }); };\n// eslint-disable-next-line react-hooks/rules-of-hooks\nvar unusedPrintThemes = function () { return printThemes.forEach(function (theme) { return core_1.unuseTheme(theme); }); };\nvar XYChartComponent = /** @class */ (function (_super) {\n __extends(XYChartComponent, _super);\n function XYChartComponent(props) {\n var _a;\n var _this = _super.call(this, props) || this;\n _this.createReadyMarkerDiv = function () {\n var id = \"chart-ready\";\n if (!document.getElementById(id)) {\n var elem = document.createElement('div');\n elem.setAttribute(\"id\", id);\n document.body.append(elem);\n }\n // for wkhtml2pdf\n window.status = \"PDF_DONE\";\n console.log(\"Created READY markers.\");\n };\n _this.createChart = function () {\n if (!window.printLayout) {\n unusedPrintThemes();\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useDefaultThemes();\n }\n else {\n console.log(\"Disabling chart animations for quicker printing.\");\n unusedDefaultThemes();\n // eslint-disable-next-line react-hooks/rules-of-hooks\n usePrintThemes();\n }\n var chartFactory = _this.props.chartFactory;\n if (Array.isArray(chartFactory)) {\n _this.disposables = new multiChartLayoutHelper_1.MultiChartLayoutHelper(_this.chartElemId, chartFactory).createCharts(_this.createReadyMarkerDiv);\n }\n else {\n _this.disposables = [chartFactory.createChart(_this.chartElemId, _this.createReadyMarkerDiv)];\n }\n };\n _this.disposeChart = function () {\n if (_this.disposables) {\n _this.disposables.forEach(function (chart) { return chart.dispose(); });\n }\n };\n _this.chartElemId = (_a = props.chartElemId) !== null && _a !== void 0 ? _a : \"chartDiv-\" + Math.random();\n return _this;\n }\n XYChartComponent.prototype.componentDidUpdate = function (prevProps, prevState) {\n var propsEqual = react_fast_compare_1.default(prevProps, this.props);\n var stateEqual = react_fast_compare_1.default(prevState, this.state);\n if (propsEqual && stateEqual)\n return;\n this.disposeChart();\n this.createChart();\n };\n XYChartComponent.prototype.componentDidMount = function () {\n this.createChart();\n };\n XYChartComponent.prototype.componentWillUnmount = function () {\n this.disposeChart();\n };\n XYChartComponent.prototype.render = function () {\n return (React.createElement(\"div\", { className: \"main\" },\n React.createElement(\"div\", { className: \"main-chart-div\", id: this.chartElemId }),\n this.props.chartFooterComponent));\n };\n return XYChartComponent;\n}(React.Component));\nexports.XYChartComponent = XYChartComponent;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultiChartLayoutHelper = void 0;\nvar abstractXYChartFactory_1 = require(\"./factories/abstractXYChartFactory\");\nvar charts_1 = require(\"@amcharts/amcharts4/charts\");\nvar core_1 = require(\"@amcharts/amcharts4/core\");\nvar _ = __importStar(require(\"lodash\"));\nvar chartTheme_1 = require(\"./chartTheme\");\nvar MultiChartLayoutHelper = /** @class */ (function () {\n function MultiChartLayoutHelper(chartElemId, chartFactory) {\n this.chartElemId = chartElemId;\n this.chartFactory = chartFactory;\n }\n MultiChartLayoutHelper.prototype.createCharts = function (onReady) {\n var disposables = [];\n var mainContainer = core_1.create(this.chartElemId, core_1.Container);\n disposables.push(mainContainer);\n mainContainer.width = core_1.percent(100);\n mainContainer.height = core_1.percent(100);\n mainContainer.layout = \"vertical\";\n var titleLegendContainer = mainContainer.createChild(core_1.Container);\n disposables.push(titleLegendContainer);\n titleLegendContainer.width = core_1.percent(100);\n titleLegendContainer.layout = \"horizontal\";\n var label = titleLegendContainer.createChild(core_1.Label);\n disposables.push(label);\n label.text = \"Guider - Översikt\";\n abstractXYChartFactory_1.AbstractXYChartFactory.applyPrimaryTitleSettings(label);\n label.valign = \"middle\"; // vertical align with legend items\n // label.background.fill = color(\"green\");\n var legend = titleLegendContainer.createChild(charts_1.Legend);\n disposables.push(legend);\n // invisible label used for centering the legend\n var alignmentLabel = titleLegendContainer.createChild(core_1.Label);\n disposables.push(alignmentLabel);\n alignmentLabel.text = label.text;\n alignmentLabel.fill = core_1.color(\"#f\", 0);\n // legend.background.fill = color(\"blue\");\n legend.contentAlign = \"center\";\n legend.position = \"top\";\n legend.labels.template.fill = chartTheme_1.PrimaryColor;\n // Main charts container to put the sub charts in\n var chartsContainer = mainContainer.createChild(core_1.Container);\n disposables.push(chartsContainer);\n chartsContainer.width = core_1.percent(100);\n chartsContainer.height = core_1.percent(100);\n chartsContainer.layout = \"horizontal\";\n var charts = this.chartFactory.map(function (factory) {\n var chart = factory.createChart(chartsContainer);\n disposables.push(chart);\n return chart;\n });\n this.setupLegendData(charts, legend);\n // Setup mechanism for synchronizing Axes titles alignment.\n var allAxes = charts.map(function (chart) { return chart.xAxes; });\n var categoryAxisTitleHeight = _.fill(new Array(allAxes.length), 0);\n charts.forEach(function (chart, index) {\n var alignAxisTitles = function (chart) {\n chart.xAxes.values.forEach(function (axis) {\n // check all charts and set axis title height to the same for all\n categoryAxisTitleHeight[index] = axis.title.measuredHeight;\n var max = _.max(categoryAxisTitleHeight);\n if (max && max !== axis.title.minHeight) {\n allAxes.forEach(function (chartAxes) {\n chartAxes.each(function (axis) {\n axis.title.minHeight = max;\n });\n });\n }\n // make sure title keeps itself inside the axis\n axis.title.maxWidth = axis.measuredWidth;\n });\n };\n // not perfect axis title container resizing, but better than nothing\n chart.events.on(\"sizechanged\", function (e) {\n alignAxisTitles(e.target);\n });\n });\n // hide chart layout yanking around on layout creation\n mainContainer.hidden = true;\n mainContainer.events.on(\"ready\", function () {\n mainContainer.show();\n onReady();\n });\n return disposables;\n };\n MultiChartLayoutHelper.prototype.setupLegendData = function (charts, legend) {\n // Pick the legend names from the series and assume that series are the same for all charts\n var chart0 = _.first(charts);\n if (chart0) {\n var legendData_1 = [];\n chart0.series.each(function (series) { return legendData_1.push({ name: series.name.toUpperCase(), fill: series.stroke }); });\n legend.data = legendData_1;\n }\n };\n return MultiChartLayoutHelper;\n}());\nexports.MultiChartLayoutHelper = MultiChartLayoutHelper;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InvertedRankingChartFactory = void 0;\nvar lineChartYearFactory_1 = require(\"./lineChartYearFactory\");\nvar lodash_1 = __importDefault(require(\"lodash\"));\nvar util_1 = require(\"./util\");\nvar InvertedRankingChartFactory = /** @class */ (function (_super) {\n __extends(InvertedRankingChartFactory, _super);\n function InvertedRankingChartFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InvertedRankingChartFactory.prototype.configAxes = function (categoryAxis, valueAxis) {\n var _a;\n _super.prototype.configAxes.call(this, categoryAxis, valueAxis);\n valueAxis.renderer.inversed = true;\n // disable zero line\n valueAxis.renderer.baseGrid.disabled = true;\n // https://www.amcharts.com/docs/v4/tutorials/custom-valueaxis-grid-using-ranges/\n valueAxis.renderer.grid.template.disabled = true;\n valueAxis.renderer.labels.template.disabled = true;\n var createGrid = util_1.createAxisGrid(valueAxis);\n createGrid(1);\n createGrid(50);\n createGrid(100);\n createGrid(150);\n createGrid(200);\n createGrid(250);\n createGrid(290);\n valueAxis.min = 0;\n valueAxis.extraMin = 0.02;\n valueAxis.max = 290;\n valueAxis.extraMax = 0.03;\n valueAxis.strictMinMax = true;\n // overwrite title based on year interval\n var mainTitle = (_a = valueAxis.chart.titles.values) === null || _a === void 0 ? void 0 : _a[0];\n if (mainTitle) {\n var years = this.props.data.map(function (entry) { return entry.year; });\n mainTitle.text = \"Rankingutveckling \" + lodash_1.default.min(years) + \"-\" + lodash_1.default.max(years);\n }\n };\n return InvertedRankingChartFactory;\n}(lineChartYearFactory_1.LineChartYearFactory));\nexports.InvertedRankingChartFactory = InvertedRankingChartFactory;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBarChartDataCombined = void 0;\nvar _ = __importStar(require(\"lodash\"));\nvar toBarChartConverter_1 = require(\"./toBarChartConverter\");\nvar seriesNameTo = function (seriesName, respondentType) { return seriesName + \" (\" + respondentType + \")\"; };\nvar stripRespondentTypeFromTopTitle = function (topTitle) {\n var split = topTitle.split(/\\(|\\)/gm);\n var parenBody = split[1]\n .split(\",\")\n .map(function (e) { return e.trim(); })\n .filter(function (e) {\n // it's possible to use a type helper to be able to refer to the literal types as values, but...\n return e.toLowerCase() !== 'Företagare'.toLowerCase() &&\n e.toLowerCase() !== 'Politiker'.toLowerCase();\n })\n .join(\", \")\n .trim();\n return split[0] + \"(\" + parenBody + \")\";\n};\nfunction toBarChartDataCombined(_a, chartService) {\n var _b, _c;\n var chartDataEntrepreneurs = _a[0], chartDataPoliticians = _a[1];\n var barChartDataEntrepreneurs = toBarChartConverter_1.toBarChartData(chartDataEntrepreneurs, chartService);\n var barChartDataPoliticians = toBarChartConverter_1.toBarChartData(chartDataPoliticians, chartService);\n if (!_.isEqual(barChartDataEntrepreneurs.sources, barChartDataPoliticians.sources)) {\n console.error(barChartDataEntrepreneurs.sources);\n console.error(barChartDataPoliticians.sources);\n throw Error(\"Differing sources.\");\n }\n if (!_.isEqual(barChartDataEntrepreneurs.title, barChartDataPoliticians.title))\n throw Error(\"Differing title.\");\n if (!_.isEqual(barChartDataEntrepreneurs.year, barChartDataPoliticians.year))\n throw Error(\"Differing year.\");\n if (barChartDataEntrepreneurs.category !== barChartDataPoliticians.category)\n throw Error(\"Differing categories.\");\n var category = barChartDataEntrepreneurs.category;\n barChartDataEntrepreneurs.data = barChartDataEntrepreneurs.data.map(function (eData) {\n return _.mapKeys(eData, function (_, seriesName) { return seriesName !== category ? seriesNameTo(seriesName, 'Företagare') : seriesName; });\n });\n barChartDataPoliticians.data = barChartDataPoliticians.data.map(function (eData) {\n return _.mapKeys(eData, function (_, seriesName) { return seriesName !== category ? seriesNameTo(seriesName, 'Politiker') : seriesName; });\n });\n var mergedData = barChartDataEntrepreneurs.data.map(function (eData) {\n var pData = _.find(barChartDataPoliticians.data, function (series) { return series.category === eData.category; });\n return _.merge({}, eData, pData);\n });\n var mergedAttributes = _.chain(_.zip(barChartDataEntrepreneurs.seriesAttributes, barChartDataPoliticians.seriesAttributes))\n .flatMap(function (_a) {\n var entrepreneurs = _a[0], policitians = _a[1];\n var withUpdatedSeriesNameE = entrepreneurs\n ? __assign(__assign({}, entrepreneurs), { seriesName: seriesNameTo(entrepreneurs.seriesName, 'Företagare') }) : {};\n var withUpdatedSeriesNameP = policitians\n ? __assign(__assign({}, policitians), { seriesName: seriesNameTo(policitians.seriesName, 'Politiker') }) : {};\n return _.concat(withUpdatedSeriesNameE, withUpdatedSeriesNameP);\n })\n .value();\n var entrepreneursTT = stripRespondentTypeFromTopTitle((_b = barChartDataEntrepreneurs === null || barChartDataEntrepreneurs === void 0 ? void 0 : barChartDataEntrepreneurs.topTitle) !== null && _b !== void 0 ? _b : \"\");\n var politiciansTT = stripRespondentTypeFromTopTitle((_c = barChartDataPoliticians === null || barChartDataPoliticians === void 0 ? void 0 : barChartDataPoliticians.topTitle) !== null && _c !== void 0 ? _c : \"\");\n if (entrepreneursTT !== politiciansTT)\n throw Error(\"Differing TopTitle.\");\n return {\n // props are the same\n sources: barChartDataEntrepreneurs.sources,\n title: barChartDataEntrepreneurs.title,\n year: barChartDataEntrepreneurs.year,\n category: barChartDataEntrepreneurs.category,\n // merged data\n data: mergedData,\n seriesAttributes: mergedAttributes,\n // topTitle is stripped from respondent type\n topTitle: entrepreneursTT\n };\n}\nexports.toBarChartDataCombined = toBarChartDataCombined;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChartFooterComponent = void 0;\nvar react_1 = __importDefault(require(\"react\"));\nexports.ChartFooterComponent = react_1.default.memo(function (props) {\n return (react_1.default.createElement(\"div\", { className: \"chart-footer\" },\n props.chartingSelectComponent,\n props.respondentTypeSelectComponent,\n react_1.default.createElement(\"div\", { id: \"chart-export-menu\" + (props.menuPlacementTop ? \"-modal\" : \"\") })));\n});\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Top5Comparison = void 0;\nvar React = __importStar(require(\"react\"));\nvar react_1 = require(\"react\");\nvar axios_1 = __importDefault(require(\"axios\"));\nexports.Top5Comparison = React.memo(function (_a) {\n var active = _a.active, setActive = _a.setActive, activeFactor = _a.activeFactor, isBiggerBetter = _a.isBiggerBetter, respondentType = _a.respondentType, comparisonMunicipalitiesDispatch = _a.comparisonMunicipalitiesDispatch, groupingService = _a.groupingService;\n react_1.useEffect(function () {\n if (active === 'top') {\n var passRespondentTypeIfSurvey = groupingService.getFactorGroup(activeFactor) === 'survey';\n // We have survey charts showing both respondent types. Which means that respondent type is null. However,\n // we need a non-null respondentType to retrieve a correct Top 5 factors so we simply send 'Företagare' if we\n // must send something when it's undefined.\n var type = passRespondentTypeIfSurvey\n ? (respondentType !== null && respondentType !== void 0 ? respondentType : 'Företagare')\n : undefined;\n axios_1.default.get(\"/ranking/\" + activeFactor + \"/top\", {\n params: {\n type: type,\n sortOrder: isBiggerBetter === undefined ? undefined : (isBiggerBetter ? \"descending\" : \"ascending\")\n }\n }).then(function (r) {\n var response = r.data;\n var municipalities = response.map(function (_a) {\n var name = _a.name;\n return name;\n });\n comparisonMunicipalitiesDispatch(['SET', municipalities]);\n })\n .catch(function (err) { return console.error(err); });\n }\n }, [active, activeFactor, isBiggerBetter, respondentType, comparisonMunicipalitiesDispatch, groupingService]);\n var onClick = function () {\n setActive('top');\n };\n return (React.createElement(\"li\", { className: active === 'top' ? 'active' : '' },\n React.createElement(\"a\", { onMouseDown: onClick },\n React.createElement(\"span\", null, \"Topp 5 inom m\\u00E4tv\\u00E4rdet\"),\n React.createElement(\"i\", { className: \"fas fa-chevron-\" + (active === 'top' ? \"up\" : \"down\") }))));\n});\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SKRComparison = void 0;\nvar React = __importStar(require(\"react\"));\nvar _ = __importStar(require(\"lodash\"));\nvar skr_1 = require(\"../../../fixtures/skr\");\nvar allSKRChildren = _.flatMap(skr_1.SKR, function (value) { return value.children; });\nvar groupToMunicipalities = _.flatMap(allSKRChildren, function (value) { return _.map(value, function (value, group) { return [\n group,\n value.name,\n value.municipalities\n]; }); });\nvar findFromMunicipality = function (municipality) {\n return _.find(groupToMunicipalities, function (_a) {\n var municipalities = _a[2];\n return _.includes(municipalities, municipality);\n });\n};\nexports.SKRComparison = React.memo(function (_a) {\n var active = _a.active, setActive = _a.setActive, activeMunicipality = _a.activeMunicipality, comparisonMunicipalitiesDispatch = _a.comparisonMunicipalitiesDispatch;\n var found = findFromMunicipality(activeMunicipality);\n var groupName;\n var comparisonMunicipalities;\n if (!found) {\n console.error(\"Couldn't find municipality \" + activeMunicipality + \" in any SKR group.\");\n }\n else {\n var gName = found[1], municipalities = found[2];\n var comparison = typeof municipalities === 'string' ? [municipalities] : municipalities;\n comparisonMunicipalities = comparison;\n // const effective = _.filter(comparison, m => m !== activeMunicipality);\n // comparisonMunicipalities = effective;\n groupName = typeof gName === 'string' ? gName : gName.join(' ');\n }\n var onClick = function () {\n setActive('SKR');\n if (comparisonMunicipalities) {\n comparisonMunicipalitiesDispatch(['SET', comparisonMunicipalities]);\n }\n };\n // set municipalities once at initialization\n React.useEffect(function () {\n if (active === 'SKR' && comparisonMunicipalities) {\n comparisonMunicipalitiesDispatch(['SET', comparisonMunicipalities]);\n }\n });\n return (React.createElement(\"li\", { className: active === 'SKR' ? 'active' : '' },\n React.createElement(\"a\", { onMouseDown: onClick }, \"SKR grupp \\\"\" + groupName + \"\\\"\",\n React.createElement(\"i\", { className: \"fas fa-chevron-\" + (active === 'SKR' ? \"up\" : \"down\") }))));\n});\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFocusMnemonic = void 0;\nvar react_1 = require(\"react\");\nvar mousetrap_1 = __importDefault(require(\"mousetrap\"));\nfunction useFocusMnemonic(bindString) {\n var inputRef = react_1.useRef(null);\n react_1.useEffect(function () {\n mousetrap_1.default.bind(bindString, function () { var _a; return (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus(); });\n return function () {\n mousetrap_1.default.unbind(bindString);\n };\n }, [bindString]);\n return inputRef;\n}\nexports.useFocusMnemonic = useFocusMnemonic;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelectTheme = void 0;\nexports.SelectTheme = function (theme) { return (__assign(__assign({}, theme), { borderRadius: 3, colors: __assign(__assign({}, theme.colors), { neutral20: '#dee4ea', primary: '#dee4ea', primary25: '#eff2f5', neutral80: '#33414e', primary50: 'dee4ea' }) })); };\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MunicipalityBarChartFactory = exports.Municipality = void 0;\nvar charts_1 = require(\"@amcharts/amcharts4/charts\");\nvar chartTheme_1 = require(\"../chartTheme\");\nvar abstractXYChartFactory_1 = require(\"./abstractXYChartFactory\");\nvar barChartFactory_1 = require(\"./barChartFactory\");\nvar util_1 = require(\"./util\");\nexports.Municipality = 'municipality';\n/** Used for showing guides progress of municipalities. */\nvar MunicipalityBarChartFactory = /** @class */ (function (_super) {\n __extends(MunicipalityBarChartFactory, _super);\n function MunicipalityBarChartFactory(props) {\n return _super.call(this, props) || this;\n }\n MunicipalityBarChartFactory.prototype.defaultChartType = function () { return charts_1.ColumnSeries; };\n MunicipalityBarChartFactory.prototype.reverseXY = function () { return false; };\n MunicipalityBarChartFactory.prototype.createChart = function (chartElemIdOrContainer) {\n var chart = _super.prototype.createChart.call(this, chartElemIdOrContainer);\n chart.cursor.disabled = true;\n return chart;\n };\n MunicipalityBarChartFactory.prototype.createSeries = function (chart, seriesAttribute, SeriesClass) {\n var series = _super.prototype.createSeries.call(this, chart, seriesAttribute, SeriesClass);\n if (series.tooltip)\n series.tooltip.disabled = true;\n return series;\n };\n MunicipalityBarChartFactory.prototype.configAxes = function (categoryAxis, valueAxis) {\n _super.prototype.configAxes.call(this, categoryAxis, valueAxis);\n // cell padding left/right\n categoryAxis.renderer.cellStartLocation = 0.1;\n categoryAxis.renderer.cellEndLocation = .9;\n if (typeof this.props.categoryAxisTitle === 'string') {\n // disable label if title is set\n categoryAxis.renderer.labels.template.disabled = true;\n categoryAxis.title.text = this.props.categoryAxisTitle;\n categoryAxis.title.fontWeight = \"500\";\n categoryAxis.title.fontFamily = \"Montserrat\";\n categoryAxis.title.fontSize = \"14px\";\n categoryAxis.title.fill = chartTheme_1.PrimaryTextColor;\n categoryAxis.title.maxWidth = categoryAxis.maxWidth;\n // 2 rows of text, need to align all charts to longest text one\n categoryAxis.title.minHeight = 40;\n categoryAxis.title.marginTop = 10;\n // categoryAxis.background.fill = color(\"red\");\n // categoryAxis.title.background.fill = color(\"green\");\n categoryAxis.title.wrap = true;\n categoryAxis.renderer.opposite = false;\n }\n // https://www.amcharts.com/docs/v4/tutorials/custom-valueaxis-grid-using-ranges/\n valueAxis.renderer.grid.template.disabled = true;\n valueAxis.renderer.labels.template.disabled = true;\n var createGrid = util_1.createAxisGrid(valueAxis);\n var i = 0;\n for (; i <= this.props.maxValue; i += 5) {\n createGrid(i);\n }\n if (i !== this.props.maxValue) {\n createGrid(this.props.maxValue);\n }\n // always include zero in order to preserve differences\n valueAxis.min = 0;\n valueAxis.max = this.props.maxValue;\n valueAxis.strictMinMax = true;\n };\n MunicipalityBarChartFactory.prototype.addSeriesBullets = function (series) {\n if (series instanceof charts_1.ColumnSeries) {\n series.columns.template.column.cornerRadius(3, 3, 0, 0);\n var valueLabel = barChartFactory_1.BarChartFactory.addColumnSeriesLabelBullets(series, this.getSeriesValueXYName(), chartTheme_1.numberFormatter0Decimals);\n valueLabel.label.fontSize = 14;\n valueLabel.label.verticalCenter = \"top\";\n valueLabel.dy = 3;\n // valueLabel.locationY = 0.02;\n }\n };\n // Need to be empty to not add default legends.\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n MunicipalityBarChartFactory.prototype.addLegend = function () { };\n return MunicipalityBarChartFactory;\n}(abstractXYChartFactory_1.AbstractXYChartFactory));\nexports.MunicipalityBarChartFactory = MunicipalityBarChartFactory;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.miniPubSub = void 0;\nvar MiniPubSub = /** @class */ (function () {\n function MiniPubSub() {\n var _this = this;\n this.subscribers = {};\n this.subscribe = function (key, subscriber) {\n if (!_this.subscribers[key]) {\n _this.subscribers[key] = [];\n }\n _this.subscribers[key] = _this.subscribers[key].filter(function (s) { return s !== subscriber; }).concat(subscriber);\n };\n this.notify = function (key, n) {\n var _a, _b;\n ((_b = (_a = _this.subscribers) === null || _a === void 0 ? void 0 : _a[key]) !== null && _b !== void 0 ? _b : []).forEach(function (s) { return s(n); });\n };\n }\n return MiniPubSub;\n}());\nexports.miniPubSub = new MiniPubSub();\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.seriesNamesFilterer = exports.identityTransformer = exports.DataDescriptionYearName = void 0;\nvar lodash_1 = __importDefault(require(\"lodash\"));\nexports.DataDescriptionYearName = 'YEAR';\nexports.identityTransformer = function (d) { return d; };\nvar seriesHeaderSortValue = function (header) {\n var sortValue = 0;\n sortValue += header.indexOf('YEAR') != -1 ? 10 : 0;\n sortValue += header.indexOf('Företagare') != -1 ? 2 : 0;\n return -sortValue;\n};\n/* Creates filterers for filtering the chart data returned by the backend on series name.*/\nexports.seriesNamesFilterer = function (seriesNames) {\n return function (chartData) {\n var seriesNamesToInclude = lodash_1.default.concat([exports.DataDescriptionYearName], seriesNames);\n var namePred = function (name) { return lodash_1.default.some(seriesNamesToInclude, function (s) { return name.indexOf(s) !== -1; }); };\n var dataSeriesIndicesToKeep = lodash_1.default(chartData.attributes.datadesc)\n .pickBy(function (dd) { return namePred(dd.name); }) // only pick series matching name\n .keys() // just the indices\n .map(Number) // convert array indices to numbers\n .value();\n var filterIndices = function (__, index) { return lodash_1.default.includes(dataSeriesIndicesToKeep, index); };\n var updatedDataDesc = chartData.attributes.datadesc.filter(filterIndices);\n var updatedData = chartData.data.data.map(function (dataRow) { return dataRow.filter(filterIndices); });\n var updatedHeader = chartData.data.header.filter(filterIndices);\n var updatedTypes = chartData.data.types.filter(filterIndices);\n var indexMap = lodash_1.default.reduce(updatedHeader, function (acc, value, index) {\n var _a;\n return __assign(__assign({}, acc), (_a = {}, _a[index] = seriesHeaderSortValue(value), _a));\n }, {});\n var indexMapSorter = function (array) {\n var withSortValue = array.map(function (value, index) { return ({ value: value, sortValue: indexMap[index] }); });\n return lodash_1.default(withSortValue).sortBy(function (elem) { return elem.sortValue; }).map(function (elem) { return elem.value; }).value();\n };\n updatedDataDesc = indexMapSorter(updatedDataDesc);\n updatedData = updatedData.map(function (row) { return indexMapSorter(row); });\n updatedHeader = indexMapSorter(updatedHeader);\n updatedTypes = indexMapSorter(updatedTypes);\n var updatedDataData = {\n data: updatedData,\n header: updatedHeader,\n types: updatedTypes,\n };\n return {\n attributes: __assign(__assign({}, chartData.attributes), { datadesc: updatedDataDesc }),\n data: updatedDataData\n };\n };\n};\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Fklimat = void 0;\nvar jquery_1 = __importDefault(require(\"jquery\"));\nvar underscore_1 = __importDefault(require(\"underscore\"));\nexports.Fklimat = {\n AdaptiveCharts: {\n theme: 'fklimat-both',\n charts: {},\n initialize: function () {\n this.calculateTheme();\n },\n register: function (id, callback) {\n this.charts[id] = callback;\n },\n calculateTheme: function () {\n return this.theme = this.isOnPhoneVersion() ?\n // Does a mobile theme even exist still? Is it the default HighCharts theme?\n // 'mobile'\n 'fklimat-both'\n :\n 'fklimat-both';\n },\n calculateHeight: function (height, factor) {\n var targetHeight = height * (factor || 1);\n if (this.isOnPhoneVersion()) {\n return Math.min(450, height);\n }\n else {\n return targetHeight;\n }\n },\n isOnPhoneVersion: function () {\n var middle = jquery_1.default(window).width();\n return middle ? 320 <= middle && middle < 768 : false;\n },\n onResize: function () {\n var _this = this;\n var oldTheme = this.theme;\n this.calculateTheme();\n var newTheme = this.theme;\n if (oldTheme === newTheme) {\n return;\n }\n return (function () {\n var result = [];\n for (var id in exports.Fklimat.AdaptiveCharts.charts) {\n // @ts-ignore\n var callback = exports.Fklimat.AdaptiveCharts.charts[id];\n result.push(callback(_this.theme));\n }\n return result;\n })();\n }\n },\n renderTo: function (elementId, presentable, parameters, callback, options, adaptive) {\n var drawChart = function (theme) {\n options = underscore_1.default.extend({}, options, { theme: theme });\n if (adaptive === null || adaptive === void 0 ? void 0 : adaptive.height) {\n var height = exports.Fklimat.AdaptiveCharts.calculateHeight(adaptive.height, adaptive.factor);\n adaptive.container.height(height);\n }\n var handle = Artilect.renderTo(elementId, presentable, parameters, callback, options);\n return handle.join(function (r, err) {\n if (window.renderFinished) {\n return window.renderFinished(r, err);\n }\n });\n };\n exports.Fklimat.AdaptiveCharts.register(elementId, drawChart);\n return drawChart(exports.Fklimat.AdaptiveCharts.theme);\n }\n};\n// Execute the function when the DOM is ready to be used.\njquery_1.default(function () {\n exports.Fklimat.AdaptiveCharts.initialize();\n return jquery_1.default(window).resize(underscore_1.default.debounce(function () { return exports.Fklimat.AdaptiveCharts.onResize(); }, 250));\n});\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RankingWidget = void 0;\nvar React = __importStar(require(\"react\"));\nvar lodash_1 = __importDefault(require(\"lodash\"));\nvar rankingWidgetTable_1 = require(\"./rankingWidgetTable\");\nvar rankingHistoryRow_1 = require(\"./rankingHistoryRow\");\nvar useQueryParamSynched_1 = require(\"../hooks/useQueryParamSynched\");\nvar rankingLargestDeltas_1 = require(\"./rankingLargestDeltas\");\nvar react_responsive_1 = require(\"react-responsive\");\nexports.RankingWidget = function (props) {\n var _a;\n var entries = props.entries;\n var isMobile = react_responsive_1.useMediaQuery({ query: '(max-width: 767px)' });\n var _b = useQueryParamSynched_1.useQueryParamSynched(\"municipality\", (_a = lodash_1.default.head(entries)) === null || _a === void 0 ? void 0 : _a.name), municipality = _b[0], setMunicipality0 = _b[1];\n var selectedEntry = entries.find(function (e) { return e.name === municipality; });\n var setMunicipality = function (municipality) {\n if (isMobile) {\n window.location.href = \"/find?name=\" + municipality;\n }\n else {\n setMunicipality0(municipality);\n }\n };\n if (!selectedEntry || !municipality) {\n throw new Error(\"No entries provided.\");\n }\n var ranks = selectedEntry.ranks;\n return (React.createElement(\"div\", { className: \"chart-ranking\" },\n React.createElement(\"div\", { key: \"table\", className: \"rankings\" },\n React.createElement(rankingWidgetTable_1.RankingWidgetTable, __assign({}, props, { setMunicipality: setMunicipality }))),\n !isMobile && React.createElement(\"div\", { key: \"data\", className: \"chart-stat\" },\n React.createElement(\"div\", { className: \"chart-stat-header\" },\n React.createElement(\"div\", { className: \"title\" }, municipality),\n React.createElement(\"a\", { href: \"/find?name=\" + municipality, className: \"view-more\" }, \"Visa kommun\")),\n React.createElement(rankingHistoryRow_1.RankingHistoryRow, { ranks: ranks, latestYear: props.sortYear }),\n React.createElement(rankingLargestDeltas_1.RankingLargestDeltas, { municipality: municipality }))));\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RankingWidgetTable = void 0;\nvar React = __importStar(require(\"react\"));\nvar _ = __importStar(require(\"lodash\"));\nvar deltaArrowNumber_1 = require(\"./deltaArrowNumber\");\nvar useQueryParamSynched_1 = require(\"../hooks/useQueryParamSynched\");\nvar rankingUtil_1 = require(\"./rankingUtil\");\nvar filterList_1 = require(\"../lib/filterList\");\nvar QPSortValues;\n(function (QPSortValues) {\n QPSortValues[\"RANK\"] = \"rank\";\n QPSortValues[\"DELTA\"] = \"delta\";\n QPSortValues[\"NAME\"] = \"name\";\n})(QPSortValues || (QPSortValues = {}));\nvar svCollator = new Intl.Collator('sv');\nfunction compareFn(sort, dir, year) {\n switch (sort) {\n case QPSortValues.RANK:\n return function (entry, other) { return (entry.ranks[year] - other.ranks[year]) * dir; };\n case QPSortValues.DELTA:\n return function (entry, other) { return (rankingUtil_1.getDelta(entry.ranks, year) - rankingUtil_1.getDelta(other.ranks, year)) * dir; };\n case QPSortValues.NAME:\n return function (entry, other) { return svCollator.compare(entry.name, other.name) * dir; };\n default:\n throw \"Unknown sort '\" + sort + \"'\";\n }\n}\nexports.RankingWidgetTable = function (props) {\n var entries = props.entries, years = props.years, setMunicipality = props.setMunicipality;\n var year = _.max(years);\n if (!year) {\n throw Error(\"Need a year to show rankings for.\");\n }\n var _a = filterList_1.useFilterList([]), filterList = _a[0], onChange = _a[2];\n var renderRows = function (entries, year) {\n return entries.filter(function (e) { return filterList_1.namePassesFilter(e.name, filterList); }).map(function (e) {\n var name = e.name, ranks = e.ranks;\n var rank = ranks[year];\n var specialColor = function (rank) {\n switch (rank) {\n case 1: return \"gold\";\n case 2: return \"silver\";\n case 3: return \"bronze\";\n default: return \"\";\n }\n };\n return React.createElement(\"tr\", { key: name, className: \"muni-rows \" + specialColor(rank), onClick: function () { return setMunicipality(name); } },\n React.createElement(\"td\", { className: \"year\" }, rank),\n React.createElement(\"td\", { className: \"delta\" },\n React.createElement(deltaArrowNumber_1.DeltaArrowNumber, { ranks: ranks, latestYear: props.sortYear })),\n React.createElement(\"td\", { className: \"name\" },\n React.createElement(\"div\", null,\n name,\n React.createElement(\"i\", { className: \"fas fa-chevron-right\", \"aria-hidden\": \"true\" }))));\n });\n };\n var defaultSortDir = function (s) { return s !== QPSortValues.DELTA ? 1 : -1; };\n var _b = useQueryParamSynched_1.useQueryParamSynched(\"sort\", QPSortValues.RANK), sort = _b[0], setSort = _b[1];\n var _c = useQueryParamSynched_1.useQueryParamSynched(\"sortDir\", defaultSortDir(sort)), sortDir = _c[0], setSortDir = _c[1];\n entries.sort(compareFn(sort, sortDir, props.sortYear));\n var createOnClickHandler = function (s) {\n return function (e) {\n e.preventDefault();\n if (sort === s) {\n setSortDir(sortDir * -1);\n }\n else {\n setSortDir(defaultSortDir(s));\n setSort(s);\n }\n };\n };\n var arrowDir = function (s) {\n if (sort === s) {\n return sortDir < 0 ? \"up\" : \"down\";\n }\n return \"down\";\n };\n return React.createElement(\"table\", { className: \"ranking-table\" },\n React.createElement(\"thead\", null,\n React.createElement(\"tr\", null,\n React.createElement(\"th\", { className: \"year \" + (sort === QPSortValues.RANK ? \"sort\" : \"\") },\n React.createElement(\"a\", { onClick: createOnClickHandler(QPSortValues.RANK), href: \"/start/ranking?sort=\" + QPSortValues.RANK + \"&sortDir=\" + sortDir * -1 },\n \"Rank\",\n React.createElement(\"i\", { className: \"fas fa-chevron-\" + arrowDir(QPSortValues.RANK), \"aria-hidden\": \"true\" }))),\n React.createElement(\"th\", { className: \"delta \" + (sort === QPSortValues.DELTA ? \"sort\" : \"\") },\n React.createElement(\"a\", { onClick: createOnClickHandler(QPSortValues.DELTA), href: \"/start/ranking?sort=\" + QPSortValues.DELTA + \"&sortDir=\" + sortDir * -1 },\n React.createElement(\"li\", { className: \"fa fa-arrow-up\" }),\n \"/\",\n React.createElement(\"li\", { className: \"fa fa-arrow-down\" }),\n React.createElement(\"i\", { className: \"fas fa-chevron-\" + arrowDir(QPSortValues.DELTA), \"aria-hidden\": \"true\" }))),\n React.createElement(\"th\", { className: \"name \" + (sort === QPSortValues.NAME ? \"sort\" : \"\") },\n React.createElement(\"form\", null,\n React.createElement(\"div\", { className: \"field\" },\n React.createElement(\"input\", { autoComplete: \"off\", id: \"table-scroller\", name: \"name\", placeholder: \"S\\u00F6k kommun\", type: \"text\", onChange: onChange })),\n React.createElement(\"a\", { onClick: createOnClickHandler(QPSortValues.NAME), href: \"/start/ranking?sort=\" + QPSortValues.NAME + \"&sortDir=\" + sortDir * -1 },\n React.createElement(\"i\", { className: \"fas fa-chevron-\" + arrowDir(QPSortValues.NAME), \"aria-hidden\": \"true\" })))))),\n React.createElement(\"tbody\", { id: \"muni-table\" }, renderRows(entries, year)));\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RankingHistoryRow = void 0;\nvar React = __importStar(require(\"react\"));\nvar _ = __importStar(require(\"lodash\"));\nvar deltaArrowNumber_1 = require(\"./deltaArrowNumber\");\nvar rankingUtil_1 = require(\"./rankingUtil\");\nvar N_YEARS_TO_SHOW = 6;\nexports.RankingHistoryRow = function (props) {\n var ranks = props.ranks, latestYear = props.latestYear;\n var years = rankingUtil_1.getAvailableYears(ranks);\n return (React.createElement(\"div\", { className: \"total\" },\n React.createElement(\"table\", null,\n React.createElement(\"tbody\", null,\n React.createElement(\"tr\", null,\n React.createElement(\"td\", { className: \"title\" },\n \"Totalranking \",\n latestYear,\n \": \",\n ranks[latestYear],\n \" (\",\n React.createElement(deltaArrowNumber_1.DeltaArrowNumber, { ranks: ranks, latestYear: latestYear }),\n \")\"),\n _.chain(years).takeRight(N_YEARS_TO_SHOW).dropRight(1).map(function (year) {\n return (React.createElement(\"td\", { key: year },\n React.createElement(\"strong\", null, year),\n React.createElement(\"span\", null, ranks[year])));\n }).value())))));\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RankingLargestDeltas = void 0;\nvar axios_1 = __importDefault(require(\"axios\"));\nvar React = __importStar(require(\"react\"));\nvar react_1 = require(\"react\");\nvar factorService_1 = require(\"../../../services/factorService\");\nvar deltaArrowNumber_1 = require(\"./deltaArrowNumber\");\nvar lodash_1 = __importDefault(require(\"lodash\"));\nvar DeltaFactorBox = function (props) {\n var deltaFactorRanks = props.deltaFactorRanks, factorService = props.factorService;\n var delta = deltaFactorRanks[0], factorSlug = deltaFactorRanks[1];\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", null,\n React.createElement(\"span\", { className: \"arrow\" },\n React.createElement(deltaArrowNumber_1.DeltaArrow, { delta: delta })),\n React.createElement(\"span\", { className: \"number\" }, delta)),\n React.createElement(\"div\", { className: \"name\" },\n React.createElement(\"a\", { href: \"/ranking?factor=\" + factorSlug }, factorService.getName(factorSlug)))));\n};\nexports.RankingLargestDeltas = function (props) {\n var municipality = props.municipality;\n var _a = react_1.useState(undefined), data = _a[0], setData = _a[1];\n react_1.useEffect(function () {\n axios_1.default.get('/rankings/by_largest_delta', { params: { municipality: municipality } }).then(function (r) {\n setData(r.data);\n }).catch(function (err) { return console.error(err); });\n }, [municipality, setData]);\n if (!data) {\n return React.createElement(React.Fragment, null);\n }\n var factorService = new factorService_1.FactorService();\n var tableRows = lodash_1.default.chain(data).chunk(2).map(function (pair) {\n var left = pair[0], right = pair[1];\n var leftSlug = left[1];\n var rightSlug = right[1];\n return React.createElement(\"tr\", { key: leftSlug + \"-\" + rightSlug },\n React.createElement(\"td\", null,\n React.createElement(DeltaFactorBox, { deltaFactorRanks: left, factorService: factorService })),\n React.createElement(\"td\", null,\n React.createElement(DeltaFactorBox, { deltaFactorRanks: right, factorService: factorService })));\n }).value();\n return React.createElement(\"div\", { className: \"content\" },\n React.createElement(\"div\", { className: \"title\" }, \"St\\u00F6rsta f\\u00F6r\\u00E4ndringar\"),\n React.createElement(\"table\", null,\n React.createElement(\"tbody\", null, tableRows)));\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringUnion = exports.assertIsDefined = exports.doReduce = exports.isFunc = exports.isDefined = void 0;\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\nexports.isDefined = isDefined;\n// Just want to check if callable.\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isFunc(payload) {\n return typeof payload === 'function';\n}\nexports.isFunc = isFunc;\nfunction doReduce(prevState, payload) {\n return isFunc(payload) ? payload(prevState) : payload;\n}\nexports.doReduce = doReduce;\nfunction assertIsDefined(val) {\n if (val === undefined || val === null) {\n throw new Error(\"Expected 'val' to be defined, but received \" + val);\n }\n}\nexports.assertIsDefined = assertIsDefined;\n// @see: https://stackoverflow.com/questions/36836011/checking-validity-of-string-literal-union-type-at-runtime\n// TypeScript will infer a string union type from the literal values passed to\n// this function. Without `extends string`, it would instead generalize them\n// to the common string type.\n// Return type pretty meaty, just let TypeScript infer it.\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexports.StringUnion = function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n Object.freeze(values);\n var valueSet = new Set(values);\n var guard = function (value) {\n return valueSet.has(value);\n };\n var check = function (value) {\n if (!guard(value)) {\n var actual = JSON.stringify(value);\n var expected = values.map(function (s) { return JSON.stringify(s); }).join(' | ');\n throw new TypeError(\"Value '\" + actual + \"' is not assignable to type '\" + expected + \"'.\");\n }\n return value;\n };\n var unionNamespace = { guard: guard, check: check, values: values };\n return Object.freeze(unionNamespace);\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GuidesChartWidget = void 0;\nvar React = __importStar(require(\"react\"));\nvar reactModalHelper_1 = require(\"../helpers/reactModalHelper\");\nvar municipalityComparison_1 = require(\"../comparison/municipalityComparison\");\nvar guideBoxesComponent_1 = require(\"./guideBoxesComponent\");\n// noinspection JSUnusedGlobalSymbols\nexports.GuidesChartWidget = function (props) {\n reactModalHelper_1.setReactModalAppElement();\n var selectedMunicipalities = municipalityComparison_1.useMunicipalityComparison(props.initialMunicipalities).selectedMunicipalities;\n // const exampleGuideSlug = _.keys(Guides)[0] as GuideSlug;\n return React.createElement(React.Fragment, null,\n React.createElement(guideBoxesComponent_1.GuideBoxesComponent, { selectedMunicipalities: selectedMunicipalities, focusMunicipality: props.focusMunicipality, guideSlugToLink: props.guideSlugToLink, guideSlugToChecklistLink: props.guideSlugToChecklistLink }));\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.municipalityReducer = void 0;\nvar _ = __importStar(require(\"lodash\"));\nvar func_1 = require(\"../util/func\");\nvar counties_1 = require(\"../../fixtures/counties\");\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nvar withAlwaysFirstAndUniq = function (alwaysFirst) { return function (updated) {\n if (_.includes(updated, alwaysFirst)) {\n updated = [alwaysFirst].concat(updated);\n }\n return _.uniq(updated);\n}; };\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nvar withAlwaysLastAndUniq = function (alwaysLast) { return function (updated) {\n if (_.includes(updated, alwaysLast)) {\n updated = (Array()).concat(updated, [alwaysLast]);\n }\n return _.chain(updated).reverse().uniq().reverse().value();\n}; };\nvar addUniqSort = function (prev, m, specialSortAndUniqFn, doSort) {\n if (doSort === void 0) { doSort = false; }\n var updated = doSort ? prev.concat(m).sort() : prev.concat(m);\n return specialSortAndUniqFn(updated);\n};\nvar removeUniqSort = function (prev, m, specialSortAndUniqFn, doSort) {\n if (doSort === void 0) { doSort = false; }\n var stringArray = typeof m === 'string' ? [m] : m;\n var updated = doSort ? _.without.apply(_, __spreadArrays([prev], stringArray)).sort() : _.without.apply(_, __spreadArrays([prev], stringArray));\n return specialSortAndUniqFn(updated);\n};\nfunction first(m) {\n if (typeof m === 'string') {\n return m;\n }\n else {\n var first_1 = _.first(m);\n if (first_1 === undefined) {\n throw Error('No first in: ' + JSON.stringify(m));\n }\n else {\n return first_1;\n }\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexports.municipalityReducer = function (initialMunicipality, _tag) {\n if (_tag === void 0) { _tag = \"default\"; }\n return function (state, _a) {\n var type = _a[0], municipalities = _a[1], municipalitiesOpt = _a[2];\n var equalState = municipalitiesOpt\n ? _.isEqual(state, municipalities) && _.isEqual(state, municipalitiesOpt)\n : _.isEqual(state, municipalities);\n if (equalState)\n return state;\n // if Sweden was actually set as the first municipality we don't want to sort it last\n var firstInitial = first(initialMunicipality);\n var specialSortAndUniqFn = firstInitial === counties_1.Sweden ? _.uniq : withAlwaysLastAndUniq(counties_1.Sweden);\n var resultingMunicipalities = [];\n switch (type) {\n case \"ADD\": {\n resultingMunicipalities = addUniqSort(state, municipalities, specialSortAndUniqFn);\n break;\n }\n case \"REMOVE\": {\n resultingMunicipalities = removeUniqSort(state, municipalities, specialSortAndUniqFn);\n break;\n }\n case \"REMOVE_AND_ADD\": {\n func_1.assertIsDefined(municipalitiesOpt);\n var afterRemove = removeUniqSort(state, municipalities, specialSortAndUniqFn);\n resultingMunicipalities = addUniqSort(afterRemove, municipalitiesOpt, specialSortAndUniqFn);\n break;\n }\n case \"SET\": {\n resultingMunicipalities = municipalities;\n break;\n }\n }\n return resultingMunicipalities;\n };\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GuideBoxesComponent = exports.VimeoBox = exports.GuideBox = void 0;\nvar React = __importStar(require(\"react\"));\nvar guides_1 = require(\"../../../fixtures/guides\");\nvar _ = __importStar(require(\"lodash\"));\nvar NonCheckListLinksArea = function (_a) {\n var guideEntry = _a.guideEntry;\n return React.createElement(\"div\", { className: \"links\" },\n React.createElement(\"div\", { className: \"item\" },\n React.createElement(\"a\", { className: \"download\", href: guideEntry.downloadUrl }, \"Ladda\\u00A0ner\\u00A0guide\")));\n};\nvar ChecklistLinksArea = function (_a) {\n var guideEntry = _a.guideEntry, link = _a.link, checklistLink = _a.checklistLink;\n return React.createElement(\"div\", { className: \"links\" },\n React.createElement(\"div\", { className: \"item\" },\n checklistLink && React.createElement(\"a\", { className: \"download\", href: checklistLink }, \"Ladda\\u00A0ner\\u00A0checklista\"),\n React.createElement(\"a\", { className: \"view-more\", href: \"\" + link }, \"Se\\u00A0checklista\")),\n React.createElement(\"div\", { className: \"item\" },\n React.createElement(\"a\", { className: \"download\", href: guideEntry.downloadUrl }, \"Ladda\\u00A0ner\\u00A0guide\")));\n};\nexports.GuideBox = function (props) {\n var guide = props.guide, link = props.link;\n return (React.createElement(\"div\", { className: \"box\" },\n React.createElement(\"div\", { className: \"content\" },\n React.createElement(\"p\", { className: \"title\" },\n React.createElement(\"a\", { href: \"\" + link }, guide.title)),\n React.createElement(\"div\", { className: \"grid\" },\n React.createElement(\"p\", null, guide.description),\n React.createElement(\"a\", { href: guide.downloadUrl },\n React.createElement(\"img\", { src: \"/assets/\" + guide.thumbUrl, height: \"280\" })))),\n props.renderLinksArea()));\n};\nexports.VimeoBox = function (_a) {\n var guide = _a.guide;\n var description = React.createElement(React.Fragment, null, _.map(guide.description, function (description, i) { return React.createElement(\"p\", { key: i }, description); }));\n return (React.createElement(\"div\", { className: \"box\" },\n React.createElement(\"div\", { className: \"content\" },\n React.createElement(\"p\", { className: \"title\" }, guide.title),\n description,\n React.createElement(\"div\", { className: \"video\" },\n React.createElement(\"iframe\", { frameBorder: \"0\", scrolling: \"no\", src: \"//player.vimeo.com/video/\" + guide.vimeoId + \"?dnt=1\", title: guide.title, allowFullScreen: true })),\n React.createElement(\"p\", null, \"Medverkande: \" + guide.videoCredits))));\n};\nexports.GuideBoxesComponent = function (props) {\n var guideSlugToLink = props.guideSlugToLink, guideSlugToChecklistLink = props.guideSlugToChecklistLink;\n var boxComponents = function (guideSlugs) {\n return _.map(guideSlugs, function (guideSlug) {\n if (guides_1.NonChecklistGuideSlug.guard(guideSlug)) {\n return (React.createElement(exports.GuideBox, { key: guideSlug, guide: guides_1.Guides[guideSlug], link: guideSlugToLink[guideSlug], renderLinksArea: function () { return React.createElement(NonCheckListLinksArea, { guideEntry: guides_1.Guides[guideSlug] }); } }));\n }\n else if (guides_1.ChecklistGuideSlug.guard(guideSlug)) {\n return (React.createElement(exports.GuideBox, { key: guideSlug, guide: guides_1.Guides[guideSlug], link: guideSlugToLink[guideSlug], renderLinksArea: function () {\n return React.createElement(ChecklistLinksArea, { guideEntry: guides_1.Guides[guideSlug], link: guideSlugToLink[guideSlug], checklistLink: guideSlugToChecklistLink === null || guideSlugToChecklistLink === void 0 ? void 0 : guideSlugToChecklistLink[guideSlug] });\n } }));\n }\n else if (guides_1.VimeoGuideSlug.guard(guideSlug)) {\n return (React.createElement(exports.VimeoBox, { key: guideSlug, guide: guides_1.Guides[guideSlug] }));\n }\n else {\n return null;\n }\n });\n };\n return React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: \"guider-boxes large\" }, boxComponents(guides_1.GuideSlug.values)));\n};\n// rails-react needs a default export in order to be able to find a component\n// noinspection JSUnusedGlobalSymbols\nexports.default = exports.GuideBoxesComponent;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Guides = exports.ChecklistGuidesEntries = exports.GuideSlug = exports.ChecklistGuideSlug = exports.NonChecklistGuideSlug = exports.VimeoGuideSlug = void 0;\nvar func_1 = require(\"../react/util/func\");\nexports.VimeoGuideSlug = func_1.StringUnion('guide_to_lead_towards_a_better_business_climate', 'guide_training_for_better_service', 'guide_decreased_crime_and_increased_safety', 'guide_more_effective_and_attractive_procurements', 'guide_yrkesvux_for_increased_inclusivity_and_growing_businesses');\nexports.NonChecklistGuideSlug = func_1.StringUnion('guide_competence_supply', 'guide_systematic_improvement_work', 'guide_together_against_crime_and_unsafety');\nexports.ChecklistGuideSlug = func_1.StringUnion('guide_competition_on_equal_terms', 'guide_goals_strategy_and_leadership', 'guide_procurement_as_a_strategic_tool', 'guide_service_directed_oversight');\nexports.GuideSlug = func_1.StringUnion.apply(void 0, __spreadArrays(exports.VimeoGuideSlug.values, exports.NonChecklistGuideSlug.values, exports.ChecklistGuideSlug.values));\nvar VimeoGuidesEntries = {\n \"guide_to_lead_towards_a_better_business_climate\": {\n order: 100,\n title: \"Att leda mot ett bättre företagsklimat\",\n description: [\"Vad krävs av den politiska ledningen och högsta tjänstemannaledningen för att åstadkomma verklig förbättring av företagsklimatet? I samtal med några av landets framgångsrikaste kommuner undersöker vi vad som har krävts för att föra deras kommuner till toppen.\"],\n vimeoId: \"643948048\",\n videoCredits: \"Per Vorberg, KSO i Härryda kommun, Mikael Peterson, KSO i Kungsör kommun, Peter Schölander, KSO i Höganäs kommun och Claes Nordmark, KSO i Bodens kommun\"\n },\n 'guide_training_for_better_service': {\n order: 110,\n title: \"Träning för bättre service\",\n description: [\"Världens bästa idrottare tränar hårt och målmedvetet. När Armand Duplantis tog OS-guld i Tokyo fick han feedback från coachen efter varje hopp för att inte missa några detaljer. Även servicen och kvalitet i kommunens myndighetsutövande kan utvecklas och förbättras av kontinuerlig träning och feedback. Vid detta seminarium diskuteras hur träning kan ge bättre service i kommunal myndighetsutövning och några spännande exempel presenteras.\"],\n vimeoId: \"645999893\",\n videoCredits: \"Maria Söderlund, Miljö- och byggchef i Sollefteå, Maria Faltin, Näringslivschef i Nybro, Sanna Tardell, Business manager på Transcom och Madeleine Nemstrand, Näringslivsutvecklare i Falkenberg\"\n },\n 'guide_decreased_crime_and_increased_safety': {\n order: 120,\n title: \"Minskad brottslighet och ökad trygghet – att involvera näringslivet\",\n description: [\n \"Att skydda sig mot brott och minska personalens känsla av otrygghet har blivit vardag för de allra flesta företag. Tid och pengar läggs på säkerhetsåtgärder som annars skulle använts för att utveckla företagets verksamhet. Tillväxt, innovationer och nyanställningar får stå tillbaka för den ökande kriminaliteten.\",\n \"Tillsammans med näringslivet kan kommunerna utveckla handlingsplaner för proaktiva insatser. Detta är ett arbete som inletts i flera kommuner. Under inspirationstimmen lyfter vi flera goda exempel och reflekterar kring kommuners och näringslivets samverkan för ett samhälle med ökad trygghet och minskad brottslighet.\"\n ],\n vimeoId: \"646408589\",\n videoCredits: \"Henrik Andershed, Professor i psykologi och kriminologi, forskningsledarna vid CAPS vid Örebro universitet, Jan Landström, Kriminolog och Säkerhetssamordnare i Nacka kommun och Ann Rönnäng, Regional brottsförebyggande samordnare hos Polisen i Region Väst\"\n },\n \"guide_more_effective_and_attractive_procurements\": {\n order: 130,\n title: \"Effektivare och attraktivare upphandlingar\",\n description: [\"En stor del av kommunens verksamhet köps in från externa leverantörer. Kommunen vill ha en effektiv upphandling som ger hög kvalitet till ett fördelaktigt pris. För att uppnå detta behöver upphandlingarna uppfattas som attraktiva av potentiella leverantörer. Kategoristyrning är nyckeln till att åstadkomma detta. Vi tittar närmare på kommuner som har lyckats och implementeringsexperternas bästa lärdomar för att komma igång.\"],\n vimeoId: \"646851764\",\n videoCredits: \"Sebastian Nordgren, Inköpschef i Nacka, Ellen Hausel Heldahl, Expert upphandling Svenskt Näringsliv och Johan Johansson, upphandlingschef i Alvesta.\"\n },\n 'guide_yrkesvux_for_increased_inclusivity_and_growing_businesses': {\n order: 140,\n title: \"Yrkesvux för minskat utanförskap och växande företag\",\n description: [\"Tillgång till kompetens har tillsammans med upphandling varit den fråga som oftast fått sämst betyg när Svenskt Näringsliv varje åter mäter företagsklimatet i Sveriges kommuner. Mellan vart fjärde och vart femte rekryteringsförsök misslyckas. Framför allt råder brist på personer med gymnasial yrkesutbildning. Under dagens webinarium tar vi del av kommuner som lyckats bygga ut sin vuxenutbildning för att möta behoven och få fler i arbete.\"],\n vimeoId: \"647279813\",\n videoCredits: \"Simon Dahlgren, verksamhetschef för vuxenutbildningen i Skellefteå kommun och Mats Berglund, sektionschef för kompetensförsörjning i Falu kommun\"\n },\n};\nvar NonChecklistGuidesEntries = {\n \"guide_competence_supply\": {\n order: 15,\n title: \"Kompetensförsörjning\",\n description: \"En av företagens allra största utmaningar är att kunna rekrytera nya medarbetare. I den här guiden tittar vi närmare på dialog skola/näringsliv, dimensionering, studie- och yrkesvägledning och mycket annat där kommunen kan göra verklig skillnad.\",\n thumbUrl: \"guide_competence_supply.jpg\",\n downloadUrl: \"/files/guides/Guide kompetensförsörjning 2023.pdf\"\n },\n \"guide_systematic_improvement_work\": {\n order: 13,\n title: \"Systematiskt förbättringsarbete\",\n description: \"Arbetet med företagsklimatet vinner på att bedrivas som ett systematiskt förbättringsarbete. I den här guiden tittare vi närmare på hur man kan arbeta med analys, handlingsplaner och uppföljning.\",\n thumbUrl: \"guide_systematic_improvement_work.jpg\",\n downloadUrl: \"/files/guides/Guide systematiskt förbättringsarbete.pdf\"\n },\n \"guide_together_against_crime_and_unsafety\": {\n order: 400,\n title: \"Tillsammans med näringslivet mot brott och otrygghet\",\n description: \"Brottsligheten har kommit att bli ett av de största hoten mot företagsamheten i Sverige. Svenska företag är överens om att minskad brottslighet och ökad trygghet är en av de mest prioriterade frågorna för att förbättra det lokala företagsklimatet. Tillsammans med Brottsförebyggande rådet - Brå, Polisen och Länsstyrelserna i Sverige har vi på Svenskt Näringsliv därför tagit fram en vägledande guide med fokus på näringslivet och dess viktiga roll i brottsförebyggande arbete. Vår förhoppning är att guiden genom sina goda råd, konkreta verktyg och praktiska exempel skall inspirera till ett förstärkt brottsförebyggande arbete där näringslivet är en självklar del.\",\n thumbUrl: \"guide_tillsammans.png\",\n downloadUrl: \"/files/guides/guide_tillsammans_med_naringslivet_mot_brott_och_otrygghet.pdf\",\n }\n};\nexports.ChecklistGuidesEntries = {\n \"guide_competition_on_equal_terms\": {\n order: 20,\n title: \"(O)sund konkurrens\",\n description: \"När en kommun utsätter företag för osund konkurrens riskerar det leda både till ett sämre företagsklimat och ineffektiva metoder. I den här guiden tittar vi närmare på hur kommuner kan arbeta med förhållningssätt och policies för att gynna en sund konkurrenssituation.\",\n thumbUrl: \"guide_osund.png\",\n checklistUrl: \"guide_konkurrens_checklist.pdf\",\n downloadUrl: \"/files/guides/sn-guide-osund-konkurrens-web.pdf\",\n checkListTitle: \"Checklista för sund konkurrens\",\n sections: [\n {\n title: \"Checklista för sund konkurrens\",\n items: [\n { title: \"Kommunen har en policy för kommunens säljverksamhet.\" },\n { title: \"All kommunal säljverksamhet är inventerad.\" },\n { title: \"Säljverksamhet som inte lever upp till 3 L-metoden har åtgärdats eller är på väg att åtgärdas.\" },\n { title: \"Det förs en årlig dialog med näringslivet om konkurrenssituationen.\" },\n { title: \"Kommunen har en tidig dialog med näringslivet inför ny eller utökad säljverksamhet.\" },\n { title: \"Det finns en rutin för hur klagomål eller anmälningar från företag ska tas tillvara.\" }\n ]\n }\n ]\n },\n \"guide_goals_strategy_and_leadership\": {\n order: 10,\n title: \"Mål, strategi och ledarskap\",\n description: \"Ett förbättrat företagsklimat börjar nästan alltid med ledarskapet. I den här guiden tittar vi närmare på hur kommuner kan arbeta med mål, styrning, ledarskap och dialog med det lokala näringslivet.\",\n thumbUrl: \"guide_mal.png\",\n checklistUrl: \"guide_mal_strategi_sedarskap_checklist.pdf\",\n downloadUrl: \"/files/guides/sn-guide-mal-strategi-ledarskap-web.pdf\",\n checkListTitle: \"Checklista för mål, strategi och ledarskap\",\n sections: [\n {\n title: \"Tydligt ledarskap\",\n items: [\n { title: \"Den politiska ledningen och tjänstemannaledningen har en tydlig och gemensam målbild för arbetet med företagsklimatet.\" },\n { title: \"Högsta politikerna och cheferna tar på sig ledarskapet i näringspolitiken och kommunicerar frågorna tydligt både internt och externt.\" },\n { title: \"Kommunledningen arbetar långsiktigt med frågorna för att skapa en varaktig organisationskultur.\" },\n { title: \"Näringslivsfrågorna får stort utrymme på kommunstyrelsens och tjänstemannaledningens agendor.\" },\n ]\n },\n {\n title: \"Tydliga mål\",\n items: [\n { title: \"Kommunens mål är mätbart, realistiskt och långsiktigt.\" },\n { title: \"Kommunens mål genomsyrar hela organisationens arbete.\" },\n { title: \"Kommunens mål följs upp regelbundet.\" },\n { title: \"Målet är framtaget i dialog med näringslivet.\" },\n ]\n },\n {\n title: \"Inkluderande strategiarbete\",\n items: [\n { title: \"Näringslivet involveras i strategiarbetet, så att deras behov och vardag får styra strategin.\" },\n { title: \"Strategin fokuserar på åtgärder som ger konkret nytta för företagen.\" },\n { title: \"Varje verksamhet har analyserat på vilket sätt de kommer i kontakt med näringslivet och hur de har en påverkan på företagsklimatet.\" },\n { title: \"Kommunens övergripande mål har brutits ner i specifika mål, aktiviteter och metoder för varje förvaltning och enhet.\" },\n { title: \"Resultaten i utvecklingsarbetet kommuniceras till näringslivet, så att de ser vad som händer.\" },\n ]\n },\n {\n title: \"Dialog med näringslivet\",\n items: [\n { title: \"Kommunstyrelsens ordförande reserverar en halvdag i veckan för företagsbesök.\" },\n { title: \"Företagen bjuds regelbundet in till frukostmöten, lunchmöten eller andra aktiviteter.\" },\n { title: \"Kommunen har gått igenom hemsidans struktur och innehåll utifrån en företagares perspektiv.\" },\n { title: \"Kommunen har ett nyhetsbrev som skickas ut regelbundet.\" },\n ]\n },\n {\n title: \"Handlingskraftig näringslivsorganisation\",\n items: [\n { title: \"Näringslivschefen ingår i ledningsgruppen och får stort utrymme för sina frågor.\" },\n { title: \"Näringslivschefen har ett starkt mandat att driva utvecklingsfrågor för hela kommunen.\" },\n { title: \"Näringslivsfunktionen arbetar nära kommunens andra förvaltningar.\" },\n ]\n }\n ]\n },\n \"guide_service_directed_oversight\": {\n order: 14,\n title: \"Serviceinriktad myndighetsutövning\",\n description: \"Genom att arbeta serviceinriktat i myndighetsutövningen kan kommunen både öka regelefterlevnaden och förbättra företagsklimatet. I den här guiden tittar vi närmare på kommunen kan utveckla sin tillstånds- och tillsynsverksamhet, hjälpa företagen att göra rätt från början och bygga förtroende hos företagen.\",\n thumbUrl: \"guide_serviceinriktad_myndighetsutovning.png\",\n checklistUrl: \"guide_serviceinriktad_myndighetsutovning_checklist.pdf\",\n downloadUrl: \"/files/guides/Guide Serviceinriktad myndighetsutövning 2024 web.pdf\",\n checkListTitle: \"Checklista för serviceinriktad myndighetsutövning\",\n sections: []\n },\n \"guide_procurement_as_a_strategic_tool\": {\n order: 17,\n title: \"Upphandling\",\n description: \"Genom att arbeta bättre med upphandlingar kan kommuner både åstadkomma större nytta för medborgarna och ett bättre företagsklimat. I den här guiden tittar vi närmare på hur kommunen kan ställa mer träffsäkra krav, öka sin kostnadskontroll, underlätta för mindre företag att lägga anbud och mycket annat.\",\n thumbUrl: \"guide_upphandling.png\",\n checklistUrl: \"guide_upphandling_checklist.pdf\",\n downloadUrl: \"/files/guides/Guide Upphandling 2023 Webb.pdf\",\n checkListTitle: \"Checklista för smartare upphandlingar\",\n sections: [\n {\n title: \"Inköpsmogen organisation\",\n items: [\n { title: \"Vi har mätt vår inköpsmognad.\" },\n { title: \"Vi har inrättat tvärfunktionella team som arbetar med kategoristyrning.\" },\n { title: \"Upphandlingschefen sitter i ledningsgruppen.\" },\n { title: \"Vi har tagit fram nya policyer och rutiner.\" },\n { title: \"Vi arbetar med att förbättra hela kommunkoncernens upphandlingar.\" },\n ]\n },\n {\n title: \"Få koll på era köp\",\n items: [\n { title: \"Vi har införskaffat ett spendverktyg, så att vi vet vart pengarna går och var vi kan effektivisera.\" },\n { title: \"Vi godkänner inga kvittoredovisningar.\" },\n { title: \"Alla använder upphandlade leverantörer.\" },\n { title: \"Vi har inrättat upphandlingskörkort, som krävs för att få göra avrop.\" },\n ]\n },\n {\n title: \"Smartare kravställning\",\n items: [\n { title: \"Vi utvärderar avtalsperioden och för en dialog med leverantören inför en ny upphandling.\" },\n { title: \"Vi analyserar verksamhetens faktiska behov inför kravställningen.\" },\n { title: \"Vi har dialog med marknaden inför upphandlingen.\" },\n { title: \"Vi använder funktionskrav.\" },\n { title: \"Vi har rensat bort alla ska-krav som inte är direkt kopplade till den funktion vi vill ha.\" },\n { title: \"Bara den bästa anbudsgivaren behöver inkomma med all dokumentation.\" },\n { title: \"Vi har förenklat språket i upphandlingsdokumenten.\" },\n { title: \"Krav inom miljö och social hållbarhet använder vi bara när de är relevanta för den specifika verksamheten och har känd effekt.\" },\n ]\n },\n {\n title: \"Öppna upp för fler, mindre och lokala företag\",\n items: [\n { title: \"Vi bjuder in lokala företag till upphandlingsskola.\" },\n { title: \"Vi bjuder in lokala företag till upphandlingsträffar om kommande upphandlingar.\" },\n { title: \"Vi publicerar alla avtal på hemsidan.\" },\n { title: \"Vi annonserar ut alla kommande upphandlingar i god tid på hemsidan.\" },\n { title: \"Vi delar upp stora upphandlingar i mindre delar.\" },\n { title: \"Företagen får tillräcklig tid att lägga anbud.\" },\n { title: \"Alla anbudsgivare får ett samtal om utfallet och varför de inte vann upphandlingen.\" },\n { title: \"Vi följer upp varför företag avstår från att lägga anbud.\" },\n ]\n },\n {\n title: \"Bättre uppföljning\",\n items: [\n { title: \"Förvaltningarna har avsatt resurser till avtalsuppföljning.\" },\n { title: \"Kommunen har en avtalscontroller.\" },\n { title: \"Krav som inte finns i uppföljningsplaner har vi tagit bort från upphandlingdokumenten.\" },\n ]\n }\n ]\n }\n};\nexports.Guides = __assign(__assign(__assign({}, VimeoGuidesEntries), NonChecklistGuidesEntries), exports.ChecklistGuidesEntries);\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = __importStar(require(\"react\"));\nvar react_1 = require(\"react\");\nvar factorService_1 = require(\"../../services/factorService\");\nvar presentableDataClient_1 = require(\"../clients/presentableDataClient\");\nvar factors_1 = require(\"../../fixtures/factors\");\nvar factorChartComponent_1 = require(\"./charting/factorChartComponent\");\nvar groupingService_1 = require(\"../../services/groupingService\");\nvar grouping_1 = require(\"../../fixtures/grouping\");\nvar municipalityComparison_1 = require(\"./comparison/municipalityComparison\");\nvar factorChartDescription_1 = require(\"./factorChartDescription\");\nvar react_modal_1 = __importDefault(require(\"react-modal\"));\nvar chartFooter_1 = require(\"./charting/footer/chartFooter\");\nvar modal_1 = require(\"../constants/modal\");\nvar reactModalHelper_1 = require(\"./helpers/reactModalHelper\");\nvar top5Comparison_1 = require(\"./comparison/top5Comparison\");\nvar countyComparison_1 = require(\"./comparison/countyComparison\");\nvar skrComparison_1 = require(\"./comparison/skrComparison\");\nvar selectionList_1 = require(\"./listing/selectionList\");\nvar useQueryParamSynched_1 = require(\"./hooks/useQueryParamSynched\");\nvar counties_1 = require(\"../../fixtures/counties\");\nvar lodash_1 = __importDefault(require(\"lodash\"));\nvar respondentTypeSelect_1 = require(\"./charting/footer/respondentTypeSelect\");\nvar factorChartHelper_1 = require(\"./helpers/factorChartHelper\");\nvar footerSelect_1 = require(\"./charting/footer/footerSelect\");\nvar use_state_with_deps_1 = require(\"use-state-with-deps\");\nvar FactorChartWidget = function (props) {\n var _a, _b;\n reactModalHelper_1.setReactModalAppElement();\n var factorService = React.useState(function () { return new factorService_1.FactorService(factors_1.Factors); })[0];\n var factorNameFromSlug = React.useState(function () { return function (factorSlug) { return factorService.getName(factorSlug); }; })[0];\n var groupingService = React.useState(function () { return new groupingService_1.GroupingService(grouping_1.Grouping); })[0];\n var dataClientFactory = React.useState(function () { return presentableDataClient_1.presentableDataClientFactory(props.apiBaseUrl, factorService); })[0];\n // chart modal\n var _c = React.useState(false), modalIsOpen = _c[0], setModalIsOpen = _c[1];\n // selected factor\n var _d = useQueryParamSynched_1.useQueryParamSynched(\"factor\", props.initialFactorSlug), selectedFactorSlug = _d[0], setSelectedFactorSlug = _d[1];\n var chartingLabels = factorService.getChartingLabels(selectedFactorSlug);\n var _e = use_state_with_deps_1.useStateWithDeps(lodash_1.default.first(chartingLabels), [selectedFactorSlug]), chartingLabel = _e[0], setChartingLabel = _e[1];\n // console.group();\n // console.log(\"FACTOR SLUG:\");\n // console.log(selectedFactorSlug);\n // console.log(\"CHARTING LABELS:\");\n // console.log(chartingLabels);\n // console.log(chartingLabel);\n // console.groupEnd();\n var chartDataDataTransformer = factorService.getChartDataDataTransformer(factorService.getCharting(selectedFactorSlug, chartingLabel));\n var comparisonConfig = factorService.getComparisonConfig(selectedFactorSlug, chartingLabel);\n var initialMunicipalities = comparisonConfig.includeSwedenByDefault\n ? lodash_1.default.uniq([props.initialMunicipality, counties_1.Sweden])\n : [props.initialMunicipality];\n var _f = municipalityComparison_1.useMunicipalityComparison(initialMunicipalities), comparisonMunicipalities0 = _f.comparisonMunicipalities, comparisonMunicipalitiesDispatch = _f.comparisonMunicipalitiesDispatch, selectedMunicipalities0 = _f.selectedMunicipalities, selectedMunicipalitiesDispatch = _f.selectedMunicipalitiesDispatch, reset = _f.reset;\n var _g = factorChartHelper_1.filterMunicipalitiesBasedOnFactor(comparisonConfig, comparisonMunicipalities0, selectedMunicipalities0), comparisonMunicipalities = _g.comparisonMunicipalities, selectedMunicipalities = _g.selectedMunicipalities;\n // respondent type\n var defaultRespondentType = factorChartHelper_1.getRespondentType(groupingService, factorService, selectedFactorSlug, undefined, chartingLabel);\n var _h = React.useState(defaultRespondentType), respondentType = _h[0], setRespondentType = _h[1];\n var onRespondentTypeChange = react_1.useCallback(function (selectedValue) {\n setRespondentType(selectedValue);\n }, []);\n // establish selectedFactor -> respondent type constraint dependency\n React.useLayoutEffect(function () {\n var updatedRespondentType = factorChartHelper_1.getRespondentType(groupingService, factorService, selectedFactorSlug, respondentType, chartingLabel);\n if (updatedRespondentType !== respondentType) {\n setRespondentType(updatedRespondentType);\n }\n if (factorService.getComparisonConfig(selectedFactorSlug, chartingLabel).includeSwedenByDefault) {\n selectedMunicipalitiesDispatch([\"ADD\", [counties_1.Sweden]]);\n }\n else {\n selectedMunicipalitiesDispatch([\"REMOVE\", [counties_1.Sweden]]);\n }\n }, [groupingService, factorService, respondentType, selectedFactorSlug, selectedMunicipalitiesDispatch, chartingLabel]);\n var toggleModal = react_1.useCallback(function () { return setModalIsOpen(function (openNow) { return !openNow; }); }, []);\n var respondentSelectDisabled = !comparisonConfig.isApplicableToPoliticians ||\n groupingService.getFactorGroup(selectedFactorSlug) !== 'survey';\n var chartComponentFactory = function (props, isModal) {\n return React.createElement(factorChartComponent_1.FactorChartComponent, __assign({ factorSlug: selectedFactorSlug, municipalities: selectedMunicipalities, respondentType: respondentType, dataClientFactory: dataClientFactory, factorService: factorService, chartingLabel: chartingLabel, fullScreenButtonHandler: toggleModal, showSNLogo: isModal, chartDataDataTransformer: chartDataDataTransformer, chartFooterComponent: React.createElement(chartFooter_1.ChartFooterComponent, { chartingSelectComponent: React.createElement(footerSelect_1.FooterSelect, { disabled: lodash_1.default.isEmpty(chartingLabels), options: lodash_1.default.map(chartingLabels, function (l) { return ({ value: l, label: l }); }), selectedLabel: chartingLabel, onSelectedChange: setChartingLabel, menuPlacementTop: isModal }), respondentTypeSelectComponent: React.createElement(respondentTypeSelect_1.RespondentTypeSelect, { disabled: respondentSelectDisabled, selectedLabel: respondentType, onSelectedChange: onRespondentTypeChange, menuPlacementTop: isModal }), menuPlacementTop: isModal }), exportMenuElemId: \"chart-export-menu\" + (isModal ? \"-modal\" : \"\") }, props));\n };\n var comparisonComponents = [];\n if (comparisonConfig.isSingleDimensionComparable)\n comparisonComponents.push('top');\n if (props.initialMunicipality !== counties_1.Sweden)\n comparisonComponents.push('county', 'SKR');\n var _j = react_1.useState('top'), activeComponent = _j[0], setActiveComponent = _j[1];\n if (!lodash_1.default.isEmpty(comparisonComponents) && !lodash_1.default.includes(comparisonComponents, activeComponent)) {\n setActiveComponent((_a = lodash_1.default.first(comparisonComponents)) !== null && _a !== void 0 ? _a : 'top');\n }\n // Factors excluded from list\n var excludedFactors = props.excludedFactors ? __spreadArrays(props.excludedFactors) : [];\n if (props.initialMunicipality === counties_1.Sweden) {\n // if only \"Sverige\" is selected some charts will be completely empty, let's exclude those\n var factors = groupingService.getFactorsFromGroup(props.factorsGroupName);\n lodash_1.default.chain(factors).values().flatten().value().forEach(function (factorSlug) {\n // FIXME: We're only checking \"excludeSweden\" for the first charting. Potentially that setting should be per\n // FIXME: factor and not per factor/charting.\n var chartingLabel = lodash_1.default.first(factorService.getChartingLabels(factorSlug));\n if (factorService.getComparisonConfig(factorSlug, chartingLabel).excludeSweden) {\n excludedFactors.push(factorSlug);\n }\n });\n }\n return React.createElement(React.Fragment, null,\n React.createElement(municipalityComparison_1.MunicipalityComparison, { disabled: comparisonConfig.comparisonDisabled, initialMunicipalities: initialMunicipalities, includeCounties: !comparisonConfig.lacksCountyData, excludeSweden: comparisonConfig.excludeSweden, active: activeComponent, selectedMunicipalities: selectedMunicipalities, selectedMunicipalitiesDispatch: selectedMunicipalitiesDispatch, comparisonMunicipalities: comparisonMunicipalities, reset: reset, presetComparisonComponents: comparisonComponents, top5ComparisonNode: React.createElement(top5Comparison_1.Top5Comparison, { active: activeComponent, setActive: setActiveComponent, activeFactor: selectedFactorSlug, isBiggerBetter: comparisonConfig.isBiggerBetter, respondentType: respondentType, comparisonMunicipalitiesDispatch: comparisonMunicipalitiesDispatch, groupingService: groupingService }), countyComparisonNode: React.createElement(countyComparison_1.CountyComparison, { includeCounties: !comparisonConfig.lacksCountyData, active: activeComponent, setActive: setActiveComponent, activeMunicipality: props.initialMunicipality, comparisonMunicipalitiesDispatch: comparisonMunicipalitiesDispatch }), skrComparisonNode: React.createElement(skrComparison_1.SKRComparison, { active: activeComponent, setActive: setActiveComponent, activeMunicipality: props.initialMunicipality, comparisonMunicipalitiesDispatch: comparisonMunicipalitiesDispatch }) }),\n React.createElement(\"div\", { className: \"chart-wrapper \" + (((_b = factorService.getChartConfig(selectedFactorSlug, chartingLabel)) === null || _b === void 0 ? void 0 : _b.extraHeight) ? \"extra-height\" : \"\") },\n React.createElement(react_modal_1.default, { isOpen: modalIsOpen, style: modal_1.modalCustomStyles, onRequestClose: toggleModal, shouldCloseOnEsc: true },\n modalIsOpen && chartComponentFactory(modal_1.modalContentDimensions, true),\n React.createElement(\"i\", { className: \"fa fa-times\", onClick: toggleModal })),\n React.createElement(selectionList_1.SelectionList, { excludedItems: excludedFactors, itemGroups: groupingService.getFactorsFromGroup(props.factorsGroupName), selectedSlug: selectedFactorSlug, setSelectedSlug: setSelectedFactorSlug, nameFromSlug: factorNameFromSlug }),\n chartComponentFactory({}, false)),\n React.createElement(factorChartDescription_1.FactorChartDescription, { factor: factorService.getFactor(selectedFactorSlug), comparisonConfig: comparisonConfig }));\n};\n// rails-react needs a default export in order to be able to find a component\n// noinspection JSUnusedGlobalSymbols\nexports.default = FactorChartWidget;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FactorChartDescription = void 0;\nvar React = __importStar(require(\"react\"));\nvar factors_1 = require(\"../../fixtures/factors\");\nexports.FactorChartDescription = React.memo(function (_a) {\n var factor = _a.factor, comparisonConfig = _a.comparisonConfig;\n var withGradingScale = comparisonConfig.withoutGradingScale !== true;\n var isSurvey = factor.source === \"survey\";\n var showGradingScale = isSurvey && withGradingScale;\n var gradingScaleType = comparisonConfig.gradingScaleType;\n var comp;\n var descriptionSpan = function (gradingScaleType) {\n var _a = factors_1.gradingScaleTypeDescription[gradingScaleType], preamble = _a.preamble, scaleDescription = _a.scaleDescription;\n return (React.createElement(\"span\", { id: \"js-grading-scale-1-6\" }, \"\" + preamble + scaleDescription,\n \"\\u00A0\"));\n };\n var readMore = React.createElement(\"p\", { className: \"own-row\" },\n React.createElement(\"span\", null,\n React.createElement(\"a\", { href: \"/om/fragorochsvar#about-survey\", className: \"view-more own-row\" }, \"L\\u00E4s mer\")));\n if (showGradingScale && gradingScaleType) {\n comp =\n React.createElement(\"div\", { className: \"text\" },\n descriptionSpan(gradingScaleType),\n readMore);\n }\n else {\n comp = null;\n }\n return React.createElement(\"div\", { className: \"js-grading-scale scale\" },\n React.createElement(\"div\", { className: \"title\" },\n React.createElement(\"i\", { className: \"far fa-question-circle\" }),\n factor.name),\n React.createElement(\"div\", null, factor.long_description),\n factor.extra_description ? React.createElement(\"p\", { className: \"extra-description\" },\n React.createElement(\"em\", null, factor.extra_description)) : null,\n comp);\n});\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CountyComparison = void 0;\nvar React = __importStar(require(\"react\"));\nvar counties_1 = require(\"../../../fixtures/counties\");\nvar _ = __importStar(require(\"lodash\"));\nexports.CountyComparison = function (_a) {\n var includeCounties = _a.includeCounties, active = _a.active, setActive = _a.setActive, activeMunicipality = _a.activeMunicipality, comparisonMunicipalitiesDispatch = _a.comparisonMunicipalitiesDispatch;\n var county = _.findKey(counties_1.Counties.county, function (municipalities) { return _.includes(municipalities, activeMunicipality); });\n var municipalities = [];\n var countyName;\n if (!county) {\n console.error(\"Couldn't find municipality \" + activeMunicipality + \" in any county. \");\n }\n else {\n municipalities = counties_1.Counties.county[county];\n countyName = _.first(municipalities);\n if (!includeCounties) {\n municipalities = _.tail(municipalities);\n }\n }\n var onClick = function () {\n setActive('county');\n comparisonMunicipalitiesDispatch(['SET', municipalities]);\n };\n // set municipalities once at initialization\n React.useEffect(function () {\n if (active === 'county') {\n comparisonMunicipalitiesDispatch(['SET', municipalities]);\n }\n });\n return (React.createElement(\"li\", { className: active === 'county' ? 'active' : '' },\n React.createElement(\"a\", { onMouseDown: onClick },\n countyName,\n React.createElement(\"i\", { className: \"fas fa-chevron-\" + (active === 'county' ? \"up\" : \"down\") }))));\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelectionList = void 0;\nvar React = __importStar(require(\"react\"));\nvar react_responsive_1 = require(\"react-responsive\");\nvar _ = __importStar(require(\"lodash\"));\nvar hooks_1 = require(\"./hooks\");\nvar listGroup_1 = require(\"./listGroup\");\nvar filterList_1 = require(\"../lib/filterList\");\nexports.SelectionList = function (props) {\n var setSelectedSlug0 = props.setSelectedSlug, nameFromSlug = props.nameFromSlug;\n var isMobile = react_responsive_1.useMediaQuery({ query: '(max-width: 767px)' });\n var _a = React.useState(false), isOpen = _a[0], setIsOpen = _a[1];\n var setSelectedSlug = isMobile\n ? function (slug) { setIsOpen(false); setSelectedSlug0(slug); }\n : setSelectedSlug0;\n var _b = filterList_1.useFilterList([]), filterList = _b[0], onChange = _b[2];\n function getFilteredGroups() {\n var itemGroups = props.itemGroups, excludedItems = props.excludedItems;\n return _.mapValues(itemGroups, function (slugs) { return _.filter(slugs, function (f) { return !_.includes(excludedItems, f); }); });\n }\n var filteredGroups = getFilteredGroups();\n var groupElements = _.map(filteredGroups, function (slugs, groupName) {\n var listItemProps = _.map(slugs, function (slug) {\n var isSelected = props.selectedSlug === slug;\n return {\n slug: slug,\n isSelected: isSelected,\n isVisible: isSelected || filterList_1.namePassesFilter(nameFromSlug(slug), filterList),\n filterList: filterList,\n nameFromSlug: nameFromSlug,\n setSelectedSlug: setSelectedSlug\n };\n });\n return React.createElement(listGroup_1.ListGroup, { key: groupName, itemProps: listItemProps, groupName: groupName, filterList: filterList });\n });\n var inputRef = hooks_1.useFocusMnemonic(\"ctrl+shift+f\");\n return (React.createElement(React.Fragment, null, !isMobile ? (React.createElement(\"div\", { className: \"factor-selection-container\" },\n React.createElement(\"div\", { className: \"factor-selection-filter-container\" },\n React.createElement(\"i\", { className: \"fa fa-search\" }),\n React.createElement(\"input\", { className: \"factor-selection-filter-input\", type: \"text\", placeholder: \"Filtrera\", onChange: onChange, ref: inputRef })),\n React.createElement(\"div\", { className: \"factor-selection-factor-list-container\" }, groupElements))) : (React.createElement(\"div\", { className: \"municipality-select-comp\" },\n React.createElement(\"div\", { className: \"municipality-select\", onClick: function () { return setIsOpen(!isOpen); } },\n React.createElement(\"span\", null, \"V\\u00E4lj faktor\"),\n React.createElement(\"i\", { className: \"fas fa-chevron-\" + (isOpen ? 'up' : 'down'), \"aria-hidden\": \"true\" })),\n React.createElement(\"div\", { className: ['municipality-dropdown', isOpen ? 'open' : ''].join(' ') },\n React.createElement(\"div\", { className: \"factor-selection-factor-list-container\" }, groupElements))))));\n};\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListGroup = void 0;\nvar listItem_1 = require(\"./listItem\");\nvar React = __importStar(require(\"react\"));\nvar _ = __importStar(require(\"lodash\"));\nvar filterList_1 = require(\"../lib/filterList\");\nexports.ListGroup = function (props) {\n var groupName = props.groupName, itemProps = props.itemProps, filterList = props.filterList;\n var _a = React.useState(_.some(itemProps, function (f) { return f.isSelected; })), isExpanded = _a[0], setExpanded = _a[1];\n React.useEffect(function () {\n var groupExpanded = (filterList_1.isFilteringActive(filterList) && _.some(itemProps, function (f) { return f.isVisible; })) ||\n _.some(itemProps, function (f) { return f.isSelected; });\n setExpanded(groupExpanded);\n }, [filterList, itemProps]);\n var toggleExpanded = function () { return setExpanded(function (isExpanded) { return !isExpanded; }); };\n var isGroupVisible = filterList_1.isFilteringActive(props.filterList)\n ? _.some(itemProps, function (f) { return f.isVisible; })\n : true;\n return React.createElement(\"ul\", { className: \"factor-selection-list-group\" },\n React.createElement(\"li\", { className: \"factor-selection-list-group-name \" + (isGroupVisible ? '' : 'hidden'), onClick: toggleExpanded },\n groupName,\n React.createElement(\"i\", { className: \"fas fa-chevron-\" + (isExpanded ? \"down\" : \"right\") + \" \" + (isExpanded ? \"expanded\" : \"\"), \"aria-hidden\": \"true\" })),\n itemProps.map(function (listItemProps, i) {\n return React.createElement(listItem_1.ListItem, __assign({ key: i }, listItemProps, { isVisible: listItemProps.isVisible && isGroupVisible && isExpanded }));\n }));\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListItem = void 0;\nvar markSubstringMatches_1 = require(\"../lib/markSubstringMatches\");\nvar React = __importStar(require(\"react\"));\nexports.ListItem = function (_a) {\n var slug = _a.slug, isSelected = _a.isSelected, isVisible = _a.isVisible, filterList = _a.filterList, nameFromSlug = _a.nameFromSlug, setSelectedSlug = _a.setSelectedSlug;\n var setSelected = function () { return setSelectedSlug(slug); };\n return (React.createElement(\"li\", { className: \"factor-selection-list-item \" + (isSelected ? \"selected\" : \"\") + \" \" + (isVisible ? '' : 'hidden'), onClick: setSelected },\n React.createElement(markSubstringMatches_1.MarkSubstringMatches, { str: nameFromSlug(slug), subStrings: filterList }),\n React.createElement(\"i\", { className: \"fas fa-chevron-right \" + (isSelected ? \"selected\" : \"\"), \"aria-hidden\": \"true\" })));\n};\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RespondentTypeSelect = exports.options = void 0;\nvar react_1 = __importDefault(require(\"react\"));\nvar footerSelect_1 = require(\"./footerSelect\");\nexports.options = [\n { value: 'Företagare', label: 'Företagare' },\n { value: 'Politiker', label: 'Politiker' }\n];\nexports.RespondentTypeSelect = function (props) {\n return react_1.default.createElement(footerSelect_1.FooterSelect, { disabled: props.disabled, options: exports.options, selectedLabel: props.selectedLabel, onSelectedChange: props.onSelectedChange, menuPlacementTop: props.menuPlacementTop });\n};\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.customStyles = exports.isSelectOption = void 0;\nfunction isSelectOption(option) {\n return !Array.isArray(option);\n}\nexports.isSelectOption = isSelectOption;\nexports.customStyles = {\n dropdownIndicator: function (provided, state) { return (__assign(__assign({}, provided), { color: state.isDisabled ? 'hsl(0,0%,60%)' : '#ef8201', width: '30px', marginTop: '5px' })); },\n option: function (provided, state) { return (__assign(__assign({}, provided), { color: state.isSelected ? '#33414e' : provided.color })); },\n indicatorSeparator: function () { return ({\n display: 'none'\n }); }\n};\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = __importStar(require(\"react\"));\nvar factorService_1 = require(\"../../services/factorService\");\nvar presentableDataClient_1 = require(\"../clients/presentableDataClient\");\nvar factors_1 = require(\"../../fixtures/factors\");\nvar factorChartComponent_1 = require(\"./charting/factorChartComponent\");\nvar reactModalHelper_1 = require(\"./helpers/reactModalHelper\");\nvar SurveyFactorBothChartWidget = function (props) {\n reactModalHelper_1.setReactModalAppElement();\n var factorService = React.useState(function () { return new factorService_1.FactorService(factors_1.Factors); })[0];\n var dataClientFactory = React.useState(function () { return presentableDataClient_1.presentableDataClientFactory(props.apiBaseUrl, factorService); })[0];\n var chartComponentFactory = function (overrideProps) { return React.createElement(factorChartComponent_1.FactorChartComponent, __assign({ factorSlug: props.initialFactorSlug, municipalities: [props.initialMunicipality], respondentType: undefined, dataEndpoint: 'SurveyFactorBoth', dataClientFactory: dataClientFactory, factorService: factorService }, overrideProps)); };\n return React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: \"chart-wrapper\" }, chartComponentFactory({ width: 620 })));\n};\n// rails-react needs a default export in order to be able to find a component\n// noinspection JSUnusedGlobalSymbols\nexports.default = SurveyFactorBothChartWidget;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = __importStar(require(\"react\"));\nvar react_1 = require(\"react\");\nvar factorService_1 = require(\"../../services/factorService\");\nvar presentableDataClient_1 = require(\"../clients/presentableDataClient\");\nvar factors_1 = require(\"../../fixtures/factors\");\nvar factorChartComponent_1 = require(\"./charting/factorChartComponent\");\nvar reactModalHelper_1 = require(\"./helpers/reactModalHelper\");\nvar municipalityComparison_1 = require(\"./comparison/municipalityComparison\");\nvar top5Comparison_1 = require(\"./comparison/top5Comparison\");\nvar skrComparison_1 = require(\"./comparison/skrComparison\");\nvar factorChartHelper_1 = require(\"./helpers/factorChartHelper\");\nvar groupingService_1 = require(\"../../services/groupingService\");\nvar grouping_1 = require(\"../../fixtures/grouping\");\nvar RankingChartWidget = function (props) {\n reactModalHelper_1.setReactModalAppElement();\n var factorService = React.useState(function () { return new factorService_1.FactorService(factors_1.Factors); })[0];\n var dataClientFactory = React.useState(function () { return presentableDataClient_1.presentableDataClientFactory(props.apiBaseUrl, factorService); })[0];\n var groupingService = React.useState(function () { return new groupingService_1.GroupingService(grouping_1.Grouping); })[0];\n var factorSlug = props.initialFactorSlug;\n var comparisonConfig = factorService.getComparisonConfig(factorSlug);\n var _a = municipalityComparison_1.useMunicipalityComparison([props.initialMunicipality]), comparisonMunicipalities0 = _a.comparisonMunicipalities, comparisonMunicipalitiesDispatch = _a.comparisonMunicipalitiesDispatch, selectedMunicipalities0 = _a.selectedMunicipalities, selectedMunicipalitiesDispatch = _a.selectedMunicipalitiesDispatch, reset = _a.reset;\n var _b = react_1.useState('top'), activeComponent = _b[0], setActiveComponent = _b[1];\n var _c = factorChartHelper_1.filterMunicipalitiesBasedOnFactor(comparisonConfig, comparisonMunicipalities0, selectedMunicipalities0), comparisonMunicipalities = _c.comparisonMunicipalities, selectedMunicipalities = _c.selectedMunicipalities;\n return React.createElement(React.Fragment, null,\n React.createElement(municipalityComparison_1.MunicipalityComparison, { disabled: comparisonConfig.comparisonDisabled, initialMunicipalities: [props.initialMunicipality], includeCounties: !comparisonConfig.lacksCountyData, excludeSweden: comparisonConfig.excludeSweden, active: activeComponent, selectedMunicipalities: selectedMunicipalities, selectedMunicipalitiesDispatch: selectedMunicipalitiesDispatch, comparisonMunicipalities: comparisonMunicipalities, reset: reset, presetComparisonComponents: ['top', 'SKR'], top5ComparisonNode: React.createElement(top5Comparison_1.Top5Comparison, { active: activeComponent, setActive: setActiveComponent, activeFactor: factorSlug, isBiggerBetter: comparisonConfig.isBiggerBetter, respondentType: undefined, comparisonMunicipalitiesDispatch: comparisonMunicipalitiesDispatch, groupingService: groupingService }), skrComparisonNode: React.createElement(skrComparison_1.SKRComparison, { active: activeComponent, setActive: setActiveComponent, activeMunicipality: props.initialMunicipality, comparisonMunicipalitiesDispatch: comparisonMunicipalitiesDispatch }) }),\n React.createElement(\"div\", { className: \"chart-wrapper\" },\n React.createElement(factorChartComponent_1.FactorChartComponent, { factorSlug: props.initialFactorSlug, municipalities: selectedMunicipalities, respondentType: undefined, dataEndpoint: 'MunicipalityFactorValues', dataClientFactory: dataClientFactory, factorService: factorService, width: 620 })));\n};\n// rails-react needs a default export in order to be able to find a component\n// noinspection JSUnusedGlobalSymbols\nexports.default = RankingChartWidget;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = __importStar(require(\"react\"));\nvar factorService_1 = require(\"../../services/factorService\");\nvar presentableDataClient_1 = require(\"../clients/presentableDataClient\");\nvar factors_1 = require(\"../../fixtures/factors\");\nvar factorChartComponent_1 = require(\"./charting/factorChartComponent\");\nvar _ = __importStar(require(\"lodash\"));\nvar ChartWidget = function (props) {\n var factorService = React.useState(function () { return new factorService_1.FactorService(factors_1.Factors); })[0];\n var dataClientFactory = React.useState(function () { return presentableDataClient_1.presentableDataClientFactory(props.apiBaseUrl, factorService); })[0];\n var respondentType = props.initialRespondentType;\n var source = factorService.getSource(props.initialFactorSlug);\n var chartingLabelPropsExtensions = {};\n if (source === 'survey') {\n var chartingLabel = props.initialRespondentType === 'Företagare'\n ? 'Företagare'\n : 'Företagare och politiker';\n var existingLabels = factorService.getChartingLabels(props.initialFactorSlug);\n if (_.includes(existingLabels, chartingLabel)) {\n var chartDataDataTransformer = factorService.getChartDataDataTransformer(factorService.getCharting(props.initialFactorSlug, chartingLabel));\n chartingLabelPropsExtensions = { chartingLabel: chartingLabel, chartDataDataTransformer: chartDataDataTransformer };\n }\n }\n else {\n respondentType = undefined;\n }\n var municipalities = Array.isArray(props.initialMunicipalities)\n ? props.initialMunicipalities\n : [props.initialMunicipalities];\n return React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: \"chart-wrapper\" },\n React.createElement(factorChartComponent_1.FactorChartComponent, __assign({ factorSlug: props.initialFactorSlug, municipalities: municipalities, respondentType: respondentType === null ? undefined : respondentType, dataClientFactory: dataClientFactory, factorService: factorService }, chartingLabelPropsExtensions))));\n};\n// rails-react needs a default export in order to be able to find a component\n// noinspection JSUnusedGlobalSymbols\nexports.default = ChartWidget;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = __importStar(require(\"react\"));\nvar autoComplete_1 = require(\"./listing/autoComplete\");\nvar countyService_1 = require(\"../../services/countyService\");\nvar counties_1 = require(\"../../fixtures/counties\");\nvar HeaderMunicipalitySearch = function (props) {\n var allAlternatives = React.useState(function () { return new countyService_1.CountyService(counties_1.Counties).getAllRegions(); })[0];\n var onSelect = function (regionName) {\n window.location.href = props.redirectUrl + \"?name=\" + regionName;\n };\n return React.createElement(\"form\", null,\n React.createElement(autoComplete_1.AutoComplete, { placeHolder: \"Hitta din kommun\", allAlternatives: allAlternatives, isMatchFunction: autoComplete_1.startsWithMatchFunction, onSelect: onSelect }));\n};\n// rails-react needs a default export in order to be able to find a component\n// noinspection JSUnusedGlobalSymbols\nexports.default = HeaderMunicipalitySearch;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GuideSectionComponent = void 0;\nvar React = __importStar(require(\"react\"));\nvar react_1 = require(\"react\");\nvar guidePieSmall_1 = __importDefault(require(\"./guidePieSmall\"));\nvar guideSectionTableBody_1 = require(\"./guideSectionTableBody\");\nvar immer_1 = __importDefault(require(\"immer\"));\nvar GuideSectionTableHeader = function (_a) {\n var section = _a.section, municipalities = _a.municipalities, includeSweden = _a.includeSweden;\n return React.createElement(\"thead\", null,\n React.createElement(\"tr\", null,\n municipalities.map(function (m) {\n return React.createElement(\"th\", { key: m.slug, className: \"municipality-column \" + (m.editable ? 'edit' : '') },\n React.createElement(\"span\", null,\n m.name,\n React.createElement(guidePieSmall_1.default, { percentage: section.checkedPercentage[m.slug] })));\n }),\n React.createElement(\"th\", { className: \"title\" },\n React.createElement(\"div\", { className: \"flex\" },\n React.createElement(\"p\", { className: \"title\" }, section.title))),\n includeSweden && React.createElement(\"th\", null,\n React.createElement(\"div\", { className: \"last\" }, \"Sverige\"))));\n};\nvar sectionReducer = function (section, _a) {\n var type = _a[0], payload = _a[1];\n try {\n switch (type) {\n case \"UPDATE_WITH_RESPONSE\": {\n var municipalitySlug_1 = payload.municipalitySlug, gir_1 = payload.guideItemResponse, checkedPercentage_1 = payload.checkedPercentage;\n return immer_1.default(section, function (s) {\n // response state\n var gi = s.items.find(function (item) { return item.id === gir_1.guide_item_id; });\n if (gi) {\n gi.responses[municipalitySlug_1] = gir_1;\n gi.statistics = payload.guideItemStatistics;\n }\n // section checked percentage\n s.checkedPercentage[municipalitySlug_1] = checkedPercentage_1;\n });\n }\n }\n }\n catch (e) {\n console.error(e);\n return section;\n }\n};\nexports.GuideSectionComponent = function (props) {\n var _a = react_1.useReducer(sectionReducer, props.section), section = _a[0], sectionDispatch = _a[1];\n return React.createElement(\"table\", { className: \"item\", id: section.id.toString() },\n React.createElement(GuideSectionTableHeader, { section: section, municipalities: props.municipalities, includeSweden: false }),\n React.createElement(guideSectionTableBody_1.GuideSectionTableBody, { section: section, municipalities: props.municipalities, includeSweden: false, sectionDispatch: sectionDispatch }));\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GuideSectionTableBody = void 0;\nvar React = __importStar(require(\"react\"));\nvar react_1 = require(\"react\");\nvar guideCheckbox_1 = __importDefault(require(\"./guideCheckbox\"));\nvar guidePieSmall_1 = __importDefault(require(\"./guidePieSmall\"));\nvar _ = __importStar(require(\"lodash\"));\nvar guidesDataClient_1 = require(\"../../clients/guidesDataClient\");\nvar MunicipalityColumn = function (props) {\n var item = props.item, m = props.municipality, sectionDispatch = props.sectionDispatch;\n var checked = item.responses[m.slug].checked;\n var onClick = react_1.useCallback(function () {\n new guidesDataClient_1.GuidesDataClient().updateResponse(item.id, m.slug, !checked)\n .then(function (response) { return sectionDispatch(['UPDATE_WITH_RESPONSE', response]); });\n }, [item, m, checked, sectionDispatch]);\n return React.createElement(\"td\", { className: \"municipality-column \" + (m.editable ? 'edit' : '') }, m.editable\n ? React.createElement(guideCheckbox_1.default, { onClick: onClick, checked: checked })\n : (checked\n ? React.createElement(\"span\", { className: \"check checked\" },\n React.createElement(\"i\", { className: \"fas fa-check\" }))\n : React.createElement(\"span\", { className: \"response-no\" })));\n};\nvar MobileMunicipality = function (props) {\n var item = props.item, m = props.municipality;\n var checked = item.responses[m.slug].checked;\n return React.createElement(\"div\", null,\n checked\n ? React.createElement(\"span\", { className: \"check checked\" },\n React.createElement(\"i\", { className: \"fas fa-check\" }))\n : React.createElement(\"span\", { className: \"check\" }),\n React.createElement(\"span\", { className: \"text\" }, m.name));\n};\nvar GuideNoteInput = function (props) {\n var showName = props.showName, municipality = props.municipality, item = props.item, sectionDispatch = props.sectionDispatch;\n var _a = react_1.useState(item.responses[municipality.slug].item_note), text = _a[0], setText = _a[1];\n var textAreaRef = react_1.useRef(null);\n var _b = react_1.useState(undefined), textAreaHeight = _b[0], setTextAreaHeight = _b[1];\n var updateHeight = function () {\n if (textAreaRef.current) {\n if (textAreaRef.current.scrollHeight !== textAreaHeight) {\n setTextAreaHeight(textAreaRef.current.scrollHeight);\n }\n }\n };\n react_1.useEffect(function () { return updateHeight(); });\n var onChange = function (e) { return setText(e.target.value); };\n var onSave = function () {\n new guidesDataClient_1.GuidesDataClient().updateResponse(item.id, municipality.slug, undefined, text !== null && text !== void 0 ? text : undefined)\n .then(function (response) { return sectionDispatch(['UPDATE_WITH_RESPONSE', response]); });\n };\n var onCancel = function () { return setText(item.responses[municipality.slug].item_note); };\n var _c = react_1.useState('none'), buttonDisplay = _c[0], setButtonDisplay = _c[1];\n var onFocus = function () { return setButtonDisplay('block'); };\n var onBlur = function () { return setButtonDisplay('none'); };\n var textAreaId = municipality.slug + \"-\" + item.id;\n return React.createElement(\"div\", { className: \"guide-response\" },\n showName && React.createElement(\"label\", { htmlFor: textAreaId }, municipality.name + \":\"),\n React.createElement(\"div\", { className: \"guide-response-input\" },\n React.createElement(\"textarea\", { id: textAreaId, className: \"guide-note\", style: { height: textAreaHeight }, placeholder: \"G\\u00F6r en egen anteckning\", rows: 1, value: text !== null && text !== void 0 ? text : \"\", onChange: onChange, onFocus: onFocus, onBlur: onBlur, ref: textAreaRef }),\n React.createElement(\"div\", { className: \"guide-buttons\", style: { display: buttonDisplay } },\n React.createElement(\"button\", { className: \"save\", onMouseDown: onSave }, \"Spara\"),\n React.createElement(\"button\", { className: \"cancel\", onMouseDown: onCancel }, \"Avbryt\"))));\n};\nexports.GuideSectionTableBody = function (props) {\n var section = props.section, municipalities = props.municipalities, includeSweden = props.includeSweden, sectionDispatch = props.sectionDispatch;\n var sectionRows = section.items.map(function (item) {\n var municipalityColumns = municipalities.map(function (m) {\n return React.createElement(MunicipalityColumn, { key: item.id + \"-\" + m.slug, item: item, municipality: m, sectionDispatch: sectionDispatch });\n });\n var editable = _.filter(municipalities, function (m) { return m.editable; });\n var notesInputs = editable.length === 1\n ? editable[0] && React.createElement(GuideNoteInput, { showName: false, municipality: editable[0], item: item, sectionDispatch: sectionDispatch })\n : editable.map(function (m) { return React.createElement(GuideNoteInput, { key: m.slug, showName: true, municipality: m, item: item, sectionDispatch: sectionDispatch }); });\n return React.createElement(\"tr\", { key: item.id },\n municipalityColumns,\n React.createElement(\"td\", { className: \"content\" },\n React.createElement(\"div\", null,\n _.isEmpty(municipalities) ? React.createElement(\"span\", { className: \"check\" }) : null /* show empty checkbox when just viewing list */,\n React.createElement(\"span\", null, item.title)),\n React.createElement(\"div\", { className: \"mobile-municipalities\" }, municipalities.map(function (m) { return React.createElement(MobileMunicipality, { key: m.slug, item: item, municipality: m }); })),\n notesInputs),\n includeSweden && React.createElement(\"td\", null,\n React.createElement(\"div\", { className: \"last\" },\n React.createElement(guidePieSmall_1.default, { percentage: item.statistics.checkedCount / item.statistics.totalCount }), item.statistics.checkedCount + \"/\" + item.statistics.totalCount)));\n });\n return React.createElement(\"tbody\", null, sectionRows);\n};\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChartSelection = void 0;\nvar Backbone = __importStar(require(\"backbone\"));\nvar underscore_1 = __importDefault(require(\"underscore\"));\nvar factors_1 = require(\"../../fixtures/factors\");\nvar ChartSelection = /** @class */ (function (_super) {\n __extends(ChartSelection, _super);\n function ChartSelection() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.getFactor = function () { return _this.get('factor'); };\n return _this;\n }\n ChartSelection.prototype.initialize = function (options) {\n this.municipalityNames = options.municipalityNames;\n this.countyNames = options.countyNames;\n this.group = options.group;\n this.set('type', 'Företagare');\n this.set('subseries', '');\n this.set('municipality', options.municipality);\n this.set('compareTo', options.compareTo);\n return this.bind('change:factor', this.fetchTopMunicipalities, this);\n };\n ChartSelection.prototype.hasIcon = function () { return underscore_1.default.includes(ChartSelection.factorsWithIcons, this.getFactor()); };\n ChartSelection.prototype.showGradingScale = function (factor) {\n var effectiveFactor = factor !== null && factor !== void 0 ? factor : this.getFactor();\n return !underscore_1.default.includes(ChartSelection.factorsWithoutGradingScale, effectiveFactor);\n };\n ChartSelection.prototype.applicableToPoliticians = function () { return !underscore_1.default.includes(ChartSelection.unapplicableToPoliticians, this.getFactor()); };\n ChartSelection.prototype.municipalities = function () {\n var municipality = this.get('municipality');\n var compareTo = this.get('compareTo');\n return [municipality].concat(compareTo);\n };\n ChartSelection.prototype.municipality = function () {\n return this.get('municipality');\n };\n ChartSelection.prototype.setMunicipality = function (name) {\n this.set('municipality', name);\n return this.set('compareTo', []);\n };\n ChartSelection.prototype.addMunicipality = function (name) {\n var _a, _b;\n if (!name) {\n return;\n }\n var region = underscore_1.default.detect((_a = this.municipalityNames) !== null && _a !== void 0 ? _a : [], function (n) { return n.toLowerCase() === name.toLowerCase(); });\n if (!region) {\n region = underscore_1.default.detect((_b = this.countyNames) !== null && _b !== void 0 ? _b : [], function (n) { return n.toLowerCase() === name.toLowerCase(); });\n }\n if (!region) {\n return;\n }\n if (region === this.get('municipality')) {\n return;\n }\n var municipalities = this.get('compareTo').slice();\n municipalities.push(region);\n municipalities = underscore_1.default.uniq(municipalities);\n return this.set('compareTo', municipalities);\n };\n ChartSelection.prototype.removeMunicipality = function (name) {\n var municipalities = this.get('compareTo').slice();\n municipalities = underscore_1.default.without(municipalities, name);\n return this.set('compareTo', municipalities);\n };\n ChartSelection.prototype.top = function () {\n return this.get('top');\n };\n ChartSelection.prototype.fetchTopMunicipalities = function () {\n var _this = this;\n var factor = this.getFactor();\n if (underscore_1.default.includes(ChartSelection.meaninglessTopFive, factor)) {\n this.set('top', null);\n return;\n }\n var query = this.group === 'survey' ?\n { type: this.get('type') }\n :\n {};\n return $.ajax(\"/ranking/\" + factor + \"/top\", {\n type: 'get',\n data: query,\n success: function (data) {\n return _this.set('top', data);\n }\n });\n };\n ChartSelection.prototype.downloadAsExcel = function () {\n var municipalities = [this.get('municipality')].concat(this.get('compareTo'));\n console.log(municipalities);\n return $.ajax({\n url: '/downloads',\n type: 'post',\n dataType: 'json',\n data: {\n // 'download[type]': this.get('type'), // TODO: non-effective? See below.\n 'download[municipalities][]': municipalities,\n 'download[source]': this.get('type'),\n 'download[type]': 'excel',\n 'download[factor]': this.get('factor')\n },\n success: function (data) {\n return window.location.href = data.url;\n }\n });\n };\n ChartSelection.factorsWithIcons = ['new_entrepreneurship', 'employment_level', 'private_sector_employment', 'municipal_tax',\n 'contracting', 'amount_of_business', 'services_to_businesses', 'application_of_laws',\n 'competition_with_private_companies', 'roads_railways_airports', 'telecom_and_it_networks',\n 'access_to_competent_labour', 'summary_evaluation', 'attitudes_public', 'attitudes_politicians',\n 'attitudes_civil_servants', 'attitudes_media', 'attitudes_schools'];\n // TODO: The '.chartingArray?.[0]' stuff is real ugly... And potentially wrong. The Backbone stuff really needs to go...\n ChartSelection.unapplicableToPoliticians = factors_1.Factors.filter(function (f) { var _a, _b; return ((_b = (_a = f.chartingArray) === null || _a === void 0 ? void 0 : _a[0].factorComparison) === null || _b === void 0 ? void 0 : _b.applicableToPoliticians) === false; }).map(function (f) { return f.slug; });\n ChartSelection.meaninglessTopFive = factors_1.Factors.filter(function (f) { var _a, _b; return ((_b = (_a = f.chartingArray) === null || _a === void 0 ? void 0 : _a[0].factorComparison) === null || _b === void 0 ? void 0 : _b.singleDimensionComparable) === false; }).map(function (f) { return f.slug; });\n ChartSelection.factorsWithoutGradingScale = factors_1.Factors.filter(function (f) { var _a, _b; return ((_b = (_a = f.chartingArray) === null || _a === void 0 ? void 0 : _a[0].factorComparison) === null || _b === void 0 ? void 0 : _b.withoutGradingScale) === true; }).map(function (f) { return f.slug; });\n return ChartSelection;\n}(Backbone.Model));\nexports.ChartSelection = ChartSelection;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toStringArray = void 0;\nfunction toStringArray(val) {\n if (typeof val == 'string') {\n return [val];\n }\n else if (typeof val == \"number\") {\n return [val.toString()];\n }\n else if (val === undefined) {\n return [];\n }\n else {\n return val;\n }\n}\nexports.toStringArray = toStringArray;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GroupingService = void 0;\nvar _ = __importStar(require(\"lodash\"));\nvar GroupingService = /** @class */ (function () {\n function GroupingService(grouping) {\n var _this = this;\n this.grouping = grouping;\n this.getFactorsFromGroup0 = _.memoize(function (groupName) {\n return _.reduce(_this.grouping[groupName], function (factorsGroup, entry) {\n if (entry.hidden == true) {\n return factorsGroup;\n }\n else {\n factorsGroup[entry.name] = entry.factors;\n return factorsGroup;\n }\n }, {});\n });\n }\n GroupingService.prototype.getFactorsFromGroup = function (groupName) {\n return this.getFactorsFromGroup0(groupName);\n };\n GroupingService.prototype.getFactorGroup = function (factorSlug) {\n var isFactorInGroup = function (groupingEntries) {\n return _.some(groupingEntries, function (ge) { return _.includes(ge.factors, factorSlug); });\n };\n var groupName = _.findKey(this.grouping, isFactorInGroup);\n if (groupName) {\n return groupName;\n }\n else {\n throw Error(\"Unknown group for factor: \" + factorSlug);\n }\n };\n return GroupingService;\n}());\nexports.GroupingService = GroupingService;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Grouping = void 0;\nexports.Grouping = {\n \"survey\": [\n {\n \"name\": \"Företagsklimatet\",\n \"factors\": [\n \"summary_evaluation\",\n \"summary_evaluation_sweden\",\n \"most_prioritized_actions\"\n ]\n },\n {\n \"name\": \"Kontakter med kommunen\",\n \"factors\": [\n \"muni_contact_latest_year\",\n \"muni_contact_latest_year_about\"\n ]\n },\n {\n \"name\": \"Attityder till företagande\",\n \"factors\": [\n \"attitudes_politicians\",\n \"attitudes_civil_servants\",\n \"attitudes_public\",\n \"attitudes_schools\"\n ]\n },\n {\n \"name\": \"Kommunens myndighetsutövning\",\n \"factors\": [\n \"services_to_businesses\",\n \"municipal_contracting\",\n \"competition_with_private_companies\",\n \"survey_contact_understanding\",\n \"survey_contact_handling\",\n \"survey_contact_reachable\",\n \"advice_on_permission\"\n ]\n },\n {\n \"name\": \"Information och dialog\",\n \"factors\": [\n \"dialog_with_businesses\",\n \"information_to_businesses\",\n \"initiatives_from_businesses\"\n ]\n },\n {\n \"name\": \"Förutsättningar för företagande\",\n \"factors\": [\n \"access_to_competent_labour\",\n \"roads_railways_airports\",\n \"telecom_and_it_networks\"\n ]\n },\n {\n \"name\": \"Brottslighet mot företag\",\n \"factors\": [\n \"crime_a_problem_own_business\"\n ]\n },\n {\n \"name\": \"Årets extrafrågor\",\n \"factors\": [\n \"muni_contact_hesitate\",\n \"company_relocate\",\n ]\n },\n {\n \"name\": \"Tidigare extrafrågor\",\n \"factors\": [\n \"company_education_contact\",\n \"company_education_available\",\n \"muni_measures_view\",\n \"knowledge_of_muni_work\",\n \"business_climate_change_5_years\",\n \"survey_contact_clearfee\",\n \"survey_contact_digitized\",\n \"municipality_runs_competing_businesses\",\n \"crime_a_problem\",\n \"crime_change_2years\",\n \"crime_risk_kind\"\n ]\n },\n {\n \"name\": \"Tidigare ordinarie frågor\",\n \"factors\": [\n \"application_of_laws\",\n \"attitudes_media\"\n ]\n }\n ],\n \"statistics\": [\n {\n \"name\": \"Befolkning\",\n \"factors\": [\n \"employment_level_daytime_population\",\n \"employment_level\",\n \"population\",\n \"net_population_change\",\n \"retirees\",\n \"higher_education\",\n \"unemployment\"\n ]\n },\n {\n \"name\": \"Företagande\",\n \"factors\": [\n \"entrepreneurship\",\n \"new_entrepreneurship\",\n \"amount_of_business\",\n \"amount_of_business_absolute\",\n \"new_businesses\",\n \"young_entrepreneurs\"\n ]\n },\n {\n \"name\": \"Företagsstruktur\",\n \"factors\": [\n \"jobs_per_business\",\n \"employment_in_foreign_companies\",\n \"global_trade_per_capita\",\n \"largest_employers\",\n \"largest_private_employers\"\n ]\n },\n {\n \"name\": \"Kommunen\",\n \"factors\": [\n \"municipal_tax\",\n \"private_sector_employment\",\n \"contracting\",\n \"municipal_economy\",\n \"net_costs\",\n \"municipal_equalization\",\n \"ranking\"\n ]\n }\n ],\n \"ranking\": [\n {\n \"name\": \"Ranking\",\n \"factors\": [\n \"ranking\"\n ]\n }\n ]\n};\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChartConfigSelect = void 0;\nvar react_1 = __importDefault(require(\"react\"));\nvar footerSelect_1 = require(\"./footerSelect\");\nvar lodash_1 = __importDefault(require(\"lodash\"));\nexports.ChartConfigSelect = function (props) {\n if (lodash_1.default.isEmpty(props.labels)) {\n return null;\n }\n return react_1.default.createElement(footerSelect_1.FooterSelect, { disabled: props.disabled, options: props.labels.map(function (l) { return ({ value: l, label: l }); }), selectedLabel: props.selectedLabel, onSelectedChange: props.onSelectedChange, menuPlacementTop: props.menuPlacementTop });\n};\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GuideChartComponent = void 0;\nvar React = __importStar(require(\"react\"));\nvar react_1 = require(\"react\");\nvar municipalityBarChartFactory_1 = require(\"./factories/municipalityBarChartFactory\");\nvar XYChartComponent_1 = require(\"./XYChartComponent\");\nvar guides_1 = require(\"../../../fixtures/guides\");\nvar _ = __importStar(require(\"lodash\"));\nvar guidesService_1 = require(\"../../../services/guidesService\");\nvar guidesDataClient_1 = require(\"../../clients/guidesDataClient\");\nexports.GuideChartComponent = function (props) {\n var guidesService = react_1.useState(function () { return new guidesService_1.GuidesService(guides_1.Guides); })[0];\n var _a = react_1.useState(), guidesData = _a[0], setGuidesData = _a[1];\n react_1.useEffect(function () {\n new guidesDataClient_1.GuidesDataClient()\n .getGuidesMainData(props.selectedMunicipalities)\n .then(function (data) { return setGuidesData(data); });\n }, [props.selectedMunicipalities]);\n if (!guidesData)\n return null;\n var chartFactories = [];\n _.forOwn(guidesData, function (dataArray, guideSlug) {\n if (dataArray === undefined || !guides_1.GuideSlug.guard(guideSlug))\n return;\n var categoryKey = \"guideTitle\";\n var seriesNames = [];\n var data = _.map(dataArray.data, function (dataEntry) {\n var _a;\n seriesNames.push.apply(seriesNames, _.keys(dataEntry));\n return __assign((_a = {}, _a[categoryKey] = guidesService.getTitle(guideSlug), _a), dataEntry);\n });\n var seriesAttributes = _.uniq(seriesNames).map(function (sn) { return ({ seriesName: sn, seriesUnit: 'Antal' }); });\n var barChartFactoryProps = {\n category: categoryKey,\n data: data,\n // exportMenuElemId: \"\",\n seriesAttributes: seriesAttributes,\n categoryAxisTitle: guidesService.getTitle(guideSlug),\n maxValue: dataArray.maxValue\n };\n var chartFactory = new municipalityBarChartFactory_1.MunicipalityBarChartFactory(barChartFactoryProps);\n chartFactories.push(chartFactory);\n });\n return React.createElement(XYChartComponent_1.XYChartComponent, { chartFactory: chartFactories, height: 325 });\n};\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GuidesDataClient = void 0;\nvar axios_1 = __importDefault(require(\"axios\"));\nvar GuidesDataClient = /** @class */ (function () {\n function GuidesDataClient(baseUrl) {\n var _this = this;\n if (baseUrl === void 0) { baseUrl = undefined; }\n this.baseUrl = baseUrl;\n this.getGuidesMainData = function (municipalities) {\n var _a;\n return _this.getRequest(((_a = _this.baseUrl) !== null && _a !== void 0 ? _a : '') + \"/api/guides\", { municipalities: municipalities });\n };\n this.getGuidesProgressState = function (municipalities) {\n var _a;\n return _this.getRequest(((_a = _this.baseUrl) !== null && _a !== void 0 ? _a : '') + \"/api/guides/progress\", { municipalities: municipalities });\n };\n this.updateResponse = function (itemId, municipalitySlug, checked, note) {\n // rails wants snake_case\n return _this.putRequest(\"/api/guides/items/\" + itemId, { municipality_slug: municipalitySlug, checked: checked, note: note });\n };\n this.getRequest = function (url, params) {\n return axios_1.default.get(url, {\n params: params,\n headers: { \"Accept\": \"application/json\" }\n }).then(function (r) { return r.data; }).catch(function (e) { return console.error(e); });\n };\n this.putRequest = function (url, params) {\n return axios_1.default.put(url, {\n params: params,\n headers: { \"Accept\": \"application/json\" }\n }).then(function (r) { return r.data; }).catch(function (e) { return console.error(e); });\n };\n }\n return GuidesDataClient;\n}());\nexports.GuidesDataClient = GuidesDataClient;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GuidePieBlueMedium = void 0;\nvar React = __importStar(require(\"react\"));\nexports.GuidePieBlueMedium = function (props) {\n return (React.createElement(\"div\", { className: \"item stat\" },\n React.createElement(\"div\", { className: \"guider-pie medium\", \"data-label\": props.progressState.checkedCount + \"/\" + props.progressState.totalCount, \"data-value\": props.progressState.checkedPercentage }),\n React.createElement(\"div\", null,\n React.createElement(\"div\", null, \"Aktiva kommuner\"),\n React.createElement(\"strong\", null, props.progressState.checkedCount + \" av \" + props.progressState.totalCount))));\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GuidePieLarge = void 0;\nvar React = __importStar(require(\"react\"));\nexports.GuidePieLarge = function (props) {\n return (React.createElement(\"div\", { className: \"item stat\" },\n React.createElement(\"div\", { className: \"guider-pie large\", \"data-label\": props.progressState.checkedCount + \"/\" + props.progressState.totalCount, \"data-value\": props.progressState.checkedPercentage })));\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GuidePieSmallSubscribed = void 0;\nvar react_1 = require(\"react\");\nvar miniPubSub_1 = require(\"../lib/miniPubSub\");\nvar guidePieSmall_1 = __importDefault(require(\"./guidePieSmall\"));\nvar React = __importStar(require(\"react\"));\n// Created by react_component() helper in rails-react.\n// noinspection JSUnusedGlobalSymbols\nexports.GuidePieSmallSubscribed = function (props) {\n var _a = react_1.useState(props.initialPercentage), percentage = _a[0], setPercentage = _a[1];\n var subscriber = react_1.useState(function () { return function (percentage) { return setPercentage(percentage); }; })[0];\n miniPubSub_1.miniPubSub.subscribe(props.subscribeKey, subscriber);\n return React.createElement(guidePieSmall_1.default, { percentage: percentage });\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GuideSections = void 0;\nvar React = __importStar(require(\"react\"));\nvar guides_1 = require(\"../../../fixtures/guides\");\nvar guideSection_1 = require(\"./guideSection\");\n// noinspection JSUnusedGlobalSymbols\nexports.GuideSections = function (props) {\n var guideSlug = props.guideSlug, sections = props.sections, municipalities = props.municipalities;\n var guide = guides_1.Guides[guideSlug];\n return React.createElement(\"div\", { className: \"guider-show\" },\n React.createElement(\"h1\", null, guide.title),\n React.createElement(\"div\", { className: \"items\" }, sections.map(function (section) {\n return React.createElement(guideSection_1.GuideSectionComponent, { key: section.title, section: section, municipalities: municipalities, includeSweden: false });\n })));\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MunicipalityOverviewChartWidget = void 0;\nvar React = __importStar(require(\"react\"));\nvar factorService_1 = require(\"../../services/factorService\");\nvar presentableDataClient_1 = require(\"../clients/presentableDataClient\");\nvar factors_1 = require(\"../../fixtures/factors\");\nvar factorChartComponent_1 = require(\"./charting/factorChartComponent\");\nvar reactModalHelper_1 = require(\"./helpers/reactModalHelper\");\nvar _ = __importStar(require(\"lodash\"));\nvar chartFooter_1 = require(\"./charting/footer/chartFooter\");\nvar footerSelect_1 = require(\"./charting/footer/footerSelect\");\nexports.MunicipalityOverviewChartWidget = function (props) {\n reactModalHelper_1.setReactModalAppElement();\n var factorSlug = props.initialFactorSlug;\n var factorService = React.useState(function () { return new factorService_1.FactorService(factors_1.Factors); })[0];\n var dataClientFactory = React.useState(function () { return presentableDataClient_1.presentableDataClientFactory(props.apiBaseUrl, factorService); })[0];\n var chartingLabels = factorService.getChartingLabels(factorSlug);\n var firstLabel = _.first(chartingLabels);\n var _a = React.useState(function () {\n return firstLabel\n ? factorService.getCharting(factorSlug, firstLabel)\n : undefined;\n }), factorCharting = _a[0], setFactorCharting = _a[1];\n var onFactorChartingChange = React.useCallback(function (selectedLabel) {\n setFactorCharting(factorService.getCharting(factorSlug, selectedLabel));\n }, [factorService, factorSlug]);\n var chartDataDataTransformer = factorService.getChartDataDataTransformer(factorService.getCharting(factorSlug, factorCharting === null || factorCharting === void 0 ? void 0 : factorCharting.label));\n return React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: \"chart-wrapper\" },\n React.createElement(factorChartComponent_1.FactorChartComponent, { factorSlug: factorSlug, chartingLabel: factorCharting === null || factorCharting === void 0 ? void 0 : factorCharting.label, municipalities: _.isArray(props.initialMunicipality) ? props.initialMunicipality : [props.initialMunicipality], respondentType: undefined, dataClientFactory: dataClientFactory, chartDataDataTransformer: chartDataDataTransformer, factorService: factorService, width: 620, chartFooterComponent: React.createElement(chartFooter_1.ChartFooterComponent, { chartingSelectComponent: (factorCharting === null || factorCharting === void 0 ? void 0 : factorCharting.label) && React.createElement(footerSelect_1.FooterSelect, { disabled: _.isEmpty(chartingLabels), options: _.map(chartingLabels, function (l) { return ({ value: l, label: l }); }), selectedLabel: factorCharting === null || factorCharting === void 0 ? void 0 : factorCharting.label, onSelectedChange: onFactorChartingChange, menuPlacementTop: false }), menuPlacementTop: false }) })));\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RankingWidgetOverView = void 0;\nvar React = __importStar(require(\"react\"));\nexports.RankingWidgetOverView = function (entry) { return React.createElement(\"div\", null, \"Municipality: \" + entry.name + \" ranks: \" + entry.ranks); };\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RankingModal = void 0;\nvar React = __importStar(require(\"react\"));\nvar reactModalHelper_1 = require(\"./helpers/reactModalHelper\");\nvar react_modal_1 = __importDefault(require(\"react-modal\"));\nvar modalStyle = {\n overlay: {\n zIndex: 1000,\n backgroundColor: 'rgba(51, 65, 78, .8)'\n },\n content: {\n left: '50%',\n padding: '1rem 2rem 3rem 2rem',\n right: '20%',\n top: '30%',\n bottom: '50%',\n transform: 'translate(-50%,-60%)',\n minWidth: '20rem',\n minHeight: '19rem',\n }\n};\nvar buttonStyle = {\n fontWeight: 500,\n border: 0,\n padding: \"12px\",\n width: \"100%\",\n color: \"#fff\",\n backgroundColor: \"#ef8201\",\n display: \"block\",\n cursor: \"pointer\",\n borderRadius: \"4px\"\n};\nexports.RankingModal = function () {\n reactModalHelper_1.setReactModalAppElement();\n var _a = React.useState(true), isOpen = _a[0], setIsOpen = _a[1];\n return React.createElement(react_modal_1.default, { isOpen: isOpen, style: modalStyle, onRequestClose: function () { return setIsOpen(false); }, shouldCloseOnEsc: true },\n React.createElement(\"div\", { className: \"content\" },\n React.createElement(\"h2\", null, \"Rankingen f\\u00F6r 2024 sl\\u00E4pps den 25 september\"),\n React.createElement(\"p\", null, \"Observera att rankingen som presenteras h\\u00E4r avser 2023. Klicka p\\u00E5 OK f\\u00F6r att forts\\u00E4tta.\"),\n React.createElement(\"button\", { style: buttonStyle, onClick: function () { return setIsOpen(false); } }, \"OK\")));\n};\n","/* eslint no-console:0 */\n// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n//\n// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate\n// layout file, like app/views/layouts/application.html.erb\n\n\n// Uncomment to copy all static images under ../images to the output folder and reference\n// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)\n// or the `imagePath` JavaScript helper below.\n//\n// const images = require.context('../images', true)\n// const imagePath = (name) => images(name, true)\n\nimport \"core-js/stable\";\nimport \"regenerator-runtime/runtime\";\n\nimport {enableAllPlugins} from 'immer';\nenableAllPlugins();\n\n// main script entry point\nimport \"../../assets/javascripts/typescript/statistics\";\n\n// phone hamburger menu event listener\nimport \"../../assets/javascripts/typescript/hamburger\";\n\n// jquery etc export to window\nimport \"../../assets/javascripts/typescript/environment\";\n\n// ranking table extensions (button showing all years etc)\nimport \"../../assets/javascripts/typescript/rankingTableExensions\";\n\n// UNCOMMENT TO ENABLE why-did-you-render - Needs to be imported before any React component\n// why-did-you-render bootstrapper\nimport \"../../assets/javascripts/typescript/react/components/whyDidYouRenderBootstrapper\";\n\n// ranking widget\nimport \"../../assets/javascripts/typescript/react/components/ranking/rankingWidget\";\n\n// guider widget\nimport \"../../assets/javascripts/typescript/react/components/guides/guidesChartWidget\";\nimport \"../../assets/javascripts/typescript/react/components/guides/guideCheckbox\";\nimport \"../../assets/javascripts/typescript/react/components/guides/guidePieSmall\";\n\n// factor chart widget\nimport \"../../assets/javascripts/typescript/react/components/factorChartWidget\";\n\n// factor chart widget\nimport \"../../assets/javascripts/typescript/react/components/surveyFactorBothChartWidget\";\n\n// ranking chart widget\nimport \"../../assets/javascripts/typescript/react/components/rankingChartWidget\";\n\n// chart widget\nimport \"../../assets/javascripts/typescript/react/components/chartWidget\";\n\n// header municipality search widget\nimport \"../../assets/javascripts/typescript/react/components/headerMunicipalitySearch\";\n\n// faq widget\nimport \"../../assets/javascripts/typescript/faq\";\n\n// Support component names relative to this directory:\nvar componentRequireContext = require.context(\"../../assets/javascripts/typescript/react/components\", true);\nvar ReactRailsUJS = require(\"react_ujs\");\nReactRailsUJS.useContext(componentRequireContext);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\n * decaffeinate suggestions:\n * DS101: Remove unnecessary use of Array.from\n * DS102: Remove unnecessary code created because of implicit returns\n * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md\n */\nvar autoComplete_1 = require(\"./backbone/views/autoComplete\");\nvar nestedDropDown_1 = require(\"./backbone/views/nestedDropDown\");\nvar downloadForm_1 = require(\"./downloadForm\");\nvar mapDownloadForm_1 = require(\"./backbone/views/mapDownloadForm\");\nvar collapsable_1 = require(\"./backbone/views/collapsable\");\nvar startPageChart_1 = require(\"./backbone/views/startPageChart\");\nvar underscore_1 = __importDefault(require(\"underscore\"));\nvar jquery_1 = __importDefault(require(\"jquery\"));\nvar chartSelectionView_1 = require(\"./backbone/views/chartSelectionView\");\nvar chartSurveySource_1 = require(\"./backbone/views/chartSurveySource\");\nvar municipalitySelection_1 = require(\"./backbone/views/municipalitySelection\");\nvar topMunicipalities_1 = require(\"./backbone/views/topMunicipalities\");\nvar chartExcelDownloads_1 = require(\"./backbone/views/chartExcelDownloads\");\nvar chartSelection_1 = require(\"./backbone/models/chartSelection\");\nvar bigChart_1 = require(\"./backbone/views/bigChart\");\nvar comparePanel_1 = require(\"./backbone/views/comparePanel\");\njquery_1.default(function () {\n jquery_1.default('.js-nested-drop-down').each(function () {\n new nestedDropDown_1.NestedDropDown({ el: this });\n });\n jquery_1.default('.js-auto-complete').each(function () {\n new autoComplete_1.AutoComplete({ el: this }).render();\n });\n jquery_1.default('select.js-nested').each(function () {\n nestedDropDown_1.NestedDropDown.createFor(this);\n });\n jquery_1.default('.js-download-form').each(function () {\n new downloadForm_1.DownloadForm({ el: this });\n });\n jquery_1.default('.js-map-download').each(function () {\n new mapDownloadForm_1.MapDownloadForm({ el: this });\n });\n jquery_1.default('.js-collapsable').each(function () {\n new collapsable_1.Collapsable({ el: this });\n });\n return jquery_1.default('.js-start-page-chart').each(function () {\n new startPageChart_1.StartPageChart({ el: this }).render();\n });\n});\n// NOTE: exists on statistics page\njquery_1.default(function () {\n if (jquery_1.default('#js-big-chart').length === 0) {\n return;\n }\n var group = jquery_1.default('#js-big-chart').data('group');\n // @ts-ignore - jQuery typing...\n var factors = jquery_1.default('.js-factors option[value]').map(function (index, e) { return e.value; });\n var selectedChart = window.selectedChart || ''; // TODO Clean this up\n if (!selectedChart) {\n var val = jquery_1.default('.js-factors').val();\n if (typeof val === 'string')\n selectedChart = val;\n }\n var factor = underscore_1.default.includes(factors, selectedChart)\n ? selectedChart\n : 'summary_evaluation';\n // const cookie = Cookies.get('municipalities');\n // const stored = cookie && jQuery.parseJSON(cookie) || [];\n // const municipalities = [window.municipalityName];\n var excludeSweden = jquery_1.default('#js-big-chart').data('exclude-sweden');\n var model = new chartSelection_1.ChartSelection({\n // const model = new ChartSelection({\n municipalityNames: Muni.data.municipalityNames,\n countyNames: Muni.data.countyNames,\n group: group,\n excludeSweden: excludeSweden\n });\n jquery_1.default('.js-grading-scale').each(function () {\n var scale = jquery_1.default(this);\n model.bind('change:factor', function () { return scale.toggle(model.showGradingScale()); });\n });\n new bigChart_1.BigChart({ el: jquery_1.default('#js-big-chart')[0], model: model });\n // @ts-ignore\n new comparePanel_1.ComparePanel({ el: jquery_1.default('.js-compare-panel')[0], model: model, municipality: window.municipalityName });\n jquery_1.default('.js-chart-selection').each(function () {\n new chartSelectionView_1.ChartSelectionView({ el: this, model: model });\n });\n jquery_1.default('.js-chart-survey-source').each(function () {\n new chartSurveySource_1.ChartSurveySource({ el: this, model: model });\n });\n jquery_1.default('.js-municipality-selection').each(function () {\n new municipalitySelection_1.MunicipalitySelection({ el: this, model: model });\n });\n jquery_1.default('.js-top-municipalities').each(function () {\n new topMunicipalities_1.TopMunicipalities({ el: this, model: model });\n });\n jquery_1.default('.js-chart-excel-download').each(function () {\n new chartExcelDownloads_1.ChartExcelDownload({ el: this, model: model }).render();\n });\n model.set({\n factor: factor,\n municipality: window.municipalityName || 'Sverige',\n compareTo: []\n });\n return jquery_1.default(document).on('click', '[data-factor]', function (e) {\n e.preventDefault();\n factor = jquery_1.default(this).data('factor');\n return model.set('factor', factor);\n });\n});\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AutoComplete = void 0;\nvar withMName_1 = require(\"../../utils/withMName\");\nvar Backbone = __importStar(require(\"backbone\"));\nvar underscore_1 = __importDefault(require(\"underscore\"));\nvar AutoComplete = /** @class */ (function (_super) {\n __extends(AutoComplete, _super);\n function AutoComplete() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.selected = -1;\n _this.suggestions = [];\n _this.shownSuggestions = 0;\n _this.match = false;\n return _this;\n }\n AutoComplete.prototype.events = function () {\n return {\n 'keyup :text': this.onKeyField.mname,\n 'focus :text': this.onFieldFocus.mname,\n 'blur :text': this.onFieldBlur.mname,\n 'click .js-suggestion': this.onClickSuggestion.mname,\n 'submit': this.onFormSubmit.mname\n };\n };\n AutoComplete.prototype.initialize = function () {\n underscore_1.default.bindAll(this, this.onClickSuggestion.mname, this.onKeyField.mname, this.onFormSubmit.mname, this.onFieldFocus.mname, this.onFieldBlur.mname);\n this.$el.data('view', this);\n this.names = Muni.data.autocompleteNames;\n if (this.$el.data('includeSweden')) {\n this.names.push('Sverige');\n }\n this.selected = -1;\n this.suggestions = [];\n this.shownSuggestions = 0;\n this.field = this.$el.find(':text');\n this.button = this.$el.find(':submit');\n this.numberOfSuggestions = this.$el.data('number-of-suggestions') || AutoComplete.NUMBER_OF_SUGGESTIONS;\n return this.updateFormStatus();\n };\n AutoComplete.prototype.render = function () {\n this.$el.find('.js-suggestions').hide();\n this.displaySuggestions();\n return this;\n };\n AutoComplete.prototype.onFormSubmit = function (e) {\n if (!this.match) {\n return e.preventDefault();\n }\n };\n AutoComplete.prototype.onClickSuggestion = function (e) {\n var _a;\n e.preventDefault();\n (_a = this.field) === null || _a === void 0 ? void 0 : _a.val($(e.target).data('suggestion'));\n this.hideSuggestions();\n this.updateFormStatus();\n this.$el.trigger('suggestion:clicked');\n return this.$el.submit();\n };\n AutoComplete.prototype.onKeyField = function (e) {\n var _a, _b, _c;\n switch (e.keyCode) {\n case 38:\n this.selected = ((this.selected - 1) + this.shownSuggestions) % this.shownSuggestions;\n this.displaySuggestions();\n this.updateFormStatus();\n break;\n case 40:\n this.selected = (this.selected + 1 + this.shownSuggestions) % this.shownSuggestions;\n this.displaySuggestions();\n this.updateFormStatus();\n break;\n case 13:\n if (this.$el.data('allowEmpty') && (((_a = this.field) === null || _a === void 0 ? void 0 : _a.val()) === '')) {\n this.hideSuggestions();\n this.updateFormStatus();\n this.$el.trigger('suggestion:clicked');\n this.field.blur();\n }\n else if (this.selected !== -1) {\n (_b = this.field) === null || _b === void 0 ? void 0 : _b.val(this.suggestions[this.selected]);\n this.hideSuggestions();\n this.updateFormStatus();\n (_c = this.field) === null || _c === void 0 ? void 0 : _c.blur();\n this.$el.trigger('suggestion:clicked');\n this.$el.submit();\n }\n break;\n default:\n this.displaySuggestions();\n this.updateFormStatus();\n }\n };\n AutoComplete.prototype.onFieldFocus = function () {\n return this.displaySuggestions();\n };\n AutoComplete.prototype.onFieldBlur = function () {\n return setTimeout(underscore_1.default.bind(this.hideSuggestions, this), 200);\n };\n AutoComplete.prototype.hideSuggestions = function () {\n return this.$el.find('.js-suggestions').hide();\n };\n AutoComplete.prototype.displaySuggestions = function () {\n var _a, _b, _c, _d;\n this.hideSuggestions();\n var search = (_b = (_a = this.field) === null || _a === void 0 ? void 0 : _a.val()) === null || _b === void 0 ? void 0 : _b.toString().toLowerCase();\n if (!search) {\n return;\n }\n var matches = underscore_1.default.filter((_c = this.names) !== null && _c !== void 0 ? _c : [], function (name) { return name.toLowerCase().indexOf(search) !== -1; });\n matches.sort();\n matches = underscore_1.default.sortBy(matches, function (match) { return match.toLowerCase().indexOf(search); });\n if (matches.length) {\n this.suggestions = underscore_1.default.take(matches, (_d = this.numberOfSuggestions) !== null && _d !== void 0 ? _d : 0);\n this.shownSuggestions = this.suggestions.length;\n this.$el.find('.js-suggestions')\n .html(AutoComplete.template({ suggestions: this.suggestions, selected: this.selected }))\n .show();\n }\n };\n AutoComplete.prototype.updateFormStatus = function () {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n var value = (_b = (_a = this.field) === null || _a === void 0 ? void 0 : _a.val()) === null || _b === void 0 ? void 0 : _b.toString().toLowerCase();\n var foundMatch = underscore_1.default.find((_c = this.names) !== null && _c !== void 0 ? _c : [], function (name) { return name.toLowerCase() === value; });\n if (foundMatch) {\n (_d = this.field) === null || _d === void 0 ? void 0 : _d.trigger('suggestion:match');\n (_e = this.field) === null || _e === void 0 ? void 0 : _e.val(foundMatch);\n this.match = true;\n return (_f = this.button) === null || _f === void 0 ? void 0 : _f.attr('disabled', false.toString());\n }\n else {\n (_g = this.field) === null || _g === void 0 ? void 0 : _g.trigger('suggestion:miss');\n this.match = false;\n return (_h = this.button) === null || _h === void 0 ? void 0 : _h.attr('disabled', true.toString());\n }\n };\n AutoComplete.NUMBER_OF_SUGGESTIONS = 14;\n AutoComplete.template = underscore_1.default.template(\"\\n <% for (var i = 0; i < suggestions.length; i++) { %>\\n
  • \\\" class=\\\"js-suggestion<%= i == selected ? ' selected' : '' %>\\\"><%= suggestions[i] %>
  • \\n <% } %>\\n \");\n __decorate([\n withMName_1.withMName\n ], AutoComplete.prototype, \"onFormSubmit\", null);\n __decorate([\n withMName_1.withMName\n ], AutoComplete.prototype, \"onClickSuggestion\", null);\n __decorate([\n withMName_1.withMName\n ], AutoComplete.prototype, \"onKeyField\", null);\n __decorate([\n withMName_1.withMName\n ], AutoComplete.prototype, \"onFieldFocus\", null);\n __decorate([\n withMName_1.withMName\n ], AutoComplete.prototype, \"onFieldBlur\", null);\n return AutoComplete;\n}(Backbone.View));\nexports.AutoComplete = AutoComplete;\n","\"use strict\";\n/*\n * decaffeinate suggestions:\n * DS102: Remove unnecessary code created because of implicit returns\n * DS206: Consider reworking classes to avoid initClass\n * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NestedDropDown = void 0;\nvar Backbone = __importStar(require(\"backbone\"));\nvar underscore_1 = __importDefault(require(\"underscore\"));\nvar NestedDropDownModel = /** @class */ (function (_super) {\n __extends(NestedDropDownModel, _super);\n function NestedDropDownModel(options) {\n var _this = _super.call(this) || this;\n _this.options = options;\n return _this;\n }\n return NestedDropDownModel;\n}(Backbone.Model));\nvar NestedDropDown = /** @class */ (function (_super) {\n __extends(NestedDropDown, _super);\n function NestedDropDown() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NestedDropDown.prototype.events = function () {\n return {\n 'click .js-nested-drop-down-prompt': 'onClickPrompt',\n 'click .js-nested-drop-down-group-name': 'onClickGroupName',\n 'click .js-nested-drop-down-option': 'onClickOption'\n };\n };\n NestedDropDown.createFor = function (el) {\n var select = $(el);\n var placeholder = select.data('placeholder')\n ? $(select.data('placeholder'))\n : null;\n var extractChoice = function (option) { return ({\n label: option.innerHTML,\n value: option.value\n }); };\n // @ts-ignore - fix at will, jQuery/underscore type inference not cooperating\n var options = underscore_1.default.map(select.find('> option').not('[data-prompt]'), extractChoice);\n // @ts-ignore - fix at will, jQuery/underscore type inference not cooperating\n var groups = underscore_1.default.map(select.find('> optgroup'), function (optgroup) { return ({\n label: optgroup.label,\n options: underscore_1.default.map($(optgroup).find('option'), extractChoice)\n }); });\n var prompt = select.find('> option[data-prompt]').val() || select.find(':selected').html() || select.find('option').eq(0).html();\n var model = new NestedDropDownModel({ select: select, prompt: prompt, options: options, groups: groups, placeholder: placeholder });\n var className = 'js-nested-drop-down nested-drop-down';\n var dropDown = new NestedDropDown({ model: model, className: className });\n dropDown.render();\n return select.after(dropDown.$el);\n };\n NestedDropDown.prototype.initialize = function (options) {\n var _this = this;\n var model = options.model;\n if (!model) {\n throw Error(NestedDropDownModel.name + \" needs to be valid: \" + (options === null || options === void 0 ? void 0 : options.model));\n }\n this.select = model.options.select;\n this.options = model.options.options;\n this.groups = model.options.groups;\n this.prompt = model.options.prompt;\n this.placeholder = model.options.placeholder;\n $(document).on('click', function () {\n _this.promptEl().removeClass('expanded');\n return _this.optionsEl().removeClass('expanded');\n });\n return this.select.on('change', function () {\n return _this.updateLabel();\n });\n };\n NestedDropDown.prototype.optionsEl = function () { return this.$el.find('.js-nested-drop-down-options'); };\n NestedDropDown.prototype.promptEl = function () { return this.$el.find('.js-nested-drop-down-prompt'); };\n NestedDropDown.prototype.render = function () {\n this.$el.html(NestedDropDown.template({ options: this.options, prompt: this.prompt, groups: this.groups }));\n return this;\n };\n NestedDropDown.prototype.onClickPrompt = function (e) {\n e.preventDefault();\n e.stopPropagation();\n this.promptEl().toggleClass('expanded');\n this.optionsEl().toggleClass('expanded');\n return this.updatePlaceholder();\n };\n NestedDropDown.prototype.toggleGroupName = function ($groupName) {\n var $options = $groupName.parent().find('.js-nested-drop-down-group-options');\n $groupName.toggleClass('expanded');\n $options.toggleClass('expanded');\n };\n NestedDropDown.prototype.onClickGroupName = function (e) {\n e.preventDefault();\n e.stopPropagation();\n this.toggleGroupName($(e.target));\n return this.updatePlaceholder();\n };\n NestedDropDown.prototype.onClickOption = function (e) {\n var _a, _b, _c;\n e.preventDefault();\n e.stopPropagation();\n (_a = this.select) === null || _a === void 0 ? void 0 : _a.val($(e.target).data('value'));\n if (((_b = this.select) === null || _b === void 0 ? void 0 : _b.data('handler')) === 'visit') {\n var val = this.select.val();\n if (typeof val === 'string') {\n window.location.href = val;\n }\n return;\n }\n (_c = this.select) === null || _c === void 0 ? void 0 : _c.trigger('change');\n this.optionsEl().removeClass('expanded');\n this.promptEl().removeClass('expanded');\n return this.updatePlaceholder();\n };\n NestedDropDown.prototype.updateLabel = function () {\n if (this.select) {\n var $selectedOption = this.select.find('option:selected');\n var selectedOptionValue = $selectedOption.val() || '';\n var $containingSelect = this.select.closest('select');\n // retrieve previous value\n var prevSelectedValue = $containingSelect.data('prev');\n // update previous value\n $containingSelect.data('prev', selectedOptionValue);\n // find element for which to remove the \"selected\" CSS class\n var $containingSelectParent = $containingSelect.parent();\n var $prevSelectedA = $containingSelectParent.find(\"a[data-value=\\\"\" + prevSelectedValue + \"\\\"]\");\n $prevSelectedA.removeClass(\"selected\");\n // collapse parent\n var $groupNameA = $prevSelectedA.closest('li.group').find('a.group-name');\n this.toggleGroupName($groupNameA);\n // find element for which to remove add \"selected\" CSS class\n var $selectedSelector = $containingSelectParent.find(\"a[data-value=\\\"\" + selectedOptionValue + \"\\\"]\");\n $selectedSelector.addClass(\"selected\");\n this.promptEl().html($selectedOption.text() + '');\n }\n };\n NestedDropDown.prototype.updatePlaceholder = function () {\n if (!this.placeholder) {\n return;\n }\n return this.placeholder.css('min-height', this.$el.height() + \"px\");\n };\n NestedDropDown.template = underscore_1.default.template(\"\\n <%= prompt %>\\n \\n \");\n return NestedDropDown;\n}(Backbone.View));\nexports.NestedDropDown = NestedDropDown;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DownloadForm = void 0;\n/*\n * decaffeinate suggestions:\n * DS102: Remove unnecessary code created because of implicit returns\n * DS206: Consider reworking classes to avoid initClass\n * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md\n */\nvar withMName_1 = require(\"./utils/withMName\");\nvar underscore_1 = __importDefault(require(\"underscore\"));\nvar Backbone = __importStar(require(\"backbone\"));\nvar DownloadForm = /** @class */ (function (_super) {\n __extends(DownloadForm, _super);\n function DownloadForm() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DownloadForm.prototype.events = function () {\n return {\n 'suggestion:match input': this.onSuggestionMatch.mname,\n 'suggestion:miss input': this.onSuggestionMiss.mname,\n 'change select': this.updateFormStatus.mname,\n 'change input:radio': this.onChangeFormat.mname\n };\n };\n DownloadForm.prototype.initialize = function () {\n this.button = this.$el.find('.js-submit');\n this.buttonMatch = !this.$el.find('input:text').length;\n this.updateFormStatus();\n };\n DownloadForm.prototype.render = function () {\n return this;\n };\n DownloadForm.prototype.validInput = function () {\n var _a;\n return ((_a = this.buttonMatch) !== null && _a !== void 0 ? _a : false) &&\n this.allSelectsChosen() &&\n this.radioSelected();\n };\n DownloadForm.prototype.updateFormStatus = function () {\n var _a;\n var validInput = this.validInput();\n var enableWithNull = validInput ? null : 'true';\n (_a = this.button) === null || _a === void 0 ? void 0 : _a.attr('disabled', enableWithNull);\n };\n DownloadForm.prototype.onChangeFormat = function () {\n if (this.$el.find('input:radio:checked').val() === 'ppt') {\n this.$el.find('.js-year').addClass('disabled');\n this.$el.find('.js-year select').val('').change();\n this.$el.find('.js-year').hide();\n }\n else {\n this.$el.find('.js-year').removeClass('disabled');\n this.$el.find('.js-year').show();\n }\n return this.updateFormStatus();\n };\n DownloadForm.prototype.onSuggestionMatch = function () {\n this.buttonMatch = true;\n return this.updateFormStatus();\n };\n DownloadForm.prototype.onSuggestionMiss = function () {\n this.buttonMatch = false;\n return this.updateFormStatus();\n };\n DownloadForm.prototype.allSelectsChosen = function () {\n var selects = this.$el.find('select').filter(function () { return $(this).closest('.js-year.disabled').length === 0; });\n var memo = function (memo, el) {\n var _a, _b;\n var selectIsNonEmpty = !underscore_1.default.isEmpty((_b = (_a = $(el)) === null || _a === void 0 ? void 0 : _a.val()) === null || _b === void 0 ? void 0 : _b.toString());\n return memo && selectIsNonEmpty;\n };\n return underscore_1.default.reduce(selects, memo, true);\n };\n DownloadForm.prototype.radioSelected = function () {\n return this.$el.find('input:radio:checked').length > 0;\n };\n __decorate([\n withMName_1.withMName\n ], DownloadForm.prototype, \"updateFormStatus\", null);\n __decorate([\n withMName_1.withMName\n ], DownloadForm.prototype, \"onChangeFormat\", null);\n __decorate([\n withMName_1.withMName\n ], DownloadForm.prototype, \"onSuggestionMatch\", null);\n __decorate([\n withMName_1.withMName\n ], DownloadForm.prototype, \"onSuggestionMiss\", null);\n return DownloadForm;\n}(Backbone.View));\nexports.DownloadForm = DownloadForm;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MapDownloadForm = void 0;\nvar withMName_1 = require(\"../../utils/withMName\");\nvar Backbone = __importStar(require(\"backbone\"));\nvar underscore_1 = __importDefault(require(\"underscore\"));\nvar MapDownloadForm = /** @class */ (function (_super) {\n __extends(MapDownloadForm, _super);\n function MapDownloadForm() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MapDownloadForm.prototype.events = function () {\n return {\n 'submit': this.onFormSubmit.mname\n };\n };\n MapDownloadForm.prototype.initialize = function () {\n underscore_1.default.bindAll(this, 'onFormSubmit');\n return this.url = this.$el.attr('action');\n };\n MapDownloadForm.prototype.render = function () {\n return this;\n };\n MapDownloadForm.prototype.onFormSubmit = function (e) {\n e.preventDefault();\n e.stopPropagation();\n var factor = this.$el.find('.js-factor').val();\n var targetUrl = this.url;\n if (factor) {\n targetUrl = this.url + \"?factor=\" + factor;\n }\n // need to supress this since we're really after the set():er functionality\n // https://stackoverflow.com/questions/2383401/javascript-setting-location-href-versus-location\n // @ts-ignore\n return window.location = targetUrl;\n };\n __decorate([\n withMName_1.withMName\n ], MapDownloadForm.prototype, \"onFormSubmit\", null);\n return MapDownloadForm;\n}(Backbone.View));\nexports.MapDownloadForm = MapDownloadForm;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Collapsable = void 0;\nvar withMName_1 = require(\"../../utils/withMName\");\nvar Backbone = __importStar(require(\"backbone\"));\nvar underscore_1 = __importDefault(require(\"underscore\"));\nvar Collapsable = /** @class */ (function (_super) {\n __extends(Collapsable, _super);\n function Collapsable() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Collapsable.prototype.events = function () {\n return {\n 'click .js-prompt': this.toggleContents.mname\n };\n };\n Collapsable.prototype.initialize = function () {\n return underscore_1.default.bindAll(this, this.toggleContents.mname);\n };\n Collapsable.prototype.render = function () {\n return this;\n };\n Collapsable.prototype.toggleContents = function (e) {\n e.preventDefault();\n return this.$el.find('.js-contents').toggle();\n };\n __decorate([\n withMName_1.withMName\n ], Collapsable.prototype, \"toggleContents\", null);\n return Collapsable;\n}(Backbone.View));\nexports.Collapsable = Collapsable;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StartPageChart = void 0;\nvar Backbone = __importStar(require(\"backbone\"));\nvar underscore_1 = __importDefault(require(\"underscore\"));\nvar chartSelection_1 = require(\"../models/chartSelection\");\nvar jquery_1 = __importDefault(require(\"jquery\"));\nvar adaptiveCharts_1 = require(\"../../adaptiveCharts\");\nvar StartPageChart = /** @class */ (function (_super) {\n __extends(StartPageChart, _super);\n function StartPageChart() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StartPageChart.prototype.initialize = function () {\n var _this = this;\n underscore_1.default.bindAll(this, 'onChangeFactor', 'onChangeMunicipality');\n this.select = jquery_1.default(this.$el.data('factorSelect'));\n this.select.on('change', this.onChangeFactor);\n this.autocomplete = jquery_1.default(this.$el.data('municipalitySelect')).data('view');\n this.autocomplete.$el.on('suggestion:clicked', this.onChangeMunicipality);\n // Ugliest hack ever - we need to kill this chart\n jquery_1.default('.js-chart-excel-download').click(function (e) {\n e.preventDefault();\n var model = new chartSelection_1.ChartSelection({ factor: _this.factor });\n return model.downloadAsExcel();\n });\n // default chart\n this.factor = 'summary_evaluation';\n return this.$el.html(StartPageChart.template());\n };\n StartPageChart.prototype.render = function () {\n var _a, _b, _c, _d;\n var activeYear = 2019;\n var presentable = underscore_1.default.includes([\n 'knowledge_of_muni_work',\n 'advice_on_permission',\n 'muni_contact_latest_year',\n 'muni_contact_latest_year_about',\n 'muni_contact_hesitate',\n 'municipality_runs_competing_businesses',\n 'business_climate_change_5_years',\n 'crime_a_problem',\n 'survey_contact_reachable',\n 'survey_contact_understanding',\n 'survey_contact_clearfee',\n 'survey_contact_handling',\n 'survey_contact_digitized',\n 'crime_change_2years',\n 'company_relocate',\n 'crime_risk_kind'\n ], this.factor)\n ? 'SurveySimpleBarchart'\n : 'SurveyFactorBoth';\n if (underscore_1.default.includes(['company_relocate', 'crime_change_2years', 'crime_a_problem', 'crime_risk_kind'], this.factor)) {\n activeYear = 2017;\n }\n if (underscore_1.default.includes(['muni_contact_hesitate', 'knowledge_of_muni_work'], this.factor)) {\n activeYear = 2016;\n }\n if (underscore_1.default.includes(['advice_on_permission', 'business_climate_change_5_years', 'municipality_runs_competing_businesses'], this.factor)) {\n activeYear = 2018;\n }\n var query = {\n factor: window.factorAPINames[(_a = this.factor) !== null && _a !== void 0 ? _a : ''],\n kommun: (this.municipality || 'Sverige'),\n type: 'Företagare',\n show_shares: false,\n title: (_b = window === null || window === void 0 ? void 0 : window.factorNames) === null || _b === void 0 ? void 0 : _b[(_c = this.factor) !== null && _c !== void 0 ? _c : ''],\n year: activeYear,\n };\n // @ts-ignore - supress always false temporary\n if (presentable === 'InDepthSurveyQuestions') {\n query.percentage = true;\n }\n var isFactorWithoutGradingScale = underscore_1.default.includes(chartSelection_1.ChartSelection.factorsWithoutGradingScale, this.factor);\n jquery_1.default('.js-grading-scale').toggle(!isFactorWithoutGradingScale);\n // Aaargh, copying this conditional from bigchart...\n var hiddenGradingScaleCopy = [\n \"knowledge_of_muni_work\",\n \"most_prioritized_actions\",\n 'crime_a_problem',\n 'crime_change_2years',\n 'crime_risk_kind',\n 'company_relocate',\n 'advice_on_permission',\n 'business_climate_change_5_years',\n 'municipality_runs_competing_businesses'\n ];\n if (underscore_1.default.includes(hiddenGradingScaleCopy, this.factor)) {\n jquery_1.default('#js-grading-scale-1-6').hide();\n }\n else {\n jquery_1.default('#js-grading-scale-1-6').show();\n }\n adaptiveCharts_1.Fklimat.renderTo('start_page_chart', presentable, query, null, {});\n var description = window.factorDescriptions[(_d = this.factor) !== null && _d !== void 0 ? _d : ''];\n if (this.factor === 'crime_a_problem') {\n description = 'Upplever du att brottslighet är ett problem för ditt företag?';\n }\n if (this.factor === 'company_relocate') {\n description = 'Har du någon gång övervägt att flytta ditt företag till en kommun med ett bättre företagsklimat?';\n }\n if (this.factor === 'crime_change_2years') {\n description = 'Hur upplever du att brottsligheten mot ditt företag har förändrats under de senaste två åren?';\n }\n jquery_1.default('.js-factor-description').html(description);\n return this;\n };\n StartPageChart.prototype.onChangeFactor = function (e) {\n var val = jquery_1.default(e.target).val();\n if (typeof val === 'string') {\n this.factor = val;\n }\n else {\n console.log(\"Unexpected value: \" + val);\n }\n return this.render();\n };\n StartPageChart.prototype.onChangeMunicipality = function () {\n this.municipality = this.autocomplete.field.val();\n return this.render();\n };\n StartPageChart.template = underscore_1.default.template(\"\\n
    \\n \");\n return StartPageChart;\n}(Backbone.View));\nexports.StartPageChart = StartPageChart;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChartSelectionView = void 0;\nvar withMName_1 = require(\"../../utils/withMName\");\nvar Backbone = __importStar(require(\"backbone\"));\nvar underscore_1 = __importDefault(require(\"underscore\"));\nvar ChartSelectionView = /** @class */ (function (_super) {\n __extends(ChartSelectionView, _super);\n function ChartSelectionView() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChartSelectionView.prototype.events = function () {\n return {\n 'change select': this.onFactorChange.mname\n };\n };\n ChartSelectionView.prototype.initialize = function () {\n underscore_1.default.bindAll(this, this.onFactorChange.mname, this.onMunicipalityChange.mname);\n this.select = this.$el.find('select');\n this.autocomplete = this.$el.find('.js-single-municipality-autocomplete').data('view');\n if (this.autocomplete) {\n this.autocomplete.$el.bind('suggestion:clicked', this.onMunicipalityChange);\n }\n };\n ChartSelectionView.prototype.render = function () {\n return this;\n };\n ChartSelectionView.prototype.onMunicipalityChange = function () {\n return this.model.setMunicipality(this.autocomplete.field.val() || 'Sverige');\n };\n ChartSelectionView.prototype.onFactorChange = function () {\n var _a;\n return this.model.set('factor', (_a = this.select) === null || _a === void 0 ? void 0 : _a.val());\n };\n __decorate([\n withMName_1.withMName\n ], ChartSelectionView.prototype, \"onMunicipalityChange\", null);\n __decorate([\n withMName_1.withMName\n ], ChartSelectionView.prototype, \"onFactorChange\", null);\n return ChartSelectionView;\n}(Backbone.View));\nexports.ChartSelectionView = ChartSelectionView;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChartSurveySource = void 0;\nvar withMName_1 = require(\"../../utils/withMName\");\nvar Backbone = __importStar(require(\"backbone\"));\nvar underscore_1 = __importDefault(require(\"underscore\"));\nvar ChartSurveySource = /** @class */ (function (_super) {\n __extends(ChartSurveySource, _super);\n function ChartSurveySource() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChartSurveySource.prototype.events = function () {\n return {\n 'change select': this.onSelectChange.mname\n };\n };\n ChartSurveySource.prototype.initialize = function () {\n underscore_1.default.bindAll(this, this.onSelectChange.mname);\n };\n ChartSurveySource.prototype.onSelectChange = function (e) {\n var select = $(e.target);\n var name = select.attr('name');\n var value = select.val();\n if (typeof name === 'string' && typeof value === 'string') {\n this.model.set(name, value);\n }\n };\n __decorate([\n withMName_1.withMName\n ], ChartSurveySource.prototype, \"onSelectChange\", null);\n return ChartSurveySource;\n}(Backbone.View));\nexports.ChartSurveySource = ChartSurveySource;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MunicipalitySelection = void 0;\n/*\n * decaffeinate suggestions:\n * DS102: Remove unnecessary code created because of implicit returns\n * DS206: Consider reworking classes to avoid initClass\n * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md\n */\nvar withMName_1 = require(\"../../utils/withMName\");\nvar underscore_1 = __importDefault(require(\"underscore\"));\nvar Backbone = __importStar(require(\"backbone\"));\nvar grouping_1 = require(\"../../grouping\");\nvar MunicipalitySelection = /** @class */ (function (_super) {\n __extends(MunicipalitySelection, _super);\n function MunicipalitySelection() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MunicipalitySelection.prototype.events = function () {\n return {\n 'click .js-prompt': this.onClickPrompt.mname,\n 'click .js-selected': this.onRemoveMunicipality.mname,\n 'click .js-suggestion': this.onAddSuggestion.mname,\n 'click .js-clear-all': this.onClearAll.mname,\n 'click .js-municipality-group': this.onChangeGroup.mname,\n 'suggestion:clicked .js-auto-complete': this.onFormSubmit.mname,\n 'submit form': this.onFormSubmit.mname\n };\n };\n MunicipalitySelection.prototype.initialize = function () {\n var _this = this;\n underscore_1.default.bindAll(this, this.onFormSubmit.mname, this.onClearAll.mname, this.onClickPrompt.mname, this.onRemoveMunicipality.mname, this.onChangeGroup.mname, this.onAddSuggestion.mname);\n this.suggestions = [];\n this.showTop = false;\n this.model.bind('change', this.render, this);\n this.model.bind('change:top', this.onTopChanged, this);\n $(document).on('click', function () {\n return _this.$el.find('.js-options').hide();\n });\n return this.$el.on('click', function (e) { return e.stopPropagation(); });\n };\n MunicipalitySelection.prototype.render = function () {\n var _a;\n var selected = this.model.get('compareTo');\n var shown = underscore_1.default.uniq(((_a = this.suggestions) !== null && _a !== void 0 ? _a : []).concat(selected));\n selected.sort();\n shown.sort();\n var municipalities = shown.map(function (name) { return ({ name: name, selected: underscore_1.default.includes(selected, name) }); });\n this.$el.find('.js-selected').html(MunicipalitySelection.selectedTemplate({ municipalities: municipalities }));\n return this;\n };\n MunicipalitySelection.prototype.toggleOptions = function () {\n var options = this.$el.find('.js-options');\n var prompt = this.$el.find('.js-prompt');\n if (options.is(':visible')) {\n options.hide();\n return prompt.removeClass('expanded');\n }\n else {\n options.show();\n return prompt.toggleClass('expanded');\n }\n };\n MunicipalitySelection.prototype.onClickPrompt = function (e) {\n e.stopPropagation();\n e.preventDefault();\n return this.toggleOptions();\n };\n MunicipalitySelection.prototype.onRemoveMunicipality = function (e) {\n e.preventDefault();\n e.stopPropagation();\n return this.model.removeMunicipality($(e.target).data('municipality'));\n };\n MunicipalitySelection.prototype.onAddSuggestion = function (e) {\n e.preventDefault();\n e.stopPropagation();\n return this.model.addMunicipality($(e.target).data('municipality'));\n };\n MunicipalitySelection.prototype.onFormSubmit = function (e) {\n e.preventDefault();\n var field = this.$el.find(':text');\n var muni = field.val();\n if (typeof muni === 'string') {\n this.model.addMunicipality(muni);\n }\n return field.val('');\n };\n MunicipalitySelection.prototype.onClearAll = function (e) {\n e.preventDefault();\n e.stopPropagation();\n this.suggestions = [];\n this.showTop = false;\n this.model.set('compareTo', []);\n return this.render();\n };\n MunicipalitySelection.prototype.onChangeGroup = function (e) {\n e.preventDefault();\n e.stopPropagation();\n var group = $(e.target).data('group');\n if (group === 'top') {\n this.showTop = true;\n return this.displaySuggestions(underscore_1.default.pluck(this.model.top(), 'name'));\n }\n else {\n this.showTop = false;\n var municipality = this.model.get('municipality');\n return this.displaySuggestions(grouping_1.Grouping.forMunicipality(municipality, group));\n }\n };\n MunicipalitySelection.prototype.onTopChanged = function () {\n if (this.showTop) {\n this.displaySuggestions(underscore_1.default.pluck(this.model.top(), 'name'));\n }\n };\n MunicipalitySelection.prototype.displaySuggestions = function (suggestions) {\n var municipality = this.model.get('municipality');\n this.suggestions = underscore_1.default.without(suggestions, municipality);\n this.suggestions.sort();\n return this.render();\n };\n MunicipalitySelection.selectedTemplate = underscore_1.default.template(\"\\n <% for (var i = 0; i < municipalities.length; i++) { %>\\n <% if (municipalities[i].selected) { %>\\n
  • \\\" class=\\\"js-selected\\\"><%= municipalities[i].name %>
  • \\n <% } else { %>\\n
  • \\\" class=\\\"js-suggestion suggestion\\\"><%= municipalities[i].name %>
  • \\n <% } %>\\n <% } %>\");\n __decorate([\n withMName_1.withMName\n ], MunicipalitySelection.prototype, \"onClickPrompt\", null);\n __decorate([\n withMName_1.withMName\n ], MunicipalitySelection.prototype, \"onRemoveMunicipality\", null);\n __decorate([\n withMName_1.withMName\n ], MunicipalitySelection.prototype, \"onAddSuggestion\", null);\n __decorate([\n withMName_1.withMName\n ], MunicipalitySelection.prototype, \"onFormSubmit\", null);\n __decorate([\n withMName_1.withMName\n ], MunicipalitySelection.prototype, \"onClearAll\", null);\n __decorate([\n withMName_1.withMName\n ], MunicipalitySelection.prototype, \"onChangeGroup\", null);\n __decorate([\n withMName_1.withMName\n ], MunicipalitySelection.prototype, \"onTopChanged\", null);\n return MunicipalitySelection;\n}(Backbone.View));\nexports.MunicipalitySelection = MunicipalitySelection;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TopMunicipalities = void 0;\nvar Backbone = __importStar(require(\"backbone\"));\nvar underscore_1 = __importDefault(require(\"underscore\"));\nvar TopMunicipalities = /** @class */ (function (_super) {\n __extends(TopMunicipalities, _super);\n function TopMunicipalities() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TopMunicipalities.prototype.initialize = function () {\n this.model.bind('change:top', this.render, this);\n };\n TopMunicipalities.prototype.render = function () {\n var top = this.model.top();\n var html = top\n ? TopMunicipalities.template({ municipalities: this.model.top() })\n : '';\n this.$el.html(html);\n return this;\n };\n TopMunicipalities.template = underscore_1.default.template(\"\\n

    De b\\u00E4sta kommunerna inom denna kategori

    \\n \\n \");\n return TopMunicipalities;\n}(Backbone.View));\nexports.TopMunicipalities = TopMunicipalities;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChartExcelDownload = void 0;\nvar Backbone = __importStar(require(\"backbone\"));\nvar ChartExcelDownload = /** @class */ (function (_super) {\n __extends(ChartExcelDownload, _super);\n function ChartExcelDownload() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChartExcelDownload.prototype.render = function () {\n var _this = this;\n this.$el.on('click', function (e) {\n e.preventDefault();\n return _this.model.downloadAsExcel();\n });\n return this;\n };\n return ChartExcelDownload;\n}(Backbone.View));\nexports.ChartExcelDownload = ChartExcelDownload;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BigChart = void 0;\nvar withMName_1 = require(\"../../utils/withMName\");\nvar Backbone = __importStar(require(\"backbone\"));\nvar underscore_1 = __importDefault(require(\"underscore\"));\nvar grouping_1 = require(\"../../grouping\");\nvar charts_1 = require(\"../../charts\");\nvar BigChart = /** @class */ (function (_super) {\n __extends(BigChart, _super);\n function BigChart() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BigChart.prototype.events = function () {\n return {\n 'change input[name=chart_type]': this.setChartType.mname,\n 'change input[name=subseries]': this.setSubseries.mname\n };\n };\n BigChart.prototype.initialize = function () {\n underscore_1.default.bindAll(this, this.setChartType.mname, this.setSubseries.mname);\n this.descriptionContainer = $(this.$el.data('descriptionContainer'));\n this.sourceSelection = $(this.$el.data('sourceSelection'));\n this.reportContainer = $('.js-county-report');\n this.autocomplete = $(this.$el.data('municipalitySelect')).data('view');\n if (this.autocomplete) {\n var self_1 = this;\n this.autocomplete.$el.on('suggestion:clicked', function () { return self_1.onChangeMunicipality(); });\n }\n var bindList = 'change:factor change:compareTo change:type change:subseries';\n if (window.fromSwedenStatisticsPage || window.fromSwedenSurveyPage) {\n bindList += ' change:municipality ';\n }\n return this.model.bind(bindList, underscore_1.default.debounce(this.render, 200), this);\n };\n BigChart.prototype.onChangeMunicipality = function () {\n var muni = this.autocomplete.field.val();\n return this.model.set('municipality', muni);\n };\n BigChart.prototype.setChartType = function () {\n return this.model.set('type', this.$el.find('input[name=chart_type]:checked').val());\n };\n BigChart.prototype.setSubseries = function () {\n return this.model.set('subseries', this.$el.find('input[name=subseries]:checked').val());\n };\n BigChart.prototype.render = function () {\n this.updateDescription();\n this.updateChart();\n this.updateSourceSelection();\n this.updateReportContainer();\n return this;\n };\n BigChart.prototype.updateDescription = function () {\n if (!this.descriptionContainer) {\n return;\n }\n var factor = this.model.get('factor');\n var description = window.factorDescriptions[factor];\n var type = this.model.get('type');\n // Aaargh, sync with start_page_chart.js.coffee\n var hiddenGradingScaleCopy = [\n \"knowledge_of_muni_work\",\n \"most_prioritized_actions\",\n 'crime_a_problem',\n 'crime_change_2years',\n 'crime_risk_kind',\n 'company_relocate',\n 'advice_on_permission',\n 'business_climate_change_5_years',\n 'municipality_runs_competing_businesses',\n 'survey_contact_understanding', 'survey_contact_clearfee', 'survey_contact_handling',\n 'survey_contact_reachable', 'survey_contact_digitized'\n ];\n if (underscore_1.default(hiddenGradingScaleCopy).includes(factor)) {\n $('#js-grading-scale-1-6').hide();\n }\n else {\n $('#js-grading-scale-1-6').show();\n }\n if (factor === 'crime_a_problem') {\n if (type === 'Politiker') {\n description = 'Upplever du att brottslighet är ett problem för företagen i din kommun?';\n }\n else {\n description = 'Upplever du att brottslighet är ett problem för ditt företag?';\n }\n }\n if (factor === 'crime_change_2years') {\n if (type === 'Politiker') {\n description = 'Hur upplever du att brottsligheten mot företag har förändrats i din kommun under de senaste två åren?';\n }\n else {\n description = 'Hur upplever du att brottsligheten mot ditt företag har förändrats under de senaste två åren?';\n }\n }\n return this.descriptionContainer.html(description);\n };\n BigChart.prototype.updateReportContainer = function () {\n var _a, _b, _c;\n if (!this.reportContainer) {\n return;\n }\n var factor = this.model.get('factor');\n var municipality = this.model.get('municipality');\n // disable link to report about Företagsamheten for 2016, might get updated?\n // noinspection PointlessBooleanExpressionJS\n if (false && underscore_1.default(['entrepreneurship', 'new_entrepreneurship']).includes(factor) && !underscore_1.default(['', 'Sverige']).includes(municipality)) {\n var county = grouping_1.Grouping.countyFor(municipality);\n if (county) {\n var _d = county, name_1 = _d.name, slug = _d.slug;\n var link = (_a = this.reportContainer) === null || _a === void 0 ? void 0 : _a.data('reportLinks')[slug];\n (_b = this.reportContainer) === null || _b === void 0 ? void 0 : _b.html(BigChart.reportContainerTemplate({ link: link, name: name_1 }));\n return (_c = this.reportContainer) === null || _c === void 0 ? void 0 : _c.show();\n }\n }\n else {\n return this.reportContainer.hide();\n }\n };\n BigChart.prototype.updateSourceSelection = function () {\n if (!this.sourceSelection) {\n return;\n }\n if (this.model.applicableToPoliticians()) {\n return this.sourceSelection.show();\n }\n else {\n return this.sourceSelection.hide();\n }\n };\n BigChart.prototype.updateChart = function () {\n var factor = this.model.get('factor');\n var municipalities = this.model.municipalities();\n var type = this.model.get('type');\n var subseries = this.model.get('subseries');\n var excludeSweden = this.model.get('excludeSweden');\n var description = window.factorDescriptions[factor];\n var showBadgeIcon = this.model.hasIcon();\n // TODO: These seem unused today (can only find related data-allow-type-selection attributes in county related\n // TODO: files).\n var dataAllowTypeSelection = this.$el.data('allowTypeSelection');\n var dataShowSubseries = this.$el.data('showSubseries');\n var showTypeSelection = dataAllowTypeSelection && this.model.applicableToPoliticians();\n var showSubseries = dataShowSubseries && this.model.applicableToPoliticians();\n // TODO: Atrocious hack.\n window.hideSweden = false;\n // debugger;\n // on Pontus' request, hide sweden initially (for entrepreneurship that is)\n var chartHider = (function () {\n //console.log(\"again:\" + window.hideSweden + \" \" + @factor + \" \" + !(\"Sverige\" in municipalities) + \" \" + Highcharts?)\n if (!window.fromSwedenStatisticsPage && !window.hideSweden && (factor === \"entrepreneurship\") && !(underscore_1.default(municipalities).includes(\"Sverige\")) && (typeof window.Highcharts !== 'undefined' && window.Highcharts !== null)) {\n var charts = underscore_1.default.filter(window.Highcharts.charts, function (c) { return !!c; });\n var series = underscore_1.default.map(charts, function (c) { return c.series; });\n series = underscore_1.default.flatten(series);\n //console.log(series.length)\n if (series.length > 0) {\n var swSeries = underscore_1.default.filter(series, function (s) { return underscore_1.default([\n 'Sverige (Andel företagsamma individer)',\n 'Sverige (Företagsamma unga)',\n 'Sverige (Företagsamma kvinnor)'\n ]).includes(s.name); });\n underscore_1.default.forEach(swSeries, function (s) { return s.hide(); });\n window.hideSweden = true;\n }\n }\n });\n if (window.hideSwedenInterval != null) {\n window.clearInterval(window.hideSwedenInterval);\n }\n window.hideSwedenInterval = window.setInterval(chartHider, 100);\n // should destroy old chart or performance suffers pretty bad after a couple of chart\n // changes\n if ((typeof window.Highcharts !== 'undefined' && window.Highcharts !== null) && (window.Highcharts.charts != null)) {\n underscore_1.default.forEach(window.Highcharts.charts, function (c) {\n if (c != null) {\n console.log(\"Destroying...\");\n return c.destroy();\n }\n });\n }\n console.log(\"Drawing...\");\n this.$el.html(BigChart.template({ factor: factor, description: description, showBadgeIcon: showBadgeIcon, showTypeSelection: showTypeSelection, showSubseries: showSubseries }));\n return charts_1.Charts.drawBigChart('big_chart_statistics', municipalities, factor, type, subseries, { excludeSweden: excludeSweden });\n };\n BigChart.template = underscore_1.default.template(\"\\n
    \\n \");\n BigChart.reportContainerTemplate = underscore_1.default.template(\"\\n \\\">F\\u00F6retagsamheten rapport om <%= name %>\\n \");\n __decorate([\n withMName_1.withMName\n ], BigChart.prototype, \"setChartType\", null);\n __decorate([\n withMName_1.withMName\n ], BigChart.prototype, \"setSubseries\", null);\n return BigChart;\n}(Backbone.View));\nexports.BigChart = BigChart;\n","\"use strict\";\n// TODO: THIS FILE MIGHT ACTUALLY BE UNUSED\n/*\n * decaffeinate suggestions:\n * DS101: Remove unnecessary use of Array.from\n * DS102: Remove unnecessary code created because of implicit returns\n * DS207: Consider shorter variations of null checks\n * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Charts = void 0;\nvar grouping_1 = require(\"./grouping\");\nvar jquery_1 = __importDefault(require(\"jquery\"));\nvar underscore_1 = __importDefault(require(\"underscore\"));\nvar adaptiveCharts_1 = require(\"./adaptiveCharts\");\nvar util_1 = require(\"./utils/util\");\nvar howImportantXscales = [\n 'Inte alls viktigt',\n 'Inte särskilt viktigt',\n 'Viss betydelse',\n 'Viktigt',\n 'Mycket viktigt',\n 'Helt avgörande',\n 'Vet ej'\n];\nexports.Charts = {\n additionalParameters: {\n _importanceCharts: {\n kind: 'InDepthSurveyQuestions',\n percentage: true,\n xscale: howImportantXscales,\n year: 2012\n },\n amount_of_business: {\n xscale: [\n 'Ingen anställd',\n 'Minst en anställd',\n 'Totalt antal företag',\n ]\n },\n amount_of_business_absolute: {\n xscale: [\n 'Ingen anställd',\n 'Minst en anställd',\n 'Totalt antal företag',\n ],\n kind: 'InDepthSurveyQuestions',\n year: 2018,\n datadesc: [{ legend: 'Totalt antal företag' }]\n },\n business_climate_change_5_years: {\n kind: 'SurveySimpleBarchart',\n year: 2018,\n title: 'Hur har företagsklimatet förändrats de senaste 5 åren?'\n },\n municipality_runs_competing_businesses: {\n kind: 'SurveySimpleBarchart',\n year: 2018,\n title: 'Bedriver din kommun verksamhet som ditt företag skulle vilja utföra?'\n },\n survey_contact_understanding: {\n kind: 'SurveySimpleBarchart',\n },\n survey_contact_clearfee: {\n kind: 'SurveySimpleBarchart',\n },\n survey_contact_handling: {\n kind: 'SurveySimpleBarchart',\n },\n survey_contact_reachable: {\n kind: 'SurveySimpleBarchart',\n },\n survey_contact_digitized: {\n kind: 'SurveySimpleBarchart',\n },\n contracting: {\n dontPassXscale: true\n },\n entrepreneurship: {\n xscale: [\n 'Andel företagsamma individer',\n 'Företagsamma unga',\n 'Företagsamma kvinnor'\n ]\n },\n young_entrepreneurs: {\n kind: 'InDepthSurveyQuestions',\n year: 2018,\n dontPassXscale: true,\n excludeSweden: true\n },\n global_trade_per_capita: {\n dontPassXscale: true\n },\n jobs_per_business: {\n kind: 'InDepthSurveyQuestions',\n dontPassXscale: true,\n percentage: false,\n year: 2016\n },\n largest_employers: {\n kind: 'LargestEmployers',\n excludeAverage: true,\n passMuniInsteadOfKommun: true,\n year: 2018,\n datadesc: [{ legend: 'Procentuell andel av totalt antal anställda i kommunen' }]\n },\n largest_private_employers: {\n kind: 'LargestEmployers',\n excludeAverage: true,\n passMuniInsteadOfKommun: true,\n year: 2018,\n datadesc: [{ legend: 'Procentuell andel av totalt antal anställda i kommunen' }]\n },\n most_prioritized_actions: {\n kind: 'SurveySimpleBarchart',\n title: 'Vilka åtgärder bör kommunen prioritera?'\n },\n knowledge_of_muni_work: {\n kind: 'SurveySimpleBarchart',\n year: 2016,\n factor: 'Känner du att du har kunskap om hur kommunen arbetar för att förbättra företagsklimatet?',\n title: 'Kunskap om kommunens arbete'\n },\n muni_contact_latest_year: {\n kind: 'InDepthSurveyQuestions',\n dontPassXscale: true,\n percentage: true,\n },\n muni_contact_latest_year_about: {\n kind: 'InDepthSurveyQuestions',\n dontPassXscale: true,\n percentage: true,\n },\n muni_contact_hesitate: {\n kind: 'InDepthSurveyQuestions',\n dontPassXscale: true,\n percentage: true,\n },\n company_education_contact: {\n kind: 'InDepthSurveyQuestions',\n dontPassXscale: true,\n percentage: true,\n year: 2023,\n },\n advice_on_permission: {\n kind: 'SurveySimpleBarchart',\n dontPassXscale: true,\n percentage: true,\n year: 2018,\n title: 'Vägledning vid tillståndsgivning, tillsyn eller kontroll?'\n },\n net_costs: {\n kind: 'InDepthSurveyQuestions',\n dontPassXscale: true,\n year: 2017,\n percentage: false,\n datadesc: [{ legend: 'kr' }]\n },\n crime_change_2years: {\n kind: 'SurveySimpleBarchart',\n dontPassXscale: true,\n percentage: true,\n year: 2017,\n title: 'Hur har brottsligheten mot företag förändrats i din kommun de senaste två åren?'\n },\n crime_a_problem: {\n kind: 'SurveySimpleBarchart',\n dontPassXscale: true,\n percentage: true,\n year: 2017,\n title: 'Är brottsligheten ett problem för företagen?'\n },\n crime_risk_kind: {\n kind: 'SurveySimpleBarchart',\n dontPassXscale: true,\n percentage: true,\n year: 2017,\n title: 'Vilka brottstyper bedömer du att det är hög risk att drabbas av?'\n },\n company_relocate: {\n kind: 'SurveySimpleBarchart',\n dontPassXscale: true,\n percentage: true,\n year: 2024,\n title: 'Har du övervägt att flytta företaget?'\n },\n net_population_change: {\n excludeAverage: true,\n excludeType: true,\n disallowDecimals: true,\n xscale: [\"Ålder 15-24\", \"Ålder 25-34\"],\n zeroCenter: true\n },\n new_entrepreneurship: {\n xscale: [\n 'Antal nyföretagsamma individer',\n 'Nyföretagsamma unga',\n 'Nyföretagsamma kvinnor'\n ]\n },\n retirees: {\n year: [2010, 2022],\n xscale: [\"Kvot 65+/19-64\", \"Kvot 80+/19-64\"]\n },\n type_of_business: {\n kind: 'InDepthSurveyQuestions',\n dontPassXscale: true,\n percentage: true,\n },\n unemployment: {\n dontPassXscale: true\n }\n },\n chartHeight: {\n DEFAULT: 600,\n largest_private_employers: 1.33,\n jobs_per_business: 1.33,\n largest_employers: 1.33\n },\n importanceCharts: [\n 'how_important_for_company_relevant_highshool_programs',\n 'how_important_for_company_company_trainee_positions',\n 'how_important_for_company_relevant_skilled_workers_programs',\n 'how_important_for_company_relevant_higher_education',\n 'how_important_for_company_targeted_adult_education',\n 'how_important_for_company_summer_jobs',\n 'how_important_for_company_work_experience',\n 'how_important_for_muni_housing',\n 'how_important_for_muni_entrepreneurial_climate',\n 'how_important_for_muni_more_companies',\n 'how_important_for_muni_pop_moving_in',\n 'how_important_for_muni_youth_staying',\n 'how_important_for_muni_quality_education',\n 'how_important_for_muni_competent_workers',\n 'how_important_for_muni_diverse_entrepreneurial_climate'\n ],\n inDepthTooltipFormatter: function () {\n // @ts-ignore - highcharts missing, will be removed\n return Math.round(this.y * 100.0) / 100.0 + \"% (\" + this.series.name + \": \" + this.x + \")\";\n },\n apiParams: function (municipalities, factor, type, subseries, options) {\n var _a, _b;\n if (options === void 0) { options = {}; }\n municipalities = (options === null || options === void 0 ? void 0 : options.excludeSweden) ? municipalities : underscore_1.default.flatten(['Sverige'].concat(municipalities));\n municipalities = underscore_1.default.uniq(municipalities);\n var query = {\n kommun: municipalities,\n factor: window.factorAPINames[factor],\n type: type,\n xscale: subseries,\n };\n options = {};\n var kind = 'MunicipalityFactorValues';\n var additional = undefined;\n // @ts-ignore\n if (this.additionalParameters[factor]) {\n // @ts-ignore\n additional = this.additionalParameters[factor];\n }\n else if (underscore_1.default(this.importanceCharts).includes(factor)) {\n additional = this.additionalParameters['_importanceCharts'];\n }\n if (additional) {\n if (additional.factor) {\n query.factor = additional.factor;\n }\n if (additional.excludeType) {\n delete query.type;\n }\n if (!!(window === null || window === void 0 ? void 0 : window.fromSwedenStatisticsPage)) {\n if (additional.excludeAverage) {\n query.kommun = (_a = query.kommun) === null || _a === void 0 ? void 0 : _a.slice(1);\n }\n }\n if (additional.xscale) {\n query.xscale = additional.xscale;\n }\n if (additional.dontPassXscale) {\n delete query.xscale;\n }\n if (additional.year) {\n query.year = additional.year;\n }\n if (!!additional.percentage) {\n query.percentage = additional.percentage;\n }\n if (additional.passMuniInsteadOfKommun) {\n query.muni = query.kommun;\n delete query.kommun;\n }\n if (additional.excludeSweden) {\n var counties = underscore_1.default.chain(municipalities)\n .map(function (muni) { return grouping_1.Grouping.countyFor(muni); })\n .filter(function (c) { return !!c; })\n .map(function (c) { return c === null || c === void 0 ? void 0 : c.name; })\n .value();\n query.kommun = underscore_1.default.flatten(['Sverige'].concat(counties).concat(municipalities));\n query.kommun = underscore_1.default.uniq(query.kommun);\n }\n if (additional.disallowDecimals) {\n options.xAxis = { allowDecimals: false };\n }\n if (additional.title) {\n options.title = additional.title;\n }\n if (additional.datadesc) {\n options.datadesc = additional.datadesc;\n }\n if (additional.tickInterval) {\n if (!options.xAxis) {\n options.xAxis = {};\n }\n options.xAxis.tickInterval = additional.tickInterval;\n }\n if (additional.zeroCenter) {\n if (!options.yAxis) {\n options.yAxis = {};\n }\n options.yAxis.zeroCenter = additional.zeroCenter;\n }\n if (additional.yAxisText) {\n if (!options.yAxis) {\n options.yAxis = {};\n }\n options.yAxis = {\n title: {\n text: additional.yAxisText\n }\n };\n }\n kind = (_b = additional.kind) !== null && _b !== void 0 ? _b : kind;\n if (additional.kind === this.additionalParameters.largest_employers.kind && ((query === null || query === void 0 ? void 0 : query.muni) || []).length > 1) {\n // if multiple munis, assume we don't want to see 'Sverige'\n query.muni = underscore_1.default.filter((query === null || query === void 0 ? void 0 : query.muni) || [], function (k) { return k !== 'Sverige'; });\n }\n }\n return [kind, query, options];\n },\n drawBigChart: function (targetId, municipalities, factor, type, subseries, optionsParam) {\n subseries = util_1.toStringArray(subseries);\n var _a = this.apiParams(municipalities, factor, type, subseries, optionsParam), kind = _a[0], query = _a[1], options = _a[2];\n var chartContainer = jquery_1.default(\"#\" + targetId);\n var adaptive = {\n container: chartContainer,\n height: chartContainer.data('height') || this.chartHeight.DEFAULT,\n // @ts-ignore - I guess we'll have to draw a line somewhere...\n factor: this.chartHeight[factor]\n };\n options.animate = true;\n options.theme = 'fklimat-big';\n options = jquery_1.default.extend(true, options, optionsParam);\n var callback = (function () { });\n // @ts-ignore - Some really ugly piggy backing stuff going on here. Just suppressing it for now.\n callback.showlegend = true;\n if ((kind === 'InDepthSurveyQuestions') && query.percentage) {\n // @ts-ignore - Some really ugly piggy backing stuff going on here. Just suppressing it for now.\n callback.tooltipformatter = this.inDepthTooltipFormatter;\n }\n return adaptiveCharts_1.Fklimat.renderTo(targetId, kind, query, callback, options, adaptive);\n }\n};\njquery_1.default(function () {\n if (!window.Artilect) {\n return;\n }\n return Artilect.themes.mobile = {\n highcharts: {\n colors: ['#aeaeae', '#57758d',\n '#058DC7', '#50B432', '#ED561B', '#DDDF00', '#24CBE5', '#64E572',\n '#FF9655', '#FFF263', '#6AF9C4'],\n chart: {\n backgroundColor: 'white',\n spacingLeft: 0\n },\n exporting: {\n enabled: false\n },\n tooltip: {\n enabled: false\n },\n plotOptions: {\n line: {\n lineWidth: 5,\n marker: {\n radius: 8,\n symbol: 'circle'\n },\n states: {\n hover: {\n lineWidth: 7\n }\n }\n }\n },\n xAxis: {\n lineColor: '#cccccc',\n tickColor: '#cccccc',\n tickInterval: 2,\n tickPosition: 'inside',\n labels: {\n overflow: 'justify',\n style: {\n color: '#9a9a9a'\n }\n }\n },\n yAxis: {\n gridLineColor: '#cccccc',\n style: {\n marginRight: '5px'\n }\n },\n title: {\n align: 'left',\n margin: 30,\n y: 15,\n style: {\n color: '#000',\n font: 'bold 16px \"Neo Sans\", Verdana, sans-serif',\n lineHeight: '20px'\n }\n },\n subtitle: {\n enabled: 'false',\n text: '',\n style: {\n display: 'none'\n }\n },\n legend: {\n align: 'center',\n backgroundColor: '#ededed',\n borderRadius: 1,\n padding: 13,\n borderWidth: 0,\n margin: 20,\n itemMarginTop: 0,\n itemDistance: 19,\n lineHeight: 14,\n itemStyle: {\n font: '14px \"Neo Sans\"',\n lineHeight: '16px',\n textTransform: 'uppercase',\n color: '#57758d'\n },\n itemHoverStyle: {\n color: '#33414e'\n }\n }\n }\n };\n});\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ComparePanel = void 0;\n/*\n * decaffeinate suggestions:\n * DS101: Remove unnecessary use of Array.from\n * DS102: Remove unnecessary code created because of implicit returns\n * DS205: Consider reworking code to avoid use of IIFEs\n * DS206: Consider reworking classes to avoid initClass\n * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md\n */\nvar grouping_1 = require(\"../../grouping\");\nvar underscore_1 = __importDefault(require(\"underscore\"));\nvar Backbone = __importStar(require(\"backbone\"));\nvar util_1 = require(\"../../utils/util\");\n// @ts-ignore - just remove?\nvar ComparePanel = /** @class */ (function (_super) {\n __extends(ComparePanel, _super);\n function ComparePanel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ComparePanel.prototype.events = function () {\n return {\n 'change select': 'updateComparison',\n 'click .js-clear-selection': 'clearComparison',\n 'change .js-comparison-group': 'onGroupSelection'\n };\n };\n ComparePanel.prototype.initialize = function (options) {\n console.log(options);\n // @ts-ignore\n this.municipality = options.municipality;\n this.model.bind('change:municipalities', this.redrawSelectedOptions, this);\n };\n ComparePanel.prototype.updateComparison = function () {\n var selected = util_1.toStringArray($('form.compare_munis select').val());\n return this.updateSelectedMunicipalities(selected);\n };\n ComparePanel.prototype.clearComparison = function () {\n this.updateSelectedMunicipalities([]);\n return this.redrawSelectedOptions();\n };\n ComparePanel.prototype.onGroupSelection = function (e) {\n var _this = this;\n var grouping = e.target.value.split('.')[0];\n if (!this.municipality) {\n console.log(\"Unknown municipality: \" + this.municipality);\n return;\n }\n var visible = (function () {\n switch (grouping) {\n case 'all': return underscore_1.default.flatten(underscore_1.default.values(grouping_1.Grouping.groups.comparable));\n case 'comparable': return grouping_1.Grouping.forMunicipality(_this.municipality, 'comparable');\n case 'county': return grouping_1.Grouping.forMunicipality(_this.municipality, 'county');\n default: throw new Error(\"Unknown grouping: \" + grouping);\n }\n })();\n visible = underscore_1.default.reject(visible, function (name) { return name === _this.municipality; });\n visible.sort();\n var select = this.$el.find('select');\n select.find('option').remove();\n for (var _i = 0, visible_1 = visible; _i < visible_1.length; _i++) {\n var municipality = visible_1[_i];\n select.append($('