{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/sdk/auth.js","webpack:///./app/javascript/packs/sdk.js","webpack:///./app/javascript/sdk/iframe.js","webpack:///./app/javascript/application/iframe.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","UnidySDK","Auth","unidyUrl","iframe","wrapperDiv","clientId","scope","responseType","body","document","getElementsByTagName","listeners","auth","fail","logout","iFrameSource","target","callback_url","location","protocol","hostname","window","port","encodeURI","activateWrapperDiv","style","display","setTimeout","classList","add","disableWrapperDiv","remove","parseFloat","getComputedStyle","transitionDuration","buildIframe","createElement","setAttribute","addEventListener","appendChild","handleMessage","event","origin","action","data","listener","init","sessionStorage","idToken","show","getAttribute","close","getElementById","onLogout","logoutHandler","clear","onAuth","authHandler","setItem","Iframe","url","lastHeight","publishHeight","bodyHeight","offsetHeight","parent","postMessage","type","MESSAGE_TYPE","height","emitSize","setInterval","watch","iframeId","handleMessageEvent","new_height","toString","setHeight"],"mappings":"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","file":"js/sdk-72c6548a51c8eebf2c05.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 377);\n","export default function(unidyUrl, { clientId, scope = 'openid', responseType = 'id_token' }) {\n const body = document.getElementsByTagName(\"body\")[0];\n const wrapperDivId = 'unidyAuthFrameWrapper';\n const iFrameId = 'unidyAuthFrame';\n\n let iframe, wrapperDiv;\n\n const listeners = {\n auth: null,\n fail: null,\n logout: null\n };\n\n function iFrameSource(target) {\n switch (target) {\n case 'blank':\n return '';\n case \"profile\":\n return `${unidyUrl}/profile`;\n case \"newsletter\":\n return `${unidyUrl}/newsletter`;\n default:\n var callback_url = `${document.location.protocol}//${document.location.hostname}`\n\n if (window.location.port !== '') {\n callback_url = `${callback_url}:${document.location.port}`\n }\n\n return `${unidyUrl}/oauth/authorize` +\n `?client_id=${clientId}` +\n `&scope=${scope}` +\n `&response_type=${responseType}` +\n `&redirect_uri=${unidyUrl}/oauth/iframe?callback_url=${encodeURI(callback_url)}`;\n }\n }\n\n function initFrame() {\n if (sessionStorage.idToken) {\n buildIframe('blank');\n listeners.auth({ idToken: sessionStorage.idToken });\n } else {\n buildIframe('login');\n }\n }\n\n function buildWrapper() {\n wrapperDiv = document.createElement(\"div\");\n wrapperDiv.setAttribute(\"id\", wrapperDivId);\n\n wrapperDiv.addEventListener(\"click\", function() {\n disableWrapperDiv();\n });\n }\n\n function activateWrapperDiv() {\n wrapperDiv.style.display = 'block';\n\n setTimeout(function() {\n wrapperDiv.classList.add(\"active\");\n }, 1); // timeout required to make transition work\n }\n\n function disableWrapperDiv() {\n wrapperDiv.classList.remove(\"active\")\n\n setTimeout(function() {\n wrapperDiv.style.display = 'none';\n }, parseFloat(window.getComputedStyle(iframe).transitionDuration) * 1000);\n }\n\n function buildIframe(target) {\n buildWrapper();\n\n iframe = document.createElement(\"iframe\");\n iframe.setAttribute(\"id\", iFrameId);\n iframe.setAttribute(\"src\", iFrameSource(target));\n\n wrapperDiv.appendChild(iframe);\n body.appendChild(wrapperDiv);\n\n window.addEventListener(\"message\", handleMessage, false);\n }\n\n function handleMessage(event) {\n if (event.origin !== unidyUrl) {\n return\n }\n\n const action = event.data.action;\n const listener = listeners[action];\n if (!listener) {\n return;\n }\n listener(event.data);\n }\n\n return {\n init: initFrame,\n show: function({ target } = { target: \"login\" }) {\n if (typeof wrapperDiv !== 'undefined') {\n if (iFrameSource(target) !== iframe.getAttribute('src')) {\n iframe.setAttribute(\"src\", iFrameSource(target));\n\n iframe.addEventListener('load', function() {\n activateWrapperDiv();\n })\n } else {\n activateWrapperDiv();\n }\n return;\n }\n\n buildIframe(target);\n\n iframe.addEventListener('load', function() {\n activateWrapperDiv();\n })\n },\n close: function() {\n iframe = document.getElementById(iFrameId);\n wrapperDiv = document.getElementById(wrapperDivId);\n\n disableWrapperDiv();\n },\n onLogout: function(logoutHandler) {\n listeners.logout = ({ close }) => {\n sessionStorage.clear();\n logoutHandler();\n if (close) { disableWrapperDiv(); }\n }\n },\n onAuth: function(authHandler) {\n listeners.auth = ({ idToken }) => {\n sessionStorage.setItem('idToken', idToken);\n authHandler(idToken);\n disableWrapperDiv();\n };\n }\n };\n}","import Auth from \"../sdk/auth\";\nimport Iframe from \"../sdk/iframe\";\n\nconst UnidySDK = {\n Auth,\n Iframe,\n};\n\nwindow.UnidySDK = UnidySDK;\n","import { MESSAGE_TYPE } from \"../application/iframe\";\n\nexport default function (url) {\n var lastHeight = 0;\n function publishHeight() {\n var bodyHeight = getBodyHeight();\n if (bodyHeight == lastHeight) {\n return;\n }\n lastHeight = bodyHeight;\n parent.postMessage({ type: MESSAGE_TYPE, height: bodyHeight }, url);\n }\n\n function getBodyHeight() {\n // add pixel for shadow border to not display scrollbar\n return document.body.offsetHeight + 16;\n }\n\n return {\n emitSize: function () {\n window.setInterval(publishHeight, 300);\n },\n };\n}\n","export const MESSAGE_TYPE = \"__UNIDY_RESIZE_IFRAME\";\n\nexport default {\n watch: ({ iframeId }) => {\n const iframe = document.getElementById(iframeId);\n\n function setHeight(height) {\n if (iframe == null) return;\n var new_height = height.toString() + \"px\";\n iframe.style.height = new_height;\n }\n\n function handleMessageEvent(event) {\n if (event.data.type !== MESSAGE_TYPE) {\n return;\n }\n setHeight(event.data.height);\n }\n\n iframe.addEventListener(\"load\", function () {\n iframe.style.display = \"block\";\n window.addEventListener(\"message\", handleMessageEvent, false);\n });\n },\n};\n"],"sourceRoot":""}