{"version":3,"file":"static/js/8892.7ab4e6d9.js","mappings":"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","sources":["webpack://finnish-art/./src/components/Base/AccessMixin.js","webpack://finnish-art/./src/components/Base/HyperlinkMixin.js","webpack://finnish-art/./src/components/Base/IndexMixin.js","webpack://finnish-art/./src/components/Base/MetaMixin.js","webpack://finnish-art/./src/components/Base/SvcPagesMixin.js","webpack://finnish-art/./src/components/Base/UseProfileMixin.js","webpack://finnish-art/./src/components/Base/IndexPage.vue?e23e","webpack://finnish-art/src/components/Base/IndexPage.vue","webpack://finnish-art/./src/components/Base/IndexPage.vue"],"sourcesContent":["/**\n * Detect given resource view/edit/publish privileges by Group, based on user Memberships.\n */\nimport { isProdSite, isTestEnv } from '@/helpers/deployment';\n\nexport default {\n\n data: function () {\n return {\n canRead: false,\n canEdit: false,\n canPublish: false\n };\n },\n\n methods: {\n\n revokeAccess: function () {\n this.canRead = false;\n this.canEdit = false;\n this.canPublish = false;\n },\n\n /**\n * Detect Read, Edit, Publish Access privileges.\n */\n getAccessPrivileges: function (resource) {\n // create mode\n if (resource && resource.Id === '0') {\n this.canRead = true;\n this.canEdit = true;\n this.canPublish = true; // perhaps context-aware publish access?\n\n // hide edit toggle\n this.$eventBus.$emit('page-access-change', true, null, true);\n }\n // resource with Access\n else if (resource && resource.Access) {\n this.getReadAccess(resource);\n this.getEditAccess(resource);\n this.getPublishAccess(resource);\n }\n // no Access to resource or no resource at all\n else {\n // no privileges\n this.revokeAccess();\n }\n\n // resource might be Derived, and may not be available to edit even if the original is\n if (!this.canEdit && resource && resource.Publish && resource.Publish.IsDerived &&\n this.$store.getters['user/getMembershipLevel'] >= 9000) {\n\n console.info(\"Edit access is forbidden, but page is Derived. Try editing in original language.\");\n this.$eventBus.$emit('page-access-change', false, this.$t('common.editNotAllowedOnDerived'));\n }\n else if (!this.canEdit && resource) {\n // emit signal to \"pencil\" to disable itself if editing is not possible\n this.$eventBus.$emit('page-access-change', false);\n }\n },\n\n /**\n * Return Access params for edit component.\n * Used to set FeatureArticles and Events ReadAccess.\n */\n getAccessGroups: function (resource) {\n const groups = {\n ReadAccess: this.getReadAccessGroupName(resource)\n };\n return groups;\n },\n\n /**\n * Return the resource's ReadAccess group from stored User Profile.\n * Returns name, or Id if name is not found.\n */\n getReadAccessGroupName: function (resource) {\n const readGroupId = resource && resource.Access && resource.Access.ReadGroup; // Id\n const group = this.getUserGroup(readGroupId);\n return (group && group.GroupName) || readGroupId;\n },\n\n getReadAccess: function (resource) {\n if (resource && resource.Access) {\n const group = this.getUserGroup(resource.Access.ReadGroup);\n if (group) {\n // this.logAccess(\"Read\", resource, group.GroupDisplayName);\n this.canRead = true;\n return true;\n }\n else {\n // this.logNoAccess(\"Read\", resource);\n this.canRead = true;\n return false;\n }\n }\n },\n\n getEditAccess: function (resource) {\n if (resource && resource.Access) {\n const group = this.getUserGroup(resource.Access.EditGroup);\n if (group) {\n this.logAccess(\"Edit\", resource, group.GroupDisplayName);\n this.canEdit = true;\n this.$eventBus.$emit('page-access-change', true);\n return true;\n }\n else {\n // this.logNoAccess(\"Edit\", resource);\n this.canEdit = false;\n return false;\n }\n }\n else if (resource) {\n // resource without Access\n this.$eventBus.$emit('page-access-change', false);\n }\n else {\n // no resource, hide edit mode toggle icon\n this.$eventBus.$emit('page-access-change', false, null, true);\n }\n },\n\n getPublishAccess: function (resource) {\n if (resource && resource.Access) {\n const group = this.getUserGroup(resource.Access.PublishGroup);\n if (group) {\n this.logAccess(\"Publish\", resource, group.GroupDisplayName);\n this.canPublish = true;\n return true;\n }\n else {\n // this.logNoAccess(\"Publish\", resource);\n this.canPublish = false;\n return false;\n }\n }\n },\n\n /**\n * Return group User has membership to.\n */\n getUserGroup: function (groupId) {\n const memberships = this.$store.getters['user/getMemberships'];\n return _.find(memberships, {GroupId: groupId});\n },\n\n logAccess: function (action, resource, groupDisplayName) {\n if (!isProdSite && !isTestEnv) {\n console.info(`${action} access to ${resource && resource.Name} granted through group ${groupDisplayName}`);\n }\n },\n\n logNoAccess: function (action, resource) {\n if (!isProdSite && !isTestEnv) {\n console.warn(`No ${action} access to ${resource && resource.Id} - ${resource && resource.Name}`);\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","import HyperlinkMixin from '@/components/Base/HyperlinkMixin';\nimport {\n levelBasicUser\n} from '@/store/user';\n\nexport default {\n\n mixins: [ HyperlinkMixin ],\n\n data: function () {\n return {\n heros: [],\n heroOptions: {\n slidesToShow: 1,\n slidesToScroll: 1,\n rows: 1,\n arrows: false,\n variableWidth: false\n },\n suggestions: null,\n slickOptions1: {\n slidesToShow: 3,\n slidesToScroll: 2,\n rows: 1,\n arrows: true,\n variableWidth: false,\n adaptiveHeight: false,\n speed: 1000,\n responsive: [\n {\n breakpoint: 801,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2\n }\n },\n {\n breakpoint: 480,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1,\n speed: 500\n }\n }\n // You can unslick at a given breakpoint now by adding:\n // settings: \"unslick\"\n // instead of a settings object\n ]\n },\n slickOptions2: {\n slidesToShow: 2,\n slidesToScroll: 2,\n rows: 1,\n arrows: true,\n variableWidth: false,\n adaptiveHeight: false,\n speed: 1000,\n responsive: [\n {\n breakpoint: 650,\n settings: \"unslick\"\n }\n ]\n },\n slickOptions2b: {\n slidesToShow: 2,\n slidesToScroll: 2,\n rows: 1,\n arrows: true,\n variableWidth: false,\n adaptiveHeight: false,\n speed: 1000,\n responsive: [\n {\n breakpoint: 1025,\n settings: {\n variableWidth: false,\n slidesToShow: 2,\n slidesToScroll: 2\n }\n },\n {\n breakpoint: 800,\n settings: {\n variableWidth: false,\n slidesToShow: 1,\n slidesToScroll: 1\n }\n }\n ]\n },\n slickOptions3: {\n slidesToShow: 4,\n slidesToScroll: 4,\n rows: 1,\n arrows: true,\n variableWidth: false,\n adaptiveHeight: false,\n speed: 1000,\n responsive: [\n {\n breakpoint: 650,\n settings: \"unslick\"\n }\n ]\n },\n slickOptions4: {\n slidesToShow: 3,\n slidesToScroll: 2,\n rows: 1,\n arrows: true,\n variableWidth: false,\n adaptiveHeight: false,\n speed: 700,\n responsive: [\n {\n breakpoint: 800,\n settings: {\n variableWidth: false,\n slidesToShow: 1,\n slidesToScroll: 1\n }\n }\n ]\n },\n slickOptions5: {\n slidesToShow: 1,\n slidesToScroll: 1,\n rows: 1,\n arrows: true,\n variableWidth: false,\n adaptiveHeight: true,\n speed: 700,\n responsive: [\n {\n breakpoint: 650,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1\n }\n }\n ]\n },\n popoverAnimation1: {\n show: {\n type: 'pop',\n from: {\n scale: 0\n },\n to: {\n scale: 1\n }\n },\n hide: {\n type: 'fade',\n from: 1,\n to: 0\n }\n },\n levelBasicUser,\n isDeactivated: false,\n ready: false,\n error: null\n };\n },\n\n activated: function () {\n this.isDeactivated = false;\n },\n\n deactivated: function () {\n this.isDeactivated = true;\n },\n\n methods: {\n /**\n * UseProfile for Index Views.\n * Use \"EditAll\" in edit mode.\n * NOTE: the view needs to have UseProfileMixin.\n */\n getIndexQueryUseProfile: function () {\n return this.doEdit ? 'EditAll' : this.getUseProfile_ViewCache();\n },\n\n /**\n * Data for vue-autosuggest drop-down.\n * The search-input-autocomplete will display \"progress\" cursor\n * until given suggestions is truthy, such as empty array.\n */\n getSuggestions: function () {\n return [];\n },\n\n getSampleArtworks: async function (text = '', queryParams = {}, amount = 10, pageSize = amount, pageIndex = 0) {\n const params = _.extend({\n UseProfile: 'ViewPublicOnly',\n PageSize: pageSize,\n PageIndex: pageIndex,\n Text: text,\n EnableFacetedSearch: false,\n HasImage: true,\n Template: {\n IndexProperties: true,\n ObjectProperties: false,\n Dimensions: false,\n Makers: true,\n MakersProperties: 'MakersActorSimple',\n ImageInfoExtended: true\n }\n }, queryParams);\n\n return new Promise((resolve, reject) => {\n this.$SVC.queryArtworks(params)\n .then((response) => {\n if (response.data && response.data.Results) {\n const items = response.data.Results;\n resolve(_.take(_.shuffle(items), amount));\n }\n else {\n resolve([]);\n }\n })\n .catch(reject);\n });\n },\n\n getLocalizedSearchRoute: function (view, query = {}) {\n return this.getLocalizedRoute(view, this.$i18n.locale, query);\n },\n\n paginationCallback: function () {},\n\n stackCallback: function () {}\n }\n};\n","import { getBaseUrl, getFullLocale } from '@/helpers/index';\nimport { getMetaImageSrc } from '@/helpers/image-resources';\nimport { isProdSite, isTestEnv } from '@/helpers/deployment';\n\n\nexport const hasTag = function (meta, obj) {\n return !!_.filter(meta, obj).length;\n};\n\nexport const getMetaInfo = function (pageInfo, route, item, noindex, siteName, locale) {\n var rv;\n const titleTemplate = typeof pageInfo.titleTemplate !== 'undefined' ?\n pageInfo.titleTemplate\n : `%s | ${siteName}`;\n\n const title = typeof pageInfo.title !== 'undefined' ?\n pageInfo.titleTemplate\n : ' ';\n\n const meta = _.clone(pageInfo.meta) || [];\n delete pageInfo.meta;\n\n if (!hasTag(meta, {name: 'robots'})) {\n meta.push({\n // do not index development sites, nor pages that set the noindex param\n name: 'robots',\n content: (isProdSite || isTestEnv) && !noindex ?\n 'index,follow,noarchive'\n : 'noindex,nofollow,noarchive,noodp,noydir,nosnippet'\n });\n }\n\n // og:type\n if (!hasTag(meta, {property: 'og:type'})) {\n meta.push({\n property: 'og:type',\n content: 'website'\n });\n }\n\n // og:site_name\n meta.push({\n property: 'og:site_name',\n content: siteName\n });\n\n // og:locale\n if (!hasTag(meta, {property: 'og:locale'})) {\n meta.push({\n property: 'og:locale',\n content: getFullLocale(locale)\n });\n }\n\n // og:title\n if (pageInfo.title && !hasTag(meta, {property: 'og:title'})) {\n meta.push({\n property: 'og:title',\n content: pageInfo.title\n });\n }\n\n if (item) {\n // og:description\n if (!hasTag(meta, {property: 'og:description'})) {\n const description = item.TagLine || item.IngressText || item.DescriptionHtml;\n if (description) {\n meta.push({\n property: 'og:description',\n content: description\n });\n }\n }\n\n if (!hasTag(meta, {property: 'og:metrics'})) {\n if (item.Metrics && item.Metrics.Primary) {\n meta.push({\n property: 'og:metrics',\n content: item.Metrics.Primary\n });\n pageInfo.afterNavigation = function() { console.log('afterNavigation ' + item.Metrics.Primary)};// eslint-disable-line no-alert\n pageInfo.changed = function(newInfo, addedTags, removedTags) {\n //console.log('Metadata was updated!', newInfo, addedTags, removedTags)\n };\n }\n }\n\n\n // og:image\n if (!hasTag(meta, {property: 'og:image'})) {\n let imageSrc = getMetaImageSrc(item);\n if (imageSrc) {\n imageSrc = imageSrc.replace(/&/g,'&').replace(/&/g,'&');\n }\n if (imageSrc) {\n meta.push({\n property: 'og:image',\n content: imageSrc\n });\n // set Twitter card type when image is set (NOTE: is \"name\", not \"property\")\n if (!hasTag(meta, {name: 'twitter:card'})) {\n meta.push({\n name: 'twitter:card',\n content: 'summary_large_image'\n });\n }\n // also possible to add property twitter:image:alt with image caption\n }\n }\n }\n\n // og:url\n if (route) {\n meta.push({\n property: 'og:url',\n content: getBaseUrl() + (route.path || '')\n });\n }\n rv = _.merge({\n htmlAttrs: {\n lang: locale,\n prefix: 'og: https://ogp.me/ns#'\n },\n meta,\n title,\n titleTemplate\n }, pageInfo);\n return _.merge({\n htmlAttrs: {\n lang: locale,\n prefix: 'og: https://ogp.me/ns#'\n },\n meta,\n title,\n titleTemplate\n }, pageInfo);\n};\n\n\n/**\n * Mixin to format metadata for vue-meta.\n */\nexport default {\n\n methods: {\n getMetaInfo: function (pageInfo, route, item, noindex) {\n // add site and locale parameters\n return getMetaInfo(pageInfo, route, item, noindex, this.$site, this.$i18n.locale);\n },\n\n getMetaImageSrc\n }\n};\n","export default {\n\n data: function () {\n return {\n svcPages: {}\n };\n },\n\n mounted: function () {\n this.svcPages = this.getSvcPages();\n },\n\n methods: {\n // fetch PublicOnly svc/pages\n getSvcPages: function () {\n return this.$store.dispatch('pages/fetchPagesPublicOnly')\n .then((value) => {\n this.svcPages = value; // this.pagesPublicOnly;\n })\n .catch(() => {\n console.warn(\"PublicOnly Pages not found\");\n });\n\n }\n }\n};\n","import { createNamespacedHelpers } from 'vuex';\n\nconst mapState = createNamespacedHelpers('ux').mapState;\n\nexport default {\n\n computed: {\n ...mapState({\n useProfile: state => state.useProfile\n })\n },\n\n methods: {\n /**\n * Current `UseProfile` state.\n * Url query UseProfile overrides\n */\n getUseProfile: function () {\n return this.useProfile;\n },\n\n /**\n * Get `UseProfile` for Index View queries.\n * ViewAll > ViewAllCache\n * ViewPublicOnly > ViewPublicOnlyCache > ViewPublicOnly\n * EditAll > ViewAll\n */\n getUseProfile_ViewCache: function () {\n let useProfile = this.useProfile || '';\n if (useProfile.match('All')) {\n useProfile = 'ViewAll';\n }\n else {\n useProfile = 'ViewPublicOnly';\n }\n if (this.$store.getters['ux/getEditMode']) {\n // edit mode gets faster cache\n if (useProfile.match('All')) {\n useProfile = 'EditAll';\n }\n else {\n useProfile = 'EditPublicOnly';\n }\n return useProfile;\n }\n return useProfile ; // removed + 'Cache';\n }\n }\n};\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexPage.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!./IndexPage.vue?vue&type=script&lang=js&\"","\n","var render, staticRenderFns\nimport script from \"./IndexPage.vue?vue&type=script&lang=js&\"\nexport * from \"./IndexPage.vue?vue&type=script&lang=js&\"\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":["data","canRead","canEdit","canPublish","methods","revokeAccess","this","getAccessPrivileges","resource","Id","$eventBus","$emit","Access","getReadAccess","getEditAccess","getPublishAccess","Publish","IsDerived","$store","getters","console","info","$t","getAccessGroups","ReadAccess","getReadAccessGroupName","readGroupId","ReadGroup","group","getUserGroup","GroupName","EditGroup","logAccess","GroupDisplayName","PublishGroup","groupId","memberships","_","find","GroupId","action","groupDisplayName","isProdSite","isTestEnv","Name","logNoAccess","warn","getSlugUrlName","item","urlName","replace","getRoute","params","itemType","route","pathName","useProfile","name","extend","id","ActorId","query","UseProfile","getLocalizedRoute","view","locale","mixins","HyperlinkMixin","heros","heroOptions","slidesToShow","slidesToScroll","rows","arrows","variableWidth","suggestions","slickOptions1","adaptiveHeight","speed","responsive","breakpoint","settings","slickOptions2","slickOptions2b","slickOptions3","slickOptions4","slickOptions5","popoverAnimation1","show","type","from","scale","to","hide","levelBasicUser","isDeactivated","ready","error","activated","deactivated","getIndexQueryUseProfile","doEdit","getUseProfile_ViewCache","getSuggestions","getSampleArtworks","text","queryParams","amount","pageSize","pageIndex","PageSize","PageIndex","Text","EnableFacetedSearch","HasImage","Template","IndexProperties","ObjectProperties","Dimensions","Makers","MakersProperties","ImageInfoExtended","Promise","resolve","reject","$SVC","queryArtworks","then","response","Results","items","take","shuffle","catch","getLocalizedSearchRoute","$i18n","paginationCallback","stackCallback","hasTag","meta","obj","filter","length","getMetaInfo","pageInfo","noindex","siteName","titleTemplate","title","clone","push","content","property","getFullLocale","description","TagLine","IngressText","DescriptionHtml","Metrics","Primary","afterNavigation","log","changed","newInfo","addedTags","removedTags","imageSrc","getMetaImageSrc","getBaseUrl","path","merge","htmlAttrs","lang","prefix","$site","svcPages","mounted","getSvcPages","dispatch","value","mapState","createNamespacedHelpers","computed","state","getUseProfile","match","metaInfo","pageMetaInfo","initialRender","debouncedPageAccessCheck","trailing","promotionPageReached","isPromotionPageReached","onPageAccessCheck","onEntityReload","render","staticRenderFns"],"sourceRoot":""}