{"version":3,"file":"static/js/9224.fb28651e.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/Artworks.vue","webpack://finnish-art/src/components/Home/Artworks.vue","webpack://finnish-art/./src/components/Home/Artworks.vue?5e46","webpack://finnish-art/./src/components/Home/Artworks.vue?83af"],"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-artworks\",\n },\n [\n _vm.artworks.length\n ? _c(\n \"segment\",\n {\n attrs: {\n title: _vm.$t(\"brochures.text\", { name: _vm.searchText }),\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"display-options\",\n fn: function () {\n return [\n _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 \"ArtworksSearch\",\n { Text: _vm.searchText }\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 1878387940\n ),\n },\n [\n _vm.isIntersectionVisible\n ? _c(\"slick-slides\", {\n attrs: { options: _vm.slickOptions, items: _vm.artworks },\n scopedSlots: _vm._u(\n [\n {\n key: \"slide-card\",\n fn: function (slotScope) {\n return [\n _c(\"artwork-card\", {\n attrs: {\n item: slotScope.item,\n \"image-as-background\": false,\n \"social-image\": true,\n resolution: { x: \"20vw\" },\n },\n }),\n ]\n },\n },\n ],\n null,\n false,\n 1482522953\n ),\n })\n : _vm._e(),\n ],\n 1\n )\n : _vm._e(),\n _vm.isIntersectionVisible\n ? _c(\"promotion-no-results-call-to-action\", {\n attrs: { \"anonymous-only\": true },\n scopedSlots: _vm._u(\n [\n {\n key: \"bubble-title\",\n fn: function () {\n return [\n _c(\"h3\", { staticClass: \"bubble-title\" }, [\n _vm._v(_vm._s(_vm.$t(\"artworks.loginToFindMore\"))),\n ]),\n ]\n },\n proxy: true,\n },\n ],\n null,\n false,\n 742974360\n ),\n })\n : _vm._e(),\n !_vm.ready && !_vm.error ? _c(\"loading-spinner\") : _vm._e(),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\ndiv.home-artworks(\n v-observe-visibility=\"observeVisibilityOptions\")\n\n segment(\n v-if=\"artworks.length\"\n v-bind:title=\"$t('brochures.text', {name: searchText})\")\n\n template(#display-options=\"\")\n div.display-option.show-all(\n v-if=\"isIntersectionVisible\")\n router-link(\n v-bind:to=\"getLocalizedSearchRoute('ArtworksSearch', {Text: searchText})\")\n icon-plus-circle-outline(title='')\n span.label {{ $t('common.showAll') }}\n\n slick-slides(\n v-if=\"isIntersectionVisible\"\n v-bind:options=\"slickOptions\"\n v-bind:items=\"artworks\")\n template(#slide-card=\"slotScope\")\n artwork-card(\n v-bind:item=\"slotScope.item\"\n v-bind:image-as-background=\"false\"\n v-bind:social-image=\"true\"\n v-bind:resolution=\"{x: '20vw'}\")\n\n\n promotion-no-results-call-to-action(\n v-if=\"isIntersectionVisible\"\n v-bind:anonymous-only=\"true\")\n template(#bubble-title=\"\")\n h3.bubble-title {{ $t('artworks.loginToFindMore') }}\n\n\n loading-spinner(v-if=\"!ready && !error\")\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Artworks.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!./Artworks.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Artworks.vue?vue&type=template&id=5a6be9f6&scoped=true&lang=pug&\"\nimport script from \"./Artworks.vue?vue&type=script&lang=js&\"\nexport * from \"./Artworks.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Artworks.vue?vue&type=style&index=0&id=5a6be9f6&prod&scoped=true&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 \"5a6be9f6\",\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","artworks","attrs","title","$t","searchText","scopedSlots","_u","key","fn","to","Text","_v","_s","_e","proxy","options","slickOptions","slotScope","resolution","x","_withStripped","components","PromotionNoResultsCallToAction","slidesToShow","slidesToScroll","rows","speed","adaptiveHeight","variableWidth","responsive","breakpoint","settings","getArtworks","PageIndex","PageSize","HasImage","SortField","Template","IndexProperties","ObjectProperties","Dimensions","Makers","MakersProperties","ImageInfoExtended","then","finally"],"sourceRoot":""}