{"version":3,"file":"EpiMessages-cY1zkYO2.js","sources":["../../../Features/Shared/Scripts/Utilities/EpiContentResolver.tsx","../../../Features/Shared/Scripts/Utilities/ContentApi.ts","../../../Features/Shared/Scripts/Utilities/EpiMessages.ts"],"sourcesContent":["import React from 'react';\r\nimport { EpiContext, EpiEditContext } from '../Store/EpiContext/Types';\r\n\r\nexport interface EpiContent {\r\n value: string;\r\n propertyDataType: string;\r\n}\r\n\r\nexport interface EpiPageReference {\r\n value: any;\r\n propertyDataType: string;\r\n}\r\n\r\nexport interface EpiLinkCollection {\r\n value: any[];\r\n propertyDataType: string;\r\n}\r\n\r\nconst stringPropertyDataType = 'PropertyLongString';\r\nconst HtmlStringPropertyDataType = 'PropertyXhtmlString';\r\n\r\nconst resolve = (\r\n context: EpiContext,\r\n key: keyof T,\r\n zIndex = 1,\r\n variablesMap: Map | null = null,\r\n): JSX.Element | null => {\r\n const model = context.epiModel;\r\n const epiEditContext = context.epiEditContext;\r\n if (model != null && model[key] !== undefined) {\r\n const epiValue = (model[key] as any) as EpiContent;\r\n if (!harVerdi(epiValue) && !epiEditContext.isEditable) {\r\n return null;\r\n }\r\n\r\n if (epiValue.propertyDataType === stringPropertyDataType) {\r\n return spanValue(key, epiValue, epiEditContext, zIndex, variablesMap);\r\n } else if (epiValue.propertyDataType === HtmlStringPropertyDataType) {\r\n return (\r\n \r\n );\r\n } else {\r\n return epiEditContext.isEditable ? (\r\n \r\n Unsupported datatype: {epiValue.propertyDataType} for: {key}\r\n \r\n ) : null;\r\n }\r\n }\r\n return epiEditContext.isEditable ? Could not find property: {key} : null;\r\n};\r\n\r\nexport const resolveRawText = (\r\n context: EpiContext,\r\n key: keyof T,\r\n variablesMap: Map | null = null,\r\n): string => {\r\n const model = context.epiModel;\r\n if (model != null && model[key] !== undefined) {\r\n const epiValue = (model[key] as any) as EpiContent;\r\n return replaceVariablesWithValues(epiValue.value, variablesMap);\r\n }\r\n return '';\r\n};\r\n\r\nexport const resolvePageReferenceUrl = (context: EpiContext, key: keyof T): string => {\r\n const model = context.epiModel;\r\n if (model != null && model[key] !== undefined) {\r\n const epiPageReference = (model[key] as any) as EpiPageReference;\r\n if (epiPageReference.value != null) {\r\n return epiPageReference.value.url;\r\n }\r\n }\r\n return '';\r\n};\r\n\r\nexport const resolveLinkCollection = (\r\n context: EpiContext,\r\n key: keyof T,\r\n wrapperClass?: string,\r\n aClass?: string,\r\n): JSX.Element | null => {\r\n const model = context.epiModel;\r\n const epiEditContext = context.epiEditContext;\r\n if (model != null && model[key] !== undefined) {\r\n const epiLinkCollection = (model[key] as any) as EpiLinkCollection;\r\n const items: JSX.Element[] = [];\r\n for (let i = 0; i < epiLinkCollection.value.length; i++) {\r\n items.push(\r\n \r\n {epiLinkCollection.value[i].text}\r\n ,\r\n );\r\n }\r\n\r\n if (epiEditContext.isEditable) {\r\n return (\r\n
\r\n {items}\r\n
\r\n );\r\n } else {\r\n if (epiLinkCollection.value.length > 0) {\r\n return (\r\n
\r\n {items}\r\n
\r\n );\r\n }\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nexport default resolve;\r\n\r\nconst replaceVariablesWithValues = (epiValue: string, variablesMap: Map | null): string => {\r\n let updatedString = epiValue;\r\n if (variablesMap !== null) {\r\n variablesMap.forEach((value: string, key: string): void => {\r\n const escapedKey = key.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\r\n updatedString = updatedString.replace(new RegExp(escapedKey, 'g'), value);\r\n });\r\n }\r\n return updatedString;\r\n};\r\n\r\nfunction harVerdi(epiValue: EpiContent): boolean {\r\n return epiValue.value != null && epiValue.value.length > 0;\r\n}\r\n\r\n// OPE: On page edit\r\nfunction canOPE(epiEditContext: EpiEditContext, zIndex: number): boolean {\r\n return epiEditContext.isEditable && zIndex === epiEditContext.editZIndex;\r\n}\r\n\r\nfunction spanValue(\r\n propertyName: keyof T,\r\n epiValue: EpiContent,\r\n epiEditContext: EpiEditContext,\r\n zIndex: number,\r\n variablesMap: Map | null,\r\n): JSX.Element {\r\n return (\r\n \r\n {epiValue.value ? replaceVariablesWithValues(epiValue.value, variablesMap) : ''}\r\n \r\n );\r\n}\r\n","import { epiResolveLanguage } from './EpiResolveLanguage';\r\n\r\nexport default {\r\n getContentByContentLink: (\r\n contentLink: string,\r\n ) => {\r\n var lang = epiResolveLanguage();\r\n // Det er 'Accept-Language' header som bestemmer språk, culture er bare med som en hack for å unngå cache\r\n return fetch(`/api/mt1534/CMSProxy/v3.0/content/${contentLink}?culture=${lang}`, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n 'Accept-Language': lang\r\n }\r\n })\r\n }\r\n};\r\n\r\nexport function getValutaBenevnelse() {\r\n const lang = epiResolveLanguage();\r\n\r\n return fetch(\r\n `/api/mt1534/CMSProxy/LKNO/forsideside?culture=` + lang, {\r\n headers:\r\n {\r\n 'Content-Type': 'application/json',\r\n },\r\n }\r\n )\r\n};\r\n","import { Store } from 'redux';\r\nimport { EpiAppState } from '../Store/Types';\r\nimport { updateEpiModel, updateValuta } from '../Store/EpiContext/Actions';\r\nimport { getValutaBenevnelse } from './ContentApi';\r\nimport contentApi from './ContentApi';\r\n\r\nimport { getDateNow } from './DateResolver';\r\n\r\nexport default function InitEpiMessages(store: Store>, contentLink: string): void {\r\n getContent(contentLink, store);\r\n}\r\n\r\nfunction getContent(contentLink: string, store: Store>) {\r\n const timeOfCall = getDateNow();\r\n\r\n contentApi\r\n .getContentByContentLink(contentLink)\r\n .then(res => res.json())\r\n .then((data) => {\r\n store.dispatch(updateEpiModel(data, timeOfCall, false));\r\n })\r\n .catch((reason: any) => {\r\n store.dispatch(updateEpiModel(null, timeOfCall, true));\r\n });\r\n\r\n getValutaBenevnelse()\r\n .then(res => res.json())\r\n .then((data) => {\r\n const valuta: string = data.ValutaBenevnelse;\r\n if (valuta !== \"\" && valuta !== null && valuta !== undefined)\r\n store.dispatch(updateValuta(valuta));\r\n });\r\n}\r\n"],"names":["jsx","jsxs"],"mappings":"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"}