{"version":3,"sources":["webpack:///scripts/core--1d913186afdf7e8a2194.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/index.js","webpack:///./project/client/src/core/components/password-toggle/plugin--split.js","webpack:///./project/client/src/core/components/site-header/navigation--obscurable.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__measure-rect/measure-rect.js","webpack:///./project/client/src/core/plugins/jquery__measure-rect/plugin--bundled.js","webpack:///./project/client/src/core/plugins/jquery__observe-grid/index.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--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js","module","exports","__webpack_require__","process","useColors","window","type","navigator","userAgent","toLowerCase","match","document","documentElement","style","WebkitAppearance","console","firebug","exception","table","parseInt","RegExp","$1","formatArgs","args","this","namespace","humanize","diff","c","color","splice","index","lastC","replace","log","_typeof","Function","prototype","apply","call","arguments","save","namespaces","storage","removeItem","debug","e","load","r","env","DEBUG","Symbol","iterator","obj","constructor","chrome","local","localStorage","colors","formatters","j","v","JSON","stringify","err","message","enable","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/debug.js","selectColor","i","hash","charCodeAt","Math","abs","length","createDebug","enabled","self","curr","Date","ms","prevTime","prev","Array","coerce","unshift","format","formatter","val","bind","destroy","init","instances","push","indexOf","names","skips","split","len","substr","instance","disable","name","test","Error","stack","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/ms/index.js","parse","str","String","exec","n","parseFloat","y","d","h","m","s","fmtShort","round","fmtLong","plural","floor","ceil","options","isNaN","long","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/process/browser.js","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","timeout","run","Item","array","noop","nextTick","title","browser","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/password-toggle/plugin--split.js","_interopRequireDefault","__esModule","default","_debug","_lib","_lib2","$","ready","each","element","then","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/navigation--obscurable.js","_classCallCheck","Constructor","TypeError","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","_jquery","_jquery2","_debug2","_selectors","ObscurableNavigationPlugin","undefined","$element","tolerancePx","components","obscuredItemContainer","selectTarget","obscuredItemContainerSelector","visibleItemContainer","visibleItemContainerSelector","obscuredItemContainerToggle","obscuredItemContainerToggleSelector","watch","value","_this","currentTestId","resize","addClass","fn","debounce","testTimeoutMs","unObscureItems","testItems","$testElement","width","outerWidth","rightEdgePosition","accumulatedWidth","result","actualContainerWidth","_this2","intersectingItemSelector","removeClass","obscuredItemClasses","visibleItemClasses","append","detach","show","items","_this3","toggleWidth","innerWidth","$items","obscuredItems","filter","isItemObscured","is","moveItem","children","hide","DEFAULTS","reflowOnResize","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__add-element-classes/index.js","PLUGIN_NAME","ELEMENT_SELECTOR","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__collapsible/collapsible.js","Collapsible","scopes","contentSelectorScope","button","buttonSelector","querySelector","content","contentSelector","collapseWith","collapsedClass","toggleMethod","toggleWithClass","toggleWithHidden","hidden","isCollapsed","addEventListener","toggle","doCollapse","classList","add","remove","open","close","setAttribute","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__collapsible/plugin--bundled.js","_collapsible","_collapsible2","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__emit-on-dirty/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus-within/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__measure-rect/measure-rect.js","MeasureRect","ResizeObserver","resizeObserver","onResize","observe","entries","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","next","done","entry","rects","getClientRects","from","forEach","rect","read","measure","setProperty","setVar","return","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__measure-rect/plugin--bundled.js","_measureRect","_measureRect2","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__observe-grid/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__remove-element-classes/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__toggle-element-classes/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__trigger-event/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/fn.js","func","wait","immediate","context","later","callNow","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js","_interopRequireWildcard","newObj","hasOwnProperty","plugin","pluginName","klass","shortHand","formattedPluginName","_strings","toCamelCase","dataName","$bus","subscribe","event","publish","data","trigger","$util","objects","strings","selectors","inViewport","elm","getBoundingClientRect","viewHeight","max","clientHeight","innerHeight","bottom","top","option","$this","overrides","elementOptions","keys","reduce","path","extend","$utils","jquery","defaults","_fn","_objects","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/objects.js","elementAttrtibutesToObject","filterFn","transformFn","output","attrs","get","ZERO","attributes","attribute","Boolean","objectPath","delimiter","final","pop","part","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/selectors.js","selectorPattern","_len","directives","_key","join","selector","$target","isClosestAncestoral","SELECTOR_PATTERNS","parent","isAllAncestoral","parents","isRetargeted","isAllDescendants","isGenerational","here","isSiblings","siblings","isSelfish","$newElement","newSelector","closest","find","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/strings.js","preserveCamelCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","toUpperCase","map","x","trim","p1","tmpl","item","$tmpl","templateString","attr","text","mustache","template","invert","ctx","shift","render","isArray","inverted","childCode","depth","assign","","code","z","raw","comment","isRaw","partial","Option","innerHTML","booleanify","lower","/tool/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--10-0!/tool/node_modules/css-loader/index.js??ref--10-1!/tool/node_modules/postcss-loader/lib/index.js??ref--10-2!/tool/node_modules/sass-loader/lib/loader.js??ref--10-3!/tool/project/client/src/core/index.scss","/tool/project/client/src/core/vendor/index.js","external \"jQuery\"","jQuery","multi /tool/project/client/src/core/index.js /tool/project/client/src/core/index.scss"],"mappings":"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","file":"scripts/core--1d913186afdf7e8a2194.js","sourcesContent":["webpackJsonp([\"core\"],{\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/debug.js\");\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome && 'undefined' != typeof chrome.storage ? chrome.storage.local : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = ['#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // Internet Explorer and Edge do not support colors.\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 ||\n // double check webkit in userAgent just in case we are in a worker\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function (v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '') + this.namespace + (useColors ? ' %c' : ' ') + args[0] + (useColors ? '%c ' : ' ') + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit');\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function (match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === (typeof console === 'undefined' ? 'undefined' : _typeof(console)) && console.log && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch (e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch (e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/process/browser.js\")))\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/debug.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/ms/index.js\");\n\n/**\n * Active `debug` instances.\n */\nexports.instances = [];\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0,\n i;\n\n for (i in namespace) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n var prevTime;\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n exports.instances.push(debug);\n\n return debug;\n}\n\nfunction destroy() {\n var index = exports.instances.indexOf(this);\n if (index !== -1) {\n exports.instances.splice(index, 1);\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n\n for (i = 0; i < exports.instances.length; i++) {\n var instance = exports.instances[i];\n instance.enabled = exports.enabled(instance.namespace);\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/ms/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val === 'undefined' ? 'undefined' : _typeof(val);\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(val));\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') || plural(ms, h, 'hour') || plural(ms, m, 'minute') || plural(ms, s, 'second') || ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/process/browser.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function () {\n return 0;\n};\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/navigation--obscurable.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/password-toggle/plugin--split.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/password-toggle/plugin--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-password-toggle]';\nvar PLUGIN_NAME = 'PasswordToggle';\n\n$(document).ready(function () {\n\t$(ELEMENT_SELECTOR).each(function () {\n\t\tvar element = this;\n\t\t__webpack_require__.e/* import() */(\"plugin--password-toggle\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/password-toggle/password-toggle.js\")).then(function (module) {\n\t\t\t(0, _lib2.default)(PLUGIN_NAME, module.default);\n\t\t\t$(element)[PLUGIN_NAME]();\n\t\t});\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/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--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _selectors = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/selectors.js\");\n\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--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/index.js\");\n\n__webpack_require__(\"/tool/project/client/src/core/vendor/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar log = (0, _debug2.default)('fusion-core');\n\n// See polyfills bundle - this should not be needed here too\n// import \"./polyfills\";\n\n\n(0, _jquery2.default)(function () {\n\tlog('ready');\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__collapsible/plugin--bundled.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__measure-rect/plugin--bundled.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__observe-grid/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__toggle-element-classes/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__remove-element-classes/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__add-element-classes/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus-within/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__emit-on-dirty/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__trigger-event/index.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__add-element-classes/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-add-element-classes]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'AddElementClasses';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--add-element-classes\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__add-element-classes/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__collapsible/collapsible.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// const log = debug(`plugins/${PLUGIN_NAME}`);\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\tthis.contentSelectorScope = this.options.contentSelectorScope && scopes[this.options.contentSelectorScope] ? scopes[this.options.contentSelectorScope] : scopes['element'];\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.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\t\t\tthis.toggleMethod(true);\n\t\t\tthis.isCollapsed = true;\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}\n\t}, {\n\t\tkey: 'toggleWithHidden',\n\t\tvalue: function toggleWithHidden(doCollapse) {\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\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\t}, {\n\t\tkey: 'toggle',\n\t\tvalue: function toggle() {\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.button.setAttribute('aria-expanded', 'true');\n\t\t\tthis.toggleMethod(false);\n\t\t\tthis.isCollapsed = false;\n\t\t}\n\t}, {\n\t\tkey: 'close',\n\t\tvalue: function close() {\n\t\t\tthis.button.setAttribute('aria-expanded', 'false');\n\t\t\tthis.toggleMethod(true);\n\t\t\tthis.isCollapsed = true;\n\t\t}\n\t}]);\n\n\treturn Collapsible;\n}();\n\nCollapsible.DEFAULTS = {};\n\nexports.default = Collapsible;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__collapsible/plugin--bundled.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _collapsible = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__collapsible/collapsible.js\");\n\nvar _collapsible2 = _interopRequireDefault(_collapsible);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-collapsible]';\nvar PLUGIN_NAME = 'Collapsible';\n\n(0, _lib2.default)(PLUGIN_NAME, _collapsible2.default);\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__emit-on-dirty/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-emit-on-dirty]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'EmitOnDirty';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--emit-on-dirty\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__emit-on-dirty/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus-within/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-focus-within]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'FocusWithin';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--focus-within\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus-within/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-focus-element]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'FocusElement';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--focus-element\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__measure-rect/measure-rect.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar log = (0, _debug2.default)('measure-rect');\n\nvar MeasureRect = function () {\n function MeasureRect(element, options) {\n _classCallCheck(this, MeasureRect);\n\n this.element = element;\n this.options = options;\n\n if (!ResizeObserver in window) {\n log(\"ResizeObserver not supported. Aborting.\");\n return false;\n }\n\n this.resizeObserver = new ResizeObserver(this.onResize.bind(this));\n this.watch();\n }\n\n _createClass(MeasureRect, [{\n key: 'watch',\n value: function watch() {\n this.resizeObserver.observe(this.element);\n }\n }, {\n key: 'onResize',\n value: function onResize(entries) {\n var _this = this;\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var entry = _step.value;\n\n var rects = entry.target.getClientRects();\n\n Array.from(rects).forEach(function (rect) {\n log('rect', rect[_this.options.read]);\n var measure = rect[_this.options.read];\n _this.element.style.setProperty(_this.options.setVar, measure + 'px');\n });\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }]);\n\n return MeasureRect;\n}();\n\nMeasureRect.DEFAULTS = {};\n\nexports.default = MeasureRect;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__measure-rect/plugin--bundled.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _measureRect = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__measure-rect/measure-rect.js\");\n\nvar _measureRect2 = _interopRequireDefault(_measureRect);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-measure-rect]';\nvar PLUGIN_NAME = 'MeasureRect';\n\n(0, _lib2.default)(PLUGIN_NAME, _measureRect2.default);\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__observe-grid/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\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-observe-grid]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'ObserveGrid';\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() */(\"plugin--observe-grid\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__observe-grid/plugin.js\")).then(function () {\n\t\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t\t});\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__remove-element-classes/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-remove-element-classes]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'RemoveElementClasses';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--remove-element-classes\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__remove-element-classes/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__toggle-element-classes/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-toggle-element-classes]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'ToggleElementClasses';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--toggle-element-classes\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__toggle-element-classes/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__trigger-event/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-trigger-event]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'triggerEvent';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--trigger-event\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__trigger-event/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/fn.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.debounce = debounce;\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nfunction debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n};\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /*\r\n jQuery plugin\r\n \r\n \r\n ```\r\n import debug from 'debug';\r\n import plugin from '@core/plugins/lib';\r\n \r\n const ELEMENT_SELECTOR = '[data-my-plugin]';\r\n const PLUGIN_NAME = 'MyPlugin';\r\n const MODULE_NAME = 'plugins/my-plugin';\r\n const log = debug(MODULE_NAME);\r\n \r\n class PluginKlass {\r\n constructor(element, options) {\r\n log('new instance', element, options);\r\n \r\n this.element = element;\r\n this.options = options;\r\n this.$element = $(element);\r\n \r\n log('ready', this.$element);\r\n \r\n this.init();\r\n }\r\n }\r\n \r\n PluginKlass.DEFAULTS = {\r\n someCamelCasedProperty: `${PLUGIN_NAME}:something`,\r\n };\r\n \r\n plugin(PLUGIN_NAME, PluginKlass);\r\n \r\n $(document).ready(() => {\r\n $(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n });\r\n ```\r\n \r\n Then using it in html:\r\n ```\r\n
\r\n ```\r\n \r\n Styelguide Core.Global.Javascript.JqueryPlugin\r\n */\n\n// import * as events from './events';\n\nexports.default = plugin;\nexports.jquery = jquery;\nexports.defaults = defaults;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _fn = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/fn.js\");\n\nvar fn = _interopRequireWildcard(_fn);\n\nvar _strings = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/strings.js\");\n\nvar strings = _interopRequireWildcard(_strings);\n\nvar _objects = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/objects.js\");\n\nvar objects = _interopRequireWildcard(_objects);\n\nvar _selectors = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/selectors.js\");\n\nvar selectors = _interopRequireWildcard(_selectors);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar log = (0, _debug2.default)('core/plugins/lib');\n\nfunction plugin(pluginName, klass) {\n var shortHand = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var formattedPluginName = (0, _strings.toCamelCase)(pluginName);\n var dataName = '__' + formattedPluginName;\n var old = _jquery2.default.fn[formattedPluginName];\n var ZERO = 0;\n\n klass.$bus = {\n subscribe: function subscribe(event, fn) {\n (0, _jquery2.default)(this).bind(event, fn);\n },\n publish: function publish(event, data) {\n (0, _jquery2.default)(this).trigger(event, [data]);\n }\n };\n\n klass.$util = {\n fn: fn,\n objects: objects,\n strings: strings,\n selectors: selectors\n };\n\n klass.prototype.selectors = selectors;\n klass.prototype.strings = strings;\n klass.prototype.objects = objects;\n klass.prototype.fn = fn;\n klass.prototype.inViewport = function (elm) {\n var rect = elm.getBoundingClientRect();\n var viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight);\n return !(rect.bottom < 0 || rect.top - viewHeight >= 0);\n };\n\n _jquery2.default.fn[pluginName] = function PluginFactory(option) {\n return this.each(function PluginInstanceFactory() {\n var $this = (0, _jquery2.default)(this);\n var data = $this.data();\n var overrides = (typeof option === 'undefined' ? 'undefined' : _typeof(option)) === 'object' && option;\n var elementOptions = Object.keys(data).filter(function (key) {\n return (0, _strings.toCamelCase)(key).indexOf(formattedPluginName) >= ZERO;\n }).reduce(function (result, path) {\n var data = path && $this.data(path);\n var key = (0, _strings.toCamelCase)(path.replace(new RegExp(formattedPluginName + '-?'), ''));\n log(path, key, $this.data(path));\n\n if (key && data !== undefined) {\n result[key] = data;\n }\n return result;\n }, {});\n log(pluginName, { elementOptions: elementOptions });\n var instance = $this.data(dataName);\n var options = _jquery2.default.extend({}, klass.DEFAULTS, elementOptions, overrides);\n\n // store reference to instance\n if (!instance) {\n instance = new klass(this, options);\n instance.$utils = klass.$util;\n $this.data(dataName, instance);\n $this.addClass('u-' + pluginName);\n }\n\n // execute instance method\n if (typeof option === 'string') {\n instance[option]();\n }\n });\n };\n\n // - Short hand\n if (shortHand) {\n _jquery2.default[formattedPluginName] = function (options) {\n return (0, _jquery2.default)({})[formattedPluginName](options);\n };\n }\n\n // - No conflict\n // $.fn[formattedPluginName].noConflict = function noConflict () {\n // $.fn[formattedPluginName] = old;\n // };\n}\n\nfunction jquery(name) {\n return function decorate(target) {\n plugin(name, target);\n };\n}\n\nfunction defaults(options) {\n return function decorate(target) {\n target.DEFAULTS = options;\n };\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/objects.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.elementAttrtibutesToObject = elementAttrtibutesToObject;\nexports.objectPath = objectPath;\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _strings = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/strings.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MODULE_NAME = 'app.core/lib/objects';\nvar log = (0, _debug2.default)(MODULE_NAME);\n\nvar ZERO = 0;\n\n/**\r\n * Convert an elements attributes to an object, optionally filtering based on some predicate.\r\n * @param {DOMElement} element [description]\r\n * @param {Function} filterFn filtering function. return false to omit attribute.\r\n * @param {Function} transformFn transform attribute name function. returns camelCase by default\r\n * @return {[type]} [description]\r\n */\nfunction elementAttrtibutesToObject(element) {\n var filterFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {\n return true;\n };\n var transformFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (name) {\n return (0, _strings.toCamelCase)(name);\n };\n\n var output = {};\n var attrs = Array.from($(element).get(ZERO).attributes);\n\n if (!attrs) {\n return output;\n }\n\n log('converting element attributes to object', attrs);\n\n return attrs.reduce(function (result, attribute) {\n if (filterFn(attribute)) {\n var name = transformFn(attribute.name);\n var value = attribute.value;\n\n if (value === 'false' || value === 'true') {\n value = Boolean(value);\n }\n result[name] = attribute.value;\n }\n\n return result;\n }, output);\n}\n\n/**\r\n * Object.prop()\r\n *\r\n * Allows dot-notation access to object properties for both getting and setting.\r\n *\r\n * @param {Object} obj The object we're getting from or setting\r\n * @param {string} prop The dot-notated string defining the property location\r\n * @param {mixed} val For setting only; the value to set\r\n */\n\nfunction objectPath(obj, path, val) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : { delimiter: '.' };\n\n var props = path.split(options.delimiter);\n var final = props.pop();\n var part = void 0;\n\n for (var index = 0; index < props.length; index++) {\n part = props[index];\n if (typeof obj[part] === 'undefined') {\n // If we're setting\n if (typeof val !== 'undefined' && index != props.length) {\n // If we're not at the end of the props, keep adding new empty objects\n obj[part] = {};\n } else {\n return undefined;\n }\n }\n obj = obj[part];\n }\n return typeof val !== \"undefined\" ? obj[final] = val : obj[final];\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/selectors.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SELECTOR_PATTERNS = undefined;\nexports.selectorPattern = selectorPattern;\nexports.selectTarget = selectTarget;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar log = (0, _debug2.default)('core/plugins/lib/selectors');\n\nfunction selectorPattern() {\n for (var _len = arguments.length, directives = Array(_len), _key = 0; _key < _len; _key++) {\n directives[_key] = arguments[_key];\n }\n\n return new RegExp('\\\\((' + directives.join('|') + ')(.*)\\\\)\\\\s?(.*)');\n}\n\nvar SELECTOR_PATTERNS = exports.SELECTOR_PATTERNS = {\n\n // .find\n \"children\": selectorPattern('children'),\n\n // .closest\n \"parent\": selectorPattern('parent'),\n \"from\": selectorPattern('from'),\n \"parents\": selectorPattern('parents'),\n \"siblings\": selectorPattern('siblings'),\n \"here\": selectorPattern('here'),\n \"self\": selectorPattern('self')\n};\n\nfunction selectTarget(selector, $element) {\n var $target = void 0;\n\n var isClosestAncestoral = selector.match(SELECTOR_PATTERNS.parent);\n var isAllAncestoral = selector.match(SELECTOR_PATTERNS.parents);\n var isRetargeted = selector.match(SELECTOR_PATTERNS.from);\n var isAllDescendants = selector.match(SELECTOR_PATTERNS.children);\n var isGenerational = selector.match(SELECTOR_PATTERNS.here);\n var isSiblings = selector.match(SELECTOR_PATTERNS.siblings);\n var isSelfish = selector.match(SELECTOR_PATTERNS.self);\n\n // special retargeting root\n if (isRetargeted) {\n log('isRetargeted', isRetargeted[2], isRetargeted[3]);\n var $newElement = selectTarget(isRetargeted[2], $element);\n var newSelector = '(children) ' + isRetargeted[3];\n log('isRetargeted.newElement', $newElement);\n log('isRetargeted.newSelector', newSelector);\n $target = selectTarget(newSelector, $newElement);\n log('isRetargeted.target', $target);\n }\n\n // target is all ancestors\n else if (isAllAncestoral) {\n log('isAllAncestoral', isAllAncestoral);\n $target = $element.parents(isAllAncestoral[isAllAncestoral.length - 1]);\n }\n // target is closest ancestor\n else if (isClosestAncestoral) {\n log('isClosestAncestoral', isClosestAncestoral);\n $target = $element.closest(isClosestAncestoral[isClosestAncestoral.length - 1]);\n }\n // target is somewhere under current parent\n else if (isGenerational) {\n log('isGenerational', isGenerational);\n $target = $element.parent().find(isGenerational[isGenerational.length - 1]);\n }\n // target is only under self\n else if (isAllDescendants) {\n log('isAllDescendants', isAllDescendants);\n $target = $element.find(isAllDescendants[isAllDescendants.length - 1]);\n }\n // target is somewhere in siblings only\n else if (isSiblings) {\n log('isSiblings', isSiblings);\n $target = $element.siblings(isSiblings[isSiblings.length - 1]);\n }\n // target is source\n else if (!selector || isSelfish) {\n log('isSelfish', isSelfish);\n var selector = isSelfish[isSelfish.length - 1] || '*';\n $target = $element.filter(selector);\n }\n // target could be anywhere\n else {\n log('global', selector);\n $target = (0, _jquery2.default)(selector);\n }\n return $target;\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/strings.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.toCamelCase = toCamelCase;\nexports.tmpl = tmpl;\nexports.$tmpl = $tmpl;\nexports.mustache = mustache;\nexports.booleanify = booleanify;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar log = (0, _debug2.default)('core/jquery_plugin/strings');\n\nfunction preserveCamelCase(str) {\n var isLastCharLower = false;\n var isLastCharUpper = false;\n var isLastLastCharUpper = false;\n\n for (var i = 0; i < str.length; i++) {\n var c = str[i];\n\n if (isLastCharLower && /[a-zA-Z]/.test(c) && c.toUpperCase() === c) {\n str = str.substr(0, i) + '-' + str.substr(i);\n isLastCharLower = false;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = true;\n i++;\n } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(c) && c.toLowerCase() === c) {\n str = str.substr(0, i - 1) + '-' + str.substr(i - 1);\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = false;\n isLastCharLower = true;\n } else {\n isLastCharLower = c.toLowerCase() === c;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = c.toUpperCase() === c;\n }\n }\n\n return str;\n}\n\nfunction toCamelCase(str) {\n if (arguments.length > 1) {\n str = Array.from(arguments).map(function (x) {\n return x.trim();\n }).filter(function (x) {\n return x.length;\n }).join('-');\n } else {\n str = str.trim();\n }\n\n if (str.length === 0) {\n return '';\n }\n\n if (str.length === 1) {\n return str.toLowerCase();\n }\n\n if (/^[a-z0-9]+$/.test(str)) {\n return str;\n }\n\n var hasUpperCase = str !== str.toLowerCase();\n\n if (hasUpperCase) {\n str = preserveCamelCase(str);\n }\n\n return str.replace(/^[_.\\- ]+/, '').toLowerCase().replace(/[_.\\- ]+(\\w|$)/g, function (m, p1) {\n return p1.toUpperCase();\n });\n};\n\nfunction tmpl(str, context) {\n var result = str;\n\n if (result) {\n\n Object.keys(context).forEach(function (item) {\n result = result.replace('{{' + item + '}}', context[item]);\n });\n }\n\n return result;\n}\n\nfunction $tmpl(element, context) {\n var $target = (0, _jquery2.default)(element);\n var templateString = $target.attr('data-text-template');\n var result = tmpl(templateString, context);\n\n $target.text(result);\n}\n\n/**\r\n * https://github.com/aishikaty/tiny-mustache\r\n * https://mustache.github.io/\r\n * @param {String} template [description]\r\n * @param {[type]} self [description]\r\n * @param {[type]} parent [description]\r\n * @param {[type]} invert [description]\r\n * @return {[type]} [description]\r\n */\nfunction mustache(template, self, parent, invert) {\n var render = mustache;\n var output = \"\";\n var i;\n\n log('mustache', { template: template, self: self, parent: parent, invert: invert });\n\n function get(ctx, path) {\n path = path.pop ? path : path.split(\".\");\n ctx = ctx[path.shift()] || \"\";\n return 0 in path ? get(ctx, path) : ctx;\n }\n\n self = Array.isArray(self) ? self : self ? [self] : [];\n self = invert ? 0 in self ? [] : [1] : self;\n\n for (i = 0; i < self.length; i++) {\n var childCode = '';\n var depth = 0;\n var inverted;\n var ctx = _typeof(self[i]) == \"object\" ? self[i] : {};\n ctx = Object.assign({}, parent, ctx);\n ctx[\"\"] = { \"\": self[i] };\n\n template.replace(/([\\s\\S]*?)({{((\\/)|(\\^)|#)(.*?)}}|$)/g, function (match, code, y, z, close, invert, name) {\n\n if (!depth) {\n output += code.replace(/{{{(.*?)}}}|{{(!?)(&?)(>?)(.*?)}}/g, function (match, raw, comment, isRaw, partial, name) {\n return raw ? get(ctx, raw) : isRaw ? get(ctx, name) : partial ? render(get(ctx, name), ctx) : !comment ? new Option(get(ctx, name)).innerHTML : \"\";\n });\n inverted = invert;\n } else {\n childCode += depth && !close || depth > 1 ? match : code;\n }\n\n if (close) {\n if (! --depth) {\n name = get(ctx, name);\n if (/^f/.test(typeof name === 'undefined' ? 'undefined' : _typeof(name))) {\n output += name.call(ctx, childCode, function (template) {\n return render(template, ctx);\n });\n } else {\n output += render(childCode, name, ctx, inverted);\n }\n childCode = \"\";\n }\n } else {\n ++depth;\n }\n log('mustache.output.' + depth, { output: output });\n });\n }\n log('mustache.output', { output: output });\n return output;\n}\n\nfunction booleanify(value) {\n var lower = value.toLowerCase();\n if (lower === 'false' || lower === '0') {\n return false;\n }\n return new Boolean(value);\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--10-0!/tool/node_modules/css-loader/index.js??ref--10-1!/tool/node_modules/postcss-loader/lib/index.js??ref--10-2!/tool/node_modules/sass-loader/lib/loader.js??ref--10-3!/tool/project/client/src/core/index.scss\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\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 /tool/project/client/src/core/index.scss\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/index.js\");\nmodule.exports = __webpack_require__(\"/tool/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--10-0!/tool/node_modules/css-loader/index.js??ref--10-1!/tool/node_modules/postcss-loader/lib/index.js??ref--10-2!/tool/node_modules/sass-loader/lib/loader.js??ref--10-3!/tool/project/client/src/core/index.scss\");\n\n\n/***/ })\n\n},[\"multi /tool/project/client/src/core/index.js /tool/project/client/src/core/index.scss\"]);\n\n\n// WEBPACK FOOTER //\n// scripts/core--1d913186afdf7e8a2194.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\nJS Components\r\n*/\r\n\r\n// import \"./forms/input-file\";\r\nimport \"./site-header/navigation--obscurable.js\";\r\nimport './password-toggle/plugin--split';\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/index.js","import debug from 'debug';\r\nimport plugin from '@core/plugins/lib';\r\n\r\nconst ELEMENT_SELECTOR = '[data-password-toggle]';\r\nconst PLUGIN_NAME = 'PasswordToggle';\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: \"plugin--password-toggle\" */ './password-toggle'\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/password-toggle/plugin--split.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\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\n// import \"./jquery__toggle-element-attributes\";\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// 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// import \"./jquery__element-transitions\";\r\n// import \"./jquery__anchor-element\";\r\n\r\nimport \"./jquery__collapsible/plugin--bundled\";\r\nimport \"./jquery__measure-rect/plugin--bundled\";\r\n\r\nimport \"./jquery__observe-grid\";\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\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\n// const log = debug(`plugins/${PLUGIN_NAME}`);\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\tthis.contentSelectorScope =\r\n\t\t\tthis.options.contentSelectorScope &&\r\n\t\t\tscopes[this.options.contentSelectorScope]\r\n\t\t\t\t? scopes[this.options.contentSelectorScope]\r\n\t\t\t\t: scopes['element'];\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.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\t\tthis.toggleMethod(true);\r\n\t\tthis.isCollapsed = true;\r\n\t}\r\n\r\n\twatch() {\r\n\t\tthis.button.addEventListener('click', this.toggle.bind(this));\r\n\t}\r\n\r\n\ttoggleWithHidden(doCollapse) {\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\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\ttoggle() {\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.button.setAttribute('aria-expanded', 'true');\r\n\t\tthis.toggleMethod(false);\r\n\t\tthis.isCollapsed = false;\r\n\t}\r\n\r\n\tclose() {\r\n\t\tthis.button.setAttribute('aria-expanded', 'false');\r\n\t\tthis.toggleMethod(true);\r\n\t\tthis.isCollapsed = true;\r\n\t}\r\n}\r\n\r\nCollapsible.DEFAULTS = {};\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 debug from 'debug';\r\nconst log = debug('measure-rect');\r\n\r\nclass MeasureRect {\r\n constructor(element, options) {\r\n this.element = element;\r\n this.options = options;\r\n\r\n\t\tif (!ResizeObserver in window) {\r\n\t\t\tlog(\"ResizeObserver not supported. Aborting.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n this.resizeObserver = new ResizeObserver(this.onResize.bind(this));\r\n this.watch();\r\n }\r\n\r\n watch() {\r\n this.resizeObserver.observe(this.element);\r\n }\r\n\r\n onResize(entries) {\r\n for (let entry of entries) {\r\n const rects = entry.target.getClientRects();\r\n\r\n Array.from(rects).forEach((rect) => {\r\n log('rect', rect[this.options.read]);\r\n const measure = rect[this.options.read];\r\n this.element.style.setProperty(\r\n this.options.setVar,\r\n `${measure}px`\r\n );\r\n });\r\n }\r\n }\r\n}\r\n\r\nMeasureRect.DEFAULTS = {};\r\n\r\nexport default MeasureRect;\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__measure-rect/measure-rect.js","import $ from 'jquery';\r\nimport plugin from '@core/plugins/lib';\r\nimport MeasureRect from './measure-rect';\r\n\r\nconst ELEMENT_SELECTOR = '[data-measure-rect]';\r\nconst PLUGIN_NAME = 'MeasureRect';\r\n\r\nplugin(PLUGIN_NAME, MeasureRect);\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__measure-rect/plugin--bundled.js","import $ from 'jquery';\r\n\r\nexport const ELEMENT_SELECTOR = '[data-observe-grid]';\r\nexport const PLUGIN_NAME = 'ObserveGrid';\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: \"plugin--observe-grid\" */ './plugin'\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/plugins/jquery__observe-grid/index.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__vegkit vendor"],"sourceRoot":""}