{"version":3,"sources":["webpack://[name]/webpack/bootstrap","webpack://[name]/external \"React\"","webpack://[name]/./node_modules/tslib/tslib.es6.js","webpack://[name]/./ts/homepage/components/searchResults/PlaceSearchResults.tsx","webpack://[name]/./ts/homepage/components/searchResults/GenericSearchResults.tsx","webpack://[name]/./ts/homepage/components/searchResults/StopSearchResults.tsx","webpack://[name]/./ts/constants/autocomplete.ts","webpack://[name]/external \"ReactDOM\"","webpack://[name]/./ts/Homepage.tsx","webpack://[name]/./ts/homepage/components/App.tsx","webpack://[name]/./ts/api/LocationApi.ts","webpack://[name]/./ts/api/NearbyApi.ts","webpack://[name]/./ts/homepage/types/SelectedSearchResult.ts","webpack://[name]/./ts/homepage/components/LocationDisplay.tsx","webpack://[name]/./ts/homepage/components/LocationInput.tsx","webpack://[name]/./ts/homepage/components/searchResults/GeoSearchResults.tsx","webpack://[name]/./ts/homepage/components/searchResults/SearchResult.tsx","webpack://[name]/./ts/homepage/components/searchResults/SearchResultsContainer.tsx","webpack://[name]/./ts/homepage/components/favs/App.tsx","webpack://[name]/./ts/homepage/components/favs/FavoriteStop.tsx","webpack://[name]/./ts/homepage/components/favs/TooMany.tsx","webpack://[name]/./ts/api/GenericApi.ts","webpack://[name]/./ts/generic/components/SvgUse.tsx","webpack://[name]/./ts/api/AccountApi.ts","webpack://[name]/./ts/api/AutocompleteApi.ts","webpack://[name]/./ts/generic/components/QueryHighlight.tsx","webpack://[name]/./ts/PlausibleHelpers.ts","webpack://[name]/./ts/constants/events.ts","webpack://[name]/./ts/generic/helpers/Debounce.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","React","extendStatics","b","setPrototypeOf","__proto__","Array","__extends","TypeError","String","__","this","constructor","__assign","assign","arguments","length","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","desc","getOwnPropertyDescriptor","Reflect","decorate","__param","paramIndex","decorator","__esDecorate","ctor","descriptorIn","contextIn","initializers","extraInitializers","accept","f","_","kind","descriptor","done","context","access","addInitializer","push","result","set","init","unshift","__runInitializers","thisArg","useValue","__propKey","x","concat","__setFunctionName","prefix","description","configurable","__metadata","metadataKey","metadataValue","metadata","__awaiter","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","then","__generator","body","y","g","label","sent","trys","ops","verb","iterator","v","op","pop","__createBinding","k","k2","undefined","writable","__exportStar","__values","__read","ar","error","__spread","__spreadArrays","il","a","j","jl","__spreadArray","to","from","pack","slice","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__setModuleDefault","__importStar","mod","__importDefault","default","__classPrivateFieldGet","receiver","state","has","__classPrivateFieldSet","__classPrivateFieldIn","__addDisposableResource","env","async","dispose","asyncDispose","stack","_SuppressedError","SuppressedError","suppressed","message","Error","__disposeResources","fail","hasError","rec","PlaceSearchResults","GenericSearchResults","props","super","secondary","stopLink","toLink","fromLink","id","encodeURIComponent","display","PureComponent","title","resultClass","errorLine1","errorLine2","className","renderResults","results","isArray","map","linkInfo","stopText","getStopText","getStopLink","toText","getToText","getToLink","fromText","getFromText","getFromLink","SearchResultLine","type","highlights","queryHighlight","lineTwo","getLineTwo","ex","trackError","console","role","StopSearchResults","city","toLowerCase","AutocompleteConstants","MinQueryLength","ReactDOM","searchDomElement","document","getElementById","replaceDomElement","searchReactElement","replaceElement","thriveWord","window","mtd","reactDom","render","favsDomElement","favsReactApp","initialStops","favs","gridElementName","status","LocationApi","getStatus","initialState","locationAvailable","LocationStatus","denied","unsupported","query","formAction","selected","selectedType","SelectedType","none","stopResults","placeResults","stopError","placeError","loadingNearby","nearbyStopResults","queryIndex","resultIndex","App","renderLocationInput","currentLocationClickCallback","currentLocationClick","queryChangeCallback","queryChange","text","clearCallback","clearSelected","renderSearchResults","geo","accuracy","loading","searchPage","searchBox","fromCharCode","href","setState","toggleReplaceElement","autocompletePromise","AutocompleteApi","suggestQuery","searchSessionId","searchResult","debouncedQueryLog","getDefaultFormUrl","locationUpdateTimer","setInterval","updateLocation","LOCATION_UPDATE_INTERVAL","page","action","showLoading","location","locationApi","getLocation","alert","latitude","coords","longitude","NearbyApi","getNearby","clearInterval","locationStatusChagned","onKeyPress","event","which","preventDefault","onSubmit","show","debounce","SEARCH_DEBOUCNE_TIME","method","xmlns","version","viewBox","statusChange","updateStatus","_status","enableHighAccuracy","timeout","Infinity","maximumAge","navigator","geolocation","getCurrentPosition","code","PERMISSION_DENIED","POSITION_UNAVAILABLE","unavailable","unknown","lat","lon","GenericApi","getRequest","placeholder","disabled","onClick","Location","inputRef","useRef","hasScrolled","setHasScrolled","useState","charCount","setCharCount","useLayoutEffect","current","focus","getBoundingClientRect","top","scrollY","scroll","behavior","onChange","autoComplete","ref","renderRoute","route","style","color","background","backgroundColor","number","renderResult","stop","distance","routes","servedBy","replace","toLocaleLowerCase","stops","Math","round","renderLink","index","resultType","button","onMouseOver","changeHover","resultClick","clickEvent","wrapperClass","onMouseOut","handleUserLogin","favoritesFromServer","AccountApi","getFavorites","tooMany","hasTooMany","favorites","takeN","MAX_FAVS","gridElement","classList","add","addEventListener","Events","UserAuthEventName","useId","count","toLocaleString","MergeDefaultGet","options","credentials","genericRequest","url","request","Request","response","fetch","json","fireAndForget","postRequest","JSON","stringify","postFormData","dangerouslySetInnerHTML","__html","charAt","cleanId","BASE_ACCOUNT_URL","subscribe","unsubscribe","toggleEmailAlerts","toggleSecondaryEmailAlerts","toggleSmsAlerts","setPhone","phone","generateSmsConfirmationCode","verifyPhone","generateEmailConfirmationCode","verifySecondaryEmail","setSecondaryEmail","email","toggleFavorite","stopId","buildUrl","baseUrl","sessionId","replaced","trim","encode","highlight","elements","highlightPart","noHighlightPart","eventName","eventProps","plausible","warn","errorLevel","UserLogoutEventName","cb","wait","h","args","clearTimeout","setTimeout"],"mappings":"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","file":"homepage.a9c63a9f6be840cfa0c1.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 = 263);\n","module.exports = React;","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","import * as React from 'react';\r\n\r\nimport { IPlaceSearchResult } from '../../../api/types/Autocomplete';\r\n\r\nimport { GenericSearchResults, Props } from './GenericSearchResults';\r\n\r\nexport class PlaceSearchResults extends GenericSearchResults {\r\n\r\n\tpublic constructor(props: Props, context: any) {\r\n\t\tsuper(props, context, 'Places', 'places',\r\n\t\t\t'No Google Places found.',\r\n\t\t\t'We were unable to find any Google Places that match your search, but we were able to find bus stops.');\r\n\t}\r\n\r\n\tprotected getStopText(): string {\r\n\t\treturn 'Find stops nearby';\r\n\t}\r\n\r\n\tprotected getLineTwo(result: IPlaceSearchResult): string {\r\n\t\treturn result.result.secondary;\r\n\t}\r\n\r\n\tprotected getStopLink(result: IPlaceSearchResult): string {\r\n\t\treturn PlaceSearchResults.stopLink(result);\r\n\t}\r\n\r\n\tprotected getToLink(result: IPlaceSearchResult): string {\r\n\t\treturn PlaceSearchResults.toLink(result);\r\n\t}\r\n\r\n\tprotected getFromLink(result: IPlaceSearchResult): string {\r\n\t\treturn PlaceSearchResults.fromLink(result);\r\n\t}\r\n\r\n\tpublic static stopLink: (result: IPlaceSearchResult) => string = (result: IPlaceSearchResult) =>\r\n\t\t`/maps-and-schedules/bus-stops/nearby/${result.result.id}`;\r\n\r\n\tpublic static toLink: (result: IPlaceSearchResult) => string = (result: IPlaceSearchResult) =>\r\n\t\t`maps-and-schedules/plan-trip/destination/place/${result.result.id}?name=${encodeURIComponent(result.result.display)}`;\r\n\r\n\tpublic static fromLink: (result: IPlaceSearchResult) => string = (result: IPlaceSearchResult) =>\r\n\t\t`maps-and-schedules/plan-trip/origin/place/${result.result.id}?name=${encodeURIComponent(result.result.display)}`;\r\n\r\n}\r\n","import * as React from 'react';\r\nimport { PureComponent } from 'react';\r\nimport { SearchResult } from '../../../api/types/Autocomplete';\r\nimport { ILinkInfo } from '../../types/ILinkInfo';\r\nimport { SearchResultLine } from './SearchResult';\r\nimport { trackError } from '../../../PlausibleHelpers';\r\nexport interface Props {\r\n\tresults: T[];\r\n\ttype: 'place' | 'stop';\r\n\terror: boolean;\r\n}\r\n\r\nexport abstract class GenericSearchResults extends PureComponent> {\r\n\r\n\tprivate readonly title: string;\r\n\tprivate readonly resultClass: string;\r\n\tprivate readonly errorLine1: string;\r\n\tprivate readonly errorLine2: string;\r\n\r\n\tprotected constructor(props: Props, context: any,\r\n\t\ttitle: string, resultClass: string = 'results',\r\n\t\terrorLine1: string, errorLine2: string) {\r\n\t\tsuper(props, context);\r\n\t\tthis.title = title;\r\n\t\tthis.resultClass = resultClass;\r\n\t\tthis.errorLine1 = errorLine1;\r\n\t\tthis.errorLine2 = errorLine2;\r\n\t}\r\n\r\n\tpublic render(): JSX.Element {\r\n\t\treturn
\r\n\t\t\t

{this.title}

\r\n\t\t\t{this.renderResults()}\r\n\t\t
;\r\n\t}\r\n\r\n\tprivate renderResults(): JSX.Element {\r\n\t\tif (this.props.error || !(this.props.results && Array.isArray(this.props.results))) {\r\n\t\t\treturn
\r\n\t\t\t\t

An error occoured loading search results.

\r\n\t\t\t
;\r\n\t\t} else if (this.props.results.length === 0) {\r\n\t\t\treturn
\r\n\t\t\t\t

{this.errorLine1}

\r\n\t\t\t\t

{this.errorLine2}

\r\n\t\t\t
;\r\n\t\t}\r\n\r\n\t\tlet results: JSX.Element[] = [];\r\n\t\ttry {\r\n\t\t\tresults = this.props.results.map(\r\n\t\t\t\t(r: T) => {\r\n\t\t\t\t\tconst linkInfo: ILinkInfo = {\r\n\t\t\t\t\t\tstopText: this.getStopText(),\r\n\t\t\t\t\t\tstopLink: this.getStopLink(r),\r\n\t\t\t\t\t\ttoText: this.getToText(),\r\n\t\t\t\t\t\ttoLink: this.getToLink(r),\r\n\t\t\t\t\t\tfromText: this.getFromText(),\r\n\t\t\t\t\t\tfromLink: this.getFromLink(r)\r\n\t\t\t\t\t};\r\n\t\t\t\t\treturn ;\r\n\t\t\t\t});\r\n\t\t} catch (ex) {\r\n\t\t\ttrackError('SearchResultsError', 'location-search');\r\n\t\t\tconsole.error('can\\'t map results', this.props);\r\n\t\t\tconsole.error('e', ex);\r\n\t\t}\r\n\r\n\t\treturn
\r\n\t\t\t{results}\r\n\t\t
;\r\n\t};\r\n\r\n\r\n\tprotected getStopText(): string {\r\n\t\treturn 'More about this stop';\r\n\t}\r\n\r\n\tprotected getFromText(): string {\r\n\t\treturn 'Travel from here';\r\n\t}\r\n\r\n\tprotected getToText(): string {\r\n\t\treturn 'Travel to here';\r\n\t}\r\n\r\n\tprotected abstract getLineTwo(result: T): string;\r\n\tprotected abstract getStopLink(result: T): string;\r\n\tprotected abstract getToLink(result: T): string;\r\n\tprotected abstract getFromLink(result: T): string;\r\n\r\n}\r\n","import * as React from 'react';\r\n\r\nimport { IStopSearchResult } from '../../../api/types/Autocomplete';\r\n\r\nimport { GenericSearchResults, Props } from './GenericSearchResults';\r\n\r\nexport class StopSearchResults extends GenericSearchResults {\r\n\tpublic constructor(props: Props, context: any) {\r\n\t\tsuper({ ...props }, context, 'Bus stops', 'results',\r\n\t\t\t'No bus stops found.',\r\n\t\t\t'We were unable to find any bus stops that match your search, but we were able to find some Google Places.');\r\n\t}\r\n\r\n\tprotected getLineTwo(result: IStopSearchResult): string {\r\n\t\treturn result.result.city;\r\n\t}\r\n\r\n\tprotected getStopLink(result: IStopSearchResult): string {\r\n\t\treturn StopSearchResults.stopLink(result);\r\n\t}\r\n\tprotected getToLink(result: IStopSearchResult): string {\r\n\t\treturn StopSearchResults.toLink(result);\r\n\t}\r\n\tprotected getFromLink(result: IStopSearchResult): string {\r\n\t\treturn StopSearchResults.fromLink(result);\r\n\t}\r\n\r\n\tpublic static stopLink: (result: IStopSearchResult) => string = (result: IStopSearchResult) =>\r\n\t\t`/maps-and-schedules/bus-stops/info/${result.result.id.toLowerCase()}/`;\r\n\r\n\tpublic static toLink: (result: IStopSearchResult) => string = (result: IStopSearchResult) =>\r\n\t\t`/maps-and-schedules/plan-trip/destination/stop/${result.result.id.toLowerCase()}`;\r\n\r\n\tpublic static fromLink: (result: IStopSearchResult) => string = (result: IStopSearchResult) =>\r\n\t\t`/maps-and-schedules/plan-trip/origin/stop/${result.result.id.toLowerCase()}`;\r\n\r\n}\r\n","/** Constants that should be shared across all autocomplete functionality. */\r\nexport module AutocompleteConstants {\r\n\r\n\t/** The minimum query length before getting autocomplete results. */\r\n\texport const MinQueryLength: number = 3;\r\n}\r\n","module.exports = ReactDOM;","import * as React from 'react';\r\nimport * as reactDom from 'react-dom';\r\nimport { App as LocationApp } from './homepage/components/App';\r\nimport { App as Favs } from './homepage/components/favs/App';\r\n\r\n(() => {\r\n\t//SEARCH\r\n\tconst searchDomElement = document.getElementById('search-app');\r\n\tconst replaceDomElement = document.getElementById('homepage-content');\r\n\tif (searchDomElement && replaceDomElement) {\r\n\t\tconst searchReactElement = (\r\n\t\t\t\r\n\t\t);\r\n\t\treactDom.render(searchReactElement, searchDomElement);\r\n\t}\r\n\r\n\t// FAVS\r\n\tconst favsDomElement = document.getElementById('favs-app');\r\n\tif (favsDomElement) {\r\n\t\tconst favsReactApp = (\r\n\t\t\t\r\n\t\t);\r\n\t\treactDom.render(favsReactApp, favsDomElement);\r\n\t}\r\n})();\r\n","import * as React from 'react';\r\nimport { FormEvent, KeyboardEvent, PureComponent } from 'react';\r\nimport { AutocompleteApi } from '../../api/AutocompleteApi';\r\nimport { LocationApi, LocationStatus } from '../../api/LocationApi';\r\nimport { NearbyApi } from '../../api/NearbyApi';\r\nimport { IPlaceSearchResult, IStopSearchResult, ISuggestResults } from '../../api/types/Autocomplete';\r\nimport { INearbyStop } from '../../api/types/Nearby';\r\nimport { AutocompleteConstants } from '../../constants/autocomplete';\r\nimport { debounce } from '../../generic/helpers/Debounce';\r\nimport { ISelectedGeoSearchResult, SelectedSearchResult, SelectedType } from '../types/SelectedSearchResult';\r\nimport LocationDisplay from './LocationDisplay';\r\nimport LocationInput from './LocationInput';\r\nimport GeoSearchResults from './searchResults/GeoSearchResults';\r\nimport { PlaceSearchResults } from './searchResults/PlaceSearchResults';\r\nimport SearchResultsContainer from './searchResults/SearchResultsContainer';\r\nimport { StopSearchResults } from './searchResults/StopSearchResults';\r\nimport trackEvent, { trackError } from '../../PlausibleHelpers';\r\n\r\ninterface Props {\r\n\treplaceElement: HTMLElement;\r\n\tthriveWord: string;\r\n}\r\n\r\nconst status: LocationStatus = LocationApi.getStatus();\r\nconst locationAvailable: boolean = status !== LocationStatus.denied && status !== LocationStatus.unsupported;\r\nconst initialState: {\r\n\tlocationAvailable: boolean;\r\n\tquery: string;\r\n\tselected: SelectedSearchResult;\r\n\tselectedType: SelectedType;\r\n\tstopResults: IStopSearchResult[];\r\n\tplaceResults: IPlaceSearchResult[];\r\n\tstopError: boolean;\r\n\tplaceError: boolean;\r\n\tloadingNearby: boolean,\r\n\tnearbyStopResults: INearbyStop[];\r\n\tformAction: string;\r\n\tqueryIndex: number;\r\n\tresultIndex: number;\r\n} = {\r\n\tlocationAvailable,\r\n\tquery: '',\r\n\tformAction: '',\r\n\tselected: null,\r\n\tselectedType: SelectedType.none,\r\n\tstopResults: [],\r\n\tplaceResults: [],\r\n\tstopError: false,\r\n\tplaceError: false,\r\n\tloadingNearby: false,\r\n\tnearbyStopResults: [],\r\n\tqueryIndex: 0,\r\n\tresultIndex: -1\r\n};\r\ntype State = Readonly;\r\n\r\nexport class App extends PureComponent {\r\n\r\n\tprivate static readonly SEARCH_DEBOUCNE_TIME: number = 750;\r\n\tprivate static readonly LOCATION_UPDATE_INTERVAL: number = 60000; // 1 minute\r\n\r\n\tprivate locationUpdateTimer?: number;\r\n\tprivate readonly locationApi: LocationApi;\r\n\r\n\tconstructor(props: Props, context: any) {\r\n\t\tsuper(props, context);\r\n\t\tthis.locationApi = new LocationApi(this.locationStatusChagned);\r\n\t\tthis.state = { ...initialState };\r\n\t}\r\n\r\n\t/**\r\n\t * Render a selected search result.\r\n\t * @returns { JSX.Element }\r\n\t */\r\n\tprivate renderLocationInput: () => JSX.Element = () => {\r\n\t\tif (this.state.selected == null) {\r\n\t\t\treturn ;\r\n\t\t}\r\n\t\treturn ;\r\n\t};\r\n\r\n\t/**\r\n\t * Render search results for the query or null if there is already a result.\r\n\t * @returns { JSX.Element }\r\n\t */\r\n\tprivate renderSearchResults: () => JSX.Element = () => {\r\n\r\n\t\tif (this.state.selectedType === SelectedType.geo) {\r\n\t\t\tconst { accuracy } = (this.state.selected as ISelectedGeoSearchResult);\r\n\t\t\treturn ;\r\n\t\t}\r\n\r\n\t\tif (this.state.selected != null || this.state.query == null || this.state.query.length < AutocompleteConstants.MinQueryLength) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tif ((this.state.placeResults == null || this.state.placeResults.length === 0 || this.state.placeError) &&\r\n\t\t\t(this.state.stopResults == null || this.state.stopResults.length === 0 || this.state.stopError)) {\r\n\t\t\treturn
\r\n\t\t\t\t

\r\n\t\t\t\t\t{String.fromCharCode(57346)}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tNo bus stops or Google Places found.\r\n\t\t\t\t\t\tPlease try your query again or call us at 217.384.8188.\r\n\t\t\t\t\t\r\n\t\t\t\t

\r\n\t\t\t
;\r\n\t\t}\r\n\r\n\t\treturn ;\r\n\t};\r\n\r\n\t/**\r\n\t * Render the app.\r\n\t * @returns { JSX.Element }\r\n\t */\r\n\tpublic render(): JSX.Element {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t

Helping {this.props.thriveWord} thrive

\r\n\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\tEnter an address, stop, or place like\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t45 E. University, Green and Goodwin, or Market Place.\r\n\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t{this.renderLocationInput()}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t{this.renderSearchResults()}\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n\r\n\t// CALLBACKS\r\n\r\n\t/**\r\n\t * Update the app based on the query being changed.\r\n\t * Will get search results from Google Places and MTD Stops.\r\n\t * Will timeout if either search takes longer than the the specified timeout.\r\n\t * @param query The query to update.\r\n\t * @returns { Promise }\r\n\t */\r\n\tprivate queryChange: (query: string) => Promise = async (query: string) => {\r\n\r\n\t\tconst queryIndex: number = this.state.queryIndex + 1;\r\n\r\n\t\tif (query == null || query.length < AutocompleteConstants.MinQueryLength) {\r\n\t\t\t// don't search or show results\r\n\t\t\tthis.setState({\r\n\t\t\t\t...this.state,\r\n\t\t\t\tquery,\r\n\t\t\t\tqueryIndex,\r\n\t\t\t\tformAction: '',\r\n\t\t\t\tplaceResults: [],\r\n\t\t\t\tstopResults: [],\r\n\t\t\t\tselected: null\r\n\t\t\t});\r\n\r\n\t\t\tthis.toggleReplaceElement(true);\r\n\r\n\t\t} else {\r\n\t\t\t// update the query before loading search results\r\n\t\t\t// we want typing to feel instant\r\n\t\t\t// we don't want a race condition with setting the query state\r\n\t\t\t// and updating the search results\r\n\r\n\t\t\t// kick off api call, but don't wait for it\r\n\t\t\tconst autocompletePromise: Promise = AutocompleteApi.suggestQuery(window.mtd.searchSessionId, queryIndex, query);\r\n\r\n\t\t\tthis.setState({ ...this.state, query, queryIndex }, async () => {\r\n\r\n\t\t\t\t// load search results\r\n\t\t\t\tconst searchResult: ISuggestResults = await autocompletePromise;\r\n\r\n\t\t\t\tconst shouldUpdate: boolean = searchResult.queryIndex >= this.state.resultIndex;\r\n\r\n\t\t\t\tif (shouldUpdate) {\r\n\t\t\t\t\tthis.debouncedQueryLog();\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t...this.state,\r\n\t\t\t\t\t\tresultIndex: searchResult.queryIndex,\r\n\t\t\t\t\t\tstopResults: searchResult.stopResults,\r\n\t\t\t\t\t\tplaceResults: searchResult.placeResults,\r\n\t\t\t\t\t\tstopError: searchResult.stopError,\r\n\t\t\t\t\t\tplaceError: searchResult.placeError,\r\n\t\t\t\t\t\tformAction: App.getDefaultFormUrl(searchResult.stopResults, searchResult.placeResults)\r\n\t\t\t\t\t}, () => this.toggleReplaceElement(false));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Handle the get current location being clicked.\r\n\t * @returns { void }\r\n\t */\r\n\tprivate currentLocationClick: () => Promise = async () => {\r\n\t\t// update the location on an interval\r\n\t\tthis.locationUpdateTimer = window.setInterval(this.updateLocation, App.LOCATION_UPDATE_INTERVAL);\r\n\t\tthis.updateLocation(true);\r\n\r\n\t\ttrackEvent('Nearby Stops Click', {\r\n\t\t\tpage: 'homepage',\r\n\t\t\taction: 'On'\r\n\t\t});\r\n\t};\r\n\r\n\tprivate updateLocation: (showLoading: boolean) => Promise = async (showLoading: boolean = false) => {\r\n\t\tlet location: Position;\r\n\t\ttry {\r\n\t\t\tlocation = await this.locationApi.getLocation(true);\r\n\t\t} catch (e) {\r\n\t\t\tconst positionError: PositionError = e as PositionError;\r\n\t\t\talert(`Can't get position: ${positionError.message}`);\r\n\t\t\ttrackError('UpdateLocationError', 'homepage', {}, 'info');\r\n\t\t\tthrow e;\r\n\t\t}\r\n\r\n\t\tconst selected: ISelectedGeoSearchResult = {\r\n\t\t\tlatitude: location.coords.latitude,\r\n\t\t\tlongitude: location.coords.longitude,\r\n\t\t\taccuracy: location.coords.accuracy,\r\n\t\t\ttext: 'Using your device location'\r\n\t\t};\r\n\r\n\t\tthis.setState({\r\n\t\t\t...this.state,\r\n\t\t\tselected,\r\n\t\t\tselectedType: SelectedType.geo,\r\n\t\t\tloadingNearby: showLoading\r\n\t\t}, async () => {\r\n\t\t\tthis.toggleReplaceElement(false);\r\n\t\t\tconst nearbyStopResults: INearbyStop[] = await NearbyApi.getNearby(selected.latitude, selected.longitude);\r\n\t\t\tthis.setState({ ...this.state, nearbyStopResults, loadingNearby: false });\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Clear the selected search result.\r\n\t * @returns { void }\r\n\t */\r\n\tprivate clearSelected: () => void = () => {\r\n\t\tif (this.locationUpdateTimer) {\r\n\t\t\twindow.clearInterval(this.locationUpdateTimer);\r\n\t\t\tthis.locationUpdateTimer = null;\r\n\t\t\ttrackEvent('NearbyStopsClick', {\r\n\t\t\t\tpage: 'homepage',\r\n\t\t\t\taction: 'Off'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.setState({\r\n\t\t\t...this.state,\r\n\t\t\tselected: null,\r\n\t\t\tselectedType: SelectedType.none,\r\n\t\t\tnearbyStopResults: [],\r\n\t\t\tquery: ''\r\n\t\t}, () => this.toggleReplaceElement(true));\r\n\t};\r\n\r\n\t/**\r\n\t * Handle the status of the location API changing.\r\n\t * @param status The new status.\r\n\t * @returns { Promise }\r\n\t */\r\n\tprivate locationStatusChagned: (status: LocationStatus) => Promise = (status: LocationStatus) => {\r\n\t\treturn new Promise((resolve: () => void) => {\r\n\t\t\tconst locationAvailable: boolean = (status !== LocationStatus.denied) && (status !== LocationStatus.unsupported);\r\n\t\t\tthis.setState({ ...this.state, locationAvailable }, () => {\r\n\t\t\t\tresolve();\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tprivate static getDefaultFormUrl: (stopResults: IStopSearchResult[], placeResults: IPlaceSearchResult[]) => string =\r\n\t\t(stopResults: IStopSearchResult[], placeResults: IPlaceSearchResult[]) => {\r\n\r\n\t\t\tif (stopResults != null && stopResults.length > 0) {\r\n\t\t\t\tconst result: IStopSearchResult = stopResults[0];\r\n\t\t\t\treturn StopSearchResults.stopLink(result);\r\n\t\t\t}\r\n\t\t\tif (placeResults != null && placeResults.length > 0) {\r\n\t\t\t\tconst result: IPlaceSearchResult = placeResults[0];\r\n\t\t\t\treturn PlaceSearchResults.stopLink(result);\r\n\t\t\t}\r\n\t\t\treturn '/';\r\n\t\t};\r\n\r\n\tprivate onKeyPress: (event: KeyboardEvent) => void = (event: KeyboardEvent) => {\r\n\t\tif (event.which === 13) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tif (this.state.formAction != null && this.state.formAction.length > 0 && this.state.formAction !== '/') {\r\n\t\t\t\tdocument.location.href = this.state.formAction;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tprivate onSubmit: (event: FormEvent) => void = (event: FormEvent) => {\r\n\t\tevent.preventDefault();\r\n\t\tif (this.state.formAction != null && this.state.formAction.length > 0 && this.state.formAction !== '/') {\r\n\t\t\tdocument.location.href = this.state.formAction;\r\n\t\t}\r\n\t};\r\n\r\n\tprivate toggleReplaceElement: (show: boolean) => void = (show: boolean) =>\r\n\t\tthis.props.replaceElement.className = show ? 'show' : 'hide';\r\n\r\n\tprivate debouncedQueryLog: () => void = debounce(() => {\r\n\t\tif (this.state.query && this.state.query.length >= AutocompleteConstants.MinQueryLength) {\r\n\t\t\ttrackEvent('Stop Search', {\r\n\t\t\t\tquery: this.state.query,\r\n\t\t\t\tpage: 'homepage'\r\n\t\t\t});\r\n\t\t}\r\n\t}, App.SEARCH_DEBOUCNE_TIME);\r\n\r\n}\r\n","export enum LocationStatus {\r\n\tunknown,\r\n\tunsupported,\r\n\tdenied,\r\n\tunavailable\r\n}\r\n\r\nexport class LocationApi {\r\n\tprivate _status: LocationStatus;\r\n\r\n\t/**\r\n\t * The current status of the location API.\r\n\t * @returns { LocationStatus } \r\n\t */\r\n\tpublic get status(): LocationStatus {\r\n\t\treturn this._status;\r\n\t}\r\n\r\n\tprivate readonly statusChange: (status: LocationStatus) => Promise;\r\n\r\n\t/**\r\n\t * Create a new LocationApi\r\n\t * @param statusChange a callback function that should be executed if the status changes.\r\n\t */\r\n\tconstructor(statusChange: (status: LocationStatus) => Promise = null) {\r\n\t\tthis._status = LocationApi.getStatus();\r\n\t\tthis.statusChange = statusChange;\r\n\t}\r\n\r\n\t/**\r\n\t * Get the devices current position\r\n\t * @param enableHighAccuracy If high accuracy location should be requested.\r\n\t * @param timeout The maximum time to wait for a location\r\n\t * @param maximumAge How old a location can be from the cache.\r\n\t */\r\n\tpublic async getLocation(enableHighAccuracy: boolean = true, timeout: number = Infinity, maximumAge: number = 60000): Promise {\r\n\r\n\t\treturn new Promise((resolve: (position: Position) => void, reject: (reason: PositionError) => void) => {\r\n\r\n\t\t\tconst success: PositionCallback = (p: Position) => resolve(p);\r\n\r\n\t\t\tconst error: PositionErrorCallback = (e: PositionError) => {\r\n\t\t\t\t// check error states\r\n\t\t\t\tif (e.code === e.PERMISSION_DENIED) {\r\n\t\t\t\t\tthis.updateStatus(LocationStatus.denied);\r\n\t\t\t\t} else if (e.code === e.POSITION_UNAVAILABLE) {\r\n\t\t\t\t\tthis.updateStatus(LocationStatus.unavailable);\r\n\t\t\t\t}\r\n\t\t\t\treject(e);\r\n\t\t\t};\r\n\r\n\t\t\t// get the position\r\n\t\t\tnavigator\r\n\t\t\t\t.geolocation\r\n\t\t\t\t.getCurrentPosition(success, error, { enableHighAccuracy, timeout, maximumAge });\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Update the location status and call the change event if available.\r\n\t * @param status The new status.\r\n\t * @returns { void } \r\n\t */\r\n\tprivate updateStatus: (status: LocationStatus) => void = (status: LocationStatus) => {\r\n\t\tif (this.status !== status) {\r\n\t\t\tthis._status = status;\r\n\t\t}\r\n\t\tif (this.statusChange) {\r\n\t\t\tthis.statusChange(status);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic static getStatus: () => LocationStatus = () => {\r\n\t\tif (!('geolocation' in navigator)) {\r\n\t\t\treturn LocationStatus.unsupported;\r\n\t\t}\r\n\t\treturn LocationStatus.unknown;\r\n\t}\r\n\r\n}\r\n","import { GenericApi } from './GenericApi';\r\nimport { INearbyStop } from './types/Nearby';\r\n\r\nexport module NearbyApi {\r\n\tconst BASE_URL: string = '/umbraco/api/nearby';\r\n\r\n\texport async function getNearby(lat: number, lon: number): Promise {\r\n\t\treturn await GenericApi.getRequest(`${BASE_URL}/GetNearbyStops/?latitude=${lat}&longitude=${lon}`);\r\n\t}\r\n}\r\n","export enum SelectedType {\r\n\tnone,\r\n\tstop,\r\n\tplace,\r\n\tgeo\r\n}\r\n\r\ninterface ISelectedSearchResult {\r\n\ttext: string;\r\n}\r\n\r\nexport interface ISelectedStopSearchResult extends ISelectedSearchResult {\r\n\tid: string;\r\n}\r\n\r\nexport interface ISelectedPlaceSearchResult extends ISelectedSearchResult {\r\n\tid: string;\r\n\tlatitude?: number;\r\n\tlongitude?: number;\r\n\tisOpen?: boolean;\r\n}\r\n\r\nexport interface ISelectedGeoSearchResult extends ISelectedSearchResult {\r\n\tlatitude: number;\r\n\tlongitude: number;\r\n\taccuracy: number;\r\n}\r\n\r\nexport type SelectedSearchResult = ISelectedStopSearchResult | ISelectedPlaceSearchResult | ISelectedGeoSearchResult;","import * as React from 'react';\r\nimport { SFC } from 'react';\r\n\r\nconst BUTTON_LABEL: string = 'Clear GPS location';\r\n\r\ninterface Props {\r\n\tvalue: string;\r\n\tclearCallback: () => void;\r\n}\r\n\r\nconst LocationDisplay: SFC = (props: Props) =>\r\n(
\r\n\t\r\n\t\r\n\t\t{String.fromCharCode(57543)}\r\n\t\tNearby\r\n\t\r\n
);\r\n\r\nexport default LocationDisplay;\r\n","import React, { FC, ChangeEvent, useEffect, useState, useRef, useLayoutEffect } from 'react';\r\nimport { AutocompleteConstants } from '../../constants/autocomplete';\r\n\r\ninterface Props {\r\n\tlocationAvailable: boolean;\r\n\tqueryChangeCallback: (query: string) => Promise;\r\n\tcurrentLocationClickCallback: () => void;\r\n\tvalue: string;\r\n}\r\n\r\ntype LocationProps = Pick;\r\n\r\nconst LOCATION_BUTTON_LABEL = 'Use GPS Location';\r\n\r\nconst Location: FC = (props: LocationProps) => {\r\n\tif (props.locationAvailable) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{String.fromCharCode(57544)}\r\n\t\t\t\tNearby\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\treturn null;\r\n}\r\n\r\nconst LocationInput: FC = (props: Props) => {\r\n\tconst inputRef = useRef(null);\r\n\tconst [hasScrolled, setHasScrolled] = useState(false);\r\n\tconst [charCount, setCharCount] = useState(0);\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\tif (inputRef && inputRef.current) {\r\n\t\t\tinputRef.current.focus();\r\n\t\t}\r\n\t}, [inputRef]);\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\tif (!hasScrolled && inputRef.current && charCount >= AutocompleteConstants.MinQueryLength) {\r\n\r\n\t\t\tconst y = inputRef.current.getBoundingClientRect().top + window.scrollY - 6;\r\n\t\t\twindow.scroll({\r\n\t\t\t\ttop: y,\r\n\t\t\t\tbehavior: 'smooth'\r\n\t\t\t});\r\n\r\n\t\t\tsetHasScrolled(true);\r\n\t\t}\r\n\t}, [inputRef, charCount]);\r\n\r\n\tfunction onChange(event: ChangeEvent): void {\r\n\t\tprops.queryChangeCallback(event.target.value);\r\n\t\tsetCharCount(event.target.value.length);\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t 2 ? { \"aria-owns\": \"stopwatch-search-results\" } : {}) }\r\n\t\t\t\taria-autocomplete=\"list\"\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default LocationInput;\r\n","import * as React from 'react';\r\nimport { FC, Fragment } from 'react';\r\n\r\nimport { INearbyStop, INearbyRouteServedBy } from '../../../api/types/Nearby';\r\n\r\ninterface Props {\r\n\tresults: INearbyStop[];\r\n\taccuracy: number;\r\n\tloading: boolean;\r\n}\r\n\r\nconst renderRoute: (route: INearbyRouteServedBy) => JSX.Element = (route: INearbyRouteServedBy) => {\r\n\tconst style: { [key: string]: string } = {\r\n\t\tcolor: `#${route.color}`,\r\n\t\tbackground: `#${route.backgroundColor}`\r\n\t};\r\n\treturn
  • {route.number} {route.name}\r\n\t
  • ;\r\n};\r\n\r\n\r\nconst renderServedBy: (routes: INearbyRouteServedBy[]) => JSX.Element = (routes: INearbyRouteServedBy[]) =>
      {routes.map(renderRoute)}
    ;\r\n\r\nconst renderResult: (stop: INearbyStop) => JSX.Element = (stop: INearbyStop) =>
    \r\n\t

    {stop.name}

    \r\n\t

    {stop.distance} meters

    \r\n\t{renderServedBy(stop.servedBy)}\r\n\t
    \r\n\t\tDirections to stop\r\n\t
    \r\n\t
    \r\n\t\tMore about this stop\r\n\t
    \r\n
    ;\r\n\r\nconst renderResults: (stops: INearbyStop[], accuracy: number) => JSX.Element =\r\n\t(stops: INearbyStop[], accuracy: number) =>
    \r\n\t\t

    Nearby Stops

    \r\n\t\t
    \r\n\t\t\t{stops.map(renderResult)}\r\n\t\t
    \r\n\t\t

    Location Accuracy {Math.round(accuracy)} meters

    \r\n\t
    ;\r\n\r\nconst renderLoading: () => JSX.Element = () =>

    Loading...

    \r\n\r\nconst GeoSearchResult: FC = (props: Props) =>
    \r\n\t{props.loading ? renderLoading() : renderResults(props.results, props.accuracy)}\r\n
    ;\r\n\r\nexport default GeoSearchResult;\r\n\r\n//'bus-stop-info' | 'plan-trip-to' | 'plan-trip-from'\r\n","import * as React from 'react';\r\nimport { PureComponent, MouseEvent } from 'react';\r\n\r\nimport { IQueryHighlight } from '../../../api/types/Autocomplete';\r\nimport { ILinkInfo } from '../../types/ILinkInfo';\r\n\r\nimport QueryHighlight from '../../../generic/components/QueryHighlight';\r\n\r\ninterface Props {\r\n\tid: string;\r\n\thighlights: IQueryHighlight[];\r\n\tlineTwo: string;\r\n\tlinkInfo: ILinkInfo;\r\n\ttype: 'place' | 'stop'\r\n}\r\n\r\nconst initialState: { selected: number } = { selected: 0 };\r\ntype State = Readonly;\r\n\r\nexport class SearchResultLine extends PureComponent {\r\n\tconstructor(props: Props, context: any) {\r\n\t\tsuper(props, context);\r\n\t\tthis.state = { ...initialState };\r\n\t}\r\n\r\n\tpublic render(): JSX.Element {\r\n\t\treturn \r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t
    {this.props.lineTwo}
    \r\n\t\t\t
    \r\n\t\t\t
    this.setState({ ...this.state, selected: 0 })}>\r\n\t\t\t\t
    \r\n\t\t\t\t\t{this.renderLink(this.props.linkInfo.fromLink, this.props.linkInfo.fromText, 0, 'plan-trip-from', this.props.type)}\r\n\t\t\t\t\t{this.renderLink(this.props.linkInfo.toLink, this.props.linkInfo.toText, 1, 'plan-trip-to', this.props.type)}\r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t{this.renderLink(this.props.linkInfo.stopLink, this.props.linkInfo.stopText, 2, 'bus-stop-info', this.props.type, true)}\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t;\r\n\t}\r\n\r\n\tprivate renderLink: (href: string, text: string, index: number, action: 'bus-stop-info' | 'plan-trip-to' | 'plan-trip-from', resultType: 'place' | 'stop', button?: boolean) =>\r\n\t\tJSX.Element = (href: string, text: string, index: number, action: 'bus-stop-info' | 'plan-trip-to' | 'plan-trip-from', resultType: 'place' | 'stop', button: boolean = false) => {\r\n\t\tconst selected: boolean = index === this.state.selected;\r\n\t\treturn this.changeHover(index)}\r\n\t\t>{text};\r\n\t}\r\n\r\n\tprivate resultClick: (clickEvent: MouseEvent) => void = (clickEvent: MouseEvent) => {\r\n\t\tclickEvent.preventDefault();\r\n\r\n\t\t// if they click an actual link, go to that link\r\n\t\t// if they click somewhere else in the box, go to the stoplink\r\n\t\tconst a: HTMLAnchorElement = clickEvent.target as HTMLAnchorElement;\r\n\t\tif (a != null && a.href != null && a.href.length > 0) {\r\n\t\t\tdocument.location.href = a.href;\r\n\t\t} else {\r\n\t\t\tdocument.location.href = this.props.linkInfo.stopLink;\r\n\t\t}\r\n\t};\r\n\r\n\tprivate changeHover: (index: number) => void = (index: number) => {\r\n\t\tif (this.state.selected !== index) {\r\n\t\t\tthis.setState({ ...this.state, selected: index });\r\n\t\t}\r\n\t};\r\n}\r\n\r\n","import * as React from 'react';\r\nimport { FC } from 'react';\r\n\r\nimport { IPlaceSearchResult, IStopSearchResult } from '../../../api/types/Autocomplete';\r\n\r\nimport { StopSearchResults } from './StopSearchResults';\r\nimport { PlaceSearchResults } from './PlaceSearchResults';\r\n\r\ninterface Props {\r\n\tquery: string;\r\n\tstopResults: IStopSearchResult[];\r\n\tstopError: boolean;\r\n\tplaceResults: IPlaceSearchResult[];\r\n\tplaceError: boolean;\r\n\tsearchPage: 'homepage' | 'trip-planner';\r\n\tsearchBox: 'from' | 'to' | 'homepage';\r\n}\r\n\r\nconst SearchResultsContainer: FC = (props: Props) => {\r\n\tif (props.query == null || props.query.length === 0) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn
    0 ? 'stop-first' : 'place-first'}`} aria-live=\"polite\" aria-atomic=\"true\" id=\"stopwatch-search-results\">\r\n\t\t\r\n\t\t\r\n\t
    ;\r\n};\r\n\r\nexport default SearchResultsContainer;\r\n","import * as React from 'react';\r\nimport { PureComponent } from 'react';\r\n\r\nimport { Events } from '../../../constants/events';\r\n\r\nimport { AccountApi } from '../../../api/AccountApi';\r\n\r\nimport { IFavoriteStop } from '../../../api/types/Account';\r\n\r\nimport FavoriteStop from './FavoriteStop';\r\nimport TooMany from './TooMany';\r\nimport SvgUse from '../../../generic/components/SvgUse';\r\n\r\ninterface Props {\r\n\tinitialStops: IFavoriteStop[];\r\n\tgridElementName: string;\r\n}\r\n\r\ninterface PropState {\r\n\tfavorites: IFavoriteStop[];\r\n\ttooMany: boolean;\r\n}\r\n\r\ntype State = Readonly;\r\n\r\nexport class App extends PureComponent {\r\n\r\n\tprivate readonly gridElement: HTMLElement;\r\n\r\n\tprivate static readonly MAX_FAVS: number = 20;\r\n\r\n\tconstructor(props: Props, context: any) {\r\n\t\tsuper(props, context);\r\n\r\n\t\tconst favorites: IFavoriteStop[] = this.takeN(props.initialStops, App.MAX_FAVS);\r\n\t\tconst tooMany: boolean = this.hasTooMany(props.initialStops);\r\n\r\n\t\tthis.state = {\r\n\t\t\tfavorites,\r\n\t\t\ttooMany\r\n\t\t};\r\n\r\n\t\tthis.gridElement = document.getElementById(props.gridElementName);\r\n\t\twindow.addEventListener(Events.UserAuthEventName, this.handleUserLogin);\r\n\t}\r\n\r\n\tpublic render(): JSX.Element[] {\r\n\t\tif (this.state.favorites == null || this.state.favorites.length === 0) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn [\r\n\t\t\t

    \r\n\t\t\t\tFavorite Stops.\r\n\t\t\t\t\r\n\t\t\t

    ,\r\n\t\t\t
    \r\n\t\t\t\t{this\r\n\t\t\t\t\t.state\r\n\t\t\t\t\t.favorites\r\n\t\t\t\t\t.map((f: IFavoriteStop) => )}\r\n\t\t\t
    ,\r\n\t\t\t\r\n\t\t];\r\n\t}\r\n\r\n\tprivate handleUserLogin: () => Promise = async () => {\r\n\t\tconst favoritesFromServer: IFavoriteStop[] = await AccountApi.getFavorites();\r\n\r\n\t\tconst tooMany: boolean = this.hasTooMany(favoritesFromServer);\r\n\t\tconst favorites: IFavoriteStop[] = this.takeN(favoritesFromServer, App.MAX_FAVS);\r\n\r\n\t\tthis.gridElement.classList.add('has-favorites');\r\n\t\tthis.setState({ ...this.state, favorites, tooMany });\r\n\t}\r\n\r\n\tprivate hasTooMany: (favorites: IFavoriteStop[]) => boolean = (favorites: IFavoriteStop[]) => {\r\n\t\tif (favorites != null) {\r\n\t\t\treturn favorites.length > App.MAX_FAVS;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate takeN: (favorites: IFavoriteStop[], n: number) => IFavoriteStop[] = (favorites: IFavoriteStop[], n: number) => {\r\n\t\tif (favorites != null && favorites.length >= n) {\r\n\t\t\treturn favorites.slice(0, n);\r\n\t\t}\r\n\t\treturn favorites;\r\n\t}\r\n}\r\n","import React, { FC } from 'react';\r\nimport { IFavoriteStop } from '../../../api/types/Account';\r\n\r\ninterface Props extends IFavoriteStop {}\r\n\r\nconst FavoriteStop: FC = (props: Props) => (\r\n\t
    \r\n\t\t

    {props.name}

    \r\n\t\t

    {props.city}

    \r\n\t\tMore about this stop\r\n\t
    \r\n);\r\n\r\nexport default FavoriteStop;\r\n","import * as React from 'react';\r\nimport { SFC } from 'react';\r\n\r\n\r\ninterface Props {\r\n\tshow: boolean;\r\n\tcount: string;\r\n}\r\n\r\nconst TooMany: SFC = (props: Props) => {\r\n\tif (props.show) {\r\n\t\treturn

    Where are the rest of my favorites? Only {props.count} favorites can be shown on the homepage. Try unfavoriting a few stops to see more.

    ;\r\n\t}\r\n\treturn null;\r\n};\r\n\r\nexport default TooMany;\r\n","export module GenericApi {\r\n\r\n\tconst MergeDefaultGet: (options: RequestInit) => RequestInit = (options: RequestInit) => ({\r\n\t\tmethod: 'GET',\r\n\t\tcredentials: 'same-origin',\r\n\t\t...options\r\n\t});\r\n\r\n\texport async function fireAndForget(url: string, options: RequestInit = {}): Promise {\r\n\t\tconst init: RequestInit = MergeDefaultGet(options);\r\n\t\tconst request: Request = new Request(url, init);\r\n\t\tconst response: Response = await fetch(request);\r\n\t\tif (response.status === 200) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\texport async function getRequest(url: string, options: RequestInit = {}): Promise {\r\n\t\tconst init: RequestInit = MergeDefaultGet(options);\r\n\r\n\t\treturn await genericRequest(url, init);\r\n\t}\r\n\r\n\texport async function postRequest(url: string, body: TBody, options: RequestInit = {}): Promise {\r\n\t\tconst init: RequestInit = {\r\n\t\t\tmethod: 'POST',\r\n\t\t\tcredentials: 'same-origin',\r\n\t\t\tbody: JSON.stringify(body),\r\n\t\t\t...options\r\n\t\t};\r\n\r\n\t\treturn await genericRequest(url, init);\r\n\t}\r\n\r\n\texport async function postFormData(url: string, body: FormData, options: RequestInit = {}): Promise {\r\n\t\tconst init: RequestInit = {\r\n\t\t\tmethod: 'POST',\r\n\t\t\tcredentials: 'same-origin',\r\n\t\t\tbody,\r\n\t\t\t...options\r\n\t\t};\r\n\r\n\t\treturn await genericRequest(url, init);\r\n\t}\r\n\r\n\tasync function genericRequest(url: string, init: RequestInit): Promise {\r\n\t\tconst request: Request = new Request(url, init);\r\n\t\tconst response: Response = await fetch(request);\r\n\t\tif (response.status === 200) {\r\n\t\t\treturn await response.json() as T;\r\n\t\t}\r\n\t\tthrow `Status ${response.status}: when fetching '${url}'`;\r\n\t}\r\n\r\n}\r\n","import * as React from 'react';\r\nimport { SFC } from 'react';\r\n\r\ninterface Props {\r\n\tuseId: string;\r\n}\r\n\r\nconst cleanId: (id: string) => string = (id: string) => {\r\n\tif (id.charAt(0) === '#') {\r\n\t\treturn id;\r\n\t}\r\n\treturn `#${id}`;\r\n}\r\n\r\nconst getHtml: (id: string) => string = (id: string) => ``;\r\n\r\nconst SvgUse: SFC = (props: Props) => ;\r\n\r\nexport default SvgUse;\r\n","import { GenericApi } from './GenericApi';\r\nimport { Result, VerifyResult, SetPhoneResult } from './types/Account';\r\nimport {IFavoriteStop} from './types/Account';\r\n\r\nexport module AccountApi {\r\n\tconst BASE_ACCOUNT_URL: string = '/umbraco/api/account';\r\n\r\n\texport async function subscribe(id: string): Promise {\r\n\t\treturn await GenericApi.getRequest(`${BASE_ACCOUNT_URL}/subscribe?id=${id}`);\r\n\t}\r\n\r\n\texport async function unsubscribe(id: string): Promise {\r\n\t\treturn await GenericApi.getRequest(`${BASE_ACCOUNT_URL}/unsubscribe?id=${id}`);\r\n\t}\r\n\r\n\texport async function toggleEmailAlerts(value: boolean): Promise {\r\n\t\treturn await GenericApi.getRequest(`${BASE_ACCOUNT_URL}/toggleemailalerts?value=${value}`);\r\n\t}\r\n\r\n export async function toggleSecondaryEmailAlerts(value: boolean): Promise {\r\n\t return await GenericApi.getRequest(`${BASE_ACCOUNT_URL}/togglesecondaryemailalerts?value=${value}`);\r\n }\r\n\r\n\texport async function toggleSmsAlerts(value: boolean): Promise {\r\n\t\treturn await GenericApi.getRequest(`${BASE_ACCOUNT_URL}/togglesmsalerts?value=${value}`);\r\n\t}\r\n\r\n\texport async function setPhone(phone: string): Promise {\r\n\t\treturn await GenericApi.getRequest(`${BASE_ACCOUNT_URL}/updatephonenumber?number=${phone}`);\r\n\t}\r\n\r\n\texport async function generateSmsConfirmationCode(): Promise {\r\n\t\treturn await GenericApi.getRequest(`${BASE_ACCOUNT_URL}/generatesmsconfirmationcode`);\r\n\t}\r\n\r\n\texport async function verifyPhone(code: string): Promise {\r\n\t\treturn await GenericApi.getRequest(`${BASE_ACCOUNT_URL}/validatesmscode?code=${code}`);\r\n }\r\n\r\n export async function generateEmailConfirmationCode(): Promise {\r\n return await GenericApi.getRequest(`${BASE_ACCOUNT_URL}/generateemailconfirmationcode`);\r\n }\r\n\r\n export async function verifySecondaryEmail(code: string): Promise \r\n\t{\r\n return await GenericApi.getRequest(`${BASE_ACCOUNT_URL}/validateemailcode?code=${code}`);\r\n\t}\r\n\r\n export async function setSecondaryEmail(email: string): Promise {\r\n return await GenericApi.getRequest(`${BASE_ACCOUNT_URL}/updatesecondaryemail?email=${email}`);\r\n }\r\n\r\n\texport async function toggleFavorite(stopId: string, state: boolean): Promise {\r\n\t\tconst url: string = `${BASE_ACCOUNT_URL}/togglefavorite?stopId=${stopId}&state=${state}`;\r\n\t\treturn await GenericApi.getRequest(url);\r\n\t}\r\n\r\n\texport async function getFavorites(): Promise {\r\n\t\treturn await GenericApi.getRequest(`${BASE_ACCOUNT_URL}/getFavoriteStops/`);\r\n\t}\r\n\r\n}\r\n","import { GenericApi } from './GenericApi';\r\nimport { ISuggestResults } from './types/Autocomplete';\r\n\r\nexport module AutocompleteApi {\r\n\tconst SEARCH_API_VERSION: string = 'v1.0.2';\r\n\tconst SEARCH_BASE_URL: string = `https://search.mtd.org/${SEARCH_API_VERSION}`;\r\n\tconst SUGGEST_BASE_URL: string = `${SEARCH_BASE_URL}/website/suggest`;\r\n\tconst PLACE_DETAILS_BASE_URL: string = `${SEARCH_BASE_URL}/google/places/details`;\r\n\r\n\tfunction encode(url: string): string {\r\n\t\tconst replaced: string = url\r\n\t\t\t.replace(/[\\/]+/g, ' ')\r\n\t\t\t.replace(/[&]+/g, 'and')\r\n\t\t\t.trim();\r\n\r\n\t\treturn encodeURIComponent(replaced);\r\n\t}\r\n\r\n\tfunction buildUrl(baseUrl: string, sessionId: string, count: number, query: string): string {\r\n\t\treturn `${baseUrl}/${sessionId}/${count}/${encode(query)}`;\r\n\t}\r\n\r\n\texport async function suggestQuery(sessionId: string, queryIndex: number,query: string): Promise {\r\n\t\treturn await GenericApi.getRequest(buildUrl(SUGGEST_BASE_URL, sessionId, queryIndex, query));\r\n\t}\r\n\r\n}\r\n","import * as React from 'react';\r\nimport { SFC } from 'react';\r\n\r\nimport {IQueryHighlight} from '../../api/types/Autocomplete';\r\n\r\ninterface Props {\r\n\twrapperClass: string;\r\n\thighlights: IQueryHighlight[];\r\n}\r\n\r\nconst QueryHighlight: SFC = (props: Props) => {\r\n\tconst renderHighlight: (highlight: IQueryHighlight, index: number) => JSX.Element = (highlight: IQueryHighlight, index: number) => {\r\n\t\tconst elements: JSX.Element[] = [];\r\n\t\tif (highlight.highlightPart) {\r\n\t\t\tconst key: string = `wordpart-hl-${index}-${highlight.highlightPart}`;\r\n\t\t\telements.push({highlight.highlightPart});\r\n\t\t}\r\n\t\tif (highlight.noHighlightPart) {\r\n\t\t\tconst key: string = `wordpart-nhl-${index}-${highlight.noHighlightPart}`;\r\n\t\t\telements.push({highlight.noHighlightPart});\r\n\t\t}\r\n\t\tif (elements.length > 0) {\r\n\t\t\tconst key: string = `word-${index}-${highlight.highlightPart}-${highlight.noHighlightPart}`;\r\n\t\t\treturn {elements};\r\n\t\t}\r\n\t\treturn null;\r\n\t};\r\n\r\n\treturn
    {props.highlights.map(renderHighlight)}
    ;\r\n\r\n};\r\n\r\nexport default QueryHighlight;\r\n","/**\r\n * Tracks an event using Plausible Analytics.\r\n *\r\n * @param eventName - The name of the event to track.\r\n * @param eventProps - Optional properties associated with the event.\r\n */\r\nexport default function trackEvent(eventName: string, eventProps: Record = {}): void {\r\n\tif (window.plausible) {\r\n\t\twindow.plausible(eventName, {\r\n\t\t\tprops: eventProps,\r\n\t\t});\r\n\t} else {\r\n\t\tconsole.warn('Plausible Analytics is not loaded. Failed to track event:', eventName, eventProps);\r\n\t}\r\n}\r\n\r\nexport function trackError(eventName: string, module: string, eventProps: Record = {}, errorLevel: 'debug' | 'info' | 'warning' | 'error' = 'error'): void {\r\n\tif (window.plausible) {\r\n\t\tvar props = {\r\n\t\t\t...eventProps,\r\n\t\t\terror: true,\r\n\t\t\tmodule,\r\n\t\t\terrorLevel\r\n\t\t};\r\n\r\n\t\twindow.plausible(eventName, {\r\n\t\t\tprops\r\n\t\t});\r\n\t} else {\r\n\t\tconsole.warn('Plausible Analytics is not loaded. Failed to track event:', eventName, eventProps);\r\n\t}\r\n}\r\n","export module Events {\r\n\texport const UserAuthEventName: string = 'user_auth';\r\n\texport const UserLogoutEventName: string = 'user_logout';\r\n}\r\n","/**\r\n * Enforce that a function not be called until a certain amount of time has passed without it being called.\r\n */\r\nexport function debounce(cb: T, wait = 20) {\r\n\tlet h = 0;\r\n\tlet callable = (...args: any) => {\r\n\t\tclearTimeout(h);\r\n\t\th = window.setTimeout(() => cb(...args), wait);\r\n\t};\r\n\treturn (callable);\r\n}\r\n"],"sourceRoot":""}