{"version":3,"sources":["webpack:///./EnBW.Vertrieb.Websites.EKP/StaticResources/TypeScript/Foundation/Utilities/RequireConfigAccessor.ts","webpack:///./EnBW.Vertrieb.Websites.EKP/StaticResources/TypeScript/Foundation/Utilities/propTypes.ts","webpack:///./EnBW.Vertrieb.Websites.EKP/StaticResources/TypeScript/Foundation/Utilities/initVueModule.ts","webpack:///./EnBW.Vertrieb.Websites.EKP/StaticResources/TypeScript/Foundation/Utilities/utils.ts","webpack:///./EnBW.Vertrieb.Websites.EKP/StaticResources/TypeScript/Foundation/Utilities/documentReady.ts","webpack:///./EnBW.Vertrieb.Websites.EKP/StaticResources/TypeScript/Foundation/Utilities/Sluggify.ts"],"names":["requireConfig","pageOptions","websiteOptions","window","get","name","pageSpecific","isBrowser","pageValue","siteValue","ConfigException","setPageOptionValue","value","getPageOption","RequireConfigAccessor","getWebsiteOption","exists","inPage","inSite","toString","this","scope","scopeObject","typ","$flag","type","Boolean","default","flag","inputGuard","defaultValue","Function","callback","callbackRequired","$required","date","Date","dateRequired","enumMember","Number","String","enumMemberRequired","number","numberRequired","prop","required","string","stringRequired","optional","Object","component","store","render","vue","error","console","message","stack","document","html","txt","createElement","innerHTML","object","source","keys","forEach","key","hasOwnProperty","propertyPath","path","split","targetObject","propertyName","i","length","set","pathItem","objString","JSON","stringify","parse","selectors","mySelectors","querySelectorAll","initWaiting","content","addClass","removeClass","days","getFullYear","getMonth","getDate","x","input","parts","parseFn","parseInt","year","now","month","day","url","location","href","replace","results","RegExp","exec","decodeURIComponent","readyCalls","readyState","push","addEventListener","callbacks","sluggify","text","toLower","separator","trim","slice","toLowerCase"],"mappings":"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","file":"utilities.b39514b88d48522d15cc.chunk.js","sourcesContent":["/* eslint-disable max-classes-per-file */ // part of Foundation, therefore no point in fixing\r\nimport { isBrowser } from './utils';\r\n\r\nlet requireConfig = {\r\n pageOptions: {},\r\n websiteOptions: {},\r\n};\r\n\r\nif (typeof window !== 'undefined') {\r\n requireConfig = window['requireConfig'];\r\n}\r\n\r\nexport class RequireConfigAccessor {\r\n /**\r\n * Gibt den Wert einer vom Server gesetzten Variable zurück\r\n *\r\n * @param name der Name der Variable\r\n * @param pageSpecific gibt an, ob die Variable den Page-Scope (true) oder Website-Scope (false) hat.\r\n * per Default werden beide durchsucht\r\n */\r\n static get(name: string, pageSpecific?: boolean): any {\r\n if (!isBrowser) {\r\n return null;\r\n }\r\n\r\n const pageValue = requireConfig.pageOptions[name];\r\n const siteValue = requireConfig.websiteOptions[name];\r\n\r\n if (pageSpecific) {\r\n if (typeof pageValue === 'undefined') {\r\n throw new ConfigException(name, 'pageOptions');\r\n }\r\n\r\n return pageValue;\r\n }\r\n\r\n if (typeof siteValue === 'undefined') {\r\n throw new ConfigException(name, 'websiteOptions');\r\n }\r\n\r\n return siteValue;\r\n }\r\n\r\n /**\r\n * Überschreibt den Wert einer vom Server gesetzten Variable im Page-Scope\r\n *\r\n * @param name der Name der Variable\r\n * @param value der Wert der Variable\r\n */\r\n static setPageOptionValue(name: string, value: any): void {\r\n const pageValue = requireConfig.pageOptions[name];\r\n\r\n if (typeof pageValue !== 'undefined') {\r\n requireConfig.pageOptions[name] = value;\r\n } else {\r\n throw new ConfigException(name, 'pageOptions');\r\n }\r\n }\r\n\r\n /**\r\n * Gibt den Wert einer vom Server gesetzten Variable im Page-Scope zurück\r\n *\r\n * @param name der Name der Variable\r\n */\r\n static getPageOption(name: string): any {\r\n return RequireConfigAccessor.get(name, true);\r\n }\r\n\r\n /**\r\n * Gibt den Wert einer vom Server gesetzten Variable im Global-Scope zurück\r\n *\r\n * @param name der Name der Variable\r\n */\r\n static getWebsiteOption(name: string): any {\r\n return RequireConfigAccessor.get(name, false);\r\n }\r\n\r\n /**\r\n * Prüft ob eine Variable existiert\r\n *\r\n * @param name der Name der Variablen\r\n * @param pageSpecific gibt an, ob die Variable den Page-Scope (true) oder Website-Scope (false) hat.\r\n * per Default werden beide durchsucht\r\n */\r\n static exists(name: string, pageSpecific?: boolean): boolean {\r\n const inPage = typeof requireConfig.pageOptions[name] !== 'undefined';\r\n const inSite = typeof requireConfig.websiteOptions[name] !== 'undefined';\r\n\r\n return pageSpecific ? inPage : pageSpecific === false ? inSite : inSite || inPage;\r\n }\r\n}\r\n\r\n/**\r\n * Klasse für die spezifischen Exceptions für Server-Variablen\r\n */\r\nexport class ConfigException {\r\n name: string;\r\n scope: string;\r\n typ: string;\r\n\r\n constructor(name: string, scopeObject: string) {\r\n this.name = name;\r\n this.scope = scopeObject;\r\n this.typ = 'serverVariableException';\r\n }\r\n\r\n toString() {\r\n return `Die Variable '${this.name}' kann im Scope ${this.scope} nicht gefunden werden`;\r\n }\r\n}\r\n\r\nexport default RequireConfigAccessor;\r\n","import { Prop, PropOptions } from 'vue/types/options';\r\n\r\nconst $flag = {\r\n type: Boolean,\r\n default: false,\r\n};\r\nexport const flag = () => ($flag);\r\n\r\n\r\n//\r\nexport const inputGuard = (defaultValue = null) => ({\r\n type: Function,\r\n default: defaultValue,\r\n});\r\n\r\nexport const callback = (defaultValue = () => {}) => ({\r\n type: Function,\r\n default: defaultValue,\r\n});\r\nexport const callbackRequired = $required(Function);\r\n\r\n\r\nexport const date = (defaultValue = () => (null)) => ({\r\n type: Date,\r\n default: defaultValue,\r\n});\r\nexport const dateRequired = $required(Date);\r\n\r\n\r\nexport const enumMember = (defaultValue = 0) => ({\r\n type: [Number, String],\r\n default: defaultValue,\r\n});\r\nexport const enumMemberRequired = $required([Number, String]);\r\n\r\n\r\nexport const number = (defaultValue = 0) => ({\r\n type: Number,\r\n default: defaultValue,\r\n});\r\nexport const numberRequired = $required(Number);\r\n\r\n\r\nexport const string = (defaultValue = '') => ({\r\n type: String,\r\n default: defaultValue,\r\n});\r\nexport const stringRequired = $required(String);\r\n\r\n\r\nfunction $required (type) {\r\n const prop = {\r\n type: type,\r\n required: true,\r\n };\r\n\r\n return ()=>(prop);\r\n}\r\n\r\n//\r\nexport const optional = (defaultValue: T): PropOptions => ({\r\n type: Object as Prop,\r\n default: defaultValue,\r\n} as PropOptions);\r\n\r\nexport const required = (): PropOptions => ({\r\n type: Object as Prop,\r\n required: true,\r\n} as PropOptions);\r\n","import Vue from 'vue';\r\nimport store from '../../Store/index';\r\n\r\nexport default function (component: any): any {\r\n try {\r\n const app = new Vue({\r\n store,\r\n render: (vue) => vue(component),\r\n });\r\n\r\n return app;\r\n } catch (error) {\r\n if (error && console && console.error) {\r\n console.error(`Exception: ${error.message}`, error.stack);\r\n }\r\n\r\n throw error;\r\n }\r\n}\r\n","import Q from '../../App/Q';\r\nexport const isBrowser: boolean = typeof window !== 'undefined' && window.document != null;\r\n\r\nexport function decodeHtml(html: string): string {\r\n if (isBrowser) {\r\n const txt = document.createElement('textarea');\r\n txt.innerHTML = html;\r\n\r\n return txt.value;\r\n }\r\n\r\n return html;\r\n}\r\n\r\n/*\r\n Das ist Oldschool. Besser mit ES6 Object-Assign\r\n https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\r\n */\r\n\r\nexport function assignExistingProperty(object: any, source: any): void {\r\n Object.keys(source).forEach((key) => {\r\n if (object.hasOwnProperty(key)) {\r\n object[key] = source[key];\r\n }\r\n });\r\n}\r\n\r\nexport function getProperty(object: any, propertyPath): any {\r\n const path = propertyPath.split('.');\r\n let targetObject = object;\r\n let propertyName = path[0];\r\n for (let i = 0; i < path.length - 1; i++) {\r\n const pathItem = path[i];\r\n\r\n targetObject = targetObject[pathItem];\r\n propertyName = path[i + 1];\r\n\r\n if (!targetObject) {\r\n return targetObject;\r\n }\r\n }\r\n\r\n return targetObject[propertyName];\r\n}\r\n\r\nexport function setProperty(object: any, propertyPath: string, value: any, set?: any) {\r\n const path = propertyPath.split('.');\r\n let targetObject = object;\r\n let propertyName = path[0];\r\n for (let i = 0; i < path.length - 1; i++) {\r\n const pathItem = path[i];\r\n\r\n if (!targetObject[pathItem]) {\r\n if (set) {\r\n set(targetObject, propertyName, {});\r\n } else {\r\n targetObject[propertyName] = {};\r\n }\r\n }\r\n\r\n targetObject = targetObject[pathItem];\r\n propertyName = path[i + 1];\r\n }\r\n\r\n if (set) {\r\n set(targetObject, propertyName, value);\r\n } else {\r\n targetObject[propertyName] = value;\r\n }\r\n}\r\n\r\nexport function deleteProperty(object: any, propertyPath: string) {\r\n const path = propertyPath.split('.');\r\n let targetObject = object;\r\n let propertyName = path[0];\r\n for (let i = 0; i < path.length - 1; i++) {\r\n const pathItem = path[i];\r\n\r\n if (!targetObject[pathItem]) {\r\n return;\r\n }\r\n\r\n targetObject = targetObject[pathItem];\r\n propertyName = path[i + 1];\r\n }\r\n\r\n if (targetObject[propertyName]) {\r\n delete targetObject[propertyName];\r\n }\r\n}\r\n\r\nexport function deepCloneObject(object: any): any {\r\n const objString = JSON.stringify(object);\r\n\r\n return JSON.parse(objString);\r\n}\r\n\r\nexport function updateElementContent(selectors: string): Function {\r\n if (!isBrowser) {\r\n return () => { };\r\n }\r\n\r\n const mySelectors: NodeList = document.querySelectorAll(selectors);\r\n\r\n const update = (initWaiting: Boolean, content?: string): void => {\r\n if (initWaiting) {\r\n for (let i = 0; i < mySelectors.length; i++) {\r\n Q.addClass((mySelectors[i]), 'waiting--inline');\r\n }\r\n } else {\r\n for (let i = 0; i < mySelectors.length; i++) {\r\n Q.removeClass((mySelectors[i]), 'waiting--inline');\r\n (mySelectors[i]).innerHTML = content;\r\n }\r\n }\r\n };\r\n\r\n return (update);\r\n}\r\n\r\nexport function dateIncrement(date: Date, days: number): Date {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate() + days);\r\n}\r\n\r\nexport function isNumber(x: any): boolean {\r\n return typeof x === 'number';\r\n}\r\n\r\nexport function isString(x: any): boolean {\r\n return typeof x === 'string';\r\n}\r\n\r\nexport function isDate(x: any): boolean {\r\n return typeof x === 'object' && x instanceof Date;\r\n}\r\n\r\nexport function parseDeDate(input: string): Date {\r\n const parts = input.split('.');\r\n let parseFn = Number.parseInt;\r\n if (typeof parseFn === 'undefined') {\r\n parseFn = parseInt;\r\n }\r\n\r\n return new Date(parseFn(parts[2]), parseFn(parts[1]) - 1, parseFn(parts[0]), 0, 0, 0, 0);\r\n}\r\n\r\nexport function currentDeDate(): Date {\r\n const now = new Date(Date.now());\r\n const year = now.getFullYear();\r\n const month = now.getMonth() + 1; // GetMonth start from 0\r\n const day = now.getDate();\r\n\r\n return new Date(year, month, day, 0, 0, 0, 0);\r\n}\r\n\r\nexport function getQueryParameter(name): string {\r\n if (typeof window !== 'undefined') {\r\n const url = window.location.href;\r\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\r\n const regex = new RegExp(`[?&]${name}(=([^&#]*)|&|#|$)`),\r\n results = regex.exec(url);\r\n if (!results) {\r\n return null;\r\n }\r\n if (!results[2]) {\r\n return '';\r\n }\r\n\r\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\r\n }\r\n\r\n return undefined;\r\n}","import { isBrowser } from './utils';\r\n\r\nlet readyCalls: { (): void }[] = [];\r\n\r\nfunction documentReady(callback: () => void) {\r\n\r\n if (isBrowser) {\r\n if (document.readyState === 'loading') {\r\n readyCalls.push(callback);\r\n document.addEventListener('DOMContentLoaded', documentLoaded, false);\r\n } else {\r\n callback();\r\n }\r\n } else {\r\n callback();\r\n }\r\n\r\n function documentLoaded() {\r\n const callbacks = readyCalls;\r\n\r\n if (callbacks.length) {\r\n readyCalls = [];\r\n for (callback of callbacks) {\r\n callback();\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default documentReady;","/**\r\n * Wandelt den gegebenen Text in einen Slug um\r\n *\r\n * @param text Text\r\n * @param toLower Gibt an, ob der Slug nur aus Kleinbuchstaben bestehen soll\r\n */\r\nexport function sluggify(text: string, toLower = false): string {\r\n const separator = '-';\r\n\r\n // Nicht benötigte Leerzeichen entfernen\r\n text = text.trim().replace('
', separator).replace('
', separator);\r\n\r\n if (!text) {\r\n return '';\r\n }\r\n\r\n // Falls das letzte Zeichen ein Punkt ist, so wird er entfernt\r\n text = text.slice(-1) === '.' ? text.slice(0, -1) : text;\r\n\r\n // Ersetzen von whitespaces und Punkten\r\n text = text.replace(/[\\s\\.]+/g, separator);\r\n\r\n // Optional den Text in Kleinbuchstaben umwandeln\r\n text = toLower ? text.toLowerCase() : text;\r\n\r\n // ä ö ü ersetzen\r\n text = text.replace(/ö/g, 'oe');\r\n text = text.replace(/ä/g, 'ae');\r\n text = text.replace(/ü/g, 'ue');\r\n\r\n // Alles löschen was kein Strich, eine Nummer, ein Unterstrich oder ein Buchstabe ist\r\n text = text.replace(/[^_a-zA-Z0-9ÖÄÜöäüß\\-\\.]/g, '');\r\n\r\n // '-+' -> '-'\r\n text = text.replace(`/${separator}\\+/`, separator);\r\n\r\n text = text.replace(/ö/g, 'oe');\r\n text = text.replace(/ä/g, 'ae');\r\n text = text.replace(/ü/g, 'ue');\r\n text = text.replace(/Ö/g, 'Oe');\r\n text = text.replace(/Ä/g, 'Ae');\r\n text = text.replace(/Ü/g, 'Ue');\r\n text = text.replace(/ß/g, 'ss');\r\n\r\n // Trimmen der umgebenden Separatoren.\r\n text = text.replace(`(^${separator}|${separator}$)`, '');\r\n\r\n // Entfernung von doppelten Separatoren\r\n text = text.replace(separator + separator, separator);\r\n\r\n return text;\r\n}\r\n\r\nexport default sluggify;\r\n"],"sourceRoot":""}