{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/frontend/lib/analytics.js","webpack:///./app/frontend/packs/superbadge-sets.js","webpack:///./app/frontend/lib/scrollTo.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","this","oldJsonpFunction","slice","initialSettings","trackingFn","window","log","track","analytics","settings","trackEvent","eventName","payload","superbadgeSets","$","tracker","toggleTab","tab","hasClass","career","$currentActive","attr","removeClass","addClass","focus","setStateFromParams","url","URL","location","href","searchParams","set","sanitizedCareer","DOMPurify","sanitize","replace","sanitizedSet","activeSet","yPosition","getBoundingClientRect","top","scrollY","preventDefault","scrollTo","behavior","init","$tabs","on","trigger","find","innerText","category","pageLocation","trackTabNavigate","arr","toArray","currentIndex","indexOf","keyCode","previousIndex","nextIndex","async","default","lottie","animationConfigs","container","getElementById","path","renderer","loop","autoplay","animations","map","config","loadAnimation","IntersectionObserver","observer","entries","forEach","entry","index","animation","isIntersecting","play","pause","observe","animate","addEventListener","trackShowMore","visible","targetId","$content","slideUp","toggleClass","css","height","slideDown","toggleVisibility","newText","oldText","toggleText","closest","trackSetLink","trackSetSuperbadgeLink","trackExtraSuperbadgeLink"],"mappings":"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","file":"js/superbadge-sets-8ac307859b0ff733db9c.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t34: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \"-\" + {\"4\":\"9061eec34e214d54309f\",\"6\":\"93fba1305b44040cf415\"}[chunkId] + \".chunk.js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = this[\"trailhead_webpackJsonp\"] = this[\"trailhead_webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([851,0,50]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import get from 'lodash/get';\n\nconst initialSettings = () => {\n  let trackingFn;\n\n  if (typeof window !== 'undefined') {\n    trackingFn = get(window, 'Trailhead.EventTracking.track', () => {\n      console.log('Tracking Fn not set');\n    });\n  }\n\n  return {\n    track: trackingFn,\n  };\n};\n\nexport function createNavTracker(settings, context) {\n  function addContext(data) {\n    const newContext = { ...data, _parent: context };\n    return createNavTracker(settings, newContext);\n  }\n\n  function trackEvent(payload) {\n    // Custom logic for your analytics backend.\n    // This is where you can use the values in the settings\n    const { track } = settings;\n    const { action, label } = payload;\n\n    // In the future, once we have proper infrastructure\n    // so save JSON objects, we can send the whole context\n    // object which represents the hierarchy of modules\n    // on a page\n    track(action, { name: label, category: context.section });\n  }\n\n  return { trackEvent, addContext };\n}\n\nexport function createTracker(settings) {\n  function trackEvent(eventName, payload) {\n    const { track } = settings;\n    track(eventName, payload);\n  }\n\n  return { trackEvent };\n}\n\nexport function navAnalytics(context) {\n  return createNavTracker(initialSettings(), context);\n}\n\nexport default function analytics() {\n  return createTracker(initialSettings());\n}\n","import { getScrollPosition, scrollToElement } from 'lib/scrollTo';\nimport analytics from 'lib/analytics';\nimport DOMPurify from 'dompurify';\n\nconst superbadgeSets = (function($) {\n  const tracker = analytics();\n\n  function trackSetLink(trigger) {\n    const set = $(trigger)\n      .closest('.th-content-set')\n      .data('set');\n\n    const payload = {\n      name: trigger.innerText,\n      category: 'superbadge_sets',\n      pageLocation: `${set}_super_set`,\n      type: 'link'\n    };\n\n    tracker.trackEvent('set_link_clicked', payload);\n  }\n\n  function trackSetSuperbadgeLink(trigger) {\n    const set = $(trigger)\n      .closest('.th-content-set')\n      .data('set');\n    const apiName = $(trigger)\n      .closest('.th-content-tile')\n      .data('api-name');\n\n    const payload = {\n      name: apiName,\n      category: 'superbadge_sets',\n      pageLocation: `${set}_super_set`,\n      type: 'link'\n    };\n\n    tracker.trackEvent('superbadge_clicked', payload);\n  }\n\n  function trackExtraSuperbadgeLink(trigger) {\n    const career = $(trigger)\n      .closest('.th-tab-panel')\n      .data('sets-career');\n    const apiName = $(trigger)\n      .closest('.th-content-tile')\n      .data('api-name');\n\n    const payload = {\n      name: apiName,\n      category: 'superbadge_sets',\n      pageLocation: `${career}_extra_superbadges`,\n      type: 'Link'\n    };\n\n    tracker.trackEvent('superbadge_clicked', payload);\n  }\n\n  function trackShowMore(trigger) {\n    const payload = {\n      name: trigger.innerText,\n      category: 'superbadge_sets',\n      pageLocation: 'superbadges',\n      type: 'button'\n    };\n\n    tracker.trackEvent('button_clicked', payload);\n  }\n\n  function trackTabNavigate(trigger) {\n    const name = $(trigger).find('figcaption')[0].innerText;\n    const payload = {\n      name,\n      category: 'superbadge_sets',\n      pageLocation: 'superbadges',\n      type: 'tab'\n    };\n\n    tracker.trackEvent('role_selected', payload);\n  }\n\n  function toggleTab(tab) {\n    // if its active already, return\n    if ($(tab).hasClass('th-career-figure_active')) {\n      return;\n    }\n\n    // toggle the tab state\n    const career = $(tab).data('figure-career');\n    const $currentActive = $('.th-career-figure_active');\n    $currentActive.attr('tabindex', -1);\n    $currentActive.removeClass('th-career-figure_active');\n\n    $(tab).addClass('th-career-figure_active');\n    $('[data-figure-career]').attr('aria-selected', 'false');\n    $(tab).attr('aria-selected', 'true');\n    $(tab).attr('tabindex', 0);\n    $(tab).focus();\n\n    // toggle the career\n    $('[data-sets-career].slds-show')\n      .removeClass('slds-show')\n      .addClass('slds-hide');\n    $(`[data-sets-career='${career}']`)\n      .addClass('slds-show')\n      .removeClass('slds-hide');\n  }\n\n  // toggle section visibility\n  function toggleVisibility(trigger) {\n    const visible = $(trigger).attr('aria-expanded') === 'true';\n    const targetId = $(trigger).data('toggle-visibility');\n    const $content = $(`#${targetId}`);\n\n    if (visible) {\n      // Hiding content\n      $content.slideUp('fast', function() {\n        $(this).toggleClass('slds-is-collapsed slds-is-expanded');\n        // Hide from screen readers immediately when animation starts\n        $(this).attr('aria-hidden', 'true');\n        $(this).css('display', 'none');\n      });\n    } else {\n      // Showing content\n      $content.css({ height: '1200px' });\n      // Make visible to screen readers only after display is set\n      $content.css('display', 'block');\n      $content.attr('aria-hidden', 'false');\n\n      $content.slideDown('fast', function() {\n        $(this).toggleClass('slds-is-collapsed slds-is-expanded');\n        $(this).css({ height: 'auto' });\n      });\n      $('#learn-more-title').focus();\n    }\n    $(trigger).attr('aria-expanded', !visible);\n  }\n\n  // toggle button text\n  function toggleText(trigger) {\n    const newText = $(trigger).data('toggle-text');\n    const oldText = trigger.innerText;\n    trigger.innerText = newText;\n    $(trigger).data('toggle-text', oldText);\n  }\n\n  function setStateFromParams() {\n    const url = new URL(window.location.href);\n\n    const career = url.searchParams.get('career');\n    const set = url.searchParams.get('set');\n\n    if (career && set) {\n      const sanitizedCareer = DOMPurify.sanitize(career.replace(/[^a-zA-Z0-9_-]/g, ''));\n      const sanitizedSet = DOMPurify.sanitize(set.replace(/[^a-zA-Z0-9_-]/g, ''));\n      const activeTab = $(`[data-figure-career=${sanitizedCareer}]`)[0];\n      toggleTab(activeTab);\n\n      const activeSet = $(`[data-set=${sanitizedSet}]`)[0];\n      scrollToElement(getScrollPosition(activeSet) + 20);\n    }\n  }\n\n  async function animate() {\n    const { default: lottie } = await import('lottie-web');\n    const animationConfigs = [\n      {\n        container: document.getElementById('sb-apex'),\n        path: '/resources/sb-apex.json',\n        renderer: 'svg',\n        loop: false,\n        autoplay: true\n      }\n    ];\n\n    const animations = animationConfigs.map(config =>\n      lottie.loadAnimation({\n        ...config\n      })\n    );\n\n    if (typeof IntersectionObserver !== 'undefined') {\n      const observer = new IntersectionObserver(entries => {\n        entries.forEach(entry => {\n          const index = animationConfigs\n            .map(c => c.container)\n            .indexOf(entry.target);\n          const animation = animations[index];\n          if (entry.isIntersecting) {\n            animation.play();\n          } else {\n            animation.pause();\n          }\n        });\n      });\n      animationConfigs.forEach(config => observer.observe(config.container));\n    } else {\n      animations.forEach(animation => animation.play());\n    }\n  }\n\n  function init() {\n    const $tabs = $('[data-figure-career]');\n    $tabs.on('click', function() {\n      trackTabNavigate(this);\n      toggleTab(this);\n    });\n\n    $tabs.on('keyup', function(e) {\n      const arr = $tabs.toArray();\n      const currentIndex = arr.indexOf(this);\n\n      // if left or right advance\n      if (e.keyCode === 37) {\n        const previousIndex = currentIndex - 1;\n        const nextIndex = previousIndex < 0 ? arr.length - 1 : previousIndex;\n        toggleTab(arr[nextIndex]);\n      } else if (e.keyCode === 39) {\n        const nextIndex = currentIndex + 1;\n        const next = nextIndex === arr.length ? 0 : nextIndex;\n        toggleTab(arr[next]);\n      }\n    });\n\n    setStateFromParams();\n    animate();\n\n    const showMoreButton = document.getElementById('show-more-toggle');\n    showMoreButton.addEventListener('click', e => {\n      trackShowMore(e.target);\n      toggleVisibility(e.target);\n      toggleText(e.target);\n    });\n\n    const $setLinks = $('.th-content-set__section a');\n    $setLinks.on('click', e => {\n      trackSetLink(e.target);\n    });\n\n    const $superbadgeLinks = $('.th-content-set .tds-content-tile a');\n    $superbadgeLinks.on('click', e => {\n      trackSetSuperbadgeLink(e.target);\n    });\n\n    const $extraSuperbadgeLinks = $(\n      '.th-tab-panel #extra-tiles .tds-content-tile a'\n    );\n    $extraSuperbadgeLinks.on('click', e => {\n      trackExtraSuperbadgeLink(e.target);\n    });\n  }\n\n  return {\n    init\n  };\n})($);\n\n$(() => {\n  superbadgeSets.init();\n});\n","export function scrollToElement(yPosition, e) {\n  if (e) { e.preventDefault(); }\n  window.scrollTo({\n    top: yPosition,\n    behavior: 'smooth'\n  });\n}\n\nexport function getScrollPosition(anchorEl) {\n  const position = anchorEl.getBoundingClientRect().top + (window.scrollY - 24);\n  return position;\n}\n\nexport function getScrollPositionById(anchorName) {\n  const anchorEl = document.getElementById(anchorName);\n  return anchorEl.getBoundingClientRect().top + (window.scrollY - 24);\n}\n"],"sourceRoot":""}