{"version":3,"sources":["static/skulenmin_logo_tekst_svart.png","components/Article/SkulenMinListArticle.js","views/ArticleView.js","components/Title.js","components/Carousel.js","components/Icon.js","components/Modal.js","config/skulenmin.js","components/Loading.js","components/Article/SkulenMinArticle.js","views/ArticleDetailView.js","views/CommentsView.js","containers/NavBar.js","hocs/provideViewSize.js","Layouts/CoreLayout.js","Layouts/PageLayout.js","views/PageView.js","routes/index.js","containers/App.js","redux/location.js","redux/reducers.js","index.js","redux/createStore.js"],"names":["module","exports","SkulenMinListArticle","_this$props","this","props","onArticleOpen","thumbnailClassName","color","thumbnail","article","loadImage","validTitle","cleanText","react_default","a","createElement","className","onMouseOver","olFeature","set","onMouseOut","style","borderTop","onClick","lib_default","height","data-original","src","alt","properties","title","dangerouslySetInnerHTML","__html","content","React","Component","ArticleView","_this","Object","classCallCheck","possibleConstructorReturn","getPrototypeOf","call","onSourceSelect","bind","assertThisInitialized","lastMapCenter","lastMapZoom","fitViewAndZoom","olUtils","createPoint","_this$props2","mapCenter","mapZoom","updateMapHistory","sources","_this$props3","history","setActiveSources","push","baseUrl","join","idParts","id","split","btoa","slice","window","scrollTo","activeSources","react_article_module_es","articleComponent","useHoverStyle","_this$props4","match","params","length","filter","s","pressed","dataIndex","map","item","connect","state","mapHistory","lastZoomLevel","dispatch","bindActionCreators","assign","articleActions","mapHistoryActions","withRouter","provideMapState","ensureArticleModuleConfig","Title","oldTitle","document","Carousel","images","settings","onImageClick","galleryCarousel","react_slick_lib_default","img","key","url","comment","icons","search","viewBox","d","pencil","unlock","checkmark","userplus","userminus","cross","profile","share","facebook","googlemaps","load","chevronRight","chevronLeft","info","handClick","Icon","name","Modal","wrapperRef","createRef","handleClickOutside","body","classList","add","addEventListener","removeEventListener","remove","event","target","current","ref","children","PureComponent","skulenmin","adaptiveUrl","articleModuleUuid","recaptchaSiteKey","defaultLanguage","cms_site_id","basename","initExtent","LoadingIndicator","timer","displayLoadingIndicator","_this2","setTimeout","setState","clearTimeout","SkulenMinArticle","initialized","carouselPhotoFullscreen","onModalClose","openModal","globalId","startsWith","loadMedia","prevProps","readMedia","uuid","sourceId","replace","mediaLoading","vimeo","link","provider","aid","photographer","kommune","datering","isFotoApi","isFotoWare","Title_Title","components_Loading","src_components_Carousel","centerMode","centerPadding","dots","infinite","speed","slidesToShow","slidesToScroll","adaptiveHeight","paddingBottom","width","video_id","frameBorder","allowFullScreen","formatContent","href","rel","concat","getGoogleCoords","src_components_Modal","onClose","src_components_Icon","coord","getGeometry","getCoordinates","latlon","transformCoordinate","image","isLokalhistorieWiki","config","JSON","parse","data","beskrivelse","idx","articleId","comments","mediaReducer","records","loading","mediaError","error","scopedBindActionCreators","mediaReducerActions","read","ArticleDetailView","_this$props2$match$pa","enableArticleComments","atob","maxZoom","hideOpenExternalBtn","openArticle","articles","CommentsView","source","toLowerCase","linkToArticle","NavBar","_React$Component","navOpen","searchOpen","onHamburgerClick","onResultSelected","inherits","createClass","value","loadNav","result","_this$state","nav","react_adaptive_cms_es","to","Logo","clearButtonIcon","type","onNavClick","navActions","provideViewSize","WrappedComponent","_class","handleViewSizeChange","viewWidth","innerWidth","viewHeight","innerHeight","CoreLayout","react_openlayers_es","padding","calcMapPadding","src_containers_NavBar","PageLayout","getElementById","display","getPath","location","pathname","PageView","currentPath","loadPage","path","nextProps","page","pageLoading","is404","render404","pageActions","AppRouter","BrowserRouter","Switch","Redirect","exact","from","Route","src_Layouts_CoreLayout","component","src_Layouts_PageLayout","App","center","zoom","reducer","addReducerToStore","store","es","react_translate_lib","translations","nn","baatUrl","SkulenMinConfig","minZoom","extent","track","layerName","version","uri","singleTile","zIndex","useBaat","onSearchInit","enableSearch","routes","LOCATION_CHANGE","initialState","locationReducer","arguments","undefined","action","payload","makeRootReducer","asyncReducers","combineReducers","objectSpread","articleReducer","commentsReducer","navReducer","pageReducer","mapHistoryReducer","injectReducer","_ref","hasOwnProperty","replaceReducer","__webpack_require__","__webpack_exports__","CmsConfig","init","initalState","middleware","thunk","enhancers","__REDUX_DEVTOOLS_EXTENSION__","composeEnhancers","compose","createStore","apply","applyMiddleware","__INITIAL_STATE__","ReactDOM","render","containers_App"],"mappings":"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","file":"static/js/main.c9942b02.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkcAAAB3CAYAAAAJpuRzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpjMzU4NDczZS1kZDQ5LTA4NGYtYjdiZS02MmQxYmQyM2Y2YjUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MUY2QUE2RkEzOUMzMTFFOTkxMDhDQTFBMzk5ODg3N0IiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MUY2QUE2RjkzOUMzMTFFOTkxMDhDQTFBMzk5ODg3N0IiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIEVsZW1lbnRzIDE1LjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkJGRkJBRUYxN0RBMTFFOThEODg4RDA3NkU0MDg5NUMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkJGRkJBRjAxN0RBMTFFOThEODg4RDA3NkU0MDg5NUMiLz4g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\"","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport \"./SkulenMinListArticle.scss\";\r\nimport LazyLoad from \"react-lazyload\";\r\n\r\nexport default class SkulenMinListArticle extends React.Component {\r\n static propTypes = {\r\n onArticleOpen: PropTypes.func.isRequired,\r\n thumbnailClassName: PropTypes.string.isRequired,\r\n color: PropTypes.string.isRequired,\r\n thumbnail: PropTypes.string,\r\n article: PropTypes.object.isRequired,\r\n validTitle: PropTypes.func.isRequired,\r\n cleanText: PropTypes.func.isRequired,\r\n loadImage: PropTypes.bool\r\n };\r\n\r\n render() {\r\n const {\r\n onArticleOpen,\r\n thumbnailClassName,\r\n color,\r\n thumbnail,\r\n article,\r\n loadImage,\r\n validTitle,\r\n cleanText\r\n } = this.props;\r\n\r\n return (\r\n article.olFeature.set(\"hover\", true)}\r\n onMouseOut={() => article.olFeature.set(\"hover\", false)}\r\n style={{ borderTop: \"6px solid \" + color }}\r\n onClick={() => onArticleOpen(article)}\r\n >\r\n \r\n {loadImage ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n {validTitle(article.properties.title) && (\r\n

{article.properties.title}

\r\n )}\r\n \r\n Les meir\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { connect } from \"react-redux\";\r\nimport { bindActionCreators } from \"redux\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport {\r\n Articles,\r\n articleActions,\r\n ensureArticleModuleConfig\r\n} from \"react-article-module\";\r\nimport \"./ArticleView.scss\";\r\nimport SkulenMinListArticle from \"../components/Article/SkulenMinListArticle\";\r\nimport { mapHistoryActions } from \"react-adaptive-utils\";\r\nimport { olUtils, provideMapState } from \"react-openlayers\";\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return bindActionCreators(\r\n Object.assign({}, articleActions, mapHistoryActions),\r\n dispatch\r\n );\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n lastMapCenter: state.mapHistory.lastMapCenter,\r\n lastMapZoom: state.mapHistory.lastZoomLevel\r\n});\r\n\r\nclass ArticleView extends React.Component {\r\n static propTypes = {\r\n history: PropTypes.object.isRequired,\r\n sources: PropTypes.array.isRequired,\r\n match: PropTypes.object.isRequired,\r\n lastMapCenter: PropTypes.array,\r\n lastMapZoom: PropTypes.number\r\n };\r\n\r\n constructor() {\r\n super();\r\n\r\n this.onSourceSelect = this.onSourceSelect.bind(this);\r\n this.onArticleOpen = this.onArticleOpen.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const { lastMapCenter, lastMapZoom, fitViewAndZoom } = this.props;\r\n\r\n if (lastMapCenter && lastMapZoom) {\r\n const mapCenter = olUtils.createPoint(lastMapCenter);\r\n fitViewAndZoom(mapCenter, lastMapZoom);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { mapCenter, mapZoom } = this.props;\r\n this.props.updateMapHistory(mapZoom, mapCenter);\r\n }\r\n\r\n onSourceSelect(sources) {\r\n const { history, setActiveSources } = this.props;\r\n const baseUrl = \"/artiklar\";\r\n history.push(baseUrl + \"/\" + sources.join(\"+\"));\r\n setActiveSources(sources);\r\n }\r\n\r\n onArticleOpen(article) {\r\n const { history } = this.props;\r\n const baseUrl = \"/artikkel\";\r\n const idParts = article.id.split(\"_\");\r\n\r\n history.push(\r\n baseUrl + \"/\" + idParts[0] + \"/\" + btoa(idParts.slice(1).join(\"_\"))\r\n );\r\n\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n get activeSources() {\r\n let {\r\n sources,\r\n match: {\r\n params: { activeSources }\r\n }\r\n } = this.props;\r\n activeSources = activeSources ? activeSources.split(\"+\") : [];\r\n if (!activeSources.length) {\r\n activeSources = sources\r\n .filter(s => {\r\n return s.pressed && s.dataIndex;\r\n })\r\n .map(item => item.dataIndex);\r\n }\r\n\r\n return activeSources;\r\n }\r\n\r\n render() {\r\n const activeSources = this.activeSources;\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withRouter(provideMapState(ensureArticleModuleConfig(ArticleView))));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default class Title extends React.Component {\r\n static propTypes = {\r\n title: PropTypes.string\r\n }\r\n\r\n componentDidMount () {\r\n this.oldTitle = document.title;\r\n const { title } = this.props;\r\n if (title) {\r\n document.title = title;\r\n }\r\n }\r\n\r\n componentWillReceiveProps (props) {\r\n if (props.title) {\r\n document.title = props.title;\r\n }\r\n }\r\n\r\n componentWillUnmount () {\r\n document.title = this.oldTitle;\r\n }\r\n\r\n render () { return null; }\r\n}\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport Slider from \"react-slick\";\r\nimport \"./Carousel.scss\";\r\n\r\nclass Carousel extends React.Component {\r\n render() {\r\n const { images, settings, onImageClick, galleryCarousel } = this.props;\r\n return (\r\n
\r\n {images && (\r\n \r\n {images.map(img => (\r\n
\r\n \r\n {img.comment && (\r\n
{img.comment}
\r\n )}\r\n
\r\n ))}\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nCarousel.propTypes = {\r\n mainImage: PropTypes.string,\r\n images: PropTypes.array,\r\n onImageClick: PropTypes.func,\r\n settings: PropTypes.object,\r\n galleryCarousel: PropTypes.bool\r\n};\r\n\r\nexport default Carousel;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport \"./Icon.scss\";\r\n\r\nconst icons = {\r\n search: (\r\n \r\n \r\n \r\n ),\r\n pencil: (\r\n \r\n \r\n \r\n ),\r\n unlock: (\r\n \r\n \r\n \r\n ),\r\n checkmark: (\r\n \r\n \r\n \r\n ),\r\n userplus: (\r\n \r\n \r\n \r\n \r\n ),\r\n userminus: (\r\n \r\n \r\n \r\n \r\n ),\r\n cross: (\r\n \r\n \r\n \r\n ),\r\n profile: (\r\n \r\n \r\n \r\n ),\r\n share: (\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n facebook: (\r\n \r\n \r\n \r\n ),\r\n googlemaps: (\r\n \r\n \r\n \r\n ),\r\n load: (\r\n \r\n \r\n \r\n ),\r\n chevronRight: (\r\n \r\n \r\n \r\n ),\r\n chevronLeft: (\r\n \r\n \r\n \r\n ),\r\n info: (\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n handClick: (\r\n \r\n \r\n \r\n )\r\n};\r\n\r\nconst Icon = props => {\r\n const { name } = props;\r\n return {icons[name]};\r\n};\r\n\r\nIcon.propTypes = {\r\n name: PropTypes.string.isRequired\r\n};\r\n\r\nexport default Icon;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport './Modal.scss';\r\n\r\nclass Modal extends React.PureComponent {\r\n constructor (props) {\r\n super(props);\r\n this.wrapperRef = React.createRef();\r\n\r\n this.handleClickOutside = this.handleClickOutside.bind(this);\r\n }\r\n componentDidMount () {\r\n document.body.classList.add('modal-open');\r\n document.addEventListener('mousedown', this.handleClickOutside);\r\n }\r\n\r\n componentWillUnmount () {\r\n document.removeEventListener('mousedown', this.handleClickOutside);\r\n document.body.classList.remove('modal-open');\r\n }\r\n\r\n handleClickOutside (event) {\r\n if (event.target === this.wrapperRef.current) {\r\n this.props.handleClickOutside();\r\n }\r\n }\r\n\r\n render () {\r\n return (\r\n
\r\n
{this.props.children}
\r\n
\r\n );\r\n }\r\n}\r\n\r\nModal.propTypes = {\r\n children: PropTypes.element,\r\n handleClickOutside: PropTypes.func\r\n};\r\n\r\nexport default Modal;\r\n","export default {\r\n adaptiveUrl: \"https://www.fylkesatlas.no/\",\r\n // adaptiveUrl: \"http://localhost/a_a3/\",\r\n articleModuleUuid: \"46f13dff-4810-450a-bb3c-19228aa6b9a4\",\r\n // articleModuleUuid: \"5a5f2a57-25f8-4b88-bde7-5fe69a7f0fc7\",\r\n recaptchaSiteKey: \"6LcSGRgTAAAAACBaIBEvrh9_LXE1fDXv7ne74uve\",\r\n defaultLanguage: \"nn\",\r\n cms_site_id: 1,\r\n basename: \"/\",\r\n initExtent: [\r\n 518518.7564631395,\r\n 8386773.637646481,\r\n 1306125.8959135956,\r\n 9057584.997877188\r\n ]\r\n};\r\n","import React from 'react';\r\nimport './Loading.scss';\r\n\r\nclass LoadingIndicator extends React.Component {\r\n constructor (props) {\r\n super(props);\r\n this.state = { timer: null, displayLoadingIndicator: false };\r\n }\r\n\r\n componentWillMount () {\r\n const timer = setTimeout(() => {\r\n this.setState({ timer: null, displayLoadingIndicator: true });\r\n }, 50);\r\n this.setState({ timer });\r\n }\r\n\r\n componentWillUnmount () {\r\n const timer = this.state.timer;\r\n if (timer !== null) {\r\n clearTimeout(timer);\r\n }\r\n }\r\n\r\n render () {\r\n const { displayLoadingIndicator } = this.state;\r\n if (!displayLoadingIndicator) {\r\n return null;\r\n }\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default LoadingIndicator;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport Carousel from \"../Carousel\";\r\nimport Title from \"../Title\";\r\nimport Icon from \"../Icon\";\r\nimport Modal from \"../Modal\";\r\nimport { connect } from \"react-redux\";\r\nimport { olUtils } from \"react-openlayers\";\r\nimport {\r\n mediaReducerActions,\r\n scopedBindActionCreators,\r\n} from \"react-adaptive-utils\";\r\nimport \"./SkulenMinArticle.scss\";\r\nimport config from \"../../config/skulenmin\";\r\nimport Loading from \"../Loading\";\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n readMedia: scopedBindActionCreators(\r\n mediaReducerActions.read,\r\n dispatch,\r\n \"mediaReducer\"\r\n ),\r\n };\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n articleId: state.comments.articleId,\r\n images: state.mediaReducer.records,\r\n mediaLoading: state.mediaReducer.loading,\r\n mediaError: state.mediaReducer.error,\r\n});\r\n\r\nclass SkulenMinArticle extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n initialized: false,\r\n carouselPhotoFullscreen: false,\r\n };\r\n\r\n this.onModalClose = this.onModalClose.bind(this);\r\n this.openModal = this.openModal.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const { article } = this.props;\r\n\r\n if (article && article.globalId.startsWith(\"avdigitheme\")) {\r\n this.loadMedia();\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { article } = this.props;\r\n if (\r\n ((!prevProps.article && article) ||\r\n prevProps.article.id !== article.id) &&\r\n article.globalId.startsWith(\"avdigitheme\")\r\n ) {\r\n this.loadMedia();\r\n }\r\n }\r\n\r\n loadMedia() {\r\n const { article, readMedia } = this.props;\r\n readMedia(article.properties.uuid, article.sourceId);\r\n }\r\n\r\n onModalClose() {\r\n this.setState({ carouselPhotoFullscreen: false });\r\n }\r\n\r\n openModal() {\r\n this.setState({ carouselPhotoFullscreen: true });\r\n }\r\n\r\n formatContent(content) {\r\n return content.replace(/\\n/g, \"
\");\r\n }\r\n\r\n get getGoogleCoords() {\r\n const { article } = this.props;\r\n const coord = article.olFeature.getGeometry().getCoordinates();\r\n const latlon = olUtils.transformCoordinate(coord, \"EPSG:3857\", \"EPSG:4326\");\r\n\r\n return \"maps/search/?api=1&query=\" + latlon[1] + \",\" + latlon[0];\r\n }\r\n\r\n get images() {\r\n const { images, article, image, aid } = this.props;\r\n\r\n var isLokalhistorieWiki = aid && aid.startsWith(\"lokalhistorie\");\r\n\r\n if (article.globalId.startsWith(\"avdigitheme\")) {\r\n return images.map((img) => {\r\n return {\r\n id: img.id,\r\n url:\r\n config.adaptiveUrl +\r\n \"WebServices/generic/Media.asmx/Download?uuid=\" +\r\n img.uuid,\r\n comment: isLokalhistorieWiki\r\n ? JSON.parse(img.data).beskrivelse\r\n : img.comment,\r\n };\r\n });\r\n }\r\n\r\n if (article.properties.images && article.properties.images.length > 0) {\r\n return article.properties.images.map((img, idx) => {\r\n return {\r\n id: idx,\r\n url: img,\r\n };\r\n });\r\n }\r\n\r\n if (image) {\r\n return [\r\n {\r\n id: image,\r\n url: image,\r\n },\r\n ];\r\n }\r\n return undefined;\r\n }\r\n\r\n render() {\r\n const {\r\n title,\r\n content,\r\n mediaLoading,\r\n vimeo,\r\n link,\r\n provider,\r\n aid,\r\n photographer,\r\n kommune,\r\n datering,\r\n } = this.props;\r\n const { carouselPhotoFullscreen } = this.state;\r\n const isFotoApi = aid && aid.startsWith(\"fotoapi\");\r\n const isFotoWare = aid && aid.startsWith(\"fotoware\");\r\n\r\n return (\r\n
\r\n \r\n <h2 className=\"skulenmin--article-content-header\">{title}</h2>\r\n {this.images && this.images.length > 0 && (\r\n <div className=\"carousel-container\">\r\n {mediaLoading && <Loading />}\r\n {!vimeo && (\r\n <Carousel\r\n images={this.images}\r\n onImageClick={this.openModal}\r\n className=\"carousel\"\r\n settings={{\r\n centerMode: true,\r\n centerPadding: 0,\r\n dots: false,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n adaptiveHeight: true,\r\n }}\r\n />\r\n )}\r\n </div>\r\n )}\r\n\r\n {vimeo && (\r\n <div\r\n className=\"article--vimeo\"\r\n style={{\r\n paddingBottom: (100 * vimeo.height) / vimeo.width + \"%\",\r\n }}\r\n >\r\n <iframe\r\n title={title}\r\n src={\"https://player.vimeo.com/video/\" + vimeo.video_id}\r\n frameBorder={0}\r\n allowFullScreen\r\n />\r\n </div>\r\n )}\r\n {(!isFotoApi || !isFotoWare) && (\r\n <div\r\n className=\"skulenmin--article-content\"\r\n dangerouslySetInnerHTML={{ __html: this.formatContent(content) }}\r\n />\r\n )}\r\n {isFotoApi && (\r\n <div className=\"skulenmin--article-content\">\r\n <div className=\"additionalColumn\">\r\n <span className=\"additionalColumnLabel\">Fotograf</span>\r\n <span className=\"additionalColumnContent\">{photographer}</span>\r\n </div>\r\n <div className=\"additionalColumn\">\r\n <span className=\"additionalColumnLabel\">Kommune</span>\r\n <span className=\"additionalColumnContent\">{kommune}</span>\r\n </div>\r\n <div className=\"additionalColumn\">\r\n <span className=\"additionalColumnLabel\">Datering</span>\r\n <span className=\"additionalColumnContent\">{datering}</span>\r\n </div>\r\n </div>\r\n )}\r\n {isFotoWare && (\r\n <div className=\"skulenmin--article-content\">\r\n <div className=\"additionalColumn\">\r\n <span className=\"additionalColumnLabel\">Fotograf</span>\r\n <span className=\"additionalColumnContent\">{photographer}</span>\r\n </div>\r\n <div className=\"additionalColumn\">\r\n <span className=\"additionalColumnLabel\">Kommune</span>\r\n <span className=\"additionalColumnContent\">{kommune}</span>\r\n </div>\r\n <div className=\"additionalColumn\">\r\n <span className=\"additionalColumnLabel\">Datering</span>\r\n <span className=\"additionalColumnContent\">{datering}</span>\r\n </div>\r\n </div>\r\n )}\r\n {provider && (\r\n <div className=\"skulenmin--article-source\">\r\n <span>Kjelde:</span>\r\n {provider}\r\n </div>\r\n )}\r\n <div className=\"skulenmin--article--button-bar\">\r\n <a\r\n href={link}\r\n className=\"link-button share-btn\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n >\r\n {/* <Icon name=\"share\" /> */}\r\n <span className=\"link-button-text\">Opne kjelde</span>\r\n </a>\r\n <a\r\n href={`https://www.google.com/${this.getGoogleCoords}`}\r\n className=\"link-button\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n >\r\n {/* <Icon name=\"googlemaps\" /> */}\r\n <span className=\"link-button-text\">Opne i Google Maps</span>\r\n </a>\r\n </div>\r\n {carouselPhotoFullscreen && (\r\n <Modal\r\n onClose={this.onModalClose}\r\n handleClickOutside={this.onModalClose}\r\n >\r\n <div className=\"modal-carousel\">\r\n <button\r\n className=\"modal-carousel--close\"\r\n onClick={this.onModalClose}\r\n >\r\n <Icon name=\"cross\" />\r\n </button>\r\n <Carousel\r\n galleryCarousel\r\n images={this.images}\r\n settings={{\r\n centerMode: true,\r\n centerPadding: 0,\r\n dots: false,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n }}\r\n />\r\n </div>\r\n </Modal>\r\n )}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nSkulenMinArticle.propTypes = {\r\n article: PropTypes.object,\r\n title: PropTypes.string,\r\n content: PropTypes.string,\r\n images: PropTypes.array,\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(SkulenMinArticle);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport Title from \"../components/Title\";\r\nimport SkulenMinArticle from \"../components/Article/SkulenMinArticle\";\r\nimport Icon from \"../components/Icon\";\r\nimport { connect } from \"react-redux\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport {\r\n ArticleWindow,\r\n ensureArticleModuleConfig,\r\n ArticleComments,\r\n} from \"react-article-module\";\r\nimport \"./ArticleDetailView.scss\";\r\n\r\nconst mapStateToProps = (state) => ({\r\n activeSources: state.articles.activeSources,\r\n articles: state.articles,\r\n});\r\n\r\nclass ArticleDetailView extends React.Component {\r\n constructor() {\r\n super();\r\n\r\n this.onClose = this.onClose.bind(this);\r\n }\r\n\r\n onClose() {\r\n const { history, activeSources } = this.props;\r\n\r\n history.push(\r\n \"/artiklar/\" +\r\n (activeSources && activeSources.length > 0\r\n ? activeSources.join(\"+\")\r\n : \"\")\r\n );\r\n }\r\n\r\n onArticleOpen = (article) => {\r\n const { history } = this.props;\r\n const baseUrl = \"/artikkel\";\r\n const idParts = article.id.split(\"_\");\r\n\r\n history.push(\r\n baseUrl + \"/\" + idParts[0] + \"/\" + btoa(idParts.slice(1).join(\"_\"))\r\n );\r\n\r\n window.scrollTo(0, 0);\r\n };\r\n\r\n render() {\r\n const {\r\n match: {\r\n params: { sourceId, articleId },\r\n },\r\n enableArticleComments,\r\n } = this.props;\r\n\r\n const aid = sourceId + \"_\" + atob(articleId);\r\n\r\n return (\r\n <div className=\"article-detail-view--container\">\r\n <Title title=\"Skulen min\" />\r\n <ArticleWindow\r\n articleComponent={SkulenMinArticle}\r\n id={aid}\r\n maxZoom={16}\r\n hideOpenExternalBtn\r\n >\r\n <div className=\"article-detail-view--children\">\r\n <button\r\n className=\"article-detail-view--close-btn btn\"\r\n onClick={this.onClose}\r\n >\r\n <Icon name=\"cross\" />\r\n </button>\r\n {enableArticleComments && (\r\n <ArticleComments id={aid} openArticle={this.onArticleOpen} />\r\n )}\r\n </div>\r\n </ArticleWindow>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nArticleDetailView.propTypes = {\r\n match: PropTypes.object.isRequired,\r\n history: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default connect(mapStateToProps)(\r\n ensureArticleModuleConfig(withRouter(ArticleDetailView))\r\n);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { Comments } from \"react-article-module\";\r\nimport \"./CommentsView.scss\";\r\n\r\nclass CommentsView extends React.Component {\r\n constructor() {\r\n super();\r\n\r\n this.openArticle = this.openArticle.bind(this);\r\n }\r\n\r\n openArticle(globalId, articleId, source) {\r\n const { history } = this.props;\r\n if (source) {\r\n history.push(\r\n \"artikkel/\" +\r\n [\r\n source.dataIndex,\r\n btoa(\r\n articleId\r\n .split(\"_\")\r\n .slice(1)\r\n .join(\"_\")\r\n ),\r\n ].join(\"/\")\r\n );\r\n } else {\r\n let source = globalId\r\n .split(\"_\")\r\n .slice(0)[0]\r\n .toLowerCase();\r\n switch (source) {\r\n case \"lokalhistoriewiki\":\r\n source = \"5dmvvwku\";\r\n break;\r\n case \"flickr\":\r\n source = \"0482kzyo\";\r\n break;\r\n case \"fotoapi\":\r\n source = \"8lp162ea\";\r\n break;\r\n case \"fotoware\":\r\n source = \"5v220tnn\";\r\n break;\r\n case \"norvegiana\":\r\n source = \"no0xkhyh\";\r\n break;\r\n default:\r\n return source;\r\n }\r\n history.push(\r\n \"artikkel/\" +\r\n [\r\n source,\r\n btoa(\r\n globalId\r\n .split(\"_\")\r\n .slice(1)\r\n .join(\"_\")\r\n ),\r\n ].join(\"/\")\r\n );\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"comments--container\">\r\n <div className=\"comments--content\">\r\n <Comments linkToArticle openArticle={this.openArticle} />\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nCommentsView.propTypes = {\r\n history: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default CommentsView;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport Icon from \"../components/Icon\";\r\nimport { Search } from \"react-article-module\";\r\nimport { bindActionCreators } from \"redux\";\r\nimport { connect } from \"react-redux\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { Nav, Link, navActions } from \"react-adaptive-cms\";\r\n\r\nimport Logo from \"../static/skulenmin_logo_tekst_svart.png\";\r\nimport \"./NavBar.scss\";\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return bindActionCreators(Object.assign({}, navActions), dispatch);\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n nav: state.nav.nav\r\n});\r\n\r\nexport class NavBar extends React.Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n navOpen: false,\r\n searchOpen: false\r\n };\r\n this.onHamburgerClick = this.onHamburgerClick.bind(this);\r\n this.onResultSelected = this.onResultSelected.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const { loadNav } = this.props;\r\n loadNav();\r\n }\r\n\r\n onHamburgerClick() {\r\n const { navOpen } = this.state;\r\n this.setState({ navOpen: !navOpen });\r\n }\r\n\r\n onResultSelected(result, source) {\r\n const { history } = this.props;\r\n history.push(\r\n \"/artikkel/\" +\r\n [\r\n source.dataIndex,\r\n btoa(\r\n result.id\r\n .split(\"_\")\r\n .slice(1)\r\n .join(\"_\")\r\n )\r\n ].join(\"/\")\r\n );\r\n this.setState({ searchOpen: false });\r\n }\r\n\r\n render() {\r\n const { searchOpen, navOpen } = this.state;\r\n const { nav } = this.props;\r\n return (\r\n <div className=\"nav\">\r\n <Link to=\"/\" className=\"nav--logo\">\r\n <img src={Logo} alt=\"Site Logo\" />\r\n </Link>\r\n <div\r\n className={[\r\n \"nav-bar--search\",\r\n !searchOpen ? \"nav-bar--search-hidden\" : \"\"\r\n ].join(\" \")}\r\n >\r\n {searchOpen && (\r\n <Search\r\n clearButtonIcon={<Icon name=\"cross\" />}\r\n onResultSelected={this.onResultSelected}\r\n />\r\n )}\r\n </div>\r\n <button\r\n className={\r\n searchOpen\r\n ? \"nav-bar--search-button nav-bar--search-active\"\r\n : \"nav-bar--search-button\"\r\n }\r\n onClick={() => this.setState({ searchOpen: !searchOpen })}\r\n >\r\n <Icon name=\"search\" />\r\n </button>\r\n <div\r\n className={[\"nav--menu\", navOpen ? \"nav--menu-active\" : \"\"].join(\" \")}\r\n >\r\n <input\r\n type=\"checkbox\"\r\n className=\"nav--hamburger\"\r\n onClick={this.onHamburgerClick}\r\n />\r\n <span />\r\n <span />\r\n <span />\r\n <Nav nav={nav} onNavClick={this.onHamburgerClick} />\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nNavBar.propTypes = {\r\n loadNav: PropTypes.func,\r\n history: PropTypes.object.isRequired,\r\n nav: PropTypes.array\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withRouter(NavBar));\r\n","import React from 'react';\r\n\r\n/**\r\n * Higher order component (HOC) that allows any other component to monitor view\r\n * state.\r\n *\r\n * Provides props viewWidth, viewHeight.\r\n */\r\nexport function provideViewSize (WrappedComponent) {\r\n return class extends React.Component {\r\n constructor () {\r\n super();\r\n this.handleViewSizeChange = this.handleViewSizeChange.bind(this);\r\n this.state = {\r\n viewWidth: window.innerWidth,\r\n viewHeight: window.innerHeight\r\n };\r\n }\r\n\r\n componentDidMount () {\r\n window.addEventListener('resize', this.handleViewSizeChange);\r\n }\r\n\r\n componentWillUnmount () {\r\n window.removeEventListener('resize', this.handleViewSizeChange);\r\n }\r\n\r\n handleViewSizeChange () {\r\n this.setState({\r\n viewWidth: window.innerWidth,\r\n viewHeight: window.innerHeight\r\n });\r\n }\r\n\r\n render () {\r\n return <WrappedComponent viewHeight={this.state.viewHeight} viewWidth={this.state.viewWidth} {...this.props} />;\r\n }\r\n };\r\n}\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport NavBar from \"../containers/NavBar\";\r\nimport { connect } from \"react-redux\";\r\nimport { MapPadding } from \"react-openlayers\";\r\nimport { provideViewSize } from \"../hocs/provideViewSize\";\r\nimport \"./CoreLayout.scss\";\r\n\r\nconst mapDispatchToProps = {};\r\nconst mapStateToProps = state => ({});\r\n\r\nclass CoreLayout extends React.Component {\r\n static propTypes = {\r\n children: PropTypes.any,\r\n viewWidth: PropTypes.number,\r\n viewHeight: PropTypes.number\r\n };\r\n\r\n calcMapPadding() {\r\n const { viewHeight, viewWidth } = this.props;\r\n if (viewWidth < 769) {\r\n return [50, 0, (6 * viewHeight) / 10, 0];\r\n }\r\n if (viewWidth < 1260) {\r\n return [0, 400, 0, 0];\r\n }\r\n return [0, 440, 0, 0];\r\n }\r\n\r\n render() {\r\n const { children } = this.props;\r\n return (\r\n <div className=\"core-layout--root\">\r\n <MapPadding padding={this.calcMapPadding()} />\r\n <NavBar />\r\n <div className=\"core-layout--components\">{children}</div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(provideViewSize(CoreLayout));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport NavBar from '../containers/NavBar';\r\nimport { connect } from 'react-redux';\r\nimport { MapPadding } from 'react-openlayers';\r\nimport { provideViewSize } from '../hocs/provideViewSize';\r\nimport './PageLayout.scss';\r\n\r\nconst mapDispatchToProps = {};\r\n\r\nconst mapStateToProps = state => ({});\r\n\r\nclass PageLayout extends React.Component {\r\n static propTypes = {\r\n children: PropTypes.any,\r\n viewWidth: PropTypes.number,\r\n viewHeight: PropTypes.number\r\n };\r\n\r\n componentDidMount () {\r\n const map = document.getElementById('react-openlayers-map-1');\r\n map.style.display = 'none';\r\n }\r\n\r\n componentWillUnmount () {\r\n const map = document.getElementById('react-openlayers-map-1');\r\n map.style.display = 'block';\r\n }\r\n\r\n calcMapPadding () {\r\n const { viewHeight, viewWidth } = this.props;\r\n if (viewWidth < 769) {\r\n return [50, 0, (6 * viewHeight) / 10, 0];\r\n }\r\n if (viewWidth < 1260) {\r\n return [0, 400, 0, 0];\r\n }\r\n return [0, 440, 0, 0];\r\n }\r\n\r\n render () {\r\n const { children } = this.props;\r\n return (\r\n <div className='page-layout--root'>\r\n <MapPadding padding={this.calcMapPadding()} />\r\n <NavBar />\r\n <div className='page-layout--components'>{children}</div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(provideViewSize(PageLayout));\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport Title from \"../components/Title\";\r\nimport Loading from \"../components/Loading\";\r\nimport { connect } from \"react-redux\";\r\nimport { bindActionCreators } from \"redux\";\r\nimport { pageActions } from \"react-adaptive-cms\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport \"./PageView.scss\";\r\n\r\nconst getPath = location => {\r\n return location.pathname.length > 1 ? location.pathname.slice(1) : \"index\";\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return bindActionCreators(Object.assign({}, pageActions), dispatch);\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n page: state.page.page,\r\n pageLoading: state.page.pageLoading\r\n});\r\n\r\nclass PageView extends React.Component {\r\n constructor() {\r\n super();\r\n\r\n this.state = {\r\n currentPath: \"\"\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const { loadPage, location } = this.props;\r\n const path = getPath(location);\r\n this.setState({ currentPath: path });\r\n loadPage(path);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const path = getPath(nextProps.location);\r\n if (path !== this.state.currentPath) {\r\n this.setState({ currentPath: path });\r\n nextProps.loadPage(path);\r\n }\r\n }\r\n\r\n render404() {\r\n return (\r\n <div>\r\n <h3>Siden ble ikke funnet</h3>\r\n <p>\r\n Vennligst kontroller adressen eller <a href=\"/\">gå til hjemmesiden</a>\r\n </p>\r\n </div>\r\n );\r\n }\r\n\r\n render() {\r\n const { page, pageLoading } = this.props;\r\n return (\r\n <div className=\"page-view--container\">\r\n <Title\r\n title={\r\n (page.is404 ? \"Page not found\" : page.title || \"Loading\") +\r\n \" - Kystverket\"\r\n }\r\n />\r\n <div\r\n className=\"page-view--content artwork--container\"\r\n id=\"pageView-scrollPane\"\r\n >\r\n {pageLoading ? (\r\n <Loading />\r\n ) : page.is404 ? (\r\n this.render404()\r\n ) : (\r\n <div\r\n className=\"content\"\r\n dangerouslySetInnerHTML={{ __html: page.content }}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nPageView.propTypes = {\r\n location: PropTypes.object,\r\n loadPage: PropTypes.func.isRequired,\r\n pageLoading: PropTypes.bool.isRequired,\r\n page: PropTypes.object.isRequired\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withRouter(PageView));\r\n","import React from \"react\";\r\nimport ArticleView from \"../views/ArticleView\";\r\nimport ArticleDetailView from \"../views/ArticleDetailView\";\r\nimport CommentsView from \"../views/CommentsView\";\r\nimport CoreLayout from \"../Layouts/CoreLayout\";\r\nimport PageLayout from \"../Layouts/PageLayout\";\r\nimport PageView from \"../views/PageView\";\r\nimport {\r\n BrowserRouter as Router,\r\n Route,\r\n Switch,\r\n Redirect\r\n} from \"react-router-dom\";\r\n\r\nclass AppRouter extends React.Component {\r\n render() {\r\n return (\r\n <Router>\r\n <Switch>\r\n <Redirect exact from=\"/\" to=\"artiklar\" />\r\n <Route path=\"/artiklar\">\r\n <CoreLayout>\r\n <Route path=\"/artiklar/:activeSources?\" component={ArticleView} />\r\n </CoreLayout>\r\n </Route>\r\n <Route path=\"/artikkel\">\r\n <CoreLayout>\r\n <Route\r\n path=\"/artikkel/:sourceId/:articleId\"\r\n component={ArticleDetailView}\r\n />\r\n </CoreLayout>\r\n </Route>\r\n <Route path=\"/kommentarar\">\r\n <CoreLayout>\r\n <Route component={CommentsView} />\r\n </CoreLayout>\r\n </Route>\r\n <Route path=\"/\">\r\n <PageLayout>\r\n <Switch>\r\n <Route path=\"/:page*\" component={PageView} />\r\n </Switch>\r\n </PageLayout>\r\n </Route>\r\n </Switch>\r\n </Router>\r\n );\r\n }\r\n}\r\n\r\nexport default AppRouter;\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport Router from \"../routes\";\r\nimport { Provider } from \"react-redux\";\r\nimport { Map, WmsLayer } from \"react-openlayers\";\r\nimport { TranslatorProvider } from \"react-translate\";\r\nimport { translations, ArticleModule } from \"react-article-module\";\r\nimport SkulenMinConfig from \"../config/skulenmin\";\r\nimport { addReducerToStore } from \"../index\";\r\n\r\nclass App extends Component {\r\n static propTypes = {\r\n store: PropTypes.object.isRequired\r\n };\r\n\r\n state = {\r\n center: window.innerWidth > 768 ? [782700, 8741950] : [2000000, 8762353],\r\n zoom: window.innerWidth > 768 ? 9 : 7\r\n };\r\n\r\n onSearchInit(reducer) {\r\n addReducerToStore(\"searchSources\", reducer);\r\n }\r\n\r\n render() {\r\n const { center } = this.state;\r\n const { store } = this.props;\r\n return (\r\n <Provider store={store}>\r\n <TranslatorProvider translations={translations.nn}>\r\n <Map\r\n baatUrl={SkulenMinConfig.adaptiveUrl}\r\n center={center}\r\n minZoom={4}\r\n maxZoom={18}\r\n extent={SkulenMinConfig.initExtent}\r\n track\r\n >\r\n <WmsLayer\r\n key=\"europakart\"\r\n name=\"Europakart\"\r\n id=\"europakart\"\r\n layerName={[\r\n \"Vmap0Hav\",\r\n \"Vmap0Land\",\r\n \"Land\",\r\n \"Vmap0Kystkontur\",\r\n \"Vmap0AdministrativeGrenser\"\r\n ].join(\",\")}\r\n version=\"1.1.1\"\r\n uri=\"https://wms.geonorge.no/skwms1/wms.europa?\"\r\n singleTile\r\n zIndex={-4}\r\n />\r\n <WmsLayer\r\n key=\"norgeskart\"\r\n name=\"Norgeskart\"\r\n uri={[\r\n \"https://gatekeeper1.geonorge.no/BaatGatekeeper/gk/gk.cache\",\r\n \"https://gatekeeper2.geonorge.no/BaatGatekeeper/gk/gk.cache\",\r\n \"https://gatekeeper3.geonorge.no/BaatGatekeeper/gk/gk.cache\"\r\n ]}\r\n id=\"norges_grunnkart\"\r\n layerName=\"norges_grunnkart\"\r\n version=\"1.1.1\"\r\n zIndex={-3}\r\n useBaat\r\n />\r\n <ArticleModule\r\n adaptiveUrl={SkulenMinConfig.adaptiveUrl}\r\n articleModuleUuid={SkulenMinConfig.articleModuleUuid}\r\n onSearchInit={this.onSearchInit}\r\n enableSearch\r\n singleTile\r\n >\r\n <Router />\r\n </ArticleModule>\r\n </Map>\r\n </TranslatorProvider>\r\n </Provider>\r\n );\r\n }\r\n}\r\n\r\nexport default App;\r\n","// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const LOCATION_CHANGE = 'LOCATION_CHANGE';\r\n\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nexport function locationChange (location = '/') {\r\n return {\r\n type: LOCATION_CHANGE,\r\n payload: location\r\n };\r\n}\r\n\r\n// ------------------------------------\r\n// Specialized Action Creator\r\n// ------------------------------------\r\nexport const updateLocation = ({ dispatch }) => {\r\n return (nextLocation) => dispatch(locationChange(nextLocation));\r\n};\r\n\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = null;\r\nexport default function locationReducer (state = initialState, action) {\r\n return action.type === LOCATION_CHANGE\r\n ? action.payload\r\n : state;\r\n}\r\n","import { combineReducers } from \"redux\";\r\nimport locationReducer from \"./location\";\r\nimport { articleReducer, commentsReducer } from \"react-article-module\";\r\nimport { navReducer, pageReducer } from \"react-adaptive-cms\";\r\nimport { mapHistoryReducer, mediaReducer } from \"react-adaptive-utils\";\r\nimport config from \"../config/skulenmin\";\r\n\r\nexport const makeRootReducer = asyncReducers => {\r\n return combineReducers({\r\n location: locationReducer,\r\n articles: articleReducer,\r\n comments: commentsReducer,\r\n nav: navReducer,\r\n page: pageReducer,\r\n mapHistory: mapHistoryReducer,\r\n mediaReducer: mediaReducer(\"mediaReducer\", config.adaptiveUrl),\r\n ...asyncReducers\r\n });\r\n};\r\n\r\nexport const injectReducer = (store, { key, reducer }) => {\r\n if (Object.hasOwnProperty.call(store.asyncReducers, key)) return;\r\n\r\n store.asyncReducers[key] = reducer;\r\n store.replaceReducer(makeRootReducer(store.asyncReducers));\r\n};\r\n\r\nexport default makeRootReducer;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './containers/App';\r\nimport createStore from './redux/createStore';\r\nimport { CmsConfig } from 'react-adaptive-cms';\r\nimport { injectReducer } from './redux/reducers';\r\nimport SkulenMinConfig from './config/skulenmin';\r\n\r\nimport 'babel-polyfill';\r\nimport './index.scss';\r\n\r\nCmsConfig.init(\r\n SkulenMinConfig.adaptiveUrl,\r\n SkulenMinConfig.cms_site_id\r\n);\r\n\r\nconst initState = window.__INITIAL_STATE__;\r\nconst store = createStore(initState);\r\n\r\nexport function addReducerToStore(key, reducer) {\r\n injectReducer(store, { key, reducer });\r\n}\r\n\r\nReactDOM.render(<App store={store} />, document.getElementById('root'));\r\n","import { applyMiddleware, compose, createStore } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport makeRootReducer from './reducers';\r\n\r\nexport default (initalState = {}) => {\r\n // Middleware Configuration\r\n const middleware = [thunk];\r\n\r\n // eslint-disable-next-line\r\n if (process.env.NODE_ENV !== 'production') {\r\n middleware.push();\r\n }\r\n // Store Enhancers\r\n const enhancers = [];\r\n if (window.__REDUX_DEVTOOLS_EXTENSION__) {\r\n enhancers.push(window.__REDUX_DEVTOOLS_EXTENSION__());\r\n }\r\n\r\n let composeEnhancers = compose;\r\n\r\n // Store Instatiation and HMR Setup\r\n const store = createStore(\r\n makeRootReducer(),\r\n initalState,\r\n composeEnhancers(applyMiddleware(...middleware), ...enhancers)\r\n );\r\n\r\n store.asyncReducers = {};\r\n\r\n // eslint-disable-next-line\r\n if (module.hot) {\r\n // eslint-disable-next-line\r\n module.hot.accept('./reducers', () => {\r\n // eslint-disable-next-line\r\n const reducers = require('./reducers').default;\r\n store.replaceReducer(reducers(store.asyncReducers));\r\n });\r\n }\r\n return store;\r\n};\r\n"],"sourceRoot":""}