{"version":3,"file":"helpers-DPaI_Flo.js","sources":["../../../app/assets/javascripts/modules/documentation/helpers.js"],"sourcesContent":["/* eslint-disable func-names, prefer-template */\n/* globals DocLang, Helpers */\n\n// Generic Helper functions for documentation pages\nwindow.Helpers = {\n capitalize(string) {\n if (string == null || !(string.length > 0)) {\n return '';\n }\n const trimmedString = string.trim();\n return trimmedString[0].toUpperCase() + trimmedString.substring(1).toLowerCase();\n },\n\n setCurrentLanguage(mode, options) {\n const language = mode.trim();\n if (options == null || options.persistToCookie !== false) {\n $.cookie('preferred_lang', language, { expires: 365, path: '/' });\n }\n this.replaceUrlLangPreference(mode);\n return $(document).data('selected_mode', language);\n },\n\n // If the ?lang=LANG query param exists in the URL\n // yet the user has chosen a language, we should\n // update the param so that the next visit / refresh\n // uses the chosen language\n replaceUrlLangPreference(mode) {\n if (this.getUrlLanguagePreference()) {\n if (window.history.pushState) {\n const params = new URLSearchParams(window.location.search);\n params.set('lang', mode);\n window.history.replaceState({}, '', `${window.location.pathname}?${params}${window.location.hash}`);\n }\n }\n },\n\n getCurrentLanguage() {\n let storedPeference = $.cookie('preferred_lang');\n\n if (!(DocLang.permittedLanguageKeys.indexOf(storedPeference) >= 0)) {\n storedPeference = null;\n }\n\n let urlLangPreference = this.getUrlLanguagePreference();\n urlLangPreference = window.LangsPermitted.indexOf(urlLangPreference) >= 0 ? urlLangPreference : null;\n\n return (\n $(document).data('selected_mode') ||\n urlLangPreference ||\n storedPeference ||\n DocLang.permittedLanguageKeys[0] ||\n 'javascript'\n );\n },\n\n getUrlLanguagePreference() {\n const params = new URLSearchParams(window.location.search);\n const lang = params.get('lang');\n return lang;\n },\n\n activateButton($element) {\n $element.addClass('active').parent().siblings('li').find('button').removeClass('active');\n },\n\n delay(time, callback) {\n setTimeout(callback, time);\n },\n\n // Update code examples with current timestamp for ease users life while\n // trying them\n enableLiveTimestamp() {\n let msSinceEpoch = new Date().getTime();\n $('pre').each(function () {\n this.innerHTML = this.innerHTML\n .replace(/_VAR_MS_SINCE_EPOCH_VAR_/g, '' + msSinceEpoch + '')\n .replace(\n /_VAR_SECONDS_SINCE_EPOCH_VAR_/g,\n '' + Math.round(msSinceEpoch / 1000) + '',\n );\n });\n\n Helpers.delay(1500, function () {\n const blocks = $('span.ms-since-epoch, span.s-since-epoch');\n window.setInterval(function () {\n const oldEpoch = msSinceEpoch;\n msSinceEpoch = new Date().getTime();\n blocks.each(function () {\n this.innerHTML = this.innerHTML\n .replace(new RegExp(String(oldEpoch), 'g'), msSinceEpoch)\n .replace(new RegExp(String(Math.round(oldEpoch / 1000)), 'g'), Math.round(msSinceEpoch / 1000));\n });\n }, 1000);\n });\n },\n};\n"],"names":["string","trimmedString","mode","options","language","$","params","storedPeference","urlLangPreference","$element","time","callback","msSinceEpoch","blocks","oldEpoch"],"mappings":"yCAIA,OAAO,QAAU,CACf,WAAWA,EAAQ,CACjB,GAAIA,GAAU,MAAQ,EAAEA,EAAO,OAAS,GACtC,MAAO,GAET,MAAMC,EAAgBD,EAAO,KAAM,EACnC,OAAOC,EAAc,CAAC,EAAE,YAAW,EAAKA,EAAc,UAAU,CAAC,EAAE,YAAa,CACjF,EAED,mBAAmBC,EAAMC,EAAS,CAChC,MAAMC,EAAWF,EAAK,KAAM,EAC5B,OAAIC,GAAW,MAAQA,EAAQ,kBAAoB,KACjDE,EAAE,OAAO,iBAAkBD,EAAU,CAAE,QAAS,IAAK,KAAM,IAAK,EAElE,KAAK,yBAAyBF,CAAI,EAC3BG,EAAE,QAAQ,EAAE,KAAK,gBAAiBD,CAAQ,CAClD,EAMD,yBAAyBF,EAAM,CAC7B,GAAI,KAAK,4BACH,OAAO,QAAQ,UAAW,CAC5B,MAAMI,EAAS,IAAI,gBAAgB,OAAO,SAAS,MAAM,EACzDA,EAAO,IAAI,OAAQJ,CAAI,EACvB,OAAO,QAAQ,aAAa,CAAE,EAAE,GAAI,GAAG,OAAO,SAAS,QAAQ,IAAII,CAAM,GAAG,OAAO,SAAS,IAAI,EAAE,CAC1G,CAEG,EAED,oBAAqB,CACnB,IAAIC,EAAkBF,EAAE,OAAO,gBAAgB,EAEzC,QAAQ,sBAAsB,QAAQE,CAAe,GAAK,IAC9DA,EAAkB,MAGpB,IAAIC,EAAoB,KAAK,yBAA0B,EACvD,OAAAA,EAAoB,OAAO,eAAe,QAAQA,CAAiB,GAAK,EAAIA,EAAoB,KAG9FH,EAAE,QAAQ,EAAE,KAAK,eAAe,GAChCG,GACAD,GACA,QAAQ,sBAAsB,CAAC,GAC/B,YAEH,EAED,0BAA2B,CAGzB,OAFe,IAAI,gBAAgB,OAAO,SAAS,MAAM,EACrC,IAAI,MAAM,CAE/B,EAED,eAAeE,EAAU,CACvBA,EAAS,SAAS,QAAQ,EAAE,OAAM,EAAG,SAAS,IAAI,EAAE,KAAK,QAAQ,EAAE,YAAY,QAAQ,CACxF,EAED,MAAMC,EAAMC,EAAU,CACpB,WAAWA,EAAUD,CAAI,CAC1B,EAID,qBAAsB,CACpB,IAAIE,EAAe,IAAI,KAAM,EAAC,QAAS,EACvCP,EAAE,KAAK,EAAE,KAAK,UAAY,CACxB,KAAK,UAAY,KAAK,UACnB,QAAQ,4BAA6B,gCAAkCO,EAAe,SAAS,EAC/F,QACC,iCACA,+BAAiC,KAAK,MAAMA,EAAe,GAAI,EAAI,SACpE,CACT,CAAK,EAED,QAAQ,MAAM,KAAM,UAAY,CAC9B,MAAMC,EAASR,EAAE,yCAAyC,EAC1D,OAAO,YAAY,UAAY,CAC7B,MAAMS,EAAWF,EACjBA,EAAe,IAAI,KAAM,EAAC,QAAS,EACnCC,EAAO,KAAK,UAAY,CACtB,KAAK,UAAY,KAAK,UACnB,QAAQ,IAAI,OAAO,OAAOC,CAAQ,EAAG,GAAG,EAAGF,CAAY,EACvD,QAAQ,IAAI,OAAO,OAAO,KAAK,MAAME,EAAW,GAAI,CAAC,EAAG,GAAG,EAAG,KAAK,MAAMF,EAAe,GAAI,CAAC,CAC1G,CAAS,CACF,EAAE,GAAI,CACb,CAAK,CACF,CACH"}