{"version":3,"file":"static/js/4593.52ab388d.js","mappings":"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","sources":["webpack://finnish-art/./src/components/Base/EventsMixin.js","webpack://finnish-art/./src/components/Base/HyperlinkMixin.js","webpack://finnish-art/./src/components/Event/BrochureStack.vue","webpack://finnish-art/./src/components/Event/BrochureStack.vue?8ec7","webpack://finnish-art/src/components/Event/BrochureStack.vue","webpack://finnish-art/./src/components/Event/BrochureStack.vue?441c"],"sourcesContent":["/**\n * Mixin to help with Events.\n */\nexport default {\n\n computed: {\n availableEventClasses: function () {\n return [ 'Exhibition', 'Lecture', 'GuidedTour', 'Music', 'Workshop', 'OtherEvent' ];\n }\n },\n\n methods: {\n\n /**\n * Event period string.\n * If event is between 2000-01-01 – 2038-01-01 it is marked open permanently.\n */\n getEventPeriodString: function (item, formatOptions) {\n if (!item) {\n return '';\n }\n else {\n const start = item.Start;\n const end = item.End;\n let periodString = '';\n if (end?.match('2038-01-01')) {\n periodString = this.$t('events.openPermanently');\n }\n else {\n if (start) {\n periodString += this.$helpers.toLocaleDateString(start, this.$i18n.locale, formatOptions);\n }\n if (end && start != end) { // eslint-disable-line eqeqeq\n periodString += ' - ' + this.$helpers.toLocaleDateString(end, this.$i18n.locale, formatOptions);\n }\n }\n return periodString;\n }\n },\n\n /**\n * Get the material-design icon associated with EventClass.\n */\n getEventClassIcon: function (eventClass) {\n switch (eventClass) {\n case 'Exhibition':\n return 'icon-octagram-outline';\n\n case 'Lecture':\n return 'icon-human-male-board';\n\n case 'GuidedTour':\n return 'icon-sign-direction';\n\n case 'Music':\n return 'icon-music';\n\n case 'Workshop':\n return 'icon-brush';\n\n case 'OtherEvent':\n return 'icon-cube-unfolded';\n\n default:\n return 'div';\n }\n },\n\n getEventClassColor: function (eventClass) {\n switch (eventClass) {\n case 'Exhibition':\n return '#d830e7';\n\n case 'Lecture':\n return '#123bd3';\n\n case 'GuidedTour':\n return '#0092d5';\n\n case 'Music':\n return '#f47f2f';\n\n case 'Workshop':\n return '#fa0023';\n\n case 'OtherEvent':\n return '#018b57';\n\n default:\n return '#aaa';\n }\n },\n\n /**\n * EventClass color.\n * Params:\n * `eventClass`, eg. Exhibition, GuidedTour, ...\n * `value`, selected value, eg. Music\n */\n getEventClassStyle: function (eventClass, value) {\n const selected = eventClass === value;\n const color = this.getEventClassColor(eventClass);\n if (!selected) {\n return `color: ${color}; border-color: ${color};`;\n }\n else {\n return `background-color: ${color}; border-color: ${color}; color: #f3f3f3;`;\n }\n }\n }\n};\n","/**\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","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\"div\", { staticClass: \"event-brochure-stack is-ancestor\" }, [\n _c(\n \"div\",\n { staticClass: \"brochure-contents tile is-parent\" },\n [\n _vm._l(_vm.visibleItems, function (item, index) {\n return _c(\n \"event-card\",\n {\n key: index,\n staticClass: \"is-dark\",\n attrs: {\n role: \"article\",\n item: item,\n \"image-as-background\": true,\n header: false,\n social: false,\n },\n },\n [\n _c(\"div\", { staticClass: \"multimedia-title event-title\" }, [\n _c(\"div\", { staticClass: \"event-period\" }, [\n _vm._v(_vm._s(_vm.getEventPeriodString(item))),\n ]),\n item.EventClass\n ? _c(\n \"div\",\n {\n staticClass: \"event-class-title-icon\",\n style: _vm.getEventClassStyle(item.EventClass),\n attrs: {\n title: _vm.$t(`events.eventClass.${item.EventClass}`),\n },\n },\n [\n _c(_vm.getEventClassIcon(item.EventClass), {\n tag: \"component\",\n attrs: { title: \"\" },\n }),\n ],\n 1\n )\n : _vm._e(),\n ]),\n _c(\n \"div\",\n { staticClass: \"event-info\" },\n [\n _c(\n \"router-link\",\n { attrs: { to: _vm.getRoute(item, null, \"Event\") } },\n [\n _c(\"h4\", [_vm._v(_vm._s(item.Name))]),\n _c(\"p\", {\n staticClass: \"ingress-text\",\n domProps: { innerHTML: _vm._s(item.IngressText) },\n }),\n _c(\"button\", { staticClass: \"btn\" }, [\n _vm._v(_vm._s(_vm.$t(\"collections.explore\"))),\n ]),\n ]\n ),\n ],\n 1\n ),\n ]\n )\n }),\n !_vm.allVisible\n ? _c(\"plus-more\", { on: { click: _vm.onShowAll } })\n : _vm._e(),\n ],\n 2\n ),\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!./BrochureStack.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!./BrochureStack.vue?vue&type=script&lang=js&\"","\ndiv.event-brochure-stack.is-ancestor\n\n div.brochure-contents.tile.is-parent\n event-card.is-dark(\n role=\"article\"\n v-for=\"(item, index) in visibleItems\" v-bind:key=\"index\"\n v-bind:item=\"item\"\n v-bind:image-as-background=\"true\"\n v-bind:header=\"false\"\n v-bind:social=\"false\")\n\n div.multimedia-title.event-title\n\n div.event-period {{ getEventPeriodString(item) }}\n\n div.event-class-title-icon(\n v-if=\"item.EventClass\"\n v-bind:style=\"getEventClassStyle(item.EventClass)\"\n v-bind:title=\"$t(`events.eventClass.${item.EventClass}`)\")\n component(\n v-bind:is=\"getEventClassIcon(item.EventClass)\"\n title='')\n\n div.event-info\n router-link(v-bind:to=\"getRoute(item, null, 'Event')\")\n h4 {{ item.Name }}\n p.ingress-text(v-html=\"item.IngressText\")\n button.btn {{ $t('collections.explore') }}\n\n\n plus-more(\n v-if=\"!allVisible\"\n v-on:click=\"onShowAll\")\n\n\n\n\n\n\n\n","import { render, staticRenderFns } from \"./BrochureStack.vue?vue&type=template&id=24b46f48&lang=pug&\"\nimport script from \"./BrochureStack.vue?vue&type=script&lang=js&\"\nexport * from \"./BrochureStack.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BrochureStack.vue?vue&type=style&index=0&id=24b46f48&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":["computed","availableEventClasses","methods","getEventPeriodString","item","formatOptions","start","Start","end","End","periodString","match","this","$t","$helpers","toLocaleDateString","$i18n","locale","getEventClassIcon","eventClass","getEventClassColor","getEventClassStyle","value","selected","color","getSlugUrlName","urlName","Name","replace","getRoute","params","itemType","route","pathName","$store","getters","useProfile","Id","name","_","extend","id","ActorId","query","UseProfile","getLocalizedRoute","view","render","_vm","_c","_self","staticClass","_l","visibleItems","index","key","attrs","role","header","social","_v","_s","EventClass","style","title","tag","_e","to","domProps","innerHTML","IngressText","allVisible","on","click","onShowAll","_withStripped","props","items","type","required","count","default","offset","showAllRoute","mixins","data","created","watch","init"],"sourceRoot":""}