{"version":3,"sources":["webpack://[name]/webpack/bootstrap","webpack://[name]/external \"React\"","webpack://[name]/./node_modules/tslib/tslib.es6.js","webpack://[name]/./ts/constants/styles.ts","webpack://[name]/external \"ReactDOM\"","webpack://[name]/./ts/whereTo/types/When.ts","webpack://[name]/./ts/whereTo/types/TripOption.ts","webpack://[name]/./ts/whereTo/components/tripOptions/tripOptionsContext.ts","webpack://[name]/./ts/whereTo/components/tripOptions/reducer.ts","webpack://[name]/./ts/generic/components/GoogleMap.tsx","webpack://[name]/./ts/generic/components/RadioOrCheckbox.tsx","webpack://[name]/./ts/tripPlannerResults.tsx","webpack://[name]/./ts/tripPlannerResults/components/App.tsx","webpack://[name]/./ts/tripPlannerResults/components/MapApp.tsx","webpack://[name]/./ts/tripPlannerResults/components/TripPlanMap.tsx","webpack://[name]/./ts/tripPlannerResults/types/Geometry.ts","webpack://[name]/./ts/DeviceType.ts","webpack://[name]/./ts/whereTo/components/tripOptions/app.tsx","webpack://[name]/./ts/whereTo/components/tripOptions/layout.tsx","webpack://[name]/./ts/whereTo/components/tripOptions/tripOptionsPicker.tsx","webpack://[name]/./ts/generic/helpers/Debounce.ts","webpack://[name]/./ts/whereTo/components/tripOptions/whenPicker.tsx"],"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","StyleConstants","DefaultFontFamily","DefaultFontSize","CollapseBusStopInfoSize","MenuBreakPoint","SubMenuBreakPoint","SearchCollapse","Colors","IconFontWeight","IconFontColor","IconFontFamily","IconSize","Width","Height","Scale","Count","ReactDOM","PartOfDay","TripType","Time","date","Date","isValid","validHour","hour","validMinutes","minute","format","hours","getHours","getMinutes","convertHour","daypart","convertPartOfDay","PM","AM","hh","h","hStr","toString","mStr","When","when","time","isNaN","parse","formatDate","type","LeaveAfter","dd","getDate","mm","getMonth","getFullYear","encode","ArriveBy","typeToString","TripOption","TripOptionsContext","createContext","dispatch","DefaultState","hideFieldset","Actions","action","ChangeWhenType","tripType","ChangeTime","ChangeDate","ChangeTripType","LessTime","GoogleMap","PureComponent","props","super","resizeMap","center","map","getCenter","google","maps","event","trigger","setCenter","className","ref","element","console","options","Map","markers","marker","Marker","polygons","polygon","Polygon","polylines","polyline","Polyline","kmls","kml","KmlLayer","fitBounds","bounds","LatLngBounds","extend","getPosition","paths","getPaths","getLength","path","getAt","getPath","responsive","debounceResizeMap","debounce","resizeListener","addDomListener","window","mapUpdate","removeListener","id","inputId","inputName","onChange","checked","htmlFor","onKeyPress","preventDefault","stopPropagation","currentTarget","click","focus","document","getElementById","year","month","day","getWhen","mtd","tripPlannerResults","reactApp","tripOption","option","reactDom","render","geometries","geometry","app","index","addEventListener","deviceType","DeviceType","Other","links","getElementsByClassName","HTMLAnchorElement","iOS","iosLink","getAttribute","href","Android","androidLink","originalOptions","hasChanged","setHasChanged","useState","setWhen","setOptions","setAction","useEffect","newAction","LessWalking","LessXfers","getOptionUrl","onSubmit","location","updateType","newTripOption","updateWhen","newWhen","disabled","showMap","setShowMap","mapId","onClick","show","srgbToLinear","channel","Math","pow","hasAccessibleContrastWithWhite","hexColor","startsWith","calculateLuminance","parseInt","decodePolyline","encoded","points","lat","lng","len","charCodeAt","scaledWidth","scaledHeight","getTerminusMarker","latitude","longitude","spriteIndex","anchorPoint","Point","clickable","draggable","icon","origin","labelOrigin","scaledSize","Size","size","url","text","fontSize","fontFamily","color","position","LatLng","title","zIndex","getIntermediateMarker","materialIcon","fillColor","fillOpacity","strokeColor","strokeOpacity","textColor","getMarkerOptions","SymbolPath","CIRCLE","scale","strokeWeight","legs","start","startLat","startLng","end","endLat","endLng","useMemo","flatMap","legType","distance","LegType","Walk","MicroTransit","getColor","useStroke","lines","editable","mainLineOptions","icons","offset","repeat","markersArray","leg","nextLeg","markerPosition","Service","role","userAgent","navigator","test","App","useReducer","reducer","Provider","defaultProps","useContext","fieldsetClass","cb","wait","args","clearTimeout","setTimeout","padMinutes","minutes","minuteString","changeType","updateTime","changePartOfDay","newTime","now","min","max","required","ele","style","setProperty"],"mappings":"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","file":"tripPlannerResults.c184528ee4f673f2ef05.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 = 353);\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","/** Constants for styling elements */\r\nexport module StyleConstants {\r\n\r\n/** The default font size for the applicaiton */\r\n\r\n\texport const DefaultFontFamily: string = 'Interstate, sans-serif';\r\n\texport const DefaultFontSize: number = 16;\r\n\r\n\t/** The size at which to collapse the bus stop info page into one column */\r\n\texport const CollapseBusStopInfoSize: number = 1104;\r\n\r\n\texport const MenuBreakPoint: number = 817;\r\n\texport const SubMenuBreakPoint: number = 992;\r\n\r\n\texport const SearchCollapse: number = 1560;\r\n\r\n\texport const Colors: string[] = [\r\n\t\t'e10027',\r\n\t\t'002f87',\r\n\t\t'318d3a',\r\n\t\t'cb3e17',\r\n\t\t'671973',\r\n\t\t'008891'\r\n\t];\r\n\r\n\texport const IconFontWeight: number = 900;\r\n\texport const IconFontColor: string = '#000';\r\n\texport const IconFontFamily: string = 'Interstate, sans-serif';\r\n\r\n\texport const IconSize: { [key: string]: number } = {\r\n\t\tWidth: 26,\r\n\t\tHeight: 32,\r\n\t\tScale: 1.5,\r\n\t\tCount: 6\r\n\t};\r\n\r\n}\r\n","module.exports = ReactDOM;","export enum PartOfDay{\r\n\tAM,\r\n\tPM\r\n}\r\n\r\nexport enum TripType {\r\n\tLeaveAfter,\r\n\tArriveBy\r\n}\r\n\r\nexport interface ITime {\r\n\thour: number;\r\n\tminute: number;\r\n\tdaypart: PartOfDay;\r\n\tisValid: () => boolean;\r\n\tformat: () => string;\r\n}\r\n\r\nexport class Time implements ITime {\r\n\r\n\tpublic hour: number;\r\n\tpublic minute: number;\r\n\tpublic daypart: PartOfDay;\r\n\r\n\tconstructor(date: Date = new Date()) {\r\n\t\tconst hours: number = date.getHours();\r\n\t\tthis.minute = date.getMinutes();\r\n\t\tthis.hour = Time.convertHour(hours);\r\n\t\tthis.daypart = Time.convertPartOfDay(hours);\r\n\t}\r\n\r\n\tpublic isValid: () => boolean = () => {\r\n\t\tconst validHour: boolean = this.hour >= 1 && this.hour <= 12;\r\n\t\tconst validMinutes: boolean = this.minute >= 0 && this.minute < 60;\r\n\t\treturn validHour && validMinutes;\r\n\t};\r\n\r\n\tprivate static convertHour(hour: number): number {\r\n\t\tif (hour === 0) {\r\n\t\t\treturn 12;\r\n\t\t}\r\n\t\treturn hour > 12 ? hour - 12 : hour;\r\n\t}\r\n\r\n\tprivate static convertPartOfDay(hour: number): PartOfDay {\r\n\t\treturn hour >= 12 ? PartOfDay.PM : PartOfDay.AM;\r\n\t}\r\n\r\n\tpublic format: () => string = () => {\r\n\t\treturn Time.format(this);\r\n\t}\r\n\r\n\tpublic static format: (t: ITime) => string = (t: ITime) => {\r\n\r\n\t\tconst toString: (h: number, m: number) => string = (h: number, m: number) => {\r\n\r\n\t\t\tlet hStr: string = h.toString();\r\n\t\t\tlet mStr: string = m.toString();\r\n\r\n\t\t\tif (h < 10) {\r\n\t\t\t\thStr = `0${hStr}`;\r\n\t\t\t}\r\n\r\n\t\t\tif (m < 10) {\r\n\t\t\t\tmStr = `0${mStr}`;\r\n\t\t\t}\r\n\r\n\t\t\treturn `${hStr}${mStr}`;\r\n\t\t};\r\n\r\n\t\tlet hh: number = t.hour;\r\n\r\n\t\tif (t.daypart === PartOfDay.PM && hh !== 12) {\r\n\t\t\thh += 12;\r\n\t\t}\r\n\r\n\t\tif (t.daypart === PartOfDay.AM && hh === 12) {\r\n\t\t\thh = 0;\r\n\t\t}\r\n\r\n\t\treturn toString(hh, t.minute);\r\n\t}\r\n\r\n}\r\n\r\nexport interface IWhen {\r\n\ttime: ITime;\r\n\tdate: string;\r\n\ttype: TripType;\r\n\tisValid: () => boolean;\r\n\tformat: () => string;\r\n}\r\n\r\nexport class When implements IWhen {\r\n\tpublic time: ITime;\r\n\tpublic date: string;\r\n\tpublic type: TripType;\r\n\r\n\tconstructor(when: IWhen = null) {\r\n\t\tif (when === null) {\r\n\t\t\tconst date: Date = new Date();\r\n\t\t\tthis.time = new Time(date);\r\n\t\t\tthis.date = When.formatDate(date);\r\n\t\t\tthis.type = TripType.LeaveAfter;\r\n\t\t} else {\r\n\t\t\tthis.time = when.time;\r\n\t\t\tthis.date = when.date;\r\n\t\t\tthis.type = when.type;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic isValid: () => boolean = () => {\r\n\t\tif (this.time == null || !this.time.isValid()) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn !isNaN(Date.parse(this.date));\r\n\t}\r\n\r\n\tpublic static formatDate(date: Date): string {\r\n\t\tlet dd: number | string = date.getDate();\r\n\t\tlet mm: number | string = date.getMonth() + 1; //January is 0!\r\n\t\tconst yyyy: number = date.getFullYear();\r\n\r\n\t\tif (dd < 10) {\r\n\t\t\tdd = `0${dd}`;\r\n\t\t}\r\n\r\n\t\tif (mm < 10) {\r\n\t\t\tmm = `0${mm}`;\r\n\t\t}\r\n\t\treturn `${yyyy}-${mm}-${dd}`;\r\n\t}\r\n\r\n\tpublic format: () => string = () =>\r\n\t\t`${this.date}T${this.time.format()}`;\r\n\r\n\tpublic static encode: (when: IWhen) => string = (when: IWhen) => {\r\n\t\tconst typeToString: (type: TripType) => string = (type: TripType) => {\r\n\t\t\tswitch (type) {\r\n\t\t\t\tcase TripType.ArriveBy:\r\n\t\t\t\t\treturn 'arrive-by';\r\n\t\t\t\tcase TripType.LeaveAfter:\r\n\t\t\t\t\treturn 'leave-after';\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn 'unknown';\r\n\t\t\t}\r\n\t\t};\r\n\t\treturn `${typeToString(when.type)}/${when.date}/${Time.format(when.time)}`;\r\n\t}\r\n\r\n}\r\n","export enum TripOption {\r\n\tLessTime,\r\n\tLessWalking,\r\n\tLessXfers\r\n}\r\n","import { Context, createContext, Dispatch } from \"react\";\r\nimport { State, Action, DefaultState } from \"./reducer\";\r\n\r\nexport interface TripOptionsContextType {\r\n\tdispatch: Dispatch;\r\n\tstate: State;\r\n\thideFieldset: boolean;\r\n}\r\n\r\nconst TripOptionsContext: Context = createContext({\r\n\tdispatch: () => { },\r\n\tstate: { ...DefaultState },\r\n\thideFieldset: false\r\n });\r\n\r\nexport default TripOptionsContext;\r\n","import { ITime, IWhen, TripType, When } from \"../../types/When\";\r\nimport { TripOption } from \"../../types/TripOption\";\r\n\r\ninterface DefaultableState {\r\n\twhen: IWhen;\r\n\ttype: TripOption;\r\n}\r\n\r\nexport type PropState = Partial;\r\n\r\nexport type State = Readonly;\r\n\r\nexport enum Actions {\r\n\tChangeWhenType,\r\n\tChangeTime,\r\n\tChangeDate,\r\n\tChangeTripType\r\n}\r\n\r\ninterface BaseAction {\r\n\ttype: Actions;\r\n}\r\n\r\ninterface ChangeWhenType extends BaseAction {\r\n\ttype: Actions.ChangeWhenType;\r\n\ttripType: TripType;\r\n}\r\n\r\ninterface ChangeTime extends BaseAction {\r\n\ttype: Actions.ChangeTime;\r\n\ttime: ITime;\r\n}\r\n\r\ninterface ChangeDate extends BaseAction {\r\n\ttype: Actions.ChangeDate;\r\n\tdate: string;\r\n}\r\n\r\ninterface ChangeTripType extends BaseAction {\r\n\ttype: Actions.ChangeTripType;\r\n\ttripType: TripOption;\r\n}\r\n\r\nexport type Action = ChangeWhenType | ChangeTime | ChangeDate | ChangeTripType;\r\n\r\nexport function reducer(state: State, action: Action): State {\r\n\tswitch (action.type) {\r\n\t\tcase Actions.ChangeWhenType:\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\twhen: {\r\n\t\t\t\t\t...state.when,\r\n\t\t\t\t\ttype: action.tripType\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\tcase Actions.ChangeTime:\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\twhen: {\r\n\t\t\t\t\t...state.when,\r\n\t\t\t\t\ttime: { ...action.time }\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\tcase Actions.ChangeDate:\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\twhen: {\r\n\t\t\t\t\t...state.when,\r\n\t\t\t\t\tdate: action.date\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\tcase Actions.ChangeTripType:\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\ttype: action.tripType\r\n\t\t\t}\r\n\t\tdefault:\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n\r\nexport const DefaultState: DefaultableState = {\r\n\twhen: new When(),\r\n\ttype: TripOption.LessTime\r\n};\r\n","/// \r\n\r\nimport * as React from 'react';\r\nimport { PureComponent } from 'react';\r\n\r\nimport { debounce } from '../helpers/Debounce';\r\n\r\ninterface Props {\r\n\toptions: google.maps.MapOptions;\r\n\tmarkers?: google.maps.MarkerOptions[];\r\n\tpolygons?: google.maps.PolygonOptions[];\r\n\tpolylines?: google.maps.PolylineOptions[];\r\n\tkml?: google.maps.KmlLayerOptions[];\r\n\tfitBounds?: boolean;\r\n\tmapUpdate?: (map: google.maps.Map, markers: google.maps.Marker[]) => void;\r\n\tresponsive?: boolean;\r\n}\r\n\r\nexport class GoogleMap extends PureComponent {\r\n\r\n\tprivate map: google.maps.Map;\r\n\tprivate resizeListener: google.maps.MapsEventListener;\r\n\tprivate element: HTMLDivElement;\r\n\r\n\tconstructor(props: Props, context: any) {\r\n\t\tsuper(props, context);\r\n\t}\r\n\r\n\tpublic render() {\r\n\t\treturn (
\r\n\t\t\t
this.element = element}>\r\n\t\t\t
\r\n\t\t
);\r\n\t}\r\n\r\n\tpublic componentDidMount() {\r\n\t\tif (typeof google === 'undefined' || typeof google.maps === 'undefined') {\r\n\t\t\tconsole.error(\"Google Maps API is not loaded\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.element && this.props.options) {\r\n\t\t\tthis.map = new google.maps.Map(this.element, this.props.options);\r\n\t\t} else {\r\n\t\t\tconsole.error(\"Element or map options are not available\", { element: this.element, options: this.props.options });\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst markers: google.maps.Marker[] = [];\r\n\t\tif (this.props.markers != null) {\r\n\t\t\tfor (let marker of this.props.markers) {\r\n\t\t\t\tmarkers.push(new google.maps.Marker({ ...marker, map: this.map }));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst polygons: google.maps.Polygon[] = [];\r\n\t\tif (this.props.polygons != null) {\r\n\t\t\tfor (let polygon of this.props.polygons) {\r\n\t\t\t\tpolygons.push(new google.maps.Polygon({ ...polygon, map: this.map }));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst polylines: google.maps.Polyline[] = [];\r\n\t\tif (this.props.polylines != null) {\r\n\t\t\tfor (let polyline of this.props.polylines) {\r\n\t\t\t\tpolylines.push(new google.maps.Polyline({ ...polyline, map: this.map }));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst kmls: google.maps.KmlLayer[] = [];\r\n\t\tif (this.props.kml != null) {\r\n\t\t\tfor (let kml of this.props.kml) {\r\n\t\t\t\tkmls.push(new google.maps.KmlLayer({ ...kml, map: this.map }));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// make sure all markers fit on map\r\n\t\tif (this.props.fitBounds) {\r\n\r\n\t\t\t// where we will fit the map\r\n\t\t\tconst bounds: google.maps.LatLngBounds = new google.maps.LatLngBounds();\r\n\r\n\t\t\tif (markers && markers.length > 0) {\r\n\t\t\t\tfor (let i: number = 0; i < markers.length; i++) {\r\n\t\t\t\t\tbounds.extend(markers[i].getPosition());\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (polygons && polygons.length > 0) {\r\n\t\t\t\tfor (let i: number = 0; i < polygons.length; i++) {\r\n\t\t\t\t\tconst paths: google.maps.MVCArray> = polygons[i].getPaths();\r\n\t\t\t\t\tfor (let j: number = 0; j < paths.getLength(); j++) {\r\n\t\t\t\t\t\tconst path: google.maps.MVCArray = paths.getAt(j);\r\n\t\t\t\t\t\tfor (let k: number = 0; k < path.getLength(); k++) {\r\n\t\t\t\t\t\t\tbounds.extend(path.getAt(k));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (polylines && polylines.length > 0) {\r\n\t\t\t\tfor (let i: number = 0; i < polylines.length; i++) {\r\n\t\t\t\t\tconst path: google.maps.MVCArray = polylines[i].getPath();\r\n\t\t\t\t\tfor (let k: number = 0; k < path.getLength(); k++) {\r\n\t\t\t\t\t\tbounds.extend(path.getAt(k));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.map.fitBounds(bounds);\r\n\t\t}\r\n\r\n\t\t// default to true\r\n\t\tif (this.props.responsive == null || this.props.responsive) {\r\n\t\t\tconst debounceResizeMap: () => void =\r\n\t\t\t\tdebounce(this.resizeMap, 100);\r\n\t\t\tthis.resizeListener =\r\n\t\t\t\tgoogle.maps.event\r\n\t\t\t\t\t.addDomListener(window, 'resize', debounceResizeMap);\r\n\t\t}\r\n\r\n\t\tif (this.props.mapUpdate != null) {\r\n\t\t\tthis.props.mapUpdate(this.map, markers);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tpublic componentWillUnmount(): void {\r\n\t\tif (this.resizeListener) {\r\n\t\t\tgoogle.maps.event.removeListener(this.resizeListener);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate resizeMap: () => void = () => {\r\n\t\tconst center: google.maps.LatLng = this.map.getCenter();\r\n\t\tgoogle.maps.event.trigger(this.map, 'resize');\r\n\t\tthis.map.setCenter(center);\r\n\t};\r\n\r\n}\r\n\r\n","import * as React from 'react';\r\nimport { ChangeEvent, FC, KeyboardEvent } from 'react';\r\n\r\ninterface Props {\r\n\tvalue: string | number | string[];\r\n\tonChange: (event: ChangeEvent) => void;\r\n\tchecked: boolean;\r\n\tlabel: string;\r\n\tinputId: string;\r\n\tinputName: string;\r\n\ttype: 'radio' | 'checkbox';\r\n}\r\n\r\nconst RadioOrCheckbox: FC = (props: Props) => {\r\n\r\n\tfunction labelKeyPress(event: KeyboardEvent): void {\r\n\t\tif (event.key === ' ' || event.key === 'Enter') {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\t\t\tevent.currentTarget.click();\r\n\t\t\tevent.currentTarget.focus();\r\n\t\t}\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{props.label}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default RadioOrCheckbox;\r\n","import * as React from 'react';\r\nimport * as reactDom from 'react-dom';\r\nimport App from './tripPlannerResults/components/App';\r\nimport { TripOption } from './whereTo/types/TripOption';\r\nimport { ITime, IWhen, Time, TripType, When } from './whereTo/types/When';\r\nimport MapApp from './tripPlannerResults/components/MapApp';\r\nimport detectDeviceType, { DeviceType } from './DeviceType';\r\n\r\nfunction getWhen(year: number, month: number, day: number, hour: number, minute: number, type: string): IWhen {\r\n\tconst date: Date = new Date(year, month - 1, day, hour, minute, 0, 0);\r\n\tconst time: ITime = new Time(date);\r\n\tconst when: IWhen = new When({\r\n\t\tdate: When.formatDate(date),\r\n\t\ttime,\r\n\t\ttype: type === 'leave-after' ? TripType.LeaveAfter : TripType.ArriveBy,\r\n\t\tformat: null,\r\n\t\tisValid: null\r\n\t});\r\n\treturn when;\r\n};\r\n\r\n(() => {\r\n\t// change time app\r\n\tconst element = document.getElementById('change-time-app');\r\n\tif (element) {\r\n\t\tconst when = getWhen(\r\n\t\t\twindow.mtd.tripPlannerResults.year,\r\n\t\t\twindow.mtd.tripPlannerResults.month,\r\n\t\t\twindow.mtd.tripPlannerResults.day,\r\n\t\t\twindow.mtd.tripPlannerResults.hour,\r\n\t\t\twindow.mtd.tripPlannerResults.minute,\r\n\t\t\twindow.mtd.tripPlannerResults.type\r\n\t\t);\r\n\t\tconst reactApp = (\r\n\t\t\t\r\n\t\t);\r\n\t\treactDom.render(reactApp, element);\r\n\t}\r\n\r\n\t// maps\r\n\tconst geometries = window.mtd.tripPlannerResults.geometries;\r\n\tfor (let i = 0; i < geometries.length; i++) {\r\n\t\tconst geometry = geometries[i];\r\n\t\tconst app = ;\r\n\t\tconst element = document.getElementById(`itin-map-${i}`);\r\n\t\tif (element) {\r\n\t\t\treactDom.render(app, element);\r\n\t\t}\r\n\t}\r\n\r\n\t// via links\r\n\tdocument.addEventListener('DOMContentLoaded', () => {\r\n\t\tconst deviceType = detectDeviceType();\r\n\r\n\t\tif (deviceType !== DeviceType.Other) {\r\n\t\t\tconst links = document.getElementsByClassName('mobile-link-replace');\r\n\r\n\t\t\tfor (let i = 0; i < links.length; i++) {\r\n\t\t\t\tconst element = links[i];\r\n\r\n\t\t\t\t// Check if the element is an anchor element\r\n\t\t\t\tif (element instanceof HTMLAnchorElement) {\r\n\t\t\t\t\tif (deviceType === DeviceType.iOS) {\r\n\t\t\t\t\t\tconst iosLink = element.getAttribute('data-ios-link');\r\n\t\t\t\t\t\tif (iosLink) {\r\n\t\t\t\t\t\t\telement.href = iosLink;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (deviceType === DeviceType.Android) {\r\n\t\t\t\t\t\tconst androidLink = element.getAttribute('data-android-link');\r\n\t\t\t\t\t\tif (androidLink) {\r\n\t\t\t\t\t\t\telement.href = androidLink;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n})();\r\n","import * as React from 'react';\r\nimport { FC, FormEvent, useState, useEffect } from 'react';\r\nimport { TripOption } from '../../whereTo/types/TripOption';\r\nimport { IWhen, When } from '../../whereTo/types/When';\r\nimport TripOptions from '../../whereTo/components/tripOptions/app';\r\n\r\ninterface Props extends IWhen {\r\n\tfrom: string;\r\n\tto: string;\r\n\ttripOption: TripOption;\r\n}\r\n\r\nconst App: FC = (props: Props) => {\r\n\tconst { from, to, tripOption: originalOptions } = props;\r\n\tconst [hasChanged, setHasChanged] = useState(false);\r\n\tconst [when, setWhen] = useState(props);\r\n\tconst [options, setOptions] = useState(originalOptions);\r\n\tconst [action, setAction] = useState('');\r\n\r\n\tuseEffect(() => {\r\n\t\tfunction getAction(): string {\r\n\t\t\treturn `/maps-and-schedules/plan-trip/from/${from}/to/${to}/${When.encode(when)}/${getOptionUrl(options)}`;\r\n\t\t}\r\n\t\tconst newAction = getAction();\r\n\t\tsetAction(newAction);\r\n\t}, [from, to, when.date, when.time.daypart, when.time.hour, when.time.minute, when.type, options]);\r\n\r\n\r\n\r\n\tfunction updateWhen(newWhen: IWhen): void {\r\n\t\tif (\r\n\t\t\twhen.date !== newWhen.date ||\r\n\t\t\twhen.time.hour !== newWhen.time.hour ||\r\n\t\t\twhen.time.minute !== newWhen.time.minute ||\r\n\t\t\twhen.time.daypart !== newWhen.time.daypart ||\r\n\t\t\twhen.type !== newWhen.type\r\n\t\t) {\r\n\t\t\tsetWhen({ ...newWhen, time: {...newWhen.time } });\r\n\t\t\tsetHasChanged(true);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction updateType(newTripOption: TripOption): void {\r\n\t\tif (options !== newTripOption) {\r\n\t\t\tsetOptions(newTripOption);\r\n\t\t\tsetHasChanged(true);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction formSubmit(event: FormEvent): void {\r\n\t\tif (hasChanged) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tdocument.location.href = action;\r\n\t\t}\r\n\t}\r\n\r\n\tfunction getOptionUrl(option: TripOption): string {\r\n\t\tswitch (option) {\r\n\t\t\tcase TripOption.LessWalking:\r\n\t\t\t\treturn 'less-walking/';\r\n\t\t\tcase TripOption.LessXfers:\r\n\t\t\t\treturn 'fewer-transfers/';\r\n\t\t\tdefault:\r\n\t\t\t\treturn '';\r\n\t\t}\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default App;\r\n","import * as React from 'react';\r\nimport { useState } from 'react';\r\nimport { Geometry, LegType } from '../types/Geometry';\r\nimport TripPlanMap from './TripPlanMap';\r\n\r\ninterface Props {\r\n\tgeometry: Geometry;\r\n\tindex: number;\r\n}\r\n\r\n\r\nexport default function MapApp({ geometry, index }: Readonly) {\r\n\tconst [showMap, setShowMap] = useState(index === 0);\r\n\tconst mapId = `trip-plan-map-app-${index}`;\r\n\r\n\tfunction showMapClick() {\r\n\t\tsetShowMap(true);\r\n\t}\r\n\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{index > 0 && }\r\n\t\t\t\r\n\t\t\r\n\t);\r\n\r\n}\r\n","import * as React from 'react';\r\nimport { GoogleMap } from '../../generic/components/GoogleMap';\r\nimport { useMemo, FC } from 'react';\r\nimport { Geometry, LegType } from '../types/Geometry';\r\nimport { StyleConstants } from '../../constants/styles';\r\n\r\ninterface Props {\r\n\tgeometry: Geometry;\r\n\tid: string;\r\n\tshow: boolean;\r\n}\r\n\r\n/**\r\n * Converts an sRGB channel value (0-255) to its linearized form.\r\n */\r\nfunction srgbToLinear(channel: number): number {\r\n\tconst c = channel / 255;\r\n\treturn c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);\r\n}\r\n\r\n/**\r\n * Calculates the relative luminance of a color using WCAG coefficients.\r\n */\r\nfunction calculateLuminance(r: number, g: number, b: number): number {\r\n\tconst rLin = srgbToLinear(r);\r\n\tconst gLin = srgbToLinear(g);\r\n\tconst bLin = srgbToLinear(b);\r\n\treturn 0.2126 * rLin + 0.7152 * gLin + 0.0722 * bLin;\r\n}\r\n\r\n/**\r\n * Checks if a hex color (e.g. \"1a2b3c\" or \"#1a2b3c\") has sufficient contrast with white.\r\n */\r\nfunction hasAccessibleContrastWithWhite(hexColor: string): boolean {\r\n\tif (hexColor == null) return false;\r\n\r\n\t// Remove any leading '#' character.\r\n\tif (hexColor.startsWith('#')) {\r\n\t\thexColor = hexColor.slice(1);\r\n\t}\r\n\r\n\tif (hexColor.length !== 6) {\r\n\t\tthrow new Error(\"Invalid hex color format. Expected a 6-digit hex string.\");\r\n\t}\r\n\r\n\tconst r = parseInt(hexColor.slice(0, 2), 16);\r\n\tconst g = parseInt(hexColor.slice(2, 4), 16);\r\n\tconst b = parseInt(hexColor.slice(4, 6), 16);\r\n\tconst luminance = calculateLuminance(r, g, b);\r\n\tconst contrastRatio = (1 + 0.05) / (luminance + 0.05);\r\n\treturn contrastRatio >= 4.5;\r\n}\r\n\r\n/**\r\n * Decodes an encoded polyline string into an array of LatLngLiteral objects.\r\n */\r\nfunction decodePolyline(encoded: string): google.maps.LatLngLiteral[] {\r\n\tconst points: google.maps.LatLngLiteral[] = [];\r\n\tlet index = 0, lat = 0, lng = 0;\r\n\tconst len = encoded.length;\r\n\r\n\twhile (index < len) {\r\n\t\tlet b: number, shift = 0, result = 0;\r\n\t\tdo {\r\n\t\t\tb = encoded.charCodeAt(index++) - 63;\r\n\t\t\tresult |= (b & 0x1f) << shift;\r\n\t\t\tshift += 5;\r\n\t\t} while (b >= 0x20);\r\n\t\tconst dlat = (result & 1) ? ~(result >> 1) : (result >> 1);\r\n\t\tlat += dlat;\r\n\r\n\t\tshift = 0;\r\n\t\tresult = 0;\r\n\t\tdo {\r\n\t\t\tb = encoded.charCodeAt(index++) - 63;\r\n\t\t\tresult |= (b & 0x1f) << shift;\r\n\t\t\tshift += 5;\r\n\t\t} while (b >= 0x20);\r\n\t\tconst dlng = (result & 1) ? ~(result >> 1) : (result >> 1);\r\n\t\tlng += dlng;\r\n\r\n\t\tpoints.push({ lat: lat / 1e5, lng: lng / 1e5 });\r\n\t}\r\n\r\n\treturn points;\r\n}\r\n\r\n/**\r\n * Returns the midpoint of a polyline path.\r\n */\r\nfunction calculateMidpoint(path: google.maps.LatLngLiteral[]): google.maps.LatLngLiteral {\r\n\tif (path.length === 0) return { lat: 0, lng: 0 };\r\n\tconst midIndex = Math.floor(path.length / 2);\r\n\treturn path[midIndex];\r\n}\r\n\r\n/**\r\n * Determines the color for a leg based on its type.\r\n */\r\nfunction getColor(color: string | null, legType: LegType): string {\r\n\tif (legType === LegType.Walk) {\r\n\t\treturn '#444444';\r\n\t}\r\n\tif (legType === LegType.MicroTransit) {\r\n\t\treturn '#0071ce';\r\n\t}\r\n\treturn `#${color}` ?? \"#000000\";\r\n}\r\n\r\n// Pre-calculate scaled dimensions for marker icons.\r\nconst scaledWidth: number = StyleConstants.IconSize.Width * StyleConstants.IconSize.Scale;\r\nconst scaledHeight: number = StyleConstants.IconSize.Height * StyleConstants.IconSize.Scale;\r\n\r\n/**\r\n * Returns marker options for start/end terminus markers.\r\n * Adjusts the labelOrigin to center the text a little higher.\r\n */\r\nfunction getTerminusMarker(latitude: number, longitude: number, type: 'start' | 'end'): google.maps.MarkerOptions {\r\n\t// Adjust spriteIndex depending on marker type.\r\n\tconst spriteIndex = type === 'start' ? 1 : 0;\r\n\treturn {\r\n\t\t// This anchor point is used for marker positioning.\r\n\t\tanchorPoint: new google.maps.Point(0, (StyleConstants.IconSize.Width * StyleConstants.IconSize.Scale) / 2),\r\n\t\tclickable: false,\r\n\t\tdraggable: false,\r\n\t\ticon: {\r\n\t\t\torigin: new google.maps.Point(0, scaledHeight * spriteIndex),\r\n\t\t\tlabelOrigin: new google.maps.Point(scaledWidth / 2, (scaledHeight / 2) - 4), // - 4 adjusts the vertical align\r\n\t\t\tscaledSize: new google.maps.Size(scaledWidth, scaledHeight * StyleConstants.IconSize.Count),\r\n\t\t\tsize: new google.maps.Size(scaledWidth, scaledHeight),\r\n\t\t\turl: `/content/image/trip-planner-map-marker.svg`,\r\n\t\t},\r\n\t\tlabel: {\r\n\t\t\t// The text to display on the marker (using Material Icons ligatures).\r\n\t\t\ttext: type === 'start' ? 'fiber_manual_record' : 'stop',\r\n\t\t\tfontSize: '1.2rem',\r\n\t\t\tfontFamily: 'Material Icons', // Ensure that Material Icons font is loaded.\r\n\t\t\tcolor: '#ffffff',\r\n\t\t},\r\n\t\tposition: new google.maps.LatLng(latitude, longitude),\r\n\t\ttitle: type === 'start' ? 'Origin' : 'Destination',\r\n\t\tzIndex: 1100 + spriteIndex,\r\n\t};\r\n}\r\n\r\n// Define a type for intermediate marker configuration.\r\ntype MarkerOptionsConfig = {\r\n\ttitle: string;\r\n\tmaterialIcon: string;\r\n\tspriteIndex: number;\r\n\tfillColor: string;\r\n\tfillOpacity: number;\r\n\tstrokeColor: string;\r\n\tstrokeOpacity: number;\r\n\ttextColor: string;\r\n};\r\n\r\n/**\r\n * Returns configuration for intermediate markers based on type.\r\n */\r\nfunction getMarkerOptions(type: 'board' | 'transfer' | 'walk'): MarkerOptionsConfig {\r\n\tswitch (type) {\r\n\t\tcase 'board':\r\n\t\t\treturn {\r\n\t\t\t\ttitle: 'Board',\r\n\t\t\t\tmaterialIcon: 'directions_bus',\r\n\t\t\t\tspriteIndex: 5,\r\n\t\t\t\tfillColor: '#002f87',\r\n\t\t\t\tfillOpacity: 1,\r\n\t\t\t\tstrokeColor: '#002f87',\r\n\t\t\t\tstrokeOpacity: 1,\r\n\t\t\t\ttextColor: '#ffffff'\r\n\t\t\t};\r\n\t\tcase 'transfer':\r\n\t\t\treturn {\r\n\t\t\t\ttitle: 'Transfer',\r\n\t\t\t\tmaterialIcon: 'transfer_within_a_station',\r\n\t\t\t\tspriteIndex: 4,\r\n\t\t\t\tfillColor: '#dd004a',\r\n\t\t\t\tfillOpacity: 1,\r\n\t\t\t\tstrokeColor: '#dd004a',\r\n\t\t\t\tstrokeOpacity: 1,\r\n\t\t\t\ttextColor: '#ffffff'\r\n\t\t\t};\r\n\t\tcase 'walk':\r\n\t\t\treturn {\r\n\t\t\t\ttitle: 'Walk',\r\n\t\t\t\tmaterialIcon: 'directions_walk',\r\n\t\t\t\tspriteIndex: 3,\r\n\t\t\t\tfillColor: '#a0b7c7',\r\n\t\t\t\tfillOpacity: 1,\r\n\t\t\t\tstrokeColor: '#476f86',\r\n\t\t\t\tstrokeOpacity: 1,\r\n\t\t\t\ttextColor: '#000000'\r\n\t\t\t};\r\n\t\tdefault:\r\n\t\t\treturn {\r\n\t\t\t\ttitle: '',\r\n\t\t\t\tmaterialIcon: '',\r\n\t\t\t\tspriteIndex: 2,\r\n\t\t\t\tfillColor: '#002f87',\r\n\t\t\t\tfillOpacity: 1,\r\n\t\t\t\tstrokeColor: '#002f87',\r\n\t\t\t\tstrokeOpacity: 1,\r\n\t\t\t\ttextColor: '#002f87'\r\n\t\t\t};\r\n\t}\r\n}\r\n\r\n/**\r\n * Creates an intermediate marker for board, transfer, or walk steps.\r\n * Uses Material Icons (ligatures) for the marker label.\r\n */\r\nfunction getIntermediateMarker(latitude: number, longitude: number, type: 'board' | 'transfer' | 'walk'): google.maps.MarkerOptions {\r\n\tconst { title, materialIcon, spriteIndex, fillColor, fillOpacity, strokeColor, strokeOpacity, textColor } = getMarkerOptions(type);\r\n\treturn {\r\n\t\tanchorPoint: new google.maps.Point(0, (StyleConstants.IconSize.Width * StyleConstants.IconSize.Scale) / 2),\r\n\t\tclickable: false,\r\n\t\tdraggable: false,\r\n\t\tlabel: {\r\n\t\t\ttext: materialIcon,\r\n\t\t\tfontSize: '1rem',\r\n\t\t\tfontFamily: 'Material Icons', // Use Material Icons font for ligature rendering.\r\n\t\t\tcolor: textColor,\r\n\t\t},\r\n\t\ticon: {\r\n\t\t\tpath: google.maps.SymbolPath.CIRCLE,\r\n\t\t\tscale: 10,\r\n\t\t\tfillColor,\r\n\t\t\tfillOpacity,\r\n\t\t\tstrokeColor,\r\n\t\t\tstrokeWeight: 3,\r\n\t\t\tstrokeOpacity\r\n\t\t},\r\n\t\tposition: new google.maps.LatLng(latitude, longitude),\r\n\t\ttitle,\r\n\t\tzIndex: 1100 + spriteIndex\r\n\t};\r\n}\r\n\r\nconst minWalk = 300; // Minimum distance (in meters) to show walking legs\r\n\r\n/**\r\n * Main MapApp component that renders the GoogleMap with polylines and markers.\r\n */\r\nexport default function TripPlanMap({ id, show, geometry: { legs, start: { latitude: startLat, longitude: startLng }, end: { latitude: endLat, longitude: endLng } } }: Readonly) {\r\n\t// Generate polyline options for each leg of the journey.\r\n\tconst polygons = useMemo(() => {\r\n\t\treturn legs.flatMap(({ color, points, legType, distance }, index) => {\r\n\t\t\t// Skip rendering walking legs that are too short at the beginning or end.\r\n\t\t\tif ((index === 0 || index === legs.length - 1) && legType === LegType.Walk && distance < minWalk) {\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\r\n\t\t\tconst hexColor = getColor(color, legType);\r\n\t\t\tconst useStroke = !hasAccessibleContrastWithWhite(hexColor);\r\n\t\t\tconst path = decodePolyline(points);\r\n\t\t\tconst lines: google.maps.PolylineOptions[] = [];\r\n\r\n\t\t\t// Render a black outline if the color contrast is insufficient.\r\n\t\t\tif (useStroke) {\r\n\t\t\t\tlines.push({\r\n\t\t\t\t\tclickable: false,\r\n\t\t\t\t\tdraggable: false,\r\n\t\t\t\t\teditable: false,\r\n\t\t\t\t\tstrokeColor: \"#000000\",\r\n\t\t\t\t\tstrokeWeight: 9,\r\n\t\t\t\t\tpath,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// Main polyline options.\r\n\t\t\tconst mainLineOptions: google.maps.PolylineOptions = {\r\n\t\t\t\tclickable: false,\r\n\t\t\t\tdraggable: false,\r\n\t\t\t\teditable: false,\r\n\t\t\t\tstrokeColor: hexColor,\r\n\t\t\t\tstrokeWeight: useStroke ? 5 : 9,\r\n\t\t\t\tpath\r\n\t\t\t};\r\n\r\n\t\t\tif (legType === LegType.Walk) {\r\n\t\t\t\t// Hide the underlying solid line.\r\n\t\t\t\tmainLineOptions.strokeOpacity = 0;\r\n\t\t\t\t// Replace the dash pattern with repeating dots.\r\n\t\t\t\tmainLineOptions.icons = [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ticon: {\r\n\t\t\t\t\t\t\tpath: google.maps.SymbolPath.CIRCLE, // Use a circle as the dot.\r\n\t\t\t\t\t\t\tfillOpacity: 1,\r\n\t\t\t\t\t\t\tfillColor: hexColor, // or use any color you prefer for the dots.\r\n\t\t\t\t\t\t\tscale: 4, // Adjust the size of the dot.\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\toffset: \"0\",\r\n\t\t\t\t\t\trepeat: \"15px\", // Adjust spacing between dots as needed.\r\n\t\t\t\t\t},\r\n\t\t\t\t];\r\n\t\t\t}\r\n\r\n\t\t\tlines.push(mainLineOptions);\r\n\t\t\treturn lines;\r\n\t\t});\r\n\t}, [legs]);\r\n\r\n\t// Generate marker options for journey endpoints and intermediate markers.\r\n\tconst markers: google.maps.MarkerOptions[] = useMemo(() => {\r\n\t\tconst markersArray: google.maps.MarkerOptions[] = [\r\n\t\t\tgetTerminusMarker(startLat, startLng, 'start'),\r\n\t\t\tgetTerminusMarker(endLat, endLng, 'end')\r\n\t\t];\r\n\r\n\t\t// Create intermediate markers at transition points between legs.\r\n\t\tfor (let i = 0; i < legs.length - 1; i++) {\r\n\t\t\tconst leg = legs[i];\r\n\t\t\tconst nextLeg = legs[i + 1];\r\n\t\t\tconst nextLegPoints = decodePolyline(nextLeg.points);\r\n\t\t\tconst markerPosition = nextLegPoints[0];\r\n\r\n\t\t\t// Add a boarding marker when transitioning from a walk to a transit leg.\r\n\t\t\tif (leg.legType === LegType.Walk && (nextLeg.legType === LegType.Service || nextLeg.legType === LegType.MicroTransit)) {\r\n\t\t\t\tmarkersArray.push(getIntermediateMarker(markerPosition.lat, markerPosition.lng, 'board'));\r\n\t\t\t}\r\n\t\t\t// Add a transfer marker between service or microtransit legs.\r\n\t\t\tif ((leg.legType === LegType.Service || leg.legType === LegType.MicroTransit) &&\r\n\t\t\t\t(nextLeg.legType === LegType.Service || nextLeg.legType === LegType.MicroTransit)) {\r\n\t\t\t\tmarkersArray.push(getIntermediateMarker(markerPosition.lat, markerPosition.lng, 'transfer'));\r\n\t\t\t}\r\n\t\t\t// Add a walking marker when transitioning from a transit leg to a walk.\r\n\t\t\tif ((leg.legType === LegType.Service || leg.legType === LegType.MicroTransit) &&\r\n\t\t\t\t(nextLeg.legType === LegType.Walk)) {\r\n\t\t\t\t// Skip short walk legs at the end.\r\n\t\t\t\tif (i === legs.length - 2 && nextLeg.distance < minWalk) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tmarkersArray.push(getIntermediateMarker(markerPosition.lat, markerPosition.lng, 'walk'));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn markersArray;\r\n\t}, [startLat, startLng, endLat, endLng, legs]);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{show &&
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\tGoogle map showing the routing of the itinerary described above.\r\n\t\t\t\t
\r\n\t\t\t
}\r\n\t\t
\r\n\t);\r\n}\r\n","\r\n\r\nexport enum LegType {\r\n\tService = 0,\r\n\tWalk = 1,\r\n\tMicroTransit = 2\r\n}\r\n\r\nexport type TripLocation = {\r\n\tlatitude: number;\r\n\tlongitude: number;\r\n}\r\n\r\nexport type Geometry = {\r\n\treadonly legs: Leg[];\r\n\treadonly start: TripLocation;\r\n\treadonly end: TripLocation;\r\n}\r\n\r\nexport type Leg = {\r\n\treadonly distance: number;\r\n\treadonly length: number;\r\n\treadonly points: string;\r\n\treadonly color: null | string;\r\n\treadonly legType: number;\r\n}\r\n","// deviceDetector.ts\r\n\r\nexport enum DeviceType {\r\n\tiOS = \"iOS\",\r\n\tAndroid = \"Android\",\r\n\tOther = \"Other\",\r\n}\r\n\r\n/**\r\n * Detects the device type based on the user agent string.\r\n *\r\n * @returns {DeviceType} - The detected device type.\r\n */\r\nexport default function detectDeviceType(): DeviceType {\r\n\tconst userAgent = navigator.userAgent;\r\n\r\n\t// Check for Android devices\r\n\tif (/android/i.test(userAgent)) {\r\n\t\treturn DeviceType.Android;\r\n\t}\r\n\r\n\t// Check for iOS devices (iPhone, iPad, iPod)\r\n\t// The check '!(\"MSStream\" in window)' avoids false positives on browsers that define MSStream.\r\n\tif (/iPad|iPhone|iPod/.test(userAgent) && !(\"MSStream\" in window)) {\r\n\t\treturn DeviceType.iOS;\r\n\t}\r\n\r\n\t// Fallback for all other devices\r\n\treturn DeviceType.Other;\r\n}\r\n","import React, { FC, useEffect, useReducer } from 'react';\r\nimport { TripOption } from '../../types/TripOption';\r\nimport { IWhen } from '../../types/When';\r\nimport Layout from './layout';\r\nimport { DefaultState, PropState, reducer } from './reducer';\r\nimport AppContext, { TripOptionsContextType } from './tripOptionsContext';\r\n\r\ninterface Props extends PropState {\r\n\tupdateWhen: (when: IWhen) => void;\r\n\tupdateType: (type: TripOption) => void;\r\n\thideFieldset?: boolean;\r\n}\r\n\r\nconst App: FC = (props: Props) => {\r\n\tconst { updateWhen, updateType, hideFieldset } = props;\r\n\tconst [state, dispatch] = useReducer(reducer, { ...DefaultState, ...props });\r\n\tconst context: TripOptionsContextType = {\r\n\t\tstate,\r\n\t\tdispatch,\r\n\t\thideFieldset\r\n\t};\r\n\tconst { when, type } = state;\r\n\r\n\tuseEffect(() => {\r\n\t\tupdateWhen({ ...when, time: { ...when.time } });\r\n\t}, [when.date, when.type, when.time.daypart, when.time.hour, when.time.minute, updateWhen]);\r\n\r\n\tuseEffect(() => {\r\n\t\tupdateType(type);\r\n\t}, [type, updateType]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n\r\n}\r\n\r\nApp.defaultProps = {\r\n\thideFieldset: false\r\n};\r\n\r\nexport default App;\r\n","import React, { FC, useContext } from 'react';\r\nimport TripOptionsContext from './tripOptionsContext';\r\nimport TripOptionsPicker from './tripOptionsPicker';\r\nimport WhenPicker from './whenPicker';\r\n\r\nconst Layout: FC = () => {\r\n\r\n\tconst { hideFieldset } = useContext(TripOptionsContext);\r\n\r\n\tconst fieldsetClass = hideFieldset ? 'hide-fieldset' : 'show-fieldset';\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t
\r\n\t\t\t\tWhen\r\n\t\t\t\t\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\tTrip Options\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\nexport default Layout;\r\n","import React, { ChangeEvent, FC, useContext } from 'react';\r\nimport RadioOrCheckbox from '../../../generic/components/RadioOrCheckbox';\r\nimport { TripOption } from '../../types/TripOption';\r\nimport { Actions } from './reducer';\r\nimport TripOptionsContext from './tripOptionsContext';\r\n\r\nconst TripOptionsPicker: FC = () => {\r\n\tconst {\r\n\t\tstate: {\r\n\t\t\ttype\r\n\t\t},\r\n\t\tdispatch\r\n\t} = useContext(TripOptionsContext);\r\n\r\n\tfunction onChange(event: ChangeEvent): void {\r\n\t\tconst tripType: TripOption = parseInt(event.target.value) as TripOption;\r\n\t\tdispatch({ type: Actions.ChangeTripType, tripType });\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default TripOptionsPicker;\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","import React, { ChangeEvent, FC, useContext } from 'react';\r\nimport RadioOrCheckbox from '../../../generic/components/RadioOrCheckbox';\r\nimport { ITime, IWhen, PartOfDay, TripType, When } from '../../types/When';\r\nimport { Actions } from './reducer';\r\nimport TripOptionsContext from './tripOptionsContext';\r\n\r\nfunction padMinutes(minutes: number): string {\r\n\tconst minuteString: string = minutes.toString();\r\n\tif (minuteString.length === 1) {\r\n\t\treturn `0${minuteString}`;\r\n\t}\r\n\treturn minuteString;\r\n}\r\n\r\nconst WhenPicker: FC = () => {\r\n\tconst {\r\n\t\tstate: {\r\n\t\t\twhen\r\n\t\t},\r\n\t\tdispatch\r\n\t} = useContext(TripOptionsContext);\r\n\r\n\tfunction changeType(event: ChangeEvent): void {\r\n\t\tconst tripType: TripType = parseInt(event.target.value) as TripType;\r\n\t\tdispatch({ type: Actions.ChangeWhenType, tripType });\r\n\t}\r\n\r\n\tfunction updateDate(date: string): void {\r\n\t\tdispatch({ type: Actions.ChangeDate, date });\r\n\t}\r\n\r\n\tfunction updateTime(time: ITime): void {\r\n\t\tdispatch({ type: Actions.ChangeTime, time });\r\n\t}\r\n\r\n\tfunction changeMinute(event: ChangeEvent): void {\r\n\t\tconst newTime = { ...when.time };\r\n\t\tnewTime.minute = parseInt(event.target.value);\r\n\t\tupdateTime(newTime);\r\n\t}\r\n\r\n\tfunction changeHour(event: ChangeEvent): void {\r\n\t\tconst newTime = { ...when.time };\r\n\t\tnewTime.hour = parseInt(event.target.value);\r\n\t\tupdateTime(newTime);\r\n\t}\r\n\r\n\tfunction changePartOfDay(event: ChangeEvent): void {\r\n\t\tconst newTime = { ...when.time };\r\n\t\tnewTime.daypart = parseInt(event.target.value) as PartOfDay;\r\n\t\tupdateTime(newTime);\r\n\t}\r\n\r\n\tfunction changeDate(event: ChangeEvent): void {\r\n\t\tupdateDate(event.target.value as string);\r\n\t}\r\n\r\n\tconst now: Date = new Date();\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\tArrive/Depart\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\tTime\r\n\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\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\t
\r\n\t\t\t\t\t\t\tAM or PM\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\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
\r\n\t\t\t\t
On
\r\n\t\t\t\t
\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\tif (ele) {\r\n\t\t\t\t\t\t\t\tele.style.setProperty('-webkit-min-logical-width', 'calc(100% - 1rem)', 'important');\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
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n\r\n\r\n};\r\n\r\nexport default WhenPicker;\r\n"],"sourceRoot":""}