{"version":3,"sources":["webpack:///scripts/cover-selector.module--c7657f2915eb074d0a33.js","webpack:///./node_modules/debug/src/browser.js","webpack:///./node_modules/debug/src/debug.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_arrayMap.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_baseToString.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/isString.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/toString.js","webpack:///./node_modules/lodash/uniqueId.js","webpack:///./node_modules/ms/index.js","webpack:///./node_modules/process/browser.js","webpack:///(webpack)/buildin/global.js","webpack:///./project/client/src/core/modules/cover-selector/components/cover-selector/compare-pane.js","webpack:///./project/client/src/core/modules/cover-selector/components/cover-selector/compare-summary.js","webpack:///./project/client/src/core/modules/cover-selector/components/cover-selector/cover-selector.js","webpack:///./project/client/src/core/modules/cover-selector/components/cover-selector/index.js","webpack:///./project/client/src/core/modules/cover-selector/components/cover-selector/quote-status.js","webpack:///./project/client/src/core/modules/cover-selector/components/quote-form/index--split.js","webpack:///./project/client/src/core/modules/cover-selector/components/validate-form/index--split.js","webpack:///./project/client/src/core/modules/cover-selector/cover-selector.module.js","webpack:///./project/client/src/core/modules/cover-selector/dynamic-load.js","webpack:///./project/client/src/core/modules/cover-selector/exec.js","webpack:///./project/client/src/core/modules/cover-selector/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:///./project/client/src/core/registry/dynamic-loader.js","webpack:///./project/client/src/core/registry/index.js","webpack:///./project/client/src/core/registry/names.js","webpack:///./project/client/src/core/registry/state.js","webpack:///./project/client/src/core/vendor/enumify/enumify.js","webpack:///./project/client/src/core/vendor/pyrsmk-toast/toast.js","webpack:///external \"jQuery\""],"names":["webpackJsonp","/tool/node_modules/babel-loader/lib/index.js??ref--22-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--22-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--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_Symbol.js","root","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_arrayMap.js","arrayMap","array","iteratee","result","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_baseGetTag.js","baseGetTag","value","undefined","undefinedTag","nullTag","symToStringTag","Object","getRawTag","objectToString","toStringTag","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_baseToString.js","baseToString","isArray","isSymbol","symbolToString","INFINITY","symbolProto","toString","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_freeGlobal.js","global","freeGlobal","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_getRawTag.js","isOwn","hasOwnProperty","tag","unmasked","nativeObjectToString","objectProto","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_objectToString.js","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_root.js","freeSelf","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/isArray.js","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/isObjectLike.js","isObjectLike","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/isString.js","isString","stringTag","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/isSymbol.js","symbolTag","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/toString.js","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/uniqueId.js","uniqueId","prefix","id","idCounter","/tool/node_modules/babel-loader/lib/index.js??ref--22-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--22-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","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--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/webpack/buildin/global.js","g","eval","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/cover-selector/compare-pane.js","_interopRequireDefault","__esModule","default","_classCallCheck","Constructor","TypeError","sineInOut","t","cos","PI","debounce","fn","context","cancelAnimationFrame","requestAnimationFrame","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","key","protoProps","staticProps","_lib","_lib2","_debug","_debug2","ComparePane","element","scrollLeft","scrollWidth","clientWidth","stepWidth","pane","querySelector","paneSelector","stepWidthElement","stepWidthElementSelector","buttonLeft","buttonLeftSelector","buttonRight","buttonRightSelector","debouncedUpdate","update","watch","addEventListener","scrollPaneLeft","scrollPaneRight","measure","updateDisabled","isLeftMax","isRightMax","updateFocusable","isScrollable","button","condition","disabled","tabindex","scrollEdgeThreshold","param","timestamp","_param$startTime","startTime","startPos","direction","duration","scrollStep","timeElapsed","easeElapsed","targetScrollDist","smoothScroll","scroller","scrollDuration","DEFAULTS","$","ready","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/cover-selector/compare-summary.js","_defineProperty","_toConsumableArray","arr","arr2","from","getJSONValue","stringValue","error","CompareSummary","frequencyInput","frequencyInputSelector","excessInput","excessInputSelector","excessInputsArray","querySelectorAll","hasMultipleProducts","rateDisplay","rateDisplaySelector","futureRateDisplay","futureRateDisplaySelector","updateRateDisplay","updateRateDisplayMethod","updateFutureRateDisplay","updateFutureRateDisplayMethod","frequencies","map","option","syncElements","data-compare-summary--sync-frequency","rates","getRatesFromInputs","getRatesFromData","futureRates","getFutureRatesFromInputs","getFutureRatesFromData","attributeObserver","MutationObserver","onAttributeChange","onChange","observe","attributes","reduce","object","input","assign","dataset","syncRates","syncFutureRates","attr","setAttribute","chosenRates","getProductId","chosenFutureRates","trigger","mutationList","observer","filter","mutation","attributeName","forEach","applyAttributeChanges","attribute","newValue","getAttribute","frequency","productId","textContent","getRate","toFixed","getFutureRate","frequencyIndex","findIndex","periodName","find","checked","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/cover-selector/cover-selector.js","CoverSelector","form","inclusionsToggles","inclusionsToggleSelector","exclusionsToggles","exclusionsToggleSelector","prioritiesToggles","prioritiesToggleSelector","errorMessage","errorMessageSelector","submitLabel","submitLabelSelector","componentErrorCollection","componentErrorSelector","items","itemSelector","choiceResultInput","choiceResultInputSelector","status","statusSelector","updateStatus","updateStatusMethod","updateStatusFrequency","updateStatusFrequencyMethod","onFormChange","onCoverChange","toggleCollapsibles","onFormSubmit","event","elements","choiceInputName","preventDefault","hidden","toggles","sourceToggle","toggle","collapsibleOpen","updateProductDisplay","getSelectedProduct","chosenProductId","chosenItem","item","updateSubmitLabel","rateToUpdate","hospital","extras","nameToUpdate","productRates","productName","noExtras","buttonLabel","_this","updatedItem","itemDataSync","excessOptions","excessRadioNamePrefix","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/cover-selector/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/cover-selector/quote-status.js","QuoteStatus","hospitalName","extrasName","hospitalRates","extrasRates","watchAttr","data-quote-status--frequency","data-quote-status--hospital-name","data-quote-status--extras-name","data-quote-status--hospital-rates","data-quote-status--extras-rates","data-quote-status--no-extras","hospitalNameElement","hospitalNameSelector","extrasNameElement","extrasNameSelector","extrasPartElement","extrasPartSelector","resultElement","resultSelector","amountElement","amountSelector","updateDisplay","calculateAmount","updateHighlight","hasHospitalValue","hasExtrasValue","updateHidden","hasNoResult","classList","highlightClass","jQuery","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/quote-form/index--split.js","_jquery","_jquery2","each","then","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/validate-form/index--split.js","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/cover-selector.module.js","_exec2","_registry","registry","newObj","_names","_exec","MODULE_NAME","COVER_SELECTOR_MODULE","exists","register","STATE","LOADING","setState","LOADED","isRegistered","REGISTERED","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/dynamic-load.js","dynamicLoader","MODULE_SELECTOR","ASSETS","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/exec.js","_index2","_dynamicLoad","_index","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/index.js","_uniqueId2","_uniqueId","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/fn.js","func","wait","immediate","later","callNow","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js","_interopRequireWildcard","plugin","pluginName","klass","shortHand","formattedPluginName","_strings","toCamelCase","dataName","$bus","subscribe","publish","data","$util","objects","strings","selectors","inViewport","elm","rect","getBoundingClientRect","viewHeight","max","clientHeight","innerHeight","bottom","top","$this","overrides","elementOptions","keys","path","extend","$utils","addClass","jquery","defaults","_fn","_objects","_selectors","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/objects.js","elementAttrtibutesToObject","filterFn","transformFn","output","attrs","get","ZERO","Boolean","objectPath","delimiter","final","pop","part","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/selectors.js","selectorPattern","_len","directives","_key","join","selectTarget","selector","$element","$target","isClosestAncestoral","SELECTOR_PATTERNS","parent","isAllAncestoral","parents","isRetargeted","isAllDescendants","children","isGenerational","here","isSiblings","siblings","isSelfish","$newElement","newSelector","closest","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/strings.js","preserveCamelCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","toUpperCase","x","trim","p1","tmpl","$tmpl","templateString","text","mustache","template","invert","ctx","shift","render","inverted","childCode","depth","","code","z","close","raw","comment","isRaw","partial","Option","innerHTML","booleanify","lower","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/registry/dynamic-loader.js","loadArray","NOT_REQUIRED","readTextFile","MANIFEST_FILE","getManifestFileName","MANIFEST_FILE_DATA","resolvedLoadArray","_isString2","newItem","STATIC_PATH","toast","file","callback","rawFile","XMLHttpRequest","overrideMimeType","open","onreadystatechange","readyState","responseText","send","_toast","_toast2","_isString","staticPath","staticPathElement","content","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/registry/index.js","state","REGISTRY","validState","INIT","getState","State","dl","_state","_state2","_dynamicLoader","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/registry/names.js","DEV_MODULE","CORE_MODULE","DATEPICKER_MODULE","PS_QUOTE_FORM_MODULE","LOCATOR_MODULE","DEV_THEME_SWITCHER","HF_APP_MODULE","HF_PRODUCT_SELECTOR_MODULE","HF_PRODUCT_DETAIL_CARD_MODULE","NT_HF_APP_MODULE","SEEU_APP_MODULE","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/registry/state.js","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","_enumify","_Enum","getPrototypeOf","Enum","initEnum","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/vendor/enumify/enumify.js","copyProperties","source","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","getOwnPropertyNames","next","done","desc","getOwnPropertyDescriptor","return","_typeof2","INITIALIZED","instanceProperties","arg","_enumValuesFromArray","_enumValuesFromObject","freeze","enumValues","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_pushEnumValue","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","enumValue","ordinal","/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/vendor/pyrsmk-toast/toast.js","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","factory","head","getElementsByTagName","loadResources","resources","resource","loadResource","watchResources","slice","node","implicit_type","explicit_type","handled_resources","createElement","src","appendChild","appVersion","onload","rel","href","watchStylesheet","resourcesToLoad","sheet","styleSheet","external \"jQuery\"","multi /tool/project/client/src/core/modules/cover-selector/cover-selector.module.js"],"mappings":"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","file":"scripts/cover-selector.module--c7657f2915eb074d0a33.js","sourcesContent":["webpackJsonp([\"cover-selector.module\"],{\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-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--22-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--22-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--22-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--22-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--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_Symbol.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar root = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_root.js\");\n\n/** Built-in value references. */\nvar _Symbol = root.Symbol;\n\nmodule.exports = _Symbol;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_arrayMap.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_baseGetTag.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _Symbol = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_Symbol.js\"),\n getRawTag = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_getRawTag.js\"),\n objectToString = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_objectToString.js\");\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_baseToString.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _Symbol = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_Symbol.js\"),\n arrayMap = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_arrayMap.js\"),\n isArray = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/isArray.js\"),\n isSymbol = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/isSymbol.js\");\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = _Symbol ? _Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_freeGlobal.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\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/** Detect free variable `global` from Node.js. */\nvar freeGlobal = (typeof global === 'undefined' ? 'undefined' : _typeof(global)) == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/webpack/buildin/global.js\")))\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_getRawTag.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _Symbol = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_Symbol.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_objectToString.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_root.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\nvar freeGlobal = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_freeGlobal.js\");\n\n/** Detect free variable `self`. */\nvar freeSelf = (typeof self === 'undefined' ? 'undefined' : _typeof(self)) == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/isArray.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/isObjectLike.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 * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/isString.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar baseGetTag = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_baseGetTag.js\"),\n isArray = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/isArray.js\"),\n isObjectLike = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag;\n}\n\nmodule.exports = isString;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/isSymbol.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\nvar baseGetTag = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_baseGetTag.js\"),\n isObjectLike = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag;\n}\n\nmodule.exports = isSymbol;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/toString.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar baseToString = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/_baseToString.js\");\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/uniqueId.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar toString = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/toString.js\");\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nmodule.exports = uniqueId;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-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--22-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--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/webpack/buildin/global.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\nvar g;\n\n// This works in non-strict mode\ng = function () {\n\treturn this;\n}();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/cover-selector/compare-pane.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; }; }(); /* global jQuery */\n\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-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 ELEMENT_SELECTOR = \"[data-compare-pane]\";\nvar PLUGIN_NAME = \"comparePane\";\nvar log = (0, _debug2.default)(PLUGIN_NAME);\n\nfunction getJSONValue(stringValue) {\n\ttry {\n\t\treturn JSON.parse(stringValue);\n\t} catch (error) {\n\t\treturn stringValue;\n\t}\n}\n\n// https://github.com/mattdesl/eases/blob/master/sine-in-out.js\nfunction sineInOut(t) {\n\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\n}\n\n// https://vanillajstoolkit.com/helpers/debounce/\nfunction debounce(fn) {\n\t// Setup a timer\n\tvar timeout;\n\n\t// Return a function to run debounced\n\treturn function () {\n\n\t\t// Setup the arguments\n\t\tvar context = this;\n\t\tvar args = arguments;\n\n\t\t// If there's a timer, cancel it\n\t\tif (timeout) {\n\t\t\twindow.cancelAnimationFrame(timeout);\n\t\t}\n\n\t\t// Setup the new requestAnimationFrame()\n\t\ttimeout = window.requestAnimationFrame(function () {\n\t\t\tfn.apply(context, args);\n\t\t});\n\t};\n};\n\nvar ComparePane = function () {\n\tfunction ComparePane(element, options) {\n\t\t_classCallCheck(this, ComparePane);\n\n\t\tlog(\"element\", element);\n\t\tlog(\"options\", options);\n\n\t\tthis.options = options;\n\t\tthis.element = element;\n\n\t\tthis.scrollLeft = 0;\n\t\tthis.scrollWidth = 0;\n\t\tthis.clientWidth = 0;\n\t\tthis.stepWidth = 0;\n\n\t\tthis.pane = this.element.querySelector(this.options.paneSelector);\n\n\t\tthis.stepWidthElement = this.element.querySelector(this.options.stepWidthElementSelector);\n\n\t\tthis.buttonLeft = this.element.querySelector(this.options.buttonLeftSelector);\n\n\t\tthis.buttonRight = this.element.querySelector(this.options.buttonRightSelector);\n\n\t\tthis.debouncedUpdate = debounce(this.update);\n\n\t\tthis.init();\n\t\tthis.watch();\n\n\t\tlog(\"ready\", this, this.element);\n\t}\n\n\t_createClass(ComparePane, [{\n\t\tkey: \"init\",\n\t\tvalue: function init() {\n\t\t\tthis.update();\n\t\t}\n\t}, {\n\t\tkey: \"watch\",\n\t\tvalue: function watch() {\n\t\t\tlog(\"watching\");\n\n\t\t\twindow.addEventListener('resize', this.debouncedUpdate.bind(this));\n\t\t\tthis.pane.addEventListener('scroll', this.debouncedUpdate.bind(this));\n\t\t\tthis.buttonLeft.addEventListener('click', this.scrollPaneLeft.bind(this));\n\t\t\tthis.buttonRight.addEventListener('click', this.scrollPaneRight.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"measure\",\n\t\tvalue: function measure() {\n\t\t\tthis.scrollLeft = this.pane.scrollLeft || 0;\n\t\t\tthis.scrollWidth = this.pane.scrollWidth;\n\t\t\tthis.clientWidth = this.pane.clientWidth;\n\t\t\tthis.stepWidth = this.stepWidthElement.clientWidth;\n\t\t}\n\t}, {\n\t\tkey: \"update\",\n\t\tvalue: function update() {\n\t\t\tthis.measure();\n\t\t\tthis.updateDisabled(this.buttonLeft, this.isLeftMax.bind(this));\n\t\t\tthis.updateDisabled(this.buttonRight, this.isRightMax.bind(this));\n\t\t\tthis.updateFocusable(this.pane, this.isScrollable.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"updateDisabled\",\n\t\tvalue: function updateDisabled(button, condition) {\n\t\t\tbutton.disabled = !!condition();\n\t\t}\n\t}, {\n\t\tkey: \"updateFocusable\",\n\t\tvalue: function updateFocusable(pane, condition) {\n\t\t\tpane.tabindex = !!condition() ? '0' : '-1';\n\t\t}\n\t}, {\n\t\tkey: \"isLeftMax\",\n\t\tvalue: function isLeftMax() {\n\t\t\treturn this.scrollLeft < this.options.scrollEdgeThreshold;\n\t\t}\n\t}, {\n\t\tkey: \"isRightMax\",\n\t\tvalue: function isRightMax() {\n\t\t\treturn this.scrollWidth - this.clientWidth - this.scrollLeft < this.options.scrollEdgeThreshold;\n\t\t}\n\t}, {\n\t\tkey: \"isScrollable\",\n\t\tvalue: function isScrollable() {\n\t\t\treturn !this.isLeftMax() || !this.isRightMax();\n\t\t}\n\t}, {\n\t\tkey: \"isFocusable\",\n\t\tvalue: function isFocusable() {\n\t\t\treturn this.isScrollable() ? '0' : '-1';\n\t\t}\n\t}, {\n\t\tkey: \"smoothScroll\",\n\t\tvalue: function smoothScroll(param, timestamp) {\n\t\t\tvar _param$startTime = param.startTime,\n\t\t\t startTime = _param$startTime === undefined ? timestamp : _param$startTime,\n\t\t\t startPos = param.startPos,\n\t\t\t direction = param.direction,\n\t\t\t duration = param.duration;\n\n\n\t\t\tvar scrollStep = this.stepWidth;\n\n\t\t\tvar timeElapsed = timestamp - startTime;\n\t\t\tvar easeElapsed = timeElapsed / duration;\n\t\t\tvar targetScrollDist = scrollStep * direction;\n\n\t\t\tthis.pane.scrollLeft = startPos + targetScrollDist * sineInOut(easeElapsed);\n\n\t\t\tif (timeElapsed < duration) {\n\t\t\t\twindow.requestAnimationFrame(this.smoothScroll.bind(this, {\n\t\t\t\t\tstartPos: startPos,\n\t\t\t\t\tdirection: direction,\n\t\t\t\t\tduration: duration,\n\t\t\t\t\tstartTime: startTime\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"scrollPaneLeft\",\n\t\tvalue: function scrollPaneLeft() {\n\t\t\tvar startPos = this.pane.scrollLeft;\n\t\t\tvar scroller = this.smoothScroll.bind(this, {\n\t\t\t\tstartPos: startPos,\n\t\t\t\tdirection: -1,\n\t\t\t\tduration: this.options.scrollDuration\n\t\t\t});\n\t\t\twindow.requestAnimationFrame(scroller);\n\t\t}\n\t}, {\n\t\tkey: \"scrollPaneRight\",\n\t\tvalue: function scrollPaneRight() {\n\t\t\tvar startPos = this.pane.scrollLeft;\n\t\t\tvar scroller = this.smoothScroll.bind(this, {\n\t\t\t\tstartPos: startPos,\n\t\t\t\tdirection: 1,\n\t\t\t\tduration: this.options.scrollDuration\n\t\t\t});\n\t\t\twindow.requestAnimationFrame(scroller);\n\t\t}\n\t}]);\n\n\treturn ComparePane;\n}();\n\nComparePane.DEFAULTS = {\n\tscrollEdgeThreshold: 5,\n\tscrollDuration: 500\n};\n\n(0, _lib2.default)(PLUGIN_NAME, ComparePane);\n\n$(document).ready(function () {\n\t$(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/cover-selector/compare-summary.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; }; }(); /* global jQuery */\n\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-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 _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ELEMENT_SELECTOR = \"[data-compare-summary]\";\nvar PLUGIN_NAME = \"compareSummary\";\n\nvar log = (0, _debug2.default)(PLUGIN_NAME);\n\nfunction getJSONValue(stringValue) {\n\ttry {\n\t\treturn JSON.parse(stringValue);\n\t} catch (error) {\n\t\treturn stringValue;\n\t}\n}\n\nvar CompareSummary = function () {\n\tfunction CompareSummary(element, options) {\n\t\t_classCallCheck(this, CompareSummary);\n\n\t\tlog(\"element\", element);\n\t\tlog(\"options\", options);\n\n\t\tthis.options = options;\n\t\tthis.element = element;\n\n\t\t// Elements\n\t\t// - frequency select\n\t\t// - excess radios\n\t\t// - rate display\n\n\t\tthis.frequencyInput = this.element.querySelector(this.options.frequencyInputSelector);\n\n\t\tthis.excessInput = this.element.querySelector(this.options.excessInputSelector);\n\t\tthis.excessInputsArray = [].concat(_toConsumableArray(this.element.querySelectorAll(this.options.excessInputSelector)));\n\n\t\t// Specifically has excess options\n\t\tthis.hasMultipleProducts = !!this.options.excessInputSelector;\n\n\t\tthis.rateDisplay = this.element.querySelector(this.options.rateDisplaySelector);\n\n\t\tthis.futureRateDisplay = this.element.querySelector(this.options.futureRateDisplaySelector);\n\n\t\t// Rate may not be displayed\n\t\t// Only run associated update method if it is\n\t\tthis.updateRateDisplay = this.rateDisplay ? this.updateRateDisplayMethod : function () {};\n\n\t\tthis.updateFutureRateDisplay = this.futureRateDisplay ? this.updateFutureRateDisplayMethod : function () {};\n\n\t\tthis.frequencies = this.frequencyInput ? [].concat(_toConsumableArray(this.frequencyInput.options)).map(function (option) {\n\t\t\treturn option.value;\n\t\t}) : [];\n\n\t\tthis.syncElements = {\n\t\t\t\"data-compare-summary--sync-frequency\": this.frequencyInput\n\t\t\t//, 'data-compare-summary--sync-excess': this.excessInput.form.elements[this.excessInput.name]\n\t\t};\n\n\t\t// Extract rates data from inputs for this product\n\t\tthis.rates = this.hasMultipleProducts ? this.getRatesFromInputs() : this.getRatesFromData();\n\n\t\tthis.futureRates = this.hasMultipleProducts ? this.getFutureRatesFromInputs() : this.getFutureRatesFromData();\n\n\t\tthis.attributeObserver = new MutationObserver(this.onAttributeChange.bind(this));\n\n\t\tthis.watch();\n\n\t\tlog(\"ready\", this, this.element);\n\t}\n\n\t_createClass(CompareSummary, [{\n\t\tkey: \"watch\",\n\t\tvalue: function watch() {\n\t\t\tlog(\"watching\");\n\n\t\t\tthis.element.addEventListener(\"change\", this.onChange.bind(this));\n\t\t\tthis.attributeObserver.observe(this.element, { attributes: true });\n\t\t}\n\t}, {\n\t\tkey: \"getRatesFromInputs\",\n\t\tvalue: function getRatesFromInputs() {\n\t\t\treturn this.excessInputsArray.reduce(function (object, input) {\n\t\t\t\treturn Object.assign(_defineProperty({}, input.id, getJSONValue(input.dataset[\"rates\"])), object);\n\t\t\t}, {});\n\t\t}\n\t}, {\n\t\tkey: \"getFutureRatesFromInputs\",\n\t\tvalue: function getFutureRatesFromInputs() {\n\t\t\treturn this.excessInputsArray.reduce(function (object, input) {\n\t\t\t\treturn Object.assign(_defineProperty({}, input.id, getJSONValue(input.dataset[\"futureRates\"])), object);\n\t\t\t}, {});\n\t\t}\n\t}, {\n\t\tkey: \"getRatesFromData\",\n\t\tvalue: function getRatesFromData() {\n\t\t\treturn {\n\t\t\t\t'rates': getJSONValue(this.options.syncRates)\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"getFutureRatesFromData\",\n\t\tvalue: function getFutureRatesFromData() {\n\t\t\treturn {\n\t\t\t\t'rates': getJSONValue(this.options.syncFutureRates)\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"onChange\",\n\t\tvalue: function onChange() {\n\t\t\t// update form element data attr\n\t\t\tfor (var attr in this.syncElements) {\n\t\t\t\tvar value = this.syncElements[attr].value;\n\t\t\t\tthis.element.setAttribute(attr, value);\n\t\t\t}\n\n\t\t\t// sync rates data attr - ref for cover selector component\n\t\t\tvar chosenRates = this.rates[this.getProductId()];\n\t\t\tthis.element.setAttribute(\"data-compare-summary--sync-rates\", JSON.stringify(chosenRates));\n\n\t\t\tvar chosenFutureRates = this.futureRates[this.getProductId()];\n\t\t\tthis.element.setAttribute(\"data-compare-summary--sync-future-rates\", JSON.stringify(chosenFutureRates));\n\n\t\t\tthis.updateRateDisplay();\n\t\t\tthis.updateFutureRateDisplay();\n\n\t\t\t// update other instances\n\t\t\t$(this.element).trigger(\"coverchange\");\n\t\t}\n\t}, {\n\t\tkey: \"onAttributeChange\",\n\t\tvalue: function onAttributeChange(mutationList, observer) {\n\t\t\tmutationList.filter(function (mutation) {\n\t\t\t\treturn mutation.type === \"attributes\" && this.syncElements[mutation.attributeName];\n\t\t\t}.bind(this)).forEach(this.applyAttributeChanges.bind(this));\n\t\t}\n\n\t\t// Update value of corresponding form elements\n\n\t}, {\n\t\tkey: \"applyAttributeChanges\",\n\t\tvalue: function applyAttributeChanges(mutation) {\n\t\t\tvar attribute = mutation.attributeName;\n\t\t\tvar newValue = this.element.getAttribute(attribute);\n\t\t\tvar input = this.syncElements[attribute];\n\t\t\tinput.value = newValue;\n\t\t\tthis.updateRateDisplay();\n\t\t\tthis.updateFutureRateDisplay();\n\t\t}\n\t}, {\n\t\tkey: \"updateRateDisplayMethod\",\n\t\tvalue: function updateRateDisplayMethod() {\n\t\t\tvar frequency = this.frequencyInput.value;\n\t\t\tvar productId = this.getProductId();\n\t\t\tthis.rateDisplay.textContent = this.getRate(productId, frequency).toFixed(2);\n\t\t}\n\t}, {\n\t\tkey: \"updateFutureRateDisplayMethod\",\n\t\tvalue: function updateFutureRateDisplayMethod() {\n\t\t\tvar frequency = this.frequencyInput.value;\n\t\t\tvar productId = this.getProductId();\n\t\t\tthis.futureRateDisplay.textContent = this.getFutureRate(productId, frequency).toFixed(2);\n\t\t}\n\t}, {\n\t\tkey: \"getRate\",\n\t\tvalue: function getRate(productId, frequency) {\n\t\t\tvar frequencyIndex = this.frequencies.findIndex(function (periodName) {\n\t\t\t\treturn frequency === periodName;\n\t\t\t});\n\n\t\t\treturn this.rates[productId][frequencyIndex];\n\t\t}\n\t}, {\n\t\tkey: \"getFutureRate\",\n\t\tvalue: function getFutureRate(productId, frequency) {\n\t\t\tvar frequencyIndex = this.frequencies.findIndex(function (periodName) {\n\t\t\t\treturn frequency === periodName;\n\t\t\t});\n\n\t\t\treturn this.futureRates[productId][frequencyIndex];\n\t\t}\n\t}, {\n\t\tkey: \"getProductId\",\n\t\tvalue: function getProductId() {\n\t\t\tif (!this.hasMultipleProducts) {\n\t\t\t\treturn 'rates';\n\t\t\t}\n\t\t\tvar checkedExcessInput = this.excessInputsArray.find(function (input) {\n\t\t\t\treturn input.checked;\n\t\t\t});\n\n\t\t\treturn checkedExcessInput.id;\n\t\t}\n\t}]);\n\n\treturn CompareSummary;\n}();\n\nCompareSummary.DEFAULTS = {};\n\n(0, _lib2.default)(PLUGIN_NAME, CompareSummary);\n\n$(document).ready(function () {\n\t$(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/cover-selector/cover-selector.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; }; }(); /* global jQuery */\n\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ELEMENT_SELECTOR = \"[data-cover-selector]\";\nvar PLUGIN_NAME = \"coverSelector\";\n\nvar log = (0, _debug2.default)(PLUGIN_NAME);\n\nvar CoverSelector = function () {\n\tfunction CoverSelector(element, options) {\n\t\t_classCallCheck(this, CoverSelector);\n\n\t\tlog(\"element\", element);\n\t\tlog(\"options\", options);\n\n\t\tthis.options = options;\n\t\tthis.form = element;\n\n\t\tthis.inclusionsToggles = [].concat(_toConsumableArray(this.form.querySelectorAll(this.options.inclusionsToggleSelector)));\n\t\tthis.exclusionsToggles = [].concat(_toConsumableArray(this.form.querySelectorAll(this.options.exclusionsToggleSelector)));\n\t\tthis.prioritiesToggles = [].concat(_toConsumableArray(this.form.querySelectorAll(this.options.prioritiesToggleSelector)));\n\t\tthis.errorMessage = this.form.querySelector(this.options.errorMessageSelector);\n\t\tthis.submitLabel = this.form.querySelector(this.options.submitLabelSelector);\n\n\t\t// Elements that may have error messages to display\n\t\tthis.componentErrorCollection = [].concat(_toConsumableArray(this.form.querySelectorAll(this.options.componentErrorSelector)));\n\n\t\tthis.items = [].concat(_toConsumableArray(this.form.querySelectorAll(this.options.itemSelector)));\n\t\tthis.choiceResultInput = this.form.querySelector(this.options.choiceResultInputSelector);\n\n\t\t// Status element may not exist\n\t\t// Only wire up methods if it does\n\t\tthis.status = this.form.querySelector(this.options.statusSelector);\n\t\tthis.updateStatus = this.status ? this.updateStatusMethod : function () {};\n\t\tthis.updateStatusFrequency = this.status ? this.updateStatusFrequencyMethod : function () {};\n\n\t\tthis.watch();\n\t\tlog(\"ready\", this, this.form);\n\t}\n\n\t_createClass(CoverSelector, [{\n\t\tkey: \"watch\",\n\t\tvalue: function watch() {\n\t\t\tlog(\"watching\");\n\n\t\t\tthis.form.addEventListener(\"change\", this.onFormChange.bind(this));\n\t\t\t$(this.form).on(\"coverchange\", this.onCoverChange.bind(this));\n\t\t\t$(this.form).on(\"toggleinclusions\", this.toggleCollapsibles.bind(this, this.inclusionsToggles));\n\t\t\t$(this.form).on(\"toggleexclusions\", this.toggleCollapsibles.bind(this, this.exclusionsToggles));\n\t\t\t$(this.form).on(\"togglepriorities\", this.toggleCollapsibles.bind(this, this.prioritiesToggles));\n\t\t\tthis.form.addEventListener(\"submit\", this.onFormSubmit.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"onFormSubmit\",\n\t\tvalue: function onFormSubmit(event) {\n\t\t\tvar choiceValue = this.form.elements[this.options.choiceInputName].value;\n\t\t\tif (!choiceValue) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.errorMessage.hidden = false;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"toggleCollapsibles\",\n\t\tvalue: function toggleCollapsibles(toggles, event) {\n\t\t\tlog(\"toggle\", arguments);\n\n\t\t\tvar sourceToggle = event.target;\n\t\t\tvar targetToggles = toggles.filter(function (toggle) {\n\t\t\t\treturn toggle !== sourceToggle;\n\t\t\t});\n\n\t\t\ttargetToggles.forEach(function (toggle) {\n\t\t\t\ttoggle.dataset.collapsibleOpen = sourceToggle.dataset.collapsibleOpen;\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"onFormChange\",\n\t\tvalue: function onFormChange(event) {\n\t\t\tlog(\"onFormChange\", event);\n\n\t\t\tthis.updateProductDisplay();\n\n\t\t\t// Consider moving this to submit event?\n\t\t\tthis.getSelectedProduct();\n\t\t}\n\t}, {\n\t\tkey: \"updateProductDisplay\",\n\t\tvalue: function updateProductDisplay() {\n\t\t\tvar chosenProductId = this.form.elements[this.options.choiceInputName].value;\n\n\t\t\t// abort if not chosen yet\n\t\t\tif (!chosenProductId) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar chosenItem = this.items.find(function (item) {\n\t\t\t\treturn item.dataset[\"target-CoverSelector\"] === \"item:\" + chosenProductId;\n\t\t\t});\n\n\t\t\tthis.updateStatus(chosenItem);\n\t\t\tthis.updateSubmitLabel(chosenItem);\n\t\t}\n\t}, {\n\t\tkey: \"updateStatusMethod\",\n\t\tvalue: function updateStatusMethod(chosenItem) {\n\t\t\t// TODO: move these to config or data attr\n\t\t\tvar rateToUpdate = {\n\t\t\t\thospital: \"quoteStatus-HospitalRates\",\n\t\t\t\textras: \"quoteStatus-ExtrasRates\"\n\t\t\t};\n\t\t\tvar nameToUpdate = {\n\t\t\t\thospital: \"quoteStatus-HospitalName\",\n\t\t\t\textras: \"quoteStatus-ExtrasName\"\n\t\t\t};\n\n\t\t\t// rates (one of hospital/extras)\n\t\t\tvar productRates = chosenItem.dataset[\"compareSummary-SyncRates\"];\n\t\t\tthis.status.dataset[rateToUpdate[this.options.choiceInputName]] = productRates;\n\n\t\t\t// name (one of hospital/extras)\n\t\t\tvar productName = chosenItem.dataset[\"compareSummary-Name\"];\n\t\t\tthis.status.dataset[nameToUpdate[this.options.choiceInputName]] = productName;\n\n\t\t\tvar noExtras = chosenItem.dataset[\"compareSummary-NoExtras\"] === 'true';\n\t\t\tthis.status.dataset[\"quoteStatus-NoExtras\"] = noExtras;\n\t\t}\n\t}, {\n\t\tkey: \"updateStatusFrequencyMethod\",\n\t\tvalue: function updateStatusFrequencyMethod(frequency) {\n\t\t\tthis.status.dataset[\"quoteStatus-Frequency\"] = frequency;\n\t\t}\n\t}, {\n\t\tkey: \"updateSubmitLabel\",\n\t\tvalue: function updateSubmitLabel(chosenItem) {\n\t\t\tvar buttonLabel = chosenItem.dataset['compareSummary-SubmitLabel'];\n\t\t\tif (buttonLabel && this.submitLabel) {\n\t\t\t\tthis.submitLabel.textContent = buttonLabel;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"onCoverChange\",\n\t\tvalue: function onCoverChange(event) {\n\t\t\tvar _this = this;\n\n\t\t\tlog(\"onCoverChange\", event);\n\n\t\t\tvar updatedItem = event.target;\n\t\t\tvar itemsToUpdate = this.items.filter(function (item) {\n\t\t\t\treturn item !== updatedItem;\n\t\t\t});\n\n\t\t\t// Sync values to other summary items\n\t\t\titemsToUpdate.forEach(function (item) {\n\t\t\t\t_this.options.itemDataSync.forEach(function (attr) {\n\t\t\t\t\titem.dataset[attr] = updatedItem.dataset[attr];\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// updating status frequency even if no extras selected (hospital may have been)\n\t\t\t// will update using existing values\n\t\t\tvar frequency = updatedItem.dataset[\"compareSummary-SyncFrequency\"];\n\t\t\tthis.updateStatusFrequency(frequency);\n\t\t\tthis.updateProductDisplay();\n\t\t}\n\t}, {\n\t\tkey: \"getSelectedProduct\",\n\t\tvalue: function getSelectedProduct() {\n\t\t\t//\tExtras don't need this field as we can get value from choose input directly\n\t\t\tif (!this.options.choiceResultInputSelector || !this.choiceResultInput) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar productId = this.form.elements[this.options.choiceInputName].value;\n\t\t\tvar excessOptions = this.form.elements[\"\" + this.options.excessRadioNamePrefix + productId];\n\n\t\t\tlog(\"selected product: \", excessOptions);\n\t\t\tthis.choiceResultInput.value = excessOptions ? excessOptions.value : \"\";\n\t\t}\n\t}]);\n\n\treturn CoverSelector;\n}();\n\nCoverSelector.DEFAULTS = {\n\texcessRadioNamePrefix: \"cover_\"\n};\n\n(0, _lib2.default)(PLUGIN_NAME, CoverSelector);\n$(document).ready(function () {\n\t$(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/cover-selector/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--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/cover-selector/cover-selector.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/cover-selector/compare-summary.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/cover-selector/quote-status.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/cover-selector/compare-pane.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/cover-selector/quote-status.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; }; }(); /* global jQuery */\n\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-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 ELEMENT_SELECTOR = \"[data-quote-status]\";\nvar PLUGIN_NAME = \"quoteStatus\";\n\nvar log = (0, _debug2.default)(PLUGIN_NAME);\n\nfunction getJSONValue(stringValue) {\n\ttry {\n\t\treturn JSON.parse(stringValue);\n\t} catch (error) {\n\t\treturn stringValue;\n\t}\n}\n\nvar QuoteStatus = function () {\n\tfunction QuoteStatus(element, options) {\n\t\t_classCallCheck(this, QuoteStatus);\n\n\t\tlog(\"element\", element);\n\t\tlog(\"options\", options);\n\n\t\tthis.options = options;\n\t\tthis.element = element;\n\n\t\tthis.frequencies = getJSONValue(this.options.frequencies);\n\t\tthis.frequency = this.options.frequency;\n\t\tthis.hospitalName = this.options.hospitalName;\n\t\tthis.extrasName = this.options.extrasName;\n\t\tthis.hospitalRates = getJSONValue(this.options.hospitalRates);\n\t\tthis.extrasRates = getJSONValue(this.options.extrasRates);\n\t\tthis.noExtras = getJSONValue(this.options.noExtras);\n\n\t\tthis.watchAttr = {\n\t\t\t'data-quote-status--frequency': 'frequency',\n\t\t\t'data-quote-status--hospital-name': 'hospitalName',\n\t\t\t'data-quote-status--extras-name': 'extrasName',\n\t\t\t'data-quote-status--hospital-rates': 'hospitalRates',\n\t\t\t'data-quote-status--extras-rates': 'extrasRates',\n\t\t\t'data-quote-status--no-extras': 'noExtras'\n\t\t};\n\n\t\tthis.attributeObserver = new MutationObserver(this.onAttributeChange.bind(this));\n\n\t\tthis.hospitalNameElement = this.element.querySelector(this.options.hospitalNameSelector);\n\n\t\tthis.extrasNameElement = this.element.querySelector(this.options.extrasNameSelector);\n\n\t\tthis.extrasPartElement = this.element.querySelector(this.options.extrasPartSelector);\n\n\t\tthis.resultElement = this.element.querySelector(this.options.resultSelector);\n\n\t\tthis.amountElement = this.element.querySelector(this.options.amountSelector);\n\n\t\t// todo: hide/show = $\n\n\t\tthis.init();\n\t\tthis.watch();\n\t\tlog(\"ready\", this, this.form);\n\t}\n\n\t_createClass(QuoteStatus, [{\n\t\tkey: \"init\",\n\t\tvalue: function init() {}\n\t}, {\n\t\tkey: \"watch\",\n\t\tvalue: function watch() {\n\t\t\tlog(\"watching\");\n\t\t\tthis.attributeObserver.observe(this.element, { attributes: true });\n\t\t}\n\t}, {\n\t\tkey: \"onAttributeChange\",\n\t\tvalue: function onAttributeChange(mutationList, observer) {\n\t\t\tmutationList.filter(function (mutation) {\n\t\t\t\treturn mutation.type === \"attributes\" && this.watchAttr[mutation.attributeName];\n\t\t\t}.bind(this)).forEach(this.applyAttributeChanges.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"applyAttributeChanges\",\n\t\tvalue: function applyAttributeChanges(mutation) {\n\t\t\tvar attribute = mutation.attributeName;\n\t\t\tvar newValue = this.element.getAttribute(attribute);\n\t\t\tthis[this.watchAttr[attribute]] = getJSONValue(newValue);\n\n\t\t\tthis.updateDisplay();\n\t\t}\n\t}, {\n\t\tkey: \"updateDisplay\",\n\t\tvalue: function updateDisplay() {\n\t\t\tvar _this = this;\n\n\t\t\tthis.hospitalNameElement.textContent = this.hospitalName;\n\t\t\tthis.extrasNameElement.textContent = this.extrasName;\n\t\t\tthis.amountElement.textContent = this.calculateAmount().toFixed(2);\n\t\t\tthis.updateHighlight(this.hospitalNameElement, this.hasHospitalValue.bind(this));\n\t\t\tthis.updateHighlight(this.extrasNameElement, this.hasExtrasValue.bind(this));\n\t\t\tthis.updateHidden(this.extrasPartElement, function () {\n\t\t\t\treturn _this.noExtras;\n\t\t\t});\n\t\t\tthis.updateHidden(this.resultElement, this.hasNoResult.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"updateHighlight\",\n\t\tvalue: function updateHighlight(element, condition) {\n\t\t\telement.classList.toggle(this.options.highlightClass, condition());\n\t\t}\n\t}, {\n\t\tkey: \"updateHidden\",\n\t\tvalue: function updateHidden(element, condition) {\n\t\t\telement.hidden = condition();\n\t\t}\n\t}, {\n\t\tkey: \"calculateAmount\",\n\t\tvalue: function calculateAmount() {\n\t\t\tvar hospitalAmount = this.getRate(this.hospitalRates);\n\t\t\tvar extrasAmount = this.getRate(this.extrasRates);\n\t\t\treturn hospitalAmount + extrasAmount;\n\t\t}\n\t}, {\n\t\tkey: \"getRate\",\n\t\tvalue: function getRate(rates) {\n\t\t\tif (!rates || !rates.length) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tvar frequency = this.frequency;\n\t\t\t// Rates may be a single value e.g. Ambulance only\n\t\t\tvar isFixedFrequency = rates.length === 1;\n\t\t\tvar frequencyIndex = isFixedFrequency ? 0 : this.frequencies.findIndex(function (periodName) {\n\t\t\t\treturn frequency === periodName;\n\t\t\t});\n\t\t\treturn rates[frequencyIndex] || 0;\n\t\t}\n\t}, {\n\t\tkey: \"hasHospitalValue\",\n\t\tvalue: function hasHospitalValue() {\n\t\t\treturn !!this.getRate(this.hospitalRates);\n\t\t}\n\t}, {\n\t\tkey: \"hasExtrasValue\",\n\t\tvalue: function hasExtrasValue() {\n\t\t\treturn !!this.getRate(this.extrasRates);\n\t\t}\n\t}, {\n\t\tkey: \"hasNoResult\",\n\t\tvalue: function hasNoResult() {\n\t\t\treturn this.calculateAmount() === 0;\n\t\t}\n\t}]);\n\n\treturn QuoteStatus;\n}();\n\nQuoteStatus.DEFAULTS = {};\n\n(0, _lib2.default)(PLUGIN_NAME, QuoteStatus);\njQuery(document).ready(function () {\n\tjQuery(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/quote-form/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-quote-form]';\nvar PLUGIN_NAME = 'quoteForm';\n\n(0, _jquery2.default)(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n\t\tvar element = this;\n\t\t__webpack_require__.e/* import() */(\"quote-form\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/quote-form/quote-form.js\")).then(function (module) {\n\t\t\t(0, _lib2.default)(PLUGIN_NAME, module.default);\n\t\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t\t});\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/validate-form/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-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-validate-form]';\nvar PLUGIN_NAME = 'validateForm';\n\n(0, _jquery2.default)(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n\t\tvar element = this;\n\t\t__webpack_require__.e/* import() */(\"validate-form\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/validate-form/validate-form.js\")).then(function (module) {\n\t\t\t(0, _lib2.default)(PLUGIN_NAME, module.default);\n\t\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t\t});\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/cover-selector.module.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = undefined;\nexports.exec = exec;\n\nvar _registry = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/registry/index.js\");\n\nvar registry = _interopRequireWildcard(_registry);\n\nvar _names = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/registry/names.js\");\n\nvar _exec = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/exec.js\");\n\nvar _exec2 = _interopRequireDefault(_exec);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-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 _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\n/**\r\n * Health Fund Product Selector Module Bundle\r\n * @author Rhys Lloyd\r\n */\n\n//\n// Utilities\n// Dependencies\nvar MODULE_NAME = _names.COVER_SELECTOR_MODULE;\n\n//\n// Constants\n\nvar log = (0, _debug2.default)(MODULE_NAME);\n\n//\n// Register\nif (!registry.exists(MODULE_NAME)) {\n\tregistry.register(MODULE_NAME, registry.STATE.LOADING);\n}\n\n//\n// Functions\nfunction exec() {\n\t(0, _exec2.default)();\n}\n\nexports.default = exec;\n\nregistry.setState(MODULE_NAME, registry.STATE.LOADED);\n\n//\n// Conditionally Self Execute\nif (!registry.isRegistered(MODULE_NAME)) {\n\texec();\n\tregistry.setState(MODULE_NAME, registry.STATE.REGISTERED);\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/dynamic-load.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ASSETS = exports.MODULE_SELECTOR = exports.MODULE_NAME = undefined;\nexports.default = load;\n\nvar _registry = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/registry/index.js\");\n\nvar registry = _interopRequireWildcard(_registry);\n\nvar _names = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/registry/names.js\");\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\n//\n// Constants\n/**\r\n * Cover Selector - Dynamic Load\r\n * Responsible for determining if the Cover Selector needs to load, and for actually loading the files.\r\n */\n\n//\n// Utilities\n//\n// Dependencies\nvar MODULE_NAME = exports.MODULE_NAME = _names.COVER_SELECTOR_MODULE;\nvar MODULE_SELECTOR = exports.MODULE_SELECTOR = '[data-cover-selector]';\nvar ASSETS = exports.ASSETS = [\n// '../styles/core-datepicker.module.css',\n'../scripts/cover-selector.module.js'];\n// theme specific cover selector css is loaded via a partial\n\n//\n// Load\nfunction load() {\n registry.dynamicLoader(MODULE_NAME, MODULE_SELECTOR, ASSETS);\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/exec.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = exec;\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _dynamicLoad = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/dynamic-load.js\");\n\nvar _index = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/index.js\");\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MODULE_NAME = 'cover-selector/exec'; /**\r\n * Product Selector\r\n * @author Rhys Lloyd\r\n */\n\n// Utilities\n\nvar log = (0, _debug2.default)(MODULE_NAME);\n\n// Dependencies\n\n\n/**\r\n * Run module\r\n */\nfunction exec() {\n\tlog('Running...');\n\n\t$(document).ready(function () {\n\t\t// Find all elements and operate\n\t\tvar elements = document.querySelectorAll(_dynamicLoad.MODULE_SELECTOR);\n\t\tlog('elements:', elements);\n\n\t\t// Backward loops are just faster\n\t\tfor (var i = elements.length - 1; i >= 0; --i) {\n\t\t\t(0, _index2.default)(elements[i]);\n\t\t}\n\t});\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = init;\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-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--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/cover-selector/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/quote-form/index--split.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/components/validate-form/index--split.js\");\n\nvar _uniqueId = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/uniqueId.js\");\n\nvar _uniqueId2 = _interopRequireDefault(_uniqueId);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MODULE_NAME = 'cover-selector'; /**\r\n * Cover Selector\r\n */\n\n//\n// Utilities\n\nvar log = (0, _debug2.default)(MODULE_NAME);\n\n/**\r\n * Initialises the product selector.\r\n * @param {Element} element\r\n */\nfunction init(element) {\n log('init', element);\n element.id = (0, _uniqueId2.default)('cover-selector');\n\n // TODO initialise components of the cover-selector\n\n return element;\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-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--22-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// import $ from 'jquery';\n\n// import * as events from './events';\n\nexports.default = plugin;\nexports.jquery = jquery;\nexports.defaults = defaults;\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-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--22-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--22-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--22-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--22-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 = $.fn[formattedPluginName];\n var ZERO = 0;\n\n klass.$bus = {\n subscribe: function subscribe(event, fn) {\n $(this).bind(event, fn);\n },\n publish: function publish(event, data) {\n $(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 $.fn[pluginName] = function PluginFactory(option) {\n return this.each(function PluginInstanceFactory() {\n var $this = $(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 = $.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 $[formattedPluginName] = function (options) {\n return $({})[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--22-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--22-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--22-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--22-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 _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-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'); // import $ from 'jquery';\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 = $(selector);\n }\n return $target;\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-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; }; // import $ from 'jquery';\n\n\nexports.toCamelCase = toCamelCase;\nexports.tmpl = tmpl;\nexports.$tmpl = $tmpl;\nexports.mustache = mustache;\nexports.booleanify = booleanify;\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-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 = $(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/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/registry/dynamic-loader.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = dynamicLoader;\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _index = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/registry/index.js\");\n\nvar _toast = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/vendor/pyrsmk-toast/toast.js\");\n\nvar _toast2 = _interopRequireDefault(_toast);\n\nvar _isString = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/lodash/isString.js\");\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MODULE_NAME = 'dynamic-loader'; /**\r\n * Registry Dynamic Loader\r\n * Common dynamic loading template.\r\n * @author Rhys Lloyd\r\n */\n\n//\n// Utilities\n\nvar log = (0, _debug2.default)(MODULE_NAME);\n//\n// Dependencies\n\n\nvar staticPath = undefined;\nvar staticPathElement = document.querySelector('meta[name=\"site.paths.static\"]');\nif (staticPathElement) {\n\tstaticPath = staticPathElement.content;\n}\n\n//\n// Constants\nvar STATIC_PATH = staticPath;\nvar MANIFEST_FILE = STATIC_PATH + 'manifest.json';\nvar MANIFEST_FILE_DATA = undefined;\n//\n// Load\n\n/**\r\n * Loads a module based on the existence of a selector.\r\n * @param {String} module - name of module to load (for registration)\r\n * @param {String} selector - selector to test for with document.querySelector\r\n * @param {Array} loadArray - array of assets to load (pass to toast.js)\r\n */\nfunction dynamicLoader(module, selector, loadArray) {\n\tif ((0, _index.exists)(module)) {\n\t\tlog('Module \"' + module + '\" already loaded. Exiting.');\n\t\treturn;\n\t}\n\n\tlog('Looking for selector \"' + selector + '\"');\n\tvar hasElements = !!document.querySelector(selector);\n\n\tif (!hasElements) {\n\t\tlog('...no elements. Exiting.');\n\t\t(0, _index.register)(module, _index.STATE.NOT_REQUIRED);\n\t\treturn;\n\t}\n\n\treadTextFile(MANIFEST_FILE, getManifestFileName, loadArray, module);\n}\n\nfunction getManifestFileName(text, loadArray, module) {\n\tvar MANIFEST_FILE_DATA = JSON.parse(text);\n\tvar resolvedLoadArray = loadArray.map(function (item) {\n\t\tif (!(0, _isString2.default)(item)) {\n\t\t\treturn item;\n\t\t}\n\t\tvar newItem = item.replace('../', STATIC_PATH);\n\t\tif (MANIFEST_FILE_DATA[newItem]) {\n\t\t\treturn MANIFEST_FILE_DATA[newItem];\n\t\t}\n\t\treturn newItem;\n\t});\n\n\tlog('Loading ' + module + ' with assetArray', resolvedLoadArray);\n\t_toast2.default.apply(null, resolvedLoadArray);\n\n\t(0, _index.register)(module, _index.STATE.LOADING);\n}\n\nfunction readTextFile(file, callback, loadArray, module) {\n\tvar rawFile = new XMLHttpRequest();\n\trawFile.overrideMimeType(\"application/json\");\n\trawFile.open(\"GET\", file, true);\n\trawFile.onreadystatechange = function () {\n\t\tif (rawFile.readyState === 4 && rawFile.status == \"200\") {\n\t\t\treturn callback(rawFile.responseText, loadArray, module);\n\t\t}\n\t};\n\trawFile.send(null);\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/registry/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = exports.STATE = undefined;\n\nvar _names = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/registry/names.js\");\n\nObject.keys(_names).forEach(function (key) {\n\tif (key === \"default\" || key === \"__esModule\") return;\n\tObject.defineProperty(exports, key, {\n\t\tenumerable: true,\n\t\tget: function get() {\n\t\t\treturn _names[key];\n\t\t}\n\t});\n});\nexports.register = register;\nexports.exists = exists;\nexports.isRegistered = isRegistered;\nexports.getState = getState;\nexports.setState = setState;\nexports.validState = validState;\nexports.dynamicLoader = dynamicLoader;\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _state = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/registry/state.js\");\n\nvar _state2 = _interopRequireDefault(_state);\n\nvar _dynamicLoader = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/registry/dynamic-loader.js\");\n\nvar dl = _interopRequireWildcard(_dynamicLoader);\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 MODULE_NAME = 'registry'; /**\r\n * Extremely Basic Module Registry\r\n * Designed to prevent asynchronously modules from being loaded and run more than once.\r\n * @author Rhys Lloyd\r\n */\n\n//\n// Utilities\n\nvar log = (0, _debug2.default)(MODULE_NAME);\n\n//\n// Dependencies\n\n\n//\n// Constants\nvar REGISTRY = {};\nvar STATE = exports.STATE = _state2.default;\n\n//\n// Functions\n\n/**\r\n * Registers a module.\r\n * @param module\r\n * @param state\r\n * @returns {*}\r\n */\nfunction register(module, state) {\n\tif (exists(module)) {\n\t\tlog('register(): Attempting to re-register an existing module: \"' + module + '\"', 'Existing:', REGISTRY[module]);\n\t\treturn;\n\t}\n\n\tif (!state || !validState(state)) {\n\t\tstate = STATE.INIT;\n\t}\n\n\tREGISTRY[module] = {\n\t\tstate: state\n\t};\n\n\tlog('register(): Registering module \"' + module + '\" with state \"' + state.name + '\"');\n\treturn REGISTRY[module];\n}\n\n/**\r\n * Returns the object in the registry\r\n * @param module\r\n * @returns {*}\r\n */\nfunction exists(module) {\n\treturn !!REGISTRY[module];\n}\n\n/**\r\n * Checks if a module is marked as registered.\r\n * @param module\r\n * @returns {*|boolean}\r\n */\nfunction isRegistered(module) {\n\treturn exists(module) && getState(module) == STATE.REGISTERED;\n}\n\n/**\r\n * Get the state of a registered module.\r\n * @param module\r\n * @returns {*}\r\n */\nfunction getState(module) {\n\tif (!exists(module)) {\n\t\tlog('getState(): module \"' + module + '\" doesn\\'t exist');\n\t\treturn;\n\t}\n\n\tvar state = REGISTRY[module].state;\n\tlog('getState(): Getting state \"' + state.name + '\" for module \"' + module + '\"');\n\treturn state;\n}\n\n/**\r\n * Get the state of a registered module.\r\n * @param module\r\n * @param state\r\n * @returns {*}\r\n */\nfunction setState(module, state) {\n\tif (!exists(module)) {\n\t\tlog('setState(): module \"' + module + '\" doesn\\'t exist');\n\t\treturn;\n\t}\n\n\tif (!validState(state)) {\n\t\tlog('setState(): state \"' + state + '\" doesn\\'t exist (attempt on module \"' + module + '\")');\n\t}\n\n\tlog('setState(): Setting state \"' + state.name + '\" for module \"' + module + '\"');\n\tREGISTRY[module].state = state;\n}\n\n/**\r\n * Verifies that a state is valid\r\n * @param state\r\n * @returns {boolean}\r\n */\nfunction validState(state) {\n\treturn state instanceof _state2.default;\n}\n\nexports.default = register;\nfunction dynamicLoader(module, selector, loadArray) {\n\treturn dl.default(module, selector, loadArray);\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/registry/names.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\r\n * Registry Module Names\r\n */\n\n// Core\nvar CORE_MODULE = exports.CORE_MODULE = 'core';\nvar DATEPICKER_MODULE = exports.DATEPICKER_MODULE = 'datepicker';\nvar PS_QUOTE_FORM_MODULE = exports.PS_QUOTE_FORM_MODULE = 'ps-quote-form';\nvar LOCATOR_MODULE = exports.LOCATOR_MODULE = 'locator';\nvar COVER_SELECTOR_MODULE = exports.COVER_SELECTOR_MODULE = \"cover-selector\";\n\n// Dev\nvar DEV_MODULE = exports.DEV_MODULE = 'dev';\nvar DEV_THEME_SWITCHER = exports.DEV_THEME_SWITCHER = DEV_MODULE + '-theme-switcher';\n\n// Health Fund\nvar HF_APP_MODULE = exports.HF_APP_MODULE = 'hf-app';\nvar HF_PRODUCT_SELECTOR_MODULE = exports.HF_PRODUCT_SELECTOR_MODULE = 'hf-product-selector';\nvar HF_PRODUCT_DETAIL_CARD_MODULE = exports.HF_PRODUCT_DETAIL_CARD_MODULE = 'hf-product-detail-card';\n\n// NT Health Fund\nvar NT_HF_APP_MODULE = exports.NT_HF_APP_MODULE = 'nt-cu-app';\n\n// SeeU\nvar SEEU_APP_MODULE = exports.SEEU_APP_MODULE = 'seeu-app';\n// export const SEEU_PRODUCT_COMPARE_MODULE = 'cu-product-compare';\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/registry/state.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enumify = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/vendor/enumify/enumify.js\");\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /**\r\n * Registry States\r\n */\n\n/**\r\n * States for Registry\r\n * See docs: https://github.com/rauschma/enumify\r\n */\nvar State = function (_Enum) {\n _inherits(State, _Enum);\n\n function State() {\n _classCallCheck(this, State);\n\n return _possibleConstructorReturn(this, (State.__proto__ || Object.getPrototypeOf(State)).apply(this, arguments));\n }\n\n return State;\n}(_enumify.Enum);\n\nState.initEnum(['INIT', 'FAIL', 'LOADING', 'LOADED', 'REGISTERED', 'NOT_REQUIRED', 'CANCELLED']);\n\nexports.default = State;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/vendor/enumify/enumify.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof2 = 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\nvar _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof2(obj);\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof2(obj);\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n }\n }return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n };\n}();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.copyProperties = copyProperties;\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar INITIALIZED = Symbol();\n\n/**\r\n * This is an abstract class that is not intended to be\r\n * used directly. Extend it to turn your class into an enum\r\n * (initialization is performed via `MyClass.initEnum()`).\r\n */\n\nvar Enum = exports.Enum = function () {\n /**\r\n * `initEnum()` closes the class. Then calling this constructor\r\n * throws an exception.\r\n * \r\n * If your subclass has a constructor then you can control\r\n * what properties are added to `this` via the argument you\r\n * pass to `super()`. No arguments are fine, too.\r\n */\n\n function Enum() {\n var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\n\n _classCallCheck(this, Enum);\n\n // new.target would be better than this.constructor,\n // but isn’t supported by Babel\n if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) {\n throw new Error('Enum classes can’t be instantiated');\n }\n if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) {\n copyProperties(this, instanceProperties);\n }\n }\n /**\r\n * Set up the enum, close the class.\r\n * \r\n * @param arg Either an object whose properties provide the names\r\n * and values (which must be mutable objects) of the enum constants.\r\n * Or an Array whose elements are used as the names of the enum constants\r\n * The values are create by instantiating the current class.\r\n */\n\n _createClass(Enum, [{\n key: 'toString',\n\n /**\r\n * Default `toString()` method for enum constant.\r\n */\n value: function toString() {\n return this.constructor.name + '.' + this.name;\n }\n }], [{\n key: 'initEnum',\n value: function initEnum(arg) {\n Object.defineProperty(this, 'enumValues', {\n value: [],\n configurable: false,\n writable: false,\n enumerable: true\n });\n if (Array.isArray(arg)) {\n this._enumValuesFromArray(arg);\n } else {\n this._enumValuesFromObject(arg);\n }\n Object.freeze(this.enumValues);\n this[INITIALIZED] = true;\n return this;\n }\n }, {\n key: '_enumValuesFromArray',\n value: function _enumValuesFromArray(arr) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n this._pushEnumValue(new this(), key);\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 key: '_enumValuesFromObject',\n value: function _enumValuesFromObject(obj) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n var value = new this(obj[key]);\n this._pushEnumValue(value, key);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }, {\n key: '_pushEnumValue',\n value: function _pushEnumValue(enumValue, name) {\n enumValue.name = name;\n enumValue.ordinal = this.enumValues.length;\n Object.defineProperty(this, name, {\n value: enumValue,\n configurable: false,\n writable: false,\n enumerable: true\n });\n this.enumValues.push(enumValue);\n }\n\n /**\r\n * Given the name of an enum constant, return its value.\r\n */\n\n }, {\n key: 'enumValueOf',\n value: function enumValueOf(name) {\n return this.enumValues.find(function (x) {\n return x.name === name;\n });\n }\n\n /**\r\n * Make enum classes iterable\r\n */\n\n }, {\n key: Symbol.iterator,\n value: function value() {\n return this.enumValues[Symbol.iterator]();\n }\n }]);\n\n return Enum;\n}();\n\nfunction copyProperties(target, source) {\n // Ideally, we’d use Reflect.ownKeys() here,\n // but I don’t want to depend on a polyfill\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var key = _step3.value;\n\n var desc = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, desc);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return target;\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/vendor/pyrsmk-toast/toast.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\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;(function (root, factory) {\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else if ((typeof exports === 'undefined' ? 'undefined' : _typeof(exports)) === 'object') {\n\t\tmodule.exports = factory();\n\t} else {\n\t\troot.toast = factory();\n\t}\n})(undefined, function () {\n\t/*! toast 2.1.0 (https://github.com/pyrsmk/toast) */\n\n\tvar handled_resources = {};\n\n\tfunction toast() {\n\t\tvar head = document.getElementsByTagName('head')[0],\n\n\n\t\t// Load as much resources as we can\n\t\tloadResources = function loadResources(resources) {\n\t\t\t// Waiting for DOM readiness then load resources\n\t\t\tif (!head) {\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tloadResources(resources);\n\t\t\t\t}, 50);\n\t\t\t}\n\t\t\t// Load resources\n\t\t\telse if (resources.length) {\n\t\t\t\t\tvar i = -1,\n\t\t\t\t\t resource,\n\t\t\t\t\t callback;\n\t\t\t\t\twhile (resource = resources[++i]) {\n\t\t\t\t\t\t// Resource\n\t\t\t\t\t\tif (typeof resource == 'string') {\n\t\t\t\t\t\t\tloadResource(resource);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Callback\n\t\t\t\t\t\telse if (typeof resource == 'function') {\n\t\t\t\t\t\t\t\tcallback = resource;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\twatchResources(callback, Array.prototype.slice.call(resources, i + 1));\n\t\t\t\t}\n\t\t},\n\n\n\t\t// Load one resource\n\t\tloadResource = function loadResource(resource) {\n\t\t\t// Extract resource type\n\t\t\tvar implicit_type = /\\.(\\w+)$/.exec(resource),\n\t\t\t explicit_type = /^\\[(\\w+)\\](.+)/.exec(resource),\n\t\t\t type,\n\t\t\t node;\n\t\t\tif (explicit_type !== null) {\n\t\t\t\ttype = explicit_type[1];\n\t\t\t\tresource = explicit_type[2];\n\t\t\t} else if (implicit_type !== null) {\n\t\t\t\ttype = implicit_type[1];\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Verify if the resource is not already handled\n\t\t\tif (resource in handled_resources) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Mark the resource as handled (but not loaded yet)\n\t\t\thandled_resources[resource] = false;\n\t\t\t// Load resource\n\t\t\tswitch (type) {\n\t\t\t\tcase 'js':\n\t\t\t\t\t// Create SCRIPT element\n\t\t\t\t\tnode = document.createElement('script');\n\t\t\t\t\tnode.src = resource;\n\t\t\t\t\tnode.type = 'text/javascript';\n\t\t\t\t\thead.appendChild(node);\n\t\t\t\t\t// Watch loading state\n\t\t\t\t\tvar version = navigator.appVersion.match(/MSIE (\\d)/);\n\t\t\t\t\tif (version !== null && parseInt(version[1], 10) < 9) {\n\t\t\t\t\t\t// IE<9\n\t\t\t\t\t\tnode.onreadystatechange = function () {\n\t\t\t\t\t\t\tif (/ded|co/.test(this.readyState)) {\n\t\t\t\t\t\t\t\thandled_resources[resource] = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Other browsers\n\t\t\t\t\t\tnode.onload = function () {\n\t\t\t\t\t\t\thandled_resources[resource] = true;\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'css':\n\t\t\t\t\t// Create LINK element\n\t\t\t\t\tnode = document.createElement('link');\n\t\t\t\t\tnode.rel = 'styleSheet';\n\t\t\t\t\tnode.href = resource;\n\t\t\t\t\thead.appendChild(node);\n\t\t\t\t\t// Watch loading state\n\t\t\t\t\twatchStylesheet(node, resource);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tdelete handled_resources[resource];\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t},\n\n\n\t\t// Watch if all resources have been loaded\n\t\twatchResources = function watchResources(callback, resourcesToLoad) {\n\t\t\tfor (var resource in handled_resources) {\n\t\t\t\tif (!handled_resources[resource]) {\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\twatchResources(callback, resourcesToLoad);\n\t\t\t\t\t}, 50);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (typeof callback == 'function') {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t\tloadResources(resourcesToLoad);\n\t\t},\n\n\n\t\t// Watch if a CSS resource has been loaded\n\t\twatchStylesheet = function watchStylesheet(node, resource) {\n\t\t\tif (node.sheet || node.styleSheet) {\n\t\t\t\thandled_resources[resource] = true;\n\t\t\t} else {\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\twatchStylesheet(node, resource);\n\t\t\t\t}, 50);\n\t\t\t}\n\t\t};\n\n\t\t// Load resources\n\t\tloadResources(arguments);\n\t}\n\treturn toast;\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/modules/cover-selector/cover-selector.module.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--22-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/modules/cover-selector/cover-selector.module.js\");\n\n\n/***/ })\n\n},[\"multi /tool/project/client/src/core/modules/cover-selector/cover-selector.module.js\"]);\n\n\n// WEBPACK FOOTER //\n// scripts/cover-selector.module--c7657f2915eb074d0a33.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","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/lodash/_Symbol.js","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/lodash/_arrayMap.js","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/lodash/_baseGetTag.js","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/lodash/_baseToString.js","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/lodash/_freeGlobal.js","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/lodash/_getRawTag.js","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/lodash/_objectToString.js","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/lodash/_root.js","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/lodash/isArray.js","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/lodash/isObjectLike.js","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/lodash/isString.js","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/lodash/isSymbol.js","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/lodash/toString.js","var toString = require('./toString');\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nmodule.exports = uniqueId;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/lodash/uniqueId.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","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n// WEBPACK FOOTER //\n// (webpack)/buildin/global.js","/* global jQuery */\r\nimport plugin from \"@core/plugins/lib\";\r\nimport debug from \"debug\";\r\n\r\nconst ELEMENT_SELECTOR = \"[data-compare-pane]\";\r\nconst PLUGIN_NAME = \"comparePane\";\r\nconst log = debug(PLUGIN_NAME);\r\n\r\nfunction getJSONValue(stringValue) {\r\n\ttry {\r\n\t\treturn JSON.parse(stringValue);\r\n\t} catch (error) {\r\n\t\treturn stringValue;\r\n\t}\r\n}\r\n\r\n// https://github.com/mattdesl/eases/blob/master/sine-in-out.js\r\nfunction sineInOut(t) {\r\n\treturn -0.5 * (Math.cos(Math.PI*t) - 1);\r\n}\r\n\r\n// https://vanillajstoolkit.com/helpers/debounce/\r\nfunction debounce(fn) {\r\n\t// Setup a timer\r\n\tvar timeout;\r\n\r\n\t// Return a function to run debounced\r\n\treturn function () {\r\n\r\n\t\t// Setup the arguments\r\n\t\tvar context = this;\r\n\t\tvar args = arguments;\r\n\r\n\t\t// If there's a timer, cancel it\r\n\t\tif (timeout) {\r\n\t\t\twindow.cancelAnimationFrame(timeout);\r\n\t\t}\r\n\r\n\t\t// Setup the new requestAnimationFrame()\r\n\t\ttimeout = window.requestAnimationFrame(function () {\r\n\t\t\tfn.apply(context, args);\r\n\t\t});\r\n\t};\r\n};\r\n\r\nclass ComparePane {\r\n\tconstructor(element, options) {\r\n\t\tlog(\"element\", element);\r\n\t\tlog(\"options\", options);\r\n\r\n\t\tthis.options = options;\r\n\t\tthis.element = element;\r\n\r\n\t\tthis.scrollLeft = 0;\r\n\t\tthis.scrollWidth = 0;\r\n\t\tthis.clientWidth = 0;\r\n\t\tthis.stepWidth = 0;\r\n\r\n\t\tthis.pane = this.element.querySelector(\r\n\t\t\tthis.options.paneSelector\r\n\t\t);\r\n\r\n\t\tthis.stepWidthElement = this.element.querySelector(\r\n\t\t\tthis.options.stepWidthElementSelector\r\n\t\t);\r\n\r\n\t\tthis.buttonLeft = this.element.querySelector(\r\n\t\t\tthis.options.buttonLeftSelector\r\n\t\t);\r\n\r\n\t\tthis.buttonRight = this.element.querySelector(\r\n\t\t\tthis.options.buttonRightSelector\r\n\t\t);\r\n\r\n\t\tthis.debouncedUpdate = debounce(this.update);\r\n\r\n\t\tthis.init();\r\n\t\tthis.watch();\r\n\r\n\t\tlog(\"ready\", this, this.element);\r\n\t}\r\n\r\n\tinit() {\r\n\t\tthis.update();\r\n\t}\r\n\r\n\twatch() {\r\n\t\tlog(\"watching\");\r\n\r\n\t\twindow.addEventListener('resize', this.debouncedUpdate.bind(this));\r\n\t\tthis.pane.addEventListener('scroll', this.debouncedUpdate.bind(this));\r\n\t\tthis.buttonLeft.addEventListener('click', this.scrollPaneLeft.bind(this));\r\n\t\tthis.buttonRight.addEventListener('click', this.scrollPaneRight.bind(this));\r\n\t}\r\n\r\n\tmeasure() {\r\n\t\tthis.scrollLeft = this.pane.scrollLeft || 0;\r\n\t\tthis.scrollWidth = this.pane.scrollWidth;\r\n\t\tthis.clientWidth = this.pane.clientWidth;\r\n\t\tthis.stepWidth = this.stepWidthElement.clientWidth;\r\n\t}\r\n\r\n\tupdate() {\r\n\t\tthis.measure();\r\n\t\tthis.updateDisabled(this.buttonLeft, this.isLeftMax.bind(this));\r\n\t\tthis.updateDisabled(this.buttonRight, this.isRightMax.bind(this));\r\n\t\tthis.updateFocusable(this.pane, this.isScrollable.bind(this));\r\n\t}\r\n\r\n\tupdateDisabled(button, condition) {\r\n\t\tbutton.disabled = !!condition();\r\n\t}\r\n\r\n\tupdateFocusable(pane, condition) {\r\n\t\tpane.tabindex = !!condition() ? '0' : '-1';\r\n\t}\r\n\r\n\tisLeftMax() {\r\n\t\treturn this.scrollLeft < this.options.scrollEdgeThreshold;\r\n\t}\r\n\r\n\tisRightMax() {\r\n\t\treturn (\r\n\t\t\tthis.scrollWidth - this.clientWidth - this.scrollLeft <\r\n\t\t\tthis.options.scrollEdgeThreshold\r\n\t\t);\r\n\t}\r\n\r\n\tisScrollable() {\r\n\t\treturn !this.isLeftMax() || !this.isRightMax();\r\n\t}\r\n\r\n\tisFocusable() {\r\n\t\treturn this.isScrollable() ? '0' : '-1';\r\n\t}\r\n\r\n\tsmoothScroll(param, timestamp) {\r\n\t\tconst {\r\n\t\t\tstartTime = timestamp,\r\n\t\t\tstartPos,\r\n\t\t\tdirection,\r\n\t\t\tduration\r\n\t\t} = param;\r\n\r\n\t\tconst scrollStep = this.stepWidth;\r\n\r\n\t\tconst timeElapsed = timestamp - startTime;\r\n\t\tconst easeElapsed = timeElapsed / duration;\r\n\t\tconst targetScrollDist = scrollStep * direction;\r\n\r\n\t\tthis.pane.scrollLeft = startPos + targetScrollDist * sineInOut(easeElapsed);\r\n\r\n\t\tif (timeElapsed < duration) {\r\n\t\t\twindow.requestAnimationFrame(\r\n\t\t\t\tthis.smoothScroll.bind(this, {\r\n\t\t\t\t\tstartPos: startPos,\r\n\t\t\t\t\tdirection: direction,\r\n\t\t\t\t\tduration: duration,\r\n\t\t\t\t\tstartTime: startTime\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\tscrollPaneLeft() {\r\n\t\tconst startPos = this.pane.scrollLeft;\r\n\t\tconst scroller = this.smoothScroll.bind(this, {\r\n\t\t\tstartPos: startPos,\r\n\t\t\tdirection: -1,\r\n\t\t\tduration: this.options.scrollDuration\r\n\t\t});\r\n\t\twindow.requestAnimationFrame(scroller);\r\n\t}\r\n\r\n\tscrollPaneRight() {\r\n\t\tconst startPos = this.pane.scrollLeft;\r\n\t\tconst scroller = this.smoothScroll.bind(this, {\r\n\t\t\tstartPos: startPos,\r\n\t\t\tdirection: 1,\r\n\t\t\tduration: this.options.scrollDuration\r\n\t\t});\r\n\t\twindow.requestAnimationFrame(scroller);\r\n\t}\r\n}\r\n\r\nComparePane.DEFAULTS = {\r\n\tscrollEdgeThreshold: 5,\r\n\tscrollDuration: 500\r\n};\r\n\r\nplugin(PLUGIN_NAME, ComparePane);\r\n\r\n$(document).ready(() => {\r\n\t$(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n});\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/modules/cover-selector/components/cover-selector/compare-pane.js","/* global jQuery */\r\nimport plugin from \"@core/plugins/lib\";\r\nimport debug from \"debug\";\r\n\r\nconst ELEMENT_SELECTOR = \"[data-compare-summary]\";\r\nconst PLUGIN_NAME = \"compareSummary\";\r\n\r\nconst log = debug(PLUGIN_NAME);\r\n\r\nfunction getJSONValue(stringValue) {\r\n\ttry {\r\n\t\treturn JSON.parse(stringValue);\r\n\t} catch (error) {\r\n\t\treturn stringValue;\r\n\t}\r\n}\r\n\r\nclass CompareSummary {\r\n\tconstructor(element, options) {\r\n\t\tlog(\"element\", element);\r\n\t\tlog(\"options\", options);\r\n\r\n\t\tthis.options = options;\r\n\t\tthis.element = element;\r\n\r\n\t\t// Elements\r\n\t\t// - frequency select\r\n\t\t// - excess radios\r\n\t\t// - rate display\r\n\r\n\t\tthis.frequencyInput = this.element.querySelector(\r\n\t\t\tthis.options.frequencyInputSelector\r\n\t\t);\r\n\r\n\t\tthis.excessInput = this.element.querySelector(\r\n\t\t\tthis.options.excessInputSelector\r\n\t\t);\r\n\t\tthis.excessInputsArray = [\r\n\t\t\t...this.element.querySelectorAll(this.options.excessInputSelector)\r\n\t\t];\r\n\r\n\t\t// Specifically has excess options\r\n\t\tthis.hasMultipleProducts = !!this.options.excessInputSelector;\r\n\r\n\t\tthis.rateDisplay = this.element.querySelector(\r\n\t\t\tthis.options.rateDisplaySelector\r\n\t\t);\r\n\r\n\t\tthis.futureRateDisplay = this.element.querySelector(\r\n\t\t\tthis.options.futureRateDisplaySelector\r\n\t\t);\r\n\r\n\t\t// Rate may not be displayed\r\n\t\t// Only run associated update method if it is\r\n\t\tthis.updateRateDisplay = this.rateDisplay\r\n\t\t\t? this.updateRateDisplayMethod\r\n\t\t\t: ()=>{};\r\n\r\n\t\tthis.updateFutureRateDisplay = this.futureRateDisplay\r\n\t\t\t? this.updateFutureRateDisplayMethod\r\n\t\t\t: ()=>{};\r\n\r\n\t\tthis.frequencies = this.frequencyInput\r\n\t\t\t? [...this.frequencyInput.options].map(option => {\r\n\t\t\t\t\treturn option.value;\r\n\t\t\t })\r\n\t\t\t: [];\r\n\r\n\t\tthis.syncElements = {\r\n\t\t\t\"data-compare-summary--sync-frequency\": this.frequencyInput\r\n\t\t\t//, 'data-compare-summary--sync-excess': this.excessInput.form.elements[this.excessInput.name]\r\n\t\t};\r\n\r\n\t\t// Extract rates data from inputs for this product\r\n\t\tthis.rates = this.hasMultipleProducts\r\n\t\t\t? this.getRatesFromInputs()\r\n\t\t\t: this.getRatesFromData();\r\n\r\n\t\tthis.futureRates = this.hasMultipleProducts\r\n\t\t? this.getFutureRatesFromInputs()\r\n\t\t: this.getFutureRatesFromData();\r\n\r\n\t\tthis.attributeObserver = new MutationObserver(\r\n\t\t\tthis.onAttributeChange.bind(this)\r\n\t\t);\r\n\r\n\t\tthis.watch();\r\n\r\n\t\tlog(\"ready\", this, this.element);\r\n\t}\r\n\r\n\twatch() {\r\n\t\tlog(\"watching\");\r\n\r\n\t\tthis.element.addEventListener(\"change\", this.onChange.bind(this));\r\n\t\tthis.attributeObserver.observe(this.element, { attributes: true });\r\n\t}\r\n\r\n\tgetRatesFromInputs() {\r\n\t\treturn this.excessInputsArray.reduce((object, input) => {\r\n\t\t\treturn Object.assign(\r\n\t\t\t\t{\r\n\t\t\t\t\t[input.id]: getJSONValue(input.dataset[\"rates\"])\r\n\t\t\t\t},\r\n\t\t\t\tobject\r\n\t\t\t);\r\n\t\t}, {});\r\n\t}\r\n\r\n\tgetFutureRatesFromInputs() {\r\n\t\treturn this.excessInputsArray.reduce((object, input) => {\r\n\t\t\treturn Object.assign(\r\n\t\t\t\t{\r\n\t\t\t\t\t[input.id]: getJSONValue(input.dataset[\"futureRates\"])\r\n\t\t\t\t},\r\n\t\t\t\tobject\r\n\t\t\t);\r\n\t\t}, {});\r\n\t}\r\n\r\n\tgetRatesFromData() {\r\n\t\treturn {\r\n\t\t\t'rates': getJSONValue(this.options.syncRates)\r\n\t\t};\r\n\t}\r\n\r\n\tgetFutureRatesFromData() {\r\n\t\treturn {\r\n\t\t\t'rates': getJSONValue(this.options.syncFutureRates)\r\n\t\t};\r\n\t}\r\n\r\n\tonChange() {\r\n\t\t// update form element data attr\r\n\t\tfor (const attr in this.syncElements) {\r\n\t\t\tconst value = this.syncElements[attr].value;\r\n\t\t\tthis.element.setAttribute(attr, value);\r\n\t\t}\r\n\r\n\t\t// sync rates data attr - ref for cover selector component\r\n\t\tconst chosenRates = this.rates[this.getProductId()];\r\n\t\tthis.element.setAttribute(\r\n\t\t\t\"data-compare-summary--sync-rates\",\r\n\t\t\tJSON.stringify(chosenRates)\r\n\t\t);\r\n\r\n\t\tconst chosenFutureRates = this.futureRates[this.getProductId()];\r\n\t\tthis.element.setAttribute(\r\n\t\t\t\"data-compare-summary--sync-future-rates\",\r\n\t\t\tJSON.stringify(chosenFutureRates)\r\n\t\t);\r\n\r\n\t\tthis.updateRateDisplay();\r\n\t\tthis.updateFutureRateDisplay();\r\n\r\n\t\t// update other instances\r\n\t\t$(this.element).trigger(\"coverchange\");\r\n\t}\r\n\r\n\tonAttributeChange(mutationList, observer) {\r\n\t\tmutationList\r\n\t\t\t.filter(\r\n\t\t\t\tfunction(mutation) {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\tmutation.type === \"attributes\" &&\r\n\t\t\t\t\t\tthis.syncElements[mutation.attributeName]\r\n\t\t\t\t\t);\r\n\t\t\t\t}.bind(this)\r\n\t\t\t)\r\n\t\t\t.forEach(this.applyAttributeChanges.bind(this));\r\n\t}\r\n\r\n\t// Update value of corresponding form elements\r\n\tapplyAttributeChanges(mutation) {\r\n\t\tconst attribute = mutation.attributeName;\r\n\t\tconst newValue = this.element.getAttribute(attribute);\r\n\t\tconst input = this.syncElements[attribute];\r\n\t\tinput.value = newValue;\r\n\t\tthis.updateRateDisplay();\r\n\t\tthis.updateFutureRateDisplay();\r\n\t}\r\n\r\n\tupdateRateDisplayMethod() {\r\n\t\tconst frequency = this.frequencyInput.value;\r\n\t\tconst productId = this.getProductId();\r\n\t\tthis.rateDisplay.textContent = this.getRate(\r\n\t\t\tproductId,\r\n\t\t\tfrequency\r\n\t\t).toFixed(2);\r\n\t}\r\n\r\n\tupdateFutureRateDisplayMethod() {\r\n\t\tconst frequency = this.frequencyInput.value;\r\n\t\tconst productId = this.getProductId();\r\n\t\tthis.futureRateDisplay.textContent = this.getFutureRate(\r\n\t\t\tproductId,\r\n\t\t\tfrequency\r\n\t\t).toFixed(2);\r\n\t}\r\n\r\n\tgetRate(productId, frequency) {\r\n\t\tconst frequencyIndex = this.frequencies.findIndex(periodName => {\r\n\t\t\treturn frequency === periodName;\r\n\t\t});\r\n\r\n\t\treturn this.rates[productId][frequencyIndex];\r\n\t}\r\n\r\n\tgetFutureRate(productId, frequency) {\r\n\t\tconst frequencyIndex = this.frequencies.findIndex(periodName => {\r\n\t\t\treturn frequency === periodName;\r\n\t\t});\r\n\r\n\t\treturn this.futureRates[productId][frequencyIndex];\r\n\t}\r\n\r\n\tgetProductId() {\r\n\t\tif (!this.hasMultipleProducts) {\r\n\t\t\treturn 'rates';\r\n\t\t}\r\n\t\tconst checkedExcessInput = this.excessInputsArray.find(input => {\r\n\t\t\treturn input.checked;\r\n\t\t});\r\n\r\n\t\treturn checkedExcessInput.id;\r\n\t}\r\n}\r\n\r\nCompareSummary.DEFAULTS = {};\r\n\r\nplugin(PLUGIN_NAME, CompareSummary);\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/modules/cover-selector/components/cover-selector/compare-summary.js","/* global jQuery */\r\nimport plugin from \"@core/plugins/lib\";\r\nimport debug from \"debug\";\r\n\r\nconst ELEMENT_SELECTOR = \"[data-cover-selector]\";\r\nconst PLUGIN_NAME = \"coverSelector\";\r\n\r\nconst log = debug(PLUGIN_NAME);\r\n\r\nclass CoverSelector {\r\n\tconstructor(element, options) {\r\n\t\tlog(\"element\", element);\r\n\t\tlog(\"options\", options);\r\n\r\n\t\tthis.options = options;\r\n\t\tthis.form = element;\r\n\r\n\t\tthis.inclusionsToggles = [\r\n\t\t\t...this.form.querySelectorAll(this.options.inclusionsToggleSelector)\r\n\t\t];\r\n\t\tthis.exclusionsToggles = [\r\n\t\t\t...this.form.querySelectorAll(this.options.exclusionsToggleSelector)\r\n\t\t];\r\n\t\tthis.prioritiesToggles = [\r\n\t\t\t...this.form.querySelectorAll(this.options.prioritiesToggleSelector)\r\n\t\t];\r\n\t\tthis.errorMessage = this.form.querySelector(\r\n\t\t\tthis.options.errorMessageSelector\r\n\t\t);\r\n\t\tthis.submitLabel = this.form.querySelector(this.options.submitLabelSelector);\r\n\r\n\t\t// Elements that may have error messages to display\r\n\t\tthis.componentErrorCollection = [\r\n\t\t\t...this.form.querySelectorAll(this.options.componentErrorSelector)\r\n\t\t];\r\n\r\n\t\tthis.items = [...this.form.querySelectorAll(this.options.itemSelector)];\r\n\t\tthis.choiceResultInput = this.form.querySelector(\r\n\t\t\tthis.options.choiceResultInputSelector\r\n\t\t);\r\n\r\n\t\t// Status element may not exist\r\n\t\t// Only wire up methods if it does\r\n\t\tthis.status = this.form.querySelector(this.options.statusSelector);\r\n\t\tthis.updateStatus = this.status\r\n\t\t\t? this.updateStatusMethod\r\n\t\t\t: ()=>{};\r\n\t\tthis.updateStatusFrequency = this.status\r\n\t\t\t? this.updateStatusFrequencyMethod\r\n\t\t\t: ()=>{};\r\n\r\n\t\tthis.watch();\r\n\t\tlog(\"ready\", this, this.form);\r\n\t}\r\n\r\n\twatch() {\r\n\t\tlog(\"watching\");\r\n\r\n\t\tthis.form.addEventListener(\"change\", this.onFormChange.bind(this));\r\n\t\t$(this.form).on(\"coverchange\", this.onCoverChange.bind(this));\r\n\t\t$(this.form).on(\r\n\t\t\t\"toggleinclusions\",\r\n\t\t\tthis.toggleCollapsibles.bind(this, this.inclusionsToggles)\r\n\t\t);\r\n\t\t$(this.form).on(\r\n\t\t\t\"toggleexclusions\",\r\n\t\t\tthis.toggleCollapsibles.bind(this, this.exclusionsToggles)\r\n\t\t);\r\n\t\t$(this.form).on(\r\n\t\t\t\"togglepriorities\",\r\n\t\t\tthis.toggleCollapsibles.bind(this, this.prioritiesToggles)\r\n\t\t);\r\n\t\tthis.form.addEventListener(\"submit\", this.onFormSubmit.bind(this));\r\n\t}\r\n\r\n\tonFormSubmit(event) {\r\n\t\tconst choiceValue = this.form.elements[this.options.choiceInputName]\r\n\t\t\t.value;\r\n\t\tif (!choiceValue) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tthis.errorMessage.hidden = false;\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleCollapsibles(toggles, event) {\r\n\t\tlog(\"toggle\", arguments);\r\n\r\n\t\tconst sourceToggle = event.target;\r\n\t\tconst targetToggles = toggles.filter(toggle => {\r\n\t\t\treturn toggle !== sourceToggle;\r\n\t\t});\r\n\r\n\t\ttargetToggles.forEach(toggle => {\r\n\t\t\ttoggle.dataset.collapsibleOpen =\r\n\t\t\t\tsourceToggle.dataset.collapsibleOpen;\r\n\t\t});\r\n\t}\r\n\r\n\tonFormChange(event) {\r\n\t\tlog(\"onFormChange\", event);\r\n\r\n\t\tthis.updateProductDisplay();\r\n\r\n\t\t// Consider moving this to submit event?\r\n\t\tthis.getSelectedProduct();\r\n\t}\r\n\r\n\tupdateProductDisplay() {\r\n\t\tconst chosenProductId = this.form.elements[this.options.choiceInputName]\r\n\t\t\t.value;\r\n\r\n\t\t// abort if not chosen yet\r\n\t\tif (!chosenProductId) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tconst chosenItem = this.items.find(item => {\r\n\t\t\treturn (\r\n\t\t\t\titem.dataset[\"target-CoverSelector\"] ===\r\n\t\t\t\t`item:${chosenProductId}`\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\tthis.updateStatus(chosenItem);\r\n\t\tthis.updateSubmitLabel(chosenItem);\r\n\r\n\t}\r\n\r\n\tupdateStatusMethod(chosenItem) {\r\n\t\t// TODO: move these to config or data attr\r\n\t\tconst rateToUpdate = {\r\n\t\t\thospital: \"quoteStatus-HospitalRates\",\r\n\t\t\textras: \"quoteStatus-ExtrasRates\"\r\n\t\t};\r\n\t\tconst nameToUpdate = {\r\n\t\t\thospital: \"quoteStatus-HospitalName\",\r\n\t\t\textras: \"quoteStatus-ExtrasName\"\r\n\t\t};\r\n\r\n\t\t// rates (one of hospital/extras)\r\n\t\tconst productRates = chosenItem.dataset[\"compareSummary-SyncRates\"];\r\n\t\tthis.status.dataset[\r\n\t\t\trateToUpdate[this.options.choiceInputName]\r\n\t\t] = productRates;\r\n\r\n\t\t// name (one of hospital/extras)\r\n\t\tconst productName = chosenItem.dataset[\"compareSummary-Name\"];\r\n\t\tthis.status.dataset[\r\n\t\t\tnameToUpdate[this.options.choiceInputName]\r\n\t\t] = productName;\r\n\r\n\t\tconst noExtras = chosenItem.dataset[\"compareSummary-NoExtras\"] === 'true';\r\n\t\tthis.status.dataset[\"quoteStatus-NoExtras\"] = noExtras;\r\n\t}\r\n\r\n\tupdateStatusFrequencyMethod(frequency){\r\n\t\tthis.status.dataset[\"quoteStatus-Frequency\"] = frequency;\r\n\t}\r\n\r\n\tupdateSubmitLabel(chosenItem) {\r\n\t\tconst buttonLabel = chosenItem.dataset['compareSummary-SubmitLabel'];\r\n\t\tif (buttonLabel && this.submitLabel) {\r\n\t\t\tthis.submitLabel.textContent = buttonLabel;\r\n\t\t}\r\n\t}\r\n\r\n\tonCoverChange(event) {\r\n\t\tlog(\"onCoverChange\", event);\r\n\r\n\t\tconst updatedItem = event.target;\r\n\t\tconst itemsToUpdate = this.items.filter(item => {\r\n\t\t\treturn item !== updatedItem;\r\n\t\t});\r\n\r\n\t\t// Sync values to other summary items\r\n\t\titemsToUpdate.forEach(item => {\r\n\t\t\tthis.options.itemDataSync.forEach(attr => {\r\n\t\t\t\titem.dataset[attr] = updatedItem.dataset[attr];\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// updating status frequency even if no extras selected (hospital may have been)\r\n\t\t// will update using existing values\r\n\t\tconst frequency = updatedItem.dataset[\"compareSummary-SyncFrequency\"];\r\n\t\tthis.updateStatusFrequency(frequency);\r\n\t\tthis.updateProductDisplay();\r\n\t}\r\n\r\n\tgetSelectedProduct() {\r\n\t\t//\tExtras don't need this field as we can get value from choose input directly\r\n\t\tif (!this.options.choiceResultInputSelector || !this.choiceResultInput) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tconst productId = this.form.elements[this.options.choiceInputName]\r\n\t\t\t.value;\r\n\t\tconst excessOptions = this.form.elements[\r\n\t\t\t`${this.options.excessRadioNamePrefix}${productId}`\r\n\t\t];\r\n\r\n\t\tlog(\"selected product: \", excessOptions);\r\n\t\tthis.choiceResultInput.value = excessOptions ? excessOptions.value : \"\";\r\n\t}\r\n}\r\n\r\nCoverSelector.DEFAULTS = {\r\n\texcessRadioNamePrefix: \"cover_\"\r\n};\r\n\r\nplugin(PLUGIN_NAME, CoverSelector);\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/modules/cover-selector/components/cover-selector/cover-selector.js","import './cover-selector';\r\nimport \"./compare-summary\";\r\nimport \"./quote-status\";\r\nimport \"./compare-pane\";\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/modules/cover-selector/components/cover-selector/index.js","/* global jQuery */\r\nimport plugin from \"@core/plugins/lib\";\r\nimport debug from \"debug\";\r\nconst ELEMENT_SELECTOR = \"[data-quote-status]\";\r\nconst PLUGIN_NAME = \"quoteStatus\";\r\n\r\nconst log = debug(PLUGIN_NAME);\r\n\r\nfunction getJSONValue(stringValue) {\r\n\ttry {\r\n\t\treturn JSON.parse(stringValue);\r\n\t} catch (error) {\r\n\t\treturn stringValue;\r\n\t}\r\n}\r\n\r\nclass QuoteStatus {\r\n\tconstructor(element, options) {\r\n\t\tlog(\"element\", element);\r\n\t\tlog(\"options\", options);\r\n\r\n\t\tthis.options = options;\r\n\t\tthis.element = element;\r\n\r\n\t\tthis.frequencies = getJSONValue(this.options.frequencies);\r\n\t\tthis.frequency = this.options.frequency;\r\n\t\tthis.hospitalName = this.options.hospitalName;\r\n\t\tthis.extrasName = this.options.extrasName;\r\n\t\tthis.hospitalRates = getJSONValue(this.options.hospitalRates);\r\n\t\tthis.extrasRates = getJSONValue(this.options.extrasRates);\r\n\t\tthis.noExtras = getJSONValue(this.options.noExtras);\r\n\r\n\t\tthis.watchAttr = {\r\n\t\t\t'data-quote-status--frequency': 'frequency',\r\n\t\t\t'data-quote-status--hospital-name': 'hospitalName',\r\n\t\t\t'data-quote-status--extras-name': 'extrasName',\r\n\t\t\t'data-quote-status--hospital-rates': 'hospitalRates',\r\n\t\t\t'data-quote-status--extras-rates': 'extrasRates',\r\n\t\t\t'data-quote-status--no-extras': 'noExtras'\r\n\t\t};\r\n\r\n\t\tthis.attributeObserver = new MutationObserver(\r\n\t\t\tthis.onAttributeChange.bind(this)\r\n\t\t);\r\n\r\n\t\tthis.hospitalNameElement = this.element.querySelector(\r\n\t\t\tthis.options.hospitalNameSelector\r\n\t\t);\r\n\r\n\t\tthis.extrasNameElement = this.element.querySelector(\r\n\t\t\tthis.options.extrasNameSelector\r\n\t\t);\r\n\r\n\t\tthis.extrasPartElement = this.element.querySelector(\r\n\t\t\tthis.options.extrasPartSelector\r\n\t\t);\r\n\r\n\t\tthis.resultElement = this.element.querySelector(\r\n\t\t\tthis.options.resultSelector\r\n\t\t);\r\n\r\n\t\tthis.amountElement = this.element.querySelector(\r\n\t\t\tthis.options.amountSelector\r\n\t\t);\r\n\r\n\t\t// todo: hide/show = $\r\n\r\n\t\tthis.init();\r\n\t\tthis.watch();\r\n\t\tlog(\"ready\", this, this.form);\r\n\t}\r\n\tinit() {}\r\n\twatch() {\r\n\t\tlog(\"watching\");\r\n\t\tthis.attributeObserver.observe(this.element, { attributes: true });\r\n\t}\r\n\r\n\tonAttributeChange(mutationList, observer) {\r\n\t\tmutationList\r\n\t\t\t.filter(\r\n\t\t\t\tfunction(mutation) {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\tmutation.type === \"attributes\" &&\r\n\t\t\t\t\t\tthis.watchAttr[mutation.attributeName]\r\n\t\t\t\t\t);\r\n\t\t\t\t}.bind(this)\r\n\t\t\t)\r\n\t\t\t.forEach(this.applyAttributeChanges.bind(this));\r\n\t}\r\n\r\n\tapplyAttributeChanges(mutation) {\r\n\t\tconst attribute = mutation.attributeName;\r\n\t\tconst newValue = this.element.getAttribute(attribute);\r\n\t\tthis[this.watchAttr[attribute]] = getJSONValue(newValue);\r\n\r\n\t\tthis.updateDisplay();\r\n\t}\r\n\r\n\tupdateDisplay() {\r\n\t\tthis.hospitalNameElement.textContent = this.hospitalName;\r\n\t\tthis.extrasNameElement.textContent = this.extrasName;\r\n\t\tthis.amountElement.textContent = this.calculateAmount().toFixed(2);\r\n\t\tthis.updateHighlight(this.hospitalNameElement, this.hasHospitalValue.bind(this));\r\n\t\tthis.updateHighlight(this.extrasNameElement, this.hasExtrasValue.bind(this));\r\n\t\tthis.updateHidden(this.extrasPartElement, ()=> this.noExtras);\r\n\t\tthis.updateHidden(this.resultElement, this.hasNoResult.bind(this));\r\n\t}\r\n\r\n\tupdateHighlight(element, condition) {\r\n\t\telement.classList.toggle(this.options.highlightClass, condition());\r\n\t}\r\n\r\n\tupdateHidden(element, condition) {\r\n\t\telement.hidden = condition();\r\n\t}\r\n\r\n\tcalculateAmount() {\r\n\t\tconst hospitalAmount = this.getRate(this.hospitalRates);\r\n\t\tconst extrasAmount = this.getRate(this.extrasRates);\r\n\t\treturn (hospitalAmount + extrasAmount);\r\n\t}\r\n\r\n\tgetRate(rates) {\r\n\t\tif(!rates || !rates.length) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tconst frequency = this.frequency;\r\n\t\t// Rates may be a single value e.g. Ambulance only\r\n\t\tconst isFixedFrequency = rates.length === 1;\r\n\t\tconst frequencyIndex = isFixedFrequency ? 0 : this.frequencies.findIndex((periodName) => {\r\n\t\t\treturn frequency === periodName;\r\n\t\t});\r\n\t\treturn rates[frequencyIndex] || 0;\r\n\t}\r\n\r\n\thasHospitalValue() {\r\n\t\treturn !!this.getRate(this.hospitalRates);\r\n\t}\r\n\r\n\thasExtrasValue() {\r\n\t\treturn !!this.getRate(this.extrasRates);\r\n\t}\r\n\r\n\thasNoResult() {\r\n\t\treturn this.calculateAmount() === 0;\r\n\t}\r\n}\r\n\r\nQuoteStatus.DEFAULTS = {};\r\n\r\nplugin(PLUGIN_NAME, QuoteStatus);\r\njQuery(document).ready(() => {\r\n\tjQuery(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/modules/cover-selector/components/cover-selector/quote-status.js","import $ from \"jquery\";\r\nimport plugin from \"@core/plugins/lib\";\r\n\r\nconst ELEMENT_SELECTOR = '[data-quote-form]';\r\nconst PLUGIN_NAME = 'quoteForm';\r\n\r\n$(() => {\r\n\t$(ELEMENT_SELECTOR).each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"quote-form\" */ \"./quote-form\"\r\n\t\t).then((module) => {\r\n\t\t\tplugin(PLUGIN_NAME, module.default);\r\n\t\t\t$(element)[PLUGIN_NAME]();\r\n\t\t});\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/modules/cover-selector/components/quote-form/index--split.js","import $ from \"jquery\";\r\nimport plugin from \"@core/plugins/lib\";\r\n\r\nconst ELEMENT_SELECTOR = '[data-validate-form]';\r\nconst PLUGIN_NAME = 'validateForm';\r\n\r\n$(() => {\r\n\t$(ELEMENT_SELECTOR).each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"validate-form\" */ './validate-form'\r\n\t\t).then((module) => {\r\n\t\t\tplugin(PLUGIN_NAME, module.default);\r\n\t\t\t$(element)[PLUGIN_NAME]();\r\n\t\t});\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/modules/cover-selector/components/validate-form/index--split.js","/**\r\n * Health Fund Product Selector Module Bundle\r\n * @author Rhys Lloyd\r\n */\r\n\r\n//\r\n// Utilities\r\n// Dependencies\r\nimport * as registry from '@core/registry';\r\nimport {COVER_SELECTOR_MODULE} from '@core/registry/names';\r\nimport module from './exec';\r\n\r\n//\r\n// Constants\r\nimport debug from \"debug\";\r\nconst MODULE_NAME = COVER_SELECTOR_MODULE;\r\nconst log = debug(MODULE_NAME);\r\n\r\n//\r\n// Register\r\nif (!registry.exists(MODULE_NAME)) {\r\n\tregistry.register(MODULE_NAME, registry.STATE.LOADING);\r\n}\r\n\r\n//\r\n// Functions\r\nexport function exec () {\r\n\tmodule();\r\n}\r\n\r\nexport {exec as default};\r\nregistry.setState(MODULE_NAME, registry.STATE.LOADED);\r\n\r\n//\r\n// Conditionally Self Execute\r\nif (!registry.isRegistered(MODULE_NAME)) {\r\n\texec();\r\n\tregistry.setState(MODULE_NAME, registry.STATE.REGISTERED);\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/modules/cover-selector/cover-selector.module.js","/**\r\n * Cover Selector - Dynamic Load\r\n * Responsible for determining if the Cover Selector needs to load, and for actually loading the files.\r\n */\r\n\r\n//\r\n// Utilities\r\n//\r\n// Dependencies\r\nimport * as registry from '@core/registry';\r\nimport { COVER_SELECTOR_MODULE } from '@core/registry/names';\r\n\r\n//\r\n// Constants\r\nexport const MODULE_NAME = COVER_SELECTOR_MODULE;\r\nexport const MODULE_SELECTOR = '[data-cover-selector]';\r\nexport const ASSETS = [\r\n\t// '../styles/core-datepicker.module.css',\r\n\t'../scripts/cover-selector.module.js',\r\n];\r\n// theme specific cover selector css is loaded via a partial\r\n\r\n//\r\n// Load\r\nexport default function load() {\r\n\tregistry.dynamicLoader(MODULE_NAME, MODULE_SELECTOR, ASSETS);\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/modules/cover-selector/dynamic-load.js","/**\r\n * Product Selector\r\n * @author Rhys Lloyd\r\n */\r\n\r\n// Utilities\r\nimport debug from \"debug\";\r\nconst MODULE_NAME = 'cover-selector/exec';\r\nconst log = debug(MODULE_NAME);\r\n\r\n// Dependencies\r\nimport {MODULE_SELECTOR} from './dynamic-load';\r\nimport init from './index';\r\n\r\n/**\r\n * Run module\r\n */\r\nexport default function exec () {\r\n\tlog('Running...');\r\n\r\n\t$(document).ready(() => {\r\n\t\t// Find all elements and operate\r\n\t\tlet elements = document.querySelectorAll(MODULE_SELECTOR);\r\n\t\tlog('elements:', elements);\r\n\r\n\t\t// Backward loops are just faster\r\n\t\tfor (let i = elements.length - 1; i >= 0; --i) {\r\n\t\t\tinit(elements[i]);\r\n\t\t}\r\n\t});\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/modules/cover-selector/exec.js","/**\r\n * Cover Selector\r\n */\r\n\r\n//\r\n// Utilities\r\nimport debug from \"debug\";\r\nimport \"./components/cover-selector/index\";\r\nimport \"./components/quote-form/index--split\";\r\nimport \"./components/validate-form/index--split\";\r\n\r\nimport uniqueId from 'lodash/uniqueId';\r\nconst MODULE_NAME = 'cover-selector';\r\nconst log = debug(MODULE_NAME);\r\n\r\n/**\r\n * Initialises the product selector.\r\n * @param {Element} element\r\n */\r\nexport default function init (element) {\r\n\tlog('init', element);\r\n\telement.id = uniqueId('cover-selector');\r\n\r\n\t// TODO initialise components of the cover-selector\r\n\r\n\treturn element;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/modules/cover-selector/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\n// import $ 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","/**\r\n * Registry Dynamic Loader\r\n * Common dynamic loading template.\r\n * @author Rhys Lloyd\r\n */\r\n\r\n//\r\n// Utilities\r\nimport debug from \"debug\";\r\nconst MODULE_NAME = 'dynamic-loader';\r\nconst log = debug(MODULE_NAME);\r\n//\r\n// Dependencies\r\nimport {STATE, register, exists} from './index';\r\nimport toast from '@vendor/pyrsmk-toast/toast';\r\nimport isString from 'lodash/isString';\r\n\r\nlet staticPath = undefined;\r\nconst staticPathElement = document.querySelector('meta[name=\"site.paths.static\"]');\r\nif(staticPathElement) {\r\n\tstaticPath = staticPathElement.content;\r\n}\r\n\r\n\r\n\r\n//\r\n// Constants\r\nconst STATIC_PATH = staticPath;\r\nconst MANIFEST_FILE = STATIC_PATH + 'manifest.json';\r\nlet MANIFEST_FILE_DATA = undefined;\r\n//\r\n// Load\r\n\r\n/**\r\n * Loads a module based on the existence of a selector.\r\n * @param {String} module - name of module to load (for registration)\r\n * @param {String} selector - selector to test for with document.querySelector\r\n * @param {Array} loadArray - array of assets to load (pass to toast.js)\r\n */\r\nexport default function dynamicLoader(module, selector, loadArray) {\r\n\tif (exists(module)) {\r\n\t\tlog(`Module \"${module}\" already loaded. Exiting.`);\r\n\t\treturn;\r\n\t}\r\n\r\n\tlog(`Looking for selector \"${selector}\"`);\r\n\tlet hasElements = !!document.querySelector(selector);\r\n\r\n\tif (!hasElements) {\r\n\t\tlog('...no elements. Exiting.');\r\n\t\tregister(module, STATE.NOT_REQUIRED);\r\n\t\treturn;\r\n\t}\r\n\r\n\treadTextFile(MANIFEST_FILE, getManifestFileName, loadArray, module);\r\n}\r\n\r\nfunction getManifestFileName(text, loadArray, module) {\r\n\tvar MANIFEST_FILE_DATA = JSON.parse(text);\r\n\tconst resolvedLoadArray = loadArray.map((item) => {\r\n\t\tif (!isString(item)) {\r\n\t\t\treturn item;\r\n\t\t}\r\n\t\tvar newItem = item.replace('../', STATIC_PATH);\t\t\r\n\t\tif (MANIFEST_FILE_DATA[newItem]) {\r\n\t\t\treturn MANIFEST_FILE_DATA[newItem];\r\n\t\t}\r\n\t\treturn newItem;\r\n\t});\r\n\r\n\tlog(`Loading ${module} with assetArray`, resolvedLoadArray);\r\n\ttoast.apply(null, resolvedLoadArray);\r\n\t\r\n\tregister(module, STATE.LOADING);\r\n}\r\n\r\nfunction readTextFile(file, callback, loadArray, module) {\r\n var rawFile = new XMLHttpRequest();\r\n rawFile.overrideMimeType(\"application/json\");\r\n rawFile.open(\"GET\", file, true);\r\n rawFile.onreadystatechange = function() {\r\n if (rawFile.readyState === 4 && rawFile.status == \"200\") {\r\n return callback(rawFile.responseText, loadArray, module);\r\n }\r\n };\r\n rawFile.send(null);\r\n}\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/registry/dynamic-loader.js","/**\r\n * Extremely Basic Module Registry\r\n * Designed to prevent asynchronously modules from being loaded and run more than once.\r\n * @author Rhys Lloyd\r\n */\r\n\r\n//\r\n// Utilities\r\nimport debug from \"debug\";\r\nconst MODULE_NAME = 'registry';\r\nconst log = debug(MODULE_NAME);\r\n\r\n//\r\n// Dependencies\r\nimport State from './state';\r\n\r\n//\r\n// Constants\r\nconst REGISTRY = {};\r\nexport const STATE = State;\r\nexport * from './names';\r\n\r\n//\r\n// Functions\r\n\r\nimport * as dl from './dynamic-loader';\r\n\r\n/**\r\n * Registers a module.\r\n * @param module\r\n * @param state\r\n * @returns {*}\r\n */\r\nexport function register (module, state) {\r\n\tif (exists(module)) {\r\n\t\tlog(`register(): Attempting to re-register an existing module: \"${module}\"`, 'Existing:', REGISTRY[module]);\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (!state || !validState(state)) {\r\n\t\tstate = STATE.INIT;\r\n\t}\r\n\r\n\tREGISTRY[module] = {\r\n\t\tstate: state\r\n\t};\r\n\r\n\tlog(`register(): Registering module \"${module}\" with state \"${state.name}\"`);\r\n\treturn REGISTRY[module];\r\n}\r\n\r\n/**\r\n * Returns the object in the registry\r\n * @param module\r\n * @returns {*}\r\n */\r\nexport function exists (module) {\r\n\treturn !!REGISTRY[module];\r\n}\r\n\r\n/**\r\n * Checks if a module is marked as registered.\r\n * @param module\r\n * @returns {*|boolean}\r\n */\r\nexport function isRegistered (module) {\r\n\treturn exists(module) && getState(module) == STATE.REGISTERED;\r\n}\r\n\r\n/**\r\n * Get the state of a registered module.\r\n * @param module\r\n * @returns {*}\r\n */\r\nexport function getState (module) {\r\n\tif (!exists(module)) {\r\n\t\tlog(`getState(): module \"${module}\" doesn't exist`);\r\n\t\treturn;\r\n\t}\r\n\r\n\tlet state = REGISTRY[module].state;\r\n\tlog(`getState(): Getting state \"${state.name}\" for module \"${module}\"`);\r\n\treturn state;\r\n}\r\n\r\n/**\r\n * Get the state of a registered module.\r\n * @param module\r\n * @param state\r\n * @returns {*}\r\n */\r\nexport function setState (module, state) {\r\n\tif (!exists(module)) {\r\n\t\tlog(`setState(): module \"${module}\" doesn't exist`);\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (!validState(state)) {\r\n\t\tlog(`setState(): state \"${state}\" doesn't exist (attempt on module \"${module}\")`);\r\n\t}\r\n\r\n\tlog(`setState(): Setting state \"${state.name}\" for module \"${module}\"`);\r\n\tREGISTRY[module].state = state;\r\n}\r\n\r\n/**\r\n * Verifies that a state is valid\r\n * @param state\r\n * @returns {boolean}\r\n */\r\nexport function validState (state) {\r\n\treturn state instanceof State;\r\n}\r\n\r\nexport { register as default };\r\n\r\nexport function dynamicLoader(module, selector, loadArray) {\r\n\treturn dl.default(module, selector, loadArray);\r\n}\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/registry/index.js","/**\r\n * Registry Module Names\r\n */\r\n\r\n// Core\r\nexport const CORE_MODULE = 'core';\r\nexport const DATEPICKER_MODULE = 'datepicker';\r\nexport const PS_QUOTE_FORM_MODULE = 'ps-quote-form';\r\nexport const LOCATOR_MODULE = 'locator';\r\nexport const COVER_SELECTOR_MODULE = \"cover-selector\";\r\n\r\n// Dev\r\nexport const DEV_MODULE = 'dev';\r\nexport const DEV_THEME_SWITCHER = `${DEV_MODULE}-theme-switcher`;\r\n\r\n// Health Fund\r\nexport const HF_APP_MODULE = 'hf-app';\r\nexport const HF_PRODUCT_SELECTOR_MODULE = 'hf-product-selector';\r\nexport const HF_PRODUCT_DETAIL_CARD_MODULE = 'hf-product-detail-card';\r\n\r\n// NT Health Fund\r\nexport const NT_HF_APP_MODULE = 'nt-cu-app';\r\n\r\n// SeeU\r\nexport const SEEU_APP_MODULE = 'seeu-app';\r\n// export const SEEU_PRODUCT_COMPARE_MODULE = 'cu-product-compare';\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/registry/names.js","/**\r\n * Registry States\r\n */\r\n\r\nimport {Enum} from '@vendor/enumify/enumify';\r\n\r\n/**\r\n * States for Registry\r\n * See docs: https://github.com/rauschma/enumify\r\n */\r\nclass State extends Enum {}\r\n\r\nState.initEnum(['INIT', 'FAIL', 'LOADING', 'LOADED', 'REGISTERED', 'NOT_REQUIRED', 'CANCELLED']);\r\n\r\nexport default State;\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/registry/state.js","'use strict';\r\n\r\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\r\n\r\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\r\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\nexports.copyProperties = copyProperties;\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\r\n\r\nvar INITIALIZED = Symbol();\r\n\r\n/**\r\n * This is an abstract class that is not intended to be\r\n * used directly. Extend it to turn your class into an enum\r\n * (initialization is performed via `MyClass.initEnum()`).\r\n */\r\n\r\nvar Enum = exports.Enum = function () {\r\n /**\r\n * `initEnum()` closes the class. Then calling this constructor\r\n * throws an exception.\r\n * \r\n * If your subclass has a constructor then you can control\r\n * what properties are added to `this` via the argument you\r\n * pass to `super()`. No arguments are fine, too.\r\n */\r\n\r\n function Enum() {\r\n var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\r\n\r\n _classCallCheck(this, Enum);\r\n\r\n // new.target would be better than this.constructor,\r\n // but isn’t supported by Babel\r\n if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) {\r\n throw new Error('Enum classes can’t be instantiated');\r\n }\r\n if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) {\r\n copyProperties(this, instanceProperties);\r\n }\r\n }\r\n /**\r\n * Set up the enum, close the class.\r\n * \r\n * @param arg Either an object whose properties provide the names\r\n * and values (which must be mutable objects) of the enum constants.\r\n * Or an Array whose elements are used as the names of the enum constants\r\n * The values are create by instantiating the current class.\r\n */\r\n\r\n _createClass(Enum, [{\r\n key: 'toString',\r\n\r\n /**\r\n * Default `toString()` method for enum constant.\r\n */\r\n value: function toString() {\r\n return this.constructor.name + '.' + this.name;\r\n }\r\n }], [{\r\n key: 'initEnum',\r\n value: function initEnum(arg) {\r\n Object.defineProperty(this, 'enumValues', {\r\n value: [],\r\n configurable: false,\r\n writable: false,\r\n enumerable: true\r\n });\r\n if (Array.isArray(arg)) {\r\n this._enumValuesFromArray(arg);\r\n } else {\r\n this._enumValuesFromObject(arg);\r\n }\r\n Object.freeze(this.enumValues);\r\n this[INITIALIZED] = true;\r\n return this;\r\n }\r\n }, {\r\n key: '_enumValuesFromArray',\r\n value: function _enumValuesFromArray(arr) {\r\n var _iteratorNormalCompletion = true;\r\n var _didIteratorError = false;\r\n var _iteratorError = undefined;\r\n\r\n try {\r\n for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\r\n var key = _step.value;\r\n\r\n this._pushEnumValue(new this(), key);\r\n }\r\n } catch (err) {\r\n _didIteratorError = true;\r\n _iteratorError = err;\r\n } finally {\r\n try {\r\n if (!_iteratorNormalCompletion && _iterator.return) {\r\n _iterator.return();\r\n }\r\n } finally {\r\n if (_didIteratorError) {\r\n throw _iteratorError;\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n key: '_enumValuesFromObject',\r\n value: function _enumValuesFromObject(obj) {\r\n var _iteratorNormalCompletion2 = true;\r\n var _didIteratorError2 = false;\r\n var _iteratorError2 = undefined;\r\n\r\n try {\r\n for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\r\n var key = _step2.value;\r\n\r\n var value = new this(obj[key]);\r\n this._pushEnumValue(value, key);\r\n }\r\n } catch (err) {\r\n _didIteratorError2 = true;\r\n _iteratorError2 = err;\r\n } finally {\r\n try {\r\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\r\n _iterator2.return();\r\n }\r\n } finally {\r\n if (_didIteratorError2) {\r\n throw _iteratorError2;\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n key: '_pushEnumValue',\r\n value: function _pushEnumValue(enumValue, name) {\r\n enumValue.name = name;\r\n enumValue.ordinal = this.enumValues.length;\r\n Object.defineProperty(this, name, {\r\n value: enumValue,\r\n configurable: false,\r\n writable: false,\r\n enumerable: true\r\n });\r\n this.enumValues.push(enumValue);\r\n }\r\n\r\n /**\r\n * Given the name of an enum constant, return its value.\r\n */\r\n\r\n }, {\r\n key: 'enumValueOf',\r\n value: function enumValueOf(name) {\r\n return this.enumValues.find(function (x) {\r\n return x.name === name;\r\n });\r\n }\r\n\r\n /**\r\n * Make enum classes iterable\r\n */\r\n\r\n }, {\r\n key: Symbol.iterator,\r\n value: function value() {\r\n return this.enumValues[Symbol.iterator]();\r\n }\r\n }]);\r\n\r\n return Enum;\r\n}();\r\n\r\nfunction copyProperties(target, source) {\r\n // Ideally, we’d use Reflect.ownKeys() here,\r\n // but I don’t want to depend on a polyfill\r\n var _iteratorNormalCompletion3 = true;\r\n var _didIteratorError3 = false;\r\n var _iteratorError3 = undefined;\r\n\r\n try {\r\n for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\r\n var key = _step3.value;\r\n\r\n var desc = Object.getOwnPropertyDescriptor(source, key);\r\n Object.defineProperty(target, key, desc);\r\n }\r\n } catch (err) {\r\n _didIteratorError3 = true;\r\n _iteratorError3 = err;\r\n } finally {\r\n try {\r\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\r\n _iterator3.return();\r\n }\r\n } finally {\r\n if (_didIteratorError3) {\r\n throw _iteratorError3;\r\n }\r\n }\r\n }\r\n\r\n return target;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/vendor/enumify/enumify.js",";(function(root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n define([], factory);\r\n } else if (typeof exports === 'object') {\r\n module.exports = factory();\r\n } else {\r\n root.toast = factory();\r\n }\r\n}(this, function() {\r\n/*! toast 2.1.0 (https://github.com/pyrsmk/toast) */\r\n\r\nvar handled_resources = {};\r\n\r\nfunction toast() {\r\n\tvar head = document.getElementsByTagName('head')[0],\r\n\t\t\r\n\t// Load as much resources as we can\r\n\tloadResources = function(resources) {\r\n\t\t// Waiting for DOM readiness then load resources\r\n\t\tif(!head) {\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\tloadResources(resources);\r\n\t\t\t}, 50);\r\n\t\t}\r\n\t\t// Load resources\r\n\t\telse if(resources.length) {\r\n\t\t\tvar i = -1,\r\n\t\t\t\tresource,\r\n\t\t\t\tcallback;\r\n\t\t\twhile(resource = resources[++i]) {\r\n\t\t\t\t// Resource\r\n\t\t\t\tif(typeof resource == 'string') {\r\n\t\t\t\t\tloadResource(resource);\r\n\t\t\t\t}\r\n\t\t\t\t// Callback\r\n\t\t\t\telse if(typeof resource == 'function') {\r\n\t\t\t\t\tcallback = resource;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\twatchResources(callback, Array.prototype.slice.call(resources, i+1));\r\n\t\t}\r\n\t},\r\n\r\n\t// Load one resource\r\n\tloadResource = function(resource) {\r\n\t\t// Extract resource type\r\n\t\tvar implicit_type = /\\.(\\w+)$/.exec(resource),\r\n\t\t\texplicit_type = /^\\[(\\w+)\\](.+)/.exec(resource),\r\n\t\t\ttype, node;\r\n\t\tif(explicit_type !== null) {\r\n\t\t\ttype = explicit_type[1];\r\n\t\t\tresource = explicit_type[2];\r\n\t\t}\r\n\t\telse if(implicit_type !== null) {\r\n\t\t\ttype = implicit_type[1];\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// Verify if the resource is not already handled\r\n\t\tif(resource in handled_resources) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// Mark the resource as handled (but not loaded yet)\r\n\t\thandled_resources[resource] = false;\r\n\t\t// Load resource\r\n\t\tswitch(type) {\r\n\t\t\tcase 'js':\r\n\t\t\t\t// Create SCRIPT element\r\n\t\t\t\tnode = document.createElement('script');\r\n\t\t\t\tnode.src = resource;\r\n\t\t\t\tnode.type = 'text/javascript';\r\n\t\t\t\thead.appendChild(node);\r\n\t\t\t\t// Watch loading state\r\n\t\t\t\tvar version = navigator.appVersion.match(/MSIE (\\d)/);\r\n\t\t\t\tif(version !== null && parseInt(version[1], 10) < 9) {\r\n\t\t\t\t\t// IE<9\r\n\t\t\t\t\tnode.onreadystatechange = function() {\r\n\t\t\t\t\t\tif(/ded|co/.test(this.readyState)) {\r\n\t\t\t\t\t\t\thandled_resources[resource] = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// Other browsers\r\n\t\t\t\t\tnode.onload = function() {\r\n\t\t\t\t\t\thandled_resources[resource] = true;\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'css':\r\n\t\t\t\t// Create LINK element\r\n\t\t\t\tnode = document.createElement('link');\r\n\t\t\t\tnode.rel = 'styleSheet';\r\n\t\t\t\tnode.href = resource;\r\n\t\t\t\thead.appendChild(node);\r\n\t\t\t\t// Watch loading state\r\n\t\t\t\twatchStylesheet(node, resource);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tdelete handled_resources[resource];\r\n\t\t\t\treturn;\r\n\t\t}\r\n\t},\r\n\r\n\t// Watch if all resources have been loaded\r\n\twatchResources = function(callback, resourcesToLoad) {\r\n\t\tfor(var resource in handled_resources) {\r\n\t\t\tif(!handled_resources[resource]) {\r\n\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\twatchResources(callback, resourcesToLoad);\r\n\t\t\t\t}, 50);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(typeof callback == 'function') {\r\n\t\t\tcallback();\r\n\t\t}\r\n\t\tloadResources(resourcesToLoad);\r\n\t},\r\n\r\n\t// Watch if a CSS resource has been loaded\r\n\twatchStylesheet = function(node, resource) {\r\n\t\tif(node.sheet || node.styleSheet) {\r\n\t\t\thandled_resources[resource] = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\twatchStylesheet(node, resource);\r\n\t\t\t}, 50);\r\n\t\t}\r\n\t};\r\n\t\r\n\t// Load resources\r\n\tloadResources(arguments);\r\n}\r\nreturn toast;\r\n}));\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/vendor/pyrsmk-toast/toast.js","module.exports = jQuery;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"jQuery\"\n// module id = external \"jQuery\"\n// module chunks = core.app cover-selector.module"],"sourceRoot":""}