{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./App/filterable-list/components/filterable-list-app.tsx","webpack:///./App/filterable-list/components/filterable-list-facets.tsx","webpack:///./App/filterable-list/components/filterable-list-result.tsx","webpack:///./App/filterable-list/components/no-results.tsx","webpack:///./App/filterable-list/index.tsx","webpack:///./App/filterable-list/reducers/epi-props-model.ts","webpack:///./App/filterable-list/state-helpers/history.ts","webpack:///./App/filterable-list/state-helpers/sorts.tsx","webpack:///./App/global/actions/autocomplete-actions.ts","webpack:///./App/global/actions/filter-actions.ts","webpack:///./App/global/components/buttons/base/base-button.tsx","webpack:///./App/global/components/buttons/primary-button.tsx","webpack:///./App/global/components/inputs/filters/dropdown-facet.tsx","webpack:///./App/global/components/inputs/restrictedContentForm/restricted-content-inputs.tsx","webpack:///./App/global/components/inputs/search-bar/autocomplete.tsx","webpack:///./App/global/components/inputs/search-bar/search-bar.tsx","webpack:///./App/global/components/inputs/sort/sort.tsx","webpack:///./App/global/components/inputs/textbox/controlled-textbox.tsx","webpack:///./App/global/dtos/filterable-list-results-dto.ts","webpack:///./App/global/ducks/filterable-list-api.ts","webpack:///./App/global/functions/validation.ts","webpack:///./App/global/state-helpers/filters.ts","webpack:///./App/search-page/state-helpers/facets.ts","webpack:///./node_modules/history/esm/history.js","webpack:///./node_modules/path-to-regexp/index.js","webpack:///./node_modules/path-to-regexp/node_modules/isarray/index.js","webpack:///../modules/BrowserRouter.js","webpack:///../modules/HashRouter.js","webpack:///../modules/utils/locationUtils.js","webpack:///../modules/Link.js","webpack:///../modules/NavLink.js","webpack:///../modules/createNamedContext.js","webpack:///../modules/HistoryContext.js","webpack:///../modules/RouterContext.js","webpack:///../modules/Router.js","webpack:///../modules/MemoryRouter.js","webpack:///../modules/Lifecycle.js","webpack:///../modules/Prompt.js","webpack:///../modules/generatePath.js","webpack:///../modules/Redirect.js","webpack:///../modules/matchPath.js","webpack:///../modules/Route.js","webpack:///../modules/StaticRouter.js","webpack:///../modules/Switch.js","webpack:///../modules/withRouter.js","webpack:///../modules/hooks.js","webpack:///../modules/index.js","webpack:///./node_modules/react-router-dom/node_modules/react-router/node_modules/mini-create-react-context/dist/esm/index.js","webpack:///./node_modules/resolve-pathname/esm/resolve-pathname.js","webpack:///./node_modules/tiny-invariant/dist/tiny-invariant.esm.js","webpack:///./node_modules/tiny-warning/dist/tiny-warning.esm.js","webpack:///./node_modules/value-equal/esm/value-equal.js"],"names":["addLeadingSlash","path","charAt","stripLeadingSlash","substr","hasBasename","prefix","toLowerCase","indexOf","length","stripBasename","stripTrailingSlash","slice","parsePath","pathname","search","hash","hashIndex","searchIndex","createPath","location","createLocation","state","key","currentLocation","_extends","undefined","decodeURI","e","URIError","resolvePathname","locationsAreEqual","a","b","valueEqual","createTransitionManager","prompt","setPrompt","nextPrompt","process","warning","confirmTransitionTo","action","getUserConfirmation","callback","result","listeners","appendListener","fn","isActive","listener","apply","arguments","push","filter","item","notifyListeners","_len","args","Array","_key","forEach","canUseDOM","window","document","createElement","getConfirmation","message","confirm","supportsHistory","ua","navigator","userAgent","history","supportsPopStateOnHashChange","supportsGoWithoutReloadUsingHash","isExtraneousPopstateEvent","event","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","props","invariant","globalHistory","canUseHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_ref","_window$location","createKey","Math","random","toString","transitionManager","setState","nextState","handlePopState","handlePop","handleHashChange","forceNextPop","ok","revertPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","initialLocation","createHref","href","pushState","prevIndex","nextKeys","replace","replaceState","n","goBack","goForward","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","url","getHashPath","substring","pushHashPath","replaceHashPath","createHashHistory","canGoWithoutReload","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","locationsAreEqual$$1","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","querySelector","getAttribute","hashChanged","nextPaths","clamp","lowerBound","upperBound","min","max","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","index","map","entry","nextIndex","nextEntries","splice","canGo","isarray","require","module","exports","pathToRegexp","parse","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","RegExp","join","str","options","tokens","defaultDelimiter","delimiter","res","exec","m","escaped","offset","next","name","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","c","charCodeAt","toUpperCase","encodeAsterisk","matches","i","flags","obj","opts","data","encode","pretty","encodeURIComponent","token","value","segment","TypeError","JSON","stringify","j","test","attachKeys","re","keys","sensitive","regexpToRegexp","groups","source","match","arrayToRegexp","parts","regexp","stringToRegexp","strict","end","route","endsWithDelimiter","isArray","arr","Object","prototype","call","BrowserRouter","createHistory","_this","render","React","Router","children","Component","propTypes","PropTypes","string","node","bool","func","number","componentDidMount","HashRouter","oneOf","resolveToLocation","to","normalizeToLocation","forwardRefShim","C","forwardRef","isModifiedEvent","metaKey","altKey","ctrlKey","shiftKey","LinkAnchor","forwardedRef","innerRef","navigate","onClick","rest","target","ex","preventDefault","defaultPrevented","button","ref","displayName","Link","component","RouterContext","Consumer","context","isDuplicateNavigation","method","toType","oneOfType","object","refType","shape","current","any","isRequired","joinClassnames","classnames","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","className","exact","isActiveProp","locationProp","styleProp","style","escapedPath","matchPath","ariaCurrentType","createNamedContext","createContext","historyContext","computeRootMatch","params","isExact","_isMounted","_pendingLocation","staticContext","_this2","componentWillUnmount","Provider","HistoryContext","componentDidUpdate","prevProps","MemoryRouter","array","Lifecycle","onMount","onUpdate","onUnmount","Prompt","when","self","release","messageType","cache","cacheLimit","cacheCount","compilePath","generator","generatePath","Redirect","computedMatch","from","cacheKey","pathCache","paths","concat","reduce","matched","values","memo","isEmptyChildren","Children","count","evalChildrenDev","Route","propName","isValidElementType","Error","arrayOf","addBasename","base","createURL","staticHandler","methodName","noop","StaticRouter","handlePush","navigateTo","handleReplace","handleListen","handleBlock","Switch","element","isValidElement","child","cloneElement","withRouter","wrappedComponentRef","remainingProps","WrappedComponent","hoistStatics","useContext","useHistory","useLocation","useParams","useRouteMatch","global","buildNames","cjs","esm","umd","initialBuildName","secondaryBuildName","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","getUniqueId","objectIs","x","y","createEventEmitter","handlers","on","handler","off","h","get","set","newValue","changedBits","onlyChild","createReactContext","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","_Component","_inheritsLoose","emitter","_proto","getChildContext","componentWillReceiveProps","nextProps","oldValue","childContextTypes","_Component2","getValue","observedBits","_proto2","contextTypes","isAbsolute","spliceOne","list","k","pop","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","hasTrailingSlash","last","up","part","unshift","isProduction","condition","provided","text","console","warn","valueOf","every","aValue","bValue","assign"],"mappings":"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","file":"list-filterable-bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"list-filterable\": 0\n \t};\n\n \tvar deferredModules = [];\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 \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([13,\"common\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import * as React from 'react';\r\nimport * as qs from 'query-string';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { FetchPendingAction } from \"../../global/middleware/fetch-middleware\";\r\nimport { IEpiProps } from '../state-helpers/epi-props';\r\nimport { IBaseAppState } from '..';\r\nimport { getEpiProps } from '../../global/ducks/epi-api';\r\nimport { IFilterableListCriteria, IFilterableListFacetTerm, IFilterableListResultsDto, INameAndEmailRequest, IFilterableListFacet } from '../../global/dtos/filterable-list-results-dto';\r\nimport { getResults, resetGetResultsCallerFlag, saveNameAndEmail } from '../../global/ducks/filterable-list-api';\r\nimport { FilterableListResult } from './filterable-list-result';\r\nimport { ConnectedSearchBar } from '../../global/components/inputs/search-bar/search-bar';\r\nimport { pushInUrlQuery, multiPushInUrlQuery } from 'react-url-query';\r\nimport { FilterableListFacets } from './filterable-list-facets';\r\nimport { setUrlFacets, setUrlPage } from '../../global/actions/filter-actions';\r\nimport { IPaginationOptions, Pagination } from '../../global/components/pagination/pagination';\r\nimport { SortGroup } from '../../global/components/inputs/sort/sort';\r\nimport { GetSorts } from '../state-helpers/sorts';\r\nimport { IGlobalSort } from '../../global/state-helpers/sort';\r\nimport { debounce, isEmpty } from 'lodash';\r\nimport { NoResults } from './no-results';\r\nimport { RestrictedContentInputs } from '../../global/components/inputs/restrictedContentForm/restricted-content-inputs';\r\n\r\nconst PageSize = 20;\r\nconst enum FilterableListCallers {\r\n GetResults= 'filterableList/getResults'\r\n}\r\n\r\ninterface IStateProps {\r\n epiProps: IEpiProps,\r\n results: IFilterableListResultsDto,\r\n uniqueUserId: string;\r\n getResultsAsyncCaller: string;\r\n}\r\n\r\ninterface IDispatchProps {\r\n getEpiProps: () => FetchPendingAction;\r\n getResults: (criteria: IFilterableListCriteria, asyncCaller?: string) => FetchPendingAction;\r\n saveNameAndEmail: (request: INameAndEmailRequest) => FetchPendingAction;\r\n resetGetResultsFlag: (asyncCaller?: string) => FetchPendingAction;\r\n}\r\n\r\ninterface IOwnProps {\r\n contentId: string;\r\n pageTitle: string;\r\n requireNameAndEmail: boolean;\r\n name: string;\r\n email: string;\r\n uniqueUserIdBootstrap: string;\r\n gridclass: string;\r\n}\r\n\r\ntype IProps = IStateProps & IDispatchProps & IOwnProps;\r\n\r\ninterface IQueryProps {\r\n k?: string;\r\n page?: string;\r\n facets?: string;\r\n sortField?: string;\r\n sortDirection?: string;\r\n}\r\n\r\ninterface IState {\r\n searchText: string;\r\n pageSize: number;\r\n pageNumber: number;\r\n facets: IFilterableListFacet[];\r\n loading: boolean,\r\n results: IFilterableListResultsDto;\r\n sortField: string;\r\n sortDirection: number;\r\n\r\n allowedSortFields: string[];\r\n columnOrder: string[];\r\n\r\n showNameAndEmailInputs: boolean;\r\n name: string;\r\n email: string;\r\n uniqueUserId: string;\r\n}\r\n\r\nconst ComponentId = 'filterable-list-component';\r\nclass FilterableListPageApp extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n loading: false,\r\n searchText: \"\",\r\n pageSize: PageSize,\r\n pageNumber: 1,\r\n facets: [],\r\n results: null,\r\n\r\n sortField: null,\r\n sortDirection: 0,\r\n allowedSortFields: [],\r\n columnOrder: [],\r\n\r\n showNameAndEmailInputs: this.props.requireNameAndEmail\r\n && ((!this.props.name || this.props.name == \"\")\r\n || (!this.props.email || this.props.email == \"\")),\r\n name: this.props.name,\r\n email: this.props.email,\r\n uniqueUserId: this.props.uniqueUserIdBootstrap\r\n }\r\n\r\n }\r\n\r\n componentDidMount() {\r\n this.parseQuery()\r\n .then(() => {\r\n return this.props.getEpiProps().fetch\r\n })\r\n .then(() => {\r\n return this.getResults();\r\n });\r\n }\r\n\r\n componentDidUpdate(prevState, prevProps) {\r\n if (prevProps.results !== this.props.results && this.props.getResultsAsyncCaller === FilterableListCallers.GetResults) {\r\n this.setState({\r\n loading: false,\r\n results: this.props.results,\r\n facets: this.props.results.facets,\r\n allowedSortFields: this.props.results.allowedSortFields,\r\n columnOrder: this.props.results.columnOrder,\r\n });\r\n if (this.props.results && this.props.results.allowedSortFields && this.props.results.allowedSortFields.length > 0) {\r\n localStorage.setItem('allowedSorts', JSON.stringify(this.props.results.allowedSortFields));\r\n }\r\n this.props.resetGetResultsFlag();\r\n }\r\n }\r\n\r\n render() {\r\n const { epiProps } = this.props;\r\n const { results, loading, allowedSortFields,\r\n showNameAndEmailInputs, } = this.state;\r\n\r\n const pagination = {\r\n totalItems: results ? results.totalNumber : 0,\r\n currentPage: this.state.pageNumber,\r\n pageSize: PageSize,\r\n } as IPaginationOptions;\r\n let gridstyle = \"repeat(auto-fit, minmax(250px, 1fr))\";\r\n if (!isEmpty(this.props.gridclass)) {\r\n gridstyle = this.props.gridclass.replace(/\\s+/g, \"\").split(\",\").join(\"fr \") + \"fr\";\r\n }\r\n return (\r\n \r\n {loading && !showNameAndEmailInputs &&\r\n
\r\n Loading...\r\n
\r\n }\r\n\r\n {showNameAndEmailInputs ?\r\n
\r\n this.setFilterablePageNameAndEmail(name, email)}\r\n />\r\n
:\r\n\r\n
\r\n\r\n
\r\n {this.renderFacets(false)}\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n {this.renderFacets(true)}\r\n
\r\n\r\n {results && results.columnNames && results.columnNames.length > 0 && results.totalNumber > 0 &&\r\n ) => this.onSortSelect(sort.sortId)}\r\n twoDimensional={true}\r\n activeSortDirection={this.state.sortDirection}\r\n />\r\n }\r\n\r\n {this.renderResults()}\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n }\r\n
\r\n );\r\n }\r\n\r\n renderResults = () => {\r\n const { results, loading, allowedSortFields, pageNumber, pageSize } = this.state;\r\n\r\n if (loading || !results) return null;\r\n\r\n if (results.totalNumber == 0) return (\r\n
\r\n \r\n
\r\n );\r\n\r\n let start = (pageNumber - 1) * pageSize;\r\n let paginatedResults = results.searchItemList.slice(start, start + pageSize);\r\n\r\n return (\r\n
\r\n {paginatedResults.map((result, i) =>\r\n \r\n )}\r\n
\r\n );\r\n\r\n }\r\n\r\n get queryProps(): IQueryProps {\r\n return qs.parse(window.location.search)\r\n }\r\n\r\n get filterableListSorts() {\r\n const { results, sortField } = this.state;\r\n\r\n let inactiveSorts = results.columnNames.filter(c => !results.allowedSortFields.some(x => x.toLowerCase() === c.toLowerCase()));\r\n\r\n return GetSorts(results.columnNames, this.state.sortField, inactiveSorts);\r\n }\r\n\r\n renderFacets = (isMobile: boolean) => {\r\n const { results } = this.state;\r\n const { epiProps } = this.props;\r\n\r\n if (results && results.facets.length > 0) {\r\n return (\r\n results && results.facets.length > 0 &&\r\n \r\n );\r\n }\r\n }\r\n\r\n saveNameAndEmail = (name: string, email: string) => {\r\n this.props.saveNameAndEmail({\r\n name: name,\r\n email: email,\r\n } as INameAndEmailRequest).fetch\r\n .then(() => {\r\n this.setState({\r\n uniqueUserId: this.props.uniqueUserId\r\n });\r\n });\r\n }\r\n\r\n getResults = () => {\r\n this.setState({\r\n loading: true\r\n }, () => {\r\n this.props.getResults({\r\n pageId: parseInt(this.props.contentId),\r\n searchTerm: this.state.searchText,\r\n pageSize: this.state.pageSize,\r\n page: this.state.pageNumber,\r\n facets: this.state.facets,\r\n sortField: this.state.sortField,\r\n sortDirection: this.state.sortDirection ? this.state.sortDirection : 0,\r\n allowedSortFields: this.state.allowedSortFields.length > 0 ? this.state.allowedSortFields : JSON.parse(localStorage.getItem('allowedSorts')),\r\n } as IFilterableListCriteria, FilterableListCallers.GetResults).fetch;\r\n })\r\n }\r\n\r\n onSearch = (searchText: string) => {\r\n this.setFacets([]);\r\n pushInUrlQuery('k', searchText);\r\n }\r\n\r\n onSearchDebounced = debounce((searchText: string) => {\r\n this.onSearch(searchText);\r\n }, 500);\r\n\r\n onSearchChange = (searchText: string) => {\r\n this.setState({\r\n searchText,\r\n });\r\n\r\n this.onSearchDebounced(searchText);\r\n }\r\n\r\n setPage = (pageNumber: number) => {\r\n if (pageNumber === this.state.pageNumber) return;\r\n\r\n setUrlPage(pageNumber);\r\n this.setState({\r\n pageNumber\r\n });\r\n\r\n document.getElementById(ComponentId).scrollIntoView();\r\n }\r\n\r\n setUrlPage = (pageNumber: number) => {\r\n pushInUrlQuery('page', pageNumber);\r\n }\r\n\r\n setFacets = (facets: IFilterableListFacet[]) => {\r\n let pageNumber = 1;\r\n\r\n setUrlPage(pageNumber);\r\n setUrlFacets(facets);\r\n this.setState(\r\n {\r\n pageNumber,\r\n facets\r\n },\r\n () => this.getResults()\r\n );\r\n }\r\n\r\n onSortSelect = (sortField: string) => {\r\n let sortDirection = 0\r\n if (sortField === this.state.sortField) {\r\n // toggle 0 or 1 (descending vs ascending)\r\n sortDirection = 1 - this.state.sortDirection;\r\n }\r\n\r\n let pageNumber = 1;\r\n\r\n multiPushInUrlQuery({\r\n sortField: sortField,\r\n page: pageNumber,\r\n sortDirection\r\n });\r\n\r\n this.setState({\r\n pageNumber,\r\n sortField,\r\n sortDirection,\r\n }, () => this.getResults());\r\n }\r\n\r\n parseQuery = () => {\r\n return new Promise((resolve, reject) => {\r\n let searchText = this.state.searchText;\r\n let pageNumber = this.state.pageNumber;\r\n let facets = this.state.facets;\r\n let sortField = this.state.sortField;\r\n let sortDirection = this.state.sortDirection;\r\n\r\n const { queryProps } = this;\r\n if (queryProps.k) {\r\n searchText = queryProps.k;\r\n }\r\n if (queryProps.page) {\r\n pageNumber = parseInt(queryProps.page);\r\n }\r\n\r\n if (queryProps.sortField) {\r\n sortField = queryProps.sortField;\r\n }\r\n\r\n if (queryProps.sortDirection) {\r\n sortDirection = queryProps.sortDirection ? parseInt(queryProps.sortDirection) : 0;\r\n }\r\n\r\n if (queryProps.facets) {\r\n facets = JSON.parse(queryProps.facets).map(facet => ({\r\n fieldName: facet.fieldName,\r\n terms: facet.terms.map(term => ({\r\n term: term.term,\r\n selected: true\r\n }))\r\n }));\r\n }\r\n\r\n this.setState({\r\n searchText,\r\n pageNumber,\r\n facets,\r\n sortField,\r\n sortDirection,\r\n }, () => { resolve() })\r\n });\r\n }\r\n\r\n setFilterablePageNameAndEmail = (name: string, email: string) => {\r\n this.setState({\r\n showNameAndEmailInputs: false,\r\n name: name,\r\n email: email\r\n });\r\n this.saveNameAndEmail(name, email);\r\n }\r\n\r\n}\r\n\r\nconst mapStateToProps = (state: IBaseAppState): IStateProps => ({\r\n epiProps: state.epi.props,\r\n results: state.results.results,\r\n uniqueUserId: state.results.uniqueUserId,\r\n getResultsAsyncCaller: state.results.getResultsAsyncCaller\r\n})\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps: IOwnProps): IDispatchProps => bindActionCreators({\r\n getEpiProps: () => getEpiProps(ownProps.contentId) as any,\r\n getResults: getResults as any,\r\n saveNameAndEmail: saveNameAndEmail as any,\r\n resetGetResultsFlag: resetGetResultsCallerFlag as any,\r\n}, dispatch)\r\n\r\nexport const FilterableListApp = connect(mapStateToProps, mapDispatchToProps)(FilterableListPageApp);\r\n","import * as React from 'react';\r\nimport { IFilterableListFacet, IFilterableListFacetTerm } from '../../global/dtos/filterable-list-results-dto';\r\nimport { DropdownFacet } from '../../global/components/inputs/filters/dropdown-facet';\r\n\r\ninterface IProps {\r\n facets: IFilterableListFacet[];\r\n onUpdateFacet: (facets: IFilterableListFacet[]) => void;\r\n\r\n filterHeaderText: string\r\n facetsResetLinkText: string;\r\n isMobile: boolean;\r\n}\r\n\r\ninterface IState {\r\n mobileFacetsVisible: boolean;\r\n}\r\n\r\n\r\nexport class FilterableListFacets extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n mobileFacetsVisible: false,\r\n }\r\n }\r\n\r\n render() {\r\n const className = this.state.mobileFacetsVisible ? 'active' : '';\r\n\r\n return (\r\n
\r\n {this.renderHeader()}\r\n
\r\n {this.props.facets.map((facet, index) => (this.renderFacet(facet, index)))}\r\n
\r\n
\r\n )\r\n }\r\n\r\n renderHeader = () => (\r\n
\r\n {this.props.isMobile && this.renderMobileToggle()}\r\n

{this.props.filterHeaderText}

\r\n
\r\n Reset\r\n
\r\n
\r\n )\r\n\r\n renderMobileToggle = () => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n\r\n onToggleMobileFacets = () => {\r\n this.setState({ mobileFacetsVisible: !this.state.mobileFacetsVisible })\r\n }\r\n\r\n renderFacet = (value: IFilterableListFacet, index) => {\r\n return \r\n }\r\n\r\n onResetFacets = () => {\r\n const { facets, onUpdateFacet } = this.props;\r\n\r\n const newFacets = facets.map(f => ({\r\n ...f,\r\n terms: f.terms.map(t => ({\r\n ...t,\r\n selected: false\r\n }))\r\n }));\r\n\r\n onUpdateFacet(newFacets);\r\n }\r\n}\r\n\r\n","import * as React from 'react';\r\nimport { IFilterableListSearchResultItem } from '../../global/dtos/filterable-list-results-dto';\r\nimport { IAnalytics, GoogleAnalytics } from '../../global/functions/analytics';\r\n\r\nexport interface IProps {\r\n result: IFilterableListSearchResultItem;\r\n itemNumber: number;\r\n columnOrder: string[];\r\n columnNames: string[];\r\n pageTitle: string;\r\n guestName: string;\r\n guestEmail: string;\r\n guestUniqueId: string;\r\n}\r\n\r\nexport class FilterableListResult extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n {this.renderRows()}\r\n
\r\n )\r\n }\r\n\r\n renderRows = () => {\r\n const { rowDictionary } = this.props.result;\r\n const { columnOrder, columnNames } = this.props;\r\n\r\n let keys = Object.getOwnPropertyNames(rowDictionary);\r\n let lookup = {};\r\n columnOrder.forEach(function (columnName) {\r\n lookup[columnName.toLowerCase()] = keys.filter(x => x.toLowerCase() === columnName.toLowerCase())[0];\r\n })\r\n\r\n var components = [];\r\n for (let i = 0; i < columnOrder.length; i++) {\r\n components.push(\r\n \r\n );\r\n }\r\n\r\n return components;\r\n }\r\n}\r\n\r\nconst FilterableListRow = (props) => {\r\n let getValue = function (key: string) {\r\n return props.rowDictionary[props.lookup[key.toLowerCase()]];\r\n }\r\n\r\n let getColumnName = function (key: string) {\r\n return props.columnNames.filter(x => x.replace(/[^A-Z0-9]/ig, '').toLowerCase() === key.replace(/[^A-Z0-9]/ig, '').toLowerCase())[0];\r\n }\r\n\r\n let sendToAnalytics = function () {\r\n var filterableListPageTitle = props.pageTitle;\r\n var filterableListUserInfo = props.guestName + \" - \" + props.guestUniqueId;\r\n var filterableListPdfUrl = getLinkAddress();\r\n\r\n if (props.guestEmail && props.guestEmail !== \"\") {\r\n const analytics = new GoogleAnalytics();\r\n analytics.pushFilterableListInfo(filterableListPageTitle, filterableListUserInfo, filterableListPdfUrl);\r\n }\r\n }\r\n\r\n let getLinkAddress = function () : string {\r\n let cellValue = getValue(props.dictKey);\r\n return cellValue.cellLinkAddress;\r\n }\r\n\r\n let cellValue = getValue(props.dictKey);\r\n let valueText = cellValue.cellTextValue;\r\n let valueLink = getLinkAddress();\r\n let imageLink = cellValue.cellImageAddress;\r\n\r\n return (\r\n
\r\n {getColumnName(props.dictKey)}:\r\n\r\n {imageLink && }\r\n {!imageLink && (valueLink ? {valueText} : valueText)}\r\n
\r\n );\r\n}","import * as React from 'react';\r\nimport { IEpiProps } from '../state-helpers/epi-props';\r\n\r\n\r\nexport interface INoResultsProps {\r\n epiProps: IEpiProps;\r\n}\r\n\r\nexport class NoResults extends React.Component {\r\n render() {\r\n return (\r\n
\r\n );\r\n }\r\n}","import * as React from 'react';\r\nimport * as ReactDOM from 'react-dom';\r\nimport { createStore, applyMiddleware, combineReducers } from 'redux';\r\nimport { Provider } from 'react-redux';\r\nimport { compose } from 'redux';\r\nimport { EpiApiState, epiApiReducerWithDefault } from '../global/ducks/epi-api';\r\nimport { IEpiProps } from './state-helpers/epi-props';\r\nimport { defaultEpiPropsModel } from './reducers/epi-props-model';\r\nimport { fetchMiddleware } from '../global/middleware/fetch-middleware';\r\nimport { FilterableListApp } from './components/filterable-list-app';\r\nimport { FilterableListApiState, filterableListApiReducer } from '../global/ducks/filterable-list-api';\r\nimport { RouterToUrlQuery, addUrlProps, UrlQueryParamTypes, subquery, configureUrlQuery, urlQueryMiddleware } from 'react-url-query';\r\nimport { BrowserRouter, Route} from 'react-router-dom';\r\nimport { history } from './state-helpers/history';\r\nimport { createRoot } from 'react-dom/client';\r\n\r\n\r\n// State that controls this app\r\nexport interface IBaseAppState {\r\n epi: EpiApiState,\r\n results: FilterableListApiState,\r\n uniqueUserId: string\r\n}\r\n\r\nexport const stateReducer = combineReducers({\r\n epi: epiApiReducerWithDefault({ props: defaultEpiPropsModel }),\r\n results: filterableListApiReducer\r\n});\r\n\r\nconst composeEnhancers = (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\r\nconst stateStore = createStore(stateReducer, composeEnhancers(\r\n applyMiddleware(\r\n fetchMiddleware,\r\n urlQueryMiddleware()\r\n )\r\n));\r\n\r\nconfigureUrlQuery({ history, addChangeHandlers: false });\r\nconst RouterContext = React.createContext({});\r\n\r\n//Render the search application by attaching it to the placeholder element search-page-app\r\nconst filterableListApp = document.getElementById('filterable-list-app');\r\nconst root = createRoot(filterableListApp);\r\n\r\nif (filterableListApp) {\r\n const { contentId, pageTitle, name, email, uniqueUserId, gridclass } = (window as any).bootstrap;\r\n const requireNameAndEmail = (window as any).bootstrap.requireNameAndEmail as boolean;\r\n\r\n root.render(\r\n \r\n \r\n \r\n {routeProps => (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}","export const defaultEpiPropsModel = Object.freeze({\r\n filterHeaderText: '',\r\n filterResetText: '',\r\n nameAndEmailFormTitle: '',\r\n nameInputLabel: '',\r\n namePlaceholder: '',\r\n emailInputLabel: '',\r\n emailPlaceholder: '',\r\n nameRequiredError: '',\r\n emailRequiredError: '',\r\n emailInvalidError: '',\r\n submitCtaText: '',\r\n noResultsMessage: '',\r\n});\r\n\r\n","import { createBrowserHistory } from 'history';\r\n\r\nexport const history = createBrowserHistory();\r\n\r\nhistory.listen((location, action) => {\r\n console.log(`The current URL is ${location.pathname}${location.search}${location.hash}`)\r\n console.log(`The last navigation action was ${action}`)\r\n})","import { IGlobalSort } from \"../../global/state-helpers/sort\";\r\nimport { IFilterableListResultsDto } from \"../../global/dtos/filterable-list-results-dto\";\r\n\r\nexport function GetSorts(allowedSorts: string[], sortField: string, inactiveSorts: string[] = null): IGlobalSort[] {\r\n return allowedSorts.map((sort, i, arr) => {\r\n let newSort: IGlobalSort = {\r\n display: sort,\r\n sortId: sort,\r\n selected: sortField ? sort.toLowerCase() === sortField.toLowerCase() : false,\r\n inactive: inactiveSorts.some(x => x.toLowerCase() === sort.toLowerCase())\r\n };\r\n return newSort;\r\n });\r\n}\r\n\r\nexport enum ISearchDirection {\r\n ASCENDING,\r\n DESCENDING\r\n}\r\n\r\nexport interface ISort {\r\n display: string;\r\n sortField: string;\r\n selected: boolean;\r\n direction: ISearchDirection;\r\n id: string;\r\n}\r\n","import { IAutocompleteResults } from '../state-helpers/autocomplete';\r\nimport { GlobalActionType, IAction } from '../actions/index';\r\n\r\nexport class AutocompleteActionType extends GlobalActionType {\r\n static SET_AUTOCOMPLETE_ACTIVE: string = \"SET_AUTOCOMPLETE_ACTIVE\";\r\n static SET_AUTOCOMPLETE_ACTIVE_HIT: string = \"SET_AUTOCOMPLETE_ACTIVE_HIT\";\r\n static SET_AUTOCOMPLETE_HITS: string = \"SET_AUTOCOMPLETE_HITS\";\r\n}\r\n\r\nexport interface IAutocompleteAction extends IAction {\r\n hits: string[];\r\n activeHit: number;\r\n isActive: boolean;\r\n}\r\n\r\nexport function setAutocompleteHits(hits: string[]): IAutocompleteAction {\r\n return {\r\n type: AutocompleteActionType.SET_AUTOCOMPLETE_HITS,\r\n activeHit: -1,\r\n hits,\r\n isActive: false\r\n };\r\n}\r\n\r\nexport function setActiveHit(activeHit: number): IAutocompleteAction {\r\n return {\r\n type: AutocompleteActionType.SET_AUTOCOMPLETE_ACTIVE_HIT,\r\n activeHit,\r\n isActive: false,\r\n hits: []\r\n };\r\n}\r\n\r\nexport function setAutocompleteActive(isActive: boolean): IAutocompleteAction {\r\n return {\r\n type: AutocompleteActionType.SET_AUTOCOMPLETE_ACTIVE,\r\n isActive,\r\n activeHit: -1,\r\n hits: []\r\n }\r\n}","import * as _ from 'lodash';\r\nimport { IDateFilter, IFilter, Filter, IFilterTextMap, IFilterOption } from '../state-helpers/filters';\r\nimport { IOrderHistoryState } from '../../order-history/reducers/index';\r\nimport { IOrderHistoryResultItem } from '../../order-history/state-helpers/order-history-results';\r\nimport { IFacetResult } from '../../search-page/state-helpers/facets';\r\nimport { pushInUrlQuery, multiPushInUrlQuery } from 'react-url-query';\r\n\r\nexport function updateFilters(filters: IFilter[], newFilter: IFilter) {\r\n return filters.map((filter) =>\r\n filter.id === newFilter.id\r\n ? newFilter\r\n : filter\r\n );\r\n}\r\n\r\nexport function updateRadioSelection(filter: IFilter, selection: string): IFilter {\r\n let newFilter = _.cloneDeep(filter);\r\n newFilter.options = filter.options.map((option) => Object.freeze(\r\n {\r\n id: option.id,\r\n display: option.display,\r\n rule: option.rule,\r\n selected: option.id === selection,\r\n count: option.count,\r\n }\r\n ));\r\n\r\n return newFilter;\r\n}\r\n\r\n// Update filters model in state based on URL\r\nexport function updateUrlFilters(urlFilterList: string[], filters: IFilter[]): IFilter[] {\r\n let newFilters = _.clone(filters);\r\n\r\n for (var filterIndex = 0; filterIndex < filters.length; filterIndex++) {\r\n var filter = newFilters[filterIndex];\r\n for (var optionIndex = 0; optionIndex < filter.options.length; optionIndex++) {\r\n var option = filter.options[optionIndex];\r\n if (urlFilterList.indexOf(option.id) !== -1) {\r\n option.selected = true;\r\n }\r\n else {\r\n option.selected = false;\r\n }\r\n }\r\n\r\n }\r\n\r\n return newFilters;\r\n}\r\n\r\nexport function readFacetsFromUrl(urlFilterList: string[], filters: IFacetResult[]): IFacetResult[] {\r\n let newFilters = _.clone(filters);\r\n\r\n for (var currentFacet = 0; currentFacet < filters.length; currentFacet++) {\r\n var facet = newFilters[currentFacet];\r\n for (var currentOption = 0; currentOption < facet.terms.length; currentOption++) {\r\n var option = facet.terms[currentOption]\r\n if (urlFilterList.indexOf(option.displayTerm) != -1) {\r\n option.selected = true;\r\n }\r\n else {\r\n option.selected = false;\r\n }\r\n }\r\n\r\n }\r\n\r\n return newFilters;\r\n}\r\n\r\nexport function updateUrlDateFilters(urlFilterList: string[], filters: IDateFilter[]): IDateFilter[] {\r\n let newFilters = _.clone(filters);\r\n\r\n for (var filterIndex = 0; filterIndex < filters.length; filterIndex++) {\r\n var filter = newFilters[filterIndex];\r\n\r\n if (urlFilterList.indexOf(filter.id) != -1) {\r\n filter.selected = true;\r\n } else {\r\n filter.selected = false;\r\n }\r\n }\r\n\r\n return newFilters;\r\n}\r\n\r\nexport function setUrlFilters(filters: IFilter[]) {\r\n var filterList = filters;\r\n var selectedFilters: string[] = [];\r\n\r\n for (var currentFacet = 0; currentFacet < filters.length; currentFacet++) {\r\n var facet = filterList[currentFacet];\r\n for (var currentOption = 0; currentOption < facet.options.length; currentOption++) {\r\n var option = facet.options[currentOption]\r\n if (option.selected === true) {\r\n selectedFilters.push(option.id);\r\n }\r\n }\r\n }\r\n\r\n var urlFilters = JSON.stringify(selectedFilters);\r\n multiPushInUrlQuery({ filters: urlFilters });\r\n}\r\n\r\nexport function setUrlFacets(filters: IFacetResult[]) {\r\n var filterList = filters;\r\n var selectedFilters: string[] = [];\r\n var shortenedFacets = filters.filter(facetResult => facetResult.terms.some(term => term.selected))\r\n .map(facetResult => (\r\n {\r\n fieldName: facetResult.fieldName,\r\n name: facetResult.name,\r\n terms: facetResult.terms.filter(term => term.selected).map(term => ({ term: term.term }))\r\n }));\r\n\r\n var urlFacets = JSON.stringify(shortenedFacets);\r\n multiPushInUrlQuery({ facets: urlFacets });\r\n}\r\n\r\nexport function setUrlPage(pageNumber: number) {\r\n pushInUrlQuery('page', pageNumber);\r\n}\r\n\r\nexport function setUrlDateFilters(dateFilters: IDateFilter[]) {\r\n var dateFacet = dateFilters;\r\n var selectedFilters: string[] = [];\r\n\r\n for (var currentFacet = 0; currentFacet < dateFacet.length; currentFacet++) {\r\n var facet = dateFilters[currentFacet];\r\n if (facet.selected === true) {\r\n selectedFilters.push(facet.id);\r\n }\r\n\r\n }\r\n var urlFilters = JSON.stringify(selectedFilters);\r\n multiPushInUrlQuery({ dateFilters: urlFilters });\r\n}\r\n\r\nexport function updateCheckboxSelection(filter: IFilter, selection: string): IFilter {\r\n let newFilter = _.cloneDeep(filter);\r\n newFilter.options = filter.options.map((option) => Object.freeze(\r\n {\r\n id: option.id,\r\n display: option.display,\r\n rule: option.rule,\r\n selected: option.id === selection ? !option.selected : option.selected,\r\n count: option.count\r\n }\r\n ));\r\n\r\n return newFilter;\r\n}\r\n\r\n/**\r\n * Serializes the current state of the filters/search text. Used to persist the filter state in the URL bar.\r\n */\r\nexport function serializeFilters(filters: { id: string, selectedOptionIds: string[] }[]): string {\r\n return filters.reduce((acc, f) => {\r\n const selectedOptions = encodeURIComponent(f.selectedOptionIds.join(','));\r\n\r\n if (selectedOptions.length > 0) {\r\n acc += `&${f.id}=${selectedOptions}`;\r\n }\r\n\r\n return acc;\r\n }, '').slice(1);\r\n}\r\n\r\nexport function updateDateSelection(dateFilters: IDateFilter[], value: string) {\r\n var updatedFilters: IDateFilter[] = dateFilters.map(dateFilter => {\r\n return {\r\n id: dateFilter.id,\r\n display: dateFilter.display,\r\n startDate: dateFilter.startDate,\r\n endDate: dateFilter.endDate,\r\n selected: value === dateFilter.id\r\n }\r\n });\r\n\r\n setUrlDateFilters(updatedFilters);\r\n return updatedFilters;\r\n}\r\n\r\n\r\n/// Text mapping for epi props on filters\r\nexport function getIdFromMappedValue(textMap: IFilterTextMap[], filter: IFilter, value: string) {\r\n if (textMap.length === 0) return value;\r\n\r\n for (var i = 0; i < textMap.length; i++) {\r\n if (textMap[i].options.some(option => option.display === value)) {\r\n let optionId = textMap[i].options.filter(option => option.display === value)[0].optionId;\r\n if (filter.options.some(option => option.id === optionId))\r\n return filter.options.filter(option => option.id === optionId)[0].id;\r\n }\r\n }\r\n\r\n return value;\r\n}\r\n\r\nexport function getMappedSelectedValue(textMap: IFilterTextMap[], filter: IFilter) {\r\n let currentSelectedFilters = filter.options.filter((item) => item.selected);\r\n return typeof (currentSelectedFilters) != 'undefined' && currentSelectedFilters != null && currentSelectedFilters.length > 0\r\n ? getMappedOptionDisplayText(textMap, filter, currentSelectedFilters[0])\r\n : '';\r\n}\r\n\r\nexport function getMappedSelectedValues(textMap: IFilterTextMap[], filter: IFilter) {\r\n let currentSelectedFilters = filter.options.filter((item) => item.selected);\r\n return (typeof (currentSelectedFilters) != 'undefined' && currentSelectedFilters != null && currentSelectedFilters.length > 0)\r\n ? currentSelectedFilters.map((item) => getMappedOptionDisplayText(textMap, filter, item))\r\n : [];\r\n}\r\n\r\nexport function getMappedFilterDisplayText(textMap: IFilterTextMap[], filter: IFilter) {\r\n if (textMap.length === 0) return filter.display;\r\n\r\n let displayText = textMap.filter(text => text.filterId === filter.id);\r\n\r\n return typeof (displayText) != 'undefined' && displayText != null && displayText.length > 0\r\n ? displayText[0].display\r\n : filter.display;\r\n}\r\n\r\nexport function getMappedOptionDisplayText(textMap: IFilterTextMap[], filter: IFilter, option: IFilterOption) {\r\n if (textMap.length === 0) return option.display;\r\n\r\n let mappedText = '';\r\n\r\n for (var i = 0; i < textMap.length; i++) {\r\n if (textMap[i].options.some(textOption => textOption.optionId === option.id)) {\r\n let mappedOption = textMap[i].options.filter(textOption => textOption.optionId === option.id)[0];\r\n\r\n mappedText = mappedOption.display;\r\n }\r\n }\r\n\r\n return mappedText && mappedText.length > 0 ? mappedText : option.display;\r\n}\r\n/////////////////\r\n\r\n// Filter out any filter that doesnt match any of the current results\r\nexport function getFilteredFilterResults(filters: IFilter[], results: T[]) {\r\n let filteredFilters: IFilter[] = [];\r\n filteredFilters = filters.map(filter => Object.freeze({\r\n display: filter.display,\r\n id: filter.id,\r\n rule: filter.rule,\r\n template: filter.template,\r\n options: filter.options.filter(option => results && results.some(activity => option.rule(activity)))\r\n }) as IFilter)\r\n .filter(filteredFilter => filteredFilter.options && filteredFilter.options.length > 0);\r\n return filteredFilters;\r\n}","import * as React from 'react';\r\nimport * as Redux from 'redux';\r\n\r\nexport interface IBaseButtonProps {\r\n onClick?: () => void;\r\n customClasses?: string;\r\n buttonText?: string;\r\n isDisabled?: boolean;\r\n id?: string\r\n testID?: string\r\n}\r\n\r\n/// \r\n/// This class can be used for an AAP button\r\n/// \r\n/// Determines whether or not to show the disabled state\r\n/// Default button text\r\n/// Callback for the buttons onClick event\r\n/// Used to supply any additional classes to the button\r\n/// \r\nexport class BaseButton extends React.Component {\r\n static defaultProps = {\r\n onClick: () => { },\r\n customClasses: '',\r\n buttonText: '',\r\n isDisabled: false,\r\n testID: '',\r\n }\r\n\r\n GetClassNames() {\r\n let DISABLED_STYLE = \" disabled\";\r\n let classes = this.props.customClasses;\r\n if (this.props.isDisabled)\r\n classes += DISABLED_STYLE;\r\n return classes;\r\n }\r\n\r\n onButtonClick() {\r\n if (!this.props.isDisabled)\r\n this.props.onClick();\r\n }\r\n\r\n render() {\r\n let boundClick = this.onButtonClick.bind(this);\r\n return (\r\n
\r\n \r\n {this.props.buttonText}\r\n \r\n
\r\n );\r\n }\r\n}","import * as React from 'react';\r\nimport * as Redux from 'redux';\r\nimport { BaseButton, IBaseButtonProps } from './base/base-button';\r\n\r\nexport interface IPrimaryButtonProps extends IBaseButtonProps {\r\n testID?: string;\r\n}\r\n\r\n\r\nexport class PrimaryButton extends React.Component {\r\n GetClassNames() {\r\n //Use any special custom classes + the styles specific to this button type\r\n let BUTTON_STYLE = \" button-primary\";\r\n var classes = this.props.customClasses + BUTTON_STYLE;\r\n return classes;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n );\r\n }\r\n}","import * as React from 'react';\r\nimport { IFilterableListFacet, IFilterableListFacetTerm } from '../../../../global/dtos/filterable-list-results-dto';\r\nimport { IFacetResult, FieldNames, ITerm } from '../../../../search-page/state-helpers/facets';\r\nimport { IDropdownOption, defaultDivider } from '../../../../global/state-helpers/filters';\r\nimport { DropdownSelect } from '../selects/dropdown-select';\r\n\r\ninterface IProps {\r\n facet: IFacetResult;\r\n facets: IFacetResult[];\r\n index: number;\r\n pinnedCountryNames?: string[];\r\n pinnedSubspecialties?: string[];\r\n onUpdateSearchFacet: (facets: IFacetResult[]) => void;\r\n removeSelectText?: boolean;\r\n}\r\n\r\ninterface IState {\r\n\r\n}\r\n\r\nexport class DropdownFacet extends React.Component {\r\n\r\n render() {\r\n const { onUpdateSearchFacet, facet, removeSelectText } = this.props;\r\n\r\n let items = facet.terms.map(t => Object.freeze({\r\n id: t.id.toString(),\r\n display: t.displayTerm,\r\n selected: t.selected,\r\n isDisabled: false\r\n })) as IDropdownOption[];\r\n\r\n // Add pinned items to the top of the dropdown\r\n let pinnedItems = this.getPinnedItems(items);\r\n\r\n // Add the empty placeholder\r\n let empty = {\r\n display: `${removeSelectText ? '' : 'Select'} ${facet.name}`,\r\n id: \"\",\r\n selected: facet.terms.some(x => x.selected)[0] ? facet.terms.filter(x => x.selected)[0] : false,\r\n isDisabled: false,\r\n } as IDropdownOption;\r\n pinnedItems.unshift(empty);\r\n\r\n let dropdownOptions = [].concat(pinnedItems, items);\r\n\r\n return onUpdateSearchFacet(this.mapDropdownFacets(id, facet))} />\r\n }\r\n\r\n getPinnedItems = (items: IDropdownOption[]) => {\r\n const { pinnedCountryNames, pinnedSubspecialties, facet } = this.props;\r\n\r\n var pinnedItems = [];\r\n var toPin = [];\r\n if (pinnedCountryNames && facet.fieldName.toLowerCase() === FieldNames.Countries) {\r\n toPin = pinnedCountryNames;\r\n }\r\n else if (pinnedSubspecialties && facet.fieldName.toLowerCase() === FieldNames.Subspecialties) {\r\n toPin = pinnedSubspecialties\r\n }\r\n\r\n if (toPin && toPin.length > 0) {\r\n [].forEach.call(toPin, (pin) => {\r\n var value = pin.toLowerCase();\r\n if (items.some(x => x.display.toLowerCase() === value)) {\r\n // Make sure we mark pinned items with isPinned: true\r\n pinnedItems.push({ ...items.filter(x => x.display.toLowerCase() === value)[0], isPinned: true });\r\n }\r\n });\r\n\r\n // Add the disabled divider\r\n if (pinnedItems.length > 0) {\r\n pinnedItems.push(defaultDivider);\r\n }\r\n }\r\n\r\n return pinnedItems;\r\n }\r\n\r\n getDisabled = (currentFacet: IFacetResult) => {\r\n if (currentFacet.fieldName.toLowerCase() === FieldNames.States) {\r\n let countries = this.props.facets.filter(f => f.fieldName.toLowerCase() === FieldNames.Countries)[0];\r\n return countries && countries.terms.some(t => t.selected) ? false : true;\r\n }\r\n return false;\r\n }\r\n\r\n getDropdownSelected = (id: string, facet: IFacetResult, f: IFacetResult, t: ITerm) => {\r\n // If this is the current term, toggle it\r\n if (t.id === parseInt(id)) {\r\n return !t.selected;\r\n }\r\n // if countries is set to placeholder, unselect states \r\n if ((f.fieldName.toLowerCase() === FieldNames.States && facet.fieldName.toLowerCase() === FieldNames.Countries && !id)\r\n //or if this is a term in the current facet, set it to off\r\n || f.fieldName === facet.fieldName) {\r\n return false;\r\n }\r\n // Otherwise leave as is\r\n return t.selected;\r\n }\r\n\r\n getDropdownTerms = (id: string, facet: IFacetResult, f: IFacetResult) => {\r\n if (id === '' && f.fieldName === facet.fieldName) {\r\n return [];\r\n }\r\n\r\n return f.terms.map(t => ({\r\n ...t,\r\n selected: this.getDropdownSelected(id, facet, f, t)\r\n }))\r\n }\r\n\r\n mapDropdownFacets = (id: string, facet: IFacetResult) => {\r\n return this.props.facets.map(f => ({\r\n ...f,\r\n // Reset the terms for this facet when the placeholder is chosen\r\n terms: this.getDropdownTerms(id, facet, f)\r\n }));\r\n }\r\n}\r\n\r\n","import * as React from 'react';\r\nimport { ControlledTextbox } from '../textbox/controlled-textbox';\r\nimport { PrimaryButton } from '../../../components/buttons/primary-button';\r\nimport { isValidEmail } from '../../../functions/validation';\r\n\r\nexport interface IProps {\r\n formTitle: string;\r\n nameInputLabel: string;\r\n namePlaceholder: string;\r\n emailInputLabel: string;\r\n emailPlaceholder: string;\r\n nameRequiredError: string;\r\n emailRequiredError: string;\r\n emailInvalidError: string;\r\n submitCtaText: string;\r\n setNameAndEmail(name: string, email: string): void;\r\n}\r\n\r\nexport interface IState {\r\n name: string,\r\n email: string,\r\n nameHasError: boolean,\r\n nameError: string,\r\n emailHasError: boolean,\r\n emailError: string\r\n}\r\n\r\nexport class RestrictedContentInputs extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n name: \"\",\r\n email: \"\",\r\n nameHasError: false,\r\n nameError: \"\",\r\n emailHasError: false,\r\n emailError: \"\",\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n

{this.props.formTitle}

\r\n\r\n \r\n\r\n \r\n\r\n \r\n
\r\n )\r\n }\r\n\r\n onNameInput = (e) => {\r\n this.setState({\r\n name: e.target.value\r\n });\r\n }\r\n\r\n onEmailInput = (e) => {\r\n this.setState({\r\n email: e.target.value\r\n });\r\n }\r\n\r\n onKeyDown = (e) => {\r\n if (e.keyCode === 13) {\r\n this.onSubmit();\r\n }\r\n }\r\n\r\n onSubmit = () => {\r\n let nameHasError = false;\r\n let nameError = \"\";\r\n let emailHasError = false;\r\n let emailError = \"\";\r\n\r\n if (!this.state.name || this.state.name === \"\") {\r\n nameHasError = true;\r\n nameError = this.props.nameRequiredError;\r\n }\r\n\r\n if (!this.state.email || this.state.email === \"\") {\r\n emailHasError = true;\r\n emailError = this.props.emailRequiredError;\r\n }\r\n else if (!isValidEmail(this.state.email)) {\r\n emailHasError = true;\r\n emailError = this.props.emailInvalidError;\r\n }\r\n\r\n this.setState({\r\n nameHasError: nameHasError,\r\n emailHasError: emailHasError,\r\n nameError: nameError,\r\n emailError: emailError\r\n });\r\n\r\n if (nameHasError == true || emailHasError == true) {\r\n return;\r\n }\r\n\r\n this.props.setNameAndEmail(this.state.name, this.state.email);\r\n }\r\n}","import * as React from 'react';\r\nimport * as Redux from 'redux';\r\n\r\ninterface IAutocompleteProps {\r\n autocompleteResults: any[];\r\n onResultClicked(result: any): void;\r\n onMouseEnter?(id): void;\r\n onMouseLeave?(): void;\r\n activeIndex: number;\r\n searchTerm?: string;\r\n isActive?: boolean;\r\n testID?: string;\r\n}\r\n\r\ninterface IAutocompleteResultProps {\r\n result: any;\r\n isActive: boolean;\r\n searchTerm?: string;\r\n onResultClicked(searchTerm: any): void;\r\n onMouseEnter?(id): void;\r\n onMouseLeave?(): void;\r\n id: number;\r\n testID?: string;\r\n}\r\n\r\nexport class Autocomplete extends React.Component {\r\n render() {\r\n return (\r\n
\r\n
    \r\n {this.props.autocompleteResults.map((r, i) =>\r\n \r\n )}\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nclass AutocompleteResult extends React.Component {\r\n getClassName(): string {\r\n if (this.props.isActive)\r\n return 'highlighted';\r\n return '';\r\n }\r\n\r\n GetHighlightedAutoComplete() : string {\r\n // Want to escape all '\\' characters for the Regex. Also what to trim spaces and make it lower case for consistency\r\n var highlightedTerm = this.props.searchTerm\r\n .replace('\\\\', '\\\\\\\\')\r\n .replace('(', '\\\\(')\r\n .replace(')', '\\\\)')\r\n .trim()\r\n .toLowerCase();\r\n\r\n return this.props.result.toLowerCase().replace(new RegExp('(' + highlightedTerm + ')'), '$1');\r\n }\r\n\r\n htmlEncode(stringToEncode) {\r\n return { __html: stringToEncode };\r\n } \r\n\r\n onResultClicked = () => {\r\n this.props.onResultClicked(this.props.result);\r\n }\r\n\r\n render() {\r\n return (\r\n
  • this.props.onMouseEnter && this.props.onMouseEnter(this.props.id)}\r\n onClick={this.onResultClicked}\r\n data-testid={ `${this.props.testID}-result-${this.props.id}`}\r\n >\r\n \r\n
  • \r\n )\r\n }\r\n}","import * as React from 'react';\r\nimport * as _ from 'lodash';\r\nimport { connect } from 'react-redux';\r\nimport { Textbox } from '../textbox/textbox';\r\nimport { PrimaryButton } from '../../buttons/primary-button';\r\nimport { Autocomplete } from '../search-bar/autocomplete';\r\nimport { IAutocompleteResults } from '../../../state-helpers/autocomplete';\r\nimport { setActiveHit, setAutocompleteActive, setAutocompleteHits } from '../../../actions/autocomplete-actions';\r\nimport { bindActionCreators } from 'redux';\r\n\r\n/// \r\n/// This is a controlled component used to render a search bar\r\n/// To use autocomplete, pass in an autocompleteModel that implements IAutocompleteResults\r\n/// And call setAutocompleteResults with the string array of hits based on search term inside the onChange handler\r\n/// \r\n/// The Redux dispatch function\r\n/// The controlled value of the search term\r\n/// Callback function when the user submits the search\r\n/// Callback function when the text is changed. Use setAutocompleteResults as explained above.\r\n/// A unique string identifier used for HTML.\r\n/// The autocomplete model (optional, default=null)\r\n/// Number of characters before autocomplete displays (optional, default=1)\r\n/// Text for the search button (optional, default='Search')\r\n/// Default value to pre-populate the textbox (optional, default='')\r\n/// Default placeholder text (optional, default='')\r\n/// Used to supply any additional classes to the surrounding div (optional, default='')\r\ninterface IStateProps {\r\n\r\n}\r\n\r\ninterface IDispatchProps {\r\n setActiveHit: (index: number) => void;\r\n setAutocompleteHits: (hits: string[]) => void;\r\n setAutocompleteActive: (active: boolean) => void;\r\n}\r\n\r\ninterface IOwnProps {\r\n id: string;\r\n searchValue: string;\r\n onSearch: (val: string) => void;\r\n onChange: (val: string, setAutocompleteResults?: (hits: string[]) => void) => void;\r\n autocompleteModel?: IAutocompleteResults;\r\n charsForAutocomplete?: number;\r\n searchButtonText?: string;\r\n defaultValue?: string;\r\n placeHolder?: string;\r\n customClasses?: string;\r\n searchBoxText?: string;\r\n setOpen?: boolean;\r\n}\r\n\r\ntype IProps = IStateProps & IDispatchProps & IOwnProps;\r\n\r\ninterface IState {\r\n searchBarOpen: boolean;\r\n}\r\n\r\nexport class SearchBar extends React.Component {\r\n static defaultProps = {\r\n autocompleteModel: null,\r\n charsForAutocomplete: 1,\r\n searchButtonText: \"Search\",\r\n defaultValue: \"\",\r\n placeHolder: \"\",\r\n customClasses: \"\",\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.HasAutocomplete = this.props.autocompleteModel != null;\r\n this.TextboxId = this.props.id + \"-searchtextbox\";\r\n let isMobile = window.innerWidth < 600;\r\n\r\n this.state = {\r\n searchBarOpen: isMobile || this.props.setOpen ? true : false,\r\n }\r\n }\r\n\r\n HasAutocomplete: boolean;\r\n TextboxId: string;\r\n\r\n KeyDownHandler(e) {\r\n // If no autocomplete\r\n if (!this.HasAutocomplete) {\r\n if (e.keyCode == 13) {\r\n this.props.onSearch(this.props.searchValue);\r\n }\r\n return;\r\n }\r\n\r\n switch (e.keyCode) {\r\n //Up arrow\r\n //Move selected autocomplete result up one\r\n case 38: {\r\n if (this.props.autocompleteModel.activeHit == -1)\r\n this.props.setActiveHit(this.props.autocompleteModel.hits.length - 1);\r\n else\r\n this.props.setActiveHit(this.props.autocompleteModel.activeHit - 1);\r\n\r\n e.preventDefault();\r\n\r\n break;\r\n }\r\n //Down arrow\r\n //Move selected autocomplete result down one\r\n case 40: {\r\n if (this.props.autocompleteModel.activeHit == this.props.autocompleteModel.hits.length - 1)\r\n this.props.setActiveHit(-1);\r\n else\r\n this.props.setActiveHit(this.props.autocompleteModel.activeHit + 1);\r\n break;\r\n }\r\n //Enter key\r\n //If an autocomplete option is selected, change the search text to that, otherwise submit\r\n case 13: {\r\n var term = this.props.searchValue;\r\n\r\n if (this.props.autocompleteModel.activeHit > -1) {\r\n term = this.props.autocompleteModel.hits[this.props.autocompleteModel.activeHit];\r\n this.props.setActiveHit(-1);\r\n }\r\n\r\n this.props.onSearch(term);\r\n this.ForceTextUpdate(term);\r\n this.props.setActiveHit(-1);\r\n this.props.setAutocompleteHits([]);\r\n }\r\n }\r\n }\r\n get IsMobile() {\r\n return window.innerWidth < 961;\r\n }\r\n\r\n get ButtonDisplayClass() {\r\n // mobile responsiveness handled in global-search-bar.scss\r\n return (this.props.searchBoxText && !this.IsMobile) ? \"show-box-text\" : \"show-button-text\";\r\n }\r\n\r\n ForceTextUpdate(newVal: string) {\r\n (document.getElementById(this.TextboxId) as HTMLInputElement).value = newVal;\r\n }\r\n\r\n UpdateSearchText(e) {\r\n if (this.HasAutocomplete) {\r\n let showAutocomplete = (e.currentTarget.value.length >= this.props.charsForAutocomplete);\r\n this.props.onChange(e.currentTarget.value, (hits) => {\r\n this.props.setAutocompleteHits(hits);\r\n this.props.setAutocompleteActive(showAutocomplete);\r\n });\r\n } else {\r\n this.props.onChange(e.currentTarget.value);\r\n }\r\n }\r\n\r\n AutocompleteResultClicked(value) {\r\n this.props.onSearch(value);\r\n this.ForceTextUpdate(value);\r\n this.props.setActiveHit(-1);\r\n this.props.setAutocompleteHits([]);\r\n }\r\n\r\n onBlurHandler(e: any) {\r\n if (this.props.autocompleteModel.activeHit == -1)\r\n this.props.setAutocompleteActive(false);\r\n }\r\n\r\n onFocusHandler(e: any) {\r\n if (this.props.searchValue.length >= this.props.charsForAutocomplete) {\r\n this.props.setAutocompleteActive(true);\r\n\r\n }\r\n }\r\n\r\n searchClear(e) {\r\n this.props.onChange('', (hits) => { });\r\n this.props.setActiveHit(-1);\r\n this.props.setAutocompleteHits([]);\r\n this.ForceTextUpdate('');\r\n (document.getElementById(this.TextboxId) as HTMLInputElement).focus();\r\n }\r\n\r\n handleSearchButtonClick = () => {\r\n\r\n if (this.state.searchBarOpen || this.props.id == \"shop-header-search-bar\") {\r\n this.props.onSearch(this.props.searchValue)\r\n } else {\r\n this.setState(prevState => {\r\n return {\r\n searchBarOpen: true,\r\n buttonText: this.props.searchButtonText\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n render() {\r\n let boundInput = this.UpdateSearchText.bind(this);\r\n let boundKeyDown = this.KeyDownHandler.bind(this);\r\n let boundAutocompleteResultClicked = this.AutocompleteResultClicked.bind(this);\r\n let boundOnBlur = this.HasAutocomplete ? this.onBlurHandler.bind(this) : () => { };\r\n let boundOnFocus = this.HasAutocomplete ? this.onFocusHandler.bind(this) : () => { };\r\n let boundSearchClear = this.searchClear.bind(this);\r\n return (\r\n
    \r\n
    \r\n {/* Textbox must be uncontrolled to handle keystroke issue in IE */}\r\n \r\n \r\n \r\n \r\n {(this.props.searchValue.length > 0) &&\r\n
    \r\n \r\n
    \r\n }\r\n {(this.props.autocompleteModel) &&\r\n this.props.setActiveHit(-1)}\r\n />}\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state): IStateProps => ({\r\n\r\n})\r\n\r\nconst mapDispatchToProps = (dispatch): IDispatchProps => {\r\n return bindActionCreators({\r\n setActiveHit,\r\n setAutocompleteHits,\r\n setAutocompleteActive,\r\n }, dispatch);\r\n}\r\n\r\nexport const ConnectedSearchBar = connect(mapStateToProps, mapDispatchToProps)(SearchBar);\r\n","import * as React from 'react';\r\nimport * as Redux from 'redux';\r\nimport * as _ from 'lodash';\r\nimport { IGlobalSort } from '../../../state-helpers/sort';\r\nimport { isNullOrUndefined } from 'util';\r\n\r\nexport interface ISortProps {\r\n sort: IGlobalSort;\r\n sortGroupName: string;\r\n activeSortDirection?: number;\r\n}\r\n\r\nexport interface ISortGroupProps {\r\n sortGroupName: string;\r\n sorts: IGlobalSort[];\r\n onSort?: (sort: IGlobalSort) => void;\r\n customClasses?: string;\r\n twoDimensional?: boolean;\r\n activeSortDirection?: number;\r\n}\r\n\r\n/// \r\n/// This component creates a sort group\r\n/// T is the item type that will be sorted\r\n/// \r\n/// A unique identifier for the sort group\r\n/// Array of IGlobalSort objects corresponding to sorts\r\n/// The callback function for when the user selects a new sort (optional)\r\nexport class SortGroup extends React.Component, any> {\r\n static defaultProps = {\r\n onSort: (sort) => { },\r\n customClasses: ''\r\n }\r\n\r\n OnChange(newId: string) {\r\n let sort = _.find(this.props.sorts, (s) => s.sortId === newId);\r\n this.props.onSort(sort);\r\n }\r\n\r\n OnClick(element: HTMLElement) {\r\n if (element.tagName.toLowerCase() === 'input') {\r\n let sort = _.find(this.props.sorts, (s) => s.sortId === element.id);\r\n this.props.onSort(sort);\r\n }\r\n }\r\n\r\n render() {\r\n const { sorts, sortGroupName, customClasses, twoDimensional, activeSortDirection } = this.props;\r\n //let boundOnChange = this.OnChange.bind(this);\r\n return (\r\n
    \r\n {sorts &&\r\n
    !twoDimensional && this.OnChange((ev.target as any).id)} onClick={(ev) => twoDimensional && this.OnClick(ev.target as HTMLElement)}\r\n ref=\"fieldset\">\r\n
    \r\n {this.props.sorts.map((s, i) =>\r\n )}\r\n
    \r\n
    }\r\n
    \r\n );\r\n }\r\n}\r\n\r\n/// \r\n/// This component represents a single sort in a sort group\r\n/// T is the item type that will be sorted\r\n/// \r\n/// The ISort object corresponding to this sort\r\n/// Boolean, indicates whether sort is selected\r\n/// The unique identifier for the sort group\r\nexport class Sort extends React.Component, any> {\r\n render() {\r\n const { sort, sortGroupName, activeSortDirection } = this.props;\r\n \r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}","import * as React from 'react';\r\nimport * as Redux from 'redux';\r\n\r\nexport interface IControlledTextboxProps {\r\n id: string;\r\n value: string;\r\n onInput?: (e: React.FormEvent) => void;\r\n onKeyPress?: (e: React.FormEvent) => void;\r\n onKeyDown?: (e: React.FormEvent) => void;\r\n onBlur?: (e: React.FormEvent) => void;\r\n onFocus?: (e: React.FormEvent) => void;\r\n hasError?: boolean;\r\n errorText?: string;\r\n labelText?: string;\r\n placeHolder?: string;\r\n customClasses?: string;\r\n required?: boolean;\r\n}\r\n\r\n/// \r\n/// This class can be used for a textbox with built in styling and handling for the AAP error state.\r\n/// This is an controlled component whose value should be tied to state.\r\n/// For an uncontrolled component, use Textbox instead.\r\n/// \r\n/// The html id of the textbox. Required to associate the label with the textbox\r\n/// The callback function for when the textbox input changes. Current textbox text should be saved in a state variable\r\n/// Determines whether or not to show the error state (optional, default=false)\r\n/// The error message displayed when the textbox is in its error state (optional, default='')\r\n/// The text shown for the label (optional, default='')\r\n/// Default text to display in the textbox (optional, default='')\r\n/// Default placeholder text (optional, default='')\r\n/// Used to supply any additional classes to the surrounding textbox div (optional, default='')\r\n/// \r\nexport class ControlledTextbox extends React.Component {\r\n static defaultProps = {\r\n onInput: () => { },\r\n onKeyPress: () => { },\r\n onKeyDown: () => { },\r\n onFocus: () => { },\r\n onBlur: () => { },\r\n hasError: false,\r\n errorText: '',\r\n labelText: '',\r\n defaultValue: '',\r\n placeHolder: '',\r\n customClasses: '',\r\n required: false\r\n }\r\n\r\n GetClassNames() {\r\n let FORM_CLASSES = \" form-element form-element-required\";\r\n let INVALID_CLASS = \" form-element-invalid\";\r\n let classes = this.props.customClasses + FORM_CLASSES;\r\n\r\n if (this.props.hasError)\r\n classes += INVALID_CLASS;\r\n\r\n return classes;\r\n }\r\n\r\n onInputHandler(e: React.FormEvent) {\r\n this.props.onInput(e);\r\n }\r\n\r\n onKeyPressHandler(e: any) {\r\n this.props.onKeyPress(e);\r\n }\r\n\r\n onKeyDownHandler(e: any) {\r\n this.props.onKeyDown(e);\r\n }\r\n\r\n onBlurHandler(e: any) {\r\n this.props.onBlur(e);\r\n }\r\n\r\n onFocusHandler(e: any) {\r\n this.props.onFocus(e);\r\n }\r\n\r\n render() {\r\n let boundInput = this.onInputHandler.bind(this);\r\n let boundKeyPress = this.onKeyPressHandler.bind(this);\r\n let boundonKeyDown = this.onKeyDownHandler.bind(this);\r\n let boundOnBlur = this.onBlurHandler.bind(this);\r\n let boundOnFocus = this.onFocusHandler.bind(this);\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n {this.props.errorText}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}","export interface IFilterableListResultsDto {\r\n searchItemList: IFilterableListSearchResultItem[];\r\n facets: IFilterableListFacet[];\r\n totalNumber: number;\r\n totalPages: number;\r\n allowedSortFields: string[];\r\n columnNames: string[];\r\n columnOrder: string[];\r\n}\r\n\r\nexport interface IFilterableListSearchResultItem {\r\n rowDictionary: Object;\r\n}\r\n\r\nexport interface IFilterableListFacet {\r\n name: string;\r\n terms: IFilterableListFacetTerm[];\r\n renderTemplate: number;\r\n fieldName: string;\r\n}\r\n\r\n\r\nexport interface IFilterableListFacetTerm {\r\n displayTerm: string;\r\n term: string;\r\n hits: number;\r\n fieldName: string;\r\n id: number;\r\n selected: boolean;\r\n alwaysShow: boolean;\r\n from: string;\r\n to: string;\r\n description: string;\r\n}\r\n\r\nexport const DefaultFilterableListResults = {\r\n results: null,\r\n uniqueUserId: \"\",\r\n getResultsAsyncCaller: '',\r\n}\r\n\r\n\r\nexport interface IFilterableListCriteria {\r\n pageId: number;\r\n searchTerm: string;\r\n pageSize: number;\r\n page: number;\r\n facets: IFilterableListFacet[];\r\n sortField: string;\r\n sortDirection: number;\r\n allowedSortFields: string[];\r\n}\r\n\r\nexport interface INameAndEmailRequest {\r\n name: string;\r\n email: string;\r\n}\r\n","import { Moment } from \"moment\";\r\nimport { AnyAction } from \"redux\";\r\nimport { FetchStatus, IAsyncAction, IFetchAction } from \"../middleware/fetch-middleware\";\r\nimport { DateFormat } from \"../enums/date-format\";\r\nimport { string } from \"prop-types\";\r\nimport { IUserDto, ICustomerSecurityQuestionDto, IEthnicityDto, ISpecialty, IInterest, IDesignationDto, IIndividualEthnicityDto, IEmploymentDto, IIndividualSpecialtyDto, IIndividualInterestDto, IIndividualLanguageDto } from \"../dtos/user-dto\";\r\nimport { IDesignation } from \"../../my-account/state-helpers/user\";\r\nimport { isNullOrUndefined } from \"util\";\r\nimport { DefaultFilterableListResults, IFilterableListCriteria, INameAndEmailRequest, IFilterableListResultsDto } from \"../dtos/filterable-list-results-dto\";\r\n\r\nexport enum FilterableListApiActions {\r\n GetResults = 'filterableListApiActions/getResults',\r\n SaveNameAndEmail = 'filterableListApiActions/saveNameAndEmail',\r\n ResetGetResultsCallerFlag = 'filterableListApiActions/resetGetResultsCallerFlag'\r\n}\r\n\r\nexport interface FilterableListApiState {\r\n results: IFilterableListResultsDto;\r\n uniqueUserId: string;\r\n getResultsAsyncCaller: string;\r\n}\r\n\r\nexport const filterableListApiReducer = (state = DefaultFilterableListResults, action: AnyAction) => {\r\n switch (action.type) {\r\n\r\n case FilterableListApiActions.GetResults + FetchStatus.Complete:\r\n return { ...state, results: action.data, getResultsAsyncCaller: action.meta.awaitingCaller };\r\n\r\n case FilterableListApiActions.SaveNameAndEmail + FetchStatus.Complete:\r\n return { ...state, results: DefaultFilterableListResults.results, uniqueUserId: action.data.uniqueUserId };\r\n case FilterableListApiActions.ResetGetResultsCallerFlag:\r\n return { ...state, getResultsAsyncCaller: action.meta.awaitingCaller };\r\n default: return { DefaultFilterableListResults };\r\n }\r\n}\r\n\r\nconst BaseUrl = '/api/v1/filterableList';\r\n\r\n\r\nexport const getResults = (criteria: IFilterableListCriteria, asyncCaller: string = ''): IFetchAction => {\r\n let test = \"test\";\r\n\r\n return {\r\n type: FilterableListApiActions.GetResults,\r\n fetch: new Request(`${BaseUrl}/getResults`, { method: 'Post', body: JSON.stringify(criteria) }),\r\n meta: {\r\n awaitingCaller: asyncCaller,\r\n }\r\n }\r\n}\r\n\r\nexport const saveNameAndEmail = (request: INameAndEmailRequest): IFetchAction => {\r\n\r\n return {\r\n type: FilterableListApiActions.SaveNameAndEmail,\r\n fetch: new Request(`${BaseUrl}/saveNameAndEmail`, { method: 'Post', body: JSON.stringify(request) })\r\n }\r\n}\r\n\r\nexport const resetGetResultsCallerFlag = (asyncCaller: string = ''): IAsyncAction => {\r\n return {\r\n type: FilterableListApiActions.ResetGetResultsCallerFlag,\r\n meta: {\r\n awaitingCaller: asyncCaller\r\n }\r\n }\r\n}\r\n\r\n","export const isValidEmail = (email: string): boolean => {\r\n // Serious validation\r\n const regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return regex.test(email);\r\n}\r\n\r\nexport const isStrongPassword = (password: string): boolean => {\r\n // At least 1 uppercase letter, 1 lowercase letter, at least 1 digit, at least 1 special character, minimum eight in length\r\n const regex = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/;\r\n return regex.test(password);\r\n}\r\n\r\nconst hasRequiredLength = (value: string, length: number): boolean => {\r\n // at least length characters\r\n return value.length >= length;\r\n}\r\n\r\nconst hasRequiredNonLetterOrDigit = (value: string, requiredNonLetterOrDigit: boolean): boolean => {\r\n if (!requiredNonLetterOrDigit) {\r\n return true;\r\n }\r\n\r\n // contains character other than letter or digit\r\n const regex = /[^\\w]/g;\r\n return regex.test(value);\r\n}\r\n\r\nconst hasRequiredDigit = (value: string, requiredDigit: boolean): boolean => {\r\n if (!requiredDigit) {\r\n return true;\r\n }\r\n\r\n // contains at least 1 digit\r\n const regex = /\\d/;\r\n return regex.test(value);\r\n}\r\n\r\nconst hasRequiredUpperCase = (value: string, requiredUpperCase: boolean): boolean => {\r\n if (!requiredUpperCase) {\r\n return true;\r\n }\r\n\r\n // contains at least 1 uppercase letter\r\n return value.toLowerCase() !== value;\r\n}\r\n\r\nconst hasRequiredLowerCase = (value: string, requiredLowerCase: boolean): boolean => {\r\n if (!requiredLowerCase) {\r\n return true;\r\n }\r\n\r\n // contains at least 1 lowercase letter\r\n return value.toUpperCase() !== value;\r\n\r\n}\r\n\r\nexport const isValidPassword = (password: string) => {\r\n return hasRequiredLength(password, (window as any).passwordValidation.passwordRequiredLength)\r\n && hasRequiredNonLetterOrDigit(password, (window as any).passwordValidation.passwordRequireNonLetterOrDigit)\r\n && hasRequiredDigit(password, (window as any).passwordValidation.passwordRequireDigit)\r\n && hasRequiredUpperCase(password, (window as any).passwordValidation.passwordRequireUpperCase)\r\n && hasRequiredLowerCase(password, (window as any).passwordValidation.passwordRequireLowerCase);\r\n}\r\n\r\nexport const hasNonAsciiCharacters = (value: string): boolean => {\r\n // matches any character within the ASCII range (including extended ascii) (space (char code 32) to ÿ ( char code 255)))\r\n const asciiRegex = /^[ -ÿ]*$/; \r\n return !asciiRegex.test(value);\r\n}","import * as _ from 'lodash';\r\nimport moment from 'moment';\r\n\r\nexport interface IFilter {\r\n id: string;\r\n display: string;\r\n template: FilterTemplate;\r\n options: IFilterOption[];\r\n rule: (T) => boolean;\r\n count?: (T) => number;\r\n}\r\n\r\nexport interface IUrlFilter {\r\n filterId: string,\r\n selectedOptions: string[]\r\n}\r\n\r\nexport interface IFilterOption {\r\n id: string;\r\n rule: (T) => boolean;\r\n display: string;\r\n selected: boolean;\r\n count?: (T) => number;\r\n}\r\n\r\nexport interface IDateFilter {\r\n display: string;\r\n startDate: moment.Moment;\r\n endDate: moment.Moment;\r\n id: string;\r\n selected: boolean;\r\n}\r\n\r\nexport interface IToggleFilter {\r\n id: string;\r\n isSelected: boolean;\r\n rule: (T) => boolean;\r\n}\r\n\r\nexport enum FilterTemplate {\r\n CHECKBOX,\r\n RADIO\r\n}\r\n\r\nexport class Filter implements IFilter {\r\n id: string;\r\n display: string;\r\n options: IFilterOption[];\r\n template: FilterTemplate;\r\n \r\n constructor(options: { options: IFilterOption[], template: FilterTemplate, id: string, display: string }) {\r\n _.extend(this, options);\r\n\r\n // Create a new options array\r\n this.options = Array.prototype.slice.call(options.options);\r\n };\r\n\r\n rule = function (item: T) {\r\n let selectedOptions = this.options && this.options.some(o => o.selected)\r\n ? this.options.filter(o => o.selected)\r\n : [] as IFilterOption[];\r\n\r\n if (selectedOptions.length === 0) {\r\n return true;\r\n }\r\n\r\n return selectedOptions.some(o => o.rule(item));\r\n }\r\n}\r\n\r\nexport interface IFilterTextMap {\r\n filterId: string;\r\n display: string;\r\n options: IOptionTextMap[];\r\n}\r\n\r\nexport interface IOptionTextMap {\r\n optionId: string;\r\n display: string;\r\n count: number;\r\n}\r\n\r\nexport interface IDropdownOption {\r\n id: string;\r\n display: string;\r\n selected: boolean;\r\n isDisabled?: boolean;\r\n isPinned?: boolean;\r\n}\r\n\r\nexport interface ISuperSelectSource {\r\n id: string;\r\n name: string;\r\n size: string;\r\n selected: boolean;\r\n}\r\n\r\nexport const defaultDivider = { display: '---', id: 'divider', isDisabled: true, selected: false };\r\n\r\nexport function getDisabledDropdownItems(pinnedNames: string[], items: IDropdownOption[]): IDropdownOption[] {\r\n var pinnedItems = [];\r\n if (pinnedNames) {\r\n [].forEach.call(pinnedNames, (item) => {\r\n var value = item.toLowerCase();\r\n if (items.some(x => x.display.toLowerCase() === value)) {\r\n pinnedItems.push({ ...items.filter(x => x.display.toLowerCase() === value)[0], isPinned: true });\r\n }\r\n });\r\n\r\n // Add the disabled divider\r\n if (pinnedItems.length > 0) {\r\n pinnedItems.push(defaultDivider);\r\n }\r\n }\r\n return pinnedItems;\r\n}","export interface IFacets {\r\n facets: IFacetResult[];\r\n mobileFacetsVisible: boolean;\r\n dropdownVisible: boolean;\r\n selectedFacetCount: number;\r\n}\r\n\r\nexport interface IFacetResult {\r\n name: string;\r\n fieldName: string;\r\n terms: ITerm[];\r\n renderTemplate: number;\r\n}\r\n\r\nexport interface ITerm {\r\n displayTerm: string;\r\n fieldName: string;\r\n term: string;\r\n hits: number;\r\n selected: boolean;\r\n id: number;\r\n alwaysShow: boolean;\r\n from: string;\r\n to: string;\r\n description: string;\r\n}\r\n\r\nexport function updateFacetSelected(fieldName: string, termName: string, facetList: IFacetResult[]) {\r\n if (facetList.filter(f => f.fieldName.toLowerCase() === fieldName) != null && facetList.filter(f => f.fieldName.toLowerCase() === fieldName).length > 0) {\r\n if (facetList.filter(f => f.fieldName.toLowerCase() === fieldName)[0].terms.filter(t => t.term.toLowerCase() === termName).length > 0) {\r\n facetList.filter(f => f.fieldName.toLowerCase() === fieldName)[0].terms.filter(t => t.term.toLowerCase() === termName)[0].selected = true;\r\n }\r\n }\r\n return facetList;\r\n}\r\n\r\n// Only things that matter in these two facets are the name, fieldName, term and selected\r\nexport const englishFacets = [{\r\n name: \"Language\",\r\n fieldName: \"Language\",\r\n terms: [{\r\n displayTerm: \"English\",\r\n term: \"English\",\r\n hits: 0,\r\n id: 0,\r\n selected: true,\r\n alwaysShow: false,\r\n from: null,\r\n to: null\r\n }]\r\n}] as IFacetResult[];\r\n\r\nexport const spanishFacets = [{\r\n name: \"Language\",\r\n fieldName: \"Language\",\r\n terms: [{\r\n displayTerm: \"Spanish\",\r\n term: \"Spanish\",\r\n hits: 0,\r\n id: 0,\r\n selected: true,\r\n alwaysShow: false,\r\n from: null,\r\n to: null\r\n }]\r\n}] as IFacetResult[];\r\n\r\nexport var FieldNames = Object.freeze({\r\n Countries: \"countries\",\r\n States: \"states\",\r\n Subspecialties: \"subspecialties\",\r\n}); \r\n\r\n \r\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n this._pendingLocation = location;\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n }\n });\n }\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n if (!when || context.staticContext) return null;\n\n const method = context.history.block;\n\n return (\n {\n self.release = method(message);\n }}\n onUpdate={(self, prevProps) => {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n }}\n onUnmount={self => {\n self.release();\n }}\n message={message}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nexport default Prompt;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","if (__DEV__) {\n if (typeof window !== \"undefined\") {\n const global = window;\n const key = \"__react_router_build__\";\n const buildNames = { cjs: \"CommonJS\", esm: \"ES modules\", umd: \"UMD\" };\n\n if (global[key] && global[key] !== process.env.BUILD_FORMAT) {\n const initialBuildName = buildNames[global[key]];\n const secondaryBuildName = buildNames[process.env.BUILD_FORMAT];\n\n // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n throw new Error(\n `You are loading the ${secondaryBuildName} build of React Router ` +\n `on a page that is already running the ${initialBuildName} ` +\n `build, so things won't work right.`\n );\n }\n\n global[key] = process.env.BUILD_FORMAT;\n }\n}\n\nexport { default as MemoryRouter } from \"./MemoryRouter.js\";\nexport { default as Prompt } from \"./Prompt.js\";\nexport { default as Redirect } from \"./Redirect.js\";\nexport { default as Route } from \"./Route.js\";\nexport { default as Router } from \"./Router.js\";\nexport { default as StaticRouter } from \"./StaticRouter.js\";\nexport { default as Switch } from \"./Switch.js\";\nexport { default as generatePath } from \"./generatePath.js\";\nexport { default as matchPath } from \"./matchPath.js\";\nexport { default as withRouter } from \"./withRouter.js\";\n\nexport { default as __HistoryContext } from \"./HistoryContext.js\";\nexport { default as __RouterContext } from \"./RouterContext.js\";\n\nexport { useHistory, useLocation, useParams, useRouteMatch } from \"./hooks.js\";\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n"],"sourceRoot":""}