{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///(webpack)/buildin/global.js","webpack:///./.yarn/cache/clipboard-npm-2.0.11-45358b5ae8-413055a603.zip/node_modules/clipboard/dist/clipboard.js","webpack:///./app/frontend/lib/jQuery.js","webpack:///./app/frontend/lib/tracking/track.js","webpack:///./app/frontend/plugins/handleLocaleChange.js","webpack:///./app/frontend/lib/is.js","webpack:///./app/frontend/plugins/index.js","webpack:///./app/frontend/packs/client-side.js","webpack:///./.yarn/__virtual__/jquery-ujs-virtual-8fbcfcb38b/0/cache/jquery-ujs-npm-1.2.3-d166d8749a-6174edc30b.zip/node_modules/jquery-ujs/src/rails.js","webpack:///./.yarn/cache/jquery.cookie-npm-1.4.1-e006b4cd39-bcb1335f47.zip/node_modules/jquery.cookie/jquery.cookie.js","webpack:///./app/frontend/plugins sync \\.js$","webpack:///./app/frontend/plugins/setCookie.js","webpack:///./app/frontend/plugins/toggleAttribute.js","webpack:///./app/frontend/plugins/toggleByCookie.js","webpack:///./app/frontend/plugins/tracking.js","webpack:///./app/frontend/lib/expose.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","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","this","oldJsonpFunction","slice","g","Function","e","window","factory","__webpack_modules__","__unused_webpack_module","__webpack_exports__","clipboard","tiny_emitter","tiny_emitter_default","listen","listen_default","src_select","select_default","command","type","document","execCommand","err","actions_cut","target","selectedText","fakeCopyAction","options","fakeElement","isRTL","documentElement","getAttribute","createElement","style","fontSize","border","padding","margin","position","yPosition","pageYOffset","scrollTop","top","concat","setAttribute","createFakeElement","container","appendChild","remove","actions_copy","arguments","undefined","body","HTMLInputElement","includes","_typeof","obj","iterator","constructor","actions_default","_options$action","action","text","Error","nodeType","hasAttribute","clipboard_typeof","_defineProperties","props","descriptor","configurable","writable","_setPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","toString","_isNativeReflectConstruct","self","Super","_getPrototypeOf","NewTarget","ReferenceError","_assertThisInitialized","getPrototypeOf","getAttributeValue","suffix","element","attribute","Clipboard","_Emitter","subClass","superClass","TypeError","_inherits","Constructor","protoProps","staticProps","_super","trigger","_this","instance","_classCallCheck","resolveOptions","listenClick","defaultAction","defaultTarget","defaultText","_this2","listener","onClick","delegateTarget","currentTarget","emit","clearSelection","focus","getSelection","removeAllRanges","selector","querySelector","destroy","actions","support","queryCommandSupported","forEach","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","parentNode","__unused_webpack_exports","closest","_delegate","callback","useCapture","listenerFn","addEventListener","removeEventListener","elements","querySelectorAll","Array","map","node","HTMLElement","nodeList","string","String","fn","is","delegate","listenNode","listenNodeList","listenSelector","nodeName","isReadOnly","select","setSelectionRange","removeAttribute","selection","range","createRange","selectNodeContents","addRange","E","on","ctx","once","off","_","evtArr","len","evts","liveEvents","TinyEmitter","__webpack_module_cache__","a","definition","prop","default","expose","jQuery","$","ClipboardJS","track","eventName","payload","trackEvent","CustomEvent","bubbles","composed","detail","dispatchEvent","footer","location","href","isFalsy","indexOf","trim","toLowerCase","isTruthy","req","require","keys","toggleByCookie","attr","condition","token","ajaxSetup","beforeSend","xhr","setRequestHeader","kebabCase","jqueryUjsInit","rails","error","$document","linkClickSelector","buttonClickSelector","inputChangeSelector","formSubmitSelector","formInputClickSelector","disableSelector","enableSelector","requiredInputSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","csrfToken","csrfParam","CSRFProtection","refreshCSRFTokens","val","fire","event","Event","confirm","message","ajax","isRemote","handleRemote","method","url","withCredentials","dataType","ajaxSettings","serializeArray","button","serialize","settings","accepts","script","success","status","complete","crossDomain","isCrossDomain","xhrFields","originAnchor","urlAnchor","protocol","host","handleMethod","link","form","metadataInput","hide","append","appendTo","submit","formElements","filter","find","disableFormElements","each","disableFormElement","replacement","enableFormElements","enableFormElement","removeData","allowAction","answer","console","log","stack","blankInputs","specifiedSelector","nonBlank","input","radiosForNameWithNoneSelected","radioName","foundInputs","requiredInputs","checkedRadioButtonNames","add","nonBlankInputs","stopEverything","stopImmediatePropagation","disableElement","html","enableElement","ajaxPrefilter","originalOptions","metaClick","metaKey","ctrlKey","fail","blankRequiredInputs","nonBlankFileInputs","remote","setTimeout","aborted","pluses","encode","config","raw","encodeURIComponent","decode","decodeURIComponent","stringifyCookieValue","json","JSON","stringify","parseCookieValue","replace","parse","read","converter","isFunction","cookie","extend","defaults","expires","days","setTime","toUTCString","path","domain","secure","join","cookies","split","parts","removeCookie","webpackContext","id","webpackContextResolve","code","resolve","setCookie","v","toggleAttribute","$target","currentValue","toggleClass","Trailhead","ActivityTracking","global","objects"],"mappings":"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","file":"js/client-side-63cfe7e4e794e8faf956.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\t11: 0\n \t};\n\n \tvar deferredModules = [];\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 \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([775,0,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n  \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n  try {\n    return document.execCommand(type);\n  } catch (err) {\n    return false;\n  }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n  var selectedText = select_default()(target);\n  command('cut');\n  return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n  var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n  var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n  fakeElement.style.fontSize = '12pt'; // Reset box model\n\n  fakeElement.style.border = '0';\n  fakeElement.style.padding = '0';\n  fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n  fakeElement.style.position = 'absolute';\n  fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n  var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n  fakeElement.style.top = \"\".concat(yPosition, \"px\");\n  fakeElement.setAttribute('readonly', '');\n  fakeElement.value = value;\n  return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n  var fakeElement = createFakeElement(value);\n  options.container.appendChild(fakeElement);\n  var selectedText = select_default()(fakeElement);\n  command('copy');\n  fakeElement.remove();\n  return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n    container: document.body\n  };\n  var selectedText = '';\n\n  if (typeof target === 'string') {\n    selectedText = fakeCopyAction(target, options);\n  } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n    // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n    selectedText = fakeCopyAction(target.value, options);\n  } else {\n    selectedText = select_default()(target);\n    command('copy');\n  }\n\n  return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  // Defines base properties passed from constructor.\n  var _options$action = options.action,\n      action = _options$action === void 0 ? 'copy' : _options$action,\n      container = options.container,\n      target = options.target,\n      text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n  if (action !== 'copy' && action !== 'cut') {\n    throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n  } // Sets the `target` property using an element that will be have its content copied.\n\n\n  if (target !== undefined) {\n    if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n      if (action === 'copy' && target.hasAttribute('disabled')) {\n        throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n      }\n\n      if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n        throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n      }\n    } else {\n      throw new Error('Invalid \"target\" value, use a valid Element');\n    }\n  } // Define selection strategy based on `text` property.\n\n\n  if (text) {\n    return actions_copy(text, {\n      container: container\n    });\n  } // Defines which selection strategy based on `target` property.\n\n\n  if (target) {\n    return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n      container: container\n    });\n  }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n  var attribute = \"data-clipboard-\".concat(suffix);\n\n  if (!element.hasAttribute(attribute)) {\n    return;\n  }\n\n  return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n  _inherits(Clipboard, _Emitter);\n\n  var _super = _createSuper(Clipboard);\n\n  /**\n   * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n   * @param {Object} options\n   */\n  function Clipboard(trigger, options) {\n    var _this;\n\n    _classCallCheck(this, Clipboard);\n\n    _this = _super.call(this);\n\n    _this.resolveOptions(options);\n\n    _this.listenClick(trigger);\n\n    return _this;\n  }\n  /**\n   * Defines if attributes would be resolved using internal setter functions\n   * or custom functions that were passed in the constructor.\n   * @param {Object} options\n   */\n\n\n  _createClass(Clipboard, [{\n    key: \"resolveOptions\",\n    value: function resolveOptions() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n      this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n      this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n      this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n    }\n    /**\n     * Adds a click event listener to the passed trigger.\n     * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n     */\n\n  }, {\n    key: \"listenClick\",\n    value: function listenClick(trigger) {\n      var _this2 = this;\n\n      this.listener = listen_default()(trigger, 'click', function (e) {\n        return _this2.onClick(e);\n      });\n    }\n    /**\n     * Defines a new `ClipboardAction` on each click event.\n     * @param {Event} e\n     */\n\n  }, {\n    key: \"onClick\",\n    value: function onClick(e) {\n      var trigger = e.delegateTarget || e.currentTarget;\n      var action = this.action(trigger) || 'copy';\n      var text = actions_default({\n        action: action,\n        container: this.container,\n        target: this.target(trigger),\n        text: this.text(trigger)\n      }); // Fires an event based on the copy operation result.\n\n      this.emit(text ? 'success' : 'error', {\n        action: action,\n        text: text,\n        trigger: trigger,\n        clearSelection: function clearSelection() {\n          if (trigger) {\n            trigger.focus();\n          }\n\n          window.getSelection().removeAllRanges();\n        }\n      });\n    }\n    /**\n     * Default `action` lookup function.\n     * @param {Element} trigger\n     */\n\n  }, {\n    key: \"defaultAction\",\n    value: function defaultAction(trigger) {\n      return getAttributeValue('action', trigger);\n    }\n    /**\n     * Default `target` lookup function.\n     * @param {Element} trigger\n     */\n\n  }, {\n    key: \"defaultTarget\",\n    value: function defaultTarget(trigger) {\n      var selector = getAttributeValue('target', trigger);\n\n      if (selector) {\n        return document.querySelector(selector);\n      }\n    }\n    /**\n     * Allow fire programmatically a copy action\n     * @param {String|HTMLElement} target\n     * @param {Object} options\n     * @returns Text copied.\n     */\n\n  }, {\n    key: \"defaultText\",\n\n    /**\n     * Default `text` lookup function.\n     * @param {Element} trigger\n     */\n    value: function defaultText(trigger) {\n      return getAttributeValue('text', trigger);\n    }\n    /**\n     * Destroy lifecycle.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.listener.destroy();\n    }\n  }], [{\n    key: \"copy\",\n    value: function copy(target) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        container: document.body\n      };\n      return actions_copy(target, options);\n    }\n    /**\n     * Allow fire programmatically a cut action\n     * @param {String|HTMLElement} target\n     * @returns Text cutted.\n     */\n\n  }, {\n    key: \"cut\",\n    value: function cut(target) {\n      return actions_cut(target);\n    }\n    /**\n     * Returns the support of the given action, or all actions if no action is\n     * given.\n     * @param {String} [action]\n     */\n\n  }, {\n    key: \"isSupported\",\n    value: function isSupported() {\n      var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n      var actions = typeof action === 'string' ? [action] : action;\n      var support = !!document.queryCommandSupported;\n      actions.forEach(function (action) {\n        support = support && !!document.queryCommandSupported(action);\n      });\n      return support;\n    }\n  }]);\n\n  return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n    var proto = Element.prototype;\n\n    proto.matches = proto.matchesSelector ||\n                    proto.mozMatchesSelector ||\n                    proto.msMatchesSelector ||\n                    proto.oMatchesSelector ||\n                    proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n    while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n        if (typeof element.matches === 'function' &&\n            element.matches(selector)) {\n          return element;\n        }\n        element = element.parentNode;\n    }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n    var listenerFn = listener.apply(this, arguments);\n\n    element.addEventListener(type, listenerFn, useCapture);\n\n    return {\n        destroy: function() {\n            element.removeEventListener(type, listenerFn, useCapture);\n        }\n    }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n    // Handle the regular Element usage\n    if (typeof elements.addEventListener === 'function') {\n        return _delegate.apply(null, arguments);\n    }\n\n    // Handle Element-less usage, it defaults to global delegation\n    if (typeof type === 'function') {\n        // Use `document` as the first parameter, then apply arguments\n        // This is a short way to .unshift `arguments` without running into deoptimizations\n        return _delegate.bind(null, document).apply(null, arguments);\n    }\n\n    // Handle Selector-based usage\n    if (typeof elements === 'string') {\n        elements = document.querySelectorAll(elements);\n    }\n\n    // Handle Array-like based usage\n    return Array.prototype.map.call(elements, function (element) {\n        return _delegate(element, selector, type, callback, useCapture);\n    });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n    return function(e) {\n        e.delegateTarget = closest(e.target, selector);\n\n        if (e.delegateTarget) {\n            callback.call(element, e);\n        }\n    }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n    return value !== undefined\n        && value instanceof HTMLElement\n        && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n    var type = Object.prototype.toString.call(value);\n\n    return value !== undefined\n        && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n        && ('length' in value)\n        && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n    return typeof value === 'string'\n        || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n    var type = Object.prototype.toString.call(value);\n\n    return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n    if (!target && !type && !callback) {\n        throw new Error('Missing required arguments');\n    }\n\n    if (!is.string(type)) {\n        throw new TypeError('Second argument must be a String');\n    }\n\n    if (!is.fn(callback)) {\n        throw new TypeError('Third argument must be a Function');\n    }\n\n    if (is.node(target)) {\n        return listenNode(target, type, callback);\n    }\n    else if (is.nodeList(target)) {\n        return listenNodeList(target, type, callback);\n    }\n    else if (is.string(target)) {\n        return listenSelector(target, type, callback);\n    }\n    else {\n        throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n    }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n    node.addEventListener(type, callback);\n\n    return {\n        destroy: function() {\n            node.removeEventListener(type, callback);\n        }\n    }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n    Array.prototype.forEach.call(nodeList, function(node) {\n        node.addEventListener(type, callback);\n    });\n\n    return {\n        destroy: function() {\n            Array.prototype.forEach.call(nodeList, function(node) {\n                node.removeEventListener(type, callback);\n            });\n        }\n    }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n    return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n    var selectedText;\n\n    if (element.nodeName === 'SELECT') {\n        element.focus();\n\n        selectedText = element.value;\n    }\n    else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n        var isReadOnly = element.hasAttribute('readonly');\n\n        if (!isReadOnly) {\n            element.setAttribute('readonly', '');\n        }\n\n        element.select();\n        element.setSelectionRange(0, element.value.length);\n\n        if (!isReadOnly) {\n            element.removeAttribute('readonly');\n        }\n\n        selectedText = element.value;\n    }\n    else {\n        if (element.hasAttribute('contenteditable')) {\n            element.focus();\n        }\n\n        var selection = window.getSelection();\n        var range = document.createRange();\n\n        range.selectNodeContents(element);\n        selection.removeAllRanges();\n        selection.addRange(range);\n\n        selectedText = selection.toString();\n    }\n\n    return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n  // Keep this empty so it's easier to inherit from\n  // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n  on: function (name, callback, ctx) {\n    var e = this.e || (this.e = {});\n\n    (e[name] || (e[name] = [])).push({\n      fn: callback,\n      ctx: ctx\n    });\n\n    return this;\n  },\n\n  once: function (name, callback, ctx) {\n    var self = this;\n    function listener () {\n      self.off(name, listener);\n      callback.apply(ctx, arguments);\n    };\n\n    listener._ = callback\n    return this.on(name, listener, ctx);\n  },\n\n  emit: function (name) {\n    var data = [].slice.call(arguments, 1);\n    var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n    var i = 0;\n    var len = evtArr.length;\n\n    for (i; i < len; i++) {\n      evtArr[i].fn.apply(evtArr[i].ctx, data);\n    }\n\n    return this;\n  },\n\n  off: function (name, callback) {\n    var e = this.e || (this.e = {});\n    var evts = e[name];\n    var liveEvents = [];\n\n    if (evts && callback) {\n      for (var i = 0, len = evts.length; i < len; i++) {\n        if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n          liveEvents.push(evts[i]);\n      }\n    }\n\n    // Remove event from queue to prevent memory leak\n    // Suggested by https://github.com/lazd\n    // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n    (liveEvents.length)\n      ? e[name] = liveEvents\n      : delete e[name];\n\n    return this;\n  }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});","import jQuery from 'jquery';\nimport ClipboardJS from 'clipboard';\nimport expose from 'lib/expose';\n\nexpose({\n  jQuery,\n  $: jQuery,\n  ClipboardJS\n});\n\nexport default jQuery;","export default function track(eventName, payload) {\n  const trackEvent = new CustomEvent('trailhead_track', {\n    bubbles: true,\n    composed: true,\n    detail: {\n      eventName,\n      payload,\n    },\n  });\n  document.dispatchEvent(trackEvent);\n}\n","document.addEventListener('DOMContentLoaded', () => {\n  const footer = document.querySelector('th-footer');\n  if (!footer) return;\n\n  footer.addEventListener('locale_change', (e) => {\n    document.location.href = `/locales/set?to_locale=${e.detail.value}`;\n  });\n});\n","export function isFalsy(value) {\n  return ['false', '0', ''].indexOf(\n    String(value || '').trim().toLowerCase()\n  ) > -1;\n}\n\nexport function isTruthy(value) {\n  return !isFalsy(value);\n}\n","// Requires all files in this directory\nimport {isFalsy, isTruthy} from 'lib/is';\nconst req = require.context('./', true, /\\.js$/);\nreq.keys().forEach(req);\n\n// Bind Plugins\n$(() => {\n  // Adds 'slds-hide' if apex__dfc_user_info is FALSEY, but remove if when TRUTHY\n  // <button data-cookie-show=\"apex__dfc_user_info\">\n  $('[data-cookie-show]').toggleByCookie({attr: 'data-cookie-show', condition: isFalsy});\n\n  // Adds 'slds-hide' if apex__dfc_user_info is TRUTHY, but remove if when FALSEY\n  // <button data-cookie-hide=\"apex__dfc_user_info\">\n  $('[data-cookie-hide]').toggleByCookie({attr: 'data-cookie-hide', condition: isTruthy});\n\n  // jQuery AJAX always has CSRF token in header if available\n  const token = $('meta[name=\"csrf-token\"]').attr('content');\n\n  $.ajaxSetup({\n    beforeSend(xhr) {\n      xhr.setRequestHeader('X-CSRF-Token', token);\n    }\n  });\n});\n","// jQuery Dependencies\nimport 'lib/jQuery'; // code.jquery.com/jquery-1.12.4.min.js\nimport 'jquery-ujs'; // ruby on rails scripting adapter: https://github.com/rails/jquery-ujs\nimport 'jquery.cookie'; // cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js\n\nimport expose from 'lib/expose';\nimport kebabCase from 'lodash/kebabCase';\n\n// Load Custom Plugins\nimport 'plugins';\n\n// Exposing dependencies shared with asset pipeline.\nexpose({\n  kebabCase\n});\n","/* jshint node: true */\n\n/**\n * Unobtrusive scripting adapter for jQuery\n * https://github.com/rails/jquery-ujs\n *\n * Requires jQuery 1.8.0 or later.\n *\n * Released under the MIT license\n *\n */\n\n(function() {\n  'use strict';\n\n  var jqueryUjsInit = function($, undefined) {\n\n  // Cut down on the number of issues from people inadvertently including jquery_ujs twice\n  // by detecting and raising an error when it happens.\n  if ( $.rails !== undefined ) {\n    $.error('jquery-ujs has already been loaded!');\n  }\n\n  // Shorthand to make it a little easier to call public rails functions from within rails.js\n  var rails;\n  var $document = $(document);\n\n  $.rails = rails = {\n    // Link elements bound by jquery-ujs\n    linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n\n    // Button elements bound by jquery-ujs\n    buttonClickSelector: 'button[data-remote]:not([form]):not(form button), button[data-confirm]:not([form]):not(form button)',\n\n    // Select elements bound by jquery-ujs\n    inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n\n    // Form elements bound by jquery-ujs\n    formSubmitSelector: 'form:not([data-turbo=true])',\n\n    // Form input elements bound by jquery-ujs\n    formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n\n    // Form input elements disabled during form submission\n    disableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n\n    // Form input elements re-enabled after form submission\n    enableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n\n    // Form required input elements\n    requiredInputSelector: 'input[name][required]:not([disabled]), textarea[name][required]:not([disabled])',\n\n    // Form file input elements\n    fileInputSelector: 'input[name][type=file]:not([disabled])',\n\n    // Link onClick disable selector with possible reenable after remote submission\n    linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n\n    // Button onClick disable selector with possible reenable after remote submission\n    buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]',\n\n    // Up-to-date Cross-Site Request Forgery token\n    csrfToken: function() {\n     return $('meta[name=csrf-token]').attr('content');\n    },\n\n    // URL param that must contain the CSRF token\n    csrfParam: function() {\n     return $('meta[name=csrf-param]').attr('content');\n    },\n\n    // Make sure that every Ajax request sends the CSRF token\n    CSRFProtection: function(xhr) {\n      var token = rails.csrfToken();\n      if (token) xhr.setRequestHeader('X-CSRF-Token', token);\n    },\n\n    // Make sure that all forms have actual up-to-date tokens (cached forms contain old ones)\n    refreshCSRFTokens: function(){\n      $('form input[name=\"' + rails.csrfParam() + '\"]').val(rails.csrfToken());\n    },\n\n    // Triggers an event on an element and returns false if the event result is false\n    fire: function(obj, name, data) {\n      var event = $.Event(name);\n      obj.trigger(event, data);\n      return event.result !== false;\n    },\n\n    // Default confirm dialog, may be overridden with custom confirm dialog in $.rails.confirm\n    confirm: function(message) {\n      return confirm(message);\n    },\n\n    // Default ajax function, may be overridden with custom function in $.rails.ajax\n    ajax: function(options) {\n      return $.ajax(options);\n    },\n\n    // Default way to get an element's href. May be overridden at $.rails.href.\n    href: function(element) {\n      return element[0].href;\n    },\n\n    // Checks \"data-remote\" if true to handle the request through a XHR request.\n    isRemote: function(element) {\n      return element.data('remote') !== undefined && element.data('remote') !== false;\n    },\n\n    // Submits \"remote\" forms and links with ajax\n    handleRemote: function(element) {\n      var method, url, data, withCredentials, dataType, options;\n\n      if (rails.fire(element, 'ajax:before')) {\n        withCredentials = element.data('with-credentials') || null;\n        dataType = element.data('type') || ($.ajaxSettings && $.ajaxSettings.dataType);\n\n        if (element.is('form')) {\n          method = element.data('ujs:submit-button-formmethod') || element.attr('method');\n          url = element.data('ujs:submit-button-formaction') || element.attr('action');\n          data = $(element[0]).serializeArray();\n          // memoized value from clicked submit button\n          var button = element.data('ujs:submit-button');\n          if (button) {\n            data.push(button);\n            element.data('ujs:submit-button', null);\n          }\n          element.data('ujs:submit-button-formmethod', null);\n          element.data('ujs:submit-button-formaction', null);\n        } else if (element.is(rails.inputChangeSelector)) {\n          method = element.data('method');\n          url = element.data('url');\n          data = element.serialize();\n          if (element.data('params')) data = data + '&' + element.data('params');\n        } else if (element.is(rails.buttonClickSelector)) {\n          method = element.data('method') || 'get';\n          url = element.data('url');\n          data = element.serialize();\n          if (element.data('params')) data = data + '&' + element.data('params');\n        } else {\n          method = element.data('method');\n          url = rails.href(element);\n          data = element.data('params') || null;\n        }\n\n        options = {\n          type: method || 'GET', data: data, dataType: dataType,\n          // stopping the \"ajax:beforeSend\" event will cancel the ajax request\n          beforeSend: function(xhr, settings) {\n            if (settings.dataType === undefined) {\n              xhr.setRequestHeader('accept', '*/*;q=0.5, ' + settings.accepts.script);\n            }\n            if (rails.fire(element, 'ajax:beforeSend', [xhr, settings])) {\n              element.trigger('ajax:send', xhr);\n            } else {\n              return false;\n            }\n          },\n          success: function(data, status, xhr) {\n            element.trigger('ajax:success', [data, status, xhr]);\n          },\n          complete: function(xhr, status) {\n            element.trigger('ajax:complete', [xhr, status]);\n          },\n          error: function(xhr, status, error) {\n            element.trigger('ajax:error', [xhr, status, error]);\n          },\n          crossDomain: rails.isCrossDomain(url)\n        };\n\n        // There is no withCredentials for IE6-8 when\n        // \"Enable native XMLHTTP support\" is disabled\n        if (withCredentials) {\n          options.xhrFields = {\n            withCredentials: withCredentials\n          };\n        }\n\n        // Only pass url to `ajax` options if not blank\n        if (url) { options.url = url; }\n\n        return rails.ajax(options);\n      } else {\n        return false;\n      }\n    },\n\n    // Determines if the request is a cross domain request.\n    isCrossDomain: function(url) {\n      var originAnchor = document.createElement('a');\n      originAnchor.href = location.href;\n      var urlAnchor = document.createElement('a');\n\n      try {\n        urlAnchor.href = url;\n        // This is a workaround to a IE bug.\n        urlAnchor.href = urlAnchor.href;\n\n        // If URL protocol is false or is a string containing a single colon\n        // *and* host are false, assume it is not a cross-domain request\n        // (should only be the case for IE7 and IE compatibility mode).\n        // Otherwise, evaluate protocol and host of the URL against the origin\n        // protocol and host.\n        return !(((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host) ||\n          (originAnchor.protocol + '//' + originAnchor.host ===\n            urlAnchor.protocol + '//' + urlAnchor.host));\n      } catch (e) {\n        // If there is an error parsing the URL, assume it is crossDomain.\n        return true;\n      }\n    },\n\n    // Handles \"data-method\" on links such as:\n    // <a href=\"/users/5\" data-method=\"delete\" rel=\"nofollow\" data-confirm=\"Are you sure?\">Delete</a>\n    handleMethod: function(link) {\n      var href = rails.href(link),\n        method = link.data('method'),\n        target = link.attr('target'),\n        csrfToken = rails.csrfToken(),\n        csrfParam = rails.csrfParam(),\n        form = $('<form method=\"post\" action=\"' + href + '\"></form>'),\n        metadataInput = '<input name=\"_method\" value=\"' + method + '\" type=\"hidden\" />';\n\n      if (csrfParam !== undefined && csrfToken !== undefined && !rails.isCrossDomain(href)) {\n        metadataInput += '<input name=\"' + csrfParam + '\" value=\"' + csrfToken + '\" type=\"hidden\" />';\n      }\n\n      if (target) { form.attr('target', target); }\n\n      form.hide().append(metadataInput).appendTo('body');\n      form.submit();\n    },\n\n    // Helper function that returns form elements that match the specified CSS selector\n    // If form is actually a \"form\" element this will return associated elements outside the from that have\n    // the html form attribute set\n    formElements: function(form, selector) {\n      return form.is('form') ? $(form[0].elements).filter(selector) : form.find(selector);\n    },\n\n    /* Disables form elements:\n      - Caches element value in 'ujs:enable-with' data store\n      - Replaces element text with value of 'data-disable-with' attribute\n      - Sets disabled property to true\n    */\n    disableFormElements: function(form) {\n      rails.formElements(form, rails.disableSelector).each(function() {\n        rails.disableFormElement($(this));\n      });\n    },\n\n    disableFormElement: function(element) {\n      var method, replacement;\n\n      method = element.is('button') ? 'html' : 'val';\n      replacement = element.data('disable-with');\n\n      if (replacement !== undefined) {\n        element.data('ujs:enable-with', element[method]());\n        element[method](replacement);\n      }\n\n      element.prop('disabled', true);\n      element.data('ujs:disabled', true);\n    },\n\n    /* Re-enables disabled form elements:\n      - Replaces element text with cached value from 'ujs:enable-with' data store (created in `disableFormElements`)\n      - Sets disabled property to false\n    */\n    enableFormElements: function(form) {\n      rails.formElements(form, rails.enableSelector).each(function() {\n        rails.enableFormElement($(this));\n      });\n    },\n\n    enableFormElement: function(element) {\n      var method = element.is('button') ? 'html' : 'val';\n      if (element.data('ujs:enable-with') !== undefined) {\n        element[method](element.data('ujs:enable-with'));\n        element.removeData('ujs:enable-with'); // clean up cache\n      }\n      element.prop('disabled', false);\n      element.removeData('ujs:disabled');\n    },\n\n   /* For 'data-confirm' attribute:\n      - Fires `confirm` event\n      - Shows the confirmation dialog\n      - Fires the `confirm:complete` event\n\n      Returns `true` if no function stops the chain and user chose yes; `false` otherwise.\n      Attaching a handler to the element's `confirm` event that returns a `falsy` value cancels the confirmation dialog.\n      Attaching a handler to the element's `confirm:complete` event that returns a `falsy` value makes this function\n      return false. The `confirm:complete` event is fired whether or not the user answered true or false to the dialog.\n   */\n    allowAction: function(element) {\n      var message = element.data('confirm'),\n          answer = false, callback;\n      if (!message) { return true; }\n\n      if (rails.fire(element, 'confirm')) {\n        try {\n          answer = rails.confirm(message);\n        } catch (e) {\n          (console.error || console.log).call(console, e.stack || e);\n        }\n        callback = rails.fire(element, 'confirm:complete', [answer]);\n      }\n      return answer && callback;\n    },\n\n    // Helper function which checks for blank inputs in a form that match the specified CSS selector\n    blankInputs: function(form, specifiedSelector, nonBlank) {\n      var foundInputs = $(),\n        input,\n        valueToCheck,\n        radiosForNameWithNoneSelected,\n        radioName,\n        selector = specifiedSelector || 'input,textarea',\n        requiredInputs = form.find(selector),\n        checkedRadioButtonNames = {};\n\n      requiredInputs.each(function() {\n        input = $(this);\n        if (input.is('input[type=radio]')) {\n\n          // Don't count unchecked required radio as blank if other radio with same name is checked,\n          // regardless of whether same-name radio input has required attribute or not. The spec\n          // states https://www.w3.org/TR/html5/forms.html#the-required-attribute\n          radioName = input.attr('name');\n\n          // Skip if we've already seen the radio with this name.\n          if (!checkedRadioButtonNames[radioName]) {\n\n            // If none checked\n            if (form.find('input[type=radio]:checked[name=\"' + radioName + '\"]').length === 0) {\n              radiosForNameWithNoneSelected = form.find(\n                'input[type=radio][name=\"' + radioName + '\"]');\n              foundInputs = foundInputs.add(radiosForNameWithNoneSelected);\n            }\n\n            // We only need to check each name once.\n            checkedRadioButtonNames[radioName] = radioName;\n          }\n        } else {\n          valueToCheck = input.is('input[type=checkbox],input[type=radio]') ? input.is(':checked') : !!input.val();\n          if (valueToCheck === nonBlank) {\n            foundInputs = foundInputs.add(input);\n          }\n        }\n      });\n      return foundInputs.length ? foundInputs : false;\n    },\n\n    // Helper function which checks for non-blank inputs in a form that match the specified CSS selector\n    nonBlankInputs: function(form, specifiedSelector) {\n      return rails.blankInputs(form, specifiedSelector, true); // true specifies nonBlank\n    },\n\n    // Helper function, needed to provide consistent behavior in IE\n    stopEverything: function(e) {\n      $(e.target).trigger('ujs:everythingStopped');\n      e.stopImmediatePropagation();\n      return false;\n    },\n\n    //  Replace element's html with the 'data-disable-with' after storing original html\n    //  and prevent clicking on it\n    disableElement: function(element) {\n      var replacement = element.data('disable-with');\n\n      if (replacement !== undefined) {\n        element.data('ujs:enable-with', element.html()); // store enabled state\n        element.html(replacement);\n      }\n\n      element.on('click.railsDisable', function(e) { // prevent further clicking\n        return rails.stopEverything(e);\n      });\n      element.data('ujs:disabled', true);\n    },\n\n    // Restore element to its original state which was disabled by 'disableElement' above\n    enableElement: function(element) {\n      if (element.data('ujs:enable-with') !== undefined) {\n        element.html(element.data('ujs:enable-with')); // set to old enabled state\n        element.removeData('ujs:enable-with'); // clean up cache\n      }\n      element.off('click.railsDisable'); // enable element\n      element.removeData('ujs:disabled');\n    }\n  };\n\n  if (rails.fire($document, 'rails:attachBindings')) {\n\n    $.ajaxPrefilter(function(options, originalOptions, xhr){ if ( !options.crossDomain ) { rails.CSRFProtection(xhr); }});\n\n    // This event works the same as the load event, except that it fires every\n    // time the page is loaded.\n    //\n    // See https://github.com/rails/jquery-ujs/issues/357\n    // See https://developer.mozilla.org/en-US/docs/Using_Firefox_1.5_caching\n    $(window).on('pageshow.rails', function () {\n      $($.rails.enableSelector).each(function () {\n        var element = $(this);\n\n        if (element.data('ujs:disabled')) {\n          $.rails.enableFormElement(element);\n        }\n      });\n\n      $($.rails.linkDisableSelector).each(function () {\n        var element = $(this);\n\n        if (element.data('ujs:disabled')) {\n          $.rails.enableElement(element);\n        }\n      });\n    });\n\n    $document.on('ajax:complete', rails.linkDisableSelector, function() {\n        rails.enableElement($(this));\n    });\n\n    $document.on('ajax:complete', rails.buttonDisableSelector, function() {\n        rails.enableFormElement($(this));\n    });\n\n    $document.on('click.rails', rails.linkClickSelector, function(e) {\n      var link = $(this), method = link.data('method'), data = link.data('params'), metaClick = e.metaKey || e.ctrlKey;\n      if (!rails.allowAction(link)) return rails.stopEverything(e);\n\n      if (!metaClick && link.is(rails.linkDisableSelector)) rails.disableElement(link);\n\n      if (rails.isRemote(link)) {\n        if (metaClick && (!method || method === 'GET') && !data) { return true; }\n\n        var handleRemote = rails.handleRemote(link);\n        // Response from rails.handleRemote() will either be false or a deferred object promise.\n        if (handleRemote === false) {\n          rails.enableElement(link);\n        } else {\n          handleRemote.fail( function() { rails.enableElement(link); } );\n        }\n        return false;\n\n      } else if (method) {\n        rails.handleMethod(link);\n        return false;\n      }\n    });\n\n    $document.on('click.rails', rails.buttonClickSelector, function(e) {\n      var button = $(this);\n\n      if (!rails.allowAction(button) || !rails.isRemote(button)) return rails.stopEverything(e);\n\n      if (button.is(rails.buttonDisableSelector)) rails.disableFormElement(button);\n\n      var handleRemote = rails.handleRemote(button);\n      // Response from rails.handleRemote() will either be false or a deferred object promise.\n      if (handleRemote === false) {\n        rails.enableFormElement(button);\n      } else {\n        handleRemote.fail( function() { rails.enableFormElement(button); } );\n      }\n      return false;\n    });\n\n    $document.on('change.rails', rails.inputChangeSelector, function(e) {\n      var link = $(this);\n      if (!rails.allowAction(link) || !rails.isRemote(link)) return rails.stopEverything(e);\n\n      rails.handleRemote(link);\n      return false;\n    });\n\n    $document.on('submit.rails', rails.formSubmitSelector, function(e) {\n      var form = $(this),\n        remote = rails.isRemote(form),\n        blankRequiredInputs,\n        nonBlankFileInputs;\n\n      if (!rails.allowAction(form)) return rails.stopEverything(e);\n\n      // Skip other logic when required values are missing or file upload is present\n      if (form.attr('novalidate') === undefined) {\n        if (form.data('ujs:formnovalidate-button') === undefined) {\n          blankRequiredInputs = rails.blankInputs(form, rails.requiredInputSelector, false);\n          if (blankRequiredInputs && rails.fire(form, 'ajax:aborted:required', [blankRequiredInputs])) {\n            return rails.stopEverything(e);\n          }\n        } else {\n          // Clear the formnovalidate in case the next button click is not on a formnovalidate button\n          // Not strictly necessary to do here, since it is also reset on each button click, but just to be certain\n          form.data('ujs:formnovalidate-button', undefined);\n        }\n      }\n\n      if (remote) {\n        nonBlankFileInputs = rails.nonBlankInputs(form, rails.fileInputSelector);\n        if (nonBlankFileInputs) {\n          // Slight timeout so that the submit button gets properly serialized\n          // (make it easy for event handler to serialize form without disabled values)\n          setTimeout(function(){ rails.disableFormElements(form); }, 13);\n          var aborted = rails.fire(form, 'ajax:aborted:file', [nonBlankFileInputs]);\n\n          // Re-enable form elements if event bindings return false (canceling normal form submission)\n          if (!aborted) { setTimeout(function(){ rails.enableFormElements(form); }, 13); }\n\n          return aborted;\n        }\n\n        rails.handleRemote(form);\n        return false;\n\n      } else {\n        // Slight timeout so that the submit button gets properly serialized\n        setTimeout(function(){ rails.disableFormElements(form); }, 13);\n      }\n    });\n\n    $document.on('click.rails', rails.formInputClickSelector, function(event) {\n      var button = $(this);\n\n      if (!rails.allowAction(button)) return rails.stopEverything(event);\n\n      // Register the pressed submit button\n      var name = button.attr('name'),\n        data = name ? {name:name, value:button.val()} : null;\n\n      var form = button.closest('form');\n      if (form.length === 0) {\n        form = $('#' + button.attr('form'));\n      }\n      form.data('ujs:submit-button', data);\n\n      // Save attributes from button\n      form.data('ujs:formnovalidate-button', button.attr('formnovalidate'));\n      form.data('ujs:submit-button-formaction', button.attr('formaction'));\n      form.data('ujs:submit-button-formmethod', button.attr('formmethod'));\n    });\n\n    $document.on('ajax:send.rails', rails.formSubmitSelector, function(event) {\n      if (this === event.target) rails.disableFormElements($(this));\n    });\n\n    $document.on('ajax:complete.rails', rails.formSubmitSelector, function(event) {\n      if (this === event.target) rails.enableFormElements($(this));\n    });\n\n    $(function(){\n      rails.refreshCSRFTokens();\n    });\n  }\n\n  };\n\n  if (window.jQuery) {\n    jqueryUjsInit(jQuery);\n  } else if (typeof exports === 'object' && typeof module === 'object') {\n    module.exports = jqueryUjsInit;\n  }\n})();\n","/*!\n * jQuery Cookie Plugin v1.4.1\n * https://github.com/carhartl/jquery-cookie\n *\n * Copyright 2013 Klaus Hartl\n * Released under the MIT license\n */\n(function (factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD\n\t\tdefine(['jquery'], factory);\n\t} else if (typeof exports === 'object') {\n\t\t// CommonJS\n\t\tfactory(require('jquery'));\n\t} else {\n\t\t// Browser globals\n\t\tfactory(jQuery);\n\t}\n}(function ($) {\n\n\tvar pluses = /\\+/g;\n\n\tfunction encode(s) {\n\t\treturn config.raw ? s : encodeURIComponent(s);\n\t}\n\n\tfunction decode(s) {\n\t\treturn config.raw ? s : decodeURIComponent(s);\n\t}\n\n\tfunction stringifyCookieValue(value) {\n\t\treturn encode(config.json ? JSON.stringify(value) : String(value));\n\t}\n\n\tfunction parseCookieValue(s) {\n\t\tif (s.indexOf('\"') === 0) {\n\t\t\t// This is a quoted cookie as according to RFC2068, unescape...\n\t\t\ts = s.slice(1, -1).replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, '\\\\');\n\t\t}\n\n\t\ttry {\n\t\t\t// Replace server-side written pluses with spaces.\n\t\t\t// If we can't decode the cookie, ignore it, it's unusable.\n\t\t\t// If we can't parse the cookie, ignore it, it's unusable.\n\t\t\ts = decodeURIComponent(s.replace(pluses, ' '));\n\t\t\treturn config.json ? JSON.parse(s) : s;\n\t\t} catch(e) {}\n\t}\n\n\tfunction read(s, converter) {\n\t\tvar value = config.raw ? s : parseCookieValue(s);\n\t\treturn $.isFunction(converter) ? converter(value) : value;\n\t}\n\n\tvar config = $.cookie = function (key, value, options) {\n\n\t\t// Write\n\n\t\tif (value !== undefined && !$.isFunction(value)) {\n\t\t\toptions = $.extend({}, config.defaults, options);\n\n\t\t\tif (typeof options.expires === 'number') {\n\t\t\t\tvar days = options.expires, t = options.expires = new Date();\n\t\t\t\tt.setTime(+t + days * 864e+5);\n\t\t\t}\n\n\t\t\treturn (document.cookie = [\n\t\t\t\tencode(key), '=', stringifyCookieValue(value),\n\t\t\t\toptions.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE\n\t\t\t\toptions.path    ? '; path=' + options.path : '',\n\t\t\t\toptions.domain  ? '; domain=' + options.domain : '',\n\t\t\t\toptions.secure  ? '; secure' : ''\n\t\t\t].join(''));\n\t\t}\n\n\t\t// Read\n\n\t\tvar result = key ? undefined : {};\n\n\t\t// To prevent the for loop in the first place assign an empty array\n\t\t// in case there are no cookies at all. Also prevents odd result when\n\t\t// calling $.cookie().\n\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\n\t\tfor (var i = 0, l = cookies.length; i < l; i++) {\n\t\t\tvar parts = cookies[i].split('=');\n\t\t\tvar name = decode(parts.shift());\n\t\t\tvar cookie = parts.join('=');\n\n\t\t\tif (key && key === name) {\n\t\t\t\t// If second argument (value) is a function it's a converter...\n\t\t\t\tresult = read(cookie, value);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Prevent storing a cookie that we couldn't decode.\n\t\t\tif (!key && (cookie = read(cookie)) !== undefined) {\n\t\t\t\tresult[name] = cookie;\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tconfig.defaults = {};\n\n\t$.removeCookie = function (key, options) {\n\t\tif ($.cookie(key) === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Must not alter options, thus extending a fresh object...\n\t\t$.cookie(key, '', $.extend({}, options, { expires: -1 }));\n\t\treturn !$.cookie(key);\n\t};\n\n}));\n","var map = {\n\t\"./handleLocaleChange.js\": 680,\n\t\"./index.js\": 737,\n\t\"./setCookie.js\": 786,\n\t\"./toggleAttribute.js\": 787,\n\t\"./toggleByCookie.js\": 788,\n\t\"./tracking.js\": 789\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 785;","function setCookie({\n  key,\n  value,\n  event = 'click',\n  options = {path: '/'}\n}) {\n  return this.on(event, (e) => {\n    const v = value || $(e.target).val();\n    $.cookie(key, v, options);\n  });\n}\n\n$.fn.setCookie = setCookie;\n","function toggleAttribute({\n  attr,\n  event = 'click',\n  value = true\n}) {\n  return this.on(event, (e) => {\n    const $target = $(e.target);\n    const currentValue = $target.attr(attr);\n    setTimeout(() => $target.attr(attr, (currentValue === value ? false : value)), 1);\n  });\n}\n\n$.fn.toggleAttribute = toggleAttribute;\n","function toggleByCookie({\n  condition,\n  attr = 'data-cookie-name',\n  toggleClass = 'slds-hide',\n}) {\n  return this.each((i, element) => {\n    const $target = $(element);\n    const value = $.cookie($target.attr(attr));\n\n    $target.toggleClass(toggleClass, condition(value));\n  });\n}\n\n/**\n * This pluggin toggles a class based on a cookie value.\n *\n * options - Object:\n *   attr - String, name of attribute for cookie key (default: 'data-cookie-name').\n *   toggleClass - String, class to add/remove based on condition (default: 'slds-hide').\n *   condition - Function => Boolean, when the cookie value returns true toggleClass\n *               will be added, otherwise it will be removed.\n *\n * Examples\n *  // This bind will toggle 'slds-hide' based on the\n *  // value of it's 'data-cookie-name' attribute,\n *  // adding the class when falsy but removing if truthy\n *  $('[data-cookie-toggle]').toggleByCookie({condition: isFalsy});\n *\n *  // HTML\n *  // Adds 'slds-hide' if apex__dfc_user_info is falsey, but remove if when truthy\n *  // <button data-cookie-toggle data-cookie-name=\"apex__dfc_user_info\">\n */\n$.fn.toggleByCookie = toggleByCookie;\n","// plugins/tracking.js\n// plugins are configured to be loaded in to the client-side pack\n// and assume that jQuery is present on window\nimport track from 'lib/tracking/track';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n  window.Trailhead = window.Trailhead || {};\n  window.Trailhead.ActivityTracking = { track };\n});\n","const g = typeof global !== 'undefined' ? global : window;\n\nexport default function expose(objects) {\n  Object.keys(objects).forEach((key) => {\n    g[key] = objects[key];\n  });\n}\n"],"sourceRoot":""}