{"version":3,"sources":["webpack:///scripts/core--4aa2040261c3b76e1950.js","webpack:///./node_modules/debug/src/browser.js","webpack:///./node_modules/debug/src/debug.js","webpack:///./node_modules/ms/index.js","webpack:///./node_modules/process/browser.js","webpack:///./project/client/src/core/components/a-modal/index--split.js","webpack:///./project/client/src/core/components/alerts/dismiss.js","webpack:///./project/client/src/core/components/alerts/index.js","webpack:///./project/client/src/core/components/app-install-prompt/app-install-prompt.js","webpack:///./project/client/src/core/components/app-install-prompt/index.js","webpack:///./project/client/src/core/components/choose-form/index--split.js","webpack:///./project/client/src/core/components/date-field/index--split.js","webpack:///./project/client/src/core/components/disclaimer/index.js","webpack:///./project/client/src/core/components/epi-blocks/index.js","webpack:///./project/client/src/core/components/epi-blocks/quote-cta/index--split.js","webpack:///./project/client/src/core/components/forms/input-file.js","webpack:///./project/client/src/core/components/index.js","webpack:///./project/client/src/core/components/modal/index.js","webpack:///./project/client/src/core/components/quote-form/index--split.js","webpack:///./project/client/src/core/components/required-field/index--split.js","webpack:///./project/client/src/core/components/required-field/required-field.js","webpack:///./project/client/src/core/components/selector/index--split.js","webpack:///./project/client/src/core/components/site-header-narrow/index.js","webpack:///./project/client/src/core/components/site-header-narrow/site-search-narrow.js","webpack:///./project/client/src/core/components/site-header/index.js","webpack:///./project/client/src/core/components/site-header/site-header-controller.js","webpack:///./project/client/src/core/components/site-nav-narrow/index.js","webpack:///./project/client/src/core/components/site-nav-narrow/site-nav-narrow.js","webpack:///./project/client/src/core/components/wysiwyg/index.js","webpack:///./project/client/src/core/components/wysiwyg/table-cell-icons.js","webpack:///./project/client/src/core/index.js","webpack:///./project/client/src/core/plugins/index.js","webpack:///./project/client/src/core/plugins/jquery__add-element-classes/index.js","webpack:///./project/client/src/core/plugins/jquery__collapsible/collapsible.js","webpack:///./project/client/src/core/plugins/jquery__collapsible/plugin--bundled.js","webpack:///./project/client/src/core/plugins/jquery__emit-on-dirty/index.js","webpack:///./project/client/src/core/plugins/jquery__focus-within/index.js","webpack:///./project/client/src/core/plugins/jquery__focus/index.js","webpack:///./project/client/src/core/plugins/jquery__form-loading/form-loading.js","webpack:///./project/client/src/core/plugins/jquery__form-loading/plugin--bundled.js","webpack:///./project/client/src/core/plugins/jquery__mega-link/mega-link.js","webpack:///./project/client/src/core/plugins/jquery__mega-link/plugin--bundled.js","webpack:///./project/client/src/core/plugins/jquery__radio-selection/plugin--bundled.js","webpack:///./project/client/src/core/plugins/jquery__radio-selection/radio-selection.js","webpack:///./project/client/src/core/plugins/jquery__remove-element-classes/index.js","webpack:///./project/client/src/core/plugins/jquery__sync-theme/plugin--bundled.js","webpack:///./project/client/src/core/plugins/jquery__sync-theme/sync-theme.js","webpack:///./project/client/src/core/plugins/jquery__toggle-element-classes/index.js","webpack:///./project/client/src/core/plugins/jquery__trigger-event/index.js","webpack:///./project/client/src/core/plugins/lib/fn.js","webpack:///./project/client/src/core/plugins/lib/index.js","webpack:///./project/client/src/core/plugins/lib/objects.js","webpack:///./project/client/src/core/plugins/lib/selectors.js","webpack:///./project/client/src/core/plugins/lib/strings.js","webpack:///external \"jQuery\""],"names":["webpackJsonp","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js","module","exports","__webpack_require__","process","useColors","window","type","navigator","userAgent","toLowerCase","match","document","documentElement","style","WebkitAppearance","console","firebug","exception","table","parseInt","RegExp","$1","formatArgs","args","this","namespace","humanize","diff","c","color","splice","index","lastC","replace","log","_typeof","Function","prototype","apply","call","arguments","save","namespaces","storage","removeItem","debug","e","load","r","env","DEBUG","Symbol","iterator","obj","constructor","chrome","local","localStorage","colors","formatters","j","v","JSON","stringify","err","message","enable","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/debug.js","selectColor","i","hash","charCodeAt","Math","abs","length","createDebug","enabled","self","curr","Date","ms","prevTime","prev","Array","coerce","unshift","format","formatter","val","bind","destroy","init","instances","push","indexOf","names","skips","split","len","substr","instance","disable","name","test","Error","stack","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/ms/index.js","parse","str","String","exec","n","parseFloat","y","d","h","m","s","fmtShort","round","fmtLong","plural","floor","ceil","options","isNaN","long","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/process/browser.js","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","timeout","run","Item","array","noop","nextTick","title","browser","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/a-modal/index--split.js","$","then","default","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/alerts/dismiss.js","_interopRequireDefault","__esModule","_jquery","_jquery2","_debug","_debug2","ALERT_SELECTOR","ALERT_BUTTON_SELECTOR","hidePanel","alertToHide","hide","removeClass","dismissAlert","element","alertApi","alertId","get","id","alertElements","each","dataset","alertButton","find","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/alerts/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/app-install-prompt/app-install-prompt.js","_classCallCheck","Constructor","TypeError","Object","defineProperty","value","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","key","protoProps","staticProps","AppInstallPrompt","installButton","dismissButton","deferredPrompt","watch","addEventListener","onPromptAvailable","requestPrompt","dismissInvite","event","preventDefault","displayInvite","hidden","callCookieApi","_this","prompt","userChoice","choice","cookieId","encodeURIComponent","cookieRequest","Request","cookieApi","fetch","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/app-install-prompt/index.js","_appInstallPrompt","_appInstallPrompt2","querySelector","appInstallPromptInstallButtonSelector","appInstallPromptDismissButtonSelector","appInstallPromptCookieApi","appInstallPromptCookieId","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/choose-form/index--split.js","_lib","_lib2","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/date-field/index--split.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/disclaimer/index.js","DISCLAIMER_SELECTOR","waitForElm","selector","Promise","resolve","observer","MutationObserver","mutations","disconnect","observe","body","childList","subtree","goToTarget","collapsable","attr","location","href","disclaimerElements","closest","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/epi-blocks/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/epi-blocks/quote-cta/index--split.js","ready","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/forms/input-file.js","undefined","$input","$label","next","labelVal","html","fileName","files","getAttribute","pop","addClass","jQuery","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/modal/index.js","PLUGIN_NAME","ELEMENT_SELECTOR","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/quote-form/index--split.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/required-field/index--split.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/required-field/required-field.js","_toConsumableArray","arr","isArray","arr2","from","getJSONValue","stringValue","error","validators","at_least_one_checked","inputs","filter","input","checked","RequiredField","isFieldset","nodeName","inputSet","querySelectorAll","errorElementSelectorScope","errorSelector","errorElement","showErrors","attributeObserver","onAttributeChange","updateValue","attributes","validity","valid","validator","rule","setCustomValidity","isValid","updateFieldsetValidity","updateErrorMessage","mutationList","mutation","attributeName","componentErrorAttribute","forEach","onShowErrorsChange","DEFAULTS","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/selector/index--split.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header-narrow/index.js","_siteSearchNarrow","_siteSearchNarrow2","siteSearchElements","siteSearchElementsArray","openButton","siteSearchOpenButtonSelector","field","siteSearchFieldSelector","overlay","siteSearchOverlaySelector","siteHeader","siteSearchHeaderSelector","SiteSearchNarrow","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header-narrow/site-search-narrow.js","invalidClass","boundOnFocus","onFocus","toggleSearch","closeSiteSearch","removeAttribute","setAttribute","focus","detectFocusLoss","removeFocusLossDetection","openSiteSearch","trim","removeEventListener","contains","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/site-header-controller.js","HeaderController","$element","collapsibles","collapsibleSelector","overlaySelector","$target","handleOpening","handleClosing","closeAllCollapsibles","item","collapseStateAttr","hideOverlay","opener","closeOtherCollapsibles","displayOverlay","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-nav-narrow/index.js","_siteNavNarrow","_siteNavNarrow2","siteNavElements","siteNavElementsArray","siteNavNarrowOpenButtonSelector","closeButton","siteNavNarrowCloseButtonSelector","siteNavNarrowOverlaySelector","siteNavNarrowHeaderSelector","siteHeaderNarrow","siteNavNarrowHeaderNarrowSelector","siteSearch","siteNavNarrowSearchSelector","openClass","siteNavNarrowOpenClass","SiteNavNarrow","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-nav-narrow/site-nav-narrow.js","boundDismissalListener","dismissalListener","mediaQuery","matchMedia","makeNavigationUnreachable","openSiteNavigation","closeSiteNavigation","onMediaQueryChange","makeNavigationReachable","classList","add","makePageContentUnreachable","restrictFocus","addDismissalListener","makePageContentReachable","removeFocusRestriction","remove","removeDismissalListener","interactiveElements","pageElements","pageElementsArray","slice","stopPropagation","focusNav","focusableElement","isTargetInModal","wasEscapePressed","keyCode","hasKeyCode","matches","transitionToWide","transitionToNarrow","activeElement","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/wysiwyg/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/wysiwyg/table-cell-icons.js","getIconClassString","keyword","keywordFormatter","ICON_BRACKET_OPEN","ICON_BRACKET_CLOSE","keywordUnformatter","substring","iconLookup","KEYWORD_ICON","TABLE_DATA_ATTRIBUTE","TABLE_IGNORE","ICON_KEYWORDS","yes","restricted","no","keywordReplacer","iconName","$labelTemplate","clone","text","$iconTemplate","append","prop","$tables","$this","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","done","original","updated","return","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__add-element-classes/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__collapsible/collapsible.js","Collapsible","scopes","contentSelectorIsId","contentSelector","contentSelectorScope","button","buttonSelector","content","collapseWith","collapsedClass","toggleMethod","toggleWithClass","toggleWithHidden","bindDocumentEvents","closeWithDocumentClick","bindDocumentClick","unbindDocumentEvents","unbindDocumentClick","doCollapse","open","isCollapsed","toggle","selfClosing","close","collapsibleOpen","openedEvent","CustomEvent","onUncollapse","bubbles","cancelable","dispatchEvent","closedEvent","onCollapse","onDocumentClick","clickTarget","startsWith","onOpenChanged","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__collapsible/plugin--bundled.js","_collapsible","_collapsible2","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__emit-on-dirty/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus-within/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__form-loading/form-loading.js","FormLoading","applyLoadingState","dataKey","dataValue","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__form-loading/plugin--bundled.js","_formLoading","_formLoading2","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__mega-link/mega-link.js","MegaLink","link","linkSelector","handleUnmodifiedClick","handleKeyDown","ctrlKey","altKey","metaKey","megaLinkOpen","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__mega-link/plugin--bundled.js","_megaLink","_megaLink2","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__radio-selection/plugin--bundled.js","_radioSelection","_radioSelection2","RadioSelection","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__radio-selection/radio-selection.js","form","formSelector","elements","checkedInput","label","warn","textContent","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__remove-element-classes/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__sync-theme/plugin--bundled.js","_syncTheme","_syncTheme2","SyncTheme","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__sync-theme/sync-theme.js","prefix","string","sourceElement","sourceSelector","targetElement","targetSelector","hasPrefix","classPrefix","applyThemeClass","handleSyncEvent","sourceDataProp","themeClass","getThemeClass","currentClasses","includes","removeThemeClass","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__toggle-element-classes/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__trigger-event/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/fn.js","debounce","func","wait","immediate","context","later","callNow","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js","_interopRequireWildcard","newObj","hasOwnProperty","plugin","pluginName","klass","shortHand","formattedPluginName","_strings","toCamelCase","dataName","fn","$bus","subscribe","publish","data","trigger","$util","objects","strings","selectors","inViewport","elm","rect","getBoundingClientRect","viewHeight","max","clientHeight","innerHeight","bottom","top","option","overrides","elementOptions","keys","reduce","result","path","extend","$utils","jquery","defaults","_fn","_objects","_selectors","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/objects.js","elementAttrtibutesToObject","filterFn","transformFn","output","attrs","ZERO","attribute","Boolean","objectPath","delimiter","final","part","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/selectors.js","selectorPattern","_len","directives","_key","join","selectTarget","isClosestAncestoral","SELECTOR_PATTERNS","parent","isAllAncestoral","parents","isRetargeted","isAllDescendants","children","isGenerational","here","isSiblings","siblings","isSelfish","$newElement","newSelector","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/strings.js","preserveCamelCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","toUpperCase","map","x","p1","tmpl","$tmpl","templateString","mustache","template","invert","ctx","shift","render","inverted","childCode","depth","assign","","code","z","raw","comment","isRaw","partial","Option","innerHTML","booleanify","lower","/tool/project/client/src/core/vendor/index.js","external \"jQuery\"","multi /tool/project/client/src/core/index.js"],"mappings":"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","file":"scripts/core--4aa2040261c3b76e1950.js","sourcesContent":["webpackJsonp([\"core\"],{\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/debug.js\");\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome && 'undefined' != typeof chrome.storage ? chrome.storage.local : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = ['#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // Internet Explorer and Edge do not support colors.\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 ||\n // double check webkit in userAgent just in case we are in a worker\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function (v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '') + this.namespace + (useColors ? ' %c' : ' ') + args[0] + (useColors ? '%c ' : ' ') + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit');\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function (match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === (typeof console === 'undefined' ? 'undefined' : _typeof(console)) && console.log && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch (e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch (e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/process/browser.js\")))\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/debug.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/ms/index.js\");\n\n/**\n * Active `debug` instances.\n */\nexports.instances = [];\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0,\n i;\n\n for (i in namespace) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n var prevTime;\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n exports.instances.push(debug);\n\n return debug;\n}\n\nfunction destroy() {\n var index = exports.instances.indexOf(this);\n if (index !== -1) {\n exports.instances.splice(index, 1);\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n\n for (i = 0; i < exports.instances.length; i++) {\n var instance = exports.instances[i];\n instance.enabled = exports.enabled(instance.namespace);\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/ms/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val === 'undefined' ? 'undefined' : _typeof(val);\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(val));\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') || plural(ms, h, 'hour') || plural(ms, m, 'minute') || plural(ms, s, 'second') || ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/process/browser.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function () {\n return 0;\n};\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/a-modal/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar ELEMENT_SELECTOR = '[data-a-modal]';\n\n$(function () {\n\tif ($(ELEMENT_SELECTOR).length) {\n\n\t\t__webpack_require__.e/* import() */(\"a-modal-bundle\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/a-modal/a-modal-bundle.js\")).then(function (module) {\n\t\t\tmodule.default();\n\t\t});\n\t}\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/alerts/dismiss.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\r\n * Dismiss\r\n * Alerts\r\n * @author Oliver Boermans\r\n */\n\nvar log = (0, _debug2.default)(\"alerts\");\n\n//\n// Config\n// ===========\nvar ALERT_SELECTOR = \"[data-alert]\";\nvar ALERT_BUTTON_SELECTOR = 'button';\n\nvar hidePanel = function hidePanel(alertToHide) {\n\t(0, _jquery2.default)(alertToHide).hide();\n\t(0, _jquery2.default)('body').removeClass('has-alert');\n};\n\nvar dismissAlert = function dismissAlert(instance) {\n\tvar element = instance.element,\n\t alertApi = instance.alertApi,\n\t alertId = instance.alertId;\n\n\t_jquery2.default.get(alertApi, {\n\t\tid: alertId\n\t});\n\thidePanel(element);\n};\n\nfunction init() {\n\tvar alertElements = (0, _jquery2.default)(ALERT_SELECTOR);\n\tlog(alertElements);\n\talertElements.each(function (index, element) {\n\t\tvar alertApi = element.dataset.alertApi;\n\t\tvar alertId = element.id;\n\t\tvar alertButton = (0, _jquery2.default)(element).find(ALERT_BUTTON_SELECTOR);\n\n\t\tif (alertButton.length) {\n\t\t\talertButton.on('click', dismissAlert.bind(null, { element: element, alertApi: alertApi, alertId: alertId }));\n\t\t} else {\n\t\t\tlog(\"No site alert button found.\");\n\t\t}\n\t});\n};\n\ninit();\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/alerts/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/alerts/dismiss.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/app-install-prompt/app-install-prompt.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar AppInstallPrompt = function () {\n\tfunction AppInstallPrompt(element, options) {\n\t\t_classCallCheck(this, AppInstallPrompt);\n\n\t\tthis.element = element;\n\t\tthis.options = options;\n\n\t\t// get references to required elements\n\t\tthis.installButton = this.options.installButton;\n\t\tthis.dismissButton = this.options.dismissButton;\n\n\t\tthis.deferredPrompt = null;\n\n\t\tthis.watch();\n\t}\n\n\t_createClass(AppInstallPrompt, [{\n\t\tkey: \"watch\",\n\t\tvalue: function watch() {\n\t\t\twindow.addEventListener(\"beforeinstallprompt\", this.onPromptAvailable.bind(this));\n\t\t\tthis.installButton.addEventListener(\"click\", this.requestPrompt.bind(this));\n\t\t\tthis.dismissButton.addEventListener(\"click\", this.dismissInvite.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"onPromptAvailable\",\n\t\tvalue: function onPromptAvailable(event) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.deferredPrompt = event;\n\t\t\tthis.displayInvite();\n\t\t}\n\t}, {\n\t\tkey: \"displayInvite\",\n\t\tvalue: function displayInvite() {\n\t\t\tthis.element.hidden = false;\n\t\t}\n\t}, {\n\t\tkey: \"dismissInvite\",\n\t\tvalue: function dismissInvite() {\n\t\t\tthis.element.hidden = true;\n\t\t\tthis.callCookieApi();\n\t\t}\n\t}, {\n\t\tkey: \"requestPrompt\",\n\t\tvalue: function requestPrompt() {\n\t\t\tvar _this = this;\n\n\t\t\tthis.deferredPrompt.prompt();\n\t\t\tthis.deferredPrompt.userChoice.then(function (choice) {\n\t\t\t\t_this.deferredPrompt = null;\n\t\t\t\t_this.dismissInvite();\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"callCookieApi\",\n\t\tvalue: function callCookieApi() {\n\t\t\tvar cookieId = encodeURIComponent(this.options.cookieId);\n\t\t\tvar cookieRequest = new Request(this.options.cookieApi + \"?id=\" + cookieId);\n\t\t\tfetch(cookieRequest);\n\t\t}\n\t}]);\n\n\treturn AppInstallPrompt;\n}();\n\nexports.default = AppInstallPrompt;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/app-install-prompt/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _appInstallPrompt = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/app-install-prompt/app-install-prompt.js\");\n\nvar _appInstallPrompt2 = _interopRequireDefault(_appInstallPrompt);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar element = document.querySelector(\"[data-app-install-prompt]\");\n\nif (element) {\n\tvar options = {\n\t\tinstallButton: element.querySelector(element.dataset.appInstallPromptInstallButtonSelector),\n\t\tdismissButton: element.querySelector(element.dataset.appInstallPromptDismissButtonSelector),\n\t\tcookieApi: element.dataset.appInstallPromptCookieApi,\n\t\tcookieId: element.dataset.appInstallPromptCookieId\n\t};\n\tvar instance = new _appInstallPrompt2.default(element, options);\n\telement.instance = instance;\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/choose-form/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-choose-form]';\nvar PLUGIN_NAME = 'chooseForm';\n\n(0, _jquery2.default)(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n\t\tvar element = this;\n\t\t__webpack_require__.e/* import() */(\"choose-form\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/choose-form/choose-form.js\")).then(function (module) {\n\t\t\t(0, _lib2.default)(PLUGIN_NAME, module.default);\n\t\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t\t});\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/date-field/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = \"[data-date-field]\";\nvar PLUGIN_NAME = \"dateField\";\n\n(0, _jquery2.default)(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n\t\tvar element = this;\n\t\t__webpack_require__.e/* import() */(\"date-field\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/date-field/date-field.js\")).then(function (module) {\n\t\t\t(0, _lib2.default)(PLUGIN_NAME, module.default);\n\t\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t\t});\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/disclaimer/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\r\n * Will search target for a parent collapsable. If found, \r\n * will trigger collapsable to be open by updating the \r\n * \"data-collapsible-open\" attribute to true, and \r\n * listening for the target to appear before jumping to \r\n * target.\r\n * \r\n * @author Mark Nelson\r\n */\n\nvar log = (0, _debug2.default)(\"disclaimer\");\n\n//\n// Config\n// ===========\nvar DISCLAIMER_SELECTOR = \"[data-disclaimer]\";\n\nvar waitForElm = function waitForElm(selector) {\n return new Promise(function (resolve) {\n if (document.querySelector(selector)) {\n return resolve(document.querySelector(selector));\n }\n\n var observer = new MutationObserver(function (mutations) {\n if (document.querySelector(selector)) {\n resolve(document.querySelector(selector));\n observer.disconnect();\n }\n });\n\n observer.observe(document.body, {\n childList: true,\n subtree: true\n });\n });\n};\n\nvar goToTarget = function goToTarget(event, collapsable, target) {\n console.log(event, collapsable, target);\n event.preventDefault();\n (0, _jquery2.default)(collapsable).attr(\"data-collapsible-open\", \"true\");\n\n waitForElm(target).then(function () {\n window.location.href = target;\n });\n};\n\nfunction init() {\n var disclaimerElements = (0, _jquery2.default)(DISCLAIMER_SELECTOR);\n log(disclaimerElements);\n disclaimerElements.each(function (index, element) {\n\n var target = (0, _jquery2.default)(element).attr(\"href\");\n var collapsable = (0, _jquery2.default)(target).closest(\"[data-collapsible]\");\n\n if (collapsable) {\n (0, _jquery2.default)(element).on('click', function (event) {\n goToTarget(event, collapsable, target);\n });\n } else {\n window.location.href = target;\n };\n });\n};\n\ninit();\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/epi-blocks/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/epi-blocks/quote-cta/index--split.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/epi-blocks/quote-cta/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-quote-cta-controller]';\nvar PLUGIN_NAME = 'quoteCtaController';\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n\t\tvar element = this;\n\t\t__webpack_require__.e/* import() */(\"quote-cta\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/epi-blocks/quote-cta/quote-cta.js\")).then(function (module) {\n\t\t\t(0, _lib2.default)(PLUGIN_NAME, module.default);\n\t\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t\t});\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/forms/input-file.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\r\n\tBy Osvaldas Valutis, www.osvaldas.info\r\n\tAvailable for use under the MIT License\r\n*/\n\n// 'use strict';\n\n// ;( function ( document, window, index )\n// {\n// \tvar inputs = document.querySelectorAll( '.field-input-file' );\n// \tArray.prototype.forEach.call( inputs, function( input )\n// \t{\n// \t\tvar label\t = input.nextElementSibling,\n// \t\t\tlabelVal = label.innerHTML;\n\n// \t\tinput.addEventListener( 'change', function( e )\n// \t\t{\n// \t\t\tvar fileName = '';\n// \t\t\tif( this.files && this.files.length > 1 )\n// \t\t\t\tfileName = ( this.getAttribute( 'data-multiple-caption' ) || '' ).replace( '{count}', this.files.length );\n// \t\t\telse\n// \t\t\t\tfileName = e.target.value.split( '\\\\' ).pop();\n\n// \t\t\tif( fileName )\n// \t\t\t\tlabel.querySelector( 'span' ).innerHTML = fileName;\n// \t\t\telse\n// \t\t\t\tlabel.innerHTML = labelVal;\n// \t\t});\n\n// \t\t// Firefox bug fix\n// \t\tinput.addEventListener( 'focus', function(){ input.classList.add( 'has-focus' ); });\n// \t\tinput.addEventListener( 'blur', function(){ input.classList.remove( 'has-focus' ); });\n// \t});\n// }( document, window, 0 ));\n\n\n\n\n;(function ($, window, document, undefined) {\n\t$('.field-input-file').each(function () {\n\t\tvar $input = $(this),\n\t\t $label = $input.next('label'),\n\t\t labelVal = $label.html();\n\n\t\t$input.on('change', function (e) {\n\t\t\tvar fileName = '';\n\n\t\t\tif (this.files && this.files.length > 1) fileName = (this.getAttribute('data-multiple-caption') || '').replace('{count}', this.files.length);else if (e.target.value) fileName = e.target.value.split('\\\\').pop();\n\n\t\t\tif (fileName) $label.find('span').html(fileName);else $label.html(labelVal);\n\t\t});\n\n\t\t// Firefox bug fix\n\t\t$input.on('focus', function () {\n\t\t\t$input.addClass('has-focus');\n\t\t}).on('blur', function () {\n\t\t\t$input.removeClass('has-focus');\n\t\t});\n\t});\n})(jQuery, window, document);\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/forms/input-file.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/quote-form/index--split.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/choose-form/index--split.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/selector/index--split.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/required-field/index--split.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/date-field/index--split.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header-narrow/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-nav-narrow/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/modal/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/epi-blocks/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/alerts/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/app-install-prompt/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/wysiwyg/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/a-modal/index--split.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/disclaimer/index.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/modal/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Modaal is not a spelling error!\n// It is the name of the 3rd party modal component we are using\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-modal]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'modal';\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n\t\tvar element = this;\n\t\t__webpack_require__.e/* import() */(\"component--modal\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/modal/modal.js\")).then(function () {\n\t\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t\t});\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/quote-form/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-quote-form]';\nvar PLUGIN_NAME = 'quoteForm';\n\n(0, _jquery2.default)(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n\t\tvar element = this;\n\t\t__webpack_require__.e/* import() */(\"quote-form\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/quote-form/quote-form.js\")).then(function (module) {\n\t\t\t(0, _lib2.default)(PLUGIN_NAME, module.default);\n\t\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t\t});\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/required-field/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/required-field/required-field.js\");\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = \"[data-required-field]\";\nvar PLUGIN_NAME = \"requiredField\";\n\n(0, _jquery2.default)(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n\t\tvar element = this;\n\t\tnew Promise(function(resolve) { resolve(); }).then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/required-field/required-field.js\")).then(function (module) {\n\t\t\t(0, _lib2.default)(PLUGIN_NAME, module.default);\n\t\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t\t});\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/required-field/required-field.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar log = (0, _debug2.default)(\"required-field\");\n\nfunction getJSONValue(stringValue) {\n\ttry {\n\t\treturn JSON.parse(stringValue);\n\t} catch (error) {\n\t\treturn stringValue;\n\t}\n}\n\nvar validators = {\n\t'at_least_one_checked': function at_least_one_checked(inputs) {\n\t\treturn inputs.filter(function (input) {\n\t\t\treturn input.checked;\n\t\t}).length > 0 ? '' : 'check at least one';\n\t}\n};\n\nvar RequiredField = function () {\n\tfunction RequiredField(element, options) {\n\t\t_classCallCheck(this, RequiredField);\n\n\t\tlog(\"element\", element);\n\t\tlog(\"options\", options);\n\n\t\tthis.options = options;\n\t\tthis.element = element;\n\n\t\tthis.isFieldset = this.element.nodeName === 'FIELDSET';\n\n\t\tthis.inputSet = [].concat(_toConsumableArray(this.element.querySelectorAll(\"[name=\\\"\" + this.options.inputSet + \"\\\"]\")));\n\n\t\tthis.input = this.element.querySelector(\"[name=\\\"\" + this.options.name + \"\\\"]\");\n\n\t\tthis.errorElementSelectorScope = this.options.errorSelector[0] === \"#\" ? document : this.element;\n\n\t\tthis.errorElement = this.errorElementSelectorScope.querySelector(this.options.errorSelector);\n\n\t\tthis.showErrors = getJSONValue(this.element.dataset.showErrors);\n\n\t\tthis.attributeObserver = new MutationObserver(this.onAttributeChange.bind(this));\n\n\t\tif (!this.input && !this.isFieldset) {\n\t\t\tlog('Provide either a fieldset with inputs or an input. Aborting');\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.init();\n\t\tthis.watch();\n\n\t\tlog(\"ready\", this, this.element);\n\t}\n\n\t_createClass(RequiredField, [{\n\t\tkey: \"init\",\n\t\tvalue: function init() {\n\t\t\tthis.updateValue();\n\t\t}\n\t}, {\n\t\tkey: \"watch\",\n\t\tvalue: function watch() {\n\t\t\tlog(\"watching\");\n\t\t\tthis.element.addEventListener(\"change\", this.updateValue.bind(this));\n\t\t\tthis.attributeObserver.observe(this.element, { attributes: true });\n\t\t}\n\t}, {\n\t\tkey: \"isValid\",\n\t\tvalue: function isValid() {\n\t\t\t// Presuming this.element is a fieldset\n\t\t\tvar elementToValidate = this.input || this.element;\n\t\t\treturn elementToValidate.validity.valid;\n\t\t}\n\t}, {\n\t\tkey: \"updateFieldsetValidity\",\n\t\tvalue: function updateFieldsetValidity() {\n\t\t\tvar validator = validators[this.options.rule];\n\t\t\tif (!this.isFieldset || !validator) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.element.setCustomValidity(validator(this.inputSet));\n\t\t}\n\t}, {\n\t\tkey: \"updateErrorMessage\",\n\t\tvalue: function updateErrorMessage() {\n\t\t\tthis.errorElement.hidden = this.isValid();\n\t\t}\n\t}, {\n\t\tkey: \"updateValue\",\n\t\tvalue: function updateValue() {\n\t\t\tthis.updateFieldsetValidity();\n\n\t\t\tif (this.showErrors) {\n\t\t\t\tthis.updateErrorMessage();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"onAttributeChange\",\n\t\tvalue: function onAttributeChange(mutationList, observer) {\n\t\t\tmutationList.filter(function (mutation) {\n\t\t\t\treturn mutation.type === \"attributes\" && mutation.attributeName === this.options.componentErrorAttribute;\n\t\t\t}.bind(this)).forEach(this.onShowErrorsChange.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"onShowErrorsChange\",\n\t\tvalue: function onShowErrorsChange(mutation) {\n\t\t\tthis.showErrors = getJSONValue(this.element.dataset.showErrors);\n\t\t\tthis.updateErrorMessage();\n\t\t}\n\t}]);\n\n\treturn RequiredField;\n}();\n\nRequiredField.DEFAULTS = {\n\tcomponentErrorAttribute: \"data-show-errors\"\n};\n\nexports.default = RequiredField;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/selector/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n$(function () {\n\t$(\"[data-selector]\").each(function () {\n\t\tvar element = this;\n\t\t__webpack_require__.e/* import() */(\"selector\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/selector/index.js\"));\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header-narrow/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _siteSearchNarrow = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header-narrow/site-search-narrow.js\");\n\nvar _siteSearchNarrow2 = _interopRequireDefault(_siteSearchNarrow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar siteSearchElements = document.querySelectorAll(\"[data-site-search]\");\nvar siteSearchElementsArray = [].concat(_toConsumableArray(siteSearchElements));\n\nsiteSearchElementsArray.forEach(function (element) {\n\tvar options = {\n\t\topenButton: document.querySelector(element.dataset.siteSearchOpenButtonSelector),\n\t\tfield: element.querySelector(element.dataset.siteSearchFieldSelector),\n\t\toverlay: document.querySelector(element.dataset.siteSearchOverlaySelector),\n\t\tsiteHeader: document.querySelector(element.dataset.siteSearchHeaderSelector)\n\t};\n\n\tvar instance = new _siteSearchNarrow2.default(element, options);\n\telement.instance = instance;\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header-narrow/site-search-narrow.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar SiteSearchNarrow = function () {\n\tfunction SiteSearchNarrow(element, options) {\n\t\t_classCallCheck(this, SiteSearchNarrow);\n\n\t\tthis.element = element;\n\t\tthis.options = options;\n\n\t\t// get references to required elements\n\t\tthis.openButton = this.options.openButton;\n\t\tthis.field = this.options.field;\n\t\tthis.overlay = this.options.overlay;\n\t\tthis.siteHeader = this.options.siteHeader;\n\t\tthis.invalidClass = \"invalid\";\n\n\t\tthis.boundOnFocus = this.onFocus.bind(this);\n\n\t\tthis.init();\n\t\tthis.watch();\n\t}\n\n\t_createClass(SiteSearchNarrow, [{\n\t\tkey: \"init\",\n\t\tvalue: function init() {}\n\t}, {\n\t\tkey: \"watch\",\n\t\tvalue: function watch() {\n\t\t\tthis.openButton.addEventListener(\"click\", this.toggleSearch.bind(this));\n\t\t\tthis.overlay.addEventListener(\"click\", this.closeSiteSearch.bind(this));\n\n\t\t\t// Validation actually doesn't happen on current live site even though it was in the previous JS.\n\t\t\t// this.element.addEventListener('submit', this.onSearchSubmit.bind(this));\n\t\t\t// this.field.addEventListener('keydown', this.resetValidation.bind(this));\n\t\t\t// this.field.addEventListener('change', this.resetValidation.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"openSiteSearch\",\n\t\tvalue: function openSiteSearch() {\n\t\t\tthis.element.removeAttribute(\"hidden\");\n\t\t\tthis.overlay.removeAttribute(\"hidden\");\n\t\t\tthis.openButton.setAttribute(\"aria-expanded\", \"true\");\n\t\t\tthis.field.focus();\n\n\t\t\tthis.detectFocusLoss();\n\t\t}\n\t}, {\n\t\tkey: \"closeSiteSearch\",\n\t\tvalue: function closeSiteSearch() {\n\t\t\tthis.element.setAttribute(\"hidden\", \"\");\n\t\t\tthis.overlay.setAttribute(\"hidden\", \"\");\n\t\t\tthis.openButton.setAttribute(\"aria-expanded\", \"false\");\n\n\t\t\tthis.removeFocusLossDetection();\n\t\t}\n\t}, {\n\t\tkey: \"toggleSearch\",\n\t\tvalue: function toggleSearch() {\n\t\t\tif (this.openButton.getAttribute(\"aria-expanded\") === \"true\") {\n\t\t\t\tthis.closeSiteSearch();\n\t\t\t} else {\n\t\t\t\tthis.openSiteSearch();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"onSearchSubmit\",\n\t\tvalue: function onSearchSubmit(event) {\n\t\t\tvar searchQuery = this.field.value;\n\t\t\tif (searchQuery.trim() === \"\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.field.setAttribute(\"aria-invalid\", \"true\");\n\t\t\t\tthis.field.focus();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"resetValidation\",\n\t\tvalue: function resetValidation() {\n\t\t\tthis.field.setAttribute(\"aria-invalid\", \"false\");\n\t\t}\n\t}, {\n\t\tkey: \"detectFocusLoss\",\n\t\tvalue: function detectFocusLoss() {\n\t\t\tdocument.addEventListener(\"focus\", this.boundOnFocus, true);\n\t\t}\n\t}, {\n\t\tkey: \"removeFocusLossDetection\",\n\t\tvalue: function removeFocusLossDetection() {\n\t\t\tdocument.removeEventListener(\"focus\", this.boundOnFocus, true);\n\t\t}\n\n\t\t// Bound to this in the constructor as this.boundOnFocus\n\n\t}, {\n\t\tkey: \"onFocus\",\n\t\tvalue: function onFocus(event) {\n\t\t\tif (!this.siteHeader.contains(event.target)) {\n\t\t\t\tthis.closeSiteSearch();\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn SiteSearchNarrow;\n}();\n\nexports.default = SiteSearchNarrow;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/site-header-controller.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/site-header-controller.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ELEMENT_SELECTOR = '[data-header-controller]';\nvar PLUGIN_NAME = 'headerController';\n\nvar log = (0, _debug2.default)('site-header/header-controller:header');\n\nvar HeaderController = function () {\n\tfunction HeaderController(element, options) {\n\t\t_classCallCheck(this, HeaderController);\n\n\t\tlog('element', element);\n\t\tlog('options', options);\n\n\t\tthis.options = options;\n\t\tthis.element = element;\n\t\tthis.$element = (0, _jquery2.default)(element);\n\n\t\tthis.collapsibles = [].concat(_toConsumableArray(this.element.querySelectorAll(this.options.collapsibleSelector)));\n\t\tthis.overlay = document.querySelector(this.options.overlaySelector);\n\n\t\tthis.watch();\n\n\t\tlog('ready', this, this.$target);\n\t}\n\n\t_createClass(HeaderController, [{\n\t\tkey: 'watch',\n\t\tvalue: function watch() {\n\t\t\tlog('watching');\n\n\t\t\tthis.element.addEventListener('collapsibleOpened', this.handleOpening.bind(this));\n\t\t\tthis.element.addEventListener('collapsibleClosed', this.handleClosing.bind(this));\n\n\t\t\tif (this.overlay) {\n\t\t\t\tthis.overlay.addEventListener('click', this.closeAllCollapsibles.bind(this));\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'closeAllCollapsibles',\n\t\tvalue: function closeAllCollapsibles() {\n\t\t\tthis.collapsibles.forEach(function (item) {\n\t\t\t\tvar collapseStateAttr = item.dataset['headerController-Collapsible'];\n\t\t\t\titem.dataset[collapseStateAttr] = false;\n\t\t\t});\n\t\t\tthis.hideOverlay();\n\t\t}\n\t}, {\n\t\tkey: 'closeOtherCollapsibles',\n\t\tvalue: function closeOtherCollapsibles(opener) {\n\t\t\tvar toCollapse = this.collapsibles.filter(function (item) {\n\t\t\t\treturn item !== opener;\n\t\t\t});\n\n\t\t\ttoCollapse.forEach(function (item) {\n\t\t\t\tvar collapseStateAttr = item.dataset['headerController-Collapsible'];\n\t\t\t\titem.dataset[collapseStateAttr] = false;\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'handleOpening',\n\t\tvalue: function handleOpening(event) {\n\t\t\tvar opener = event.target;\n\t\t\tthis.closeOtherCollapsibles(opener);\n\t\t\tthis.displayOverlay();\n\t\t}\n\n\t\t// Presumes the closing event is called only when the collapsible closes itself\n\t\t//\tNot when it is closed externally\n\n\t}, {\n\t\tkey: 'handleClosing',\n\t\tvalue: function handleClosing(event) {\n\t\t\tthis.hideOverlay();\n\t\t}\n\t}, {\n\t\tkey: 'displayOverlay',\n\t\tvalue: function displayOverlay() {\n\t\t\tif (this.overlay) {\n\t\t\t\tthis.overlay.hidden = false;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'hideOverlay',\n\t\tvalue: function hideOverlay() {\n\t\t\tif (this.overlay) {\n\t\t\t\tthis.overlay.hidden = true;\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn HeaderController;\n}();\n\nHeaderController.DEFAULTS = {};\n\n(0, _lib2.default)(PLUGIN_NAME, HeaderController);\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-nav-narrow/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _siteNavNarrow = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-nav-narrow/site-nav-narrow.js\");\n\nvar _siteNavNarrow2 = _interopRequireDefault(_siteNavNarrow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar siteNavElements = document.querySelectorAll(\"[data-site-nav-narrow]\");\nvar siteNavElementsArray = [].concat(_toConsumableArray(siteNavElements));\n\nsiteNavElementsArray.forEach(function (element) {\n\tvar options = {\n\t\topenButton: document.querySelector(element.dataset.siteNavNarrowOpenButtonSelector),\n\t\tcloseButton: element.querySelector(element.dataset.siteNavNarrowCloseButtonSelector),\n\t\toverlay: document.querySelector(element.dataset.siteNavNarrowOverlaySelector),\n\t\tsiteHeader: document.querySelector(element.dataset.siteNavNarrowHeaderSelector),\n\t\tsiteHeaderNarrow: document.querySelector(element.dataset.siteNavNarrowHeaderNarrowSelector),\n\t\tsiteSearch: document.querySelector(element.dataset.siteNavNarrowSearchSelector),\n\t\topenClass: element.dataset.siteNavNarrowOpenClass\n\t};\n\n\tvar instance = new _siteNavNarrow2.default(element, options);\n\telement.instance = instance;\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-nav-narrow/site-nav-narrow.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// import debug from \"debug\";\n// const log = debug('site-nav-narrow');\n\nvar SiteNavNarrow = function () {\n\tfunction SiteNavNarrow(element, options) {\n\t\t_classCallCheck(this, SiteNavNarrow);\n\n\t\tthis.element = element;\n\t\tthis.options = options;\n\n\t\t// get references to required elements\n\t\tthis.openButton = this.options.openButton;\n\t\tthis.closeButton = this.options.closeButton;\n\t\tthis.overlay = this.options.overlay;\n\t\tthis.openClass = this.options.openClass;\n\t\tthis.siteHeader = this.options.siteHeader;\n\t\tthis.siteHeaderNarrow = this.options.siteHeaderNarrow;\n\t\tthis.siteSearch = this.options.siteSearch;\n\n\t\tthis.boundOnFocus = this.onFocus.bind(this);\n\t\tthis.boundDismissalListener = this.dismissalListener.bind(this);\n\n\t\t// If you are changing this breakpoint:\n\t\t// Be sure to change the SASS setting $settings__wide_header_breakpoint to match\n\t\t// client\\src\\site__def\\sass-settings\\breakpoints.scss\n\t\tthis.mediaQuery = window.matchMedia(\"(min-width: 64em)\");\n\n\t\tthis.init();\n\t\tthis.watch();\n\t}\n\n\t_createClass(SiteNavNarrow, [{\n\t\tkey: \"init\",\n\t\tvalue: function init() {\n\t\t\t// initial state is hidden\n\t\t\tthis.makeNavigationUnreachable();\n\t\t}\n\t}, {\n\t\tkey: \"watch\",\n\t\tvalue: function watch() {\n\t\t\tthis.openButton.addEventListener(\"click\", this.openSiteNavigation.bind(this));\n\t\t\tthis.closeButton.addEventListener(\"click\", this.closeSiteNavigation.bind(this));\n\t\t\tthis.overlay.addEventListener(\"click\", this.closeSiteNavigation.bind(this));\n\t\t\tthis.element.addEventListener(\"click\", this.dismissalListener.bind(this));\n\n\t\t\tthis.mediaQuery.addListener(this.onMediaQueryChange.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"openSiteNavigation\",\n\t\tvalue: function openSiteNavigation() {\n\t\t\t// close the site search (method defined in site-search.js)\n\t\t\tif (this.siteSearch && this.siteSearch.instance) {\n\t\t\t\tthis.siteSearch.instance.closeSiteSearch();\n\t\t\t}\n\n\t\t\t// Remove interaction blocking from nav\n\t\t\tthis.makeNavigationReachable();\n\n\t\t\t// Slides the menu open\n\t\t\tthis.element.classList.add(this.openClass);\n\n\t\t\t// Shows the overlay\n\t\t\tthis.overlay.removeAttribute(\"hidden\");\n\n\t\t\t// Focus the close button\n\t\t\tthis.closeButton.focus();\n\n\t\t\t// Adds interaction blocking to rest of page\n\t\t\tthis.makePageContentUnreachable();\n\n\t\t\t// Adds focus restriction for nav\n\t\t\tthis.restrictFocus();\n\n\t\t\t// Adds dismissal listener\n\t\t\tthis.addDismissalListener();\n\t\t}\n\t}, {\n\t\tkey: \"closeSiteNavigation\",\n\t\tvalue: function closeSiteNavigation() {\n\t\t\t// Removes interaction blocking from rest of page\n\t\t\tthis.makePageContentReachable();\n\n\t\t\t// Removes focus restriction for nav\n\t\t\tthis.removeFocusRestriction();\n\n\t\t\t// Slides the menu closed\n\t\t\tthis.element.classList.remove(this.openClass);\n\n\t\t\t// Hides the overlay\n\t\t\tthis.overlay.setAttribute(\"hidden\", \"\");\n\n\t\t\t// Focus the open button\n\t\t\tthis.openButton.focus();\n\n\t\t\t// Adds interaction blocking to nav\n\t\t\tthis.makeNavigationUnreachable();\n\n\t\t\t// Removes the dismissal listener\n\t\t\tthis.removeDismissalListener();\n\t\t}\n\t}, {\n\t\tkey: \"makeNavigationUnreachable\",\n\t\tvalue: function makeNavigationUnreachable() {\n\t\t\t// block screen reader access\n\t\t\tthis.element.setAttribute(\"aria-hidden\", true);\n\n\t\t\t// block keyboard access\n\t\t\tvar interactiveElements = this.element.querySelectorAll(\"a,button\");\n\t\t\tfor (var i = 0; i < interactiveElements.length; i++) {\n\t\t\t\tvar element = interactiveElements[i];\n\t\t\t\telement.setAttribute(\"tabindex\", -1);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"makeNavigationReachable\",\n\t\tvalue: function makeNavigationReachable() {\n\t\t\t// reinstates screen reader access\n\t\t\tthis.element.removeAttribute(\"aria-hidden\");\n\n\t\t\t// reinstates keyboard access\n\t\t\tvar interactiveElements = this.element.querySelectorAll(\"a,button\");\n\t\t\tfor (var i = 0; i < interactiveElements.length; i++) {\n\t\t\t\tvar element = interactiveElements[i];\n\t\t\t\telement.removeAttribute(\"tabindex\");\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"makePageContentUnreachable\",\n\t\tvalue: function makePageContentUnreachable() {\n\t\t\tvar pageElements = document.querySelectorAll(\"body > *\");\n\t\t\tvar pageElementsArray = Array.prototype.slice.call(pageElements);\n\t\t\tvar siteHeader = this.siteHeader;\n\n\t\t\tpageElementsArray.forEach(function (element) {\n\t\t\t\tvar isSiteHeader = element == siteHeader;\n\t\t\t\tif (!isSiteHeader) {\n\t\t\t\t\telement.setAttribute(\"aria-hidden\", true);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.siteHeaderNarrow.setAttribute(\"aria-hidden\", true);\n\t\t}\n\t}, {\n\t\tkey: \"makePageContentReachable\",\n\t\tvalue: function makePageContentReachable() {\n\t\t\tvar pageElements = document.querySelectorAll(\"body > *\");\n\t\t\tvar pageElementsArray = Array.prototype.slice.call(pageElements);\n\t\t\tvar siteHeader = this.siteHeader;\n\n\t\t\tpageElementsArray.forEach(function (element) {\n\t\t\t\tvar isSiteHeader = element == siteHeader;\n\t\t\t\tif (!isSiteHeader) {\n\t\t\t\t\telement.removeAttribute(\"aria-hidden\");\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.siteHeaderNarrow.removeAttribute(\"aria-hidden\");\n\t\t}\n\t}, {\n\t\tkey: \"restrictFocus\",\n\t\tvalue: function restrictFocus() {\n\t\t\tdocument.addEventListener(\"focus\", this.boundOnFocus, true);\n\t\t}\n\t}, {\n\t\tkey: \"removeFocusRestriction\",\n\t\tvalue: function removeFocusRestriction() {\n\t\t\tdocument.removeEventListener(\"focus\", this.boundOnFocus, true);\n\t\t}\n\n\t\t// Bound to this in the constructor as this.boundOnFocus\n\n\t}, {\n\t\tkey: \"onFocus\",\n\t\tvalue: function onFocus(event) {\n\t\t\tif (!this.element.contains(event.target)) {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tthis.focusNav();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"focusNav\",\n\t\tvalue: function focusNav() {\n\t\t\tvar focusableElement = this.element.querySelector(\"input,select,button,a[href]\");\n\t\t\tif (focusableElement) {\n\t\t\t\tfocusableElement.focus();\n\t\t\t} else {\n\t\t\t\tthis.closeButton.focus();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"addDismissalListener\",\n\t\tvalue: function addDismissalListener() {\n\t\t\tdocument.addEventListener(\"keydown\", this.boundDismissalListener);\n\t\t}\n\t}, {\n\t\tkey: \"removeDismissalListener\",\n\t\tvalue: function removeDismissalListener() {\n\t\t\tdocument.removeEventListener(\"keydown\", this.boundDismissalListener);\n\t\t}\n\n\t\t// Bound to this in the constructor as this.boundDismissalListener\n\n\t}, {\n\t\tkey: \"dismissalListener\",\n\t\tvalue: function dismissalListener(event) {\n\t\t\tvar isTargetInModal = this.element.contains(event.target);\n\t\t\tvar wasEscapePressed = event.keyCode === 27;\n\t\t\tvar hasKeyCode = event.keyCode ? true : false;\n\t\t\tif (wasEscapePressed || !hasKeyCode && !isTargetInModal) {\n\t\t\t\tthis.closeSiteNavigation();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"onMediaQueryChange\",\n\t\tvalue: function onMediaQueryChange(event) {\n\t\t\tif (event.matches) {\n\t\t\t\tthis.transitionToWide();\n\t\t\t} else {\n\t\t\t\tthis.transitionToNarrow();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"transitionToWide\",\n\t\tvalue: function transitionToWide() {\n\t\t\t// when transitioning to wide, close the navigation\n\t\t\tthis.closeSiteNavigation();\n\t\t}\n\t}, {\n\t\tkey: \"transitionToNarrow\",\n\t\tvalue: function transitionToNarrow() {\n\t\t\t// when transitioning to narrow, reset focus to open button (if focus is in header)\n\t\t\tif (this.siteHeader.contains(document.activeElement)) {\n\t\t\t\tthis.openButton.focus();\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn SiteNavNarrow;\n}();\n\nexports.default = SiteNavNarrow;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/wysiwyg/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/wysiwyg/table-cell-icons.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/wysiwyg/table-cell-icons.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\r\n * Table Cell Icons\r\n * Replaces table cell content based on cell content.\r\n * @author Rhys Lloyd\r\n */\n\nvar log = (0, _debug2.default)('core/components/wysiwyg/table-cell-icons');\n\n// Constants\nvar TABLE_DATA_ATTRIBUTE = 'data-table-icons';\nvar TABLE_IGNORE = 'ignore';\nvar ICON_KEYWORDS = ['yes', 'restricted', 'no'];\nvar ICON_BRACKET_OPEN = '[';\nvar ICON_BRACKET_CLOSE = ']';\nvar KEYWORD_ICON = {\n\t'yes': 'covered',\n\t'restricted': 'restricted',\n\t'no': 'excluded'\n};\n\nfunction getIconClassString(keyword) {\n\treturn 'icon--' + keyword;\n}\n\nfunction keywordFormatter(keyword) {\n\treturn '' + ICON_BRACKET_OPEN + keyword + ICON_BRACKET_CLOSE;\n}\n\n//noinspection SpellCheckingInspection\nfunction keywordUnformatter(keyword) {\n\treturn keyword.substring(ICON_BRACKET_OPEN.length, keyword.length - ICON_BRACKET_CLOSE.length);\n}\n\nfunction iconLookup(keyword) {\n\treturn KEYWORD_ICON[keyword] || keyword;\n}\n\n/**\r\n * Run plugin\r\n */\nfunction exec() {\n\tlog('Running...');\n\n\t// Find tables\n\tvar $tables = (0, _jquery2.default)('table').filter(':not([' + TABLE_DATA_ATTRIBUTE + '=\"' + TABLE_IGNORE + '\"])');\n\n\tif (!$tables.length) {\n\t\tlog('No tables to parse.');\n\t\treturn;\n\t}\n\n\t// Add data attribute - in progress value\n\t$tables.attr(TABLE_DATA_ATTRIBUTE, 'in-progress');\n\tlog('Parsing tables', $tables);\n\n\t// Cell icon template\n\tvar $labelTemplate = (0, _jquery2.default)('').addClass('icon__label u-visually-hidden'),\n\t $iconTemplate = (0, _jquery2.default)('').addClass('icon');\n\n\t// Match replacer - nested function for closure access to $iconTemplate\n\tfunction keywordReplacer(match) {\n\t\tvar keyword = keywordUnformatter(match),\n\t\t iconName = iconLookup(keyword),\n\t\t $label = $labelTemplate.clone().text(keyword);\n\n\t\treturn $iconTemplate.clone().addClass(getIconClassString(iconName)).addClass('keyword-icon keyword-icon--' + keyword).append($label).prop('outerHTML');\n\t}\n\n\t// Loop through all TD cells\n\t$tables.find('td').each(function () {\n\t\tvar $this = (0, _jquery2.default)(this);\n\n\t\t// For each keyword, loop through cell contents and replace\n\t\t// keyword with icon template\n\t\tvar _iteratorNormalCompletion = true;\n\t\tvar _didIteratorError = false;\n\t\tvar _iteratorError = undefined;\n\n\t\ttry {\n\t\t\tfor (var _iterator = ICON_KEYWORDS[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\t\tvar keyword = _step.value;\n\n\t\t\t\tvar original = $this.html(),\n\t\t\t\t updated = original.replace(keywordFormatter(keyword), keywordReplacer);\n\n\t\t\t\tif (original !== updated) {\n\t\t\t\t\tlog('Replacing cell contents:\\nOriginal:', original, '\\nUpdated:', updated);\n\t\t\t\t\t$this.html(updated);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_didIteratorError = true;\n\t\t\t_iteratorError = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion && _iterator.return) {\n\t\t\t\t\t_iterator.return();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError) {\n\t\t\t\t\tthrow _iteratorError;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\t// Set data attribute to indicate done\n\t$tables.attr(TABLE_DATA_ATTRIBUTE, true);\n}\n\nexec();\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/index.js\");\n\n__webpack_require__(\"/tool/project/client/src/core/vendor/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar log = (0, _debug2.default)('fusion-core');\n\n// See polyfills bundle - this should not be needed here too\n// import \"./polyfills\";\n\n\n(0, _jquery2.default)(function () {\n\tlog('ready');\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__collapsible/plugin--bundled.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__mega-link/plugin--bundled.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__sync-theme/plugin--bundled.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__radio-selection/plugin--bundled.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__form-loading/plugin--bundled.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__toggle-element-classes/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__remove-element-classes/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__add-element-classes/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus-within/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__emit-on-dirty/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__trigger-event/index.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__add-element-classes/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-add-element-classes]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'AddElementClasses';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--add-element-classes\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__add-element-classes/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__collapsible/collapsible.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar log = (0, _debug2.default)(\"collapsible\");\n\nfunction getJSONValue(stringValue) {\n\ttry {\n\t\treturn JSON.parse(stringValue);\n\t} catch (error) {\n\t\treturn stringValue;\n\t}\n}\n\nvar Collapsible = function () {\n\tfunction Collapsible(element, options) {\n\t\t_classCallCheck(this, Collapsible);\n\n\t\tthis.element = element;\n\t\tthis.options = options;\n\n\t\tvar scopes = {\n\t\t\tdocument: document,\n\t\t\telement: this.element\n\t\t};\n\n\t\t//\tLook for the content element within this element or elsewhere\n\t\tvar contentSelectorIsId = this.options.contentSelector && this.options.contentSelector[0] === \"#\";\n\n\t\tif (contentSelectorIsId) {\n\t\t\tthis.contentSelectorScope = scopes[\"document\"];\n\t\t} else {\n\t\t\tthis.contentSelectorScope = scopes[this.options.contentSelectorScope] ? scopes[this.options.contentSelectorScope] : scopes[\"element\"];\n\t\t}\n\n\t\t// if no button is specified perhaps this is the button\n\t\tthis.button = this.options.buttonSelector ? this.element.querySelector(this.options.buttonSelector) : this.element;\n\n\t\t// Content is optional\n\t\t//\twe may be toggling with CSS based on aria-expanded button attr\n\t\tthis.content = this.options.contentSelector && this.contentSelectorScope.querySelector(this.options.contentSelector);\n\t\tthis.collapseWith = this.options.collapsedClass ? \"class\" : \"hidden\";\n\t\tthis.collapsedClass = this.options.collapsedClass;\n\n\t\tthis.toggleMethod = this.collapseWith === \"class\" ? this.toggleWithClass : this.toggleWithHidden;\n\n\t\tthis.attributeObserver = new MutationObserver(this.onAttributeChange.bind(this));\n\n\t\tthis.bindDocumentEvents = this.options.closeWithDocumentClick ? this.bindDocumentClick : function () {};\n\n\t\tthis.unbindDocumentEvents = this.options.closeWithDocumentClick ? this.unbindDocumentClick : function () {};\n\n\t\tthis.init();\n\t\tthis.watch();\n\t}\n\n\t_createClass(Collapsible, [{\n\t\tkey: \"init\",\n\t\tvalue: function init() {\n\t\t\t// component enabled - show the button\n\t\t\tthis.button.hidden = false;\n\n\t\t\t// Determine initial collapse state\n\t\t\t//\tif set open option determines init state\n\t\t\tvar doCollapse = this.options.open !== undefined ? !this.options.open : true;\n\n\t\t\tthis.toggleMethod(doCollapse);\n\t\t\tthis.isCollapsed = doCollapse;\n\t\t}\n\t}, {\n\t\tkey: \"watch\",\n\t\tvalue: function watch() {\n\t\t\tthis.button.addEventListener(\"click\", this.toggle.bind(this));\n\t\t\tthis.attributeObserver.observe(this.element, { attributes: true });\n\t\t}\n\t}, {\n\t\tkey: \"toggleWithHidden\",\n\t\tvalue: function toggleWithHidden(doCollapse) {\n\t\t\tthis.button.setAttribute(\"aria-expanded\", !doCollapse);\n\n\t\t\tif (!this.content) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.content.hidden = doCollapse;\n\t\t}\n\t}, {\n\t\tkey: \"toggleWithClass\",\n\t\tvalue: function toggleWithClass(doCollapse) {\n\t\t\tthis.button.setAttribute(\"aria-expanded\", !doCollapse);\n\n\t\t\tif (!this.content) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (doCollapse) {\n\t\t\t\tthis.content.classList.add(this.collapsedClass);\n\t\t\t} else {\n\t\t\t\tthis.content.classList.remove(this.collapsedClass);\n\t\t\t}\n\t\t}\n\n\t\t// button click handler\n\n\t}, {\n\t\tkey: \"toggle\",\n\t\tvalue: function toggle() {\n\t\t\tif (!this.options.selfClosing && !this.isCollapsed) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar handler = this.isCollapsed ? this.open.bind(this) : this.close.bind(this);\n\t\t\thandler();\n\t\t}\n\t}, {\n\t\tkey: \"open\",\n\t\tvalue: function open() {\n\t\t\tthis.toggleMethod(false);\n\t\t\tthis.isCollapsed = false;\n\t\t\tthis.element.dataset.collapsibleOpen = true;\n\t\t\tthis.bindDocumentEvents();\n\n\t\t\tvar openedEvent = new CustomEvent(this.options.onUncollapse, {\n\t\t\t\tbubbles: true,\n\t\t\t\tcancelable: true\n\t\t\t\t// detail: {}\n\t\t\t});\n\n\t\t\tthis.element.dispatchEvent(openedEvent);\n\t\t}\n\t}, {\n\t\tkey: \"close\",\n\t\tvalue: function close() {\n\t\t\tthis.toggleMethod(true);\n\t\t\tthis.isCollapsed = true;\n\t\t\tthis.element.dataset.collapsibleOpen = false;\n\t\t\tthis.unbindDocumentEvents();\n\n\t\t\tvar closedEvent = new CustomEvent(this.options.onCollapse, {\n\t\t\t\tbubbles: true,\n\t\t\t\tcancelable: true\n\t\t\t});\n\n\t\t\tthis.element.dispatchEvent(closedEvent);\n\t\t}\n\t}, {\n\t\tkey: \"bindDocumentClick\",\n\t\tvalue: function bindDocumentClick() {\n\t\t\tdocument.addEventListener(\"click\", this.onDocumentClick.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"unbindDocumentClick\",\n\t\tvalue: function unbindDocumentClick() {\n\t\t\tdocument.removeEventListener(\"click\", this.onDocumentClick);\n\t\t}\n\t}, {\n\t\tkey: \"onDocumentClick\",\n\t\tvalue: function onDocumentClick(event) {\n\t\t\tvar clickTarget = event.target;\n\n\t\t\t// clicked this.button\n\t\t\tif (clickTarget === this.button || this.button.contains(clickTarget)) {\n\t\t\t\tlog(\"clicked button\");\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// clicked this.content\n\t\t\tif (this.content && (clickTarget === this.content || this.content.contains(clickTarget))) {\n\t\t\t\tlog(\"clicked content or inside it\");\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.close();\n\t\t}\n\t}, {\n\t\tkey: \"onAttributeChange\",\n\t\tvalue: function onAttributeChange(mutationList, observer) {\n\t\t\tmutationList.filter(function (mutation) {\n\t\t\t\treturn mutation.type === \"attributes\" && mutation.attributeName.startsWith(\"data-collapsible-open\");\n\t\t\t}).forEach(this.onOpenChanged.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"onOpenChanged\",\n\t\tvalue: function onOpenChanged(mutation) {\n\t\t\tvar doCollapse = !getJSONValue(this.element.dataset.collapsibleOpen);\n\t\t\tif (this.isCollapsed !== doCollapse) {\n\t\t\t\tthis.toggleMethod(doCollapse);\n\t\t\t\tthis.isCollapsed = doCollapse;\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn Collapsible;\n}();\n\nCollapsible.DEFAULTS = {\n\tselfClosing: true,\n\tonCollapse: 'collapsibleClosed',\n\tonUncollapse: 'collapsibleOpened'\n};\n\nexports.default = Collapsible;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__collapsible/plugin--bundled.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _collapsible = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__collapsible/collapsible.js\");\n\nvar _collapsible2 = _interopRequireDefault(_collapsible);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-collapsible]';\nvar PLUGIN_NAME = 'Collapsible';\n\n(0, _lib2.default)(PLUGIN_NAME, _collapsible2.default);\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__emit-on-dirty/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-emit-on-dirty]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'EmitOnDirty';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--emit-on-dirty\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__emit-on-dirty/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus-within/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-focus-within]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'FocusWithin';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--focus-within\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus-within/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-focus-element]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'FocusElement';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--focus-element\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__form-loading/form-loading.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar FormLoading = function () {\n\tfunction FormLoading(element, options) {\n\t\t_classCallCheck(this, FormLoading);\n\n\t\tthis.element = element;\n\t\tthis.options = options;\n\t\tthis.watch();\n\t}\n\n\t_createClass(FormLoading, [{\n\t\tkey: 'watch',\n\t\tvalue: function watch() {\n\t\t\tthis.element.addEventListener(\"submit\", this.applyLoadingState.bind(this));\n\t\t}\n\t}, {\n\t\tkey: 'applyLoadingState',\n\t\tvalue: function applyLoadingState() {\n\t\t\tthis.element.dataset[this.options.dataKey] = this.options.dataValue;\n\t\t}\n\t}]);\n\n\treturn FormLoading;\n}();\n\nFormLoading.DEFAULTS = {\n\tdataKey: 'state',\n\tdataValue: 'loading'\n};\nexports.default = FormLoading;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__form-loading/plugin--bundled.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _formLoading = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__form-loading/form-loading.js\");\n\nvar _formLoading2 = _interopRequireDefault(_formLoading);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-form-loading]';\nvar PLUGIN_NAME = 'FormLoading';\n\n(0, _lib2.default)(PLUGIN_NAME, _formLoading2.default);\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__mega-link/mega-link.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar log = (0, _debug2.default)(\"mega-link\");\n\nfunction getJSONValue(stringValue) {\n\ttry {\n\t\treturn JSON.parse(stringValue);\n\t} catch (error) {\n\t\treturn stringValue;\n\t}\n}\n\nvar MegaLink = function () {\n\tfunction MegaLink(element, options) {\n\t\t_classCallCheck(this, MegaLink);\n\n\t\tthis.element = element; // li\n\t\tthis.options = options;\n\n\t\tvar scopes = {\n\t\t\tdocument: document,\n\t\t\telement: this.element\n\t\t};\n\n\t\t//\tLook for the content element within this element or elsewhere\n\t\tvar contentSelectorIsId = this.options.contentSelector && this.options.contentSelector[0] === \"#\";\n\n\t\tif (contentSelectorIsId) {\n\t\t\tthis.contentSelectorScope = scopes[\"document\"];\n\t\t} else {\n\t\t\tthis.contentSelectorScope = scopes[this.options.contentSelectorScope] ? scopes[this.options.contentSelectorScope] : scopes[\"element\"];\n\t\t}\n\n\t\tthis.link = this.element.querySelector(this.options.linkSelector);\n\t\tthis.button = this.element.querySelector(this.options.buttonSelector);\n\n\t\tthis.content = this.contentSelectorScope.querySelector(this.options.contentSelector);\n\t\tthis.collapseWith = this.options.collapsedClass ? \"class\" : \"hidden\";\n\t\tthis.collapsedClass = this.options.collapsedClass;\n\n\t\tthis.toggleMethod = this.collapseWith === \"class\" ? this.toggleWithClass : this.toggleWithHidden;\n\n\t\tthis.attributeObserver = new MutationObserver(this.onAttributeChange.bind(this));\n\n\t\tthis.bindDocumentEvents = this.options.closeWithDocumentClick ? this.bindDocumentClick : function () {};\n\n\t\tthis.unbindDocumentEvents = this.options.closeWithDocumentClick ? this.unbindDocumentClick : function () {};\n\n\t\tthis.init();\n\t\tthis.watch();\n\t}\n\n\t_createClass(MegaLink, [{\n\t\tkey: \"init\",\n\t\tvalue: function init() {\n\t\t\t// component enabled - switch link role\n\t\t\tthis.link.setAttribute('role', 'button');\n\n\t\t\t// Determine initial collapse state\n\t\t\t//\tif set open option determines init state\n\t\t\tvar doCollapse = this.options.open !== undefined ? !this.options.open : true;\n\n\t\t\tthis.toggleMethod(doCollapse);\n\t\t\tthis.isCollapsed = doCollapse;\n\t\t}\n\t}, {\n\t\tkey: \"watch\",\n\t\tvalue: function watch() {\n\t\t\tthis.link.addEventListener(\"click\", this.handleUnmodifiedClick.bind(this));\n\t\t\tthis.link.addEventListener('keydown', this.handleKeyDown.bind(this));\n\t\t\tthis.button.addEventListener(\"click\", this.toggle.bind(this));\n\t\t\tthis.attributeObserver.observe(this.element, { attributes: true });\n\t\t}\n\n\t\t// Respond to space key\n\n\t}, {\n\t\tkey: \"handleKeyDown\",\n\t\tvalue: function handleKeyDown(event) {\n\t\t\tif (event.keyCode === 32) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.toggle();\n\t\t\t}\n\t\t}\n\n\t\t// Only respond to click without key modifier\n\n\t}, {\n\t\tkey: \"handleUnmodifiedClick\",\n\t\tvalue: function handleUnmodifiedClick(event) {\n\t\t\tif (!event.ctrlKey && !event.altKey && !event.metaKey) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.toggle();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"toggleWithHidden\",\n\t\tvalue: function toggleWithHidden(doCollapse) {\n\t\t\tthis.link.setAttribute(\"aria-expanded\", !doCollapse);\n\n\t\t\tif (!this.content) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.content.hidden = doCollapse;\n\t\t}\n\t}, {\n\t\tkey: \"toggleWithClass\",\n\t\tvalue: function toggleWithClass(doCollapse) {\n\t\t\tthis.link.setAttribute(\"aria-expanded\", !doCollapse);\n\n\t\t\tif (!this.content) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (doCollapse) {\n\t\t\t\tthis.content.classList.add(this.collapsedClass);\n\t\t\t} else {\n\t\t\t\tthis.content.classList.remove(this.collapsedClass);\n\t\t\t}\n\t\t}\n\n\t\t// button click handler\n\n\t}, {\n\t\tkey: \"toggle\",\n\t\tvalue: function toggle() {\n\t\t\tif (!this.options.selfClosing && !this.isCollapsed) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar handler = this.isCollapsed ? this.open.bind(this) : this.close.bind(this);\n\t\t\thandler();\n\t\t}\n\t}, {\n\t\tkey: \"open\",\n\t\tvalue: function open() {\n\t\t\tthis.toggleMethod(false);\n\t\t\tthis.isCollapsed = false;\n\t\t\tthis.element.dataset.megaLinkOpen = true;\n\t\t\tthis.bindDocumentEvents();\n\n\t\t\tvar openedEvent = new CustomEvent(this.options.onUncollapse, {\n\t\t\t\tbubbles: true,\n\t\t\t\tcancelable: true\n\t\t\t\t// detail: {}\n\t\t\t});\n\n\t\t\tthis.element.dispatchEvent(openedEvent);\n\t\t}\n\t}, {\n\t\tkey: \"close\",\n\t\tvalue: function close() {\n\t\t\tthis.toggleMethod(true);\n\t\t\tthis.isCollapsed = true;\n\t\t\tthis.element.dataset.megaLinkOpen = false;\n\t\t\tthis.unbindDocumentEvents();\n\n\t\t\tvar closedEvent = new CustomEvent(this.options.onCollapse, {\n\t\t\t\tbubbles: true,\n\t\t\t\tcancelable: true\n\t\t\t});\n\n\t\t\tthis.element.dispatchEvent(closedEvent);\n\t\t}\n\t}, {\n\t\tkey: \"bindDocumentClick\",\n\t\tvalue: function bindDocumentClick() {\n\t\t\tdocument.addEventListener(\"click\", this.onDocumentClick.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"unbindDocumentClick\",\n\t\tvalue: function unbindDocumentClick() {\n\t\t\tdocument.removeEventListener(\"click\", this.onDocumentClick);\n\t\t}\n\t}, {\n\t\tkey: \"onDocumentClick\",\n\t\tvalue: function onDocumentClick(event) {\n\t\t\tvar clickTarget = event.target;\n\n\t\t\t// clicked within element (li)\n\t\t\tif (clickTarget === this.element || this.element.contains(clickTarget)) {\n\t\t\t\tlog(\"clicked within element\");\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// clicked this.button\n\t\t\tif (clickTarget === this.button || this.button.contains(clickTarget)) {\n\t\t\t\tlog(\"clicked button\");\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// clicked this.link\n\t\t\tif (clickTarget === this.link || this.link.contains(clickTarget)) {\n\t\t\t\tlog(\"clicked link\");\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.close();\n\t\t}\n\t}, {\n\t\tkey: \"onAttributeChange\",\n\t\tvalue: function onAttributeChange(mutationList, observer) {\n\t\t\tmutationList.filter(function (mutation) {\n\t\t\t\treturn mutation.type === \"attributes\" && mutation.attributeName.startsWith(\"data-mega-link-open\");\n\t\t\t}).forEach(this.onOpenChanged.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"onOpenChanged\",\n\t\tvalue: function onOpenChanged(mutation) {\n\t\t\tvar doCollapse = !getJSONValue(this.element.dataset.megaLinkOpen);\n\t\t\tif (this.isCollapsed !== doCollapse) {\n\t\t\t\tthis.toggleMethod(doCollapse);\n\t\t\t\tthis.isCollapsed = doCollapse;\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn MegaLink;\n}();\n\nMegaLink.DEFAULTS = {\n\tselfClosing: true,\n\tonCollapse: 'collapsibleClosed',\n\tonUncollapse: 'collapsibleOpened'\n};\n\nexports.default = MegaLink;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__mega-link/plugin--bundled.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _megaLink = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__mega-link/mega-link.js\");\n\nvar _megaLink2 = _interopRequireDefault(_megaLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-mega-link]';\nvar PLUGIN_NAME = 'MegaLink';\n\n(0, _lib2.default)(PLUGIN_NAME, _megaLink2.default);\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__radio-selection/plugin--bundled.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _radioSelection = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__radio-selection/radio-selection.js\");\n\nvar _radioSelection2 = _interopRequireDefault(_radioSelection);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-radio-selection]';\nvar PLUGIN_NAME = 'RadioSelection';\n\n(0, _lib2.default)(PLUGIN_NAME, _radioSelection2.default);\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__radio-selection/radio-selection.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// IE Needs element.closest polyfill - see polyfills\n// https://gomakethings.com/a-native-vanilla-javascript-way-to-get-the-closest-matching-parent-element/\n\n\nvar RadioSelection = function () {\n\tfunction RadioSelection(element, options) {\n\t\t_classCallCheck(this, RadioSelection);\n\n\t\tthis.element = element;\n\t\tthis.options = options;\n\n\t\t// scoped to parent form or other form if specified\n\t\tthis.form = this.options.formSelector ? this.element.querySelector(this.options.formSelector) : this.element.closest('form');\n\n\t\tthis.inputs = this.form.elements[this.options.name];\n\n\t\tif (!this.form || !this.options.name || !this.inputs) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.init();\n\t\tthis.watch();\n\t}\n\n\t_createClass(RadioSelection, [{\n\t\tkey: 'init',\n\t\tvalue: function init() {\n\t\t\tthis.updateValue();\n\t\t}\n\t}, {\n\t\tkey: 'watch',\n\t\tvalue: function watch() {\n\t\t\tvar _this = this;\n\n\t\t\t[].concat(_toConsumableArray(this.inputs)).forEach(function (input) {\n\t\t\t\tinput.addEventListener('change', _this.updateValue.bind(_this));\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'updateValue',\n\t\tvalue: function updateValue() {\n\t\t\tvar value = this.inputs.value;\n\t\t\tvar checkedInput = this.form.querySelector('[value=\"' + value + '\"]');\n\t\t\tvar label = this.form.querySelector('label[for=\"' + checkedInput.id + '\"]');\n\n\t\t\tif (!label) {\n\t\t\t\tconsole.warn('Label missing for radio input', checkedInput);\n\t\t\t}\n\t\t\tthis.element.textContent = label.textContent;\n\t\t}\n\t}]);\n\n\treturn RadioSelection;\n}();\n\nRadioSelection.DEFAULTS = {};\n\nexports.default = RadioSelection;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__remove-element-classes/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-remove-element-classes]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'RemoveElementClasses';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--remove-element-classes\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__remove-element-classes/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__sync-theme/plugin--bundled.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _syncTheme = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__sync-theme/sync-theme.js\");\n\nvar _syncTheme2 = _interopRequireDefault(_syncTheme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-sync-theme]';\nvar PLUGIN_NAME = 'SyncTheme';\n\n(0, _lib2.default)(PLUGIN_NAME, _syncTheme2.default);\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__sync-theme/sync-theme.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar log = (0, _debug2.default)(\"jquery-plugin__sync-theme\");\n\nfunction getJSONValue(stringValue) {\n\ttry {\n\t\treturn JSON.parse(stringValue);\n\t} catch (error) {\n\t\treturn stringValue;\n\t}\n}\n\nfunction startsWith(prefix, string) {\n\treturn string.startsWith(prefix);\n}\n\nvar SyncTheme = function () {\n\tfunction SyncTheme(element, options) {\n\t\t_classCallCheck(this, SyncTheme);\n\n\t\tthis.element = element;\n\t\tthis.options = options;\n\n\t\tthis.sourceElement = this.element.querySelector(this.options.sourceSelector);\n\t\tthis.targetElement = this.element.querySelector(this.options.targetSelector);\n\n\t\tif (!this.sourceElement || !this.targetElement) {\n\t\t\tlog('Missing source or target element. Aborting.');\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.hasPrefix = startsWith.bind(null, this.options.classPrefix);\n\n\t\tthis.init();\n\t\tthis.watch();\n\t}\n\n\t_createClass(SyncTheme, [{\n\t\tkey: \"init\",\n\t\tvalue: function init() {\n\t\t\tthis.applyThemeClass();\n\t\t}\n\t}, {\n\t\tkey: \"watch\",\n\t\tvalue: function watch() {\n\t\t\tif (this.options.on) {\n\t\t\t\tthis.element.addEventListener(this.options.on, this.handleSyncEvent.bind(this));\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleSyncEvent\",\n\t\tvalue: function handleSyncEvent() {\n\t\t\tthis.applyThemeClass();\n\t\t}\n\t}, {\n\t\tkey: \"getThemeClass\",\n\t\tvalue: function getThemeClass() {\n\t\t\tvar sourceDataProp = this.sourceElement.dataset['syncTheme-Source'];\n\t\t\treturn this.sourceElement.dataset[sourceDataProp];\n\t\t}\n\t}, {\n\t\tkey: \"removeThemeClass\",\n\t\tvalue: function removeThemeClass() {\n\t\t\tvar themeClass = [].concat(_toConsumableArray(this.targetElement.classList)).find(this.hasPrefix);\n\t\t\tthemeClass && this.targetElement.classList.remove(themeClass);\n\t\t}\n\t}, {\n\t\tkey: \"applyThemeClass\",\n\t\tvalue: function applyThemeClass() {\n\t\t\tvar themeClass = this.getThemeClass();\n\t\t\tvar currentClasses = [].concat(_toConsumableArray(this.targetElement.classList));\n\n\t\t\tif (themeClass && !currentClasses.includes(themeClass)) {\n\t\t\t\tthis.removeThemeClass();\n\t\t\t\tthis.targetElement.classList.add(themeClass);\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn SyncTheme;\n}();\n\nSyncTheme.DEFAULTS = {};\n\nexports.default = SyncTheme;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__toggle-element-classes/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-toggle-element-classes]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'ToggleElementClasses';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--toggle-element-classes\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__toggle-element-classes/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__trigger-event/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-trigger-event]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'triggerEvent';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--trigger-event\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__trigger-event/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/fn.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.debounce = debounce;\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nfunction debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n};\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /*\r\n jQuery plugin\r\n \r\n \r\n ```\r\n import debug from 'debug';\r\n import plugin from '@core/plugins/lib';\r\n \r\n const ELEMENT_SELECTOR = '[data-my-plugin]';\r\n const PLUGIN_NAME = 'MyPlugin';\r\n const MODULE_NAME = 'plugins/my-plugin';\r\n const log = debug(MODULE_NAME);\r\n \r\n class PluginKlass {\r\n constructor(element, options) {\r\n log('new instance', element, options);\r\n \r\n this.element = element;\r\n this.options = options;\r\n this.$element = $(element);\r\n \r\n log('ready', this.$element);\r\n \r\n this.init();\r\n }\r\n }\r\n \r\n PluginKlass.DEFAULTS = {\r\n someCamelCasedProperty: `${PLUGIN_NAME}:something`,\r\n };\r\n \r\n plugin(PLUGIN_NAME, PluginKlass);\r\n \r\n $(document).ready(() => {\r\n $(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n });\r\n ```\r\n \r\n Then using it in html:\r\n ```\r\n
\r\n ```\r\n \r\n Styelguide Core.Global.Javascript.JqueryPlugin\r\n */\n\n// import * as events from './events';\n\nexports.default = plugin;\nexports.jquery = jquery;\nexports.defaults = defaults;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _fn = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/fn.js\");\n\nvar fn = _interopRequireWildcard(_fn);\n\nvar _strings = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/strings.js\");\n\nvar strings = _interopRequireWildcard(_strings);\n\nvar _objects = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/objects.js\");\n\nvar objects = _interopRequireWildcard(_objects);\n\nvar _selectors = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/selectors.js\");\n\nvar selectors = _interopRequireWildcard(_selectors);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar log = (0, _debug2.default)('core/plugins/lib');\n\nfunction plugin(pluginName, klass) {\n var shortHand = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var formattedPluginName = (0, _strings.toCamelCase)(pluginName);\n var dataName = '__' + formattedPluginName;\n var old = _jquery2.default.fn[formattedPluginName];\n var ZERO = 0;\n\n klass.$bus = {\n subscribe: function subscribe(event, fn) {\n (0, _jquery2.default)(this).bind(event, fn);\n },\n publish: function publish(event, data) {\n (0, _jquery2.default)(this).trigger(event, [data]);\n }\n };\n\n klass.$util = {\n fn: fn,\n objects: objects,\n strings: strings,\n selectors: selectors\n };\n\n klass.prototype.selectors = selectors;\n klass.prototype.strings = strings;\n klass.prototype.objects = objects;\n klass.prototype.fn = fn;\n klass.prototype.inViewport = function (elm) {\n var rect = elm.getBoundingClientRect();\n var viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight);\n return !(rect.bottom < 0 || rect.top - viewHeight >= 0);\n };\n\n _jquery2.default.fn[pluginName] = function PluginFactory(option) {\n return this.each(function PluginInstanceFactory() {\n var $this = (0, _jquery2.default)(this);\n var data = $this.data();\n var overrides = (typeof option === 'undefined' ? 'undefined' : _typeof(option)) === 'object' && option;\n var elementOptions = Object.keys(data).filter(function (key) {\n return (0, _strings.toCamelCase)(key).indexOf(formattedPluginName) >= ZERO;\n }).reduce(function (result, path) {\n var data = path && $this.data(path);\n var key = (0, _strings.toCamelCase)(path.replace(new RegExp(formattedPluginName + '-?'), ''));\n log(path, key, $this.data(path));\n\n if (key && data !== undefined) {\n result[key] = data;\n }\n return result;\n }, {});\n log(pluginName, { elementOptions: elementOptions });\n var instance = $this.data(dataName);\n var options = _jquery2.default.extend({}, klass.DEFAULTS, elementOptions, overrides);\n\n // store reference to instance\n if (!instance) {\n instance = new klass(this, options);\n instance.$utils = klass.$util;\n $this.data(dataName, instance);\n $this.addClass('u-' + pluginName);\n }\n\n // execute instance method\n if (typeof option === 'string') {\n instance[option]();\n }\n });\n };\n\n // - Short hand\n if (shortHand) {\n _jquery2.default[formattedPluginName] = function (options) {\n return (0, _jquery2.default)({})[formattedPluginName](options);\n };\n }\n\n // - No conflict\n // $.fn[formattedPluginName].noConflict = function noConflict () {\n // $.fn[formattedPluginName] = old;\n // };\n}\n\nfunction jquery(name) {\n return function decorate(target) {\n plugin(name, target);\n };\n}\n\nfunction defaults(options) {\n return function decorate(target) {\n target.DEFAULTS = options;\n };\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/objects.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.elementAttrtibutesToObject = elementAttrtibutesToObject;\nexports.objectPath = objectPath;\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _strings = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/strings.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MODULE_NAME = 'app.core/lib/objects';\nvar log = (0, _debug2.default)(MODULE_NAME);\n\nvar ZERO = 0;\n\n/**\r\n * Convert an elements attributes to an object, optionally filtering based on some predicate.\r\n * @param {DOMElement} element [description]\r\n * @param {Function} filterFn filtering function. return false to omit attribute.\r\n * @param {Function} transformFn transform attribute name function. returns camelCase by default\r\n * @return {[type]} [description]\r\n */\nfunction elementAttrtibutesToObject(element) {\n var filterFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {\n return true;\n };\n var transformFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (name) {\n return (0, _strings.toCamelCase)(name);\n };\n\n var output = {};\n var attrs = Array.from($(element).get(ZERO).attributes);\n\n if (!attrs) {\n return output;\n }\n\n log('converting element attributes to object', attrs);\n\n return attrs.reduce(function (result, attribute) {\n if (filterFn(attribute)) {\n var name = transformFn(attribute.name);\n var value = attribute.value;\n\n if (value === 'false' || value === 'true') {\n value = Boolean(value);\n }\n result[name] = attribute.value;\n }\n\n return result;\n }, output);\n}\n\n/**\r\n * Object.prop()\r\n *\r\n * Allows dot-notation access to object properties for both getting and setting.\r\n *\r\n * @param {Object} obj The object we're getting from or setting\r\n * @param {string} prop The dot-notated string defining the property location\r\n * @param {mixed} val For setting only; the value to set\r\n */\n\nfunction objectPath(obj, path, val) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : { delimiter: '.' };\n\n var props = path.split(options.delimiter);\n var final = props.pop();\n var part = void 0;\n\n for (var index = 0; index < props.length; index++) {\n part = props[index];\n if (typeof obj[part] === 'undefined') {\n // If we're setting\n if (typeof val !== 'undefined' && index != props.length) {\n // If we're not at the end of the props, keep adding new empty objects\n obj[part] = {};\n } else {\n return undefined;\n }\n }\n obj = obj[part];\n }\n return typeof val !== \"undefined\" ? obj[final] = val : obj[final];\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/selectors.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SELECTOR_PATTERNS = undefined;\nexports.selectorPattern = selectorPattern;\nexports.selectTarget = selectTarget;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar log = (0, _debug2.default)('core/plugins/lib/selectors');\n\nfunction selectorPattern() {\n for (var _len = arguments.length, directives = Array(_len), _key = 0; _key < _len; _key++) {\n directives[_key] = arguments[_key];\n }\n\n return new RegExp('\\\\((' + directives.join('|') + ')(.*)\\\\)\\\\s?(.*)');\n}\n\nvar SELECTOR_PATTERNS = exports.SELECTOR_PATTERNS = {\n\n // .find\n \"children\": selectorPattern('children'),\n\n // .closest\n \"parent\": selectorPattern('parent'),\n \"from\": selectorPattern('from'),\n \"parents\": selectorPattern('parents'),\n \"siblings\": selectorPattern('siblings'),\n \"here\": selectorPattern('here'),\n \"self\": selectorPattern('self')\n};\n\nfunction selectTarget(selector, $element) {\n var $target = void 0;\n\n var isClosestAncestoral = selector.match(SELECTOR_PATTERNS.parent);\n var isAllAncestoral = selector.match(SELECTOR_PATTERNS.parents);\n var isRetargeted = selector.match(SELECTOR_PATTERNS.from);\n var isAllDescendants = selector.match(SELECTOR_PATTERNS.children);\n var isGenerational = selector.match(SELECTOR_PATTERNS.here);\n var isSiblings = selector.match(SELECTOR_PATTERNS.siblings);\n var isSelfish = selector.match(SELECTOR_PATTERNS.self);\n\n // special retargeting root\n if (isRetargeted) {\n log('isRetargeted', isRetargeted[2], isRetargeted[3]);\n var $newElement = selectTarget(isRetargeted[2], $element);\n var newSelector = '(children) ' + isRetargeted[3];\n log('isRetargeted.newElement', $newElement);\n log('isRetargeted.newSelector', newSelector);\n $target = selectTarget(newSelector, $newElement);\n log('isRetargeted.target', $target);\n }\n\n // target is all ancestors\n else if (isAllAncestoral) {\n log('isAllAncestoral', isAllAncestoral);\n $target = $element.parents(isAllAncestoral[isAllAncestoral.length - 1]);\n }\n // target is closest ancestor\n else if (isClosestAncestoral) {\n log('isClosestAncestoral', isClosestAncestoral);\n $target = $element.closest(isClosestAncestoral[isClosestAncestoral.length - 1]);\n }\n // target is somewhere under current parent\n else if (isGenerational) {\n log('isGenerational', isGenerational);\n $target = $element.parent().find(isGenerational[isGenerational.length - 1]);\n }\n // target is only under self\n else if (isAllDescendants) {\n log('isAllDescendants', isAllDescendants);\n $target = $element.find(isAllDescendants[isAllDescendants.length - 1]);\n }\n // target is somewhere in siblings only\n else if (isSiblings) {\n log('isSiblings', isSiblings);\n $target = $element.siblings(isSiblings[isSiblings.length - 1]);\n }\n // target is source\n else if (!selector || isSelfish) {\n log('isSelfish', isSelfish);\n var selector = isSelfish[isSelfish.length - 1] || '*';\n $target = $element.filter(selector);\n }\n // target could be anywhere\n else {\n log('global', selector);\n $target = (0, _jquery2.default)(selector);\n }\n return $target;\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/strings.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.toCamelCase = toCamelCase;\nexports.tmpl = tmpl;\nexports.$tmpl = $tmpl;\nexports.mustache = mustache;\nexports.booleanify = booleanify;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar log = (0, _debug2.default)('core/jquery_plugin/strings');\n\nfunction preserveCamelCase(str) {\n var isLastCharLower = false;\n var isLastCharUpper = false;\n var isLastLastCharUpper = false;\n\n for (var i = 0; i < str.length; i++) {\n var c = str[i];\n\n if (isLastCharLower && /[a-zA-Z]/.test(c) && c.toUpperCase() === c) {\n str = str.substr(0, i) + '-' + str.substr(i);\n isLastCharLower = false;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = true;\n i++;\n } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(c) && c.toLowerCase() === c) {\n str = str.substr(0, i - 1) + '-' + str.substr(i - 1);\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = false;\n isLastCharLower = true;\n } else {\n isLastCharLower = c.toLowerCase() === c;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = c.toUpperCase() === c;\n }\n }\n\n return str;\n}\n\nfunction toCamelCase(str) {\n if (arguments.length > 1) {\n str = Array.from(arguments).map(function (x) {\n return x.trim();\n }).filter(function (x) {\n return x.length;\n }).join('-');\n } else {\n str = str.trim();\n }\n\n if (str.length === 0) {\n return '';\n }\n\n if (str.length === 1) {\n return str.toLowerCase();\n }\n\n if (/^[a-z0-9]+$/.test(str)) {\n return str;\n }\n\n var hasUpperCase = str !== str.toLowerCase();\n\n if (hasUpperCase) {\n str = preserveCamelCase(str);\n }\n\n return str.replace(/^[_.\\- ]+/, '').toLowerCase().replace(/[_.\\- ]+(\\w|$)/g, function (m, p1) {\n return p1.toUpperCase();\n });\n};\n\nfunction tmpl(str, context) {\n var result = str;\n\n if (result) {\n\n Object.keys(context).forEach(function (item) {\n result = result.replace('{{' + item + '}}', context[item]);\n });\n }\n\n return result;\n}\n\nfunction $tmpl(element, context) {\n var $target = (0, _jquery2.default)(element);\n var templateString = $target.attr('data-text-template');\n var result = tmpl(templateString, context);\n\n $target.text(result);\n}\n\n/**\r\n * https://github.com/aishikaty/tiny-mustache\r\n * https://mustache.github.io/\r\n * @param {String} template [description]\r\n * @param {[type]} self [description]\r\n * @param {[type]} parent [description]\r\n * @param {[type]} invert [description]\r\n * @return {[type]} [description]\r\n */\nfunction mustache(template, self, parent, invert) {\n var render = mustache;\n var output = \"\";\n var i;\n\n log('mustache', { template: template, self: self, parent: parent, invert: invert });\n\n function get(ctx, path) {\n path = path.pop ? path : path.split(\".\");\n ctx = ctx[path.shift()] || \"\";\n return 0 in path ? get(ctx, path) : ctx;\n }\n\n self = Array.isArray(self) ? self : self ? [self] : [];\n self = invert ? 0 in self ? [] : [1] : self;\n\n for (i = 0; i < self.length; i++) {\n var childCode = '';\n var depth = 0;\n var inverted;\n var ctx = _typeof(self[i]) == \"object\" ? self[i] : {};\n ctx = Object.assign({}, parent, ctx);\n ctx[\"\"] = { \"\": self[i] };\n\n template.replace(/([\\s\\S]*?)({{((\\/)|(\\^)|#)(.*?)}}|$)/g, function (match, code, y, z, close, invert, name) {\n\n if (!depth) {\n output += code.replace(/{{{(.*?)}}}|{{(!?)(&?)(>?)(.*?)}}/g, function (match, raw, comment, isRaw, partial, name) {\n return raw ? get(ctx, raw) : isRaw ? get(ctx, name) : partial ? render(get(ctx, name), ctx) : !comment ? new Option(get(ctx, name)).innerHTML : \"\";\n });\n inverted = invert;\n } else {\n childCode += depth && !close || depth > 1 ? match : code;\n }\n\n if (close) {\n if (! --depth) {\n name = get(ctx, name);\n if (/^f/.test(typeof name === 'undefined' ? 'undefined' : _typeof(name))) {\n output += name.call(ctx, childCode, function (template) {\n return render(template, ctx);\n });\n } else {\n output += render(childCode, name, ctx, inverted);\n }\n childCode = \"\";\n }\n } else {\n ++depth;\n }\n log('mustache.output.' + depth, { output: output });\n });\n }\n log('mustache.output', { output: output });\n return output;\n}\n\nfunction booleanify(value) {\n var lower = value.toLowerCase();\n if (lower === 'false' || lower === '0') {\n return false;\n }\n return new Boolean(value);\n}\n\n/***/ }),\n\n/***/ \"/tool/project/client/src/core/vendor/index.js\":\n/***/ (function(module, exports) {\n\n// Note vendor js loaded with System in components directly\r\n\n\n/***/ }),\n\n/***/ \"external \\\"jQuery\\\"\":\n/***/ (function(module, exports) {\n\nmodule.exports = jQuery;\n\n/***/ }),\n\n/***/ \"multi /tool/project/client/src/core/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/index.js\");\n\n\n/***/ })\n\n},[\"multi /tool/project/client/src/core/index.js\"]);\n\n\n// WEBPACK FOOTER //\n// scripts/core--4aa2040261c3b76e1950.js","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC',\n '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF',\n '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC',\n '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF',\n '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC',\n '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033',\n '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366',\n '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933',\n '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC',\n '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF',\n '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // Internet Explorer and Edge do not support colors.\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/debug/src/browser.js","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * Active `debug` instances.\n */\nexports.instances = [];\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n var prevTime;\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n exports.instances.push(debug);\n\n return debug;\n}\n\nfunction destroy () {\n var index = exports.instances.indexOf(this);\n if (index !== -1) {\n exports.instances.splice(index, 1);\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n\n for (i = 0; i < exports.instances.length; i++) {\n var instance = exports.instances[i];\n instance.enabled = exports.enabled(instance.namespace);\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/debug/src/debug.js","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ms/index.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/process/browser.js","const ELEMENT_SELECTOR = '[data-a-modal]';\r\n\r\n$(() => {\r\n\tif ($(ELEMENT_SELECTOR).length) {\r\n\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"a-modal-bundle\" */ './a-modal-bundle'\r\n\t\t).then((module) => {\r\n\t\t\tmodule.default();\r\n\t\t});\r\n\t}\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/a-modal/index--split.js","/**\r\n * Dismiss\r\n * Alerts\r\n * @author Oliver Boermans\r\n */\r\n\r\nimport $ from \"jquery\";\r\nimport debug from \"debug\";\r\nconst log = debug(\"alerts\");\r\n\r\n//\r\n// Config\r\n// ===========\r\nconst ALERT_SELECTOR = \"[data-alert]\";\r\nconst ALERT_BUTTON_SELECTOR = 'button';\r\n\r\nconst hidePanel = function (alertToHide) {\r\n\t$(alertToHide).hide();\r\n\t$('body').removeClass('has-alert');\r\n};\r\n\r\nconst dismissAlert = function (instance) {\r\n\tconst {element, alertApi, alertId} = instance;\r\n\t$.get(alertApi, {\r\n\t\tid: alertId\r\n\t});\r\n\thidePanel(element);\r\n};\r\n\r\nfunction init (){\r\n\tconst alertElements = $(ALERT_SELECTOR);\r\n\tlog(alertElements);\r\n\talertElements.each(function(index, element){\r\n\t\tconst alertApi = element.dataset.alertApi;\r\n\t\tconst alertId = element.id;\r\n\t\tconst alertButton = $(element).find(ALERT_BUTTON_SELECTOR);\r\n\r\n\t\tif (alertButton.length) {\r\n\t\t\talertButton.on('click', dismissAlert.bind(null, {element, alertApi, alertId}));\r\n\t\t} else {\r\n\t\t\tlog(\"No site alert button found.\");\r\n\t\t}\r\n\t});\r\n\r\n};\r\n\r\ninit();\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/alerts/dismiss.js","import './dismiss';\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/alerts/index.js","export default class AppInstallPrompt {\r\n\tconstructor(element, options) {\r\n\t\tthis.element = element;\r\n\t\tthis.options = options;\r\n\r\n\t\t// get references to required elements\r\n\t\tthis.installButton = this.options.installButton;\r\n\t\tthis.dismissButton = this.options.dismissButton;\r\n\r\n\t\tthis.deferredPrompt = null;\r\n\r\n\t\tthis.watch();\r\n\t}\r\n\twatch() {\r\n\t\twindow.addEventListener(\r\n\t\t\t\"beforeinstallprompt\",\r\n\t\t\tthis.onPromptAvailable.bind(this)\r\n\t\t);\r\n\t\tthis.installButton.addEventListener(\r\n\t\t\t\"click\",\r\n\t\t\tthis.requestPrompt.bind(this)\r\n\t\t);\r\n\t\tthis.dismissButton.addEventListener(\r\n\t\t\t\"click\",\r\n\t\t\tthis.dismissInvite.bind(this)\r\n\t\t);\r\n\t}\r\n\r\n\tonPromptAvailable(event) {\r\n\t\tevent.preventDefault();\r\n\t\tthis.deferredPrompt = event;\r\n\t\tthis.displayInvite();\r\n\t}\r\n\r\n\tdisplayInvite() {\r\n\t\tthis.element.hidden = false;\r\n\t}\r\n\r\n\tdismissInvite() {\r\n\t\tthis.element.hidden = true;\r\n\t\tthis.callCookieApi();\r\n\t}\r\n\r\n\trequestPrompt() {\r\n\t\tthis.deferredPrompt.prompt();\r\n\t\tthis.deferredPrompt.userChoice.then((choice) => {\r\n\t\t\tthis.deferredPrompt = null;\r\n\t\t\tthis.dismissInvite();\r\n\t\t});\r\n\t}\r\n\r\n\tcallCookieApi() {\r\n\t\tconst cookieId = encodeURIComponent(this.options.cookieId);\r\n\t\tconst cookieRequest = new Request(\r\n\t\t\t`${this.options.cookieApi}?id=${cookieId}`\r\n\t\t);\r\n\t\tfetch(cookieRequest);\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/app-install-prompt/app-install-prompt.js","import AppInstallPrompt from \"./app-install-prompt\";\r\n\r\nconst element = document.querySelector(\"[data-app-install-prompt]\");\r\n\r\nif (element) {\r\n\tconst options = {\r\n\t\tinstallButton: element.querySelector(element.dataset.appInstallPromptInstallButtonSelector),\r\n\t\tdismissButton: element.querySelector(element.dataset.appInstallPromptDismissButtonSelector),\r\n\t\tcookieApi: element.dataset.appInstallPromptCookieApi,\r\n\t\tcookieId: element.dataset.appInstallPromptCookieId\r\n\t};\r\n\tconst instance = new AppInstallPrompt(element, options);\r\n\telement.instance = instance;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/app-install-prompt/index.js","import $ from \"jquery\";\r\nimport plugin from \"@core/plugins/lib\";\r\n\r\nconst ELEMENT_SELECTOR = '[data-choose-form]';\r\nconst PLUGIN_NAME = 'chooseForm';\r\n\r\n$(() => {\r\n\t$(ELEMENT_SELECTOR).each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"choose-form\" */ './choose-form'\r\n\t\t).then((module) => {\r\n\t\t\tplugin(PLUGIN_NAME, module.default);\r\n\t\t\t$(element)[PLUGIN_NAME]();\r\n\t\t});\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/choose-form/index--split.js","import $ from \"jquery\";\r\nimport plugin from \"@core/plugins/lib\";\r\n\r\nconst ELEMENT_SELECTOR = \"[data-date-field]\";\r\nconst PLUGIN_NAME = \"dateField\";\r\n\r\n$(() => {\r\n\t$(ELEMENT_SELECTOR).each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"date-field\" */ \"./date-field\"\r\n\t\t).then((module) => {\r\n\t\t\tplugin(PLUGIN_NAME, module.default);\r\n\t\t\t$(element)[PLUGIN_NAME]();\r\n\t\t});\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/date-field/index--split.js","/**\r\n * Will search target for a parent collapsable. If found, \r\n * will trigger collapsable to be open by updating the \r\n * \"data-collapsible-open\" attribute to true, and \r\n * listening for the target to appear before jumping to \r\n * target.\r\n * \r\n * @author Mark Nelson\r\n */\r\n\r\n import $ from \"jquery\";\r\n import debug from \"debug\";\r\n const log = debug(\"disclaimer\");\r\n \r\n //\r\n // Config\r\n // ===========\r\n const DISCLAIMER_SELECTOR = \"[data-disclaimer]\";\r\n\r\nconst waitForElm = function(selector) {\r\n return new Promise(resolve => {\r\n if (document.querySelector(selector)) {\r\n return resolve(document.querySelector(selector));\r\n }\r\n\r\n const observer = new MutationObserver(mutations => {\r\n if (document.querySelector(selector)) {\r\n resolve(document.querySelector(selector));\r\n observer.disconnect();\r\n }\r\n });\r\n\r\n observer.observe(document.body, {\r\n childList: true,\r\n subtree: true\r\n });\r\n });\r\n};\r\n\r\n\r\nconst goToTarget = function (event, collapsable, target) {\r\n console.log(event, collapsable, target);\r\n event.preventDefault();\r\n $(collapsable).attr(\"data-collapsible-open\",\"true\");\r\n\r\n waitForElm(target).then(() => {\r\n window.location.href = target;\r\n });\r\n};\r\n\r\n function init (){\r\n const disclaimerElements = $(DISCLAIMER_SELECTOR);\r\n log(disclaimerElements);\r\n disclaimerElements.each(function(index, element){\r\n\r\n var target = $(element).attr(\"href\");\r\n var collapsable = $(target).closest(\"[data-collapsible]\");\r\n\r\n if(collapsable) {\r\n $(element).on('click', function(event) {\r\n goToTarget(event, collapsable, target);\r\n });\r\n } else{\r\n window.location.href = target;\r\n };\r\n });\r\n \r\n };\r\n \r\n init();\r\n \r\n \n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/disclaimer/index.js","import './quote-cta/index--split';\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/epi-blocks/index.js","import $ from 'jquery';\r\nimport plugin from '@core/plugins/lib';\r\n\r\nconst ELEMENT_SELECTOR = '[data-quote-cta-controller]';\r\nconst PLUGIN_NAME = 'quoteCtaController';\r\n\r\n$(document).ready(() => {\r\n\t$(ELEMENT_SELECTOR).each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"quote-cta\" */ './quote-cta'\r\n\t\t).then((module) => {\r\n\t\t\tplugin(PLUGIN_NAME, module.default);\r\n\t\t\t$(element)[PLUGIN_NAME]();\r\n\t\t});\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/epi-blocks/quote-cta/index--split.js","/*\r\n\tBy Osvaldas Valutis, www.osvaldas.info\r\n\tAvailable for use under the MIT License\r\n*/\r\n\r\n// 'use strict';\r\n\r\n// ;( function ( document, window, index )\r\n// {\r\n// \tvar inputs = document.querySelectorAll( '.field-input-file' );\r\n// \tArray.prototype.forEach.call( inputs, function( input )\r\n// \t{\r\n// \t\tvar label\t = input.nextElementSibling,\r\n// \t\t\tlabelVal = label.innerHTML;\r\n\r\n// \t\tinput.addEventListener( 'change', function( e )\r\n// \t\t{\r\n// \t\t\tvar fileName = '';\r\n// \t\t\tif( this.files && this.files.length > 1 )\r\n// \t\t\t\tfileName = ( this.getAttribute( 'data-multiple-caption' ) || '' ).replace( '{count}', this.files.length );\r\n// \t\t\telse\r\n// \t\t\t\tfileName = e.target.value.split( '\\\\' ).pop();\r\n\r\n// \t\t\tif( fileName )\r\n// \t\t\t\tlabel.querySelector( 'span' ).innerHTML = fileName;\r\n// \t\t\telse\r\n// \t\t\t\tlabel.innerHTML = labelVal;\r\n// \t\t});\r\n\r\n// \t\t// Firefox bug fix\r\n// \t\tinput.addEventListener( 'focus', function(){ input.classList.add( 'has-focus' ); });\r\n// \t\tinput.addEventListener( 'blur', function(){ input.classList.remove( 'has-focus' ); });\r\n// \t});\r\n// }( document, window, 0 ));\r\n\r\n\r\n'use strict';\r\n\r\n;( function( $, window, document, undefined )\r\n{\r\n\t$( '.field-input-file' ).each( function()\r\n\t{\r\n\t\tvar $input\t = $( this ),\r\n\t\t\t$label\t = $input.next( 'label' ),\r\n\t\t\tlabelVal = $label.html();\r\n\r\n\t\t$input.on( 'change', function( e )\r\n\t\t{\r\n\t\t\tvar fileName = '';\r\n\r\n\t\t\tif( this.files && this.files.length > 1 )\r\n\t\t\t\tfileName = ( this.getAttribute( 'data-multiple-caption' ) || '' ).replace( '{count}', this.files.length );\r\n\t\t\telse if( e.target.value )\r\n\t\t\t\tfileName = e.target.value.split( '\\\\' ).pop();\r\n\r\n\t\t\tif( fileName )\r\n\t\t\t\t$label.find( 'span' ).html( fileName );\r\n\t\t\telse\r\n\t\t\t\t$label.html( labelVal );\r\n\t\t});\r\n\r\n\t\t// Firefox bug fix\r\n\t\t$input\r\n\t\t.on( 'focus', function(){ $input.addClass( 'has-focus' ); })\r\n\t\t.on( 'blur', function(){ $input.removeClass( 'has-focus' ); });\r\n\t});\r\n})( jQuery, window, document );\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/forms/input-file.js","/*\r\nJS Components\r\n*/\r\n\r\nimport \"./forms/input-file\";\r\nimport \"./quote-form/index--split\";\r\nimport \"./choose-form/index--split\";\r\nimport \"./selector/index--split\";\r\nimport \"./required-field/index--split\";\r\nimport \"./date-field/index--split\";\r\nimport \"./site-header\";\r\nimport \"./site-header-narrow\";\r\nimport \"./site-nav-narrow\";\r\nimport './modal/index';\r\nimport './epi-blocks';\r\nimport './alerts';\r\nimport './app-install-prompt';\r\nimport './wysiwyg/index';\r\nimport './a-modal/index--split';\r\nimport './disclaimer/index';\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/index.js","import $ from 'jquery';\r\n\r\n// Modaal is not a spelling error!\r\n// It is the name of the 3rd party modal component we are using\r\nexport const ELEMENT_SELECTOR = '[data-modal]';\r\nexport const PLUGIN_NAME = 'modal';\r\n\r\n$(document).ready(() => {\r\n\t$(ELEMENT_SELECTOR).each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"component--modal\" */ './modal'\r\n\t\t).then(() => {\r\n\t\t\t$(element)[PLUGIN_NAME]();\r\n\t\t});\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/modal/index.js","import $ from \"jquery\";\r\nimport plugin from \"@core/plugins/lib\";\r\n\r\nconst ELEMENT_SELECTOR = '[data-quote-form]';\r\nconst PLUGIN_NAME = 'quoteForm';\r\n\r\n$(() => {\r\n\t$(ELEMENT_SELECTOR).each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"quote-form\" */ \"./quote-form\"\r\n\t\t).then((module) => {\r\n\t\t\tplugin(PLUGIN_NAME, module.default);\r\n\t\t\t$(element)[PLUGIN_NAME]();\r\n\t\t});\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/quote-form/index--split.js","import './required-field';\r\n\r\nimport $ from \"jquery\";\r\nimport plugin from \"@core/plugins/lib\";\r\n\r\nconst ELEMENT_SELECTOR = \"[data-required-field]\";\r\nconst PLUGIN_NAME = \"requiredField\";\r\n\r\n$(() => {\r\n\t$(ELEMENT_SELECTOR).each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"required-field\" */ \"./required-field\"\r\n\t\t).then((module) => {\r\n\t\t\tplugin(PLUGIN_NAME, module.default);\r\n\t\t\t$(element)[PLUGIN_NAME]();\r\n\t\t});\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/required-field/index--split.js","import debug from \"debug\";\r\n\r\nconst log = debug(\"required-field\");\r\n\r\nfunction getJSONValue(stringValue) {\r\n\ttry {\r\n\t\treturn JSON.parse(stringValue);\r\n\t} catch (error) {\r\n\t\treturn stringValue;\r\n\t}\r\n}\r\n\r\nconst validators = {\r\n\t'at_least_one_checked': (inputs) => {\r\n\t\treturn inputs.filter((input) => {\r\n\t\t\treturn input.checked;\r\n\t\t}).length > 0 ? '' : 'check at least one';\r\n\t}\r\n};\r\n\r\nclass RequiredField {\r\n\tconstructor(element, options) {\r\n\t\tlog(\"element\", element);\r\n\t\tlog(\"options\", options);\r\n\r\n\t\tthis.options = options;\r\n\t\tthis.element = element;\r\n\r\n\t\tthis.isFieldset = this.element.nodeName === 'FIELDSET';\r\n\r\n\t\tthis.inputSet = [...this.element.querySelectorAll(\r\n\t\t\t`[name=\"${this.options.inputSet}\"]`\r\n\t\t)];\r\n\r\n\t\tthis.input = this.element.querySelector(\r\n\t\t\t`[name=\"${this.options.name}\"]`\r\n\t\t);\r\n\r\n\t\tthis.errorElementSelectorScope =\r\n\t\t\tthis.options.errorSelector[0] === \"#\" ? document : this.element;\r\n\r\n\t\tthis.errorElement = this.errorElementSelectorScope.querySelector(\r\n\t\t\tthis.options.errorSelector\r\n\t\t);\r\n\r\n\t\tthis.showErrors = getJSONValue(this.element.dataset.showErrors);\r\n\r\n\t\tthis.attributeObserver = new MutationObserver(\r\n\t\t\tthis.onAttributeChange.bind(this)\r\n\t\t);\r\n\r\n\t\tif (!this.input && !this.isFieldset) {\r\n\t\t\tlog('Provide either a fieldset with inputs or an input. Aborting');\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.init();\r\n\t\tthis.watch();\r\n\r\n\t\tlog(\"ready\", this, this.element);\r\n\t}\r\n\r\n\tinit() {\r\n\t\tthis.updateValue();\r\n\t}\r\n\r\n\twatch() {\r\n\t\tlog(\"watching\");\r\n\t\tthis.element.addEventListener(\"change\", this.updateValue.bind(this));\r\n\t\tthis.attributeObserver.observe(this.element, { attributes: true });\r\n\t}\r\n\r\n\tisValid() {\r\n\t\t// Presuming this.element is a fieldset\r\n\t\tconst elementToValidate = this.input || this.element;\r\n\t\treturn elementToValidate.validity.valid;\r\n\t}\r\n\r\n\tupdateFieldsetValidity() {\r\n\t\tconst validator = validators[this.options.rule];\r\n\t\tif (!this.isFieldset || !validator) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.element.setCustomValidity(validator(this.inputSet));\r\n\t}\r\n\r\n\tupdateErrorMessage() {\r\n\t\tthis.errorElement.hidden = this.isValid();\r\n\t}\r\n\r\n\tupdateValue() {\r\n\t\tthis.updateFieldsetValidity();\r\n\r\n\t\tif (this.showErrors) {\r\n\t\t\tthis.updateErrorMessage();\r\n\t\t}\r\n\t}\r\n\r\n\tonAttributeChange(mutationList, observer) {\r\n\t\tmutationList\r\n\t\t\t.filter(\r\n\t\t\t\tfunction(mutation) {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\tmutation.type === \"attributes\" &&\r\n\t\t\t\t\t\tmutation.attributeName ===\r\n\t\t\t\t\t\t\tthis.options.componentErrorAttribute\r\n\t\t\t\t\t);\r\n\t\t\t\t}.bind(this)\r\n\t\t\t)\r\n\t\t\t.forEach(this.onShowErrorsChange.bind(this));\r\n\t}\r\n\r\n\tonShowErrorsChange(mutation) {\r\n\t\tthis.showErrors = getJSONValue(this.element.dataset.showErrors);\r\n\t\tthis.updateErrorMessage();\r\n\t}\r\n}\r\n\r\nRequiredField.DEFAULTS = {\r\n\tcomponentErrorAttribute: \"data-show-errors\"\r\n};\r\n\r\nexport default RequiredField;\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/required-field/required-field.js","$(() => {\r\n\t$(\"[data-selector]\").each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"selector\" */ \"./index\"\r\n\t\t);\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/selector/index--split.js","import SiteSearchNarrow from \"./site-search-narrow\";\r\n\r\n\r\nconst siteSearchElements = document.querySelectorAll(\"[data-site-search]\");\r\nconst siteSearchElementsArray = [...siteSearchElements];\r\n\r\nsiteSearchElementsArray.forEach(function(element) {\r\n\tconst options = {\r\n\t\topenButton: document.querySelector(element.dataset.siteSearchOpenButtonSelector),\r\n\t\tfield: element.querySelector(element.dataset.siteSearchFieldSelector),\r\n\t\toverlay: document.querySelector(element.dataset.siteSearchOverlaySelector),\r\n\t\tsiteHeader: document.querySelector(element.dataset.siteSearchHeaderSelector),\r\n\t};\r\n\r\n\tconst instance = new SiteSearchNarrow(element, options);\r\n\telement.instance = instance;\r\n});\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/site-header-narrow/index.js","export default class SiteSearchNarrow {\r\n\tconstructor(element, options) {\r\n\t\tthis.element = element;\r\n\t\tthis.options = options;\r\n\r\n\t\t// get references to required elements\r\n\t\tthis.openButton = this.options.openButton;\r\n\t\tthis.field = this.options.field;\r\n\t\tthis.overlay = this.options.overlay;\r\n\t\tthis.siteHeader = this.options.siteHeader;\r\n\t\tthis.invalidClass = \"invalid\";\r\n\r\n\t\tthis.boundOnFocus = this.onFocus.bind(this);\r\n\r\n\t\tthis.init();\r\n\t\tthis.watch();\r\n\t}\r\n\r\n\tinit() {}\r\n\r\n\twatch() {\r\n\t\tthis.openButton.addEventListener(\"click\", this.toggleSearch.bind(this));\r\n\t\tthis.overlay.addEventListener(\"click\", this.closeSiteSearch.bind(this));\r\n\r\n\t\t// Validation actually doesn't happen on current live site even though it was in the previous JS.\r\n\t\t// this.element.addEventListener('submit', this.onSearchSubmit.bind(this));\r\n\t\t// this.field.addEventListener('keydown', this.resetValidation.bind(this));\r\n\t\t// this.field.addEventListener('change', this.resetValidation.bind(this));\r\n\t}\r\n\r\n\topenSiteSearch() {\r\n\t\tthis.element.removeAttribute(\"hidden\");\r\n\t\tthis.overlay.removeAttribute(\"hidden\");\r\n\t\tthis.openButton.setAttribute(\"aria-expanded\", \"true\");\r\n\t\tthis.field.focus();\r\n\r\n\t\tthis.detectFocusLoss();\r\n\t}\r\n\r\n\tcloseSiteSearch() {\r\n\t\tthis.element.setAttribute(\"hidden\", \"\");\r\n\t\tthis.overlay.setAttribute(\"hidden\", \"\");\r\n\t\tthis.openButton.setAttribute(\"aria-expanded\", \"false\");\r\n\r\n\t\tthis.removeFocusLossDetection();\r\n\t}\r\n\r\n\ttoggleSearch() {\r\n\t\tif (this.openButton.getAttribute(\"aria-expanded\") === \"true\") {\r\n\t\t\tthis.closeSiteSearch();\r\n\t\t} else {\r\n\t\t\tthis.openSiteSearch();\r\n\t\t}\r\n\t}\r\n\r\n\tonSearchSubmit(event) {\r\n\t\tvar searchQuery = this.field.value;\r\n\t\tif (searchQuery.trim() === \"\") {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tthis.field.setAttribute(\"aria-invalid\", \"true\");\r\n\t\t\tthis.field.focus();\r\n\t\t}\r\n\t}\r\n\r\n\tresetValidation() {\r\n\t\tthis.field.setAttribute(\"aria-invalid\", \"false\");\r\n\t}\r\n\r\n\tdetectFocusLoss() {\r\n\t\tdocument.addEventListener(\"focus\", this.boundOnFocus, true);\r\n\t}\r\n\r\n\tremoveFocusLossDetection() {\r\n\t\tdocument.removeEventListener(\"focus\", this.boundOnFocus, true);\r\n\t}\r\n\r\n\t// Bound to this in the constructor as this.boundOnFocus\r\n\tonFocus(event) {\r\n\t\tif (!this.siteHeader.contains(event.target)) {\r\n\t\t\tthis.closeSiteSearch();\r\n\t\t}\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/site-header-narrow/site-search-narrow.js","import \"./site-header-controller\";\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/site-header/index.js","import $ from 'jquery';\r\nimport debug from 'debug';\r\nimport plugin from '@core/plugins/lib';\r\n\r\nconst ELEMENT_SELECTOR = '[data-header-controller]';\r\nconst PLUGIN_NAME = 'headerController';\r\n\r\nconst log = debug('site-header/header-controller:header');\r\n\r\nclass HeaderController {\r\n\tconstructor(element, options) {\r\n\t\tlog('element', element);\r\n\t\tlog('options', options);\r\n\r\n\t\tthis.options = options;\r\n\t\tthis.element = element;\r\n\t\tthis.$element = $(element);\r\n\r\n\t\tthis.collapsibles = [...this.element.querySelectorAll(this.options.collapsibleSelector)];\r\n\t\tthis.overlay = document.querySelector(this.options.overlaySelector);\r\n\r\n\t\tthis.watch();\r\n\r\n\t\tlog('ready', this, this.$target);\r\n\t}\r\n\r\n\twatch() {\r\n\t\tlog('watching');\r\n\r\n\t\tthis.element.addEventListener('collapsibleOpened', this.handleOpening.bind(this));\r\n\t\tthis.element.addEventListener('collapsibleClosed', this.handleClosing.bind(this));\r\n\r\n\t\tif(this.overlay) {\r\n\t\t\tthis.overlay.addEventListener('click', this.closeAllCollapsibles.bind(this));\r\n\t\t}\r\n\t}\r\n\r\n\tcloseAllCollapsibles(){\r\n\t\tthis.collapsibles.forEach((item) => {\r\n\t\t\tconst collapseStateAttr = item.dataset['headerController-Collapsible'];\r\n\t\t\titem.dataset[collapseStateAttr] = false;\r\n\t\t});\r\n\t\tthis.hideOverlay();\r\n\t}\r\n\r\n\tcloseOtherCollapsibles(opener){\r\n\t\tconst toCollapse = this.collapsibles.filter(function(item) {\r\n\t\t\treturn item !== opener;\r\n\t\t});\r\n\r\n\t\ttoCollapse.forEach((item) => {\r\n\t\t\tconst collapseStateAttr = item.dataset['headerController-Collapsible'];\r\n\t\t\titem.dataset[collapseStateAttr] = false;\r\n\t\t});\r\n\t}\r\n\r\n\thandleOpening(event){\r\n\t\tconst opener = event.target;\r\n\t\tthis.closeOtherCollapsibles(opener);\r\n\t\tthis.displayOverlay();\r\n\t}\r\n\r\n\t// Presumes the closing event is called only when the collapsible closes itself\r\n\t//\tNot when it is closed externally\r\n\thandleClosing(event){\r\n\t\tthis.hideOverlay();\r\n\t}\r\n\r\n\tdisplayOverlay(){\r\n\t\tif(this.overlay) {\r\n\t\t\tthis.overlay.hidden = false;\r\n\t\t}\r\n\t}\r\n\r\n\thideOverlay(){\r\n\t\tif(this.overlay) {\r\n\t\t\tthis.overlay.hidden = true;\r\n\t\t}\r\n\t}\r\n\r\n\r\n}\r\n\r\nHeaderController.DEFAULTS = {};\r\n\r\nplugin(PLUGIN_NAME, HeaderController);\r\n\r\n$(document).ready(() => {\r\n\t$(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n});\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/site-header/site-header-controller.js","import SiteNavNarrow from \"./site-nav-narrow\";\r\n\r\nconst siteNavElements = document.querySelectorAll(\"[data-site-nav-narrow]\");\r\nconst siteNavElementsArray = [...siteNavElements];\r\n\r\nsiteNavElementsArray.forEach(function(element) {\r\n\tconst options = {\r\n\t\topenButton: document.querySelector(element.dataset.siteNavNarrowOpenButtonSelector),\r\n\t\tcloseButton: element.querySelector(element.dataset.siteNavNarrowCloseButtonSelector),\r\n\t\toverlay: document.querySelector(element.dataset.siteNavNarrowOverlaySelector),\r\n\t\tsiteHeader: document.querySelector(element.dataset.siteNavNarrowHeaderSelector),\r\n\t\tsiteHeaderNarrow: document.querySelector(element.dataset.siteNavNarrowHeaderNarrowSelector),\r\n\t\tsiteSearch: document.querySelector(element.dataset.siteNavNarrowSearchSelector),\r\n\t\topenClass: element.dataset.siteNavNarrowOpenClass,\r\n\t};\r\n\r\n\tconst instance = new SiteNavNarrow(element, options);\r\n\telement.instance = instance;\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/site-nav-narrow/index.js","// import debug from \"debug\";\r\n// const log = debug('site-nav-narrow');\r\n\r\nexport default class SiteNavNarrow {\r\n\tconstructor(element, options) {\r\n\t\tthis.element = element;\r\n\t\tthis.options = options;\r\n\r\n\t\t// get references to required elements\r\n\t\tthis.openButton = this.options.openButton;\r\n\t\tthis.closeButton = this.options.closeButton;\r\n\t\tthis.overlay = this.options.overlay;\r\n\t\tthis.openClass = this.options.openClass;\r\n\t\tthis.siteHeader = this.options.siteHeader;\r\n\t\tthis.siteHeaderNarrow = this.options.siteHeaderNarrow;\r\n\t\tthis.siteSearch = this.options.siteSearch;\r\n\r\n\t\tthis.boundOnFocus = this.onFocus.bind(this);\r\n\t\tthis.boundDismissalListener = this.dismissalListener.bind(this);\r\n\r\n\t\t// If you are changing this breakpoint:\r\n\t\t// Be sure to change the SASS setting $settings__wide_header_breakpoint to match\r\n\t\t// client\\src\\site__def\\sass-settings\\breakpoints.scss\r\n\t\tthis.mediaQuery = window.matchMedia(\"(min-width: 64em)\");\r\n\r\n\t\tthis.init();\r\n\t\tthis.watch();\r\n\t}\r\n\r\n\tinit() {\r\n\t\t// initial state is hidden\r\n\t\tthis.makeNavigationUnreachable();\r\n\t}\r\n\r\n\twatch() {\r\n\t\tthis.openButton.addEventListener(\r\n\t\t\t\"click\",\r\n\t\t\tthis.openSiteNavigation.bind(this)\r\n\t\t);\r\n\t\tthis.closeButton.addEventListener(\r\n\t\t\t\"click\",\r\n\t\t\tthis.closeSiteNavigation.bind(this)\r\n\t\t);\r\n\t\tthis.overlay.addEventListener(\r\n\t\t\t\"click\",\r\n\t\t\tthis.closeSiteNavigation.bind(this)\r\n\t\t);\r\n\t\tthis.element.addEventListener(\r\n\t\t\t\"click\",\r\n\t\t\tthis.dismissalListener.bind(this)\r\n\t\t);\r\n\r\n\t\tthis.mediaQuery.addListener(this.onMediaQueryChange.bind(this));\r\n\t}\r\n\r\n\topenSiteNavigation() {\r\n\t\t// close the site search (method defined in site-search.js)\r\n\t\tif (this.siteSearch && this.siteSearch.instance) {\r\n\t\t\tthis.siteSearch.instance.closeSiteSearch();\r\n\t\t}\r\n\r\n\t\t// Remove interaction blocking from nav\r\n\t\tthis.makeNavigationReachable();\r\n\r\n\t\t// Slides the menu open\r\n\t\tthis.element.classList.add(this.openClass);\r\n\r\n\t\t// Shows the overlay\r\n\t\tthis.overlay.removeAttribute(\"hidden\");\r\n\r\n\t\t// Focus the close button\r\n\t\tthis.closeButton.focus();\r\n\r\n\t\t// Adds interaction blocking to rest of page\r\n\t\tthis.makePageContentUnreachable();\r\n\r\n\t\t// Adds focus restriction for nav\r\n\t\tthis.restrictFocus();\r\n\r\n\t\t// Adds dismissal listener\r\n\t\tthis.addDismissalListener();\r\n\t}\r\n\r\n\tcloseSiteNavigation() {\r\n\t\t// Removes interaction blocking from rest of page\r\n\t\tthis.makePageContentReachable();\r\n\r\n\t\t// Removes focus restriction for nav\r\n\t\tthis.removeFocusRestriction();\r\n\r\n\t\t// Slides the menu closed\r\n\t\tthis.element.classList.remove(this.openClass);\r\n\r\n\t\t// Hides the overlay\r\n\t\tthis.overlay.setAttribute(\"hidden\", \"\");\r\n\r\n\t\t// Focus the open button\r\n\t\tthis.openButton.focus();\r\n\r\n\t\t// Adds interaction blocking to nav\r\n\t\tthis.makeNavigationUnreachable();\r\n\r\n\t\t// Removes the dismissal listener\r\n\t\tthis.removeDismissalListener();\r\n\t}\r\n\r\n\tmakeNavigationUnreachable() {\r\n\t\t// block screen reader access\r\n\t\tthis.element.setAttribute(\"aria-hidden\", true);\r\n\r\n\t\t// block keyboard access\r\n\t\tvar interactiveElements = this.element.querySelectorAll(\"a,button\");\r\n\t\tfor (var i = 0; i < interactiveElements.length; i++) {\r\n\t\t\tvar element = interactiveElements[i];\r\n\t\t\telement.setAttribute(\"tabindex\", -1);\r\n\t\t}\r\n\t}\r\n\r\n\tmakeNavigationReachable() {\r\n\t\t// reinstates screen reader access\r\n\t\tthis.element.removeAttribute(\"aria-hidden\");\r\n\r\n\t\t// reinstates keyboard access\r\n\t\tvar interactiveElements = this.element.querySelectorAll(\"a,button\");\r\n\t\tfor (var i = 0; i < interactiveElements.length; i++) {\r\n\t\t\tvar element = interactiveElements[i];\r\n\t\t\telement.removeAttribute(\"tabindex\");\r\n\t\t}\r\n\t}\r\n\r\n\tmakePageContentUnreachable() {\r\n\t\tconst pageElements = document.querySelectorAll(\"body > *\");\r\n\t\tconst pageElementsArray = Array.prototype.slice.call(pageElements);\r\n\t\tconst siteHeader = this.siteHeader;\r\n\r\n\t\tpageElementsArray.forEach(function (element) {\r\n\t\t\tconst isSiteHeader = element == siteHeader;\r\n\t\t\tif (!isSiteHeader) {\r\n\t\t\t\telement.setAttribute(\"aria-hidden\", true);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.siteHeaderNarrow.setAttribute(\"aria-hidden\", true);\r\n\t}\r\n\r\n\tmakePageContentReachable() {\r\n\t\tconst pageElements = document.querySelectorAll(\"body > *\");\r\n\t\tconst pageElementsArray = Array.prototype.slice.call(pageElements);\r\n\t\tconst siteHeader = this.siteHeader;\r\n\r\n\t\tpageElementsArray.forEach(function (element) {\r\n\t\t\tconst isSiteHeader = element == siteHeader;\r\n\t\t\tif (!isSiteHeader) {\r\n\t\t\t\telement.removeAttribute(\"aria-hidden\");\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.siteHeaderNarrow.removeAttribute(\"aria-hidden\");\r\n\t}\r\n\r\n\trestrictFocus() {\r\n\t\tdocument.addEventListener(\"focus\", this.boundOnFocus, true);\r\n\t}\r\n\r\n\tremoveFocusRestriction() {\r\n\t\tdocument.removeEventListener(\"focus\", this.boundOnFocus, true);\r\n\t}\r\n\r\n\t// Bound to this in the constructor as this.boundOnFocus\r\n\tonFocus(event) {\r\n\t\tif (!this.element.contains(event.target)) {\r\n\t\t\tevent.stopPropagation();\r\n\t\t\tthis.focusNav();\r\n\t\t}\r\n\t}\r\n\r\n\tfocusNav() {\r\n\t\tvar focusableElement = this.element.querySelector(\r\n\t\t\t\"input,select,button,a[href]\"\r\n\t\t);\r\n\t\tif (focusableElement) {\r\n\t\t\tfocusableElement.focus();\r\n\t\t} else {\r\n\t\t\tthis.closeButton.focus();\r\n\t\t}\r\n\t}\r\n\r\n\taddDismissalListener() {\r\n\t\tdocument.addEventListener(\"keydown\", this.boundDismissalListener);\r\n\t}\r\n\r\n\tremoveDismissalListener() {\r\n\t\tdocument.removeEventListener(\"keydown\", this.boundDismissalListener);\r\n\t}\r\n\r\n\t// Bound to this in the constructor as this.boundDismissalListener\r\n\tdismissalListener(event) {\r\n\t\tvar isTargetInModal = this.element.contains(event.target);\r\n\t\tvar wasEscapePressed = event.keyCode === 27;\r\n\t\tvar hasKeyCode = event.keyCode ? true : false;\r\n\t\tif (wasEscapePressed || (!hasKeyCode && !isTargetInModal)) {\r\n\t\t\tthis.closeSiteNavigation();\r\n\t\t}\r\n\t}\r\n\r\n\tonMediaQueryChange(event) {\r\n\t\tif (event.matches) {\r\n\t\t\tthis.transitionToWide();\r\n\t\t} else {\r\n\t\t\tthis.transitionToNarrow();\r\n\t\t}\r\n\t}\r\n\r\n\ttransitionToWide() {\r\n\t\t// when transitioning to wide, close the navigation\r\n\t\tthis.closeSiteNavigation();\r\n\t}\r\n\r\n\ttransitionToNarrow() {\r\n\t\t// when transitioning to narrow, reset focus to open button (if focus is in header)\r\n\t\tif (this.siteHeader.contains(document.activeElement)) {\r\n\t\t\tthis.openButton.focus();\r\n\t\t}\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/site-nav-narrow/site-nav-narrow.js","import \"./table-cell-icons\";\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/wysiwyg/index.js","/**\r\n * Table Cell Icons\r\n * Replaces table cell content based on cell content.\r\n * @author Rhys Lloyd\r\n */\r\n\r\nimport $ from \"jquery\";\r\nimport debug from 'debug';\r\nconst log = debug('core/components/wysiwyg/table-cell-icons');\r\n\r\n// Constants\r\nconst TABLE_DATA_ATTRIBUTE = 'data-table-icons';\r\nconst TABLE_IGNORE = 'ignore';\r\nconst ICON_KEYWORDS = ['yes', 'restricted', 'no'];\r\nconst ICON_BRACKET_OPEN = '[';\r\nconst ICON_BRACKET_CLOSE = ']';\r\nconst KEYWORD_ICON = {\r\n\t'yes': 'covered',\r\n\t'restricted': 'restricted',\r\n\t'no': 'excluded'\r\n};\r\n\r\nfunction getIconClassString(keyword) {\r\n\treturn `icon--${keyword}`;\r\n}\r\n\r\nfunction keywordFormatter(keyword) {\r\n\treturn `${ICON_BRACKET_OPEN}${keyword}${ICON_BRACKET_CLOSE}`;\r\n}\r\n\r\n//noinspection SpellCheckingInspection\r\nfunction keywordUnformatter(keyword) {\r\n\treturn keyword.substring(ICON_BRACKET_OPEN.length, keyword.length - ICON_BRACKET_CLOSE.length);\r\n}\r\n\r\nfunction iconLookup(keyword) {\r\n\treturn KEYWORD_ICON[keyword] || keyword;\r\n}\r\n\r\n/**\r\n * Run plugin\r\n */\r\nfunction exec () {\r\n\tlog('Running...');\r\n\r\n\t// Find tables\r\n\tlet $tables = $('table').filter(`:not([${TABLE_DATA_ATTRIBUTE}=\"${TABLE_IGNORE}\"])`);\r\n\r\n\tif (!$tables.length) {\r\n\t\tlog('No tables to parse.');\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Add data attribute - in progress value\r\n\t$tables.attr(TABLE_DATA_ATTRIBUTE, 'in-progress');\r\n\tlog('Parsing tables', $tables);\r\n\r\n\t// Cell icon template\r\n\tlet $labelTemplate = $('').addClass('icon__label u-visually-hidden'),\r\n\t\t$iconTemplate = $('').addClass('icon');\r\n\r\n\t// Match replacer - nested function for closure access to $iconTemplate\r\n\tfunction keywordReplacer(match) {\r\n\t\tconst keyword = keywordUnformatter(match),\r\n\t\t\ticonName = iconLookup(keyword),\r\n\t\t\t$label = $labelTemplate.clone().text(keyword);\r\n\r\n\t\treturn $iconTemplate.clone()\r\n\t\t\t.addClass(getIconClassString(iconName))\r\n\t\t\t.addClass(`keyword-icon keyword-icon--${keyword}`)\r\n\t\t\t.append($label)\r\n\t\t\t.prop('outerHTML');\r\n\t}\r\n\r\n\t// Loop through all TD cells\r\n\t$tables.find('td').each(function () {\r\n\t\tlet $this = $(this);\r\n\r\n\t\t// For each keyword, loop through cell contents and replace\r\n\t\t// keyword with icon template\r\n\t\tfor (let keyword of ICON_KEYWORDS) {\r\n\t\t\tlet original = $this.html(),\r\n\t\t\t\tupdated = original.replace(keywordFormatter(keyword), keywordReplacer);\r\n\r\n\t\t\tif (original !== updated) {\r\n\t\t\t\tlog('Replacing cell contents:\\nOriginal:', original, '\\nUpdated:', updated);\r\n\t\t\t\t$this.html(updated);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t// Set data attribute to indicate done\r\n\t$tables.attr(TABLE_DATA_ATTRIBUTE, true);\r\n}\r\n\r\nexec();\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/wysiwyg/table-cell-icons.js","import $ from 'jquery';\r\nimport debug from \"debug\";\r\n\r\n// See polyfills bundle - this should not be needed here too\r\n// import \"./polyfills\";\r\nimport \"./plugins\";\r\nimport \"./components\";\r\nimport \"./vendor\";\r\n\r\nconst log = debug('fusion-core');\r\n\r\n$(()=>{\r\n\tlog('ready');\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/index.js","/*\r\nJquery Plugins\r\n\r\nThese jquery plugins aim to be used on several levels:\r\n\r\n1. firstly with data attributes in your html\r\n2. secondly as html instance methods once instantiated\r\n3. thirdly via event bus\r\n\r\nSee `Core.Global.Javascript.JqueryPlugin`\r\n\r\n```\r\nTodo\r\n\r\n[.*]--emit-before=\"\"\r\n[.*]--emit-after=\"\"\r\n[.*]--emit-success=\"\"\r\n[.*]--emit-error=\"\"\r\n\r\ndata-navigate\r\ndata-navigate--on=\"click\"\r\ndata-navigate--if=\"\"\r\ndata-navigate--url=\"/some/thing\"\r\n\r\n```\r\n\r\nStyleguide Global.Javascript\r\n*/\r\n\r\nimport \"./jquery__collapsible/plugin--bundled\";\r\nimport \"./jquery__mega-link/plugin--bundled\";\r\nimport \"./jquery__sync-theme/plugin--bundled\";\r\nimport \"./jquery__radio-selection/plugin--bundled\";\r\nimport \"./jquery__form-loading/plugin--bundled\";\r\nimport \"./jquery__toggle-element-classes\";\r\nimport \"./jquery__remove-element-classes\";\r\nimport \"./jquery__add-element-classes\";\r\nimport \"./jquery__focus-within\";\r\nimport \"./jquery__focus\";\r\nimport \"./jquery__emit-on-dirty\";\r\nimport \"./jquery__trigger-event\";\r\n\r\n// import \"./jquery__element-transitions\";\r\n// import \"./jquery__anchor-element\";\r\n// import \"./jquery__broadcast-events\";\r\n// import \"./jquery__analytics-trigger\";\r\n// import \"./jquery__execute-method\";\r\n// import \"./jquery__responsive-tables\";\r\n// import \"./jquery__responsive-video\";\r\n\r\n\r\n// import \"./jquery__transport-elements\";\r\n// import \"./jquery__mediaquery-sensor\";\r\n// import \"./jquery__ajax-queue\";\r\n// import \"./jquery__manifest-asset\";\r\n// import \"./jquery__sticky\";\r\n// import \"./jquery__truncate-text\";\r\n// import \"./jquery__prevent-default\";\r\n// import \"./jquery__stop-propagation\";\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/index.js","\r\nimport $ from 'jquery';\r\n\r\nexport const ELEMENT_SELECTOR = '[data-add-element-classes]';\r\nexport const PLUGIN_NAME = 'AddElementClasses';\r\n\r\n$(document).ready(() => {\r\n $(ELEMENT_SELECTOR).each(function () {\r\n const element = this;\r\n System.import(/* webpackChunkName: \"plugin--add-element-classes\" */ './plugin')\r\n .then(() => {\r\n $(element)[PLUGIN_NAME]();\r\n });\r\n });\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__add-element-classes/index.js","import debug from \"debug\";\r\n\r\nconst log = debug(\"collapsible\");\r\n\r\nfunction getJSONValue(stringValue) {\r\n\ttry {\r\n\t\treturn JSON.parse(stringValue);\r\n\t} catch (error) {\r\n\t\treturn stringValue;\r\n\t}\r\n}\r\n\r\nclass Collapsible {\r\n\tconstructor(element, options) {\r\n\t\tthis.element = element;\r\n\t\tthis.options = options;\r\n\r\n\t\tconst scopes = {\r\n\t\t\tdocument: document,\r\n\t\t\telement: this.element\r\n\t\t};\r\n\r\n\t\t//\tLook for the content element within this element or elsewhere\r\n\t\tconst contentSelectorIsId =\r\n\t\t\tthis.options.contentSelector &&\r\n\t\t\tthis.options.contentSelector[0] === \"#\";\r\n\r\n\t\tif (contentSelectorIsId) {\r\n\t\t\tthis.contentSelectorScope = scopes[\"document\"];\r\n\t\t} else {\r\n\t\t\tthis.contentSelectorScope = scopes[\r\n\t\t\t\tthis.options.contentSelectorScope\r\n\t\t\t]\r\n\t\t\t\t? scopes[this.options.contentSelectorScope]\r\n\t\t\t\t: scopes[\"element\"];\r\n\t\t}\r\n\r\n\t\t// if no button is specified perhaps this is the button\r\n\t\tthis.button = this.options.buttonSelector\r\n\t\t\t? this.element.querySelector(this.options.buttonSelector)\r\n\t\t\t: this.element;\r\n\r\n\t\t// Content is optional\r\n\t\t//\twe may be toggling with CSS based on aria-expanded button attr\r\n\t\tthis.content =\r\n\t\t\tthis.options.contentSelector &&\r\n\t\t\tthis.contentSelectorScope.querySelector(\r\n\t\t\t\tthis.options.contentSelector\r\n\t\t\t);\r\n\t\tthis.collapseWith = this.options.collapsedClass ? \"class\" : \"hidden\";\r\n\t\tthis.collapsedClass = this.options.collapsedClass;\r\n\r\n\t\tthis.toggleMethod =\r\n\t\t\tthis.collapseWith === \"class\"\r\n\t\t\t\t? this.toggleWithClass\r\n\t\t\t\t: this.toggleWithHidden;\r\n\r\n\t\tthis.attributeObserver = new MutationObserver(\r\n\t\t\tthis.onAttributeChange.bind(this)\r\n\t\t);\r\n\r\n\t\tthis.bindDocumentEvents = this.options.closeWithDocumentClick\r\n\t\t\t? this.bindDocumentClick\r\n\t\t\t: function() {};\r\n\r\n\t\tthis.unbindDocumentEvents = this.options.closeWithDocumentClick\r\n\t\t\t? this.unbindDocumentClick\r\n\t\t\t: function() {};\r\n\r\n\t\tthis.init();\r\n\t\tthis.watch();\r\n\t}\r\n\r\n\tinit() {\r\n\t\t// component enabled - show the button\r\n\t\tthis.button.hidden = false;\r\n\r\n\t\t// Determine initial collapse state\r\n\t\t//\tif set open option determines init state\r\n\t\tvar doCollapse =\r\n\t\t\tthis.options.open !== undefined ? !this.options.open : true;\r\n\r\n\t\tthis.toggleMethod(doCollapse);\r\n\t\tthis.isCollapsed = doCollapse;\r\n\t}\r\n\r\n\twatch() {\r\n\t\tthis.button.addEventListener(\"click\", this.toggle.bind(this));\r\n\t\tthis.attributeObserver.observe(this.element, { attributes: true });\r\n\t}\r\n\r\n\ttoggleWithHidden(doCollapse) {\r\n\t\tthis.button.setAttribute(\"aria-expanded\", !doCollapse);\r\n\r\n\t\tif (!this.content) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tthis.content.hidden = doCollapse;\r\n\t}\r\n\r\n\ttoggleWithClass(doCollapse) {\r\n\t\tthis.button.setAttribute(\"aria-expanded\", !doCollapse);\r\n\r\n\t\tif (!this.content) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (doCollapse) {\r\n\t\t\tthis.content.classList.add(this.collapsedClass);\r\n\t\t} else {\r\n\t\t\tthis.content.classList.remove(this.collapsedClass);\r\n\t\t}\r\n\t}\r\n\r\n\t// button click handler\r\n\ttoggle() {\r\n\t\tif (!this.options.selfClosing && !this.isCollapsed) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tconst handler = this.isCollapsed\r\n\t\t\t? this.open.bind(this)\r\n\t\t\t: this.close.bind(this);\r\n\t\thandler();\r\n\t}\r\n\r\n\topen() {\r\n\t\tthis.toggleMethod(false);\r\n\t\tthis.isCollapsed = false;\r\n\t\tthis.element.dataset.collapsibleOpen = true;\r\n\t\tthis.bindDocumentEvents();\r\n\r\n\t\tconst openedEvent = new CustomEvent(this.options.onUncollapse, {\r\n\t\t\tbubbles: true,\r\n\t\t\tcancelable: true,\r\n\t\t\t// detail: {}\r\n\t\t});\r\n\r\n\t\tthis.element.dispatchEvent(openedEvent);\r\n\t}\r\n\r\n\tclose() {\r\n\t\tthis.toggleMethod(true);\r\n\t\tthis.isCollapsed = true;\r\n\t\tthis.element.dataset.collapsibleOpen = false;\r\n\t\tthis.unbindDocumentEvents();\r\n\r\n\t\tconst closedEvent = new CustomEvent(this.options.onCollapse, {\r\n\t\t\tbubbles: true,\r\n\t\t\tcancelable: true\r\n\t\t});\r\n\r\n\t\tthis.element.dispatchEvent(closedEvent);\r\n\t}\r\n\r\n\tbindDocumentClick() {\r\n\t\tdocument.addEventListener(\"click\", this.onDocumentClick.bind(this));\r\n\t}\r\n\r\n\tunbindDocumentClick() {\r\n\t\tdocument.removeEventListener(\"click\", this.onDocumentClick);\r\n\t}\r\n\r\n\tonDocumentClick(event) {\r\n\t\tconst clickTarget = event.target;\r\n\r\n\t\t// clicked this.button\r\n\t\tif (clickTarget === this.button || this.button.contains(clickTarget)) {\r\n\t\t\tlog(\"clicked button\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// clicked this.content\r\n\t\tif (\r\n\t\t\tthis.content &&\r\n\t\t\t(clickTarget === this.content || this.content.contains(clickTarget))\r\n\t\t) {\r\n\t\t\tlog(\"clicked content or inside it\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.close();\r\n\t}\r\n\r\n\tonAttributeChange(mutationList, observer) {\r\n\t\tmutationList\r\n\t\t\t.filter(mutation => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\tmutation.type === \"attributes\" &&\r\n\t\t\t\t\tmutation.attributeName.startsWith(\"data-collapsible-open\")\r\n\t\t\t\t);\r\n\t\t\t})\r\n\t\t\t.forEach(this.onOpenChanged.bind(this));\r\n\t}\r\n\r\n\tonOpenChanged(mutation) {\r\n\t\tconst doCollapse = !getJSONValue(this.element.dataset.collapsibleOpen);\r\n\t\tif (this.isCollapsed !== doCollapse) {\r\n\t\t\tthis.toggleMethod(doCollapse);\r\n\t\t\tthis.isCollapsed = doCollapse;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nCollapsible.DEFAULTS = {\r\n\tselfClosing: true,\r\n\tonCollapse: 'collapsibleClosed',\r\n\tonUncollapse: 'collapsibleOpened'\r\n};\r\n\r\nexport default Collapsible;\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__collapsible/collapsible.js","import $ from 'jquery';\r\nimport plugin from '@core/plugins/lib';\r\nimport Collapsible from './collapsible';\r\n\r\nconst ELEMENT_SELECTOR = '[data-collapsible]';\r\nconst PLUGIN_NAME = 'Collapsible';\r\n\r\nplugin(PLUGIN_NAME, Collapsible);\r\n\r\n$(document).ready(() => {\r\n\t$(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__collapsible/plugin--bundled.js","import $ from 'jquery';\r\n\r\nexport const ELEMENT_SELECTOR = '[data-emit-on-dirty]';\r\nexport const PLUGIN_NAME = 'EmitOnDirty';\r\n\r\n\r\n$(document).ready(() => {\r\n $(ELEMENT_SELECTOR).each(function () {\r\n const element = this;\r\n System.import(/* webpackChunkName: \"plugin--emit-on-dirty\" */ './plugin')\r\n .then(() => {\r\n $(element)[PLUGIN_NAME]();\r\n });\r\n });\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__emit-on-dirty/index.js","import $ from 'jquery';\r\n\r\nexport const ELEMENT_SELECTOR = '[data-focus-within]';\r\nexport const PLUGIN_NAME = 'FocusWithin';\r\n\r\n$(document).ready(() => {\r\n $(ELEMENT_SELECTOR).each(function () {\r\n const element = this;\r\n System.import(/* webpackChunkName: \"plugin--focus-within\" */ './plugin')\r\n .then(() => {\r\n $(element)[PLUGIN_NAME]();\r\n });\r\n });\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__focus-within/index.js","import $ from 'jquery';\r\n\r\nexport const ELEMENT_SELECTOR = '[data-focus-element]';\r\nexport const PLUGIN_NAME = 'FocusElement';\r\n\r\n\r\n$(document).ready(() => {\r\n $(ELEMENT_SELECTOR).each(function () {\r\n const element = this;\r\n System.import(/* webpackChunkName: \"plugin--focus-element\" */ './plugin')\r\n .then(() => {\r\n $(element)[PLUGIN_NAME]();\r\n });\r\n });\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__focus/index.js","class FormLoading {\r\n\tconstructor(element, options) {\r\n\t\tthis.element = element;\r\n\t\tthis.options = options;\r\n\t\tthis.watch();\r\n\t}\r\n\r\n\twatch() {\r\n\t\tthis.element.addEventListener(\"submit\", this.applyLoadingState.bind(this));\r\n\t}\r\n\r\n\tapplyLoadingState() {\r\n\t\tthis.element.dataset[this.options.dataKey] = this.options.dataValue;\r\n\t}\r\n}\r\n\r\nFormLoading.DEFAULTS = {\r\n\tdataKey: 'state',\r\n\tdataValue: 'loading'\r\n};\r\nexport default FormLoading;\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__form-loading/form-loading.js","import $ from 'jquery';\r\nimport plugin from '@core/plugins/lib';\r\nimport FormLoading from './form-loading';\r\n\r\nconst ELEMENT_SELECTOR = '[data-form-loading]';\r\nconst PLUGIN_NAME = 'FormLoading';\r\n\r\nplugin(PLUGIN_NAME, FormLoading);\r\n\r\n$(document).ready(() => {\r\n\t$(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__form-loading/plugin--bundled.js","import debug from \"debug\";\r\n\r\nconst log = debug(\"mega-link\");\r\n\r\nfunction getJSONValue(stringValue) {\r\n\ttry {\r\n\t\treturn JSON.parse(stringValue);\r\n\t} catch (error) {\r\n\t\treturn stringValue;\r\n\t}\r\n}\r\n\r\nclass MegaLink {\r\n\tconstructor(element, options) {\r\n\t\tthis.element = element; // li\r\n\t\tthis.options = options;\r\n\r\n\t\tconst scopes = {\r\n\t\t\tdocument: document,\r\n\t\t\telement: this.element\r\n\t\t};\r\n\r\n\t\t//\tLook for the content element within this element or elsewhere\r\n\t\tconst contentSelectorIsId =\r\n\t\t\tthis.options.contentSelector &&\r\n\t\t\tthis.options.contentSelector[0] === \"#\";\r\n\r\n\t\tif (contentSelectorIsId) {\r\n\t\t\tthis.contentSelectorScope = scopes[\"document\"];\r\n\t\t} else {\r\n\t\t\tthis.contentSelectorScope = scopes[\r\n\t\t\t\tthis.options.contentSelectorScope\r\n\t\t\t]\r\n\t\t\t\t? scopes[this.options.contentSelectorScope]\r\n\t\t\t\t: scopes[\"element\"];\r\n\t\t}\r\n\r\n\t\tthis.link = this.element.querySelector(this.options.linkSelector);\r\n\t\tthis.button = this.element.querySelector(this.options.buttonSelector);\r\n\r\n\t\tthis.content = this.contentSelectorScope.querySelector(\r\n\t\t\tthis.options.contentSelector\r\n\t\t);\r\n\t\tthis.collapseWith = this.options.collapsedClass ? \"class\" : \"hidden\";\r\n\t\tthis.collapsedClass = this.options.collapsedClass;\r\n\r\n\t\tthis.toggleMethod =\r\n\t\t\tthis.collapseWith === \"class\"\r\n\t\t\t\t? this.toggleWithClass\r\n\t\t\t\t: this.toggleWithHidden;\r\n\r\n\t\tthis.attributeObserver = new MutationObserver(\r\n\t\t\tthis.onAttributeChange.bind(this)\r\n\t\t);\r\n\r\n\t\tthis.bindDocumentEvents = this.options.closeWithDocumentClick\r\n\t\t\t? this.bindDocumentClick\r\n\t\t\t: function() {};\r\n\r\n\t\tthis.unbindDocumentEvents = this.options.closeWithDocumentClick\r\n\t\t\t? this.unbindDocumentClick\r\n\t\t\t: function() {};\r\n\r\n\t\tthis.init();\r\n\t\tthis.watch();\r\n\t}\r\n\r\n\tinit() {\r\n\t\t// component enabled - switch link role\r\n\t\tthis.link.setAttribute('role', 'button');\r\n\r\n\t\t// Determine initial collapse state\r\n\t\t//\tif set open option determines init state\r\n\t\tvar doCollapse =\r\n\t\t\tthis.options.open !== undefined ? !this.options.open : true;\r\n\r\n\t\tthis.toggleMethod(doCollapse);\r\n\t\tthis.isCollapsed = doCollapse;\r\n\t}\r\n\r\n\twatch() {\r\n\t\tthis.link.addEventListener(\"click\", this.handleUnmodifiedClick.bind(this));\r\n\t\tthis.link.addEventListener('keydown', this.handleKeyDown.bind(this));\r\n\t\tthis.button.addEventListener(\"click\", this.toggle.bind(this));\r\n\t\tthis.attributeObserver.observe(this.element, { attributes: true });\r\n\t}\r\n\r\n\t// Respond to space key\r\n\thandleKeyDown(event) {\r\n\t\tif (event.keyCode === 32) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tthis.toggle();\r\n\t\t}\r\n\t}\r\n\r\n\t// Only respond to click without key modifier\r\n\thandleUnmodifiedClick(event) {\r\n\t\tif (!event.ctrlKey && !event.altKey && !event.metaKey) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tthis.toggle();\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleWithHidden(doCollapse) {\r\n\t\tthis.link.setAttribute(\"aria-expanded\", !doCollapse);\r\n\r\n\t\tif (!this.content) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tthis.content.hidden = doCollapse;\r\n\t}\r\n\r\n\ttoggleWithClass(doCollapse) {\r\n\t\tthis.link.setAttribute(\"aria-expanded\", !doCollapse);\r\n\r\n\t\tif (!this.content) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (doCollapse) {\r\n\t\t\tthis.content.classList.add(this.collapsedClass);\r\n\t\t} else {\r\n\t\t\tthis.content.classList.remove(this.collapsedClass);\r\n\t\t}\r\n\t}\r\n\r\n\t// button click handler\r\n\ttoggle() {\r\n\t\tif (!this.options.selfClosing && !this.isCollapsed) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tconst handler = this.isCollapsed\r\n\t\t\t? this.open.bind(this)\r\n\t\t\t: this.close.bind(this);\r\n\t\thandler();\r\n\t}\r\n\r\n\topen() {\r\n\t\tthis.toggleMethod(false);\r\n\t\tthis.isCollapsed = false;\r\n\t\tthis.element.dataset.megaLinkOpen = true;\r\n\t\tthis.bindDocumentEvents();\r\n\r\n\t\tconst openedEvent = new CustomEvent(this.options.onUncollapse, {\r\n\t\t\tbubbles: true,\r\n\t\t\tcancelable: true,\r\n\t\t\t// detail: {}\r\n\t\t});\r\n\r\n\t\tthis.element.dispatchEvent(openedEvent);\r\n\t}\r\n\r\n\tclose() {\r\n\t\tthis.toggleMethod(true);\r\n\t\tthis.isCollapsed = true;\r\n\t\tthis.element.dataset.megaLinkOpen = false;\r\n\t\tthis.unbindDocumentEvents();\r\n\r\n\t\tconst closedEvent = new CustomEvent(this.options.onCollapse, {\r\n\t\t\tbubbles: true,\r\n\t\t\tcancelable: true\r\n\t\t});\r\n\r\n\t\tthis.element.dispatchEvent(closedEvent);\r\n\t}\r\n\r\n\tbindDocumentClick() {\r\n\t\tdocument.addEventListener(\"click\", this.onDocumentClick.bind(this));\r\n\t}\r\n\r\n\tunbindDocumentClick() {\r\n\t\tdocument.removeEventListener(\"click\", this.onDocumentClick);\r\n\t}\r\n\r\n\tonDocumentClick(event) {\r\n\t\tconst clickTarget = event.target;\r\n\r\n\t\t// clicked within element (li)\r\n\t\tif (clickTarget === this.element || this.element.contains(clickTarget)) {\r\n\t\t\tlog(\"clicked within element\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// clicked this.button\r\n\t\tif (clickTarget === this.button || this.button.contains(clickTarget)) {\r\n\t\t\tlog(\"clicked button\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// clicked this.link\r\n\t\tif (clickTarget === this.link || this.link.contains(clickTarget)) {\r\n\t\t\tlog(\"clicked link\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.close();\r\n\t}\r\n\r\n\tonAttributeChange(mutationList, observer) {\r\n\t\tmutationList\r\n\t\t\t.filter(mutation => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\tmutation.type === \"attributes\" &&\r\n\t\t\t\t\tmutation.attributeName.startsWith(\"data-mega-link-open\")\r\n\t\t\t\t);\r\n\t\t\t})\r\n\t\t\t.forEach(this.onOpenChanged.bind(this));\r\n\t}\r\n\r\n\tonOpenChanged(mutation) {\r\n\t\tconst doCollapse = !getJSONValue(this.element.dataset.megaLinkOpen);\r\n\t\tif (this.isCollapsed !== doCollapse) {\r\n\t\t\tthis.toggleMethod(doCollapse);\r\n\t\t\tthis.isCollapsed = doCollapse;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nMegaLink.DEFAULTS = {\r\n\tselfClosing: true,\r\n\tonCollapse: 'collapsibleClosed',\r\n\tonUncollapse: 'collapsibleOpened'\r\n};\r\n\r\nexport default MegaLink;\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__mega-link/mega-link.js","import $ from 'jquery';\r\nimport plugin from '@core/plugins/lib';\r\nimport MegaLink from './mega-link';\r\n\r\nconst ELEMENT_SELECTOR = '[data-mega-link]';\r\nconst PLUGIN_NAME = 'MegaLink';\r\n\r\nplugin(PLUGIN_NAME, MegaLink);\r\n\r\n$(document).ready(() => {\r\n\t$(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__mega-link/plugin--bundled.js","import $ from 'jquery';\r\nimport plugin from '@core/plugins/lib';\r\nimport RadioSelection from './radio-selection';\r\n\r\nconst ELEMENT_SELECTOR = '[data-radio-selection]';\r\nconst PLUGIN_NAME = 'RadioSelection';\r\n\r\nplugin(PLUGIN_NAME, RadioSelection);\r\n\r\n$(document).ready(() => {\r\n\t$(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__radio-selection/plugin--bundled.js","// IE Needs element.closest polyfill - see polyfills\r\n// https://gomakethings.com/a-native-vanilla-javascript-way-to-get-the-closest-matching-parent-element/\r\n\r\n\r\nclass RadioSelection {\r\n\tconstructor(element, options) {\r\n\t\tthis.element = element;\r\n\t\tthis.options = options;\r\n\r\n\t\t// scoped to parent form or other form if specified\r\n\t\tthis.form = this.options.formSelector\r\n\t\t\t? this.element.querySelector(this.options.formSelector)\r\n\t\t\t: this.element.closest('form');\r\n\r\n\r\n\t\tthis.inputs = this.form.elements[this.options.name];\r\n\r\n\t\tif (!this.form || !this.options.name || !this.inputs) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.init();\r\n\t\tthis.watch();\r\n\t}\r\n\r\n\tinit(){\r\n\t\tthis.updateValue();\r\n\t}\r\n\r\n\twatch(){\r\n\t\t[...this.inputs].forEach((input)=>{\r\n\t\t\tinput.addEventListener('change', this.updateValue.bind(this));\r\n\t\t});\r\n\t}\r\n\r\n\tupdateValue(){\r\n\t\tconst value = this.inputs.value;\r\n\t\tconst checkedInput = this.form.querySelector(`[value=\"${value}\"]`);\r\n\t\tconst label = this.form.querySelector(`label[for=\"${checkedInput.id}\"]`);\r\n\r\n\t\tif (!label){\r\n\t\t\tconsole.warn('Label missing for radio input', checkedInput);\r\n\t\t}\r\n\t\tthis.element.textContent = label.textContent;\r\n\t}\r\n\r\n}\r\n\r\nRadioSelection.DEFAULTS = {};\r\n\r\nexport default RadioSelection;\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__radio-selection/radio-selection.js","\r\nimport $ from 'jquery';\r\n\r\nexport const ELEMENT_SELECTOR = '[data-remove-element-classes]';\r\nexport const PLUGIN_NAME = 'RemoveElementClasses';\r\n\r\n\r\n$(document).ready(() => {\r\n $(ELEMENT_SELECTOR).each(function () {\r\n const element = this;\r\n System.import(/* webpackChunkName: \"plugin--remove-element-classes\" */ './plugin')\r\n .then(() => {\r\n $(element)[PLUGIN_NAME]();\r\n });\r\n });\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__remove-element-classes/index.js","import $ from 'jquery';\r\nimport plugin from '@core/plugins/lib';\r\nimport SyncTheme from './sync-theme';\r\n\r\nconst ELEMENT_SELECTOR = '[data-sync-theme]';\r\nconst PLUGIN_NAME = 'SyncTheme';\r\n\r\nplugin(PLUGIN_NAME, SyncTheme);\r\n\r\n$(document).ready(() => {\r\n\t$(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__sync-theme/plugin--bundled.js","import debug from \"debug\";\r\n\r\nconst log = debug(\"jquery-plugin__sync-theme\");\r\n\r\nfunction getJSONValue(stringValue) {\r\n\ttry {\r\n\t\treturn JSON.parse(stringValue);\r\n\t} catch (error) {\r\n\t\treturn stringValue;\r\n\t}\r\n}\r\n\r\nfunction startsWith(prefix, string) {\r\n\treturn string.startsWith(prefix);\r\n}\r\n\r\nclass SyncTheme {\r\n\tconstructor(element, options) {\r\n\t\tthis.element = element;\r\n\t\tthis.options = options;\r\n\r\n\t\tthis.sourceElement = this.element.querySelector(this.options.sourceSelector);\r\n\t\tthis.targetElement = this.element.querySelector(this.options.targetSelector);\r\n\r\n\t\tif (!this.sourceElement || !this.targetElement) {\r\n\t\t\tlog('Missing source or target element. Aborting.');\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.hasPrefix = startsWith.bind(null, this.options.classPrefix);\r\n\r\n\t\tthis.init();\r\n\t\tthis.watch();\r\n\t}\r\n\r\n\tinit() {\r\n\t\tthis.applyThemeClass();\r\n\t}\r\n\r\n\twatch() {\r\n\t\tif (this.options.on) {\r\n\t\t\tthis.element.addEventListener(this.options.on, this.handleSyncEvent.bind(this));\r\n\t\t}\r\n\t}\r\n\r\n\thandleSyncEvent() {\r\n\t\tthis.applyThemeClass();\r\n\t}\r\n\r\n\tgetThemeClass() {\r\n\t\tconst sourceDataProp = this.sourceElement.dataset['syncTheme-Source'];\r\n\t\treturn this.sourceElement.dataset[sourceDataProp];\r\n\t}\r\n\r\n\tremoveThemeClass() {\r\n\t\tconst themeClass = [...this.targetElement.classList].find(this.hasPrefix);\r\n\t\tthemeClass && this.targetElement.classList.remove(themeClass);\r\n\t}\r\n\r\n\tapplyThemeClass() {\r\n\t\tconst themeClass = this.getThemeClass();\r\n\t\tconst currentClasses = [...this.targetElement.classList];\r\n\r\n\t\tif (themeClass && !currentClasses.includes(themeClass)) {\r\n\t\t\tthis.removeThemeClass();\r\n\t\t\tthis.targetElement.classList.add(themeClass);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nSyncTheme.DEFAULTS = {};\r\n\r\nexport default SyncTheme;\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__sync-theme/sync-theme.js","import $ from 'jquery';\r\n\r\nexport const ELEMENT_SELECTOR = '[data-toggle-element-classes]';\r\nexport const PLUGIN_NAME = 'ToggleElementClasses';\r\n\r\n\r\n$(document).ready(() => {\r\n $(ELEMENT_SELECTOR).each(function () {\r\n const element = this;\r\n System.import(/* webpackChunkName: \"plugin--toggle-element-classes\" */ './plugin')\r\n .then(() => {\r\n $(element)[PLUGIN_NAME]();\r\n });\r\n });\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__toggle-element-classes/index.js","import $ from 'jquery';\r\n\r\nexport const ELEMENT_SELECTOR = '[data-trigger-event]';\r\nexport const PLUGIN_NAME = 'triggerEvent';\r\n\r\n\r\n$(document).ready(() => {\r\n $(ELEMENT_SELECTOR).each(function () {\r\n const element = this;\r\n System.import(/* webpackChunkName: \"plugin--trigger-event\" */ './plugin')\r\n .then(() => {\r\n $(element)[PLUGIN_NAME]();\r\n });\r\n });\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__trigger-event/index.js","// Returns a function, that, as long as it continues to be invoked, will not\r\n// be triggered. The function will be called after it stops being called for\r\n// N milliseconds. If `immediate` is passed, trigger the function on the\r\n// leading edge, instead of the trailing.\r\nexport function debounce(func, wait, immediate) {\r\n var timeout;\r\n return function () {\r\n var context = this, args = arguments;\r\n var later = function () {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n var callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/lib/fn.js","/*\r\njQuery plugin\r\n\r\n\r\n```\r\nimport debug from 'debug';\r\nimport plugin from '@core/plugins/lib';\r\n\r\nconst ELEMENT_SELECTOR = '[data-my-plugin]';\r\nconst PLUGIN_NAME = 'MyPlugin';\r\nconst MODULE_NAME = 'plugins/my-plugin';\r\nconst log = debug(MODULE_NAME);\r\n\r\nclass PluginKlass {\r\n constructor(element, options) {\r\n log('new instance', element, options);\r\n\r\n this.element = element;\r\n this.options = options;\r\n this.$element = $(element);\r\n\r\n log('ready', this.$element);\r\n\r\n this.init();\r\n }\r\n}\r\n\r\nPluginKlass.DEFAULTS = {\r\n someCamelCasedProperty: `${PLUGIN_NAME}:something`,\r\n};\r\n\r\nplugin(PLUGIN_NAME, PluginKlass);\r\n\r\n$(document).ready(() => {\r\n $(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n});\r\n```\r\n\r\nThen using it in html:\r\n```\r\n
\r\n```\r\n\r\nStyelguide Core.Global.Javascript.JqueryPlugin\r\n*/\r\nimport $ from 'jquery';\r\nimport debug from 'debug';\r\n\r\nimport * as fn from './fn';\r\nimport * as strings from './strings';\r\nimport * as objects from './objects';\r\nimport * as selectors from './selectors';\r\n// import * as events from './events';\r\n\r\nimport {toCamelCase} from './strings';\r\nimport { selectTarget } from './selectors';\r\n\r\nconst log = debug('core/plugins/lib');\r\n\r\nexport default function plugin(pluginName, klass, shortHand = false) {\r\n const formattedPluginName = toCamelCase(pluginName);\r\n const dataName = `__${formattedPluginName}`;\r\n const old = $.fn[formattedPluginName];\r\n const ZERO = 0;\r\n\r\n klass.$bus = {\r\n subscribe: function(event, fn) {\r\n $(this).bind(event, fn);\r\n },\r\n publish: function(event, data) {\r\n $(this).trigger(event, [data]);\r\n }\r\n };\r\n\r\n klass.$util = {\r\n fn,\r\n objects,\r\n strings,\r\n selectors,\r\n };\r\n\r\n klass.prototype.selectors = selectors;\r\n klass.prototype.strings = strings;\r\n klass.prototype.objects = objects;\r\n klass.prototype.fn = fn;\r\n klass.prototype.inViewport = function (elm) {\r\n var rect = elm.getBoundingClientRect();\r\n var viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight);\r\n return !(rect.bottom < 0 || rect.top - viewHeight >= 0);\r\n };\r\n\r\n $.fn[pluginName] = function PluginFactory (option) {\r\n return this.each(function PluginInstanceFactory () {\r\n const $this = $(this);\r\n const data = $this.data();\r\n const overrides = typeof option === 'object' && option;\r\n const elementOptions = Object\r\n .keys(data)\r\n .filter((key) => {\r\n return toCamelCase(key).indexOf(formattedPluginName) >= ZERO;\r\n })\r\n .reduce((result, path) => {\r\n const data = path && $this.data(path);\r\n const key = toCamelCase(path.replace(new RegExp(`${formattedPluginName}-?`), ''));\r\n log(path, key, $this.data(path));\r\n\r\n if (key && data !== undefined) {\r\n result[key] = data;\r\n }\r\n return result;\r\n }, {});\r\n log(pluginName, { elementOptions});\r\n let instance = $this.data(dataName);\r\n const options = $.extend({}, klass.DEFAULTS, elementOptions, overrides);\r\n\r\n // store reference to instance\r\n if (!instance) {\r\n instance = new klass(this, options);\r\n instance.$utils = klass.$util;\r\n $this.data(dataName, instance);\r\n $this.addClass(`u-${pluginName}`);\r\n }\r\n\r\n // execute instance method\r\n if (typeof option === 'string') {\r\n instance[option]();\r\n }\r\n });\r\n };\r\n\r\n // - Short hand\r\n if (shortHand) {\r\n $[formattedPluginName] = (options) => $({})[formattedPluginName](options);\r\n }\r\n\r\n // - No conflict\r\n // $.fn[formattedPluginName].noConflict = function noConflict () {\r\n // $.fn[formattedPluginName] = old;\r\n // };\r\n}\r\n\r\nexport function jquery (name) {\r\n return function decorate (target) {\r\n plugin(name, target);\r\n };\r\n}\r\n\r\nexport function defaults (options) {\r\n return function decorate (target) {\r\n target.DEFAULTS = options;\r\n };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/lib/index.js","import debug from 'debug';\r\nimport { toCamelCase } from './strings';\r\nconst MODULE_NAME = 'app.core/lib/objects';\r\nconst log = debug(MODULE_NAME);\r\n\r\n\r\nconst ZERO = 0;\r\n\r\n/**\r\n * Convert an elements attributes to an object, optionally filtering based on some predicate.\r\n * @param {DOMElement} element [description]\r\n * @param {Function} filterFn filtering function. return false to omit attribute.\r\n * @param {Function} transformFn transform attribute name function. returns camelCase by default\r\n * @return {[type]} [description]\r\n */\r\nexport function elementAttrtibutesToObject(element, filterFn = () => true, transformFn = (name) => toCamelCase(name)) {\r\n const output = {};\r\n const attrs = Array.from($(element).get(ZERO).attributes);\r\n\r\n if (!attrs) {\r\n return output;\r\n }\r\n\r\n log(`converting element attributes to object`, attrs);\r\n\r\n return attrs.reduce((result, attribute) => {\r\n if (filterFn(attribute)) {\r\n const name = transformFn(attribute.name);\r\n let value = attribute.value;\r\n\r\n if (value === 'false' || value === 'true') {\r\n value = Boolean(value);\r\n }\r\n result[name] = attribute.value;\r\n }\r\n\r\n return result;\r\n }, output);\r\n\r\n}\r\n\r\n\r\n/**\r\n * Object.prop()\r\n *\r\n * Allows dot-notation access to object properties for both getting and setting.\r\n *\r\n * @param {Object} obj The object we're getting from or setting\r\n * @param {string} prop The dot-notated string defining the property location\r\n * @param {mixed} val For setting only; the value to set\r\n */\r\n\r\nexport function objectPath (obj, path, val, options = {delimiter: '.'}) {\r\n const props = path.split(options.delimiter);\r\n const final = props.pop();\r\n let part;\r\n\r\n for (var index = 0; index < props.length; index++) {\r\n part = props[index];\r\n if (typeof obj[part] === 'undefined') {\r\n // If we're setting\r\n if (typeof val !== 'undefined' && index != props.length) {\r\n // If we're not at the end of the props, keep adding new empty objects\r\n obj[part] = {};\r\n }\r\n else {\r\n return undefined;\r\n }\r\n }\r\n obj = obj[part];\r\n }\r\n return typeof val !== \"undefined\" ? (obj[final] = val) : obj[final];\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/lib/objects.js","import $ from 'jquery';\r\nimport debug from 'debug';\r\nconst log = debug('core/plugins/lib/selectors');\r\n\r\nexport function selectorPattern (...directives) {\r\n return new RegExp(`\\\\((${directives.join('|')})(.*)\\\\)\\\\s?(.*)`);\r\n}\r\n\r\nexport const SELECTOR_PATTERNS = {\r\n\r\n // .find\r\n \"children\": selectorPattern('children'),\r\n\r\n // .closest\r\n \"parent\": selectorPattern('parent'),\r\n \"from\": selectorPattern('from'),\r\n \"parents\": selectorPattern('parents'),\r\n \"siblings\": selectorPattern('siblings'),\r\n \"here\": selectorPattern('here'),\r\n \"self\": selectorPattern('self'),\r\n};\r\n\r\nexport function selectTarget(selector, $element) {\r\n let $target;\r\n\r\n const isClosestAncestoral = selector.match(SELECTOR_PATTERNS.parent);\r\n const isAllAncestoral = selector.match(SELECTOR_PATTERNS.parents);\r\n const isRetargeted = selector.match(SELECTOR_PATTERNS.from);\r\n const isAllDescendants = selector.match(SELECTOR_PATTERNS.children);\r\n const isGenerational = selector.match(SELECTOR_PATTERNS.here);\r\n const isSiblings = selector.match(SELECTOR_PATTERNS.siblings);\r\n const isSelfish = selector.match(SELECTOR_PATTERNS.self);\r\n\r\n // special retargeting root\r\n if (isRetargeted) {\r\n log('isRetargeted', isRetargeted[2], isRetargeted[3]);\r\n const $newElement = selectTarget(isRetargeted[2], $element);\r\n const newSelector = `(children) ${isRetargeted[3]}`;\r\n log('isRetargeted.newElement', $newElement);\r\n log('isRetargeted.newSelector', newSelector);\r\n $target = selectTarget(newSelector, $newElement);\r\n log('isRetargeted.target', $target);\r\n }\r\n\r\n // target is all ancestors\r\n else if (isAllAncestoral) {\r\n log('isAllAncestoral', isAllAncestoral);\r\n $target = $element.parents(isAllAncestoral[isAllAncestoral.length - 1]);\r\n }\r\n // target is closest ancestor\r\n else if (isClosestAncestoral) {\r\n log('isClosestAncestoral', isClosestAncestoral);\r\n $target = $element.closest(isClosestAncestoral[isClosestAncestoral.length - 1]);\r\n }\r\n // target is somewhere under current parent\r\n else if (isGenerational) {\r\n log('isGenerational', isGenerational);\r\n $target = $element.parent().find(isGenerational[isGenerational.length - 1]);\r\n }\r\n // target is only under self\r\n else if (isAllDescendants) {\r\n log('isAllDescendants', isAllDescendants);\r\n $target = $element.find(isAllDescendants[isAllDescendants.length - 1]);\r\n }\r\n // target is somewhere in siblings only\r\n else if (isSiblings) {\r\n log('isSiblings', isSiblings);\r\n $target = $element.siblings(isSiblings[isSiblings.length - 1]);\r\n }\r\n // target is source\r\n else if (!selector || isSelfish) {\r\n log('isSelfish', isSelfish);\r\n var selector = isSelfish[isSelfish.length - 1] || '*';\r\n $target = $element.filter(selector);\r\n }\r\n // target could be anywhere\r\n else {\r\n log('global', selector);\r\n $target = $(selector);\r\n }\r\n return $target;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/lib/selectors.js","import $ from 'jquery';\r\nimport debug from 'debug';\r\n\r\nconst log = debug('core/jquery_plugin/strings');\r\n\r\nfunction preserveCamelCase(str) {\r\n let isLastCharLower = false;\r\n let isLastCharUpper = false;\r\n let isLastLastCharUpper = false;\r\n\r\n for (let i = 0; i < str.length; i++) {\r\n const c = str[i];\r\n\r\n if (isLastCharLower && /[a-zA-Z]/.test(c) && c.toUpperCase() === c) {\r\n str = str.substr(0, i) + '-' + str.substr(i);\r\n isLastCharLower = false;\r\n isLastLastCharUpper = isLastCharUpper;\r\n isLastCharUpper = true;\r\n i++;\r\n } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(c) && c.toLowerCase() === c) {\r\n str = str.substr(0, i - 1) + '-' + str.substr(i - 1);\r\n isLastLastCharUpper = isLastCharUpper;\r\n isLastCharUpper = false;\r\n isLastCharLower = true;\r\n } else {\r\n isLastCharLower = c.toLowerCase() === c;\r\n isLastLastCharUpper = isLastCharUpper;\r\n isLastCharUpper = c.toUpperCase() === c;\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\nexport function toCamelCase (str) {\r\n if (arguments.length > 1) {\r\n str = Array.from(arguments)\r\n .map(x => x.trim())\r\n .filter(x => x.length)\r\n .join('-');\r\n } else {\r\n str = str.trim();\r\n }\r\n\r\n if (str.length === 0) {\r\n return '';\r\n }\r\n\r\n if (str.length === 1) {\r\n return str.toLowerCase();\r\n }\r\n\r\n if (/^[a-z0-9]+$/.test(str)) {\r\n return str;\r\n }\r\n\r\n const hasUpperCase = str !== str.toLowerCase();\r\n\r\n if (hasUpperCase) {\r\n str = preserveCamelCase(str);\r\n }\r\n\r\n return str\r\n .replace(/^[_.\\- ]+/, '')\r\n .toLowerCase()\r\n .replace(/[_.\\- ]+(\\w|$)/g, (m, p1) => p1.toUpperCase());\r\n};\r\n\r\n\r\nexport function tmpl(str, context) {\r\n let result = str;\r\n\r\n if (result) {\r\n\r\n Object.keys(context)\r\n .forEach((item) => {\r\n result = result.replace(`{{${item}}}`, context[item]);\r\n });\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function $tmpl(element, context) {\r\n const $target = $(element);\r\n const templateString = $target.attr('data-text-template');\r\n const result = tmpl(templateString, context);\r\n\r\n $target.text(result);\r\n}\r\n\r\n/**\r\n * https://github.com/aishikaty/tiny-mustache\r\n * https://mustache.github.io/\r\n * @param {String} template [description]\r\n * @param {[type]} self [description]\r\n * @param {[type]} parent [description]\r\n * @param {[type]} invert [description]\r\n * @return {[type]} [description]\r\n */\r\nexport function mustache(template, self, parent, invert) {\r\n var render = mustache;\r\n var output = \"\";\r\n var i;\r\n\r\n log('mustache', {template, self, parent, invert});\r\n\r\n function get(ctx, path) {\r\n path = path.pop ? path : path.split(\".\");\r\n ctx = ctx[path.shift()] || \"\";\r\n return (0 in path) ? get(ctx, path) : ctx;\r\n }\r\n\r\n self = Array.isArray(self) ? self : (self ? [self] : []);\r\n self = invert ? (0 in self) ? [] : [1] : self;\r\n\r\n for (i = 0; i < self.length; i++) {\r\n var childCode = '';\r\n var depth = 0;\r\n var inverted;\r\n var ctx = (typeof self[i] == \"object\") ? self[i] : {};\r\n ctx = Object.assign({}, parent, ctx);\r\n ctx[\"\"] = { \"\": self[i] };\r\n\r\n template.replace(/([\\s\\S]*?)({{((\\/)|(\\^)|#)(.*?)}}|$)/g,\r\n function (match, code, y, z, close, invert, name) {\r\n\r\n if (!depth) {\r\n output += code.replace(/{{{(.*?)}}}|{{(!?)(&?)(>?)(.*?)}}/g,\r\n function (match, raw, comment, isRaw, partial, name) {\r\n return raw ? get(ctx, raw)\r\n : isRaw ? get(ctx, name)\r\n : partial ? render(get(ctx, name), ctx)\r\n : !comment ? new Option(get(ctx, name)).innerHTML\r\n : \"\";\r\n }\r\n );\r\n inverted = invert;\r\n\r\n } else {\r\n childCode += depth && !close || depth > 1 ? match : code;\r\n }\r\n\r\n if (close) {\r\n if (!--depth) {\r\n name = get(ctx, name);\r\n if (/^f/.test(typeof name)) {\r\n output += name.call(ctx, childCode, function (template) {\r\n return render(template, ctx);\r\n });\r\n } else {\r\n output += render(childCode, name, ctx, inverted);\r\n }\r\n childCode = \"\";\r\n }\r\n\r\n } else {\r\n ++depth;\r\n }\r\n log(`mustache.output.${depth}`, {output});\r\n }\r\n );\r\n }\r\n log('mustache.output', {output});\r\n return output;\r\n}\r\n\r\nexport function booleanify(value) {\r\n const lower = value.toLowerCase();\r\n if (lower === 'false' || lower === '0') {\r\n return false;\r\n }\r\n return new Boolean(value);\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/lib/strings.js","module.exports = jQuery;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"jQuery\"\n// module id = external \"jQuery\"\n// module chunks = core site__def vendor"],"sourceRoot":""}