{"version":3,"sources":["static/logo_Kystverket-english.svg","static/ikon_fyrlykt_selected.svg","static/ikon_fyrlykt.svg","redux/location.js","redux/reducers.js","components/Icon.js","components/Checkbox.js","components/PopupBox.js","containers/NavBar.js","components/ZoomToExtentButton.js","config/index.js","layout/MapLayout.js","layout/PageLayout.js","components/loading/Loading.js","components/Table.js","views/LighthousesView.js","components/Title.js","views/PageView.js","router/index.js","translations/index.js","translations/en.js","translations/no.js","App.js","index.js","redux/createStore.js"],"names":["module","exports","locationReducer","state","arguments","length","undefined","action","type","payload","makeRootReducer","asyncReducers","combineReducers","_objectSpread","location","nav","navReducer","page","pageReducer","icons","zoom","React","createElement","viewBox","d","checkmark","cross","share","envelope","load","chevronRight","chevronLeft","chevrondown","chevronup","map","pin","earth","info","Icon","props","name","className","Checkbox","onCheckChange","checked","onClick","PopupBox","_React$Component","_classCallCheck","_callSuper","_inherits","_createClass","key","value","this","setState","checkBoxChecked","_this","_this$props","onClose","closeBtnText","checkBoxText","children","newChecked","Component","NavBar","navOpen","loadNav","get","lang","t","filter","n","uri","title","indexOf","_this2","setLang","Link","to","src","logo_no_en","alt","join","onChange","profileOpen","Nav","navItems","onNavClick","translate","connect","dispatch","bindActionCreators","Object","assign","navActions","ZoomToExtentButton","_len","args","Array","_key","concat","extent","fitViewAndZoom","history","push","tooltip","provideMapState","withRouter","adaptiveUrl","site","appName","mapProjCode","mapProjection","minZoom","maxZoom","initExtent","themes","lighthouses","uuid","cols","_ref","MapWrapper","config","Map","baatUrl","hitTolerance","projDefs","epsg","def","projection","Projection","code","Zoom","zoomInTipText","zoomOutTipText","LayerSwitch","LayerGroup","id","enabledLayers","singleSelect","WmsLayer","layerName","version","zIndex","XYZLayer","urls","useBaat","url","PageLayout","Table","onExpandRowClick","r","idProperty","expanded","selectedRow","createRef","prevProps","selected","viewWidth","records","loading","current","scrollIntoView","behavior","block","_this$props2","onRowSelected","onRowZoomToClick","header","headerKey","Fragment","Loading","ref","e","stopPropagation","data-header","sjomerkenr","beskrivelse","substr","trim","kategori","kartnr","eier","slukket","efsnum","provideViewSize","sortArray","a","b","region","LighthousesView","readLighthouses","mapExtent","extGeom","olUtils","createPolygonFromExtent","bufferExtent","extFeat","createFeatureFromGeometry","wktExtent","getWktFromFeature","request","theme_uuid","columns","filterColumns","comparisonOperator","netType","logicalOperator","start","limit","superagent","post","send","set","then","res","body","cat1","cat2","cat3","forEach","cat","substring","olFeature","createFeatureFromWkt","geom_wkt","sort","getRecordById","find","onRecordSelected","rid","match","params","parseInt","getGeometry","featureStyle","f","styles","active","Style","image","scale","lighthouseSelected","lighthouse","imgSize","onFeatureSelect","features","onFeatureDeselect","sq","search","replace","split","showTipBox","tmpHideTipBox","onTipBoxVisibilityChange","bind","prevState","_this$state","oldR","setTimeout","_this3","_this$state2","Title","dangerouslySetInnerHTML","__html","SVGIcon","VectorSource","selectable","styleFn","Select","onSelect","onDeselect","oldTitle","document","getPath","pathname","slice","PageView","currentPath","loadPage","path","nextProps","href","pageLoading","is404","render404","content","pageActions","browserHistory","createBrowserHistory","basename","SetLang","useEffect","Redirect","AppRouter","_ref2","Router","Switch","from","Route","MapLayout","component","exact","en","locale","description","dark","seamap","owner","categori","showAll","showLess","zoomTo","kat1","kat2","kat3","App","kartlagsVelger","zoomToExtentTip","zoomInTip","zoomOutTip","Popup","text","closeButtonText","toolTip","index","no","translations","store","Provider","TranslatorProvider","getTranslations","useTranslate","CmsConfig","init","initialState","middleware","thunk","enhancers","window","__REDUX_DEVTOOLS_EXTENSION__","composeEnhancers","compose","createStore","apply","applyMiddleware","__INITIAL_STATE__","addReducerToStore","reducer","hasOwnProperty","call","replaceReducer","injectReducer","ReactDOM","render","getElementById"],"mappings":"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","file":"static/js/main.f42670e3.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/logo_Kystverket-english.d37a4714.svg\";","module.exports = __webpack_public_path__ + \"static/media/ikon_fyrlykt_selected.73f9115d.svg\";","module.exports = __webpack_public_path__ + \"static/media/ikon_fyrlykt.92f4456a.svg\";","// ------------------------------------\n// Constants\n// ------------------------------------\nexport const LOCATION_CHANGE = \"LOCATION_CHANGE\";\n\n// ------------------------------------\n// Actions\n// ------------------------------------\nexport function locationChange(location = \"/\") {\n return {\n type: LOCATION_CHANGE,\n payload: location\n };\n}\n\n// ------------------------------------\n// Specialized Action Creator\n// ------------------------------------\nexport const updateLocation = ({ dispatch }) => {\n return nextLocation => dispatch(locationChange(nextLocation));\n};\n\n// ------------------------------------\n// Reducer\n// ------------------------------------\nconst initialState = null;\nexport default function locationReducer(state = initialState, action) {\n return action.type === LOCATION_CHANGE ? action.payload : state;\n}\n","import { combineReducers } from \"redux\";\nimport locationReducer from \"./location\";\nimport { navReducer, pageReducer } from \"@avinet/react-adaptive-cms\";\n\nconst makeRootReducer = (asyncReducers) => {\n return combineReducers({\n location: locationReducer,\n nav: navReducer,\n page: pageReducer,\n ...asyncReducers,\n });\n};\n\nexport const injectReducer = (store, { key, reducer }) => {\n if (Object.hasOwnProperty.call(store.asyncReducers, key)) return;\n\n store.asyncReducers[key] = reducer;\n store.replaceReducer(makeRootReducer(store.asyncReducers));\n};\n\nexport default makeRootReducer;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport \"./Icon.scss\";\n\nconst icons = {\n zoom: (\n \n \n \n ),\n checkmark: (\n \n \n \n ),\n cross: (\n \n \n \n ),\n share: (\n \n \n \n ),\n envelope: (\n \n \n \n ),\n load: (\n \n \n \n ),\n chevronRight: (\n \n \n \n ),\n chevronLeft: (\n \n \n \n ),\n chevrondown: (\n \n \n \n ),\n chevronup: (\n \n \n \n ),\n map: (\n \n map\n \n \n ),\n pin: (\n \n \n \n ),\n earth: (\n \n \n \n ),\n info: (\n \n \n \n \n \n )\n};\n\nconst Icon = props => {\n const { name } = props;\n return {icons[name]};\n};\n\nIcon.propTypes = {\n name: PropTypes.string.isRequired\n};\n\nexport default Icon;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport Icon from \"../components/Icon\";\nimport \"./Checkbox.scss\";\n\nconst Checkbox = props => {\n const { onCheckChange, checked } = props;\n return (\n onCheckChange(!checked)}\n >\n {checked && }\n \n );\n};\n\nCheckbox.propTypes = {\n onCheckChange: PropTypes.func.isRequired,\n checked: PropTypes.bool\n};\n\nexport default Checkbox;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport Checkbox from \"../components/Checkbox\";\nimport \"./PopupBox.scss\";\n\nclass PopupBox extends React.Component {\n componentWillMount() {\n this.setState({ checked: this.props.checkBoxChecked });\n }\n\n render() {\n const { onClose, closeBtnText, checkBoxText, children } = this.props;\n return (\n
\n
\n
{children}
\n
\n {checkBoxText && (\n
\n {\n this.setState({ checked: newChecked });\n }}\n checked={this.state.checked}\n />\n \n
\n )}\n onClose(this.state.checked)}\n className=\"btn popup-box--close-btn\"\n >\n {closeBtnText}\n \n
\n
\n
\n );\n }\n}\n\nPopupBox.propTypes = {\n children: PropTypes.element,\n onClose: PropTypes.func.isRequired,\n closeBtnText: PropTypes.string.isRequired,\n checkBoxText: PropTypes.string,\n checkBoxChecked: PropTypes.bool\n};\n\nexport default PopupBox;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { Nav, Link, navActions } from \"@avinet/react-adaptive-cms\";\nimport logo_no_en from \"../static/logo_Kystverket-english.svg\";\nimport { translate } from \"react-translate\";\nimport \"./NavBar.scss\";\n\nconst mapDispatchToProps = (dispatch) => {\n return bindActionCreators(Object.assign({}, navActions), dispatch);\n};\n\nconst mapStateToProps = (state) => ({\n nav: state.nav.nav,\n});\n\nclass NavBar extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n navOpen: false,\n };\n }\n\n componentDidMount() {\n const { loadNav } = this.props;\n loadNav();\n }\n\n get navItems() {\n const { nav, lang, t } = this.props;\n return nav.filter((n) => {\n if (n.uri === \"index\") {\n n.title = t(\"index\");\n return n;\n }\n if (lang === \"en\") {\n return n.uri.indexOf(\"_en\") > -1;\n } else {\n return n.uri.indexOf(\"_en\") === -1;\n }\n });\n }\n\n render() {\n const { navOpen } = this.state;\n const { setLang } = this.props;\n const { t } = this.props;\n return (\n
\n \n \"Kystverket\"\n \n \n {}}\n onClick={() =>\n this.setState({ navOpen: !navOpen, profileOpen: false })\n }\n />\n \n \n \n {\n this.setState({\n navOpen: false,\n profileOpen: false,\n });\n }}\n />\n
\n
\n {this.props.lang === \"no\" && (\n \n )}\n {this.props.lang === \"en\" && (\n \n )}\n
\n \n );\n }\n}\n\nNavBar.propTypes = {\n nav: PropTypes.array,\n loadNav: PropTypes.func,\n fullscreen: PropTypes.bool,\n fullscreenToggle: PropTypes.func,\n setLang: PropTypes.func,\n lang: PropTypes.string,\n};\n\nexport default translate(\"NavBar\")(\n connect(mapStateToProps, mapDispatchToProps)(NavBar)\n);\n","import React from \"react\";\nimport { provideMapState } from \"@avinet/react-openlayers\";\nimport { PropTypes } from \"prop-types\";\nimport { withRouter } from \"react-router-dom\";\nimport Icon from \"./Icon\";\nimport \"./ZoomToExtentButton.scss\";\n\nclass ZoomToExtentButton extends React.Component {\n onClick = () => {\n const { extent, fitViewAndZoom, history } = this.props;\n history.push(\"/\");\n fitViewAndZoom(extent);\n };\n\n render() {\n const { tooltip } = this.props;\n return (\n \n \n \n );\n }\n}\n\nZoomToExtentButton.propTypes = {\n extent: PropTypes.arrayOf(PropTypes.number).isRequired,\n fitViewAndZoom: PropTypes.func,\n tooltip: PropTypes.string,\n};\n\nexport default provideMapState(withRouter(ZoomToExtentButton));\n","export default {\n adaptiveUrl: \"https://www.kystinfo.no/\",\n site: 0,\n appName: \"Kystverket - Slukkede fyrlykter\",\n mapProjCode: \"32633\",\n mapProjection: \"EPSG:32633\",\n minZoom: 2,\n maxZoom: 19,\n initExtent: [\n -5206.686143482511, 6915575.004611748, 904681.3138565174, 8295301.004611748,\n ],\n themes: {\n lighthouses: {\n uuid: \"9cf15ae5-16fe-4a4e-af61-47bb3d0cbba4\",\n cols: [\n \"id\",\n \"beskrivelse\",\n \"region\",\n \"kartnr\",\n \"status\",\n \"eier\",\n \"endretdato\",\n \"slukket\",\n \"efsnum\",\n \"prv_dvalue\",\n \"sjomerkenr\",\n \"geom\",\n \"kategori\",\n ],\n },\n },\n};\n\n// http://kyvreports.kystverket.no/NavcoReport/slukte_fyrlys.aspx\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport NavBar from \"../containers/NavBar\";\nimport ZoomToExtentButton from \"../components/ZoomToExtentButton\";\nimport {\n Map,\n LayerSwitch,\n LayerGroup,\n WmsLayer,\n Zoom,\n XYZLayer,\n} from \"@avinet/react-openlayers\";\nimport { translate } from \"react-translate\";\nimport Projection from \"ol/proj/Projection\";\n\nimport config from \"../config\";\nimport \"./MapLayout.scss\";\n\nfunction MapLayout({ children, t, setLang, lang }) {\n return (\n
\n \n \n \n
{children}
\n
\n
\n );\n}\n\nMapLayout.propTypes = {\n children: PropTypes.any,\n t: PropTypes.func.isRequired,\n setLang: PropTypes.func,\n lang: PropTypes.string,\n};\n\nexport default translate(\"MapLayout\")(MapLayout);\n\nconst MapWrapper = translate(\"MapLayout\")((props) => {\n const { t, children } = props;\n return (\n \n \n \n \n \n\n \n\n \n\n \n \n \n {children}\n \n );\n});\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport NavBar from \"../containers/NavBar\";\n\nimport \"./PageLayout.scss\";\n\nfunction PageLayout({ children, setLang, lang }) {\n return (\n
\n \n
{children}
\n
\n );\n}\n\nPageLayout.propTypes = {\n children: PropTypes.any,\n setLang: PropTypes.func,\n lang: PropTypes.string,\n};\n\nexport default PageLayout;\n","import React from \"react\";\nimport \"./Loading.scss\";\n\nexport default () => (\n
\n \n \n \n
\n);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { translate } from \"react-translate\";\nimport { provideViewSize } from \"react-adaptive-utils\";\nimport Icon from \"./Icon\";\nimport \"./Table.scss\";\nimport Loading from \"./loading/Loading\";\n\nclass Table extends React.Component {\n constructor(props) {\n super(props);\n\n this.selectedRow = React.createRef();\n\n this.state = {\n expanded: undefined,\n };\n }\n static propTypes = {\n loading: PropTypes.bool,\n records: PropTypes.array,\n onRowSelected: PropTypes.func,\n selected: PropTypes.number,\n idProperty: PropTypes.string.isRequired,\n width: PropTypes.number,\n header: PropTypes.string,\n className: PropTypes.string,\n headerKey: PropTypes.string,\n };\n\n componentDidUpdate(prevProps) {\n const { selected, viewWidth, records, loading } = this.props;\n\n if (prevProps.selected !== selected && this.selectedRow.current) {\n if (viewWidth <= 768) {\n this.selectedRow.current.scrollIntoView(true);\n } else {\n this.selectedRow.current.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }\n }\n\n !loading &&\n records.length &&\n this.selectedRow &&\n this.selectedRow.current &&\n this.selectedRow.current.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }\n\n onExpandRowClick = (r) => {\n const { idProperty } = this.props;\n const { expanded } = this.state;\n this.setState({\n expanded: expanded === r[idProperty] ? undefined : r[idProperty],\n });\n };\n\n render() {\n const {\n loading,\n records,\n t,\n selected,\n onRowSelected,\n onRowZoomToClick,\n idProperty,\n viewWidth,\n className,\n header,\n headerKey,\n } = this.props;\n const { expanded } = this.state;\n\n return (\n
\n

{header ? header : t(headerKey)}

\n
\n
\n {viewWidth > 1200 && (\n \n
\n
\n {t(\"sjomerkenr\")}\n
\n
\n {t(\"description\")}\n
\n
{t(\"seamap\")}
\n
{t(\"owner\")}
\n
{t(\"dark\")}
\n
{t(\"efsnum\")}
\n \n )}\n
\n {loading && }\n {!loading &&\n records.map((r) => (\n {\n onRowSelected(r[idProperty]);\n }}\n >\n
\n {\n onRowZoomToClick(r);\n e.stopPropagation();\n }}\n >\n \n \n
\n \n {r.sjomerkenr}\n
\n \n {r.beskrivelse.substr(r.beskrivelse.indexOf(\",\") + 1).trim()}\n \n {viewWidth < 1200 && (\n \n {r.kategori}\n \n )}\n {(viewWidth > 768 || r[idProperty] === expanded) && (\n \n \n {r.kartnr}\n \n \n {r.eier}\n \n \n {r.slukket}\n \n \n {r.efsnum}\n \n \n )}\n {\n this.onExpandRowClick(r);\n }}\n >\n {/* Vis mere */}\n \n \n \n ))}\n \n \n );\n }\n}\n\nexport default translate(\"Table\")(provideViewSize(Table));\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport PopupBox from \"../components/PopupBox\";\nimport SVGIcon from \"../components/Icon\";\nimport { withRouter } from \"react-router-dom\";\nimport { translate } from \"react-translate\";\nimport superagent from \"superagent\";\nimport {\n VectorSource,\n Select,\n provideMapState,\n olUtils,\n} from \"@avinet/react-openlayers\";\nimport { Style, Icon } from \"ol/style\";\nimport { Title } from \"@avinet/react-adaptive-cms\";\nimport lighthouseSelected from \"../static/ikon_fyrlykt_selected.svg\";\nimport lighthouse from \"../static/ikon_fyrlykt.svg\";\nimport Table from \"../components/Table\";\nimport config from \"../config\";\n\nimport \"./LighthousesView.scss\";\n\nconst sortArray = (a, b) => {\n if (a.region < b.region) {\n return -1;\n }\n if (a.region > b.region) {\n return 1;\n }\n return 0;\n};\n\nclass LighthousesView extends React.Component {\n static propTypes = {\n history: PropTypes.object.isRequired,\n match: PropTypes.object,\n location: PropTypes.object,\n };\n\n constructor(props) {\n super(props);\n\n const {\n match: {\n params: { id },\n },\n location: { search },\n } = props;\n const sq = search.replace(\"?\", \"\").split(\"&\");\n\n this.state = {\n selected: parseInt(id) || undefined,\n zoom: sq.indexOf(\"zoom=1\") > -1,\n showTipBox: false,\n tmpHideTipBox: false,\n loading: false,\n records: [],\n cat1: [],\n cat2: [],\n cat3: [],\n };\n\n this.onTipBoxVisibilityChange = this.onTipBoxVisibilityChange.bind(this);\n }\n\n readLighthouses = () => {\n this.setState({ loading: true });\n const { mapExtent } = this.props;\n const extGeom = olUtils.createPolygonFromExtent(\n olUtils.bufferExtent(mapExtent, 1.2)\n );\n const extFeat = olUtils.createFeatureFromGeometry(extGeom);\n const wktExtent = olUtils.getWktFromFeature(extFeat);\n const request = {\n theme_uuid: config.themes.lighthouses.uuid,\n columns: config.themes.lighthouses.cols,\n filter: {\n filterColumns: [\n {\n comparisonOperator: \"ST_INTERSECTS\",\n name: \"geom\",\n netType: \"geometry\",\n value: \"SRID=\" + config.mapProjCode + \";\" + wktExtent,\n logicalOperator: \"AND\",\n },\n ],\n },\n start: 0,\n limit: 0,\n };\n superagent\n .post(config.adaptiveUrl + \"WebServices/client/DataView.asmx/ReadAny\")\n .send({ request })\n .set(\"X-Adaptive-SRID\", config.mapProjCode)\n .set(\"Accept\", \"application/json\")\n .set(\"Content-Type\", \"application/json\")\n .then((res) => res.body)\n .then((res) => {\n const cat1 = [];\n const cat2 = [];\n const cat3 = [];\n\n if (!res.d.records) {\n this.setState({ loading: false, cat1, cat2, cat3 });\n return;\n }\n\n res.d.records.forEach((r) => {\n const cat = (r.kategori && r.kategori.substring(0, 1)) || null;\n r.olFeature = olUtils.createFeatureFromWkt(r.geom_wkt, r);\n switch (cat) {\n case \"1\":\n cat1.push(r);\n break;\n case \"2\":\n cat2.push(r);\n break;\n default:\n cat3.push(r);\n }\n });\n\n cat1.sort(sortArray);\n cat2.sort(sortArray);\n cat3.sort(sortArray);\n\n this.setState({\n loading: false,\n cat1,\n cat2,\n cat3,\n records: res.d.records,\n });\n });\n };\n\n componentDidMount() {\n this.readLighthouses();\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { fitViewAndZoom } = this.props;\n const { zoom, selected, records } = this.state;\n if (\n prevState.loading &&\n !this.state.loading &&\n prevState.records === 0 &&\n records.length > 0 &&\n zoom\n ) {\n var r = records.find((r) => r.id === selected);\n r && fitViewAndZoom(r.olFeature.getGeometry(), 13);\n }\n\n if (prevState.selected && prevState.selected !== selected) {\n const oldR = this.getRecordById(prevState.selected);\n oldR && oldR.olFeature.set(\"active\", false);\n }\n\n records &&\n records.length &&\n selected &&\n this.getRecordById(this.state.selected) &&\n this.getRecordById(this.state.selected).olFeature.set(\"active\", true);\n\n if (prevProps.mapExtent !== this.props.mapExtent) {\n setTimeout(() => this.readLighthouses(), 50);\n }\n }\n\n getRecordById = (id) => {\n return this.state.records.find((r) => r.id === id);\n };\n\n onRecordSelected = (rid) => {\n const {\n match: {\n params: { id },\n },\n history,\n } = this.props;\n\n if (id && parseInt(id) === rid) {\n history.push(\"/\");\n this.setState({ selected: undefined });\n } else {\n history.push(\"/\" + rid);\n this.setState({ selected: rid });\n }\n };\n\n onTipBoxVisibilityChange() {\n this.setState({ showTipBox: !this.state.showTipBox });\n }\n\n onRowZoomToClick = (r) => {\n const { history, fitViewAndZoom } = this.props;\n history.push(`/${r.id}?zoom=1`);\n\n this.setState({ selected: r.id });\n fitViewAndZoom(r.olFeature.getGeometry(), 10);\n };\n\n featureStyle = (f) => {\n const styles = [];\n const active = f.get(\"active\");\n styles.push(\n new Style({\n image: new Icon({\n scale: 1.4,\n src: active ? lighthouseSelected : lighthouse,\n imgSize: [16, 16],\n }),\n zIndex: active ? 10 : 1,\n })\n );\n\n return styles;\n };\n\n onFeatureSelect = (features) => {\n features[0].set(\"active\", true);\n this.onRecordSelected(features[0].get(\"id\"));\n return false;\n };\n\n onFeatureDeselect = (features) => {\n features[0].set(\"active\", false);\n return false;\n };\n\n render() {\n const { loading, selected, cat1, cat2, cat3, records, showTipBox } =\n this.state;\n const { t } = this.props;\n return (\n
\n \n {showTipBox && (\n <PopupBox\n onClose={this.onTipBoxVisibilityChange}\n closeBtnText={t(\"closeButtonText\")}\n >\n <div dangerouslySetInnerHTML={{ __html: t(\"text\") }}></div>\n </PopupBox>\n )}\n <div className=\"buttons\">\n <button\n title={t(\"toolTip\")}\n className=\"article-view--tip-btn\"\n onClick={() => this.setState({ showTipBox: true })}\n >\n <SVGIcon name=\"info\" />\n </button>\n </div>\n {!loading && (\n <VectorSource\n features={records.map((r) => r.olFeature)}\n selectable={false}\n layerName=\"lighthouses\"\n styleFn={() => this.featureStyle}\n >\n <Select\n onSelect={this.onFeatureSelect}\n onDeselect={this.onFeatureDeselect}\n hitTolerance={6}\n />\n </VectorSource>\n )}\n <Table\n loading={loading}\n records={cat1}\n selected={selected}\n onRowSelected={this.onRecordSelected}\n onRowZoomToClick={this.onRowZoomToClick}\n idProperty=\"id\"\n className=\"cat1\"\n headerKey={\"kat1\"}\n />\n\n <Table\n loading={loading}\n records={cat2}\n selected={selected}\n onRowSelected={this.onRecordSelected}\n onRowZoomToClick={this.onRowZoomToClick}\n idProperty=\"id\"\n className=\"cat2\"\n headerKey={\"kat2\"}\n />\n\n <Table\n loading={loading}\n records={cat3}\n selected={selected}\n onRowSelected={this.onRecordSelected}\n onRowZoomToClick={this.onRowZoomToClick}\n idProperty=\"id\"\n className=\"cat3\"\n headerKey={\"kat3\"}\n />\n </div>\n );\n }\n}\n\nexport default translate(\"Popup\")(withRouter(provideMapState(LighthousesView)));\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nexport default class Title extends React.Component {\n static propTypes = {\n title: PropTypes.string\n };\n\n componentDidMount() {\n this.oldTitle = document.title;\n const { title } = this.props;\n if (title) {\n document.title = title;\n }\n }\n\n componentWillReceiveProps(props) {\n if (props.title) {\n document.title = props.title;\n }\n }\n\n componentWillUnmount() {\n document.title = this.oldTitle;\n }\n\n render() {\n return null;\n }\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport Title from \"../components/Title\";\nimport Loading from \"../components/loading/Loading\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { pageActions } from \"@avinet/react-adaptive-cms\";\nimport { withRouter } from \"react-router-dom\";\nimport { translate } from \"react-translate\";\nimport config from \"../config\";\nimport \"./PageView.scss\";\n\nconst getPath = (location) => {\n var pathname = location.pathname;\n if (config.site === 1 && pathname.indexOf(\"/en\") === 0) {\n pathname = pathname.slice(3);\n }\n return pathname.length > 1 ? pathname.slice(1) : \"index\";\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return bindActionCreators(Object.assign({}, pageActions), dispatch);\n};\n\nconst mapStateToProps = (state) => ({\n page: state.page.page,\n pageLoading: state.page.pageLoading,\n});\n\nclass PageView extends React.Component {\n constructor() {\n super();\n\n this.state = {\n currentPath: \"\",\n };\n }\n\n componentDidMount() {\n const { loadPage, location } = this.props;\n const path = getPath(location);\n this.setState({ currentPath: path });\n loadPage(path);\n }\n\n componentWillReceiveProps(nextProps) {\n const path = getPath(nextProps.location);\n if (path !== this.state.currentPath) {\n this.setState({ currentPath: path });\n nextProps.loadPage(path);\n }\n }\n\n render404() {\n const { t } = this.props;\n return (\n <div>\n <h3>{t(\"pageNotFound\")}</h3>\n <p>\n {t(\"checkAddress\")} <a href=\"/\">{t(\"homePage\")}</a>\n </p>\n </div>\n );\n }\n\n render() {\n const { page, pageLoading } = this.props;\n return (\n <div className=\"page-view--container\">\n <Title\n title={\n (page.is404 ? \"Page not found\" : page.title || \"Loading\") +\n \" - Kystverket\"\n }\n />\n <div className=\"page-view--content\">\n {pageLoading ? (\n <Loading />\n ) : page.is404 ? (\n this.render404()\n ) : (\n <div\n className=\"content\"\n dangerouslySetInnerHTML={{ __html: page.content }}\n />\n )}\n </div>\n </div>\n );\n }\n}\n\nPageView.propTypes = {\n location: PropTypes.object,\n loadPage: PropTypes.func.isRequired,\n pageLoading: PropTypes.bool.isRequired,\n page: PropTypes.object.isRequired,\n t: PropTypes.func.isRequired,\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(withRouter(translate(\"PageView\")(PageView)));\n","import React, { useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport MapLayout from \"../layout/MapLayout\";\nimport PageLayout from \"../layout/PageLayout\";\nimport { Router, Switch, Route, Redirect } from \"react-router-dom\";\nimport { createBrowserHistory } from \"history\";\nimport LighthousesView from \"../views/LighthousesView\";\n\nimport PageView from \"../views/PageView\";\n\nimport config from \"../config\";\n\nconst browserHistory = createBrowserHistory({\n basename: config.basename,\n});\n\nconst SetLang = ({ setLang }) => {\n useEffect(() => {\n setLang(\"en\");\n }, [setLang]);\n\n return <Redirect to=\"/\" />;\n};\n\nconst AppRouter = ({ setLang, lang }) => {\n return (\n <Router history={browserHistory}>\n <Switch>\n <Redirect from=\"/index\" to=\"/\" />\n <Redirect from=\"/no\" to=\"/\" />\n <Route path=\"/en\">\n <SetLang setLang={setLang} />\n </Route>\n <Route path=\"/om\">\n <PageLayout lang={lang} setLang={setLang}>\n <PageView />\n </PageLayout>\n </Route>\n <Route path=\"/om_en\">\n <PageLayout lang={lang} setLang={setLang}>\n <PageView />\n </PageLayout>\n </Route>\n <Route path=\"/\">\n <MapLayout lang={lang} setLang={setLang}>\n <Switch>\n <Route path=\"/:id\" component={LighthousesView} />\n <Route exact path=\"/\" component={LighthousesView} />\n </Switch>\n </MapLayout>\n </Route>\n </Switch>\n </Router>\n );\n};\n\nAppRouter.propTypes = {\n children: PropTypes.node,\n setLang: PropTypes.func,\n lang: PropTypes.string,\n};\n\nexport default AppRouter;\n","import en from \"./en\";\nimport no from \"./no\";\n\nexport default { en, no };\n","export default {\n locale: \"en\",\n\n Table: {\n locale: \"en\",\n description: \"Description, name\",\n region: \"Region\",\n dark: \"Unlit\",\n seamap: \"Chart\",\n owner: \"Owner\",\n categori: \"Categori\",\n sjomerkenr: \"Light no\",\n efsnum: \"NM\",\n kategori: \"Categori\",\n showAll: \"Show all properties\",\n showLess: \"Show less properties\",\n zoomTo: \"Zoom to position\",\n kat1: \"Category 1: Vital navigational significance\",\n kat2: \"Category 2: Important navigational significance\",\n kat3: \"Category 3: Necessary navigational significance\",\n },\n\n App: {\n locale: \"en\",\n },\n MapLayout: {\n locale: \"en\",\n kartlagsVelger: \"Select maplayer\",\n zoomToExtentTip: \"Zoom to start\",\n zoomInTip: \"Zoom in\",\n zoomOutTip: \"Zoom out\",\n },\n Popup: {\n text: \"<p>The provision of information on unlit lights (Aids to Navigation) at Kystinfo is not intended to be a substitute for, or an alternative to the International Enhanced Group Call (EGC) Services or the International NAVTEX service.<p/><p> The provision of information does not relieve Masters/Captains of their responsibility to monitor MSI broadcasts in accordance with the provisions of SOLAS or safety information published in regular Notices to Mariners (NtM).</p>\",\n closeButtonText: \"Close\",\n toolTip: \"See infobox\",\n },\n NavBar: {\n index: \"Home\",\n tooltip: \"Vis på norsk\",\n },\n};\n","export default {\n locale: \"no\",\n\n Table: {\n locale: \"no\",\n description: \"Beskrivelse\",\n region: \"Region\",\n dark: \"Slukket\",\n seamap: \"Sjøkart\",\n owner: \"Eier\",\n categori: \"Kategori\",\n sjomerkenr: \"Sjømerkenr\",\n efsnum: \"EFS nr\",\n kategori: \"Kategori\",\n showAll: \"Vis alle egenskaper\",\n showLess: \"Vis mindre egenskaper\",\n zoomTo: \"Zoom til posisjon\",\n kat1: \"Kategori 1: Avgjørende for sikker navigasjon\",\n kat2: \"Kategori 2: Viktig for sikker navigasjon\",\n kat3: \"Kategori 3: Mindre viktig for sikker navigasjon\",\n },\n\n App: {\n locale: \"no\",\n },\n\n MapLayout: {\n locale: \"no\",\n kartlagsVelger: \"Velg kartlag\",\n zoomInTip: \"Zoom inn\",\n zoomOutTip: \"Zoom ut\",\n zoomToExtentTip: \"Zoom til start\",\n },\n Popup: {\n text: `<p>\nPublisering av slukkede fyrlys på Kystinfo er ikke ment å være en erstatning for, \neller et alternativ til ordinære navigasjonsvarsel.\n</p>\n\n<p>Publiseringen fritar ikke sjøfarende \nfra deres ansvar for å følge med på offisielle navigasjonsvarsel sendt over NAVTEX,\nSafetyCast og SafetyNET i samsvar med nasjonale regler og bestemmelsene i SOLAS, \nsamt sikkerhetsinformasjon gitt i Etterretninger for sjøfarende (Efs).\n</p>`,\n closeButtonText: \"Lukk\",\n toolTip: \"Vis infoboks\",\n },\n\n NavBar: {\n index: \"Hjem\",\n tooltip: \"Show in english\",\n },\n};\n","import React from \"react\";\nimport { TranslatorProvider, useTranslate } from \"react-translate\";\nimport PopupBox from \"./components/PopupBox\";\nimport Router from \"./router\";\nimport translations from \"./translations\";\nimport { Provider } from \"react-redux\";\n\nimport \"./App.scss\";\n\nclass App extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n lang: \"no\",\n showTipBox: true,\n };\n }\n\n getTranslations(lang) {\n return translations[lang];\n }\n\n onClose() {\n this.setState({ showTipBox: false });\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevState.lang && prevState.lang !== this.state.lang)\n this.setState({ showTipBox: true });\n }\n\n render() {\n const { store } = this.props;\n const { showTipBox } = this.state;\n return (\n <Provider store={store}>\n <TranslatorProvider\n translations={this.getTranslations(this.state.lang)}\n >\n <Router\n lang={this.state.lang}\n setLang={(lang) => this.setState({ lang })}\n />\n {showTipBox && <Popup onClose={() => this.onClose()} />}\n </TranslatorProvider>\n </Provider>\n );\n }\n}\n\nexport default App;\nconst Popup = ({ onClose }) => {\n const t = useTranslate(\"Popup\");\n return (\n <PopupBox onClose={onClose} closeBtnText={t(\"closeButtonText\")}>\n <div dangerouslySetInnerHTML={{ __html: t(\"text\") }}></div>\n </PopupBox>\n );\n};\n","import \"react-app-polyfill/ie11\";\nimport \"react-app-polyfill/stable\";\n\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport createStore from \"./redux/createStore\";\nimport { injectReducer } from \"./redux/reducers\";\nimport App from \"./App\";\nimport config from \"./config\";\nimport { CmsConfig } from \"@avinet/react-adaptive-cms\";\nimport \"./index.scss\";\n\nCmsConfig.init(config.adaptiveUrl, config.site);\n\nconst initState = window.__INITIAL_STATE__;\nconst store = createStore(initState);\n\nexport function addReducerToStore(key, reducer) {\n injectReducer(store, { key, reducer });\n}\n\nReactDOM.render(<App store={store} />, document.getElementById(\"root\"));\n","import { applyMiddleware, compose, createStore } from \"redux\";\nimport thunk from \"redux-thunk\";\nimport makeRootReducer from \"./reducers\";\n\nexport default (initialState = {}) => {\n // ======================================================\n // Middleware Configuration\n // ======================================================\n const middleware = [thunk];\n\n // ======================================================\n // Store Enhancers\n // ======================================================\n const enhancers = [];\n if (window.__REDUX_DEVTOOLS_EXTENSION__) {\n enhancers.push(window.__REDUX_DEVTOOLS_EXTENSION__());\n }\n\n let composeEnhancers = compose;\n\n // if (__DEV__) {\n // const composeWithDevToolsExtension = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\n // if (typeof composeWithDevToolsExtension === 'function') {\n // composeEnhancers = composeWithDevToolsExtension\n // }\n // }\n\n // ======================================================\n // Store Instantiation and HMR Setup\n // ======================================================\n const store = createStore(\n makeRootReducer(),\n initialState,\n composeEnhancers(applyMiddleware(...middleware), ...enhancers)\n );\n store.asyncReducers = {};\n\n // To unsubscribe, invoke `store.unsubscribeHistory()` anytime\n\n if (module.hot) {\n module.hot.accept(\"./reducers\", () => {\n const reducers = require(\"./reducers\").default;\n store.replaceReducer(reducers(store.asyncReducers));\n });\n }\n\n return store;\n};\n"],"sourceRoot":""}