{"version":3,"sources":["webpack:///scripts/core--9b6fbd8143a56ad07d0d.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/alerts/dismiss.js","webpack:///./project/client/src/core/components/alerts/index.js","webpack:///./project/client/src/core/components/choose-form/index--split.js","webpack:///./project/client/src/core/components/cover-selector/index--split.js","webpack:///./project/client/src/core/components/date-field/index--split.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/localize-date/index--split.js","webpack:///./project/client/src/core/components/modal/index.js","webpack:///./project/client/src/core/components/product-card/index--split.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/search/global-search/index.js","webpack:///./project/client/src/core/components/search/global-search/search-form-collapsible.js","webpack:///./project/client/src/core/components/search/index.js","webpack:///./project/client/src/core/components/site-header/index.js","webpack:///./project/client/src/core/components/site-header/navigation--obscurable.js","webpack:///./project/client/src/core/components/site-header/site-header-controller.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__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__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--15-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--15-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--15-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--15-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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/alerts/dismiss.js","_interopRequireDefault","__esModule","default","_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--15-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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/choose-form/index--split.js","_lib","_lib2","then","/tool/node_modules/babel-loader/lib/index.js??ref--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/cover-selector/index--split.js","/tool/node_modules/babel-loader/lib/index.js??ref--15-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--15-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--15-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--15-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","target","value","pop","addClass","jQuery","/tool/node_modules/babel-loader/lib/index.js??ref--15-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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/localize-date/index--split.js","/tool/node_modules/babel-loader/lib/index.js??ref--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/modal/index.js","Object","defineProperty","PLUGIN_NAME","ELEMENT_SELECTOR","/tool/node_modules/babel-loader/lib/index.js??ref--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/product-card/index--split.js","/tool/node_modules/babel-loader/lib/index.js??ref--15-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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/required-field/index--split.js","Promise","resolve","/tool/node_modules/babel-loader/lib/index.js??ref--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/required-field/required-field.js","_toConsumableArray","arr","isArray","arr2","from","_classCallCheck","Constructor","TypeError","getJSONValue","stringValue","error","getRegexValidator","validators","data","valRegexPatternName","valRegexPattern","regex","truthy","_createClass","defineProperties","props","descriptor","enumerable","configurable","writable","key","protoProps","staticProps","at_least_one_checked","inputs","filter","input","checked","expression","RequiredField","isFieldset","nodeName","inputSet","querySelectorAll","querySelector","errorElementSelectorScope","errorSelector","errorElement","showErrors","attributeObserver","MutationObserver","onAttributeChange","watch","updateValidity","validateInput","addEventListener","observe","attributes","validity","valid","validator","rule","setCustomValidity","hidden","isValid","updateFieldsetValidity","updateErrorMessage","mutationList","observer","mutation","attributeName","componentErrorAttribute","forEach","onShowErrorsChange","_this","tests","validateField","results","map","errors","result","DEFAULTS","/tool/node_modules/babel-loader/lib/index.js??ref--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/search/global-search/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/search/global-search/search-form-collapsible.js","SearchFormCollapsible","$element","formElements","selectors","selectTarget","elementsSelector","$target","toggle","removeAttr","focus","attr","handler","/tool/node_modules/babel-loader/lib/index.js??ref--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/search/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--15-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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/navigation--obscurable.js","_selectors","ObscurableNavigationPlugin","tolerancePx","components","obscuredItemContainer","obscuredItemContainerSelector","visibleItemContainer","visibleItemContainerSelector","obscuredItemContainerToggle","obscuredItemContainerToggleSelector","currentTestId","resize","fn","debounce","testTimeoutMs","unObscureItems","testItems","$testElement","width","outerWidth","rightEdgePosition","accumulatedWidth","actualContainerWidth","_this2","intersectingItemSelector","obscuredItemClasses","visibleItemClasses","append","detach","show","items","_this3","toggleWidth","innerWidth","$items","obscuredItems","isItemObscured","is","moveItem","children","reflowOnResize","/tool/node_modules/babel-loader/lib/index.js??ref--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/site-header-controller.js","HeaderController","isSearchCollapsible","searchComponentSelector","searchComponent","phoneComponent","phoneComponentSelector","tryConcealSearch","closePhoneComponent","collapsibleOpen","trigger","/tool/node_modules/babel-loader/lib/index.js??ref--15-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--15-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","prop","$tables","$this","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","done","original","updated","return","/tool/node_modules/babel-loader/lib/index.js??ref--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--15-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--15-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--15-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","setAttribute","classList","add","remove","selfClosing","close","onDocumentClick","removeEventListener","event","clickTarget","contains","startsWith","onOpenChanged","/tool/node_modules/babel-loader/lib/index.js??ref--15-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--15-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--15-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--15-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--15-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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__radio-selection/radio-selection.js","form","formSelector","closest","elements","updateValue","checkedInput","label","warn","textContent","/tool/node_modules/babel-loader/lib/index.js??ref--15-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--15-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--15-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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/fn.js","func","wait","immediate","context","later","callNow","/tool/node_modules/babel-loader/lib/index.js??ref--15-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","$bus","subscribe","publish","$util","objects","strings","inViewport","elm","rect","getBoundingClientRect","viewHeight","max","clientHeight","innerHeight","bottom","top","option","overrides","elementOptions","keys","reduce","path","extend","$utils","jquery","defaults","_fn","_objects","/tool/node_modules/babel-loader/lib/index.js??ref--15-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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/selectors.js","selectorPattern","_len","directives","_key","join","selector","isClosestAncestoral","SELECTOR_PATTERNS","parent","isAllAncestoral","parents","isRetargeted","isAllDescendants","isGenerational","here","isSiblings","siblings","isSelfish","$newElement","newSelector","/tool/node_modules/babel-loader/lib/index.js??ref--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/strings.js","preserveCamelCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","toUpperCase","x","trim","p1","tmpl","item","$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--9b6fbd8143a56ad07d0d.js","sourcesContent":["webpackJsonp([\"core\"],{\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/cover-selector/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n$(function () {\n\t$(\"[data-cover-selector]\").each(function () {\n\t\tvar element = this;\n\t\t__webpack_require__.e/* import() */(\"cover-selector\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/cover-selector/index.js\"));\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/product-card/index--split.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/cover-selector/index--split.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--15-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--15-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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/localize-date/index--split.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--15-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--15-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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/search/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--15-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--15-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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/wysiwyg/index.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/localize-date/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--15-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-localize-date]\";\nvar PLUGIN_NAME = \"localizeDate\";\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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/localize-date/localize-date.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--15-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--15-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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/product-card/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--15-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-product-card]';\nvar PLUGIN_NAME = 'productCard';\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() */(\"product-card\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/product-card/product-card.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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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\tregex: function regex(expression, input) {\n\t\tvar regex = new RegExp(expression);\n\t\treturn regex.test(input.value);\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\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.updateValidity();\n\t\t\tthis.validateInput();\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.updateValidity.bind(this));\n\t\t\tthis.attributeObserver.observe(this.element, { attributes: true });\n\t\t\tthis.input.addEventListener(\"input\", this.updateValidity.bind(this));\n\t\t\tthis.input.addEventListener(\"validate\", this.updateValidity.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"isValid\",\n\t\tvalue: function isValid() {\n\t\t\tvar elementToValidate = this.isFieldset ? this.element : this.input;\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: \"updateValidity\",\n\t\tvalue: function updateValidity() {\n\t\t\tthis.updateFieldsetValidity();\n\t\t\tthis.validateInput();\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\t\tkey: \"validateInput\",\n\t\tvalue: function validateInput() {\n\t\t\tvar _this = this;\n\n\t\t\tif (!this.input) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar tests = [getRegexValidator(validators, this.input.dataset)].filter(truthy);\n\n\t\t\t// Validation may have been disabled if this field was hidden\n\t\t\tif (this.element.dataset.validateField === \"false\") {\n\t\t\t\tthis.element.setCustomValidity(\"\");\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (this.input.value !== \"\" && tests.length) {\n\t\t\t\tvar results = tests.map(function (validator) {\n\t\t\t\t\treturn validator.test(_this.input) ? \"\" : validator.message;\n\t\t\t\t});\n\n\t\t\t\tvar errors = results.filter(function (result) {\n\t\t\t\t\treturn result !== \"\";\n\t\t\t\t});\n\n\t\t\t\tthis.input.setCustomValidity(errors.length ? errors[0] : \"\");\n\t\t\t} else {\n\t\t\t\tthis.input.setCustomValidity(\"\");\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn RequiredField;\n}();\n\nfunction getRegexValidator(validators, data) {\n\t//const message = data.valRegexMessage || data.valRegex;\n\tvar message = 'Invalid';\n\n\tif (!data) {\n\t\treturn false;\n\t}\n\n\tif (data.valRegexPatternName && validators[data.valRegexPatternName]) {\n\t\treturn { test: validators[data.valRegexPatternName], message: message };\n\t}\n\tif (data.valRegexPattern) {\n\t\treturn {\n\t\t\ttest: validators.regex.bind(null, data.valRegexPattern),\n\t\t\tmessage: message\n\t\t};\n\t}\n\treturn false;\n}\n\nfunction truthy(value) {\n\treturn value;\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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/search/global-search/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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/search/global-search/search-form-collapsible.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/search/global-search/search-form-collapsible.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--15-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--15-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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ELEMENT_SELECTOR = '[data-search-form-collapsible]';\nvar PLUGIN_NAME = 'searchFormCollapsible';\n\nvar log = (0, _debug2.default)('site-header/header-controller:search');\n\nvar SearchFormCollapsible = function () {\n\tfunction SearchFormCollapsible(element, options) {\n\t\t_classCallCheck(this, SearchFormCollapsible);\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.enabled = false;\n\n\t\tthis.formElements = this.selectors.selectTarget(this.options.elementsSelector, this.$element);\n\n\t\tthis.watch();\n\n\t\tlog('ready', this, this.$target);\n\t}\n\n\t_createClass(SearchFormCollapsible, [{\n\t\tkey: 'watch',\n\t\tvalue: function watch() {\n\t\t\tlog('watching');\n\n\t\t\tthis.$element.on('togglesearch', this.toggle.bind(this));\n\t\t\tthis.$element.on('disablesearch', this.disable.bind(this));\n\t\t}\n\t}, {\n\t\tkey: 'enable',\n\t\tvalue: function enable() {\n\t\t\tthis.formElements.removeAttr('disabled');\n\t\t\tthis.enabled = true;\n\t\t\tthis.formElements[0].focus();\n\t\t\tlog('enable');\n\t\t}\n\t}, {\n\t\tkey: 'disable',\n\t\tvalue: function disable() {\n\t\t\tthis.formElements.attr('disabled', 'disabled');\n\t\t\tthis.enabled = false;\n\t\t\tlog('disable');\n\t\t}\n\t}, {\n\t\tkey: 'toggle',\n\t\tvalue: function toggle() {\n\t\t\tvar handler = this.enabled ? this.disable.bind(this) : this.enable.bind(this);\n\t\t\tlog('toggle');\n\t\t\thandler();\n\t\t}\n\t}]);\n\n\treturn SearchFormCollapsible;\n}();\n\nSearchFormCollapsible.DEFAULTS = {};\n\n(0, _lib2.default)(PLUGIN_NAME, SearchFormCollapsible);\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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/search/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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/search/global-search/index.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--15-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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/navigation--obscurable.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--15-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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/navigation--obscurable.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; }; }(); /**\r\n * Obscurable Navigation\r\n * @original-idea Kate York\r\n * @original-idea Oliver Boermans\r\n * @author Zenobius Jiricek\r\n *\r\n * @example\r\n * see ./header.scss\r\n */\n\n//\n// Utilities\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--15-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--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _selectors = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--15-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/selectors.js\");\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 PLUGIN_NAME = \"ObscurableNavigation\";\nvar ELEMENT_SELECTOR = \"[data-navigation-obscurable]\";\nvar log = (0, _debug2.default)('core/components/site-header/navigation--obscurable');\n\nvar ObscurableNavigationPlugin = function () {\n function ObscurableNavigationPlugin(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, ObscurableNavigationPlugin);\n\n this.element = element;\n this.$element = (0, _jquery2.default)(element);\n this.options = options;\n this.options.tolerancePx = parseInt(this.options.tolerancePx);\n\n log('created', { element: element, options: this.options });\n this.components = {\n obscuredItemContainer: (0, _selectors.selectTarget)(this.options.obscuredItemContainerSelector, this.$element),\n visibleItemContainer: (0, _selectors.selectTarget)(this.options.visibleItemContainerSelector, this.$element),\n obscuredItemContainerToggle: (0, _selectors.selectTarget)(this.options.obscuredItemContainerToggleSelector, this.$element)\n };\n\n this.watch();\n }\n\n _createClass(ObscurableNavigationPlugin, [{\n key: 'watch',\n value: function watch() {\n var _this = this;\n\n log('watch');\n this.currentTestId = 0;\n (0, _jquery2.default)(window).resize(function () {\n _this.components.visibleItemContainer.addClass('testing');\n });\n (0, _jquery2.default)(window).resize(this.fn.debounce(this.test.bind(this), this.options.testTimeoutMs, true));\n (0, _jquery2.default)(window).resize(this.fn.debounce(this.test.bind(this), this.options.testTimeoutMs));\n setTimeout(this.test.bind(this), this.options.testTimeoutMs);\n }\n }, {\n key: 'test',\n value: function test() {\n log('test');\n this.unObscureItems();\n this.testItems();\n }\n }, {\n key: 'isItemObscured',\n value: function isItemObscured(element) {\n log('isItemObscured', element);\n var $testElement = (0, _jquery2.default)(element);\n var width = $testElement.outerWidth(true);\n var rightEdgePosition = width + this.options.tolerancePx + this.accumulatedWidth;\n var result = rightEdgePosition > this.actualContainerWidth;\n log('isItemObscured', rightEdgePosition, this.actualContainerWidth, result);\n this.accumulatedWidth += width;\n return result;\n }\n }, {\n key: 'unObscureItems',\n value: function unObscureItems() {\n var _this2 = this;\n\n log('unObscureItems');\n // Put everything back in main nav\n // to prepare for testing if they in fact fit.\n (0, _selectors.selectTarget)(this.options.intersectingItemSelector, this.components.obscuredItemContainer).removeClass(this.options.obscuredItemClasses).addClass(this.options.visibleItemClasses).each(function (index, element) {\n _this2.components.visibleItemContainer.append((0, _jquery2.default)(element).detach());\n });\n }\n }, {\n key: 'moveItem',\n value: function moveItem(element) {\n log('moveItem', element);\n var $element = (0, _jquery2.default)(element).detach();\n\n $element.addClass(this.options.obscuredItemClasses).removeClass(this.options.visibleItemClasses);\n\n this.components.obscuredItemContainer.append($element);\n\n $element.show();\n }\n }, {\n key: 'testItems',\n value: function testItems(items) {\n var _this3 = this;\n\n log('testItems');\n var toggleWidth = this.components.obscuredItemContainerToggle.innerWidth();\n this.components.obscuredItemContainerToggle.detach();\n\n // Move the items that don't fit back to mobile nav\n this.components.obscuredItemContainerToggle.show();\n var $items = (0, _selectors.selectTarget)(this.options.intersectingItemSelector, this.components.visibleItemContainer);\n log('testItems.items', $items);\n\n this.actualContainerWidth = this.components.visibleItemContainer.innerWidth();\n // build a list of items that don't fit\n this.accumulatedWidth = 0;\n var obscuredItems = $items.filter(function (index, element) {\n return _this3.isItemObscured(element);\n });\n log('testItems.obscuredItems', obscuredItems);\n\n // if at least one item doesn't fit\n if (!this.components.visibleItemContainer.is(':visible')) {\n $items.each(function (index, element) {\n return _this3.moveItem(element);\n });\n } else if (obscuredItems.length > 0) {\n // reduce width of container\n this.actualContainerWidth = this.actualContainerWidth - toggleWidth;\n log('testItems.atLeatOneObscured', this.actualContainerWidth);\n\n this.accumulatedWidth = 0;\n obscuredItems = $items\n // re-test visible items based on new container width\n .filter(function (index, element) {\n return _this3.isItemObscured(element);\n })\n // then move them\n .each(function (index, element) {\n return _this3.moveItem(element);\n });\n }\n\n if (obscuredItems.length > 0 || obscuredItems.length == $items.length) {\n this.components.visibleItemContainer.append(this.components.obscuredItemContainerToggle);\n }\n\n if (!this.components.obscuredItemContainer.children().length > 0) {\n this.components.obscuredItemContainerToggle.hide();\n }\n\n this.components.visibleItemContainer.removeClass('testing');\n }\n }]);\n\n return ObscurableNavigationPlugin;\n}();\n\nObscurableNavigationPlugin.DEFAULTS = {\n tolerancePx: 40,\n testTimeoutMs: 150,\n reflowOnResize: true,\n visibleItemClasses: 'navigation__item--unobscured',\n obscuredItemClasses: 'navigation__item--obscured',\n visibleItemContainerSelector: '(children) [data-navigation--visible-items]',\n intersectingItemSelector: '(children) [data-navigation--intersecting-item]',\n obscuredItemContainerSelector: '(children) [data-navigation--obscured-items]',\n obscuredItemContainerToggleSelector: '(children) [data-navigation--obscured-items-toggle]'\n};\n\n(0, _lib2.default)(PLUGIN_NAME, ObscurableNavigationPlugin);\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--15-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--15-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--15-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 _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.isSearchCollapsible = !!this.options.searchComponentSelector;\n\n\t\tthis.searchComponent = this.isSearchCollapsible && this.selectors.selectTarget(this.options.searchComponentSelector, this.$element);\n\n\t\tthis.phoneComponent = this.selectors.selectTarget(this.options.phoneComponentSelector, this.$element);\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.on('concealsearch', this.tryConcealSearch.bind(this));\n\t\t\tthis.$element.on('closephone', this.closePhoneComponent.bind(this));\n\t\t}\n\t}, {\n\t\tkey: 'closePhoneComponent',\n\t\tvalue: function closePhoneComponent() {\n\t\t\tif (this.phoneComponent.length) {\n\t\t\t\tthis.phoneComponent[0].dataset.collapsibleOpen = false;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'tryConcealSearch',\n\t\tvalue: function tryConcealSearch() {\n\t\t\tlog('attempting to disable search');\n\t\t\tif (this.isSearchCollapsible) {\n\t\t\t\tthis.searchComponent.trigger('disablesearch');\n\t\t\t} else {\n\t\t\t\tlog('Search is not collapsible');\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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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\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\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};\n\nexports.default = Collapsible;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--15-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--9b6fbd8143a56ad07d0d.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","/**\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","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","$(() => {\r\n\t$(\"[data-cover-selector]\").each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"cover-selector\" */ \"./index\"\r\n\t\t);\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/cover-selector/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","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 \"./product-card/index--split\";\r\nimport \"./cover-selector/index--split\";\r\nimport \"./required-field/index--split\";\r\nimport \"./date-field/index--split\";\r\nimport \"./localize-date/index--split\";\r\nimport \"./site-header\";\r\nimport './modal/index';\r\nimport './search';\r\nimport './epi-blocks';\r\nimport './alerts';\r\nimport './wysiwyg/index';\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/index.js","import $ from \"jquery\";\r\nimport plugin from \"@core/plugins/lib\";\r\n\r\nconst ELEMENT_SELECTOR = \"[data-localize-date]\";\r\nconst PLUGIN_NAME = \"localizeDate\";\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\" */ \"./localize-date\"\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/localize-date/index--split.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-product-card]';\r\nconst PLUGIN_NAME = 'productCard';\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: \"product-card\" */ \"./product-card\"\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/product-card/index--split.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\tregex: (expression, input) => {\r\n\t\tconst regex = new RegExp(expression);\r\n\t\treturn regex.test(input.value);\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\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.updateValidity();\t\t\t\r\n\t\tthis.validateInput();\t\t\t\t\r\n\t}\r\n\r\n\twatch() {\r\n\t\tlog(\"watching\");\r\n\t\tthis.element.addEventListener(\"change\", this.updateValidity.bind(this));\r\n\t\tthis.attributeObserver.observe(this.element, { attributes: true });\r\n\t\tthis.input.addEventListener(\"input\", this.updateValidity.bind(this));\r\n\t\tthis.input.addEventListener(\r\n\t\t\t\"validate\",\r\n\t\t\tthis.updateValidity.bind(this)\r\n\t\t);\r\n\t}\r\n\r\n\tisValid() {\r\n\t\tconst elementToValidate = this.isFieldset ? this.element : this.input;\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\tupdateValidity() {\r\n\t\tthis.updateFieldsetValidity();\r\n\t\tthis.validateInput();\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\tvalidateInput() {\r\n\t\tif(!this.input)\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tconst tests = [\t\t\t\r\n\t\t\tgetRegexValidator(validators, this.input.dataset),\r\n\t\t].filter(truthy);\r\n\r\n\t\t// Validation may have been disabled if this field was hidden\r\n\t\tif (this.element.dataset.validateField === \"false\") {\r\n\t\t\tthis.element.setCustomValidity(\"\");\r\n\t\t\treturn false;\r\n\t\t}\t\r\n\t\t\r\n\t\tif (this.input.value !== \"\" && tests.length) {\r\n\t\t\tconst results = tests.map((validator) => {\r\n\t\t\t\treturn validator.test(\r\n\t\t\t\t\tthis.input,\t\t\t\t\t\r\n\t\t\t\t)\r\n\t\t\t\t\t? \"\"\r\n\t\t\t\t\t: validator.message;\r\n\t\t\t});\r\n\r\n\t\t\tconst errors = results.filter((result) => {\r\n\t\t\t\treturn result !== \"\";\r\n\t\t\t});\r\n\r\n\t\t\tthis.input.setCustomValidity(errors.length ? errors[0] : \"\");\r\n\t\t} else {\r\n\t\t\tthis.input.setCustomValidity(\"\");\r\n\t\t}\t\r\n\r\n\t}\r\n}\r\n\r\nfunction getRegexValidator(validators, data) {\r\n\t//const message = data.valRegexMessage || data.valRegex;\r\n\tconst message = 'Invalid';\r\n\r\n\tif(!data)\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\t\r\n\tif (data.valRegexPatternName && validators[data.valRegexPatternName]) {\r\n\t\treturn { test: validators[data.valRegexPatternName], message };\r\n\t}\r\n\tif (data.valRegexPattern) {\r\n\t\treturn {\r\n\t\t\ttest: validators.regex.bind(null, data.valRegexPattern),\r\n\t\t\tmessage,\r\n\t\t};\r\n\t}\r\n\treturn false;\r\n}\r\n\r\nfunction truthy(value) {\r\n\treturn value;\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","import './search-form-collapsible';\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/search/global-search/index.js","import $ from 'jquery';\r\nimport debug from 'debug';\r\nimport plugin from '@core/plugins/lib';\r\n\r\nconst ELEMENT_SELECTOR = '[data-search-form-collapsible]';\r\nconst PLUGIN_NAME = 'searchFormCollapsible';\r\n\r\nconst log = debug('site-header/header-controller:search');\r\n\r\nclass SearchFormCollapsible {\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.enabled = false;\r\n\r\n\t\tthis.formElements = this.selectors.selectTarget(\r\n\t\t\tthis.options.elementsSelector,\r\n\t\t\tthis.$element\r\n\t\t);\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.on('togglesearch', this.toggle.bind(this));\r\n\t\tthis.$element.on('disablesearch', this.disable.bind(this));\r\n\t}\r\n\r\n\tenable() {\r\n\t\tthis.formElements.removeAttr('disabled');\r\n\t\tthis.enabled = true;\r\n\t\tthis.formElements[0].focus();\r\n\t\tlog('enable');\r\n\t}\r\n\r\n\tdisable() {\r\n\t\tthis.formElements.attr('disabled', 'disabled');\r\n\t\tthis.enabled = false;\r\n\t\tlog('disable');\r\n\t}\r\n\r\n\ttoggle() {\r\n\t\tconst handler = this.enabled\r\n\t\t\t? this.disable.bind(this)\r\n\t\t\t: this.enable.bind(this);\r\n\t\tlog('toggle');\r\n\t\thandler();\r\n\t}\r\n}\r\n\r\nSearchFormCollapsible.DEFAULTS = {};\r\n\r\nplugin(PLUGIN_NAME, SearchFormCollapsible);\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/components/search/global-search/search-form-collapsible.js","import './global-search';\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/search/index.js","import \"./navigation--obscurable\";\r\nimport \"./site-header-controller\";\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/site-header/index.js","/**\r\n * Obscurable Navigation\r\n * @original-idea Kate York\r\n * @original-idea Oliver Boermans\r\n * @author Zenobius Jiricek\r\n *\r\n * @example\r\n * see ./header.scss\r\n */\r\n\r\n\r\n//\r\n// Utilities\r\nimport $ from 'jquery';\r\n\r\nimport debug from 'debug';\r\nimport plugin from '@core/plugins/lib';\r\nimport { selectTarget } from '@core/plugins/lib/selectors';\r\n\r\nconst PLUGIN_NAME = \"ObscurableNavigation\";\r\nconst ELEMENT_SELECTOR = \"[data-navigation-obscurable]\";\r\nconst log = debug('core/components/site-header/navigation--obscurable');\r\n\r\n\r\nclass ObscurableNavigationPlugin {\r\n\r\n constructor(element, options = {}) {\r\n\r\n this.element = element;\r\n this.$element = $(element);\r\n this.options = options;\r\n this.options.tolerancePx = parseInt(this.options.tolerancePx);\r\n\r\n log('created', {element, options: this.options});\r\n this.components = {\r\n obscuredItemContainer: selectTarget(this.options.obscuredItemContainerSelector, this.$element),\r\n visibleItemContainer: selectTarget(this.options.visibleItemContainerSelector, this.$element),\r\n obscuredItemContainerToggle: selectTarget(this.options.obscuredItemContainerToggleSelector, this.$element)\r\n };\r\n\r\n this.watch();\r\n\r\n }\r\n\r\n watch () {\r\n log('watch');\r\n this.currentTestId = 0;\r\n $(window).resize(() => {\r\n this.components.visibleItemContainer.addClass('testing');\r\n });\r\n $(window).resize(this.fn.debounce(this.test.bind(this), this.options.testTimeoutMs, true));\r\n $(window).resize(this.fn.debounce(this.test.bind(this), this.options.testTimeoutMs));\r\n setTimeout(this.test.bind(this), this.options.testTimeoutMs);\r\n }\r\n\r\n test () {\r\n log('test');\r\n this.unObscureItems();\r\n this.testItems();\r\n }\r\n\r\n isItemObscured (element) {\r\n log('isItemObscured', element);\r\n const $testElement = $(element);\r\n const width = $testElement.outerWidth(true);\r\n const rightEdgePosition = width + this.options.tolerancePx + this.accumulatedWidth;\r\n const result = rightEdgePosition > this.actualContainerWidth;\r\n log('isItemObscured', rightEdgePosition, this.actualContainerWidth, result);\r\n this.accumulatedWidth += width;\r\n return result;\r\n }\r\n\r\n unObscureItems() {\r\n log('unObscureItems');\r\n // Put everything back in main nav\r\n // to prepare for testing if they in fact fit.\r\n selectTarget(this.options.intersectingItemSelector, this.components.obscuredItemContainer)\r\n .removeClass(this.options.obscuredItemClasses)\r\n .addClass(this.options.visibleItemClasses)\r\n .each((index, element) => {\r\n this.components.visibleItemContainer.append($(element).detach());\r\n });\r\n }\r\n\r\n moveItem (element) {\r\n log('moveItem', element);\r\n const $element = $(element).detach();\r\n\r\n $element\r\n .addClass(this.options.obscuredItemClasses)\r\n .removeClass(this.options.visibleItemClasses);\r\n\r\n this.components.obscuredItemContainer\r\n .append($element);\r\n\r\n $element.show();\r\n }\r\n\r\n testItems (items) {\r\n log('testItems');\r\n const toggleWidth = this.components.obscuredItemContainerToggle.innerWidth();\r\n this.components.obscuredItemContainerToggle.detach();\r\n\r\n // Move the items that don't fit back to mobile nav\r\n this.components.obscuredItemContainerToggle.show();\r\n const $items = selectTarget(this.options.intersectingItemSelector, this.components.visibleItemContainer);\r\n log('testItems.items', $items);\r\n\r\n this.actualContainerWidth = this.components.visibleItemContainer.innerWidth();\r\n // build a list of items that don't fit\r\n this.accumulatedWidth = 0;\r\n let obscuredItems = $items.filter((index, element) => this.isItemObscured(element));\r\n log('testItems.obscuredItems', obscuredItems);\r\n\r\n // if at least one item doesn't fit\r\n if (!this.components.visibleItemContainer.is(':visible')) {\r\n $items.each((index, element) => this.moveItem(element));\r\n }\r\n\r\n else if (obscuredItems.length > 0) {\r\n // reduce width of container\r\n this.actualContainerWidth = this.actualContainerWidth - toggleWidth;\r\n log('testItems.atLeatOneObscured', this.actualContainerWidth);\r\n\r\n this.accumulatedWidth = 0;\r\n obscuredItems = $items\r\n // re-test visible items based on new container width\r\n .filter((index, element) => this.isItemObscured(element))\r\n // then move them\r\n .each((index, element) => this.moveItem(element));\r\n\r\n }\r\n\r\n if (obscuredItems.length > 0 || obscuredItems.length == $items.length ) {\r\n this.components.visibleItemContainer\r\n .append(this.components.obscuredItemContainerToggle);\r\n }\r\n\r\n if (!this.components.obscuredItemContainer.children().length > 0) {\r\n this.components.obscuredItemContainerToggle.hide();\r\n }\r\n\r\n this.components.visibleItemContainer.removeClass('testing');\r\n }\r\n\r\n}\r\n\r\n\r\nObscurableNavigationPlugin.DEFAULTS = {\r\n tolerancePx: 40,\r\n testTimeoutMs: 150,\r\n reflowOnResize: true,\r\n visibleItemClasses: 'navigation__item--unobscured',\r\n obscuredItemClasses: 'navigation__item--obscured',\r\n visibleItemContainerSelector: '(children) [data-navigation--visible-items]',\r\n intersectingItemSelector: '(children) [data-navigation--intersecting-item]',\r\n obscuredItemContainerSelector: '(children) [data-navigation--obscured-items]',\r\n obscuredItemContainerToggleSelector: '(children) [data-navigation--obscured-items-toggle]',\r\n};\r\n\r\nplugin(PLUGIN_NAME, ObscurableNavigationPlugin);\r\n\r\n$(document).ready(() => {\r\n $(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/site-header/navigation--obscurable.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.isSearchCollapsible = !!this.options.searchComponentSelector;\r\n\r\n\t\tthis.searchComponent = this.isSearchCollapsible && this.selectors.selectTarget(\r\n\t\t\tthis.options.searchComponentSelector,\r\n\t\t\tthis.$element\r\n\t\t);\r\n\r\n\t\tthis.phoneComponent = this.selectors.selectTarget(\r\n\t\t\tthis.options.phoneComponentSelector,\r\n\t\t\tthis.$element\r\n\t\t);\r\n\r\n\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.on('concealsearch', this.tryConcealSearch.bind(this));\r\n\t\tthis.$element.on('closephone', this.closePhoneComponent.bind(this));\r\n\t}\r\n\r\n\tclosePhoneComponent(){\r\n\t\tif (this.phoneComponent.length) {\r\n\t\t\tthis.phoneComponent[0].dataset.collapsibleOpen = false;\r\n\t\t}\r\n\t}\r\n\r\n\ttryConcealSearch(){\r\n\t\tlog('attempting to disable search');\r\n\t\tif (this.isSearchCollapsible) {\r\n\t\t\tthis.searchComponent.trigger('disablesearch');\r\n\t\t} else {\r\n\t\t\tlog('Search is not collapsible');\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 \"./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__radio-selection/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\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\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};\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","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\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__pch site__pch_oms site__omf site__rbhs vendor"],"sourceRoot":""}