{"version":3,"file":"widget-editor.js","mappings":"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","sources":["webpack://admin-webpack/./Widgets/triggers/delayTrigger.ts","webpack://admin-webpack/./Widgets/lib/eventHandler.ts","webpack://admin-webpack/./Widgets/triggers/clickTrigger.ts","webpack://admin-webpack/./Widgets/triggers/scrollTrigger.ts","webpack://admin-webpack/./Widgets/lib/cookie.ts","webpack://admin-webpack/./Widgets/triggers/siteTimeTrigger.ts","webpack://admin-webpack/./Widgets/triggers/exitIntentTrigger.ts","webpack://admin-webpack/./Widgets/triggers/elementOnTrigger.ts","webpack://admin-webpack/./Widgets/lib/localStorage.ts","webpack://admin-webpack/./Widgets/triggers/visitsTrigger.ts","webpack://admin-webpack/./Widgets/lib/urlMatcher.ts","webpack://admin-webpack/./Widgets/triggers/visitedUrls.ts","webpack://admin-webpack/./Widgets/triggers/triggerRepository.ts","webpack://admin-webpack/./Widgets/Actions/alertAction.ts","webpack://admin-webpack/./Widgets/lib/domFunctions.ts","webpack://admin-webpack/./Widgets/lib/slideFunction.ts","webpack://admin-webpack/./Widgets/Actions/popAction.ts","webpack://admin-webpack/./Widgets/Actions/javaScriptAction.ts","webpack://admin-webpack/./Widgets/Actions/bannerAction.ts","webpack://admin-webpack/./Widgets/Actions/slideAndFadeAction.ts","webpack://admin-webpack/./Widgets/Actions/eventAction.ts","webpack://admin-webpack/./Widgets/Actions/actionRepository.ts","webpack://admin-webpack/./Widgets/Filters/deviceFilter.ts","webpack://admin-webpack/./Widgets/Filters/languageFilter.ts","webpack://admin-webpack/./Widgets/Filters/referrerFilter.ts","webpack://admin-webpack/./Widgets/Filters/queryFilter.ts","webpack://admin-webpack/./Widgets/Filters/contactFilter.ts","webpack://admin-webpack/./Widgets/Filters/urlFilter.ts","webpack://admin-webpack/./Widgets/Filters/filterRepository.ts","webpack://admin-webpack/external var \"ko\"","webpack://admin-webpack/./type-selector.ts","webpack://admin-webpack/./widget-editor.ts"],"sourcesContent":["import { Action } from \"../Actions/actionRepository\";\r\nimport { Trigger } from \"./triggerRepository\";\r\n\r\nexport interface DelayTriggerParam {\r\n timeToAction: number;\r\n}\r\n\r\nexport class DelayTrigger implements Trigger {\r\n params: DelayTriggerParam;\r\n\r\n constructor(params: DelayTriggerParam) {\r\n this.params = params;\r\n }\r\n\r\n // timeout: number;\r\n // hasRun: boolean;\r\n init = (action: Action) => {\r\n let actualTime = this.params.timeToAction * 1000;\r\n setTimeout(() => {\r\n action.execute();\r\n }, actualTime);\r\n };\r\n}\r\n","export function addEvent(target: any, type: string, listener: Function, options: any = null) {\r\n target.addEventListener(type, listener);\r\n}\r\nexport function removeEvent(target: any, type: string, listener: Function, options: any = null) {\r\n target.removeEventListener(type, listener);\r\n}\r\n","import { Action } from \"../Actions/actionRepository\";\r\nimport { Trigger } from \"./triggerRepository\";\r\nimport { addEvent, removeEvent } from \"../lib/eventHandler\";\r\n\r\nexport interface ClickTriggerParam {\r\n selector: string;\r\n clicksRequired: number; // Number of clicks required to trigger the event\r\n}\r\n\r\nexport class ClickTrigger implements Trigger {\r\n params: ClickTriggerParam;\r\n constructor(params: ClickTriggerParam) {\r\n this.params = params;\r\n }\r\n\r\n applyToAll(elements: any, action: any, type: any, fn: any) {\r\n for (var i = 0; i < elements.length; i++) {\r\n action(elements[i], type, fn);\r\n }\r\n }\r\n\r\n init = (action: Action) => {\r\n let clickCounter = 0;\r\n const elements = document.querySelectorAll(this.params.selector);\r\n if (!elements) return;\r\n\r\n var fn = () => {\r\n clickCounter = clickCounter + 1;\r\n if (!this.params.clicksRequired || clickCounter === this.params.clicksRequired) {\r\n action.execute();\r\n }\r\n };\r\n this.applyToAll(elements, addEvent, \"click\", fn);\r\n };\r\n}\r\n","import { Action } from \"../Actions/actionRepository\";\r\nimport { Trigger } from \"./triggerRepository\";\r\nimport * as localStorageLib from \"../lib/localStorage\";\r\nimport { addEvent, removeEvent } from \"../lib/eventHandler\";\r\n\r\nexport interface IScrollTriggerParam {\r\n percent: number;\r\n}\r\n\r\nexport class ScrollTrigger implements Trigger {\r\n params: IScrollTriggerParam;\r\n\r\n constructor(params: IScrollTriggerParam) {\r\n this.params = params;\r\n }\r\n\r\n init = (action: Action) => {\r\n var fn = () => {\r\n let h = document.documentElement;\r\n let b = document.body;\r\n let percent = ((h.scrollTop || b.scrollTop) / ((h.scrollHeight || b.scrollHeight) - h.clientHeight)) * 100;\r\n\r\n if (Math.round(percent) >= this.params.percent) {\r\n action.execute();\r\n }\r\n };\r\n addEvent(window, \"scroll\", fn);\r\n };\r\n}\r\n","export function setSessionCookie(scope: string, name: string, value: any) {\r\n let fullName = getCookieName(scope, name);\r\n document.cookie = fullName + \"=\" + value + \";path=/\";\r\n}\r\nfunction getCookieName(scope: string, name: string) {\r\n //ug.st => ungapped.sessionthrottle\r\n return (\"ug.\" + scope + \".\" + name).replace(\" \", \"\");\r\n}\r\nexport function getCookie(scope: string, name: string) {\r\n let key = getCookieName(scope, name);\r\n let regex = new RegExp(\"(?:(?:^|.*;\\\\s*)\" + key + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\");\r\n var cookie = document.cookie.replace(regex, \"$1\");\r\n return cookie;\r\n}\r\nexport function deleteAllCookies() {\r\n var cookies = document.cookie.split(\";\");\r\n for (var i = 0; i < cookies.length; i++) {\r\n var cookie = cookies[i];\r\n var eqPos = cookie.indexOf(\"=\");\r\n var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;\r\n document.cookie = name + \"=;expires=Thu, 01 Jan 1970 00:00:00 GMT\";\r\n }\r\n}\r\n\r\nexport function checkCookie(scope: string, name: string) {\r\n var action = getCookie(scope, name);\r\n if (action != \"\") {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n","import { Action } from \"../Actions/actionRepository\";\r\nimport { Trigger } from \"./triggerRepository\";\r\nimport * as cookie from \"../lib/cookie\";\r\n\r\nexport interface SiteTimeTriggerParam {\r\n timeOnSite: number;\r\n}\r\n\r\nconst cookieKey = \"sessionStart\";\r\nconst cookieNS = \"trigger\";\r\nexport class SiteTimeTrigger implements Trigger {\r\n params: SiteTimeTriggerParam;\r\n constructor(params: SiteTimeTriggerParam) {\r\n this.params = params;\r\n }\r\n\r\n init = (action: Action) => {\r\n let startDate: Date = new Date();\r\n\r\n if (!cookie.getCookie(cookieNS, cookieKey)) {\r\n cookie.setSessionCookie(cookieNS, cookieKey, startDate.getTime());\r\n }\r\n\r\n let currentTimeOut = this.params.timeOnSite * 1000;\r\n startDate = new Date(Number.parseInt(cookie.getCookie(cookieNS, cookieKey)));\r\n const endDate = new Date();\r\n const msDiff: number = Math.round((endDate.getTime() - startDate.getTime()) / 1000);\r\n\r\n currentTimeOut -= msDiff * 1000;\r\n\r\n setTimeout(() => {\r\n action.execute();\r\n }, currentTimeOut);\r\n };\r\n}\r\n","import { Action } from \"../Actions/actionRepository\";\r\nimport { Trigger } from \"./triggerRepository\";\r\nimport { addEvent, removeEvent } from \"../lib/eventHandler\";\r\n\r\nexport interface ExitIntentTriggerParam {\r\n dangerZone: number;\r\n}\r\n\r\nexport class ExitIntentTrigger implements Trigger {\r\n params: ExitIntentTriggerParam;\r\n\r\n constructor(params: ExitIntentTriggerParam) {\r\n this.params = params;\r\n }\r\n\r\n init = (action: Action) => {\r\n var fn = (event: any) => {\r\n if (event.clientY <= dangerZone || event[\"pageY\"] <= dangerZone) {\r\n action.execute();\r\n }\r\n };\r\n\r\n var dangerZone = this.params.dangerZone;\r\n let box = document.querySelector(\"body\");\r\n addEvent(box, \"mousemove\", fn);\r\n };\r\n}\r\n","import { Action } from \"../Actions/actionRepository\";\r\nimport { Trigger } from \"./triggerRepository\";\r\nimport { addEvent, removeEvent } from \"../lib/eventHandler\";\r\n\r\nexport interface ElementOnTriggerParam {\r\n selector: string;\r\n}\r\n\r\nexport class ElementOnTrigger implements Trigger {\r\n params: ElementOnTriggerParam;\r\n\r\n constructor(params: ElementOnTriggerParam) {\r\n this.params = params;\r\n }\r\n\r\n init = (act: Action) => {\r\n var isInViewport = (element: any) => {\r\n var bounding = element.getBoundingClientRect();\r\n if (\r\n bounding.top >= 0 &&\r\n bounding.left >= 0 &&\r\n bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n bounding.right <= (window.innerWidth || document.documentElement.clientWidth)\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n var fn = () => {\r\n var elements = document.querySelectorAll(this.params.selector);\r\n for (var i = 0; (i = elements.length); i++) {\r\n if (isInViewport(elements[i])) {\r\n act.execute();\r\n removeEvent(window, \"scroll\", fn);\r\n return;\r\n }\r\n }\r\n };\r\n addEvent(window, \"scroll\", fn);\r\n };\r\n}\r\n","export function setItem(scope: string, name: string, obj: any) {\r\n let type: string = typeof obj;\r\n\r\n if (obj instanceof Date) {\r\n type = \"Date\";\r\n }\r\n var ev = {\r\n type: type,\r\n data: obj,\r\n };\r\n localStorage.setItem(itemName(scope, name), JSON.stringify(ev));\r\n}\r\n\r\nfunction itemName(scope: string, name: string): string {\r\n return [\"Ungapped\", scope, name].join(\".\");\r\n}\r\nexport function getItem(scope: string, name: string) {\r\n let thisItem = itemName(scope, name);\r\n\r\n let thisItemGet = localStorage.getItem(thisItem);\r\n if (thisItemGet != null) {\r\n let ParsedItem = JSON.parse(thisItemGet);\r\n if (ParsedItem.type != null && ParsedItem.type == \"Date\") {\r\n ParsedItem.data = new Date(ParsedItem.data);\r\n }\r\n\r\n return ParsedItem.data;\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nexport function removeItem(scope: string, name: string) {\r\n localStorage.removeItem(itemName(scope, name));\r\n}\r\n\r\nexport function LocalStorageClear() {\r\n localStorage.clear();\r\n}\r\n","import { Action } from \"../Actions/actionRepository\";\r\nimport { Trigger } from \"./triggerRepository\";\r\nimport * as localStorageLib from \"../lib/localStorage\";\r\n\r\nexport interface IEnterParam {\r\n count: number;\r\n}\r\nconst localStoragePrefix = \"CEnter\";\r\nexport class VisitsTrigger implements Trigger {\r\n params: IEnterParam;\r\n constructor(params: IEnterParam) {\r\n this.params = params;\r\n }\r\n init = (act: Action) => {\r\n if (\r\n localStorageLib.getItem(localStoragePrefix, \"startDate\") == null ||\r\n localStorageLib.getItem(localStoragePrefix, \"startDate\").getDate() != new Date().getDate()\r\n ) {\r\n localStorageLib.removeItem(localStoragePrefix, \"hasRun\");\r\n localStorageLib.setItem(localStoragePrefix, \"startDate\", new Date());\r\n localStorageLib.setItem(localStoragePrefix, \"EnterCounter\", 0);\r\n } else if (localStorageLib.getItem(localStoragePrefix, \"EnterCounter\") < this.params.count) {\r\n var enterCounter = localStorageLib.getItem(localStoragePrefix, \"EnterCounter\") + 1;\r\n localStorageLib.setItem(localStoragePrefix, \"EnterCounter\", enterCounter);\r\n } else if (\r\n localStorageLib.getItem(localStoragePrefix, \"EnterCounter\") == this.params.count &&\r\n localStorageLib.getItem(localStoragePrefix, \"hasRun\") == null\r\n ) {\r\n act.execute();\r\n localStorageLib.setItem(localStoragePrefix, \"hasRun\", true);\r\n }\r\n };\r\n}\r\n","export function matchUrl(urls: string[], currentPath: string): boolean {\r\n let isMatch = urls.indexOf(currentPath) > -1;\r\n if (!isMatch) {\r\n let wildcards = urls.filter((url) => {\r\n return url.indexOf(\"*\") > -1;\r\n });\r\n for (let i = 0; i < wildcards.length; i++) {\r\n let wildcard = wildcards[i];\r\n let regex = new RegExp(wildcard.replace(\"*\", \".*\"));\r\n if (regex.test(currentPath)) {\r\n isMatch = true;\r\n break;\r\n }\r\n }\r\n }\r\n return isMatch;\r\n}\r\n","import { Action } from \"../Actions/actionRepository\";\r\nimport { Trigger } from \"./triggerRepository\";\r\nimport * as localStorageLib from \"../lib/localStorage\";\r\nimport { matchUrl } from \"../lib/urlMatcher\";\r\nexport interface VisitedUrlsParams {\r\n id: string;\r\n urls: string;\r\n count: number;\r\n delayInSeconds: number;\r\n}\r\n\r\nconst localStoragePrefix = \"visitedUrls\";\r\nexport class VisitedUrls implements Trigger {\r\n params: VisitedUrlsParams;\r\n constructor(params: VisitedUrlsParams) {\r\n this.params = params;\r\n }\r\n init = (action: Action) => {\r\n let currentPath = location.pathname;\r\n let urls = this.params.urls.split(\",\");\r\n\r\n let isMatch = matchUrl(urls, currentPath);\r\n if (isMatch) {\r\n let setCount = localStorageLib.getItem(localStoragePrefix, this.params.id) as number;\r\n if (setCount == null || undefined) {\r\n setCount = 0;\r\n }\r\n if (setCount === -1) return;\r\n\r\n setCount++;\r\n\r\n if (setCount >= this.params.count) {\r\n setCount = 0;\r\n setTimeout(\r\n () => {\r\n action.execute();\r\n },\r\n (this.params.delayInSeconds || 0) * 1000,\r\n );\r\n }\r\n localStorageLib.setItem(localStoragePrefix, this.params.id, setCount);\r\n }\r\n };\r\n}\r\n","import { DelayTrigger } from \"./delayTrigger\";\r\nimport { ClickTrigger } from \"./clickTrigger\";\r\nimport { ScrollTrigger } from \"./scrollTrigger\";\r\nimport { SiteTimeTrigger } from \"./siteTimeTrigger\";\r\nimport { ExitIntentTrigger } from \"./exitIntentTrigger\";\r\nimport { ElementOnTrigger } from \"./elementOnTrigger\";\r\nimport { VisitsTrigger } from \"./visitsTrigger\";\r\nimport { VisitedUrls } from \"./visitedUrls\";\r\nimport Action from \"../Actions/actionRepository\";\r\n\r\nexport interface Trigger {\r\n init: (action: Action) => void;\r\n}\r\n\r\nexport var triggerRepository: { [id: string]: ITriggerDefinition } = {};\r\n\r\nexport interface ITriggerDefinition {\r\n trigger: any;\r\n description: string;\r\n params: any;\r\n paramsDescription: any;\r\n}\r\n\r\ntriggerRepository[\"delay\"] = {\r\n trigger: DelayTrigger,\r\n description: \"Action kommer att hända efter antal angivna sekunder\",\r\n params: { timeToAction: \"\" },\r\n paramsDescription: { timeToAction: \"Tid i sekunder.\" },\r\n}; //timeToAction: number/ milliseconds\r\n\r\ntriggerRepository[\"click\"] = {\r\n trigger: ClickTrigger,\r\n description: \"Action kommer att hända efter ett visst antal click\",\r\n params: {\r\n selector: \"\",\r\n clickCount: \"\",\r\n },\r\n paramsDescription: {\r\n selector: \"Skall vara elementets selector\",\r\n clickCount: \"Antal click på obj\",\r\n },\r\n}; //elementId: string;\r\n\r\ntriggerRepository[\"scroll\"] = {\r\n trigger: ScrollTrigger,\r\n description: \"Action kommer att hända efter att man har scrollat några procent\",\r\n params: { percent: \"\" },\r\n paramsDescription: {\r\n percent: \"Hur mycket i % skall man skrolla för att få trigger\",\r\n },\r\n}; // percent: number;\r\n\r\ntriggerRepository[\"exitIntent\"] = {\r\n trigger: ExitIntentTrigger,\r\n description: \"Action kommer att hända när man flyttar muspekaren när toolbar\",\r\n params: { dangerZone: \"\" },\r\n paramsDescription: { dangerZone: \"type:number, Where mouse should go\" },\r\n}; //dangerZone: number;\r\n\r\ntriggerRepository[\"siteTime\"] = {\r\n trigger: SiteTimeTrigger,\r\n description: \"På en specifik sida\",\r\n params: { timeOnSite: \"timeOnSite\" },\r\n paramsDescription: { timeOnSite: \"Hur lång tid på sidan\" },\r\n}; // timeOnSite: number;\r\n\r\ntriggerRepository[\"elementVisible\"] = {\r\n trigger: ElementOnTrigger,\r\n description: \"Action kommmer att hända när första elementet enligt selector kommer in på sidan\",\r\n params: { selector: \"\" },\r\n paramsDescription: { selector: \"element selector\" },\r\n}; //elementId string\r\n\r\ntriggerRepository[\"visits\"] = {\r\n trigger: VisitsTrigger,\r\n description: \"action kommer att hända efter ett antal gånger man har besökt sidan\",\r\n params: { count: \"\" },\r\n paramsDescription: { count: \"Antal gånger på besökt sida\" },\r\n}; //count: number\r\n\r\ntriggerRepository[\"visitedUrls\"] = {\r\n trigger: VisitedUrls,\r\n description:\r\n \"Kommaseparerad lista med besökta paths på denna site (ex. /home/42,/home/43,/store), fungerar även med wildcards ( /home/* )\",\r\n params: {\r\n urls: \"\",\r\n count: \"\",\r\n id: \"\",\r\n delayInSeconds: \"\",\r\n },\r\n paramsDescription: {\r\n urls: \"Arrayer med sites\",\r\n count: \"antal besök\",\r\n id: \"unique id for this url set\",\r\n delayInSeconds: \"number of seconds to wait until action, if set\",\r\n },\r\n};\r\n","import { Action } from \"./actionRepository\";\r\n\r\nexport interface AlertParams {\r\n text: string;\r\n}\r\n\r\nexport class AlertAction implements Action {\r\n params: AlertParams;\r\n constructor(params: AlertParams) {\r\n this.params = params;\r\n }\r\n execute() {\r\n alert(this.params.text);\r\n }\r\n}\r\n","export function findElement(id: string) {\r\n var selectedElement = document.getElementById(id);\r\n return selectedElement;\r\n}\r\n\r\n//OBS om det behövs border Radius i elementCSS skriv som \"border-radius\" FOCUS PÅ (\"\") : \"20%\"\r\n// elementCSS obj {CSSerty : \"red\"}\r\n\r\n//type = {href:link}/{class:ClassName} Skall också skickas som object , då kan man ange\r\n//mer specifika parametrar t.ex. till ett eller så\r\n\r\nexport function createElement(elementName: string, attributes: any, style: any) {\r\n var element = document.createElement(elementName) as any;\r\n for (var key in attributes) {\r\n element.setAttribute(key, attributes[key]);\r\n }\r\n for (var key in style) {\r\n element.style[key] = style[key];\r\n }\r\n return element;\r\n}\r\n\r\nexport function textContent(content: string) {\r\n return document.createTextNode(content);\r\n}\r\n\r\nexport function appendOnBody(element: any) {\r\n document.body.appendChild(element);\r\n}\r\n\r\nexport function appendToElement(el: string, element: any) {\r\n var a = document.getElementById(el);\r\n if (!!a) {\r\n a.appendChild(element);\r\n }\r\n}\r\n\r\nexport function removeElement(elementId: string) {\r\n var element = document.getElementById(elementId);\r\n\r\n var body = document.body;\r\n\r\n if (!!body && !!element) {\r\n body.removeChild(element);\r\n }\r\n\r\n //ogiltig argument\r\n}\r\n","export function slideIn(element: any, directionFrom: string) {\r\n var coordinate = coor(directionFrom);\r\n var value = trnslt(directionFrom) || 0;\r\n\r\n element.style.transform =\r\n \"translate\" + coordinate + \"(\" + value + \"%); -ms-translate\" + coordinate + \"(\" + value + \"%)\";\r\n var tick = function () {\r\n if (value > 100) {\r\n value -= 100;\r\n } else if (value < -100) {\r\n value += 100;\r\n } else if (value > 0) {\r\n value -= 1;\r\n } else if (value < 0) {\r\n value += 1;\r\n }\r\n element.style.transform = \"translate\" + coordinate + \"(\" + value + \"%)\";\r\n if (value !== 0) {\r\n requestAnimationFrame(tick);\r\n }\r\n };\r\n tick();\r\n}\r\n\r\nexport function fadeIn(element: HTMLElement, cb?: () => void) {\r\n let time = 500;\r\n element.style.opacity = \"0\";\r\n element.style.transition = \"opacity ease-in \" + time + \"ms\";\r\n setTimeout(() => (element.style.opacity = \"1\"), 0);\r\n setTimeout(() => cb && cb(), time);\r\n}\r\n\r\nexport function fadeOut(element: HTMLElement, cb?: () => void) {\r\n let time = 500;\r\n element.style.opacity = \"1\";\r\n element.style.transition = \"opacity ease-out \" + time + \"ms\";\r\n setTimeout(() => (element.style.opacity = \"0\"), 0);\r\n setTimeout(() => cb && cb(), time);\r\n}\r\n\r\nfunction trnslt(directionFrom: string) {\r\n if (directionFrom == \"right\") {\r\n return window.innerWidth;\r\n } else if (directionFrom == \"left\") {\r\n return -window.innerWidth;\r\n } else if (directionFrom == \"top\") {\r\n return -window.innerHeight;\r\n } else if (directionFrom == \"bottom\") {\r\n return window.innerHeight;\r\n }\r\n return 0;\r\n}\r\n\r\nfunction coor(directionFrom: string) {\r\n if (directionFrom == \"right\" || directionFrom == \"left\") {\r\n return \"X\";\r\n }\r\n if (directionFrom == \"top\" || directionFrom == \"bottom\") {\r\n return \"Y\";\r\n }\r\n throw \"direction from was unparsable [\" + directionFrom + \"]\";\r\n}\r\n","import { Action } from \"./actionRepository\";\r\nimport * as functionLib from \"../lib/domFunctions\";\r\nimport { addEvent } from \"../lib/eventHandler\";\r\nimport { fadeOut, fadeIn } from \"../lib/slideFunction\";\r\n\r\nexport interface PopParams {\r\n elementName: string;\r\n type: any;\r\n elementCSS: any;\r\n el: string;\r\n id: string;\r\n elementId: string;\r\n content: string;\r\n src: string;\r\n}\r\n\r\nexport class PopAction implements Action {\r\n params: PopParams;\r\n\r\n constructor(params: PopParams) {\r\n this.params = params;\r\n }\r\n\r\n execute() {\r\n var overlay = functionLib.createElement(\r\n \"div\",\r\n {},\r\n {\r\n position: \"fixed\",\r\n inset: 0,\r\n backgroundColor: \"rgba(0, 0, 0, 0.5)\",\r\n zIndex: 999,\r\n // overflow: 'auto',\r\n display: \"flex\",\r\n },\r\n );\r\n\r\n var modal = functionLib.createElement(\r\n \"div\",\r\n { onclick: \"event.stopPropagation()\" },\r\n {\r\n margin: \"auto\",\r\n },\r\n );\r\n\r\n var content = functionLib.createElement(\"div\", {}, { position: \"relative\" });\r\n\r\n var closebtn = functionLib.createElement(\r\n \"button\",\r\n {},\r\n {\r\n position: \"absolute\",\r\n backgroundColor: \"#000\",\r\n border: \"2px solid #fff\",\r\n color: \"#fff\",\r\n width: \"40px\",\r\n height: \"40px\",\r\n borderRadius: \"20px\",\r\n cursor: \"pointer\",\r\n top: \"-10px\",\r\n right: \"-10px\",\r\n padding: \"0\",\r\n fontSize: \"28px\",\r\n },\r\n );\r\n\r\n closebtn.innerHTML = \"×\";\r\n\r\n // var header = functionLib.createElement('h2', { id: \"ug-title\" }, { position:\"absolute\", top: \"20%\", left:\"10%\"});\r\n // var textNode = functionLib.textContent(this.params.content);\r\n\r\n document.body.appendChild(overlay);\r\n fadeIn(overlay);\r\n overlay.appendChild(modal);\r\n modal.appendChild(content);\r\n\r\n if (this.params.content) {\r\n const shadowHost = functionLib.createElement(\"div\", {}, {});\r\n const shadow = shadowHost.attachShadow({ mode: \"open\" });\r\n\r\n shadow.innerHTML = this.params.content;\r\n content.appendChild(shadowHost);\r\n\r\n const styles = shadow.querySelectorAll(\"style\");\r\n\r\n styles &&\r\n styles.forEach((style: HTMLElement) => {\r\n const css = style.innerHTML;\r\n\r\n if (css && css.indexOf(\"@import url(\") > -1) {\r\n const clonedStyle = style.cloneNode(true);\r\n content.appendChild(clonedStyle);\r\n }\r\n });\r\n } else if (this.params.src) {\r\n var iframe = functionLib.createElement(\r\n \"iframe\",\r\n { id: \"ug-iframe\", frameborder: 0, border: 0, src: this.params.src },\r\n { overflow: \"auto\", display: \"block\", width: \"50vw\", height: \"50vh\", borderRadius: \"4px\" },\r\n );\r\n\r\n content.appendChild(iframe);\r\n }\r\n content.appendChild(closebtn);\r\n\r\n // modal.appendChild(header);\r\n // header.appendChild(textNode);\r\n\r\n // var contentWin = iframe.contentWindow\r\n // console.log('ifcw',contentWin);\r\n // var doc = contentWin.document\r\n // console.log(doc);\r\n // doc.open()\r\n // doc.write(this.params.content)\r\n //\r\n // contentWin.document.body.style.margin = 0\r\n // contentWin.document.body.style.display = 'flex'\r\n //\r\n // // iframe.style.maxWidth = contentWin.document.body.scrollWidth + \"px\";\r\n // iframe.style.maxHeight = contentWin.document.body.scrollHeight + 'px'\r\n //\r\n // doc.close()\r\n\r\n addEvent(closebtn, \"click\", () => {\r\n fadeOut(overlay, function () {\r\n document.body.removeChild(overlay);\r\n });\r\n });\r\n\r\n /*\r\n addEvent(overlay, \"click\", () => {\r\n functionLib.removeElement(this.params.elementId);\r\n }); //Klicka utanför modal för att stänga overlay\r\n\r\n addEvent(window, \"message\", (event: any) => {\r\n if (event.data !== \"\") {\r\n // header.textContent = \"Hej \"+event.data;\r\n\r\n setTimeout(() => {\r\n fadeOut(overlay);\r\n }, 5000);\r\n setTimeout(() => {\r\n functionLib.removeElement(this.params.elementId);\r\n }, 8000);\r\n }\r\n }); //Skicka input för att stänga popup\r\n \r\n addEvent(document, \"keyup\", (event: any) => {\r\n if (event.keyCode == 27) {\r\n functionLib.removeElement(this.params.elementId); //Escape stänger overlay\r\n }\r\n });\r\n */\r\n }\r\n}\r\n","import { Action } from \"./actionRepository\";\r\n\r\nexport interface JavaScriptParams {\r\n externalAction: any;\r\n}\r\n\r\nexport class JavaScriptAction implements Action {\r\n params: JavaScriptParams;\r\n constructor(params: JavaScriptParams) {\r\n this.params = params;\r\n }\r\n execute() {\r\n this.params.externalAction();\r\n }\r\n}\r\n","import { Action } from \"./actionRepository\";\r\nimport * as functionLib from \"../lib/domFunctions\";\r\nimport { addEvent } from \"../lib/eventHandler\";\r\n\r\nexport interface BannerParams {\r\n elementName: string;\r\n type: any;\r\n elementCSS: any;\r\n el: string;\r\n id: string;\r\n elementId: string;\r\n content: string;\r\n src: string;\r\n top: boolean;\r\n bottom: boolean;\r\n}\r\nexport class BannerAction implements Action {\r\n params: BannerParams;\r\n constructor(params: BannerParams) {\r\n this.params = params;\r\n }\r\n execute() {\r\n var banner = functionLib.createElement(\r\n \"div\",\r\n { id: \"ug-banner\" },\r\n {\r\n zIndex: \"999\",\r\n boxSizing: \"boder-box\",\r\n position: \"fixed\",\r\n width: \"100%\",\r\n height: this.params.elementCSS.height,\r\n overflow: \"hidden\",\r\n padding: \"10px\",\r\n display: \"block\",\r\n color: \"white\",\r\n backgroundColor: \"blue\",\r\n },\r\n );\r\n\r\n var iframe = functionLib.createElement(\r\n \"iframe\",\r\n { id: \"ug-iframe\", frameborder: 0, border: 0, src: this.params.src },\r\n { width: \"100%\", height: \"100%\", overflow: \"auto\" },\r\n );\r\n var header = functionLib.createElement(\"h3\", { id: \"ug-title\" }, { margin: \"auto\" });\r\n var textNode = document.createTextNode(this.params.content);\r\n var closebtn = functionLib.createElement(\r\n \"button\",\r\n { id: \"ug-close-button\" },\r\n { position: \"absolute\", top: \"10%\", left: \"70%\" },\r\n );\r\n closebtn.innerHTML = \"CLOSE\";\r\n\r\n document.body.appendChild(banner);\r\n if (this.params.top) {\r\n banner.style.top = \"0\";\r\n } else if (this.params.bottom) {\r\n banner.style.bottom = \"0\";\r\n }\r\n banner.appendChild(closebtn);\r\n banner.appendChild(header);\r\n header.appendChild(textNode);\r\n banner.appendChild(iframe);\r\n\r\n var btn = document.getElementById(\"ug-close-button\");\r\n addEvent(btn, \"click\", () => {\r\n functionLib.removeElement(this.params.elementId);\r\n }); //Klicka på knappen för att stänga banner\r\n addEvent(window, \"message\", () => {\r\n functionLib.removeElement(this.params.elementId);\r\n }); //Skicka input för att stänga banner\r\n }\r\n}\r\n","import { Action } from \"./actionRepository\";\r\nimport * as functionLib from \"../lib/domFunctions\";\r\nimport { addEvent } from \"../lib/eventHandler\";\r\nimport { slideIn, fadeIn, fadeOut } from \"../lib/slideFunction\";\r\n\r\nexport interface SlideAndFadeParams {\r\n elementName: string;\r\n type: any;\r\n elementCSS: any;\r\n el: string;\r\n id: string;\r\n elementId: string;\r\n content: string;\r\n src: string;\r\n fadeIn: boolean;\r\n slideIn: string;\r\n directionFrom: string;\r\n}\r\n\r\nexport class SlideAndFadeAction implements Action {\r\n params: SlideAndFadeParams;\r\n\r\n constructor(params: SlideAndFadeParams) {\r\n this.params = params;\r\n }\r\n\r\n execute() {\r\n var banner = functionLib.createElement(\r\n \"div\",\r\n { id: \"ug-slide\" },\r\n {\r\n Zindex: \"999\",\r\n boxSizing: \"boder-box\",\r\n position: \"fixed\",\r\n width: this.params.elementCSS.width + \"px\",\r\n height: this.params.elementCSS.height + \"px\",\r\n overflow: \"hidden\",\r\n padding: \"30px\",\r\n display: \"block\",\r\n bottom: \"100px\",\r\n left: \"300px\",\r\n color: \"white\",\r\n backgroundColor: \"blue\",\r\n transition: \"all .9s cubic-bezier(.165,.84,.44,1) 0s\",\r\n },\r\n );\r\n\r\n var iframe = functionLib.createElement(\r\n \"iframe\",\r\n {\r\n id: \"ug-iframe\",\r\n frameborder: 0,\r\n border: 0,\r\n src: this.params.src,\r\n },\r\n { width: \"100%\", height: \"100%\", overflow: \"auto\" },\r\n );\r\n var header = functionLib.createElement(\"h3\", { id: \"ug-title\" }, { margin: \"auto\" });\r\n var textNode = document.createTextNode(this.params.content);\r\n var closebtn = functionLib.createElement(\r\n \"button\",\r\n { id: \"ug-close-button\" },\r\n {\r\n position: \"absolute\",\r\n top: \"10%\",\r\n left: \"70%\",\r\n },\r\n );\r\n closebtn.innerHTML = \"CLOSE\";\r\n\r\n document.body.appendChild(banner);\r\n if (this.params.fadeIn) {\r\n fadeIn(banner);\r\n } else if (this.params.slideIn) {\r\n slideIn(banner, this.params.slideIn);\r\n } else {\r\n return;\r\n }\r\n banner.appendChild(closebtn);\r\n banner.appendChild(header);\r\n header.appendChild(textNode);\r\n banner.appendChild(iframe);\r\n\r\n var btn = document.getElementById(\"ug-close-button\");\r\n addEvent(btn, \"click\", () => {\r\n functionLib.removeElement(this.params.elementId);\r\n }); //Klicka på knappen för att stänga banner\r\n addEvent(window, \"message\", (event: any) => {\r\n if (event.data !== \"\") {\r\n header.textContent = \"Hej \" + event.data;\r\n\r\n setTimeout(() => {\r\n if (banner.isConnected) {\r\n fadeOut(banner);\r\n }\r\n }, 5000);\r\n setTimeout(() => {\r\n if (banner.isConnected) {\r\n functionLib.removeElement(this.params.elementId);\r\n }\r\n }, 8000);\r\n }\r\n }); //Skicka input för att stänga banner\r\n }\r\n}\r\n","import * as localStorage from \"../lib/localStorage\";\r\nimport { Action } from \"./actionRepository\";\r\n\r\nexport interface EventActionParam {\r\n data: any;\r\n event: string;\r\n category: string;\r\n action: string;\r\n label: string;\r\n value: string;\r\n}\r\n\r\nexport class EventAction implements Action {\r\n params: EventActionParam;\r\n\r\n constructor(params: EventActionParam) {\r\n this.params = params;\r\n }\r\n\r\n isFunction(data: any) {\r\n return data && {}.toString.call(data) === \"[object Function]\";\r\n }\r\n\r\n execute() {\r\n let userId = localStorage.getItem(\"contactFilter\", \"contactId\");\r\n if (!userId) return; //Skip if no contact\r\n var xhr = new XMLHttpRequest();\r\n xhr.open(\"POST\", \"https://evt.ungapped.com/custom\", true);\r\n //xhr.open('POST', 'https://evt.ungapped.com/custom', true);\r\n xhr.setRequestHeader(\"Content-type\", \"application/JSON\");\r\n let customEvent = {\r\n contactId: userId,\r\n event: this.params.event,\r\n category: this.params.category,\r\n action: this.params.action,\r\n label: this.params.label,\r\n value: this.params.value,\r\n data: null as unknown,\r\n };\r\n var payload = this.isFunction(this.params.data) ? this.params.data() : this.params.data;\r\n\r\n customEvent.data = JSON.stringify(payload);\r\n\r\n xhr.onload = function () {\r\n console.log(this.responseText);\r\n };\r\n xhr.send(JSON.stringify(customEvent));\r\n }\r\n}\r\n","import { AlertAction } from \"./alertAction\";\r\nimport { PopAction } from \"./popAction\";\r\nimport { JavaScriptAction } from \"./javaScriptAction\";\r\nimport { BannerAction } from \"./bannerAction\";\r\nimport { SlideAndFadeAction } from \"./slideAndFadeAction\";\r\nimport { EventAction } from \"./eventAction\";\r\n\r\nexport var actionRepository = {} as any;\r\n\r\nactionRepository[\"alert\"] = {\r\n action: AlertAction,\r\n description: \"Action är en alertbox\",\r\n params: { text: \"\" },\r\n paramsDescription: { text: \"Alertboxens innehåll\" },\r\n};\r\nactionRepository[\"pop\"] = {\r\n action: PopAction,\r\n description: \"Action är en popup ruta med en iframe\",\r\n params: {\r\n elementName: \"\",\r\n type: \"\",\r\n elementCSS: \"\",\r\n el: \"\",\r\n id: \"\",\r\n elementId: \"\",\r\n content: \"\",\r\n src: \"\",\r\n },\r\n paramsDescription: {\r\n elementName: \"\",\r\n type: \"\",\r\n elementCSS: \"\",\r\n el: \"\",\r\n id: \"\",\r\n elementId: \"\",\r\n content: \"html här\",\r\n src: \"\",\r\n },\r\n};\r\n\r\nactionRepository[\"script\"] = {\r\n action: JavaScriptAction,\r\n description: \"Your own JS as Action\",\r\n params: { externalAction: \"\" },\r\n paramsDescription: { externalAction: \"your JS Function in here (function(){console.log('this happened')})\" },\r\n};\r\n\r\nactionRepository[\"banner\"] = {\r\n action: BannerAction,\r\n description: \"Action är en banner\",\r\n params: { param: \"\" },\r\n paramsDescription: { param: \"Banner attribute är top eller bottom\" },\r\n};\r\n\r\nactionRepository[\"slideAndFade\"] = {\r\n action: SlideAndFadeAction,\r\n description: \"Action är en div som fade eller slide\",\r\n params: { param: \"\" },\r\n paramsDescription: { param: \"Direction,position eller boolean (right/left/top/bottom/true)\" },\r\n};\r\n\r\nactionRepository[\"event\"] = {\r\n action: EventAction,\r\n description: \"Triggar ett customevent\",\r\n params: {\r\n event: \"\",\r\n category: \"\",\r\n action: \"\",\r\n label: \"\",\r\n value: \"\",\r\n data: \"\",\r\n customEventType: \"string\",\r\n },\r\n paramsDescription: {\r\n event: \"string\",\r\n category: \"string\",\r\n action: \"string\",\r\n label: \"string\",\r\n value: \"string\",\r\n data: \"Data to post (string, json or function that resolves to string/json)\",\r\n customEventType: \"name of event, ex: site.area.event (shop.firstpagebanner.click)\",\r\n },\r\n};\r\n\r\nexport interface Action {\r\n execute(): void;\r\n}\r\n\r\nexport default Action;\r\n","export function isMobile() {\r\n var isMobile = /iPhone|iPad|iPod|Android|playbook|silk/i.test(navigator.userAgent);\r\n if (isMobile) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n}\r\n","export interface LanguageParameters {\r\n language: string;\r\n}\r\n\r\nexport function languageFilter(param: LanguageParameters) {\r\n if (navigator.language) {\r\n let navigatorFinal: string = navigator.language;\r\n if (navigatorFinal.indexOf(param.language) == 0) {\r\n return true;\r\n }\r\n } else if (navigator.language) {\r\n let navigatorFinal = navigator.language;\r\n if (navigatorFinal.indexOf(param.language) == 0) return true;\r\n return true;\r\n }\r\n return false;\r\n}\r\n","export interface ReferrerParams {\r\n link: string;\r\n}\r\n\r\nexport function reffererFilter(params: ReferrerParams) {\r\n this.params = params;\r\n if (document.referrer.includes(this.params.link)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n","export interface QueryParameters {\r\n query: string;\r\n}\r\n\r\n//Hittar värdet av parametern , exempel \"q\" som argument ger \"querystring\" när man söker igenom en google search url.\r\n\r\nexport function queryFilter(param: QueryParameters) {\r\n this.param = param;\r\n var query = window.location.search.substring(1);\r\n var vars = query.split(\"&\");\r\n for (var i = 0; i < vars.length; i++) {\r\n var pair = vars[i].split(\"=\");\r\n if (pair[0].toLocaleLowerCase() == this.param.toLocaleLowerCase()) {\r\n return pair[1];\r\n }\r\n }\r\n return undefined;\r\n}\r\n","import * as localStorage from \"../lib/localStorage\";\r\n\r\nexport enum contactType {\r\n known = \"KNOWN\",\r\n unknown = \"UNKNOWN\",\r\n}\r\n\r\nexport interface contactFilterParam {\r\n contactType: contactType;\r\n}\r\nexport function contactFilter(param: contactFilterParam) {\r\n let scope = \"contactFilter\";\r\n if (window.location.search != \"\") {\r\n let queryParameters = location.search.substring(1);\r\n let paramArray = queryParameters.split(\"&\");\r\n let actualID;\r\n for (let i = 0; i < paramArray.length; i++) {\r\n if (paramArray[i].toLowerCase().includes(\"ug_cid\")) {\r\n actualID = paramArray[i].split(\"=\");\r\n localStorage.setItem(scope, \"contactId\", actualID[1]);\r\n return true;\r\n }\r\n }\r\n return false;\r\n } else if (localStorage.getItem(scope, \"contactId\") != null) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n","import { matchUrl } from \"../lib/urlMatcher\";\r\nexport interface UrlFilterParams {\r\n urls: string;\r\n}\r\n\r\nexport function urlFilter(params: UrlFilterParams) {\r\n this.params = params;\r\n let currentPath = location.pathname;\r\n let urls = this.params.urls.split(\",\");\r\n let match = matchUrl(urls, currentPath);\r\n return !match;\r\n}\r\n","import { isMobile } from \"./deviceFilter\";\r\nimport { languageFilter } from \"./languageFilter\";\r\nimport { reffererFilter } from \"./referrerFilter\";\r\nimport { queryFilter } from \"./queryFilter\";\r\nimport { contactFilter } from \"./contactFilter\";\r\nimport { urlFilter } from \"./urlFilter\";\r\nexport var filterRepository = {} as any;\r\n\r\nfilterRepository[\"device\"] = {\r\n fn: isMobile,\r\n name: \"DeviceFilter\",\r\n params: { device: \"\" },\r\n paramsDescription: { device: \"What type of device is being used (phone/desktop)\" },\r\n};\r\n\r\nfilterRepository[\"language\"] = {\r\n fn: languageFilter,\r\n name: \"LanguageFilter\",\r\n params: { language: \"\" },\r\n paramsDescription: { language: \"What language to check\" },\r\n};\r\n\r\nfilterRepository[\"refferer\"] = {\r\n fn: reffererFilter,\r\n name: \"ReffererFilter\",\r\n params: { link: \"\" },\r\n paramsDescription: { link: \"Only handle certain refferer\" },\r\n};\r\nfilterRepository[\"urlFilter\"] = {\r\n fn: urlFilter,\r\n name: \"UrlFilter\",\r\n params: { urls: \"\" },\r\n paramsDescription: {\r\n urls: \"Kommaseparerad lista med sökvägar att inte trigga på (ex. /home/42,/home/43,/store), fungerar även med wildcards ( /home/* )\",\r\n },\r\n};\r\nfilterRepository[\"queryString\"] = {\r\n fn: queryFilter,\r\n name: \"QueryFilter\",\r\n params: { query: \"\" },\r\n paramsDescription: { query: \"Gives the value of the query searched?\" },\r\n};\r\n\r\nfilterRepository[\"contact\"] = {\r\n fn: contactFilter,\r\n name: \"ContactFilter\",\r\n params: { contactType: \"\" },\r\n paramsDescription: { contactType: \"only activate on selected contact type (KNOWN / UNKNOWN)\" },\r\n};\r\n","const __WEBPACK_NAMESPACE_OBJECT__ = ko;","/// \r\n/// \r\n\r\nimport * as ko from \"knockout\";\r\n\r\nexport interface TypeSelectorParams {\r\n typeSource: any;\r\n itemParameters: any;\r\n selectedItem: any;\r\n}\r\n\r\nexport function TypeSelectorViewModel(params: TypeSelectorParams) {\r\n this.params = params;\r\n let types = Object.keys(params.typeSource);\r\n this.selectedItem = params.selectedItem;\r\n this.typeSource = ko.observableArray(types);\r\n // this.selectedItem = params.selectedItem\r\n this.selectedType = ko.observable(params.selectedItem.type());\r\n this.dirty = ko.observable(false);\r\n\r\n this.selectedType.subscribe((newVal) => {\r\n this.dirty(true);\r\n console.log(\"newval\", newVal, this.selectedItem);\r\n this.selectedItem.type(this.selectedType());\r\n });\r\n\r\n this.param = params.itemParameters.param;\r\n let initalType = params.itemParameters() == undefined ? \"\" : params.itemParameters().type;\r\n this.selectedItemType = ko.observable(initalType);\r\n\r\n this.updateItem = () => {\r\n this.dirty(false);\r\n console.log(\"setting changes to trigger\", this.selectedItem);\r\n\r\n this.selectedItem.type(this.selectedType());\r\n };\r\n\r\n this.selectedTypeDescription = (type) =>\r\n type && params.typeSource[type].description ? params.typeSource[type].description : \"Missing description\";\r\n\r\n this.getParamDescription = (type, key) =>\r\n type.paramsDescription && type.paramsDescription[key] ? type.paramsDescription[key] : \"Missing description\";\r\n\r\n this.getParams = () => {\r\n if (\r\n params.typeSource[this.selectedType()] != undefined &&\r\n params.typeSource[this.selectedType()].params != undefined\r\n ) {\r\n this.param = Object.assign({}, params.typeSource[this.selectedType()].params);\r\n\r\n let paramArray = [];\r\n\r\n console.log(\"params.typeSource\", params.typeSource);\r\n console.log(\"this.param\", this.param);\r\n\r\n for (let key in this.param) {\r\n var val = this.param[key];\r\n\r\n if (this.params.selectedItem.params[key] != null) val = this.params.selectedItem.params[key]();\r\n\r\n let singleParam = {\r\n name: key,\r\n value: ko.observable(val),\r\n description: this.getParamDescription(params.typeSource[this.selectedType()], key),\r\n };\r\n\r\n singleParam.value.subscribe((nv) => {\r\n console.log(\"setting itemparams\");\r\n if (!this.params.selectedItem.params[key]) this.params.selectedItem.params[key] = ko.observable();\r\n\r\n this.params.selectedItem.params[key](nv);\r\n });\r\n\r\n paramArray.push(singleParam);\r\n }\r\n\r\n console.log(\"paramArray\", paramArray);\r\n\r\n return paramArray;\r\n } else {\r\n return [];\r\n }\r\n };\r\n}\r\n\r\ndeclare var registry: any;\r\nregistry.registerComponent(\"web\", \"type-selector\", TypeSelectorViewModel);\r\n","/// \r\n\r\nimport { triggerRepository } from \"./Widgets/triggers/triggerRepository\";\r\nimport { actionRepository } from \"./Widgets/Actions/actionRepository\";\r\nimport { filterRepository } from \"./Widgets/Filters/filterRepository\";\r\nimport * as ko from \"knockout\";\r\nimport { fromJSON } from \"knockout.mapping\";\r\n\r\nexport * from \"./type-selector\";\r\ndeclare var $;\r\ndeclare var alertSuccess;\r\ndeclare var alertError;\r\n\r\n// declare var ko;\r\n\r\nvar tempConfigSrc = {\r\n rules: [\r\n {\r\n id: \"rule1\",\r\n throttle: {\r\n maxRepetitions: 3,\r\n maxPerSession: 1,\r\n minTimeout: undefined,\r\n },\r\n triggers: [\r\n {\r\n type: \"delay\",\r\n params: { timeToAction: 5 },\r\n },\r\n ],\r\n filters: [{ type: \"language\", params: { language: \"sv\" } }],\r\n action: {\r\n type: \"alert\",\r\n\r\n params: { text: \"Hello from Action\" },\r\n },\r\n },\r\n {\r\n id: \"rule2\",\r\n triggers: [\r\n {\r\n type: \"click\",\r\n params: { selector: \"#yes-button\" },\r\n },\r\n ],\r\n throttle: {\r\n maxRepetitions: undefined,\r\n maxPerSession: undefined,\r\n minTimeout: undefined,\r\n },\r\n filters: [],\r\n action: {\r\n type: \"alert\",\r\n params: { text: \"Hello from click action\" },\r\n },\r\n },\r\n ],\r\n};\r\nlet ruleTemplate = {\r\n id: \"[No name]\",\r\n type: \"\",\r\n throttle: {\r\n maxRepetitions: ko.observable(null),\r\n maxPerSession: ko.observable(null),\r\n minTimeout: ko.observable(null),\r\n },\r\n triggers: [],\r\n filters: [],\r\n action: {\r\n type: ko.observable(null),\r\n params: {},\r\n },\r\n};\r\nfunction WidgetEditor() {\r\n this.availableActions = actionRepository;\r\n this.availableFilters = filterRepository;\r\n this.availableTriggers = triggerRepository;\r\n\r\n // console.log(\"this.availableTriggers\", this.availableTriggers['delay'].triggerDescription);\r\n\r\n this.configuration = ko.observable();\r\n this.widgetData = ko.observable();\r\n this.isInitialized = ko.observable(false);\r\n\r\n this.selectedRuleIndex = ko.observable(null);\r\n\r\n this.isSelected = (row) => {\r\n if (row && this.selectedRule()) if (this.selectedRule().id == row.id) return true;\r\n return false;\r\n };\r\n\r\n this.loadConfiguration = () => {\r\n return $.fn.application.get(\"/widgets\", this.configuration, { mapChildren: true }).done((cfg) => {\r\n console.log(\"loaded cfg\", cfg);\r\n if (cfg.Data == null) {\r\n this.widgetData(ko.mapping.fromJS({ rules: [] }));\r\n } else {\r\n var widgetData = JSON.parse(cfg.Data);\r\n for (var i = 0; i < widgetData.rules.length; i++) {\r\n widgetData.rules[i] = Object.assign({}, ruleTemplate, widgetData.rules[i]);\r\n widgetData.rules[i].throttle = Object.assign(\r\n {},\r\n ruleTemplate.throttle,\r\n widgetData.rules[i].throttle,\r\n );\r\n for (var it = 0; it < widgetData.rules[i].triggers.length; it++) {\r\n var newTrigger = Object.assign(\r\n {},\r\n { type: ko.observable(), params: {} },\r\n widgetData.rules[i].triggers[it],\r\n );\r\n widgetData.rules[i].triggers[it] = newTrigger;\r\n }\r\n for (var ifilter = 0; ifilter < widgetData.rules[i].filters.length; ifilter++) {\r\n let newFilter = Object.assign(\r\n {},\r\n { type: ko.observable(), params: {} },\r\n widgetData.rules[i].filters[ifilter],\r\n );\r\n widgetData.rules[i].filters[ifilter] = newFilter;\r\n }\r\n }\r\n console.log(\"wd\", JSON.stringify(widgetData));\r\n this.widgetData(ko.mapping.fromJS(widgetData));\r\n }\r\n\r\n this.isInitialized(true);\r\n });\r\n };\r\n this.publish = () => {\r\n return this.postChanges(true).done(() => {\r\n // this.configuration().HasUnpublishedChanges(true);\r\n });\r\n };\r\n this.saveChanges = () => {\r\n return this.postChanges(false).done(() => {\r\n // this.configuration().HasUnpublishedChanges(true);\r\n });\r\n };\r\n this.postChanges = (publish: boolean) => {\r\n let updatedConfiguration = ko.mapping.toJSON(this.widgetData, {});\r\n\r\n return $.fn.application\r\n .post(\"/widgets\", { Data: updatedConfiguration, Publish: publish })\r\n .done((cfg) => {\r\n this.configuration(ko.mapping.fromJS(cfg));\r\n alertSuccess(\"success\", \"Saved widget\");\r\n })\r\n .fail(() => {\r\n alertError(\"Failed\", \"Could not save widget\");\r\n });\r\n console.log(\"updated conf\", updatedConfiguration);\r\n };\r\n\r\n this.collapseIn = (index) => (this.selectedRule() && this.selectedRuleIndex() === index ? true : false);\r\n\r\n this.selectRule = (rule, index) => {\r\n console.log(\"selectRule\", rule);\r\n\r\n this.selectedRuleIndex(index);\r\n\r\n return rule !== this.selectedRule() ? this.selectedRule(rule) : this.selectedRule(undefined);\r\n };\r\n\r\n this.selectedRule = ko.observable();\r\n\r\n this.filterAdd = () => {\r\n console.log(this.filters());\r\n this.rule.filters.push({ type: \"\", params: {} });\r\n };\r\n\r\n this.addRule = () => {\r\n this.widgetData().rules.push(ko.mapping.fromJS({ ...ruleTemplate }));\r\n };\r\n this.removeRule = (rule) => {\r\n console.log(\"removeRule\");\r\n this.selectedRule(undefined);\r\n this.widgetData().rules.remove(rule);\r\n };\r\n this.addTrigger = () => {\r\n this.selectedRule().triggers.push({ type: ko.observable(), params: {} });\r\n };\r\n this.removeTrigger = (trigger: any) => {\r\n this.selectedRule().triggers.remove(trigger);\r\n };\r\n this.addFilter = () => {\r\n this.selectedRule().filters.push({ type: ko.observable(), params: {} });\r\n };\r\n this.removeFilter = (filter: any) => {\r\n this.selectedRule().filters.remove(filter);\r\n };\r\n this.finalJson = ko.observable();\r\n\r\n this.compute = ko.computed(() => {\r\n ko.toJSON(this.rule);\r\n });\r\n this.build = () => {\r\n this.finalJson(ko.toJSON(this.rule));\r\n };\r\n}\r\n\r\ndeclare var registry: any;\r\nregistry.registerComponent(\"web\", \"widget-editor\", WidgetEditor);\r\n"],"names":["DelayTrigger","params","action","actualTime","addEvent","target","type","listener","options","removeEvent","ClickTrigger","elements","fn","i","clickCounter","ScrollTrigger","h","b","percent","setSessionCookie","scope","name","value","fullName","getCookieName","getCookie","key","regex","cookie","deleteAllCookies","cookies","eqPos","checkCookie","cookieKey","cookieNS","SiteTimeTrigger","startDate","currentTimeOut","endDate","ExitIntentTrigger","event","dangerZone","box","ElementOnTrigger","act","isInViewport","element","bounding","setItem","obj","ev","itemName","getItem","thisItem","thisItemGet","ParsedItem","removeItem","LocalStorageClear","localStoragePrefix","VisitsTrigger","enterCounter","matchUrl","urls","currentPath","isMatch","wildcards","url","wildcard","VisitedUrls","setCount","triggerRepository","AlertAction","findElement","id","selectedElement","createElement","elementName","attributes","style","textContent","content","appendOnBody","appendToElement","el","a","removeElement","elementId","body","slideIn","directionFrom","coordinate","coor","trnslt","tick","fadeIn","cb","time","fadeOut","PopAction","overlay","modal","closebtn","shadowHost","shadow","styles","css","clonedStyle","iframe","JavaScriptAction","BannerAction","banner","header","textNode","btn","SlideAndFadeAction","EventAction","data","userId","xhr","customEvent","payload","actionRepository","isMobile","languageFilter","param","reffererFilter","queryFilter","query","vars","pair","contactType","contactFilter","paramArray","actualID","urlFilter","filterRepository","TypeSelectorViewModel","types","newVal","initalType","val","singleParam","nv","tempConfigSrc","ruleTemplate","WidgetEditor","row","cfg","widgetData","it","newTrigger","ifilter","newFilter","publish","updatedConfiguration","index","rule","trigger","filter"],"sourceRoot":""}