{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/awesomplete/awesomplete.js","webpack:///./Static/javascript/pages/service-list.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_","input","me","this","count","isOpened","$","setAttribute","options","instance","properties","initial","attrValue","getAttribute","toLowerCase","parseInt","Function","configure","minChars","maxItems","autoFirst","data","DATA","filter","FILTER_CONTAINS","sort","SORT_BYLENGTH","container","CONTAINER","item","ITEM","replace","REPLACE","tabSelect","index","ul","hidden","role","id","inside","status","className","aria-live","aria-atomic","textContent","_events","evaluate","blur","close","reason","keydown","evt","keyCode","opened","selected","preventDefault","select","form","submit","mousedown","click","li","target","test","nodeName","parentNode","button","hasAttribute","list","removeAttribute","all","push","Suggestion","Array","isArray","label","_list","indexOf","split","children","items","slice","apply","forEach","el","disabled","text","trim","document","activeElement","fire","open","goto","destroy","unbind","insertBefore","removeChild","indexOfAwesomplete","splice","next","length","previous","pos","lis","scrollTop","offsetTop","clientHeight","suggestions","origin","siblingIndex","suggestion","innerHTML","map","appendChild","RegExp","regExpEscape","FILTER_STARTSWITH","a","b","around","item_id","html","aria-selected","String","toString","valueOf","expr","con","querySelector","$$","querySelectorAll","init","tag","element","createElement","val","ref","focus","event","callback","addEventListener","removeEventListener","type","createEvent","j","initEvent","dispatchEvent","previousElementSibling","self","Awesomplete","Document","readyState","ServiceGrouping","parentElement","letter","groupingElement","serviceElements","getElementsByClassName","letterElement","some","classList","contains","labelValidOptions","curr","add","remove","hasValidOptions","serviceGroups","serviceNames","inputTextbox","getElementById","randomString","chars","charAt","Math","floor","random","query","serviceElement","link","e","headerHeight","position","window","innerWidth","offsetHeight","scrollTo","top","behavior"],"mappings":"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","file":"service-search-bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 224);\n","/**\n * Simple, lightweight, usable local autocomplete library for modern browsers\n * Because there weren’t enough autocomplete scripts in the world? Because I’m completely insane and have NIH syndrome? Probably both. :P\n * @author Lea Verou http://leaverou.github.io/awesomplete\n * MIT license\n */\n\n(function () {\n\nvar _ = function (input, o) {\n\tvar me = this;\n\n // Keep track of number of instances for unique IDs\n _.count = (_.count || 0) + 1;\n this.count = _.count;\n\n\t// Setup\n\n\tthis.isOpened = false;\n\n\tthis.input = $(input);\n\tthis.input.setAttribute(\"autocomplete\", \"off\");\n\tthis.input.setAttribute(\"aria-owns\", \"awesomplete_list_\" + this.count);\n\tthis.input.setAttribute(\"role\", \"combobox\");\n\n\t// store constructor options in case we need to distinguish\n\t// between default and customized behavior later on\n\tthis.options = o = o || {};\n\n\tconfigure(this, {\n\t\tminChars: 2,\n\t\tmaxItems: 10,\n\t\tautoFirst: false,\n\t\tdata: _.DATA,\n\t\tfilter: _.FILTER_CONTAINS,\n\t\tsort: o.sort === false ? false : _.SORT_BYLENGTH,\n\t\tcontainer: _.CONTAINER,\n\t\titem: _.ITEM,\n\t\treplace: _.REPLACE,\n\t\ttabSelect: false\n\t}, o);\n\n\tthis.index = -1;\n\n\t// Create necessary elements\n\n\tthis.container = this.container(input);\n\n\tthis.ul = $.create(\"ul\", {\n\t\thidden: \"hidden\",\n role: \"listbox\",\n id: \"awesomplete_list_\" + this.count,\n\t\tinside: this.container\n\t});\n\n\tthis.status = $.create(\"span\", {\n\t\tclassName: \"visually-hidden\",\n\t\trole: \"status\",\n\t\t\"aria-live\": \"assertive\",\n \"aria-atomic\": true,\n inside: this.container,\n textContent: this.minChars != 0 ? (\"Type \" + this.minChars + \" or more characters for results.\") : \"Begin typing for results.\"\n\t});\n\n\t// Bind events\n\n\tthis._events = {\n\t\tinput: {\n\t\t\t\"input\": this.evaluate.bind(this),\n\t\t\t\"blur\": this.close.bind(this, { reason: \"blur\" }),\n\t\t\t\"keydown\": function(evt) {\n\t\t\t\tvar c = evt.keyCode;\n\n\t\t\t\t// If the dropdown `ul` is in view, then act on keydown for the following keys:\n\t\t\t\t// Enter / Esc / Up / Down\n\t\t\t\tif(me.opened) {\n\t\t\t\t\tif (c === 13 && me.selected) { // Enter\n\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\tme.select();\n\t\t\t\t\t}\n\t\t\t\t\telse if (c === 9 && me.selected && me.tabSelect) {\n\t\t\t\t\t\tme.select();\n\t\t\t\t\t}\n\t\t\t\t\telse if (c === 27) { // Esc\n\t\t\t\t\t\tme.close({ reason: \"esc\" });\n\t\t\t\t\t}\n\t\t\t\t\telse if (c === 38 || c === 40) { // Down/Up arrow\n\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\tme[c === 38? \"previous\" : \"next\"]();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tform: {\n\t\t\t\"submit\": this.close.bind(this, { reason: \"submit\" })\n\t\t},\n\t\tul: {\n\t\t\t// Prevent the default mousedowm, which ensures the input is not blurred.\n\t\t\t// The actual selection will happen on click. This also ensures dragging the\n\t\t\t// cursor away from the list item will cancel the selection\n\t\t\t\"mousedown\": function(evt) {\n\t\t\t\tevt.preventDefault();\n\t\t\t},\n\t\t\t// The click event is fired even if the corresponding mousedown event has called preventDefault\n\t\t\t\"click\": function(evt) {\n\t\t\t\tvar li = evt.target;\n\n\t\t\t\tif (li !== this) {\n\n\t\t\t\t\twhile (li && !/li/i.test(li.nodeName)) {\n\t\t\t\t\t\tli = li.parentNode;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (li && evt.button === 0) { // Only select on left click\n\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\tme.select(li, evt.target);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t$.bind(this.input, this._events.input);\n\t$.bind(this.input.form, this._events.form);\n\t$.bind(this.ul, this._events.ul);\n\n\tif (this.input.hasAttribute(\"list\")) {\n\t\tthis.list = \"#\" + this.input.getAttribute(\"list\");\n\t\tthis.input.removeAttribute(\"list\");\n\t}\n\telse {\n\t\tthis.list = this.input.getAttribute(\"data-list\") || o.list || [];\n\t}\n\n\t_.all.push(this);\n};\n\n_.prototype = {\n\tset list(list) {\n\t\tif (Array.isArray(list)) {\n\t\t\tthis._list = list;\n\t\t}\n\t\telse if (typeof list === \"string\" && list.indexOf(\",\") > -1) {\n\t\t\t\tthis._list = list.split(/\\s*,\\s*/);\n\t\t}\n\t\telse { // Element or CSS selector\n\t\t\tlist = $(list);\n\n\t\t\tif (list && list.children) {\n\t\t\t\tvar items = [];\n\t\t\t\tslice.apply(list.children).forEach(function (el) {\n\t\t\t\t\tif (!el.disabled) {\n\t\t\t\t\t\tvar text = el.textContent.trim();\n\t\t\t\t\t\tvar value = el.value || text;\n\t\t\t\t\t\tvar label = el.label || text;\n\t\t\t\t\t\tif (value !== \"\") {\n\t\t\t\t\t\t\titems.push({ label: label, value: value });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tthis._list = items;\n\t\t\t}\n\t\t}\n\n\t\tif (document.activeElement === this.input) {\n\t\t\tthis.evaluate();\n\t\t}\n\t},\n\n\tget selected() {\n\t\treturn this.index > -1;\n\t},\n\n\tget opened() {\n\t\treturn this.isOpened;\n\t},\n\n\tclose: function (o) {\n\t\tif (!this.opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.ul.setAttribute(\"hidden\", \"\");\n\t\tthis.isOpened = false;\n\t\tthis.index = -1;\n\n\t\tthis.status.setAttribute(\"hidden\", \"\");\n\n\t\t$.fire(this.input, \"awesomplete-close\", o || {});\n\t},\n\n\topen: function () {\n\t\tthis.ul.removeAttribute(\"hidden\");\n\t\tthis.isOpened = true;\n\n\t\tthis.status.removeAttribute(\"hidden\");\n\n\t\tif (this.autoFirst && this.index === -1) {\n\t\t\tthis.goto(0);\n\t\t}\n\n\t\t$.fire(this.input, \"awesomplete-open\");\n\t},\n\n\tdestroy: function() {\n\t\t//remove events from the input and its form\n\t\t$.unbind(this.input, this._events.input);\n\t\t$.unbind(this.input.form, this._events.form);\n\n\t\t// cleanup container if it was created by Awesomplete but leave it alone otherwise\n\t\tif (!this.options.container) {\n\t\t\t//move the input out of the awesomplete container and remove the container and its children\n\t\t\tvar parentNode = this.container.parentNode;\n\n\t\t\tparentNode.insertBefore(this.input, this.container);\n\t\t\tparentNode.removeChild(this.container);\n\t\t}\n\n\t\t//remove autocomplete and aria-autocomplete attributes\n\t\tthis.input.removeAttribute(\"autocomplete\");\n\t\tthis.input.removeAttribute(\"aria-autocomplete\");\n\n\t\t//remove this awesomeplete instance from the global array of instances\n\t\tvar indexOfAwesomplete = _.all.indexOf(this);\n\n\t\tif (indexOfAwesomplete !== -1) {\n\t\t\t_.all.splice(indexOfAwesomplete, 1);\n\t\t}\n\t},\n\n\tnext: function () {\n\t\tvar count = this.ul.children.length;\n\t\tthis.goto(this.index < count - 1 ? this.index + 1 : (count ? 0 : -1) );\n\t},\n\n\tprevious: function () {\n\t\tvar count = this.ul.children.length;\n\t\tvar pos = this.index - 1;\n\n\t\tthis.goto(this.selected && pos !== -1 ? pos : count - 1);\n\t},\n\n\t// Should not be used, highlights specific item without any checks!\n\tgoto: function (i) {\n\t\tvar lis = this.ul.children;\n\n\t\tif (this.selected) {\n\t\t\tlis[this.index].setAttribute(\"aria-selected\", \"false\");\n\t\t}\n\n\t\tthis.index = i;\n\n\t\tif (i > -1 && lis.length > 0) {\n\t\t\tlis[i].setAttribute(\"aria-selected\", \"true\");\n\n\t\t\tthis.status.textContent = lis[i].textContent + \", list item \" + (i + 1) + \" of \" + lis.length;\n\n this.input.setAttribute(\"aria-activedescendant\", this.ul.id + \"_item_\" + this.index);\n\n\t\t\t// scroll to highlighted element in case parent's height is fixed\n\t\t\tthis.ul.scrollTop = lis[i].offsetTop - this.ul.clientHeight + lis[i].clientHeight;\n\n\t\t\t$.fire(this.input, \"awesomplete-highlight\", {\n\t\t\t\ttext: this.suggestions[this.index]\n\t\t\t});\n\t\t}\n\t},\n\n\tselect: function (selected, origin) {\n\t\tif (selected) {\n\t\t\tthis.index = $.siblingIndex(selected);\n\t\t} else {\n\t\t\tselected = this.ul.children[this.index];\n\t\t}\n\n\t\tif (selected) {\n\t\t\tvar suggestion = this.suggestions[this.index];\n\n\t\t\tvar allowed = $.fire(this.input, \"awesomplete-select\", {\n\t\t\t\ttext: suggestion,\n\t\t\t\torigin: origin || selected\n\t\t\t});\n\n\t\t\tif (allowed) {\n\t\t\t\tthis.replace(suggestion);\n\t\t\t\tthis.close({ reason: \"select\" });\n\t\t\t\t$.fire(this.input, \"awesomplete-selectcomplete\", {\n\t\t\t\t\ttext: suggestion\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t},\n\n\tevaluate: function() {\n\t\tvar me = this;\n\t\tvar value = this.input.value;\n\n\t\tif (value.length >= this.minChars && this._list && this._list.length > 0) {\n\t\t\tthis.index = -1;\n\t\t\t// Populate list with options that match\n\t\t\tthis.ul.innerHTML = \"\";\n\n\t\t\tthis.suggestions = this._list\n\t\t\t\t.map(function(item) {\n\t\t\t\t\treturn new Suggestion(me.data(item, value));\n\t\t\t\t})\n\t\t\t\t.filter(function(item) {\n\t\t\t\t\treturn me.filter(item, value);\n\t\t\t\t});\n\n\t\t\tif (this.sort !== false) {\n\t\t\t\tthis.suggestions = this.suggestions.sort(this.sort);\n\t\t\t}\n\n\t\t\tthis.suggestions = this.suggestions.slice(0, this.maxItems);\n\n\t\t\tthis.suggestions.forEach(function(text, index) {\n\t\t\t\t\tme.ul.appendChild(me.item(text, value, index));\n\t\t\t\t});\n\n\t\t\tif (this.ul.children.length === 0) {\n\n this.status.textContent = \"No results found\";\n\n\t\t\t\tthis.close({ reason: \"nomatches\" });\n\n\t\t\t} else {\n\t\t\t\tthis.open();\n\n this.status.textContent = this.ul.children.length + \" results found\";\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tthis.close({ reason: \"nomatches\" });\n\n this.status.textContent = \"No results found\";\n\t\t}\n\t}\n};\n\n// Static methods/properties\n\n_.all = [];\n\n_.FILTER_CONTAINS = function (text, input) {\n\treturn RegExp($.regExpEscape(input.trim()), \"i\").test(text);\n};\n\n_.FILTER_STARTSWITH = function (text, input) {\n\treturn RegExp(\"^\" + $.regExpEscape(input.trim()), \"i\").test(text);\n};\n\n_.SORT_BYLENGTH = function (a, b) {\n\tif (a.length !== b.length) {\n\t\treturn a.length - b.length;\n\t}\n\n\treturn a < b? -1 : 1;\n};\n\n_.CONTAINER = function (input) {\n\treturn $.create(\"div\", {\n\t\tclassName: \"awesomplete\",\n\t\taround: input\n\t});\n}\n\n_.ITEM = function (text, input, item_id) {\n\tvar html = input.trim() === \"\" ? text : text.replace(RegExp($.regExpEscape(input.trim()), \"gi\"), \"$&\");\n\treturn $.create(\"li\", {\n\t\tinnerHTML: html,\n\t\t\"aria-selected\": \"false\",\n \"id\": \"awesomplete_list_\" + this.count + \"_item_\" + item_id\n\t});\n};\n\n_.REPLACE = function (text) {\n\tthis.input.value = text.value;\n};\n\n_.DATA = function (item/*, input*/) { return item; };\n\n// Private functions\n\nfunction Suggestion(data) {\n\tvar o = Array.isArray(data)\n\t ? { label: data[0], value: data[1] }\n\t : typeof data === \"object\" && \"label\" in data && \"value\" in data ? data : { label: data, value: data };\n\n\tthis.label = o.label || o.value;\n\tthis.value = o.value;\n}\nObject.defineProperty(Suggestion.prototype = Object.create(String.prototype), \"length\", {\n\tget: function() { return this.label.length; }\n});\nSuggestion.prototype.toString = Suggestion.prototype.valueOf = function () {\n\treturn \"\" + this.label;\n};\n\nfunction configure(instance, properties, o) {\n\tfor (var i in properties) {\n\t\tvar initial = properties[i],\n\t\t attrValue = instance.input.getAttribute(\"data-\" + i.toLowerCase());\n\n\t\tif (typeof initial === \"number\") {\n\t\t\tinstance[i] = parseInt(attrValue);\n\t\t}\n\t\telse if (initial === false) { // Boolean options must be false by default anyway\n\t\t\tinstance[i] = attrValue !== null;\n\t\t}\n\t\telse if (initial instanceof Function) {\n\t\t\tinstance[i] = null;\n\t\t}\n\t\telse {\n\t\t\tinstance[i] = attrValue;\n\t\t}\n\n\t\tif (!instance[i] && instance[i] !== 0) {\n\t\t\tinstance[i] = (i in o)? o[i] : initial;\n\t\t}\n\t}\n}\n\n// Helpers\n\nvar slice = Array.prototype.slice;\n\nfunction $(expr, con) {\n\treturn typeof expr === \"string\"? (con || document).querySelector(expr) : expr || null;\n}\n\nfunction $$(expr, con) {\n\treturn slice.call((con || document).querySelectorAll(expr));\n}\n\n$.create = function(tag, o) {\n\tvar element = document.createElement(tag);\n\n\tfor (var i in o) {\n\t\tvar val = o[i];\n\n\t\tif (i === \"inside\") {\n\t\t\t$(val).appendChild(element);\n\t\t}\n\t\telse if (i === \"around\") {\n\t\t\tvar ref = $(val);\n\t\t\tref.parentNode.insertBefore(element, ref);\n\t\t\telement.appendChild(ref);\n\n\t\t\tif (ref.getAttribute(\"autofocus\") != null) {\n\t\t\t\tref.focus();\n\t\t\t}\n\t\t}\n\t\telse if (i in element) {\n\t\t\telement[i] = val;\n\t\t}\n\t\telse {\n\t\t\telement.setAttribute(i, val);\n\t\t}\n\t}\n\n\treturn element;\n};\n\n$.bind = function(element, o) {\n\tif (element) {\n\t\tfor (var event in o) {\n\t\t\tvar callback = o[event];\n\n\t\t\tevent.split(/\\s+/).forEach(function (event) {\n\t\t\t\telement.addEventListener(event, callback);\n\t\t\t});\n\t\t}\n\t}\n};\n\n$.unbind = function(element, o) {\n\tif (element) {\n\t\tfor (var event in o) {\n\t\t\tvar callback = o[event];\n\n\t\t\tevent.split(/\\s+/).forEach(function(event) {\n\t\t\t\telement.removeEventListener(event, callback);\n\t\t\t});\n\t\t}\n\t}\n};\n\n$.fire = function(target, type, properties) {\n\tvar evt = document.createEvent(\"HTMLEvents\");\n\n\tevt.initEvent(type, true, true );\n\n\tfor (var j in properties) {\n\t\tevt[j] = properties[j];\n\t}\n\n\treturn target.dispatchEvent(evt);\n};\n\n$.regExpEscape = function (s) {\n\treturn s.replace(/[-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n};\n\n$.siblingIndex = function (el) {\n\t/* eslint-disable no-cond-assign */\n\tfor (var i = 0; el = el.previousElementSibling; i++);\n\treturn i;\n};\n\n// Initialization\n\nfunction init() {\n\t$$(\"input.awesomplete\").forEach(function (input) {\n\t\tnew _(input);\n\t});\n}\n\n// Make sure to export Awesomplete on self when in a browser\nif (typeof self !== \"undefined\") {\n\tself.Awesomplete = _;\n}\n\n// Are we in a browser? Check for Document constructor\nif (typeof Document !== \"undefined\") {\n\t// DOM already loaded?\n\tif (document.readyState !== \"loading\") {\n\t\tinit();\n\t}\n\telse {\n\t\t// Wait for it\n\t\tdocument.addEventListener(\"DOMContentLoaded\", init);\n\t}\n}\n\n_.$ = $;\n_.$$ = $$;\n\n// Expose Awesomplete as a CJS module\nif (typeof module === \"object\" && module.exports) {\n\tmodule.exports = _;\n}\n\nreturn _;\n\n}());\n","import Awesomplete = require('awesomplete');\r\n\r\nclass ServiceGrouping {\r\n public groupingElement: HTMLElement;\r\n public serviceElements: HTMLElement[];\r\n public letterElement: HTMLElement;\r\n\r\n constructor(parentElement: HTMLElement, letter: string) {\r\n this.groupingElement = parentElement;\r\n\r\n this.serviceElements = Array.prototype.slice.call(this.groupingElement.getElementsByClassName(\"service-option-js\"));\r\n // Only allow alphabetical characters\r\n if (/^[a-zA-Z]{1}$/.test(letter)) {\r\n this.letterElement = document.querySelector('a[data-group=' + letter + ']');\r\n }\r\n if (letter === \"Other\") {\r\n this.letterElement = document.querySelector('a[data-group=' + letter + ']');\r\n }\r\n }\r\n\r\n /**\r\n * Checks if the there exists any service under this group that is valid given the current configuration.\r\n */\r\n public get hasValidOptions(): boolean {\r\n return this.serviceElements.some(el => !el.classList.contains(\"hide\"));\r\n }\r\n\r\n /**\r\n * Update the UI to hide services that don't contain the input string, and show services that do. If all services within a group\r\n * are invalid, the group is also hidden.\r\n * @param input\r\n */\r\n labelValidOptions(input: string) {\r\n for (let i = 0; i < this.serviceElements.length; ++i) {\r\n const curr = this.serviceElements[i];\r\n\r\n if (curr.getAttribute(\"data-service-name\").indexOf(input) === -1) {\r\n curr.classList.add(\"hide\");\r\n curr.setAttribute(\"aria-hidden\", \"true\");\r\n } else {\r\n curr.classList.remove(\"hide\");\r\n curr.removeAttribute(\"aria-hidden\");\r\n }\r\n }\r\n\r\n if (!this.hasValidOptions) {\r\n this.groupingElement.classList.add(\"hide\");\r\n this.letterElement.classList.add(\"disabled\");\r\n this.groupingElement.setAttribute(\"aria-hidden\", \"true\");\r\n } else {\r\n this.groupingElement.classList.remove(\"hide\");\r\n this.letterElement.classList.remove(\"disabled\");\r\n this.groupingElement.removeAttribute(\"aria-hidden\");\r\n }\r\n }\r\n}\r\n\r\nconst serviceGroups: ServiceGrouping[] = Array.prototype.slice.call(document.getElementsByClassName(\"service-group-js\")).map(el => new ServiceGrouping(el, el.getAttribute(\"data-group\")));\r\nconst serviceNames = Array.prototype.slice.call(document.getElementsByClassName(\"service-option-js\")).map(el => el.getAttribute(\"data-service-name\"));\r\nconst inputTextbox = document.getElementById(\"service-search-textbox-js\") as HTMLInputElement;\r\n\r\nlet autocomplete = new Awesomplete(inputTextbox, {\r\n list: serviceNames\r\n});\r\n\r\ndocument.getElementById('service-search-form-js').addEventListener('submit', function (evt) {\r\n evt.preventDefault();\r\n const query = inputTextbox.value.toLowerCase();\r\n\r\n for (let i = 0; i < serviceGroups.length; ++i) {\r\n serviceGroups[i].labelValidOptions(query);\r\n }\r\n\r\n // Prevents Chrome for creating an autocomplete history for this form element\r\n // since the latest version of Chrome no longer respects autocomplete=\"off\"\r\n inputTextbox.setAttribute('name', randomString(12));\r\n});\r\n\r\ninputTextbox.addEventListener('keyup', function () {\r\n if (inputTextbox.value == '') {\r\n for (let i = 0; i < serviceGroups.length; ++i) {\r\n serviceGroups[i].groupingElement.classList.remove('hide');\r\n serviceGroups[i].groupingElement.removeAttribute('aria-hidden');\r\n\r\n serviceGroups[i].serviceElements.forEach(serviceElement => {\r\n serviceElement.removeAttribute('aria-hidden');\r\n serviceElement.classList.remove('hide');\r\n })\r\n }\r\n }\r\n});\r\n\r\ndocument.querySelector('.adage-services-clear-js').addEventListener('click', function () {\r\n inputTextbox.value = '';\r\n for (let i = 0; i < serviceGroups.length; ++i) {\r\n if (!this.hasValidOptions) {\r\n this.groupingElement.classList.remove(\"hide\");\r\n this.letterElement.classList.remove(\"disabled\");\r\n this.groupingElement.removeAttribute(\"aria-hidden\");\r\n }\r\n }\r\n})\r\n\r\n\r\nfunction randomString(length) {\r\n var randomString = '';\r\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n\r\n for (var i = 0; i < length; i++) {\r\n randomString += chars.charAt(Math.floor(Math.random() * chars.length));\r\n }\r\n\r\n return randomString;\r\n}\r\n\r\n// Prevents Chrome for creating an autocomplete history for this form element\r\n// since the latest version of Chrome no longer respects autocomplete=\"off\"\r\ninputTextbox.setAttribute('name', randomString(12));\r\n\r\n// Smooth scroll for alphabet links\r\n\r\nlet alphabetLinks = Array.prototype.slice.call(document.querySelectorAll('.adage-services-alphabet-link-js'));\r\n\r\nalphabetLinks.forEach(link => {\r\n link.addEventListener('click', function (e) {\r\n e.preventDefault();\r\n\r\n let headerHeight = 0;\r\n let position = document.querySelector(link.getAttribute('href')).offsetTop;\r\n\r\n if (window.innerWidth < 960) {\r\n headerHeight = (document.querySelector('.header-top') as HTMLElement).offsetHeight;\r\n }\r\n else {\r\n headerHeight = (document.querySelector('.header-nav') as HTMLElement).offsetHeight;\r\n }\r\n\r\n window.scrollTo({\r\n top: position - headerHeight,\r\n behavior: 'smooth',\r\n });\r\n })\r\n})"],"sourceRoot":""}