{"version":3,"sources":["components/common/DownloadFile.js","components/figures/charts/Chart.js","assets/hkdirLogo.svg","assets/hkdirWhiteLogo.svg","assets/download.svg","assets/open.svg","components/Table/header/rows/cells/TableHeaderVariationCell.js","components/Table/header/rows/cells/TableHeaderCell.js","components/Table/header/rows/TableHeaderRow.js","components/Table/header/TableHeader.js","components/Table/body/sections/rows/cells/TableCell.js","components/Table/body/sections/rows/TableRow.js","components/Table/body/sections/TableSection.js","fonts/MaisonNeue-Book.otf","fonts/MaisonNeue-Demi.otf","components/pages/NotFoundPage.js","components/common/ReportMetadata.js","components/layout/TopHeader.js","components/layout/BottomFooter.js","components/common/CustomAlert.js","components/layout/Layout.js","components/pages/Root.js","common/useWindowSize.js","components/pages/StaticTable.js","components/pages/StaticFigure.js","common/GoogleAnalytics.js","App.js","store/reducers/figure.js","store/reducers/table.js","store/reducers/navigation.js","store/reducers/errors.js","store/reducers/index.js","index.js","store/actions/table.js","api/axios_graphql.js","store/actions/navigation.js","api/axios_rest.js","components/common/OpenFile.js","common/language.js","components/common/Relations.js","components/common/Description.js","store/actions/figure.js","components/Table/body/SummaryRow.js","components/common/Spinner.js"],"names":["connect","state","file","table","downloadTable","props","useEffect","uri","window","URL","createObjectURL","navigator","msSaveBlob","data","label","link","document","createElement","download","href","body","appendChild","click","removeChild","onClick","ReactGA","event","category","shortName","year","action","className","src","alt","Exporting","Highcharts","setOptions","colors","lang","decimalPoint","thousandsSep","numericSymbolMagnitude","xAxis","labels","autoRotation","yAxis","reversedStacks","Chart","iframe","navigation","buttonOptions","enabled","highcharts","options","figure","immutable","module","exports","TableHeaderVariationCell","useState","cell","text","currentVariation","setVariation","style","width","colSpan","scope","rowSpan","Form","Group","controlId","Control","as","value","onChange","e","parsedJson","JSON","parse","target","handleVariationChange","variations","map","item","index","key","stringify","name","url","TableHeaderCell","TableHeaderRow","children","TableHeader","firstRow","secondRow","thirdRow","headerItems","cells","first","firstindex","subCells","length","second","TableCell","TableRow","row","TableSection","rows","section","summary","Fragment","SummaryRow","NotFoundPage","to","contents","collection","reportDesc","description","dangerouslySetInnerHTML","__html","currentTitle","current_title","content","logo","rel","type","BottomFooter","title","errors","api_error","show","setShow","error","setError","Alert","variant","onClose","dismissible","Heading","Home","lazy","TableOfContents","Layout","fallback","Spinner","path","exact","component","Root","useWindowSize","undefined","height","windowSize","setWindowSize","handleResize","innerWidth","innerHeight","addEventListener","removeEventListener","tableData","fetchTable","tableSections","mainSummaryRow","params","match","containerRef","useRef","useLayoutEffect","parent","message","messageType","current","clientHeight","origin","location","toString","postMessage","header","sections","urlParams","URLSearchParams","search","scale","get","fromArticle","has","stuffAboveTable","pathname","OpenFile","DownloadFile","stuffBelowTable","zoom","Description","Relations","relations","relationships","language","source","tableDiv","ref","striped","bordered","hover","selectedVariation","variation","fetchFigure","openInNewTab","stuffAboveFigure","stuffBelowFigure","figures","GoogleAnalytics","this","logPageChange","prevLocation","isDifferentPathname","isDifferentSearch","page","set","pageview","Component","RouteTracker","init","isGAEnabled","process","initialize","App","GA","StaticTable","StaticFigure","initialState","figureReducer","figureAction","tableReducer","tableAction","attachments","collections","navigationReducer","navigationActions","combineReducers","store","createStore","reducer","applyMiddleware","thunk","ReactDOM","render","getElementById","FETCH_TABLE","generateUrl","dispatch","axios","then","response","saveTable","catch","catchError","Error","DOWNLOAD_TABLE","headers","Accept","responseType","downloadFile","Blob","graphApi","create","baseURL","FETCH_COLLECTION_ATTACHMENTS","fetchAllAttachments","id","query","graph_axios","saveAllAttachments","FETCH_COLLECTIONS","fetchCollections","selectedYear","Number","saveAllCollections","SEARCH_COLLECTIONS","searchCollections","filterString","saveAllContent","FETCH_COLLECTION_CONTENT","fetchCollectionContent","saveAllCollectionContent","CURRENT_TITLE","addTitle","dikuApi","open","word","bokmal","nynorsk","split","correctPath","relation","getType","attachmentType","FETCH_FIGURE","saveFigure"],"mappings":"kGAAA,6DAmDeA,iBANS,SAAAC,GACtB,MAAO,CACLC,KAAMD,EAAME,MAAMD,QAIkB,CAAEE,mBAA3BJ,EA5Ca,SAAAK,GAAU,IAC5BD,EAAwBC,EAAxBD,cAAeF,EAASG,EAATH,KAEvBI,qBAAU,WACR,GAAIJ,EAAM,CACR,IAAMK,EAAMC,OAAOC,IAAIC,gBAAgBR,GACvC,GAAIS,UAAUC,WACZ,OAAOD,UAAUC,WAAWV,EAArB,UAA8BG,EAAMQ,KAAKC,MAAzC,UAEP,IAAMC,EAAOC,SAASC,cAAc,KACpCF,EAAKG,SAAL,UAAmBb,EAAMQ,KAAKC,MAA9B,SACAC,EAAKI,KAAOZ,EAEZS,SAASI,KAAKC,YAAYN,GAC1BA,EAAKO,QAGLN,SAASI,KAAKG,YAAYR,MAG7B,CAACb,EAAMG,EAAMQ,KAAKC,QAWrB,OACE,4BAAQU,QAAS,kBATjBC,IAAQC,MAAM,CACZC,SAAUtB,EAAMQ,KAAKe,UAAY,IAAMvB,EAAMQ,KAAKgB,KAClDC,OAAQ,oBACRhB,MAAOT,EAAMQ,KAAKC,aAEpBV,EAAcC,EAAMQ,OAIgBkB,UAAU,mBAC5C,yBAAKC,IAAKd,IAAUe,IAAI,aAD1B,+B,iCCvCJ,sEAMAC,GAAUC,KACVA,IAAWC,WAAW,CACpBC,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEFC,KAAM,CACJC,aAAc,IACdC,aAAc,IACdC,uBAAwB,KAE1BC,MAAO,CACLC,OAAQ,CACNC,aAAc,EAAE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAG5DC,MAAO,CACLC,gBAAgB,KAeLC,IAVD,SAAA1C,GAKZ,OAJqB,IAAjBA,EAAM2C,QACRb,IAAWC,WAAW,CACpBa,WAAY,CAAEC,cAAe,CAAEC,SAAS,MAG1C,kBAAC,IAAD,CAAiBC,WAAYjB,IAAYkB,QAAShD,EAAMiD,OAAQC,WAAS,M,oBC3C7EC,EAAOC,QAAU,IAA0B,uC,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,sC,oBCA3CD,EAAOC,QAAU,IAA0B,kC,6ECwC5BC,EApCkB,SAAArD,GAAU,IAAD,EACCsD,mBAAStD,EAAMuD,KAAKA,KAAKC,MAD1B,mBACjCC,EADiC,KACfC,EADe,KAExC,OACE,wBACEC,MAAO,CAAEC,MAAM,GAAD,OAAK5D,EAAMuD,KAAKM,QAAU,EAAI,OAAS,QACrDC,MAAO9D,EAAMuD,KAAKO,MAClBC,QAAS/D,EAAMuD,KAAKQ,QACpBF,QAAS7D,EAAMuD,KAAKM,SAEpB,kBAACG,EAAA,EAAKC,MAAN,CAAYC,UAAU,oBACpB,kBAACF,EAAA,EAAKG,QAAN,CACEC,GAAG,SACHC,MAAOZ,EACPa,SAAU,SAAAC,GACR,IAAIC,EAAaC,KAAKC,MAAMH,EAAEI,OAAON,OACrCX,EAAac,EAAU,MACvBxE,EAAM4E,sBAAsBJ,EAAU,OAGxC,gCAASf,GACRzD,EAAMuD,KAAKA,KAAKsB,WAAWC,KAAI,SAACC,EAAMC,GACrC,OACE,4BACEC,IAAKD,EACLX,MAAOI,KAAKS,UAAU,CAAEC,KAAMJ,EAAKI,KAAMC,IAAKL,EAAKK,OAElDL,EAAKI,aCPPE,EAnBS,SAAArF,GAItB,OAAIA,EAAMuD,MAAQvD,EAAMuD,KAAKsB,WAEzB,kBAAC,EAAD,CACED,sBANwB,SAAAvD,GAC5BrB,EAAM4E,sBAAsBvD,IAMxBkC,KAAMvD,IAKR,wBAAI8D,MAAO9D,EAAM8D,MAAOC,QAAS/D,EAAM+D,QAASF,QAAS7D,EAAM6D,SAC5D7D,EAAMuD,MAAQvD,EAAMuD,KAAKC,OCZnB8B,EAHQ,SAAAtF,GACrB,OAAO,4BAAKA,EAAMuF,WC8ELC,UA7EK,SAAAxF,GAClB,IAAIyF,EACAC,EACAC,EACA9B,EAAU,GACVE,EAAU,GAERa,EAAwB,SAAAvD,GAC5BrB,EAAM4E,sBAAsBvD,IA4D9B,OA1DIrB,EAAM4F,cACRD,EAAW3F,EAAM4F,YAAYC,MAAMf,KAAI,SAACgB,EAAOC,GAE7C,OADAhC,EAAQ,GAAK,EACT+B,EAAME,UAAYF,EAAME,SAASC,OAAS,GAC5ClC,EAAQ,GAAK,EACbF,EAAQkC,GAAcD,EAAME,SAASC,OAC9BH,EAAME,SAASlB,KAAI,SAAAoB,GACxB,OAAIA,EAAOF,UAAYE,EAAOF,SAASC,OAAS,GAC9ClC,EAAQ,GAAK,EACbF,EAAQkC,GACNG,EAAOF,SAASC,OAASH,EAAME,SAASC,OACnCC,EAAOF,SAASlB,KAAI,SAACvB,EAAMyB,GAChC,OAAO,kBAAC,EAAD,CAAiBC,IAAKD,EAAOzB,KAAMA,EAAMO,MAAM,YAGnD,SAGJ,QAGT4B,EAAY1F,EAAM4F,YAAYC,MAAMf,KAAI,SAAAtE,GACtC,OAAIA,EAAKwF,UAAYxF,EAAKwF,SAASC,OAAS,EACnCzF,EAAKwF,SAASlB,KAAI,SAACvB,EAAMyB,GAC9B,OAAOzB,EAAKyC,SACV,kBAAC,EAAD,CACEf,IAAKD,EACLzB,KAAMA,EACNM,QAASN,EAAKyC,SAASC,OACvBnC,MAAM,aAGR,kBAAC,EAAD,CAAiBmB,IAAKD,EAAOzB,KAAMA,EAAMO,MAAM,WAI9C,QAGT2B,EAAWzF,EAAM4F,YAAYC,MAAMf,KAAI,SAACvB,EAAMyB,GAC5C,OAAOzB,EAAKyC,SACV,kBAAC,EAAD,CACEf,IAAKD,EACLzB,KAAMA,EACNM,QAASA,EAAQmB,GACjBlB,MAAM,WACNc,sBAAuBA,IAGzB,kBAAC,EAAD,CACEA,sBAAuBA,EACvBK,IAAKD,EACLzB,KAAMA,EACNQ,QAASA,EAAQkC,aAMvB,+BACE,kBAAC,EAAD,KAAiBR,GACjB,kBAAC,EAAD,KAAiBC,GACjB,kBAAC,EAAD,KAAiBC,M,oEC1DRQ,EAjBG,SAAAnG,GAChB,IAAIuD,EAaJ,OAZIvD,EAAM6F,QACRtC,EAAOvD,EAAM6F,MAAMf,KAAI,SAACvB,EAAMyB,GAC5B,OAAiB,IAAVA,EACL,wBAAIC,IAAKD,EAAOtD,UAAU,aACvB6B,EAAKC,MAGR,wBAAIyB,IAAKD,GAAQzB,EAAKC,UAKrBD,GCHM6C,EATE,SAAApG,GACf,OACE,4BACGA,EAAMuF,SACP,kBAAC,EAAD,CAAWM,MAAO7F,EAAMqG,KAAOrG,EAAMqG,IAAIR,UC0BhCS,UA7BM,SAAAtG,GACnB,IAAIuG,EAoBJ,OAnBIvG,EAAMwG,UACRD,EAAOvG,EAAMwG,QAAQD,KAAKzB,KAAI,SAACuB,EAAKrB,GAClC,OAAOhF,EAAMwG,QAAQrB,MAAkB,IAAVH,EAC3B,kBAAC,EAAD,CAAUC,IAAKD,EAAOqB,IAAKA,GACzB,wBACEvC,MAAM,MACNC,QACE/D,EAAMwG,QAAQD,KAAKN,QAAUjG,EAAMwG,QAAQC,QAAU,EAAI,IAG1DzG,EAAMwG,QAAQrB,OAInB,kBAAC,EAAD,CAAUF,IAAKD,EAAOqB,IAAKA,QAM/B,kBAAC,IAAMK,SAAP,KACGH,EACD,kBAACI,EAAA,QAAD,CAAYnG,KAAMR,EAAMwG,SAAWxG,EAAMwG,QAAQC,a,gQC7BvDtD,EAAOC,QAAU,IAA0B,6C,oBCA3CD,EAAOC,QAAU,IAA0B,6C,4ICgB5BwD,EAbM,WACnB,OACE,kBAAC,IAAMF,SAAP,KACE,yCACA,+EACA,2BACE,6BACA,kBAAC,IAAD,CAAMG,GAAG,KAAT,kB,kCCoBOlH,eANS,SAAAC,GACtB,MAAO,CACLkH,SAAUlH,EAAMgD,WAAWmE,cAIhBpH,EA3BQ,SAAAK,GACrB,IAAIgH,EAIJ,OAHIhH,EAAM8G,UAAY9G,EAAM8G,SAASG,cACnCD,EAAahH,EAAM8G,SAASG,aAG5B,kBAAC,IAAMP,SAAP,KACGM,GAAcA,EAAWf,OAAS,EAC/Be,EAAWlC,KAAI,SAACC,EAAMC,GAAP,OACb,uBACEC,IAAKD,EACLkC,wBAAyB,CACvBC,OAAQpC,QAId,SCyBKpF,eAPS,SAAAC,GACtB,MAAO,CACLwH,aAAcxH,EAAMgD,WAAWyE,cAC/BC,QAAS1H,EAAMgD,WAAWmE,cAIfpH,EAtCU,SAAAK,GACvB,OACE,4BAAQ0B,UAAU,mCAChB,yBAAKC,IAAK4F,IAAM7F,UAAU,YAAYE,IAAI,gBACzC5B,EAAMsH,SAAWtH,EAAMsH,QAAQ5G,MAAQV,EAAMsH,QAAQ5G,KAAKI,MACzD,yBAAKY,UAAU,+BAAf,cAEE,uBACEZ,KACEd,EAAMsH,SAAWtH,EAAMsH,QAAQ5G,MAAQV,EAAMsH,QAAQ5G,KAAKI,KAE5D6D,OAAO,SACP6C,IAAI,uBAEJ,0BAAM9F,UAAU,oBACb1B,EAAMsH,SAAWtH,EAAMsH,QAAQ5G,MAAQV,EAAMsH,QAAQ5G,KAAK8C,QAKnE,0BAAM9B,UAAU,oBACb1B,EAAMsH,SAAWtH,EAAMsH,QAAQG,MAElC,wBAAI/F,UAAU,mBAAmB1B,EAAMoH,cACvC,yBAAK1F,UAAU,YACb,kBAAC,EAAD,W,kBCKOgG,G,OAhCa,WAC1B,OACE,4BAAQhG,UAAU,cAChB,yBAAKA,UAAU,8BACb,yBAAKC,IAAK4F,IAAM7F,UAAU,YAAYE,IAAI,gBAC1C,yBAAKF,UAAU,cACb,gFAEE,6BAFF,6BAIE,6BAJF,OAME,uBAAGZ,KAAK,eAAe6G,MAAM,IAA7B,eAGA,6BATF,UAWE,uBAAG7G,KAAK,uBAAuB6G,MAAM,IAArC,kBAIF,uBAAGjG,UAAU,WACX,uBAAGZ,KAAK,yCAAR,gC,gBCcGnB,eANS,SAAAC,GACtB,MAAO,CACLgI,OAAQhI,EAAMgI,OAAOC,aAIVlI,EApCK,SAAAK,GAAU,IAAD,EACHsD,oBAAS,GADN,mBACpBwE,EADoB,KACdC,EADc,OAEDzE,mBAAS,IAFR,mBAEpB0E,EAFoB,KAEbC,EAFa,KAGnBL,EAAW5H,EAAX4H,OAWR,OAVA3H,qBAAU,WACJ2H,EAAO3B,OAAS,GAClBgC,EAASL,GACTG,GAAQ,KAERE,EAAS,IACTF,GAAQ,MAET,CAACH,IAEAE,EAEA,kBAACI,EAAA,EAAD,CACExG,UAAU,YACVyG,QAAQ,SACRC,QAAS,kBAAML,GAAQ,IACvBM,aAAW,GAEX,kBAACH,EAAA,EAAMI,QAAP,wBACA,+BAAKN,EAAL,MAIC,QCvBHO,EAAOC,gBAAK,kBAAM,uDAClBC,EAAkBD,gBAAK,kBAAM,iCAqBpBE,EAnBO,WACpB,OACE,kBAAC,IAAMhC,SAAP,KACE,kBAAC,EAAD,MACA,yBAAKhF,UAAU,OACb,kBAAC,EAAD,MACA,kBAAC,WAAD,CAAUiH,SAAU,kBAACC,EAAA,EAAD,OAClB,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAOC,KAAK,oBAAoBC,OAAK,EAACC,UAAWN,IACjD,kBAAC,IAAD,CAAOI,KAAK,aAAaC,OAAK,EAACC,UAAWR,IAC1C,kBAAC,IAAD,CAAOM,KAAK,IAAIE,UAAWnC,MAG/B,kBAAC,EAAD,SCpBOoC,EAFF,kBAAM,kBAAC,IAAMtC,SAAP,O,6FCCJ,SAASuC,IAAgB,MAGF3F,mBAAS,CAC3CM,WAAOsF,EACPC,YAAQD,IAL4B,mBAG/BE,EAH+B,KAGnBC,EAHmB,KA4BtC,OApBApJ,qBAAU,WAER,SAASqJ,IAEPD,EAAc,CACZzF,MAAOzD,OAAOoJ,WACdJ,OAAQhJ,OAAOqJ,cAWnB,OANArJ,OAAOsJ,iBAAiB,SAAUH,GAGlCA,IAGO,kBAAMnJ,OAAOuJ,oBAAoB,SAAUJ,MACjD,IAEIF,ECfF,IAwIQzJ,eANS,SAAAC,GACtB,MAAO,CACL+J,UAAW/J,EAAME,MAAMA,SAIa,CAAE8J,gBAA3BjK,EAxIY,SAAAK,GACzB,IAAI4F,EACAiE,EACAC,EAGFF,EAEE5J,EAFF4J,WACSG,EACP/J,EADFgK,MAASD,OAGX9J,qBAAU,WACR2J,EAAWG,KACV,CAACH,EAAYG,IAEhB,IAAMX,EAAaH,IACbgB,EAAeC,iBAAO,MAC5BC,2BAAgB,WACd,GAAIhK,OAAOiK,SAAWjK,OAAtB,CAEA,IAAIkK,EAAU,CACZC,YAAa,gBACbjG,MAAO4F,EAAaM,QAAQC,aAC5BC,OAAQtK,OAAOuK,SAASC,YAI1BxK,OAAOiK,OAAOQ,YAAYP,EAAS,QAClC,CAACjB,EAAYpJ,EAAM2J,YAOlB3J,EAAM2J,UAAU7J,QAClB8F,EAAc5F,EAAM2J,UAAU7J,MAAM+K,OACpChB,EAAgB7J,EAAM2J,UAAU7J,MAAMgL,SAAShG,KAAI,SAACT,EAAOW,GACzD,OAAO,kBAACsB,EAAA,QAAD,CAAcrB,IAAKD,EAAOwB,QAASnC,OAE5CyF,EAAiB9J,EAAM2J,UAAU7J,MAAM2G,SAGzC,IAAMsE,EAAY,IAAIC,gBAAgBhL,EAAM0K,SAASO,QAC/CC,EAAQH,EAAUI,IAAI,QACtBC,EACJL,EAAUM,IAAI,YAA2C,aAA7BN,EAAUI,IAAI,WAEtCxI,EAAqC,SAA5BoI,EAAUI,IAAI,UAEvBG,EACJ,yBAAK5J,UAAU,QACX0J,GACA,wBAAI1J,UAAU,0BACX1B,EAAM2J,UAAUlJ,MADnB,IAC2BT,EAAM2J,UAAUxE,MAG7C,uBACEzD,UAAU,OACVZ,KAAMd,EAAM0K,SAASa,SACrB5G,OAAO,SACP6C,IAAI,uBAEJ,kBAACgE,EAAA,EAAD,MANF,6BAQA,kBAACC,EAAA,EAAD,CAAcjL,KAAMuJ,KAIlB2B,EACJ,qCACIN,GACA,yBACE1J,UAAU,qCACViC,MAAO,CAAEgI,KAAMT,EAAQ,MAEvB,kBAACU,EAAA,QAAD,CAAa3E,YAAajH,EAAM2J,UAAU1C,cAC1C,kBAAC4E,EAAA,QAAD,CAAWC,UAAW9L,EAAM2J,UAAUoC,gBACtC,8BACGC,YAAShM,EAAM2J,UAAUqC,SAAU,UADtC,IACkD,IAC/ChM,EAAM2J,UAAUsC,UAOrBC,EACJ,yBAAKC,IAAKlC,EAAcvI,UAAU,sBAC9BiB,GAAU2I,EACZ,kBAAC,IAAD,CACEc,SAAO,EACPC,UAAQ,EACRC,OAAK,EACL5K,UAAU,cACViC,MAAO,CAAEgI,KAAMT,EAAQ,MAEvB,kBAAC1F,EAAA,QAAD,CACEZ,sBApEsB,SAAA2H,GAC5BxC,EAAOyC,UAAYD,EACnB3C,EAAWG,IAmELnE,YAAaA,IAEf,+BACGiE,EACAC,GACCA,EAAevD,KAAKzB,KAAI,SAACuB,EAAKrB,GAC5B,OACE,kBAAC2B,EAAA,QAAD,CACE1B,IAAKD,EACLxE,KAAM6F,EACNlB,KACE2E,EAAe3E,MAAkB,IAAVH,EACnB8E,EAAe3E,KACf,WAOhBxC,GAAU+I,GAIhB,OACE,oCACE,yBAAKhK,UAAU,iCAAiCwK,GAChD,yBAAKxK,UAAU,aAAawK,O,iBCzCnBvM,eANS,SAAAC,GACtB,MAAO,CACLqD,OAAQrD,EAAMqD,OAAOA,UAIe,CAAEwJ,iBAA3B9M,EAzFa,SAAAK,GAAU,IAElCyM,EAEEzM,EAFFyM,YACS1C,EACP/J,EADFgK,MAASD,OAGX9J,qBAAU,WACRwM,EAAY1C,KACX,CAACA,EAAQ0C,IAEZ,IAAMrD,EAAaH,IACbgB,EAAeC,iBAAO,MAC5BC,2BAAgB,WACd,GAAIhK,OAAOiK,SAAWjK,OAAtB,CAEA,IAAIkK,EAAU,CACZC,YAAa,gBACbjG,MAAO4F,EAAaM,QAAQC,aAC5BC,OAAQtK,OAAOuK,SAASC,YAI1BxK,OAAOiK,OAAOQ,YAAYP,EAAS,QAClC,CAACjB,EAAYpJ,EAAMiD,SAEtB,IAAM8H,EAAY,IAAIC,gBAAgBhL,EAAM0K,SAASO,QAC/CC,EAAQH,EAAUI,IAAI,QACtBC,EACJL,EAAUM,IAAI,YAA2C,aAA7BN,EAAUI,IAAI,WAEtCxI,EAAqC,SAA5BoI,EAAUI,IAAI,UAEvBuB,EACJ,uBAAG5L,KAAMd,EAAM0K,SAASa,SAAU5G,OAAO,SAAS6C,IAAI,uBACpD,kBAACgE,EAAA,EAAD,MADF,4BAKImB,EACJ,yBAAKjL,UAAU,QACX0J,GACA,wBAAI1J,UAAU,0BACX1B,EAAMiD,OAAOxC,MADhB,IACwBT,EAAMiD,OAAOkC,MAGtCuH,GAICE,EACJ,qCACIxB,GACA,yBACE1J,UAAU,sCACViC,MAAO,CAAEgI,KAAMT,EAAQ,MAEvB,kBAACU,EAAA,QAAD,CAAa3E,YAAajH,EAAMiD,OAAOgE,cACvC,kBAAC4E,EAAA,QAAD,CAAWC,UAAW9L,EAAMiD,OAAO8I,gBACnC,8BACGC,YAAShM,EAAMiD,OAAO+I,SAAU,UADnC,KACgDhM,EAAMiD,OAAOgJ,UAOrE,OACE,yBAAKE,IAAKlC,EAAcvI,UAAU,qBAC9BiB,GAAUgK,EACXhK,GAAU,yBAAKjB,UAAU,mBAAmBgL,GAC5C1M,EAAMiD,OAAO4J,SACZ7M,EAAMiD,OAAO4J,QAAQ/H,KAAI,SAAC7B,EAAQ+B,GAChC,OACE,yBAAKC,IAAKD,EAAOrB,MAAO,CAAEgI,KAAMT,EAAQ,MACtC,kBAACxI,EAAA,EAAD,CAAOO,OAAQA,EAAQN,OAAQA,SAIrCA,GAAUiK,M,0nBCnFZE,E,4LAEFC,KAAKC,cACHD,KAAK/M,MAAM0K,SAASa,SACpBwB,KAAK/M,MAAM0K,SAASO,U,4CAIwB,IAAjBgC,EAAgB,EAA1BvC,SAA0B,EAGzCqC,KAAK/M,MADP0K,SAAYa,EAF+B,EAE/BA,SAAUN,EAFqB,EAErBA,OAElBiC,EAAsB3B,IAAa0B,EAAa1B,SAChD4B,EAAoBlC,IAAWgC,EAAahC,QAE9CiC,GAAuBC,IACzBJ,KAAKC,cAAczB,EAAUN,K,oCAInBM,GAAwB,IAAdN,EAAa,uDAAJ,GACzBmC,EAAO7B,EAAWN,EADW,EAEd9K,OAAbuK,EAF2B,EAE3BA,SACRtJ,IAAQiM,IAAR,GACED,OACA1C,SAAS,GAAD,OAAKA,EAASD,QAAd,OAAuB2C,IAC5BL,KAAK/M,MAAMgD,UAEhB5B,IAAQkM,SAASF,K,+BAIjB,OAAO,S,GAhCmBG,aAwDf,GACbT,kBACAU,aAdmB,kBAAM,kBAAC,IAAD,CAAOzE,UAAW+D,KAe3CW,KAbW,WAAkB,wDAAC,IACxBC,GAAcC,EAMpB,OAJID,GACFtM,IAAQwM,WAAW,kBAGdF,ICtBMG,MA5Bf,WACE,OACE,kBAAC,IAAD,KACGC,EAAGL,QAAU,kBAAC,EAAGD,aAAJ,MACd,kBAAC,IAAD,KACE,kBAAC,IAAD,CACE3E,KAAK,kCACLC,OAAK,EACLC,UAAWgF,IAEb,kBAAC,IAAD,CACElF,KAAK,qDACLC,OAAK,EACLC,UAAWgF,IAEb,kBAAC,IAAD,CACElF,KAAK,iCACLC,OAAK,EACLC,UAAWiF,IAEb,kBAAC,IAAD,CAAOnF,KAAK,aAAaC,OAAK,EAACC,UAAWL,IAC1C,kBAAC,IAAD,CAAOG,KAAK,oBAAoBC,OAAK,EAACC,UAAWL,IACjD,kBAAC,IAAD,CAAOG,KAAK,IAAIE,UAAWC,O,qkBC7BnC,IAAMiF,GAAe,CACnBhL,OAAQ,IAeKiL,GAZO,WAAmC,IAAlCtO,EAAiC,uDAAzBqO,GAAcxM,EAAW,uCACtD,OAAQA,EAAOgG,MACb,KAAK0G,IACH,OAAO,MACFvO,EADL,CAEEqD,OAAQxB,EAAOwB,SAEnB,QACE,OAAOrD,I,6jBCZb,IAAMqO,GAAe,CACnBnO,MAAO,GACPD,KAAM,IAoBOuO,GAjBM,WAAmC,IAAlCxO,EAAiC,uDAAzBqO,GAAcxM,EAAW,uCACrD,OAAQA,EAAOgG,MACb,KAAK4G,IACH,OAAO,MACFzO,EADL,CAEEE,MAAO2B,EAAO3B,QAElB,KAAKuO,IACH,OAAO,MACFzO,EADL,CAEEC,KAAM4B,EAAO5B,OAEjB,QACE,MAAO,CAAED,QAAOE,MAAO,M,skBClB7B,IAAMmO,GAAe,CACnBK,YAAa,GACbxH,SAAU,GACVyH,YAAa,GACbxH,WAAY,GACZM,cAAe,IAmCFmH,GAhCW,WAAmC,IAAlC5O,EAAiC,uDAAzBqO,GAAcxM,EAAW,uCAC1D,OAAQA,EAAOgG,MACb,KAAKgH,KACH,OAAO,MACF7O,EADL,CAEEyH,cAAe5F,EAAO4F,gBAE1B,KAAKoH,KACH,OAAO,MACF7O,EADL,CAEE0O,YAAa7M,EAAO6M,cAExB,KAAKG,KACH,OAAO,MACF7O,EADL,CAEE2O,YAAa9M,EAAO8M,cAExB,KAAKE,KACH,OAAO,MACF7O,EADL,CAEEkH,SAAUrF,EAAOqF,WAErB,KAAK2H,KACH,OAAO,MACF7O,EADL,CAEEmH,WAAYtF,EAAOsF,aAEvB,QACE,OAAOnH,I,6jBCtCb,IAAMqO,GAAe,CACnBpG,UAAW,IAeED,GAZA,WAAmC,IAAlChI,EAAiC,uDAAzBqO,GAAcxM,EAAW,uCAC/C,OAAQA,EAAOgG,MACb,IAAK,YACH,OAAO,MACF7H,EADL,CAEEiI,UAAWpG,EAAOoG,YAEtB,QACE,MAAO,CAAEjI,QAAOiI,UAAW,MCNlB6G,eAAgB,CAC7BzL,UACAnD,SACA8C,cACAgF,Y,UCGI+G,I,cAAQC,YAAYC,GAASC,YAAgBC,QAEnDC,IAASC,OACP,kBAAC,IAAD,CAAUN,MAAOA,IACf,kBAAC,EAAD,OAEFhO,SAASuO,eAAe,U,gCCnB1B,oJAEaC,EAAc,cAOdvF,EAAa,SAAAG,GACxB,IAAI3E,EAAMgK,EAAYrF,GACtB,OAAO,SAAAsF,GACLC,IACGnE,IAAI/F,GACJmK,MAAK,SAAAC,GACJH,EAZiB,SAAAG,GACvB,MAAO,CACL/H,KAAM0H,EACNrP,MAAO0P,EAAShP,MASHiP,CAAUD,OAEpBE,OAAM,SAAAnL,GACL8K,EAASM,EAAW,IAAIC,MAAMrL,UAKzBsL,EAAiB,iBAQjB9P,EAAgB,SAAAgK,GAC3B,IAAI3E,EAAMgK,EAAYrF,GAChBtC,EACJ,oEACF,OAAO,SAAA4H,GACLC,IACGnE,IAAI/F,EAAK,CACR0K,QAAS,CACPC,OAAQtI,GAEVuI,aAAc,SAEfT,MAAK,SAAAC,GACJH,EApBoB,SAAAG,GAC1B,MAAO,CACL/H,KAAMoI,EACNhQ,KAAM2P,GAiBOS,CAAa,IAAIC,KAAK,CAACV,EAAShP,MAAO,CAAEiH,KAAMA,SAEzDiI,OAAM,SAAAnL,GACL8K,EAASM,EAAW,IAAIC,MAAMrL,UAMzBoL,EAAa,SAAA3H,GAAK,MAAK,CAClCP,KAFuB,YAGvBI,UAAWG,EAAM2C,aAGRyE,EAAc,SAAArF,GACvB,OAAIA,EAAOyC,UACH,gBAAN,OAAuBzC,EAAOvI,KAA9B,YAAsCuI,EAAOxI,UAA7C,mBAAiEwI,EAAOtJ,MAAxE,uBAA4FsJ,EAAOyC,WAE7F,gBAAN,OAAuBzC,EAAOvI,KAA9B,YAAsCuI,EAAOxI,UAA7C,mBAAiEwI,EAAOtJ,S,4CCtD5E,IAIe0P,E,OAJEb,EAAMc,OAAO,CAC5BC,QAPQ,aCFV,oVAEO,IAAMC,EAA+B,+BAO/BC,EAAsB,SAAAC,GACjC,IAAMC,EAAK,oCAAgCD,EAAhC,gHASX,OAAO,SAAAnB,GACLqB,EACGvF,IADH,mBACmBsF,EADnB,MAEGlB,MAAK,SAAAC,GACJH,EApB0B,SAAAG,GAChC,MAAO,CACL/H,KAAM6I,EACNhC,YAAakB,EAAShP,KAAK8N,aAiBdqC,CAAmBnB,EAAShP,UAEtCkP,OAAM,SAAAnL,GACL8K,EAASM,EAAW,IAAIC,MAAMrL,UAKzBqM,EAAoB,oBAQpBC,EAAmB,SAAArP,GAC9B,IAAIsP,EAAeC,OAAOvP,GAEtBiP,EAAQ,0CAKZ,OAJIjP,IACFiP,EAAK,2BAAuBK,EAAvB,kCAGA,SAAAzB,GACLqB,EACGvF,IADH,mBACmBsF,EADnB,MAEGlB,MAAK,SAAAC,GACJH,EAnB0B,SAAAG,GAChC,MAAO,CACL/H,KAAMmJ,EACNrC,YAAaiB,EAAShP,KAAOgP,EAAShP,KAAK+N,YAAc,IAgB5CyC,CAAmBxB,EAAShP,UAEtCkP,OAAM,SAAAnL,GACL8K,EAASM,EAAW,IAAIC,MAAMrL,UAKzB0M,EAAqB,qBAQrBC,EAAoB,SAACnH,EAAQoH,GACxC,IAAIV,EAAQ,GAIZ,OAHI1G,EAAOxI,YACTkP,EAAK,wBAAoB1G,EAAOvI,KAA3B,wBAA+CuI,EAAOxI,UAAtD,sBAA6E4P,EAA7E,oEAEA,SAAA9B,GACLqB,EACGvF,IADH,mBACmBsF,EADnB,MAEGlB,MAAK,SAAAC,GACJH,EAhBsB,SAAAG,GAC5B,MAAO,CACL/H,KAAMwJ,EACNnK,SAAU0I,EAAShP,KAAKsG,UAaXsK,CAAe5B,EAAShP,UAGlCkP,OAAM,SAAAnL,GACL8K,EAASM,EAAW,IAAIC,MAAMrL,UAKzB8M,EAA2B,2BAQ3BC,EAAyB,SAAAvH,GACpC,IAAM0G,EAAK,2BAAuB1G,EAAOvI,KAA9B,yBAAmDuI,EAAOxI,UAA1D,+EAGX,OAAO,SAAA8N,GACLqB,EACGvF,IADH,mBACmBsF,EADnB,MAEGlB,MAAK,SAAAC,GACJH,EAfgC,SAAAG,GACtC,MAAO,CACL/H,KAAM4J,EACNtK,WAAYyI,EAAShP,KAAKuG,YAYbwK,CAAyB/B,EAAShP,UAE5CkP,OAAM,SAAAnL,GACL8K,EAASM,EAAW,IAAIC,MAAMrL,UAMzBoL,EAAa,SAAA3H,GAAK,MAAK,CAClCP,KAFuB,YAGvBI,UAAWG,IAGAwJ,EAAgB,gBAChBC,EAAW,SAAA9J,GAAK,MAAK,CAChCF,KAAM+J,EACNnK,cAAeM,K,gCCtHjB,YAQA,IAAM+J,EARN,OAQgBpC,EAAMc,OAAO,CAC3BC,QAPQ,SAUKqB,O,gCCZf,sCAMelG,IAFE,kBAAM,yBAAK7J,IAAKgQ,IAAM/P,IAAI,sB,gCCJ3C,kCAAO,IAAMoK,EAAW,SAACA,EAAU4F,GACjC,MAAiB,UAAb5F,EACK6F,EAAOD,GAEPE,EAAQF,IAIbC,EAAS,CAAE5F,OAAQ,SAEnB6F,EAAU,CAAE7F,OAAQ,W,gCCV1B,4CAoCeJ,UA/BG,SAAA7L,GAChB,IAAI+L,EACEtB,EAAStK,OAAOuK,SAASD,OACzB5B,EAAO1I,OAAOuK,SAASa,SAASwG,MAAM,KACtCC,EAAW,WAAOnJ,EAAK,GAAZ,YAAkBA,EAAK,IAuBxC,OArBI7I,EAAM8L,YACRC,EAAgB/L,EAAM8L,UAAUhH,KAAI,SAACmN,EAAUjN,GAC7C,IAAMyC,EAHM,SAAAA,GAAI,MAAc,WAATA,EAAoB,QAAU,SAGtCyK,CAAQD,EAASE,gBAC9B,OACE,wBAAIlN,IAAKD,GACP,uBACElE,KAAI,UAAK2J,GAAL,OAAcuH,EAAd,YAA6BvK,EAA7B,YAAqCwK,EAASxR,OAClDU,QAAS,WACPC,IAAQC,MAAM,CACZC,SAAUuH,EAAK,GAAK,IAAMA,EAAK,GAC/BpH,OAAQ,eACRhB,MAAOgH,EAAO,IAAMwK,EAASxR,UANnC,gBAUgBgH,EAVhB,IAUuBwK,EAASxR,YAOtC,kBAAC,IAAMiG,SAAP,KAAiBqF,GAAiB,4BAAKA,M,gCCjC3C,kCAceH,UAVK,SAAA5L,GAAK,OACvB,uBAAG0B,UAAU,mBACV1B,EAAMiH,aAA4C,IAA7BjH,EAAMiH,YAAYhB,OACpCjG,EAAMiH,YAAY,GAClBjH,EAAMiH,YACNjH,EAAMiH,YAAYnC,KAAI,SAACC,EAAMC,GAAP,OAAiB,wBAAIC,IAAKD,GAAQD,MACxD,Q,gCCVR,gFAEaqN,EAAe,eAOf3F,EAAc,SAAA1C,GACzB,OAAO,SAAAsF,GACLC,IACGnE,IADH,uBAEoBpB,EAAOvI,KAF3B,YAEmCuI,EAAOxI,UAF1C,oBAE+DwI,EAAOtJ,QAEnE8O,MAAK,SAAAC,GACJH,EAbkB,SAAAG,GACxB,MAAO,CACL/H,KAAM2K,EACNnP,OAAQuM,EAAShP,MAUJ6R,CAAW7C,OAErBE,OAAM,SAAAnL,GACL8K,EAASM,EAAW,IAAIC,MAAMrL,UAMzBoL,EAAa,SAAA3H,GAAK,MAAK,CAClCP,KAFuB,YAGvBI,UAAWG,K,gCC3Bb,kCAsCerB,UAlCI,SAAA3G,GACjB,IAAIyG,EACAtB,EAoBJ,OAnBInF,EAAMmF,OACRA,EACE,wBAAIrB,MAAM,MAAMC,QAAS/D,EAAMQ,KAAKqF,MAAMI,OAAS,GAChDjG,EAAMmF,OAITnF,EAAMQ,MAAQR,EAAMQ,KAAKqF,QAC3BY,EAAUzG,EAAMQ,KAAKqF,MAAMf,KAAI,SAACvB,EAAMyB,GACpC,OAAiB,IAAVA,EACL,wBAAIC,IAAKD,EAAOtD,UAAU,aACvB6B,EAAKC,MAGR,wBAAIyB,IAAKD,GAAQzB,EAAKC,UAKb,MAAXiD,EACK,KAIP,wBAAI/E,UAAU,cACXyD,EACAsB,K,gCCjCP,2BAKemC,IAFC,kBAAM,yBAAKlH,UAAU,c","file":"static/js/main.b02a43b7.chunk.js","sourcesContent":["import React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { downloadTable } from '../../store/actions/table';\nimport download from '../../assets/download.svg';\nimport ReactGA from 'react-ga';\n\n/* eslint-disable react/prop-types */\nexport const DownloadFile = props => {\n const { downloadTable, file } = props;\n\n useEffect(() => {\n if (file) {\n const uri = window.URL.createObjectURL(file);\n if (navigator.msSaveBlob) {\n return navigator.msSaveBlob(file, `${props.data.label}.xlsx`);\n } else {\n const link = document.createElement('a');\n link.download = `${props.data.label}.xlsx`;\n link.href = uri;\n\n document.body.appendChild(link);\n link.click();\n\n // Cleanup the DOM\n document.body.removeChild(link);\n }\n }\n }, [file, props.data.label]);\n\n const fetchFile = () => {\n ReactGA.event({\n category: props.data.shortName + ' ' + props.data.year,\n action: 'Downloading excel',\n label: props.data.label\n });\n downloadTable(props.data);\n };\n\n return (\n \n );\n};\n\nconst mapStateToProps = state => {\n return {\n file: state.table.file\n };\n};\n\nexport default connect(mapStateToProps, { downloadTable })(DownloadFile);\n","import React, { useEffect } from 'react';\nimport Highcharts from 'highcharts';\nimport HighchartsReact from 'highcharts-react-official';\nimport Exporting from 'highcharts/modules/exporting';\n\n// Initialize exporting module.\nExporting(Highcharts);\nHighcharts.setOptions({\n colors: [\n '#e72f72', //$new_primary_color_magenta\n '#0025a0', //$new_primary_color_blue\n '#ea591d', //$new_primary_color_dark_orange\n '#630879', //$new_secondary_color_dark_purple\n '#ff8c43', //$new_primary_color_light_orange\n '#a80037', //$new_secondary_color_dark_red\n '#ffc948', //$new_primary_color_yellow\n '#9b3699', //$new_primary_color_purple\n '#000000', //$color_black\n '#a2a4a5', //$new_primary_color_grey\n '#171b4e' // $new_secondary_color_dark_blue\n ],\n lang: {\n decimalPoint: ',',\n thousandsSep: ' ',\n numericSymbolMagnitude: 1000000000\n },\n xAxis: {\n labels: {\n autoRotation: [-10, -20, -30, -40, -50, -60, -70, -80, -90]\n }\n },\n yAxis: {\n reversedStacks: false\n }\n});\n\n/* eslint-disable react/prop-types */\nconst Chart = props => {\n if (props.iframe === true)\n Highcharts.setOptions({\n navigation: { buttonOptions: { enabled: false } }\n });\n return (\n \n );\n};\n\nexport default Chart;\n","module.exports = __webpack_public_path__ + \"static/media/hkdirLogo.341673c8.svg\";","module.exports = __webpack_public_path__ + \"static/media/hkdirWhiteLogo.c76f49f9.svg\";","module.exports = __webpack_public_path__ + \"static/media/download.6a8fecfc.svg\";","module.exports = __webpack_public_path__ + \"static/media/open.7a49bf72.svg\";","import React, { useState } from 'react';\nimport { Form } from 'react-bootstrap';\n\n/* eslint-disable react/prop-types */\nconst TableHeaderVariationCell = props => {\n const [currentVariation, setVariation] = useState(props.cell.cell.text);\n return (\n 1 ? 'auto' : '20%'}` }}\n scope={props.cell.scope}\n rowSpan={props.cell.rowSpan}\n colSpan={props.cell.colSpan}\n >\n \n {\n let parsedJson = JSON.parse(e.target.value);\n setVariation(parsedJson['name']);\n props.handleVariationChange(parsedJson['url']);\n }}\n >\n \n {props.cell.cell.variations.map((item, index) => {\n return (\n \n {item.name}\n \n );\n })}\n \n \n \n );\n};\n\nexport default TableHeaderVariationCell;\n","import React from 'react';\nimport TableHeaderVariationCell from './TableHeaderVariationCell';\n\n/* eslint-disable react/prop-types */\nconst TableHeaderCell = props => {\n const handleVariationChange = event => {\n props.handleVariationChange(event);\n };\n if (props.cell && props.cell.variations) {\n return (\n \n );\n } else {\n return (\n \n {props.cell && props.cell.text}\n \n );\n }\n};\nexport default TableHeaderCell;\n","import React from 'react';\n\n/* eslint-disable react/prop-types */\nconst TableHeaderRow = props => {\n return {props.children};\n};\nexport default TableHeaderRow;\n","import React from 'react';\nimport TableHeaderCell from './rows/cells/TableHeaderCell';\nimport TableHeaderRow from './rows/TableHeaderRow';\n\n/* eslint-disable react/prop-types */\nconst TableHeader = props => {\n let firstRow; //First row of header\n let secondRow; //Second row of header\n let thirdRow; //Third row of header\n let colSpan = []; //Number of columns to span\n let rowSpan = []; // Number of rows to span\n\n const handleVariationChange = event => {\n props.handleVariationChange(event);\n };\n if (props.headerItems) {\n thirdRow = props.headerItems.cells.map((first, firstindex) => {\n rowSpan[0] = 1;\n if (first.subCells && first.subCells.length > 0) {\n rowSpan[1] = 2;\n colSpan[firstindex] = first.subCells.length;\n return first.subCells.map(second => {\n if (second.subCells && second.subCells.length > 0) {\n rowSpan[2] = 3;\n colSpan[firstindex] =\n second.subCells.length * first.subCells.length;\n return second.subCells.map((cell, index) => {\n return ;\n });\n }\n return null;\n });\n }\n return null;\n });\n\n secondRow = props.headerItems.cells.map(data => {\n if (data.subCells && data.subCells.length > 0) {\n return data.subCells.map((cell, index) => {\n return cell.subCells ? (\n \n ) : (\n \n );\n });\n }\n return null;\n });\n\n firstRow = props.headerItems.cells.map((cell, index) => {\n return cell.subCells ? (\n \n ) : (\n \n );\n });\n }\n return (\n \n {firstRow}\n {secondRow}\n {thirdRow}\n \n );\n};\n\nexport default TableHeader;\n","import React from 'react';\n\nconst TableCell = props => {\n let cell;\n if (props.cells) {\n cell = props.cells.map((cell, index) => {\n return index === 0 ? (\n \n {cell.text}\n \n ) : (\n {cell.text}\n );\n });\n }\n\n return cell;\n};\n\nexport default TableCell;\n","import React from 'react';\nimport TableCell from './cells/TableCell';\n\n/* eslint-disable react/prop-types */\nconst TableRow = props => {\n return (\n \n {props.children}\n \n \n );\n};\n\nexport default TableRow;\n","import React from 'react';\nimport SummaryRow from '../SummaryRow';\nimport TableRow from './rows/TableRow';\n\n/* eslint-disable react/prop-types */\nconst TableSection = props => {\n let rows;\n if (props.section) {\n rows = props.section.rows.map((row, index) => {\n return props.section.name && index === 0 ? (\n \n \n {props.section.name}\n \n \n ) : (\n \n );\n });\n }\n\n return (\n \n {rows}\n \n \n );\n};\n\nexport default TableSection;\n","module.exports = __webpack_public_path__ + \"static/media/MaisonNeue-Book.dcf65514.otf\";","module.exports = __webpack_public_path__ + \"static/media/MaisonNeue-Demi.6673fe55.otf\";","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nconst NotFoundPage = () => {\n return (\n \n

Whooops!

\n

The page you are looking for does not exist...

\n

\n
\n Go to Home \n

\n
\n );\n};\n\nexport default NotFoundPage;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nconst ReportMetadata = props => {\n let reportDesc;\n if (props.contents && props.contents.description) {\n reportDesc = props.contents.description;\n }\n return (\n \n {reportDesc && reportDesc.length > 0\n ? reportDesc.map((item, index) => (\n

\n ))\n : null}\n
\n );\n};\n\nconst mapStateToProps = state => {\n return {\n contents: state.navigation.collection\n };\n};\n\nexport default connect(mapStateToProps)(ReportMetadata);\n","import React from 'react';\nimport logo from '../../assets/hkdirLogo.svg';\nimport './TopHeader.scss';\nimport { connect } from 'react-redux';\nimport ReportMetadata from '../common/ReportMetadata';\n\nexport const TopHeader = props => {\n return (\n
\n \"HK-dir\n {props.content && props.content.link && props.content.link.href && (\n
\n ⟨  \n \n \n {props.content && props.content.link && props.content.link.text}\n \n \n
\n )}\n \n {props.content && props.content.type}\n \n

{props.currentTitle}

\n
\n \n
\n
\n );\n};\n\nconst mapStateToProps = state => {\n return {\n currentTitle: state.navigation.current_title,\n content: state.navigation.collection\n };\n};\n\nexport default connect(mapStateToProps)(TopHeader);\n","import React from 'react';\nimport logo from '../../assets/hkdirWhiteLogo.svg';\nimport './BottomFooter.scss';\n\nexport const BottomFooter = () => {\n return (\n \n );\n};\n\nexport default BottomFooter;\n","import React, { useState, useEffect } from 'react';\nimport Alert from 'react-bootstrap/Alert';\nimport { connect } from 'react-redux';\n\nconst CustomAlert = props => {\n const [show, setShow] = useState(false);\n const [error, setError] = useState('');\n const { errors } = props;\n useEffect(() => {\n if (errors.length > 0) {\n setError(errors);\n setShow(true);\n } else {\n setError('');\n setShow(false);\n }\n }, [errors]);\n\n if (show) {\n return (\n setShow(false)}\n dismissible\n >\n En feil oppstod\n

{error}

\n \n );\n }\n return null;\n};\n\nconst mapStateToProps = state => {\n return {\n errors: state.errors.api_error\n };\n};\n\nexport default connect(mapStateToProps)(CustomAlert);\n","import React, { Suspense, lazy } from 'react';\nimport { Route, Switch } from 'react-router-dom';\nimport './Layout.scss';\nimport Spinner from '../common/Spinner';\nimport NotFoundPage from '../pages/NotFoundPage';\nimport TopHeader from './TopHeader';\nimport BottomFooter from './BottomFooter';\nimport CustomAlert from '../common/CustomAlert';\nconst Home = lazy(() => import('../pages/Home'));\nconst TableOfContents = lazy(() => import('../navigation/TableOfContents'));\n\nexport const Layout = () => {\n return (\n \n \n
\n \n }>\n \n \n \n \n \n \n \n
\n
\n );\n};\n\nexport default Layout;\n","import React from 'react';\n\nconst Root = () => ;\n\nexport default Root;\n","import { useState, useEffect } from 'react';\n\n// Ref: https://usehooks.com/useWindowSize/\nexport default function useWindowSize() {\n // Initialize state with undefined width/height so server and client renders match\n // Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/\n const [windowSize, setWindowSize] = useState({\n width: undefined,\n height: undefined\n });\n\n useEffect(() => {\n // Handler to call on window resize\n function handleResize() {\n // Set window width/height to state\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight\n });\n }\n\n // Add event listener\n window.addEventListener('resize', handleResize);\n\n // Call handler right away so state gets updated with initial window size\n handleResize();\n\n // Remove event listener on cleanup\n return () => window.removeEventListener('resize', handleResize);\n }, []); // Empty array ensures that effect is only run on mount\n\n return windowSize;\n}\n","import React, { useEffect, useRef, useLayoutEffect } from 'react';\nimport '../Table/Table.scss';\nimport Table from 'react-bootstrap/Table';\nimport { connect } from 'react-redux';\nimport { fetchTable } from '../../store/actions/table';\nimport TableHeader from '../Table/header/TableHeader';\nimport TableSection from '../Table/body/sections/TableSection';\nimport SummaryRow from '../Table/body/SummaryRow';\nimport DownloadFile from '../../components/common/DownloadFile';\nimport OpenFile from '../../components/common/OpenFile';\nimport Relations from '../common/Relations';\nimport Description from '../common/Description';\nimport { language } from '../../common/language';\nimport useWindowSize from '../../common/useWindowSize';\n\n/* eslint-disable react/prop-types */\nexport const StaticTable = props => {\n let headerItems;\n let tableSections;\n let mainSummaryRow;\n\n const {\n fetchTable,\n match: { params }\n } = props;\n\n useEffect(() => {\n fetchTable(params);\n }, [fetchTable, params]);\n\n const windowSize = useWindowSize();\n const containerRef = useRef(null);\n useLayoutEffect(() => {\n if (window.parent === window) return;\n\n let message = {\n messageType: 'heightChanged',\n value: containerRef.current.clientHeight,\n origin: window.location.toString()\n };\n\n // When opened in iframe, post the height so that the iframe can adjust it's height accordingly.\n window.parent.postMessage(message, '*');\n }, [windowSize, props.tableData]);\n\n const handleVariationChange = selectedVariation => {\n params.variation = selectedVariation;\n fetchTable(params);\n };\n\n if (props.tableData.table) {\n headerItems = props.tableData.table.header;\n tableSections = props.tableData.table.sections.map((value, index) => {\n return ;\n });\n mainSummaryRow = props.tableData.table.summary;\n }\n\n const urlParams = new URLSearchParams(props.location.search);\n const scale = urlParams.get('zoom');\n const fromArticle =\n urlParams.has('visning') && urlParams.get('visning') === 'artikkel';\n\n const iframe = urlParams.get('iframe') === 'true';\n\n const stuffAboveTable = (\n
\n {!fromArticle && (\n
\n {props.tableData.label} {props.tableData.name}\n
\n )}\n \n Åpne tabell i ny fane\n \n \n
\n );\n\n const stuffBelowTable = (\n <>\n {!fromArticle && (\n \n \n \n \n {language(props.tableData.language, 'source')}:{' '}\n {props.tableData.source}\n \n \n )}\n \n );\n\n const tableDiv = (\n
\n {!iframe && stuffAboveTable}\n \n \n \n {tableSections}\n {mainSummaryRow &&\n mainSummaryRow.rows.map((row, index) => {\n return (\n \n );\n })}\n \n \n {!iframe && stuffBelowTable}\n
\n );\n\n return (\n <>\n
{tableDiv}
\n
{tableDiv}
\n \n );\n};\n\nconst mapStateToProps = state => {\n return {\n tableData: state.table.table\n };\n};\n\nexport default connect(mapStateToProps, { fetchTable })(StaticTable);\n","import React, { useEffect, useRef, useLayoutEffect } from 'react';\nimport { fetchFigure } from '../../store/actions/figure';\nimport { connect } from 'react-redux';\nimport Chart from '../figures/charts/Chart';\nimport OpenFile from '../../components/common/OpenFile';\nimport Relations from '../common/Relations';\nimport Description from '../common/Description';\nimport { language } from '../../common/language';\nimport useWindowSize from '../../common/useWindowSize';\n\n/* eslint-disable react/prop-types */\nexport const StaticFigure = props => {\n const {\n fetchFigure,\n match: { params }\n } = props;\n\n useEffect(() => {\n fetchFigure(params);\n }, [params, fetchFigure]);\n\n const windowSize = useWindowSize();\n const containerRef = useRef(null);\n useLayoutEffect(() => {\n if (window.parent === window) return;\n\n let message = {\n messageType: 'heightChanged',\n value: containerRef.current.clientHeight,\n origin: window.location.toString()\n };\n\n // When opened in iframe, post the height so that the iframe can adjust it's height accordingly.\n window.parent.postMessage(message, '*');\n }, [windowSize, props.figure]);\n\n const urlParams = new URLSearchParams(props.location.search);\n const scale = urlParams.get('zoom');\n const fromArticle =\n urlParams.has('visning') && urlParams.get('visning') === 'artikkel';\n\n const iframe = urlParams.get('iframe') === 'true';\n\n const openInNewTab = (\n \n Åpne figur i ny fane\n \n );\n\n const stuffAboveFigure = (\n
\n {!fromArticle && (\n
\n {props.figure.label} {props.figure.name}\n
\n )}\n {openInNewTab}\n
\n );\n\n const stuffBelowFigure = (\n <>\n {!fromArticle && (\n \n \n \n \n {language(props.figure.language, 'source')}: {props.figure.source}\n \n \n )}\n \n );\n\n return (\n
\n {!iframe && stuffAboveFigure}\n {iframe &&
{openInNewTab}
}\n {props.figure.figures &&\n props.figure.figures.map((figure, index) => {\n return (\n
\n \n
\n );\n })}\n {!iframe && stuffBelowFigure}\n
\n );\n};\n\nconst mapStateToProps = state => {\n return {\n figure: state.figure.figure\n };\n};\n\nexport default connect(mapStateToProps, { fetchFigure })(StaticFigure);\n","// utils/GoogleAnalytics.js\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactGA from 'react-ga';\nimport { Route } from 'react-router-dom';\n\nclass GoogleAnalytics extends Component {\n componentDidMount() {\n this.logPageChange(\n this.props.location.pathname,\n this.props.location.search\n );\n }\n\n componentDidUpdate({ location: prevLocation }) {\n const {\n location: { pathname, search }\n } = this.props;\n const isDifferentPathname = pathname !== prevLocation.pathname;\n const isDifferentSearch = search !== prevLocation.search;\n\n if (isDifferentPathname || isDifferentSearch) {\n this.logPageChange(pathname, search);\n }\n }\n\n logPageChange(pathname, search = '') {\n const page = pathname + search;\n const { location } = window;\n ReactGA.set({\n page,\n location: `${location.origin}${page}`,\n ...this.props.options\n });\n ReactGA.pageview(page);\n }\n\n render() {\n return null;\n }\n}\n\nGoogleAnalytics.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string,\n search: PropTypes.string\n }).isRequired,\n options: PropTypes.object\n};\n\nconst RouteTracker = () => ;\n\nconst init = (options = {}) => {\n const isGAEnabled = process.env.NODE_ENV === 'production';\n\n if (isGAEnabled) {\n ReactGA.initialize('UA-165258109-1');\n }\n\n return isGAEnabled;\n};\n\nexport default {\n GoogleAnalytics,\n RouteTracker,\n init\n};\n","import 'bootstrap/dist/css/bootstrap.min.css';\nimport React from 'react';\nimport Layout from './components/layout/Layout';\nimport Root from './components/pages/Root';\nimport { Route, Switch, BrowserRouter } from 'react-router-dom';\nimport StaticTable from './components/pages/StaticTable';\nimport StaticFigure from './components/pages/StaticFigure';\nimport GA from './common/GoogleAnalytics';\n\nfunction App() {\n return (\n \n {GA.init() && }\n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default App;\n","import * as figureAction from '../actions/figure';\n\nconst initialState = {\n figure: {}\n};\n\nconst figureReducer = (state = initialState, action) => {\n switch (action.type) {\n case figureAction.FETCH_FIGURE:\n return {\n ...state,\n figure: action.figure\n };\n default:\n return state;\n }\n};\n\nexport default figureReducer;\n","import * as tableAction from '../actions/table';\n\nconst initialState = {\n table: {},\n file: {}\n};\n\nconst tableReducer = (state = initialState, action) => {\n switch (action.type) {\n case tableAction.FETCH_TABLE:\n return {\n ...state,\n table: action.table\n };\n case tableAction.DOWNLOAD_TABLE:\n return {\n ...state,\n file: action.file\n };\n default:\n return { state, table: {} };\n }\n};\n\nexport default tableReducer;\n","import * as navigationActions from '../actions/navigation';\n\nconst initialState = {\n attachments: [],\n contents: [],\n collections: [],\n collection: {},\n current_title: ''\n};\n\nconst navigationReducer = (state = initialState, action) => {\n switch (action.type) {\n case navigationActions.CURRENT_TITLE:\n return {\n ...state,\n current_title: action.current_title\n };\n case navigationActions.FETCH_COLLECTION_ATTACHMENTS:\n return {\n ...state,\n attachments: action.attachments\n };\n case navigationActions.FETCH_COLLECTIONS:\n return {\n ...state,\n collections: action.collections\n };\n case navigationActions.SEARCH_COLLECTIONS:\n return {\n ...state,\n contents: action.contents\n };\n case navigationActions.FETCH_COLLECTION_CONTENT:\n return {\n ...state,\n collection: action.collection\n };\n default:\n return state;\n }\n};\n\nexport default navigationReducer;\n","const initialState = {\n api_error: {}\n};\n\nconst errors = (state = initialState, action) => {\n switch (action.type) {\n case 'API_ERROR':\n return {\n ...state,\n api_error: action.api_error\n };\n default:\n return { state, api_error: {} };\n }\n};\n\nexport default errors;\n","import { combineReducers } from 'redux';\nimport figure from './figure';\nimport table from './table';\nimport navigation from './navigation';\nimport errors from './errors';\n\nexport default combineReducers({\n figure,\n table,\n navigation,\n errors\n});\n","import 'react-app-polyfill/ie11';\nimport 'url-search-params-polyfill';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport './styles/main.scss';\nimport App from './App';\nimport reducer from './store/reducers/index';\nimport { createStore, applyMiddleware } from 'redux';\nimport { Provider } from 'react-redux';\nimport thunk from 'redux-thunk';\nimport './fonts/MaisonNeue-Book.otf';\nimport './fonts/MaisonNeue-Demi.otf';\n\nconst store = createStore(reducer, applyMiddleware(thunk));\n\nReactDOM.render(\n \n \n ,\n document.getElementById('diku')\n);\n","import axios from '../../api/axios_rest';\n\nexport const FETCH_TABLE = 'FETCH_TABLE';\nexport const saveTable = response => {\n return {\n type: FETCH_TABLE,\n table: response.data\n };\n};\nexport const fetchTable = params => {\n let url = generateUrl(params);\n return dispatch => {\n axios\n .get(url)\n .then(response => {\n dispatch(saveTable(response));\n })\n .catch(e => {\n dispatch(catchError(new Error(e)));\n });\n };\n};\n\nexport const DOWNLOAD_TABLE = 'DOWNLOAD_TABLE';\nexport const downloadFile = response => {\n return {\n type: DOWNLOAD_TABLE,\n file: response\n };\n};\n\nexport const downloadTable = params => {\n let url = generateUrl(params);\n const type =\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\n return dispatch => {\n axios\n .get(url, {\n headers: {\n Accept: type\n },\n responseType: 'blob'\n })\n .then(response => {\n dispatch(downloadFile(new Blob([response.data], { type: type })));\n })\n .catch(e => {\n dispatch(catchError(new Error(e)));\n });\n };\n};\n\nexport const API_ERROR = 'API_ERROR';\nexport const catchError = error => ({\n type: API_ERROR,\n api_error: error.toString()\n});\n\nexport let generateUrl = params => {\n if (params.variation) {\n return `/collections/${params.year}/${params.shortName}/tables/${params.label}/variations/${params.variation}`;\n } else {\n return `/collections/${params.year}/${params.shortName}/tables/${params.label}`;\n }\n};\n","import axios from 'axios';\n\nlet api = '/graphql';\n\nif (process.env.NODE_ENV === 'development') {\n api = 'https://vedlegg.hkdir.no/graphql';\n}\n\nconst graphApi = axios.create({\n baseURL: api\n});\n\nexport default graphApi;\n","import graph_axios from '../../api/axios_graphql';\n\nexport const FETCH_COLLECTION_ATTACHMENTS = 'FETCH_COLLECTION_ATTACHMENTS';\nexport const saveAllAttachments = response => {\n return {\n type: FETCH_COLLECTION_ATTACHMENTS,\n attachments: response.data.attachments\n };\n};\nexport const fetchAllAttachments = id => {\n const query = `attachments(collectionId:\"${id}\"){\n label\n name\n id\n section\n attachmentType\n year\n }`;\n\n return dispatch => {\n graph_axios\n .get(`/?query={${query}}`)\n .then(response => {\n dispatch(saveAllAttachments(response.data));\n })\n .catch(e => {\n dispatch(catchError(new Error(e)));\n });\n };\n};\n\nexport const FETCH_COLLECTIONS = 'FETCH_COLLECTIONS';\nexport const saveAllCollections = response => {\n return {\n type: FETCH_COLLECTIONS,\n collections: response.data ? response.data.collections : []\n };\n};\n\nexport const fetchCollections = year => {\n let selectedYear = Number(year);\n\n let query = 'collections {name, year, id, shortName}';\n if (year) {\n query = `collections(year:${selectedYear}) {name, year, id, shortName}`;\n }\n\n return dispatch => {\n graph_axios\n .get(`/?query={${query}}`)\n .then(response => {\n dispatch(saveAllCollections(response.data));\n })\n .catch(e => {\n dispatch(catchError(new Error(e)));\n });\n };\n};\n\nexport const SEARCH_COLLECTIONS = 'SEARCH_COLLECTIONS';\nexport const saveAllContent = response => {\n return {\n type: SEARCH_COLLECTIONS,\n contents: response.data.contents\n };\n};\n\nexport const searchCollections = (params, filterString) => {\n let query = '';\n if (params.shortName)\n query = `contents(year:${params.year}, shortName:\"${params.shortName}\", filter:\"${filterString}\") {id, collection, label, section, name, attachmentType, year}`;\n\n return dispatch => {\n graph_axios\n .get(`/?query={${query}}`)\n .then(response => {\n dispatch(saveAllContent(response.data));\n })\n\n .catch(e => {\n dispatch(catchError(new Error(e)));\n });\n };\n};\n\nexport const FETCH_COLLECTION_CONTENT = 'FETCH_COLLECTION_CONTENT';\nexport const saveAllCollectionContent = response => {\n return {\n type: FETCH_COLLECTION_CONTENT,\n collection: response.data.collection\n };\n};\n\nexport const fetchCollectionContent = params => {\n const query = `collection(year: ${params.year}, shortName: \"${params.shortName}\") {name, year, shortName, type, id, description,\n link {href, text}\n }`;\n return dispatch => {\n graph_axios\n .get(`/?query={${query}}`)\n .then(response => {\n dispatch(saveAllCollectionContent(response.data));\n })\n .catch(e => {\n dispatch(catchError(new Error(e)));\n });\n };\n};\n\nexport const API_ERROR = 'API_ERROR';\nexport const catchError = error => ({\n type: API_ERROR,\n api_error: error\n});\n\nexport const CURRENT_TITLE = 'CURRENT_TITLE';\nexport const addTitle = title => ({\n type: CURRENT_TITLE,\n current_title: title\n});\n","import axios from 'axios';\n\nlet api = '/api';\n\nif (process.env.NODE_ENV === 'development') {\n api = 'https://vedlegg.hkdir.no/api';\n}\n\nconst dikuApi = axios.create({\n baseURL: api\n});\n\nexport default dikuApi;\n","import React from 'react';\nimport open from '../../assets/open.svg';\n\n/* eslint-disable react/prop-types */\nconst OpenFile = () => \"Åpne;\n\nexport default OpenFile;\n","export const language = (language, word) => {\n if (language === 'no-NB') {\n return bokmal[word];\n } else {\n return nynorsk[word];\n }\n};\n\nconst bokmal = { source: 'Kilde' };\n\nconst nynorsk = { source: 'Kjelde' };\n","import React from 'react';\nimport './Relations.scss';\nimport ReactGA from 'react-ga';\n\n/* eslint-disable react/prop-types */\nconst Relations = props => {\n let relationships;\n const origin = window.location.origin;\n const path = window.location.pathname.split('/');\n const correctPath = `/${path[1]}/${path[2]}`;\n const getType = type => (type === 'figure' ? 'Figur' : 'Tabell');\n if (props.relations) {\n relationships = props.relations.map((relation, index) => {\n const type = getType(relation.attachmentType);\n return (\n
  • \n {\n ReactGA.event({\n category: path[1] + ' ' + path[2],\n action: 'Open related',\n label: type + ' ' + relation.label\n });\n }}\n >\n Relatert til {type} {relation.label}\n \n
  • \n );\n });\n }\n return (\n {relationships &&
      {relationships}
    }
    \n );\n};\nexport default Relations;\n","import React from 'react';\nimport './Description.scss';\n\n/* eslint-disable react/prop-types */\nconst Description = props => (\n

    \n {props.description && props.description.length === 1\n ? props.description[0]\n : props.description\n ? props.description.map((item, index) =>

  • {item}
  • )\n : null}\n

    \n);\n\nexport default Description;\n","import axios from '../../api/axios_rest';\n\nexport const FETCH_FIGURE = 'FETCH_FIGURE';\nexport const saveFigure = response => {\n return {\n type: FETCH_FIGURE,\n figure: response.data\n };\n};\nexport const fetchFigure = params => {\n return dispatch => {\n axios\n .get(\n `/collections/${params.year}/${params.shortName}/figures/${params.label}`\n )\n .then(response => {\n dispatch(saveFigure(response));\n })\n .catch(e => {\n dispatch(catchError(new Error(e)));\n });\n };\n};\n\nexport const API_ERROR = 'API_ERROR';\nexport const catchError = error => ({\n type: API_ERROR,\n api_error: error\n});\n","import React from 'react';\nimport './SummaryRow.scss';\n\n/* eslint-disable react/prop-types */\nconst SummaryRow = props => {\n let summary;\n let name;\n if (props.name) {\n name = (\n \n {props.name}\n \n );\n }\n if (props.data && props.data.cells) {\n summary = props.data.cells.map((cell, index) => {\n return index === 0 ? (\n \n {cell.text}\n \n ) : (\n {cell.text}\n );\n });\n }\n\n if (summary == null) {\n return null;\n }\n\n return (\n \n {name}\n {summary}\n \n );\n};\n\nexport default SummaryRow;\n","import './Spinner.scss';\nimport React from 'react';\n\nconst Spinner = () =>
    ;\n\nexport default Spinner;\n"],"sourceRoot":""}