{"version":3,"file":"static/js/7645.d1423aef.js","mappings":"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","sources":["webpack://finnish-art/./src/components/Base/HyperlinkMixin.js","webpack://finnish-art/./src/components/Base/IntersectionObserverMixin.js","webpack://finnish-art/./src/components/Home/HeroMixin.js","webpack://finnish-art/./src/components/Home/Articles.vue","webpack://finnish-art/./src/components/Home/Articles.vue?11fc","webpack://finnish-art/src/components/Home/Articles.vue","webpack://finnish-art/./src/components/Home/Articles.vue?07c0"],"sourcesContent":["/**\n * Methods for linking between views.\n */\nexport default {\n methods: {\n /**\n * Item name as slug for url.\n */\n getSlugUrlName: function (item) {\n let urlName = '-';\n if (item && item.Name) {\n urlName = item.Name\n // convert all whitespaces to \"-\"\n .replace(/\\s/g, '-')\n .replace('&', '_')\n .replace(/[^\\w-åäöÅÄÖ]+/g, '')\n // remove all non-wordchars and some exceptions\n .replace(/\\u00BF-\\u1FFF\\u2C00-\\uD7FF\\w/gi, ''); // this one is from stackoverflow\n }\n return urlName;\n },\n\n /**\n * Get route to an item.\n * The complex way.\n */\n getRoute: function (item, params, itemType) {\n let pathName = this.$store.getters['ux/getLocale'];\n const useProfile = this.$store.getters['ux/getUseProfile'];\n switch (itemType) {\n case 'Actor':\n pathName += '.ActorPage';\n break;\n case 'Actors':\n pathName += '.Actors';\n break;\n case 'FeatureArticle':\n pathName += '.ArticlePage';\n break;\n case 'FeatureArticles':\n pathName += '.Articles';\n break;\n case 'Artwork':\n pathName += '.ArtworkPage';\n break;\n case 'Artworks':\n pathName += '.Artworks';\n break;\n case 'Audio':\n pathName += '.AudioPage';\n // audio resource wrappers may not always carry Id, in which case route is impossible to format\n if (!item || !item.Id) {\n return {};\n }\n break;\n case 'Audios':\n pathName += '.Audios';\n break;\n case 'Collection':\n pathName += '.CollectionPage';\n break;\n case 'Collections':\n pathName += '.Collections';\n break;\n case 'Event':\n pathName += '.EventPage';\n break;\n case 'Events':\n pathName += '.Events';\n break;\n case 'Gallery':\n pathName += '.GalleryPage';\n break;\n case 'Galleries':\n pathName += '.Galleries';\n break;\n case 'Museum':\n pathName += '.MuseumPage';\n break;\n case 'Museums':\n pathName += '.Museums';\n break;\n case 'Organization':\n pathName += '.OrganizationPage';\n break;\n case 'Organizations':\n pathName += '.Organizations';\n break;\n case 'Video':\n pathName += '.VideoPage';\n // video resource wrappers may not always carry Id, in which case route is impossible to format\n if (!item || !item.Id) {\n return {};\n }\n break;\n case 'Videos':\n pathName += '.Videos';\n break;\n case 'Community':\n pathName += '.CommunityHome';\n break;\n default:\n // TODO: use the parameter as path name itself\n pathName = itemType;\n }\n\n let route;\n if (item) {\n const urlName = this.getSlugUrlName(item);\n\n // - displayed section can be a combination of different subpages\n // - given params override these defaults\n route = {\n name: pathName,\n params: _.extend({}, { // path params\n id: (item.Id || item.ActorId),\n urlName: urlName\n }, params),\n query: { // other url params (?...&...)\n UseProfile: useProfile\n }\n };\n }\n else {\n route = { name: pathName };\n }\n return route;\n },\n\n\n /**\n * Get route to an item.\n * The simple way.\n */\n getLocalizedRoute: function (view, locale, query = {}, params = {}) {\n let route = {};\n if (view && locale) {\n route = { name: `${locale}.${view}`, params, query };\n }\n return route;\n }\n }\n};\n","export default {\n\n props: {\n disableIntersectionObserver: { type: Boolean }\n },\n\n data: function () {\n const intersectionOptions = {\n rootMargin: '400px 200px',\n threshold: 0\n };\n return {\n observeVisibilityOptions: {\n callback: this.visibilityChanged,\n throttle: 300,\n throttleOptions: {leading: 'visible'},\n intersection: intersectionOptions\n },\n isIntersectionVisible: false,\n intersectionRemainsVisible: false,\n intersectionHideTimeout: 5000,\n intersectionOptions, // for customized components using the defaults\n debouncedHide: null\n };\n },\n\n created: function () {\n if (this.disableIntersectionObserver\n || this.isTestEnv) {\n\n this.isIntersectionVisible = true;\n }\n },\n\n mounted: function () {\n this.debouncedHide = _.debounce(this.onIntersectHide, this.intersectionHideTimeout, {trailing: true});\n },\n\n beforeDestroy: function () {\n this.debouncedHide.cancel();\n this.debouncedHide = null;\n },\n\n methods: {\n visibilityChanged: function (isVisible, entry) {\n if (this.disableIntersectionObserver) {\n return;\n }\n\n /**\n * was hidden, now shown\n */\n if (!this.isIntersectionVisible && isVisible && this.intersectionOptions) {\n this.debouncedHide.cancel();\n\n this.isIntersectionVisible = isVisible; // set before onIntersectShow\n this.onIntersectShow(entry);\n\n // if intersection should remain visible, v-observe-visibility options can be set to false\n if (this.intersectionRemainsVisible) {\n this.intersectionOptions = false; // basically should halt the v-observe-visibility\n }\n }\n /**\n * was shown, now hidden\n */\n else if (this.isIntersectionVisible && !isVisible && !this.intersectionRemainsVisible) {\n this.isIntersectionVisible = isVisible;\n this.debouncedHide(entry);\n }\n else {\n this.isIntersectionVisible = isVisible;\n }\n },\n\n onIntersectShow: function (entry) {\n // console.log(`${this.$vnode && this.$vnode.tag} returning visible`);\n },\n\n onIntersectHide: function (entry) {\n // console.log(`${this.$vnode && this.$vnode.tag} turning invisible`);\n }\n }\n};\n","import IntersectionObserverMixin from '@/components/Base/IntersectionObserverMixin';\nimport HyperlinkMixin from '@/components/Base/HyperlinkMixin';\n\nexport default {\n\n props: {\n items: { type: Array[Object] }\n },\n\n mixins: [ IntersectionObserverMixin, HyperlinkMixin ],\n\n data: function () {\n return {\n ready: true,\n error: null\n };\n },\n\n mounted: function () {\n this.initSection();\n },\n\n watch: {\n items: function () {\n this.initSection();\n }\n },\n\n methods: {\n initSection: function () {\n this.ready = (this.items && this.items.length);\n },\n\n getLocalizedSearchRoute: function (view, query = {}) {\n return this.getLocalizedRoute(view, this.$i18n.locale, query);\n }\n }\n};\n","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n {\n directives: [\n {\n name: \"observe-visibility\",\n rawName: \"v-observe-visibility\",\n value: _vm.observeVisibilityOptions,\n expression: \"observeVisibilityOptions\",\n },\n ],\n staticClass: \"home-articles\",\n },\n [\n _vm.firstItems.length || _vm.spotlight\n ? _c(\n \"segment\",\n {\n attrs: { title: _vm.$t(\"home.articles\") },\n scopedSlots: _vm._u(\n [\n {\n key: \"display-options\",\n fn: function () {\n return [\n _vm.firstItems.length && _vm.isIntersectionVisible\n ? _c(\n \"div\",\n { staticClass: \"display-option show-all\" },\n [\n _c(\n \"router-link\",\n {\n attrs: {\n to: _vm.getLocalizedSearchRoute(\n \"Articles\"\n ),\n },\n },\n [\n _c(\"icon-plus-circle-outline\", {\n attrs: { title: \"\" },\n }),\n _c(\"span\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.$t(\"common.showAll\"))),\n ]),\n ],\n 1\n ),\n ],\n 1\n )\n : _vm._e(),\n ]\n },\n proxy: true,\n },\n ],\n null,\n false,\n 2913079320\n ),\n },\n [\n _vm.isIntersectionVisible\n ? _c(\"div\", { staticClass: \"card-container is-ancestor\" }, [\n _vm.spotlight\n ? _c(\n \"div\",\n { staticClass: \"spotlight\" },\n [\n _c(\"feature-article-card\", {\n attrs: {\n item: _vm.spotlight,\n hero: true,\n header: false,\n resolution: { x: \"100vw\" },\n \"image-as-background\": false,\n social: false,\n },\n }),\n ],\n 1\n )\n : _vm._e(),\n _vm.firstItems && _vm.firstItems.length\n ? _c(\n \"div\",\n { staticClass: \"feature-articles\" },\n _vm._l(_vm.firstItems, function (item, index) {\n return _c(\"feature-article-card\", {\n key: \"a\" + index,\n attrs: {\n item: item,\n hero: true,\n header: false,\n \"link-to\": true,\n resolution: { x: \"80vw\" },\n \"image-as-background\": false,\n \"use-palette\": true,\n social: false,\n contents: true,\n },\n })\n }),\n 1\n )\n : _vm._e(),\n ])\n : _vm._e(),\n ]\n )\n : _vm._e(),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Articles.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Articles.vue?vue&type=script&lang=js&\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./Articles.vue?vue&type=template&id=4363ef5c&lang=pug&\"\nimport script from \"./Articles.vue?vue&type=script&lang=js&\"\nexport * from \"./Articles.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Articles.vue?vue&type=style&index=0&id=4363ef5c&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"names":["methods","getSlugUrlName","item","urlName","Name","replace","getRoute","params","itemType","route","pathName","this","$store","getters","useProfile","Id","name","_","extend","id","ActorId","query","UseProfile","getLocalizedRoute","view","locale","props","disableIntersectionObserver","type","Boolean","data","intersectionOptions","rootMargin","threshold","observeVisibilityOptions","callback","visibilityChanged","throttle","throttleOptions","leading","intersection","isIntersectionVisible","intersectionRemainsVisible","intersectionHideTimeout","debouncedHide","created","isTestEnv","mounted","debounce","onIntersectHide","trailing","beforeDestroy","cancel","isVisible","entry","onIntersectShow","items","Array","Object","mixins","IntersectionObserverMixin","HyperlinkMixin","ready","error","initSection","watch","length","getLocalizedSearchRoute","$i18n","render","_vm","_c","_self","directives","rawName","value","expression","staticClass","firstItems","spotlight","attrs","title","$t","scopedSlots","_u","key","fn","to","_v","_s","_e","proxy","hero","header","resolution","x","social","_l","index","contents","_withStripped"],"sourceRoot":""}