{"version":3,"file":"js/javascript/authentication-29f543a52793669c5679.js","mappings":"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K,MACL,GAAK,UACL,GAAK,SACL,GAAK,UACL,GAAK,SACL,GAAK,QACL,GAAK,0BACL,GAAK,WACL,GAAK,QACL,GAAK,WACL,GAAK,SACL,GAAK,iBACL,GAAK,iBACL,GAAK,2BACL,GAAK,UACL,GAAK,WACL,GAAK,0BACL,GAAK,QACL,GAAK,SACL,GAAK,SACL,GAAK,QACL,GAAK,YACL,GAAK,YACL,GAAK,YACL,GAAK,MACL,GAAK,OACL,GAAK,aACL,GAAK,6DACL,GAAK,cACL,GAAK,YACL,GAAK,UACL,GAAK,QACL,GAAK,UACL,GAAK,WACL,GAAK,WACL,GAAK,UACL,GAAK,SACL,GAAK,WACL,GAAK,SACL,GAAK,cACL,GAAK,OACL,GAAK,QACL,GAAK,SACL,GAAK,qBACL,GAAK,UACL,GAAK,SACL,GAAK,MACL,GAAK,QACL,GAAK,UACL,GAAK,+BACL,GAAK,mCACL,GAAK,UACL,GAAK,aACL,GAAK,eACL,GAAK,aACL,GAAK,WACL,GAAK,QACL,GAAK,YACL,GAAK,UACL,GAAK,OACL,GAAK,QACL,GAAK,UACL,GAAK,cACL,GAAK,gCACL,GAAK,YACL,GAAK,QACL,GAAK,iBACL,GAAK,mBACL,GAAK,SACL,GAAK,SACL,GAAK,gBACL,GAAK,YACL,GAAK,sBACL,GAAK,oBACL,GAAK,oBACL,GAAK,sBACL,GAAK,SACL,GAAK,QACL,GAAK,QACL,GAAK,oBACL,GAAK,OACL,GAAK,mBACL,GAAK,iBACL,GAAK,UACL,GAAK,SACL,GAAK,aACL,GAAK,UACL,GAAK,UACL,GAAK,QACL,GAAK,UACL,GAAK,SACL,GAAK,QACL,GAAK,WACL,GAAK,YACL,GAAK,UACL,GAAK,QACL,GAAK,SACL,GAAK,qBACL,GAAK,SACL,GAAK,YACL,GAAK,SACL,GAAK,kBACL,GAAK,gBACL,GAAK,qBACL,GAAK,YACL,GAAK,UACL,GAAK,QACL,GAAK,UACL,GAAK,UACL,GAAK,WACL,GAAK,QACL,GAAK,QACL,GAAK,QACL,GAAK,SACL,GAAK,OACL,GAAK,UACL,GAAK,WACL,GAAK,wBACL,GAAK,SACL,GAAK,SACL,GAAK,UACL,GAAK,UACL,GAAK,MACL,GAAK,iBACL,GAAK,YACL,GAAK,OACL,GAAK,QACL,GAAK,QACL,GAAK,aACL,GAAK,UACL,GAAK,UACL,GAAK,QACL,GAAK,kBACL,GAAK,QACL,GAAK,QACL,GAAK,UACL,GAAK,SACL,GAAK,iBACL,GAAK,QAOP,IAJ4B,SAACC,GAC3B,QAAOC,OAAOC,KAAKH,GAAWI,SAASH,K,mBChMzC,IAFmB,kBAAMI,KAAKC,SAASC,SAAS,IAAIC,UAAU,K,mBC0B5D,IApBkB,SAACC,GACjB,IAQMC,EAPYD,EAAKE,OAAOC,MAAM,QAAQC,OAIrBC,mBAQvB,MAAO,CACLC,QAHyBV,KAAKW,KAAKN,EAA0B,IAI7DtH,QAASsH,K,4ECnBTO,EAAY,SAACC,GACjBpC,IAAAA,KAAW,CACToC,IAAKA,EACLtC,KAAM,UAIJtG,EAAgB,WACpBqC,OAAOsG,UAAYA,I,mBCLrB,SAASE,EAAkBzC,EAAQ0C,GACjC,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAMP,OAAQQ,IAAK,CACrC,IAAIC,EAAaF,EAAMC,GACvBC,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDvB,OAAOwB,eAAehD,EAAQ4C,EAAWK,IAAKL,IAUlD,SAASM,EAAmBC,GAC1B,OAGF,SAA4BA,GAC1B,GAAIC,MAAMC,QAAQF,GAAM,OAAOG,EAAkBH,GAJ1CI,CAAmBJ,IAO5B,SAA0BK,GACxB,GAAsB,qBAAXC,QAA0BA,OAAOC,YAAYlC,OAAOgC,GAAO,OAAOJ,MAAMO,KAAKH,GARtDI,CAAiBT,IAWrD,SAAqCU,EAAGC,GACtC,IAAKD,EAAG,OACR,GAAiB,kBAANA,EAAgB,OAAOP,EAAkBO,EAAGC,GACvD,IAAIC,EAAIvC,OAAOwC,UAAUnC,SAASoC,KAAKJ,GAAGK,MAAM,GAAI,GAC1C,WAANH,GAAkBF,EAAEM,cAAaJ,EAAIF,EAAEM,YAAYnD,MACvD,GAAU,QAAN+C,GAAqB,QAANA,EAAa,OAAOX,MAAMO,KAAKI,GAClD,GAAU,cAANA,GAAqB,2CAA2CK,KAAKL,GAAI,OAAOT,EAAkBO,EAAGC,GAjB9CO,CAA4BlB,IA4BzF,WACE,MAAM,IAAImB,UAAU,wIA7B2EC,GAoBjG,SAASjB,EAAkBH,EAAKqB,IACnB,MAAPA,GAAeA,EAAMrB,EAAIhB,UAAQqC,EAAMrB,EAAIhB,QAE/C,IAAK,IAAIQ,EAAI,EAAG8B,EAAO,IAAIrB,MAAMoB,GAAM7B,EAAI6B,EAAK7B,IAAK8B,EAAK9B,GAAKQ,EAAIR,GAEnE,OAAO8B,EAOT,IAEMC,EAEAC,EAwPAC,EA0BAC,EA+BAC,EArTFxF,GAEEoF,EAAqB,CAAC,UAAW,aAAc,gEAAiE,4CAA6C,8CAA+C,4CAA6C,SAAU,SAAU,QAAS,oBAAqB,mCAE3SC,EAAqB,WACvB,SAASA,EAAMI,GACb,IAAIC,EAAcD,EAAKC,YACnBC,EAAgBF,EAAKG,SACrBA,OAA6B,IAAlBD,EAA2B,GAAKA,EAC3CE,EAAcJ,EAAKtF,OACnBA,OAAyB,IAAhB0F,EAAyB,aAAiBA,EACnDC,EAAeL,EAAKxF,QACpBA,OAA2B,IAAjB6F,EAA0B,aAAiBA,EACrDC,EAAmBN,EAAKO,YACxBA,OAAmC,IAArBD,EAA8B,0BAA4BA,EACxEE,EAAoBR,EAAKS,aACzBA,OAAqC,IAAtBD,EAA+B,wBAA0BA,EACxEE,EAAiBV,EAAKW,UACtBA,OAA+B,IAAnBD,EAA4B,UAAYA,EACpDE,EAAqBZ,EAAKpF,cAC1BA,OAAuC,IAAvBgG,GAAwCA,EACxDC,EAAoBb,EAAKc,aACzBA,OAAqC,IAAtBD,GAAuCA,EACtDE,EAAwBf,EAAKlF,oBAC7BA,OAAgD,IAA1BiG,GAA2CA,EACjEC,EAAwBhB,EAAKnF,mBAC7BA,OAA+C,IAA1BmG,GAA2CA,EAChEC,EAAiBjB,EAAKkB,UACtBA,OAA+B,IAAnBD,GAAoCA,GAnF1D,SAAyBE,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAI7B,UAAU,qCAmFlB8B,CAAgBC,KAAM1B,GAGtB0B,KAAK7G,MAAQtF,SAAS6F,eAAeiF,GAErCqB,KAAKC,OAAS,CACZL,UAAWA,EACXtG,cAAeA,EACf2F,YAAaA,EACbE,aAAcA,EACdE,UAAWA,EACXjG,OAAQA,EACRF,QAASA,EACTM,oBAAqBA,EACrBD,mBAAoBA,EACpBiG,aAAcA,GAGZX,EAAS/C,OAAS,GAAGkE,KAAKE,iBAAiBC,MAAMH,KAAMnD,EAAmBgC,IAE9EmB,KAAKI,QAAUJ,KAAKI,QAAQC,KAAKL,MACjCA,KAAKM,UAAYN,KAAKM,UAAUD,KAAKL,MA1F3C,IAAsBF,EAAaS,EAAYC,EAyR3C,OAzRkBV,EAmGLxB,EAnGkBiC,EAmGX,CAAC,CACnB3D,IAAK,mBACLxF,MAAO,WAGL,IAFA,IAAIqJ,EAAQT,KAEHU,EAAOC,UAAU7E,OAAQ+C,EAAW,IAAI9B,MAAM2D,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IACnF/B,EAAS+B,GAAQD,UAAUC,GAG7B/B,EAASgC,OAAOC,SAAS3J,SAAQ,SAAUrB,GACzCA,EAAQZ,iBAAiB,SAAS,SAAUO,GAC1C,OAAOgL,EAAMM,UAAUtL,WAI5B,CACDmH,IAAK,YACLxF,MAAO,WACL,IAAI4J,EAAShB,KAETvK,EAAQkL,UAAU7E,OAAS,QAAsBpI,IAAjBiN,UAAU,GAAmBA,UAAU,GAAK,KAOhF,GANAX,KAAKiB,cAAgBpN,SAASoN,cAC9BjB,KAAK7G,MAAMzE,aAAa,cAAe,SACvCsL,KAAK7G,MAAMhE,UAAUG,IAAI0K,KAAKC,OAAOZ,WACrCW,KAAKkB,gBAAgB,WACrBlB,KAAKmB,oBAEDnB,KAAKC,OAAO1G,mBAAoB,CAClC,IAAI6H,EAAU,SAASA,IACrBJ,EAAO7H,MAAMkI,oBAAoB,eAAgBD,GAAS,GAE1DJ,EAAOM,uBAGTtB,KAAK7G,MAAMjE,iBAAiB,eAAgBkM,GAAS,QAErDpB,KAAKsB,sBAGPtB,KAAKC,OAAO7G,OAAO4G,KAAK7G,MAAO6G,KAAKiB,cAAexL,KAEpD,CACDmH,IAAK,aACLxF,MAAO,WACL,IAAI3B,EAAQkL,UAAU7E,OAAS,QAAsBpI,IAAjBiN,UAAU,GAAmBA,UAAU,GAAK,KAC5ExH,EAAQ6G,KAAK7G,MAWjB,GAVA6G,KAAK7G,MAAMzE,aAAa,cAAe,QACvCsL,KAAKuB,uBACLvB,KAAKkB,gBAAgB,UAEjBlB,KAAKiB,eAAiBjB,KAAKiB,cAAcO,OAC3CxB,KAAKiB,cAAcO,QAGrBxB,KAAKC,OAAO/G,QAAQ8G,KAAK7G,MAAO6G,KAAKiB,cAAexL,GAEhDuK,KAAKC,OAAOzG,oBAAqB,CACnC,IAAI6F,EAAYW,KAAKC,OAAOZ,UAE5BW,KAAK7G,MAAMjE,iBAAiB,gBAAgB,SAASkM,IACnDjI,EAAMhE,UAAUE,OAAOgK,GACvBlG,EAAMkI,oBAAoB,eAAgBD,GAAS,MAClD,QAEHjI,EAAMhE,UAAUE,OAAO2K,KAAKC,OAAOZ,aAGtC,CACDzC,IAAK,iBACLxF,MAAO,SAAwBuH,GAC7BqB,KAAK7G,MAAQtF,SAAS6F,eAAeiF,GACjCqB,KAAK7G,OAAO6G,KAAKyB,eAEtB,CACD7E,IAAK,kBACLxF,MAAO,SAAyBsK,GAC9B,GAAK1B,KAAKC,OAAO3G,cAAjB,CACA,IAAIqI,EAAO9N,SAASC,cAAc,QAElC,OAAQ4N,GACN,IAAK,SACHvG,OAAOyG,OAAOD,EAAK9M,MAAO,CACxBgN,SAAU,KAEZ,MAEF,IAAK,UACH1G,OAAOyG,OAAOD,EAAK9M,MAAO,CACxBgN,SAAU,eAKjB,CACDjF,IAAK,oBACLxF,MAAO,WACL4I,KAAK7G,MAAMjE,iBAAiB,aAAc8K,KAAKI,SAC/CJ,KAAK7G,MAAMjE,iBAAiB,QAAS8K,KAAKI,SAC1CvM,SAASqB,iBAAiB,UAAW8K,KAAKM,aAE3C,CACD1D,IAAK,uBACLxF,MAAO,WACL4I,KAAK7G,MAAMkI,oBAAoB,aAAcrB,KAAKI,SAClDJ,KAAK7G,MAAMkI,oBAAoB,QAASrB,KAAKI,SAC7CvM,SAASwN,oBAAoB,UAAWrB,KAAKM,aAE9C,CACD1D,IAAK,UACLxF,MAAO,SAAiB3B,GAClBA,EAAMkE,OAAOnC,aAAawI,KAAKC,OAAOd,eACxCa,KAAKyB,WAAWhM,KAGnB,CACDmH,IAAK,YACLxF,MAAO,SAAmB3B,GACF,KAAlBA,EAAMqM,SAAgB9B,KAAKyB,WAAWhM,GAEpB,IAAlBA,EAAMqM,SAAe9B,KAAK+B,YAAYtM,KAE3C,CACDmH,IAAK,oBACLxF,MAAO,WACL,IAAI4K,EAAQhC,KAAK7G,MAAMoB,iBAAiB8D,GACxC,OAAOtB,MAAMoD,WAAM,EAAQtD,EAAmBmF,MAO/C,CACDpF,IAAK,sBACLxF,MAAO,WACL,IAAI6K,EAASjC,KAEb,IAAIA,KAAKC,OAAOT,aAAhB,CACA,IAAI0C,EAAiBlC,KAAKmC,oBAE1B,GAA8B,IAA1BD,EAAepG,OAAnB,CAGA,IAAIsG,EAA+BF,EAAerB,QAAO,SAAUwB,GACjE,OAAQA,EAAK7K,aAAayK,EAAOhC,OAAOd,iBAEtCiD,EAA6BtG,OAAS,GAAGsG,EAA6B,GAAGZ,QACjC,IAAxCY,EAA6BtG,QAAcoG,EAAe,GAAGV,YAElE,CACD5E,IAAK,cACLxF,MAAO,SAAqB3B,GAC1B,IAAIyM,EAAiBlC,KAAKmC,oBAE1B,GAA8B,IAA1BD,EAAepG,OAUnB,GAJAoG,EAAiBA,EAAerB,QAAO,SAAUwB,GAC/C,OAA6B,OAAtBA,EAAKC,gBAGTtC,KAAK7G,MAAM/D,SAASvB,SAASoN,eAE3B,CACL,IAAIsB,EAAmBL,EAAeM,QAAQ3O,SAASoN,eAEnDxL,EAAMgN,UAAiC,IAArBF,IACpBL,EAAeA,EAAepG,OAAS,GAAG0F,QAC1C/L,EAAMmE,mBAGHnE,EAAMgN,UAAYP,EAAepG,OAAS,GAAKyG,IAAqBL,EAAepG,OAAS,IAC/FoG,EAAe,GAAGV,QAClB/L,EAAMmE,uBAXRsI,EAAe,GAAGV,WAvQtBjB,GAAYnE,EAAkB0D,EAAYnC,UAAW4C,GACrDC,GAAapE,EAAkB0D,EAAaU,GAuRvClC,EA9OgB,GAwPrBC,EAAc,KA0BdC,EAAwB,SAA+BvK,GACzD,IAAKJ,SAAS6F,eAAezF,GAG3B,OAFAyO,QAAQC,KAAK,mDAAmDC,OAAO3O,EAAI,KAAM,8DAA+D,iEAChJyO,QAAQC,KAAK,aAAc,8DAA+D,0BAA6BC,OAAO3O,EAAI,cAC3H,GA2BPwK,EAAe,SAAsBI,EAAUgE,GAEjD,GAlB4B,SAAiChE,GACzDA,EAAS/C,QAAU,IACrB4G,QAAQC,KAAK,uEAAwE,8DAA+D,mBACpJD,QAAQC,KAAK,aAAc,8DAA+D,wDAc5FG,CAAwBjE,IACnBgE,EAAY,OAAO,EAExB,IAAK,IAAI5O,KAAM4O,EACbrE,EAAsBvK,GAGxB,OAAO,GA4DF,CACL8O,KApDS,SAAc9C,GAEvB,IAAI+C,EAAU7H,OAAOyG,OAAO,GAAI,CAC9B3C,YAAa,2BACZgB,GAECpB,EAAWhC,EAAmBhJ,SAAS0G,iBAAiB,IAAIqI,OAAOI,EAAQ/D,YAAa,OAGxF4D,EA1EmB,SAA4BhE,EAAUoE,GAC7D,IAAIJ,EAAa,GAMjB,OALAhE,EAAS1H,SAAQ,SAAUrB,GACzB,IAAI6I,EAAc7I,EAAQ2B,WAAWwL,GAAa7L,WAClB1D,IAA5BmP,EAAWlE,KAA4BkE,EAAWlE,GAAe,IACrEkE,EAAWlE,GAAauE,KAAKpN,MAExB+M,EAmEUM,CAAmBtE,EAAUmE,EAAQ/D,aAEtD,IAA0B,IAAtB+D,EAAQpD,YAA6D,IAAvCnB,EAAaI,EAAUgE,GAEzD,IAAK,IAAIjG,KAAOiG,EAAY,CAC1B,IAAIzL,EAAQyL,EAAWjG,GACvBoG,EAAQrE,YAAc/B,EACtBoG,EAAQnE,SAAWhC,EAAmBzF,GACtCmH,EAAc,IAAID,EAAM0E,KAoC1BI,KAzBS,SAAczE,EAAasB,GACpC,IAAI+C,EAAU/C,GAAU,GACxB+C,EAAQrE,YAAcA,GAEI,IAAtBqE,EAAQpD,YAA6D,IAAvCpB,EAAsBG,KAEpDJ,GAAaA,EAAYgD,wBAE7BhD,EAAc,IAAID,EAAM0E,IAEZjC,cAgBZsC,MAPU,SAAe1E,GACzBA,EAAcJ,EAAY+E,eAAe3E,GAAeJ,EAAYkD,gBASxE7L,OAAOqD,WAAaA,EAEpB,Q","sources":["webpack://client_new/./app/packs/javascript/authentication.js","webpack://client_new/./app/packs/javascript/utils/confirm_callback.js","webpack://client_new/./app/packs/javascript/utils/confirm_modal.js","webpack://client_new/./app/packs/javascript/utils/form_field_encrypt.js","webpack://client_new/./app/packs/javascript/utils/language_iso_codes.js","webpack://client_new/./app/packs/javascript/utils/randomizer.js","webpack://client_new/./app/packs/javascript/utils/reading_time.js","webpack://client_new/./app/packs/javascript/utils/resend_sms.js","webpack://client_new/./node_modules/micromodal/dist/micromodal.es.js"],"sourcesContent":["// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n\nrequire(\"@rails/ujs\").start();\nrequire(\"turbolinks\").start();\n// require(\"@rails/activestorage\").start();\n// require(\"./channels\");\n\n// Plugins\n\n// Utils\nimport './utils/confirm_modal';\nimport './utils/confirm_callback';\nimport './utils/form_field_encrypt';\nimport { initResendSms } from './utils/resend_sms';\n\ninitResendSms();","/*\n Callback function\n Shows a info-box with a message\n\n params:\n message: MANDATORY;\n duration: time until dismiss, in miliseconds. default: readingTime(). 0 will be infinite;\n targetContainer: ;\n classToAdd: class added to box. default: '';\n dismiss: bolean to see if it's possible to dismiss or not. default: true;\n\n Example:\n confirmCallback(' Agreement saved!', {\n duration: 0,\n targetContainer: document.querySelector('#layout-notifications'),\n classToAdd: 'bg-xs-green-100',\n dismiss: true\n })\n*/\n\nimport randomizer from './randomizer';\nimport readingTime from './reading_time';\n\nconst confirmCallback = (\n message = undefined, {\n duration = undefined,\n targetContainer = document.querySelector('[data-callback-targetContainer]'),\n classToAdd = 'bg-grey-100',\n dismiss = true,\n },\n) => {\n // message is MANDATORY\n if (message !== undefined) {\n // Generate a random ID\n const id = `C${randomizer()}`;\n\n // let timing = duration || readingTime(message);\n // Define timing. (above doesn't work when duration is 0 (zero))\n let timing = duration !== undefined ? duration : readingTime(message).seconds;\n\n // Create element as a DOM element, this way we can use some methods\n const $container = targetContainer;\n const newCallback = document.createElement('div');\n newCallback.className = `notification ${classToAdd}`;\n newCallback.setAttribute('role', 'alert');\n newCallback.dataset.callback = id;\n newCallback.style = 'opacity: 0';\n\n let messageTemplate = `
\n

${message}

\n
`;\n messageTemplate += dismiss ? `
\n \n
` : '';\n // Prevent notifications from appending on to one another\n $container.innerHTML = '';\n // Append element to the page\n targetContainer.insertAdjacentElement('beforeend', newCallback);\n newCallback.insertAdjacentHTML('beforeend', messageTemplate);\n\n // Animation handlers\n newCallback.addEventListener('animationend', () => {\n if (newCallback.classList.contains('fade-in')) {\n newCallback.style = 'opacity: 1';\n newCallback.classList.remove('fade-in');\n }\n\n if (newCallback.classList.contains('fade-out')) {\n newCallback.style = 'opacity: 0';\n newCallback.remove();\n }\n });\n\n newCallback.classList.add('fade-in');\n\n // If timing == 0 then we only remove if the user clicks to remove\n if (timing !== 0) {\n if (timing < 7) timing = 7;\n let isHover = false;\n\n newCallback.addEventListener('mouseenter', () => { isHover = true; });\n newCallback.addEventListener('mouseleave', () => { isHover = false; });\n\n setTimeout(() => {\n if (isHover) {\n newCallback.addEventListener('mouseleave', () => {\n setTimeout(() => {\n newCallback.classList.add('fade-out');\n }, 500);\n });\n } else {\n newCallback.classList.add('fade-out');\n }\n }, timing * 1000);\n }\n\n // if it has the dismiss action, we can click to remove\n if (dismiss) {\n newCallback.querySelector('[data-callback-dismiss]').addEventListener('click', (event) => {\n event.currentTarget.closest('[data-callback]').classList.add('fade-out');\n });\n }\n }\n};\n\nexport default confirmCallback;\nwindow.confirmCallback = confirmCallback;\n","import Rails from '@rails/ujs';\nimport MicroModal from 'micromodal';\nimport checkCountryISOCode from './language_iso_codes';\nimport randomizer from './randomizer';\n\n/*\n # USAGE #\n\n ## Passing an element ##\n confirmModal()\n\n ## Building with parameters ##\n confirmModal('en', {\n action: '/settings/adviser/profile', // Optional\n method: 'GET', // Optional: GET (default) | POST | UPDATE | DELETE (Won’t be used if the action above is null)\n isTrue: () => { ...function here }\n })\n\n # EXPLANATION #\n data-confirm-modal:\n - By default the function will initialize itself if this attribute exists\n - We also use this attribute to pass the locale, if nothing is passed it will use 'en' as default\n\n data-confirm-modal-type:\n - Will be the 'path' of the translation\n\n data-confirm-modal-action:\n - This holds the action|url of what we want it to do if clicked\n - It's also possible to also use the current HREF attribute instead\n\n data-confirm-modal-method:\n - Method type of the action (optional)\n - \"GET\" will be the default, other options: POST | UPDATE | DELETE\n\n\n # EXAMPLES #\n\n ## Link ##\n Unlock\n\n ## Toggle ##\n
\n \n \n
\n*/\n\nconst confirmModal = (trigger = 'en', {\n action: optionsAction = null,\n method: optionsMethod = null,\n isTrue: optionsCallback = null\n} = {}) => {\n const csrfToken = document.head.querySelector('meta[name=\"csrf-token\"]').content;\n const rndID = randomizer() // We use this to generate a random ID for the modal\n\n let locale = trigger.dataset.confirmModal || 'en';\n let translationPath = trigger.dataset.confirmModalType || 'confirmations.default';\n let modalTitle = `${translationPath}.title`;\n let modalContent = `${translationPath}.content`;\n let modalCancel = `${translationPath}.cancel`;\n let modalOk = `${translationPath}.ok`;\n let modalAction;\n let modalMethod;\n\n let urlParams = '';\n const _indexArr = [modalTitle, modalContent, modalCancel, modalOk];\n _indexArr.forEach((value) => {\n urlParams += `indexes[]=${value}&`;\n });\n\n if (typeof trigger === 'object') {\n // In case we are using a toggle (checkbox/radio button) we need to change the elem to\n // target the input instead, because the input will have the data attributes\n const elem = trigger.tagName == 'LABEL' ? document.querySelector(`#${trigger.getAttribute('for')}`) : trigger;\n\n modalAction = elem.hasAttribute('href') && elem.attributes['href'].value !== '#' ? elem.attributes['href'].value : elem.dataset.confirmModalAction;\n modalMethod = elem.dataset.confirmModalMethod || 'GET';\n }\n\n // When we want to trigger the confirmatiom modals without the dependency of data attributes\n if (typeof trigger === 'string' && checkCountryISOCode(trigger)) {\n locale = trigger;\n\n modalAction = optionsAction || '#';\n modalMethod = optionsAction !== '#' ? optionsMethod : null;\n }\n\n // Get the translations using Advicefront's translation service\n fetch(`/translations?${urlParams}locale=${locale}`, {\n headers: {\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-CSRF-TOKEN': csrfToken,\n 'accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n credentials: 'same-origin'\n })\n .then(response => response.json())\n .then((data) => {\n const translated = data.translated_strings;\n const translatedTitle = translated[modalTitle];\n const translatedContent = translated[modalContent];\n const translatedButtonCancel = translated[modalCancel];\n const translatedButtonOk = translated[modalOk];\n\n generateModal(rndID, translatedTitle, translatedContent, translatedButtonCancel, translatedButtonOk, modalAction, modalMethod, trigger, optionsCallback);\n\n })\n}\n\n\nconst generateModal = (id, modalTitle, modalContent, modalButtonCancel, modalButtonOk, modalAction = '#', modalMethod = null, triggeredElem = null, callback) => {\n const dataMethod = modalMethod !== null ? 'data-method=\"' + modalMethod.toUpperCase() + '\"' : '';\n const template =\n `
\n
\n
\n
\n
\n

${modalTitle}

\n
\n
\n \n
\n
\n
\n

${modalContent}

\n
\n \n
\n
\n
`;\n\n // Insert modal template into the DOM\n document.querySelector('body').insertAdjacentHTML('beforeend', template);\n\n // Attach needed events\n // confirmationModalEvents(`M${id}`, triggeredElem, callback);\n\n // Trigger modal\n MicroModal.show(`M${id}`, {\n onClose: modal => modal.remove(),\n onShow: modal => confirmationModalEvents(modal.id, triggeredElem, callback),\n disableScroll: true,\n awaitOpenAnimation: true,\n awaitCloseAnimation: true\n });\n}\n\n\nconst confirmationModalEvents = (modalID, triggeredElem = null, callback = null) => {\n const targetConfirmModal = document.getElementById(modalID);\n\n targetConfirmModal.addEventListener('click', (event) => {\n\n if (event.target.closest('[data-confirm-modal-ok]')) {\n event.preventDefault();\n\n if (typeof triggeredElem.tagName == 'INPUT') {\n switch (triggeredElem.attributes.type.value) {\n case 'checkbox':\n triggeredElem.checked ? triggeredElem.checked = false : triggeredElem.checked = true;\n if (triggeredElem.closest('form') != null) {\n Rails.fire(triggeredElem.closest('form'), 'submit');\n }\n break;\n case 'submit':\n Rails.fire(triggeredElem.closest('form'), 'submit');\n break;\n }\n }\n\n // Close and remove confirmation modal\n MicroModal.close(modalID);\n\n // Run the JS code passed on the callback\n if (typeof callback == 'function') {\n return callback();\n }\n }\n\n });\n}\n\n\n// Inits the generateModal\ndocument.addEventListener('click', (event) => {\n if (event.target.closest('[data-confirm-modal]')) {\n event.preventDefault();\n confirmModal(event.target.closest('[data-confirm-modal]'));\n }\n})\n\nexport default confirmModal;\nwindow.confirmModal = confirmModal; // In case we need to access this funcion outside Webpack\n","/* eslint-disable no-param-reassign */\nimport JSEncrypt from 'jsencrypt';\n\nconst resetForm = (form) => {\n const fieldsToEncrypt = form.querySelectorAll('[data-encrypt]');\n fieldsToEncrypt.forEach((field) => {\n field.name = field.dataset.previousName;\n field.nextElementSibling.remove();\n });\n};\n\nconst encryptFields = (form) => {\n const encrypt = new JSEncrypt();\n const encryptKeyElement = document.getElementById('js-public_key');\n if (encryptKeyElement === null) return;\n\n const encryptKey = encryptKeyElement.dataset.value;\n encrypt.setKey(encryptKey);\n\n const fieldsToEncrypt = form.querySelectorAll('[data-encrypt]');\n\n fieldsToEncrypt.forEach((field) => {\n const encryptedValue = encrypt.encrypt(field.value);\n if (encryptedValue) {\n // create new hidden field with same name and encrypted value\n const newField = ``;\n // remove name from field so its not submitted\n field.dataset.previousName = field.name;\n field.name = '';\n // insert new field on DOM\n field.insertAdjacentHTML('afterend', newField);\n }\n });\n};\n\nconst encryptForm = (event) => {\n encryptFields(event.currentTarget);\n};\n\nconst encryptFormOnSubmit = (form) => {\n form.addEventListener('submit', encryptForm);\n};\n\nconst initEncryption = () => {\n const forms = document.querySelectorAll('form[data-form-encrypt]');\n forms.forEach(encryptFormOnSubmit);\n};\n\nwindow.encryptFormOnSubmit = encryptFormOnSubmit;\nwindow.resetForm = resetForm;\n\ndocument.addEventListener('turbolinks:load', initEncryption);\n\nexport { encryptFields, resetForm };\n","/*\n This was created from the list of language ISO 639-1 codes\n\n More info: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n*/\n\nconst languages = {\n 'ab':'Abkhazian',\n 'aa':'Afar',\n 'af':'Afrikaans',\n 'ak':'Akan',\n 'sq':'Albanian',\n 'am':'Amharic',\n 'ar':'Arabic',\n 'an':'Aragonese',\n 'hy':'Armenian',\n 'as':'Assamese',\n 'av':'Avaric',\n 'ae':'Avestan',\n 'ay':'Aymara',\n 'az':'Azerbaijani',\n 'bm':'Bambara',\n 'ba':'Bashkir',\n 'eu':'Basque',\n 'be':'Belarusian',\n 'bn':'Bengali',\n 'bh':'Bihari languages',\n 'bi':'Bislama',\n 'bs':'Bosnian',\n 'br':'Breton',\n 'bg':'Bulgarian',\n 'my':'Burmese',\n 'ca':'Catalan, Valencian',\n 'km':'Central Khmer',\n 'ch':'Chamorro',\n 'ce':'Chechen',\n 'ny':'Chichewa, Chewa, Nyanja',\n 'zh':'Chinese',\n 'cu':'Church Slavonic, Old Bulgarian, Old Church Slavonic',\n 'cv':'Chuvash',\n 'kw':'Cornish',\n 'co':'Corsican',\n 'cr':'Cree',\n 'hr':'Croatian',\n 'cs':'Czech',\n 'da':'Danish',\n 'dv':'Divehi, Dhivehi, Maldivian',\n 'nl':'Dutch, Flemish',\n 'dz':'Dzongkha',\n 'en':'English',\n 'eo':'Esperanto',\n 'et':'Estonian',\n 'ee':'Ewe',\n 'fo':'Faroese',\n 'fj':'Fijian',\n 'fi':'Finnish',\n 'fr':'French',\n 'ff':'Fulah',\n 'gd':'Gaelic, Scottish Gaelic',\n 'gl':'Galician',\n 'lg':'Ganda',\n 'ka':'Georgian',\n 'de':'German',\n 'ki':'Gikuyu, Kikuyu',\n 'el':'Greek (Modern)',\n 'kl':'Greenlandic, Kalaallisut',\n 'gn':'Guarani',\n 'gu':'Gujarati',\n 'ht':'Haitian, Haitian Creole',\n 'ha':'Hausa',\n 'he':'Hebrew',\n 'hz':'Herero',\n 'hi':'Hindi',\n 'ho':'Hiri Motu',\n 'hu':'Hungarian',\n 'is':'Icelandic',\n 'io':'Ido',\n 'ig':'Igbo',\n 'id':'Indonesian',\n 'ia':'Interlingua (International Auxiliary Language Association)',\n 'ie':'Interlingue',\n 'iu':'Inuktitut',\n 'ik':'Inupiaq',\n 'ga':'Irish',\n 'it':'Italian',\n 'ja':'Japanese',\n 'jv':'Javanese',\n 'kn':'Kannada',\n 'kr':'Kanuri',\n 'ks':'Kashmiri',\n 'kk':'Kazakh',\n 'rw':'Kinyarwanda',\n 'kv':'Komi',\n 'kg':'Kongo',\n 'ko':'Korean',\n 'kj':'Kwanyama, Kuanyama',\n 'ku':'Kurdish',\n 'ky':'Kyrgyz',\n 'lo':'Lao',\n 'la':'Latin',\n 'lv':'Latvian',\n 'lb':'Letzeburgesch, Luxembourgish',\n 'li':'Limburgish, Limburgan, Limburger',\n 'ln':'Lingala',\n 'lt':'Lithuanian',\n 'lu':'Luba-Katanga',\n 'mk':'Macedonian',\n 'mg':'Malagasy',\n 'ms':'Malay',\n 'ml':'Malayalam',\n 'mt':'Maltese',\n 'gv':'Manx',\n 'mi':'Maori',\n 'mr':'Marathi',\n 'mh':'Marshallese',\n 'ro':'Moldovan, Moldavian, Romanian',\n 'mn':'Mongolian',\n 'na':'Nauru',\n 'nv':'Navajo, Navaho',\n 'nd':'Northern Ndebele',\n 'ng':'Ndonga',\n 'ne':'Nepali',\n 'se':'Northern Sami',\n 'no':'Norwegian',\n 'nb':'Norwegian Bokmål',\n 'nn':'Norwegian Nynorsk',\n 'ii':'Nuosu, Sichuan Yi',\n 'oc':'Occitan (post 1500)',\n 'oj':'Ojibwa',\n 'or':'Oriya',\n 'om':'Oromo',\n 'os':'Ossetian, Ossetic',\n 'pi':'Pali',\n 'pa':'Panjabi, Punjabi',\n 'ps':'Pashto, Pushto',\n 'fa':'Persian',\n 'pl':'Polish',\n 'pt':'Portuguese',\n 'qu':'Quechua',\n 'rm':'Romansh',\n 'rn':'Rundi',\n 'ru':'Russian',\n 'sm':'Samoan',\n 'sg':'Sango',\n 'sa':'Sanskrit',\n 'sc':'Sardinian',\n 'sr':'Serbian',\n 'sn':'Shona',\n 'sd':'Sindhi',\n 'si':'Sinhala, Sinhalese',\n 'sk':'Slovak',\n 'sl':'Slovenian',\n 'so':'Somali',\n 'st':'Sotho, Southern',\n 'nr':'South Ndebele',\n 'es':'Spanish, Castilian',\n 'su':'Sundanese',\n 'sw':'Swahili',\n 'ss':'Swati',\n 'sv':'Swedish',\n 'tl':'Tagalog',\n 'ty':'Tahitian',\n 'tg':'Tajik',\n 'ta':'Tamil',\n 'tt':'Tatar',\n 'te':'Telugu',\n 'th':'Thai',\n 'bo':'Tibetan',\n 'ti':'Tigrinya',\n 'to':'Tonga (Tonga Islands)',\n 'ts':'Tsonga',\n 'tn':'Tswana',\n 'tr':'Turkish',\n 'tk':'Turkmen',\n 'tw':'Twi',\n 'ug':'Uighur, Uyghur',\n 'uk':'Ukrainian',\n 'ur':'Urdu',\n 'uz':'Uzbek',\n 've':'Venda',\n 'vi':'Vietnamese',\n 'vo':'Volap_k',\n 'wa':'Walloon',\n 'cy':'Welsh',\n 'fy':'Western Frisian',\n 'wo':'Wolof',\n 'xh':'Xhosa',\n 'yi':'Yiddish',\n 'yo':'Yoruba',\n 'za':'Zhuang, Chuang',\n 'zu':'Zulu'\n};\n\nconst checkCountryISOCode = (code) => {\n return Object.keys(languages).includes(code) ? true : false;\n}\n\nexport default checkCountryISOCode;\n","const randomizer = () => Math.random().toString(36).substring(7);\n\nexport default randomizer;","/*\n Function to get reading time based on word count\n\n readingTime(\"text string\")\n*/\n\nconst readingTime = (text) => {\n const wpm = 235; // Words Per Minute\n const wordCount = text.trim().split(/\\s+/g).length; // Words in callback\n // const readingTimeThreshold = 7000;\n \n // define words per second based on words per minute (wpm)\n const wordsPerSecond = wpm / 60;\n \n // define total reading time in seconds\n const totalReadingTimeSeconds = wordCount / wordsPerSecond;\n \n // define reading time\n const readingTimeMinutes = Math.ceil(totalReadingTimeSeconds / 60);\n \n return {\n minutes: readingTimeMinutes,\n seconds: totalReadingTimeSeconds\n };\n };\n \n export default readingTime;\n ","/* eslint-disable object-shorthand */\nimport Rails from '@rails/ujs';\n\nconst resendSms = (url) => {\n Rails.ajax({\n url: url,\n type: 'POST',\n });\n};\n\nconst initResendSms = () => {\n window.resendSms = resendSms;\n};\n\nexport { initResendSms };\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar MicroModal = function () {\n\n var FOCUSABLE_ELEMENTS = ['a[href]', 'area[href]', 'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])', 'select:not([disabled]):not([aria-hidden])', 'textarea:not([disabled]):not([aria-hidden])', 'button:not([disabled]):not([aria-hidden])', 'iframe', 'object', 'embed', '[contenteditable]', '[tabindex]:not([tabindex^=\"-\"])'];\n\n var Modal = /*#__PURE__*/function () {\n function Modal(_ref) {\n var targetModal = _ref.targetModal,\n _ref$triggers = _ref.triggers,\n triggers = _ref$triggers === void 0 ? [] : _ref$triggers,\n _ref$onShow = _ref.onShow,\n onShow = _ref$onShow === void 0 ? function () {} : _ref$onShow,\n _ref$onClose = _ref.onClose,\n onClose = _ref$onClose === void 0 ? function () {} : _ref$onClose,\n _ref$openTrigger = _ref.openTrigger,\n openTrigger = _ref$openTrigger === void 0 ? 'data-micromodal-trigger' : _ref$openTrigger,\n _ref$closeTrigger = _ref.closeTrigger,\n closeTrigger = _ref$closeTrigger === void 0 ? 'data-micromodal-close' : _ref$closeTrigger,\n _ref$openClass = _ref.openClass,\n openClass = _ref$openClass === void 0 ? 'is-open' : _ref$openClass,\n _ref$disableScroll = _ref.disableScroll,\n disableScroll = _ref$disableScroll === void 0 ? false : _ref$disableScroll,\n _ref$disableFocus = _ref.disableFocus,\n disableFocus = _ref$disableFocus === void 0 ? false : _ref$disableFocus,\n _ref$awaitCloseAnimat = _ref.awaitCloseAnimation,\n awaitCloseAnimation = _ref$awaitCloseAnimat === void 0 ? false : _ref$awaitCloseAnimat,\n _ref$awaitOpenAnimati = _ref.awaitOpenAnimation,\n awaitOpenAnimation = _ref$awaitOpenAnimati === void 0 ? false : _ref$awaitOpenAnimati,\n _ref$debugMode = _ref.debugMode,\n debugMode = _ref$debugMode === void 0 ? false : _ref$debugMode;\n\n _classCallCheck(this, Modal);\n\n // Save a reference of the modal\n this.modal = document.getElementById(targetModal); // Save a reference to the passed config\n\n this.config = {\n debugMode: debugMode,\n disableScroll: disableScroll,\n openTrigger: openTrigger,\n closeTrigger: closeTrigger,\n openClass: openClass,\n onShow: onShow,\n onClose: onClose,\n awaitCloseAnimation: awaitCloseAnimation,\n awaitOpenAnimation: awaitOpenAnimation,\n disableFocus: disableFocus\n }; // Register click events only if pre binding eventListeners\n\n if (triggers.length > 0) this.registerTriggers.apply(this, _toConsumableArray(triggers)); // pre bind functions for event listeners\n\n this.onClick = this.onClick.bind(this);\n this.onKeydown = this.onKeydown.bind(this);\n }\n /**\n * Loops through all openTriggers and binds click event\n * @param {array} triggers [Array of node elements]\n * @return {void}\n */\n\n\n _createClass(Modal, [{\n key: \"registerTriggers\",\n value: function registerTriggers() {\n var _this = this;\n\n for (var _len = arguments.length, triggers = new Array(_len), _key = 0; _key < _len; _key++) {\n triggers[_key] = arguments[_key];\n }\n\n triggers.filter(Boolean).forEach(function (trigger) {\n trigger.addEventListener('click', function (event) {\n return _this.showModal(event);\n });\n });\n }\n }, {\n key: \"showModal\",\n value: function showModal() {\n var _this2 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n this.activeElement = document.activeElement;\n this.modal.setAttribute('aria-hidden', 'false');\n this.modal.classList.add(this.config.openClass);\n this.scrollBehaviour('disable');\n this.addEventListeners();\n\n if (this.config.awaitOpenAnimation) {\n var handler = function handler() {\n _this2.modal.removeEventListener('animationend', handler, false);\n\n _this2.setFocusToFirstNode();\n };\n\n this.modal.addEventListener('animationend', handler, false);\n } else {\n this.setFocusToFirstNode();\n }\n\n this.config.onShow(this.modal, this.activeElement, event);\n }\n }, {\n key: \"closeModal\",\n value: function closeModal() {\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var modal = this.modal;\n this.modal.setAttribute('aria-hidden', 'true');\n this.removeEventListeners();\n this.scrollBehaviour('enable');\n\n if (this.activeElement && this.activeElement.focus) {\n this.activeElement.focus();\n }\n\n this.config.onClose(this.modal, this.activeElement, event);\n\n if (this.config.awaitCloseAnimation) {\n var openClass = this.config.openClass; // <- old school ftw\n\n this.modal.addEventListener('animationend', function handler() {\n modal.classList.remove(openClass);\n modal.removeEventListener('animationend', handler, false);\n }, false);\n } else {\n modal.classList.remove(this.config.openClass);\n }\n }\n }, {\n key: \"closeModalById\",\n value: function closeModalById(targetModal) {\n this.modal = document.getElementById(targetModal);\n if (this.modal) this.closeModal();\n }\n }, {\n key: \"scrollBehaviour\",\n value: function scrollBehaviour(toggle) {\n if (!this.config.disableScroll) return;\n var body = document.querySelector('body');\n\n switch (toggle) {\n case 'enable':\n Object.assign(body.style, {\n overflow: ''\n });\n break;\n\n case 'disable':\n Object.assign(body.style, {\n overflow: 'hidden'\n });\n break;\n }\n }\n }, {\n key: \"addEventListeners\",\n value: function addEventListeners() {\n this.modal.addEventListener('touchstart', this.onClick);\n this.modal.addEventListener('click', this.onClick);\n document.addEventListener('keydown', this.onKeydown);\n }\n }, {\n key: \"removeEventListeners\",\n value: function removeEventListeners() {\n this.modal.removeEventListener('touchstart', this.onClick);\n this.modal.removeEventListener('click', this.onClick);\n document.removeEventListener('keydown', this.onKeydown);\n }\n }, {\n key: \"onClick\",\n value: function onClick(event) {\n if (event.target.hasAttribute(this.config.closeTrigger)) {\n this.closeModal(event);\n }\n }\n }, {\n key: \"onKeydown\",\n value: function onKeydown(event) {\n if (event.keyCode === 27) this.closeModal(event); // esc\n\n if (event.keyCode === 9) this.retainFocus(event); // tab\n }\n }, {\n key: \"getFocusableNodes\",\n value: function getFocusableNodes() {\n var nodes = this.modal.querySelectorAll(FOCUSABLE_ELEMENTS);\n return Array.apply(void 0, _toConsumableArray(nodes));\n }\n /**\n * Tries to set focus on a node which is not a close trigger\n * if no other nodes exist then focuses on first close trigger\n */\n\n }, {\n key: \"setFocusToFirstNode\",\n value: function setFocusToFirstNode() {\n var _this3 = this;\n\n if (this.config.disableFocus) return;\n var focusableNodes = this.getFocusableNodes(); // no focusable nodes\n\n if (focusableNodes.length === 0) return; // remove nodes on whose click, the modal closes\n // could not think of a better name :(\n\n var nodesWhichAreNotCloseTargets = focusableNodes.filter(function (node) {\n return !node.hasAttribute(_this3.config.closeTrigger);\n });\n if (nodesWhichAreNotCloseTargets.length > 0) nodesWhichAreNotCloseTargets[0].focus();\n if (nodesWhichAreNotCloseTargets.length === 0) focusableNodes[0].focus();\n }\n }, {\n key: \"retainFocus\",\n value: function retainFocus(event) {\n var focusableNodes = this.getFocusableNodes(); // no focusable nodes\n\n if (focusableNodes.length === 0) return;\n /**\n * Filters nodes which are hidden to prevent\n * focus leak outside modal\n */\n\n focusableNodes = focusableNodes.filter(function (node) {\n return node.offsetParent !== null;\n }); // if disableFocus is true\n\n if (!this.modal.contains(document.activeElement)) {\n focusableNodes[0].focus();\n } else {\n var focusedItemIndex = focusableNodes.indexOf(document.activeElement);\n\n if (event.shiftKey && focusedItemIndex === 0) {\n focusableNodes[focusableNodes.length - 1].focus();\n event.preventDefault();\n }\n\n if (!event.shiftKey && focusableNodes.length > 0 && focusedItemIndex === focusableNodes.length - 1) {\n focusableNodes[0].focus();\n event.preventDefault();\n }\n }\n }\n }]);\n\n return Modal;\n }();\n /**\n * Modal prototype ends.\n * Here on code is responsible for detecting and\n * auto binding event handlers on modal triggers\n */\n // Keep a reference to the opened modal\n\n\n var activeModal = null;\n /**\n * Generates an associative array of modals and it's\n * respective triggers\n * @param {array} triggers An array of all triggers\n * @param {string} triggerAttr The data-attribute which triggers the module\n * @return {array}\n */\n\n var generateTriggerMap = function generateTriggerMap(triggers, triggerAttr) {\n var triggerMap = [];\n triggers.forEach(function (trigger) {\n var targetModal = trigger.attributes[triggerAttr].value;\n if (triggerMap[targetModal] === undefined) triggerMap[targetModal] = [];\n triggerMap[targetModal].push(trigger);\n });\n return triggerMap;\n };\n /**\n * Validates whether a modal of the given id exists\n * in the DOM\n * @param {number} id The id of the modal\n * @return {boolean}\n */\n\n\n var validateModalPresence = function validateModalPresence(id) {\n if (!document.getElementById(id)) {\n console.warn(\"MicroModal: \\u2757Seems like you have missed %c'\".concat(id, \"'\"), 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', 'ID somewhere in your code. Refer example below to resolve it.');\n console.warn(\"%cExample:\", 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', \"
\"));\n return false;\n }\n };\n /**\n * Validates if there are modal triggers present\n * in the DOM\n * @param {array} triggers An array of data-triggers\n * @return {boolean}\n */\n\n\n var validateTriggerPresence = function validateTriggerPresence(triggers) {\n if (triggers.length <= 0) {\n console.warn(\"MicroModal: \\u2757Please specify at least one %c'micromodal-trigger'\", 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', 'data attribute.');\n console.warn(\"%cExample:\", 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', \"\");\n return false;\n }\n };\n /**\n * Checks if triggers and their corresponding modals\n * are present in the DOM\n * @param {array} triggers Array of DOM nodes which have data-triggers\n * @param {array} triggerMap Associative array of modals and their triggers\n * @return {boolean}\n */\n\n\n var validateArgs = function validateArgs(triggers, triggerMap) {\n validateTriggerPresence(triggers);\n if (!triggerMap) return true;\n\n for (var id in triggerMap) {\n validateModalPresence(id);\n }\n\n return true;\n };\n /**\n * Binds click handlers to all modal triggers\n * @param {object} config [description]\n * @return void\n */\n\n\n var init = function init(config) {\n // Create an config object with default openTrigger\n var options = Object.assign({}, {\n openTrigger: 'data-micromodal-trigger'\n }, config); // Collects all the nodes with the trigger\n\n var triggers = _toConsumableArray(document.querySelectorAll(\"[\".concat(options.openTrigger, \"]\"))); // Makes a mappings of modals with their trigger nodes\n\n\n var triggerMap = generateTriggerMap(triggers, options.openTrigger); // Checks if modals and triggers exist in dom\n\n if (options.debugMode === true && validateArgs(triggers, triggerMap) === false) return; // For every target modal creates a new instance\n\n for (var key in triggerMap) {\n var value = triggerMap[key];\n options.targetModal = key;\n options.triggers = _toConsumableArray(value);\n activeModal = new Modal(options); // eslint-disable-line no-new\n }\n };\n /**\n * Shows a particular modal\n * @param {string} targetModal [The id of the modal to display]\n * @param {object} config [The configuration object to pass]\n * @return {void}\n */\n\n\n var show = function show(targetModal, config) {\n var options = config || {};\n options.targetModal = targetModal; // Checks if modals and triggers exist in dom\n\n if (options.debugMode === true && validateModalPresence(targetModal) === false) return; // clear events in case previous modal wasn't close\n\n if (activeModal) activeModal.removeEventListeners(); // stores reference to active modal\n\n activeModal = new Modal(options); // eslint-disable-line no-new\n\n activeModal.showModal();\n };\n /**\n * Closes the active modal\n * @param {string} targetModal [The id of the modal to close]\n * @return {void}\n */\n\n\n var close = function close(targetModal) {\n targetModal ? activeModal.closeModalById(targetModal) : activeModal.closeModal();\n };\n\n return {\n init: init,\n show: show,\n close: close\n };\n}();\nwindow.MicroModal = MicroModal;\n\nexport default MicroModal;\n"],"names":["require","initResendSms","confirmCallback","message","undefined","duration","targetContainer","document","querySelector","classToAdd","dismiss","id","randomizer","timing","readingTime","seconds","$container","newCallback","createElement","className","setAttribute","dataset","callback","style","messageTemplate","innerHTML","insertAdjacentElement","insertAdjacentHTML","addEventListener","classList","contains","remove","add","isHover","setTimeout","event","currentTarget","closest","window","confirmModal","trigger","modalAction","modalMethod","action","optionsAction","method","optionsMethod","isTrue","optionsCallback","csrfToken","head","content","rndID","locale","translationPath","confirmModalType","modalTitle","modalContent","modalCancel","modalOk","urlParams","forEach","value","elem","tagName","getAttribute","hasAttribute","attributes","confirmModalAction","confirmModalMethod","checkCountryISOCode","fetch","headers","credentials","then","response","json","data","translated","translated_strings","translatedTitle","translatedContent","translatedButtonCancel","translatedButtonOk","generateModal","modalButtonCancel","modalButtonOk","triggeredElem","dataMethod","toUpperCase","template","MicroModal","onClose","modal","onShow","confirmationModalEvents","disableScroll","awaitOpenAnimation","awaitCloseAnimation","modalID","getElementById","target","preventDefault","type","checked","Rails","encryptForm","form","encrypt","JSEncrypt","encryptKeyElement","encryptKey","setKey","querySelectorAll","field","encryptedValue","newField","name","previousName","encryptFields","encryptFormOnSubmit","resetForm","nextElementSibling","languages","code","Object","keys","includes","Math","random","toString","substring","text","totalReadingTimeSeconds","trim","split","length","wpm","minutes","ceil","resendSms","url","_defineProperties","props","i","descriptor","enumerable","configurable","writable","defineProperty","key","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","Symbol","iterator","from","_iterableToArray","o","minLen","n","prototype","call","slice","constructor","test","_unsupportedIterableToArray","TypeError","_nonIterableSpread","len","arr2","FOCUSABLE_ELEMENTS","Modal","activeModal","validateModalPresence","validateArgs","_ref","targetModal","_ref$triggers","triggers","_ref$onShow","_ref$onClose","_ref$openTrigger","openTrigger","_ref$closeTrigger","closeTrigger","_ref$openClass","openClass","_ref$disableScroll","_ref$disableFocus","disableFocus","_ref$awaitCloseAnimat","_ref$awaitOpenAnimati","_ref$debugMode","debugMode","instance","Constructor","_classCallCheck","this","config","registerTriggers","apply","onClick","bind","onKeydown","protoProps","staticProps","_this","_len","arguments","_key","filter","Boolean","showModal","_this2","activeElement","scrollBehaviour","addEventListeners","handler","removeEventListener","setFocusToFirstNode","removeEventListeners","focus","closeModal","toggle","body","assign","overflow","keyCode","retainFocus","nodes","_this3","focusableNodes","getFocusableNodes","nodesWhichAreNotCloseTargets","node","offsetParent","focusedItemIndex","indexOf","shiftKey","console","warn","concat","triggerMap","validateTriggerPresence","init","options","triggerAttr","push","generateTriggerMap","show","close","closeModalById"],"sourceRoot":""}