{"version":3,"file":"static/js/357.e7ab2e39.chunk.js","mappings":"gLAGA,MAKA,EAL8B,SAAUA,EAAYC,GAEhD,OADuBC,EAAAA,EAAAA,KAAYC,GAAQ,IAAIC,EAAAA,EAAgBJ,EAAYG,EAAKF,IAEpF,C,4HCHA,MAkBMI,EAAYC,UAChB,MAAMC,EAAY,CAChBC,KAAMA,GAGR,aADqBC,EAAAA,EAAAA,GAAWC,EAAAA,yBAA0BH,IAC5CI,YAAY,EAGtBC,EAAsBN,MAAOO,EAAaC,KAC9C,MAAMP,EAAY,CAChBM,YAAaA,EACbC,UAAWA,GAGb,aADqBL,EAAAA,EAAAA,GAAWM,EAAAA,yBAA0BR,IAC5CI,aAAa,EAAE,EAM/B,EAHmB,CAAEK,KAnCRV,UACX,IAAKE,EAAM,OAAO,KAElB,IAAIS,QAAeZ,EAAUG,GAE7B,GADAS,EAAUC,MAAMC,QAAQF,GAAaA,EAAOG,OAAS,EAAKH,EAAO,GAAK,KAAQA,EAC1EA,EACF,IAAyB,IAArBA,EAAOI,UACTJ,EAAOK,aAAeL,EAAOT,SAE1B,CACH,MAAMe,QAAmBX,EAAoBK,EAAOJ,YAAaI,EAAOH,WACxEG,EAAOK,aAAeC,EAAaA,EAAWf,KAAOS,EAAOT,IAC9D,CAGF,OAAOS,CAAM,GCfTjB,EAAa,CACjBwB,OAAQ,cACRR,KAAMV,MAAOmB,EAAQjB,UACNkB,EAAAA,KAAgBlB,IAKjC,EADmB,IAAImB,EAAAA,EAAsB3B,G,kCCH7C,MAAM4B,GAAoBC,EAAAA,EAAAA,IAAoB,IAAM,oHAC9CC,GAA0BD,EAAAA,EAAAA,IAAoB,IAAM,oHACpDE,GAAkBF,EAAAA,EAAAA,IAAoB,IAAM,oHAC5CG,GAAcH,EAAAA,EAAAA,IAAoB,IAAM,gCAkC9C,QAhCA,WACE,MACMrB,GADayB,EAAAA,EAAAA,MACKC,IAAIC,QAAQ,MAAO,IACrCC,GAAaC,EAAAA,EAAAA,IAAaC,EAAqB9B,IAC/C+B,GAAUC,EAAAA,EAAAA,MAQhB,IANAC,EAAAA,EAAAA,YAAU,KAAO,IAADC,GACa,IAAvBN,EAAWO,SAA0C,OAArBP,EAAWQ,OAAiC,QAAnBF,EAAIN,EAAWS,YAAI,IAAAH,GAAfA,EAAiBpB,cAAgBc,EAAWS,KAAKvB,eAAiBd,GACjI+B,EAAQJ,QAAQC,EAAWS,KAAKvB,aAClC,GACC,CAACc,EAAY5B,EAAM+B,KAEjBH,EAAWS,KAAM,OAAOC,EAAAA,EAAAA,KAACC,EAAAA,EAAQ,IAEtC,OAAQX,EAAWS,KAAKhC,aACtB,IAAK,eACH,OAAOiC,EAAAA,EAAAA,KAAClB,EAAiB,CAACoB,GAAIZ,EAAWS,KAAK/B,UAAWN,KAAM4B,EAAWS,KAAKvB,eAEjF,IAAK,YACH,OAAOwB,EAAAA,EAAAA,KAACf,EAAe,CAACiB,GAAIZ,EAAWS,KAAK/B,UAAWN,KAAM4B,EAAWS,KAAKvB,eAE/E,IAAK,qBACH,OAAOwB,EAAAA,EAAAA,KAAChB,EAAuB,CAACkB,GAAIZ,EAAWS,KAAK/B,UAAWN,KAAM4B,EAAWS,KAAKvB,eAEvF,IAAK,WACH,OAAOwB,EAAAA,EAAAA,KAACd,EAAW,CAACgB,GAAIZ,EAAWS,KAAK/B,UAAWN,KAAM4B,EAAWS,KAAKvB,eAE3E,QACE,OAAOwB,EAAAA,EAAAA,KAACC,EAAAA,EAAQ,IAEtB,C,iBCzCI,IAAIE,EAAM,CAAC,KAAO,WAAW,YAAc,CAAC,CAAC,KAAO,sBAAsB,UAAY,QAAQ,KAAO,CAAC,KAAO,OAAO,MAAQ,4BAA4B,oBAAsB,CAAC,CAAC,KAAO,qBAAqB,SAAW,CAAC,KAAO,WAAW,KAAO,CAAC,KAAO,OAAO,MAAQ,SAAS,KAAO,CAAC,KAAO,cAAc,KAAO,CAAC,KAAO,YAAY,KAAO,CAAC,KAAO,OAAO,MAAQ,YAAY,WAAa,KAAK,WAAa,GAAG,aAAe,CAAC,KAAO,eAAe,WAAa,CAAC,CAAC,KAAO,QAAQ,KAAO,CAAC,KAAO,OAAO,MAAQ,gBAAgB,UAAY,CAAC,CAAC,KAAO,WAAW,KAAO,CAAC,KAAO,OAAO,MAAQ,WAAW,MAAQ,CAAC,KAAO,cAAc,OAAS,CAAC,CAAC,KAAO,cAAc,KAAO,CAAC,KAAO,OAAO,MAAQ,QAAQ,MAAQ,CAAC,KAAO,cAAc,OAAS,CAAC,CAAC,KAAO,cAAc,KAAO,CAAC,KAAO,OAAO,MAAQ,MAAM,MAAQ,CAAC,KAAO,WAAW,KAAO,CAAC,KAAO,OAAO,MAAQ,gBAAgB,CAAC,KAAO,WAAW,KAAO,CAAC,KAAO,OAAO,MAAQ,cAAc,MAAQ,CAAC,KAAO,cAAc,OAAS,CAAC,CAAC,KAAO,cAAc,KAAO,CAAC,KAAO,OAAO,MAAQ,SAAS,MAAQ,CAAC,KAAO,WAAW,MAAQ,UAAU,WAAa,GAAG,aAAe,CAAC,KAAO,eAAe,WAAa,CAAC,CAAC,KAAO,QAAQ,KAAO,CAAC,KAAO,OAAO,MAAQ,cAAc,UAAY,GAAG,WAAa,IAAI,CAAC,KAAO,QAAQ,KAAO,CAAC,KAAO,OAAO,MAAQ,QAAQ,UAAY,GAAG,WAAa,GAAG,aAAe,CAAC,KAAO,eAAe,WAAa,CAAC,CAAC,KAAO,iBAAiB,KAAO,CAAC,KAAO,OAAO,MAAQ,qBAAqB,WAAa,aAAa,CAAC,KAAO,sBAAsB,UAAY,QAAQ,KAAO,CAAC,KAAO,OAAO,MAAQ,4BAA4B,oBAAsB,CAAC,CAAC,KAAO,qBAAqB,SAAW,CAAC,KAAO,WAAW,KAAO,CAAC,KAAO,OAAO,MAAQ,gBAAgB,KAAO,CAAC,KAAO,cAAc,KAAO,CAAC,KAAO,YAAY,KAAO,CAAC,KAAO,OAAO,MAAQ,YAAY,WAAa,IAAI,CAAC,KAAO,qBAAqB,SAAW,CAAC,KAAO,WAAW,KAAO,CAAC,KAAO,OAAO,MAAQ,cAAc,KAAO,CAAC,KAAO,cAAc,KAAO,CAAC,KAAO,YAAY,KAAO,CAAC,KAAO,OAAO,MAAQ,SAAS,WAAa,KAAK,WAAa,GAAG,aAAe,CAAC,KAAO,eAAe,WAAa,CAAC,CAAC,KAAO,QAAQ,KAAO,CAAC,KAAO,OAAO,MAAQ,gBAAgB,UAAY,CAAC,CAAC,KAAO,WAAW,KAAO,CAAC,KAAO,OAAO,MAAQ,WAAW,MAAQ,CAAC,KAAO,cAAc,OAAS,CAAC,CAAC,KAAO,cAAc,KAAO,CAAC,KAAO,OAAO,MAAQ,eAAe,MAAQ,CAAC,KAAO,cAAc,OAAS,CAAC,CAAC,KAAO,cAAc,KAAO,CAAC,KAAO,OAAO,MAAQ,MAAM,MAAQ,CAAC,KAAO,WAAW,KAAO,CAAC,KAAO,OAAO,MAAQ,oBAAoB,CAAC,KAAO,cAAc,KAAO,CAAC,KAAO,OAAO,MAAQ,aAAa,MAAQ,CAAC,KAAO,cAAc,OAAS,CAAC,CAAC,KAAO,cAAc,KAAO,CAAC,KAAO,OAAO,MAAQ,MAAM,MAAQ,CAAC,KAAO,WAAW,KAAO,CAAC,KAAO,OAAO,MAAQ,kBAAkB,CAAC,KAAO,cAAc,KAAO,CAAC,KAAO,OAAO,MAAQ,aAAa,MAAQ,CAAC,KAAO,cAAc,OAAS,CAAC,CAAC,KAAO,cAAc,KAAO,CAAC,KAAO,OAAO,MAAQ,MAAM,MAAQ,CAAC,KAAO,eAAe,OAAQ,UAAa,CAAC,KAAO,WAAW,KAAO,CAAC,KAAO,OAAO,MAAQ,cAAc,MAAQ,CAAC,KAAO,cAAc,OAAS,CAAC,CAAC,KAAO,cAAc,KAAO,CAAC,KAAO,OAAO,MAAQ,SAAS,MAAQ,CAAC,KAAO,WAAW,MAAQ,SAAS,CAAC,KAAO,WAAW,KAAO,CAAC,KAAO,OAAO,MAAQ,QAAQ,MAAQ,CAAC,KAAO,YAAY,OAAS,CAAC,CAAC,KAAO,cAAc,MAAQ,iBAAiB,OAAQ,OAAW,WAAa,GAAG,aAAe,CAAC,KAAO,eAAe,WAAa,CAAC,CAAC,KAAO,QAAQ,KAAO,CAAC,KAAO,OAAO,MAAQ,cAAc,UAAY,GAAG,WAAa,IAAI,CAAC,KAAO,QAAQ,KAAO,CAAC,KAAO,OAAO,MAAQ,QAAQ,UAAY,GAAG,WAAa,GAAG,aAAe,CAAC,KAAO,eAAe,WAAa,CAAC,CAAC,KAAO,iBAAiB,KAAO,CAAC,KAAO,OAAO,MAAQ,qBAAqB,WAAa,cAAc,IAAM,CAAC,MAAQ,EAAE,IAAM,MACxrHA,EAAIC,IAAIC,OAAS,CAAC,KAAO,ymBAA6mB,KAAO,kBAAkB,eAAiB,CAAC,KAAO,EAAE,OAAS,IAGnsB,IAAIC,EAAQ,CAAC,EAmBb,SAASC,EAA0BC,EAAMC,GACvC,GAAkB,mBAAdD,EAAKE,KACPD,EAAKE,IAAIH,EAAKI,KAAKC,YACd,GAAkB,uBAAdL,EAAKE,KAA+B,CAC7C,IAAII,EAAON,EAAKM,KACE,cAAdA,EAAKJ,MACPD,EAAKE,IAAIG,EAAKF,KAAKC,MAEvB,CAEIL,EAAKO,cACPP,EAAKO,aAAaC,WAAWC,SAAQ,SAASC,GAC5CX,EAA0BW,EAAWT,EACvC,IAGED,EAAKW,qBACPX,EAAKW,oBAAoBF,SAAQ,SAASG,GACxCb,EAA0Ba,EAAKX,EACjC,IAGED,EAAKa,aACPb,EAAKa,YAAYJ,SAAQ,SAASG,GAChCb,EAA0Ba,EAAKX,EACjC,GAEJ,CA/BFN,EAAIkB,YAAclB,EAAIkB,YAAYC,OAAc,oBAbhCC,QACV,SAASH,GACP,GAAiB,uBAAbA,EAAIV,KAA+B,OAAO,EAC9C,IAAIE,EAAOQ,EAAIR,KAAKC,MACpB,OAAIP,EAAMM,KAGRN,EAAMM,IAAQ,GACP,EAEX,KAoCJ,IAAIY,EAAiB,CAAC,EAWtB,SAASC,EAActB,EAAKS,GAC1B,IAAK,IAAIc,EAAI,EAAGA,EAAIvB,EAAIkB,YAAY/C,OAAQoD,IAAK,CAC/C,IAAIC,EAAUxB,EAAIkB,YAAYK,GAC9B,GAAIC,EAAQf,MAAQe,EAAQf,KAAKC,OAASD,EACxC,OAAOe,CAEX,CACF,CAEA,SAASC,EAASzB,EAAK0B,GAErB,IAAIC,EAAS,CACXpB,KAAMP,EAAIO,KACVW,YAAa,CAACI,EAActB,EAAK0B,KAE/B1B,EAAI4B,eAAe,SACrBD,EAAO1B,IAAMD,EAAIC,KAKnB,IAAI4B,EAASR,EAAeK,IAAkB,IAAII,IAC9CC,EAAU,IAAID,IACdE,EAAU,IAAIF,IAOlB,IAJAD,EAAOf,SAAQ,SAASmB,GACtBD,EAAQxB,IAAIyB,EACd,IAEOD,EAAQE,KAAO,GAAG,CACvB,IAAIC,EAAWH,EACfA,EAAU,IAAIF,IAEdK,EAASrB,SAAQ,SAASmB,GACnBF,EAAQK,IAAIH,KACfF,EAAQvB,IAAIyB,IACIZ,EAAeY,IAAY,IAAIH,KACrChB,SAAQ,SAASuB,GACzBL,EAAQxB,IAAI6B,EACd,IAEJ,GACF,CASA,OAPAN,EAAQjB,SAAQ,SAASmB,GACvB,IAAIK,EAAKhB,EAActB,EAAKiC,GACxBK,GACFX,EAAOT,YAAYqB,KAAKD,EAE5B,IAEOX,CACT,CA9DE3B,EAAIkB,YAAYJ,SAAQ,SAASG,GAC/B,GAAIA,EAAIR,KAAM,CACZ,IAAIH,EAAO,IAAIwB,IACf1B,EAA0Ba,EAAKX,GAC/Be,EAAeJ,EAAIR,KAAKC,OAASJ,CACnC,CACF,IA0DFkC,EAAOC,QAAUzC,EAEbwC,EAAOC,QAAP,yBAA6ChB,EAASzB,EAAK,4BAE3DwC,EAAOC,QAAP,yBAA6ChB,EAASzB,EAAK,2B,WC1H/D,IAAIA,EAAM,CAAC,KAAO,WAAW,YAAc,CAAC,CAAC,KAAO,qBAAqB,KAAO,CAAC,KAAO,OAAO,MAAQ,qBAAqB,cAAgB,CAAC,KAAO,YAAY,KAAO,CAAC,KAAO,OAAO,MAAQ,qBAAqB,WAAa,GAAG,aAAe,CAAC,KAAO,eAAe,WAAa,CAAC,CAAC,KAAO,QAAQ,KAAO,CAAC,KAAO,OAAO,MAAQ,MAAM,UAAY,GAAG,WAAa,IAAI,CAAC,KAAO,QAAQ,KAAO,CAAC,KAAO,OAAO,MAAQ,cAAc,UAAY,GAAG,WAAa,GAAG,aAAe,CAAC,KAAO,eAAe,WAAa,CAAC,CAAC,KAAO,QAAQ,KAAO,CAAC,KAAO,OAAO,MAAQ,QAAQ,UAAY,GAAG,WAAa,IAAI,CAAC,KAAO,QAAQ,KAAO,CAAC,KAAO,OAAO,MAAQ,eAAe,UAAY,GAAG,WAAa,IAAI,CAAC,KAAO,QAAQ,KAAO,CAAC,KAAO,OAAO,MAAQ,aAAa,UAAY,GAAG,WAAa,IAAI,CAAC,KAAO,QAAQ,KAAO,CAAC,KAAO,OAAO,MAAQ,aAAa,UAAY,GAAG,WAAa,WAAW,IAAM,CAAC,MAAQ,EAAE,IAAM,MACj4BA,EAAIC,IAAIC,OAAS,CAAC,KAAO,4IAA4I,KAAO,kBAAkB,eAAiB,CAAC,KAAO,EAAE,OAAS,IAqBlO,SAASE,EAA0BC,EAAMC,GACvC,GAAkB,mBAAdD,EAAKE,KACPD,EAAKE,IAAIH,EAAKI,KAAKC,YACd,GAAkB,uBAAdL,EAAKE,KAA+B,CAC7C,IAAII,EAAON,EAAKM,KACE,cAAdA,EAAKJ,MACPD,EAAKE,IAAIG,EAAKF,KAAKC,MAEvB,CAEIL,EAAKO,cACPP,EAAKO,aAAaC,WAAWC,SAAQ,SAASC,GAC5CX,EAA0BW,EAAWT,EACvC,IAGED,EAAKW,qBACPX,EAAKW,oBAAoBF,SAAQ,SAASG,GACxCb,EAA0Ba,EAAKX,EACjC,IAGED,EAAKa,aACPb,EAAKa,YAAYJ,SAAQ,SAASG,GAChCb,EAA0Ba,EAAKX,EACjC,GAEJ,CAEA,IAAIe,EAAiB,CAAC,EAWtB,SAASC,EAActB,EAAKS,GAC1B,IAAK,IAAIc,EAAI,EAAGA,EAAIvB,EAAIkB,YAAY/C,OAAQoD,IAAK,CAC/C,IAAIC,EAAUxB,EAAIkB,YAAYK,GAC9B,GAAIC,EAAQf,MAAQe,EAAQf,KAAKC,OAASD,EACxC,OAAOe,CAEX,CACF,CAhBExB,EAAIkB,YAAYJ,SAAQ,SAASG,GAC/B,GAAIA,EAAIR,KAAM,CACZ,IAAIH,EAAO,IAAIwB,IACf1B,EAA0Ba,EAAKX,GAC/Be,EAAeJ,EAAIR,KAAKC,OAASJ,CACnC,CACF,IA0DFkC,EAAOC,QAAUzC,EAEbwC,EAAOC,QAAP,kBAhDJ,SAAkBzC,EAAK0B,GAErB,IAAIC,EAAS,CACXpB,KAAMP,EAAIO,KACVW,YAAa,CAACI,EAActB,EAAK0B,KAE/B1B,EAAI4B,eAAe,SACrBD,EAAO1B,IAAMD,EAAIC,KAKnB,IAAI4B,EAASR,EAAeK,IAAkB,IAAII,IAC9CC,EAAU,IAAID,IACdE,EAAU,IAAIF,IAOlB,IAJAD,EAAOf,SAAQ,SAASmB,GACtBD,EAAQxB,IAAIyB,EACd,IAEOD,EAAQE,KAAO,GAAG,CACvB,IAAIC,EAAWH,EACfA,EAAU,IAAIF,IAEdK,EAASrB,SAAQ,SAASmB,GACnBF,EAAQK,IAAIH,KACfF,EAAQvB,IAAIyB,IACIZ,EAAeY,IAAY,IAAIH,KACrChB,SAAQ,SAASuB,GACzBL,EAAQxB,IAAI6B,EACd,IAEJ,GACF,CASA,OAPAN,EAAQjB,SAAQ,SAASmB,GACvB,IAAIK,EAAKhB,EAActB,EAAKiC,GACxBK,GACFX,EAAOT,YAAYqB,KAAKD,EAE5B,IAEOX,CACT,CAI0CF,CAASzB,EAAK,oB","sources":["utils/BaseAtomFamilyFactory.js","data/repositories/url-history.js","data/atoms/url-history.js","views/url-resolver.js","data/queries/UrlHistories.graphql","data/queries/fragments/UrlHistoryDetails.graphql"],"sourcesContent":["import { atomFamily } from 'jotai/utils';\nimport BaseAtomFactory from './BaseAtomFactory';\n\nconst BaseAtomFamilyFactory = function (operations, options) {\n    const baseAtomFamily = atomFamily((key) => new BaseAtomFactory(operations, key, options));\n    return baseAtomFamily;\n};\n\nexport default BaseAtomFamilyFactory;","import apiRequest from '../../utils/bccampusGraphQLRequest';\nimport { GetUrlHistoryByPathQuery, GetCurrentUrlByPathQuery } from '../queries/UrlHistories.graphql';\n\nconst read = async (path) => {\n  if (!path) return null;\n\n  let result = await getByPath(path);\n  result = (Array.isArray(result)) ? ((result.length > 0) ? result[0] : null) : result;\n  if (result) {\n    if (result.canonical === true) {\n      result.canonicalUrl = result.path;\n    }\n    else {\n      const currentUrl = await getCurrentUrlByPath(result.contentType, result.contentId);\n      result.canonicalUrl = currentUrl ? currentUrl.path : result.path;\n    }\n  }\n\n  return result;\n}\n\nconst getByPath = async (path) => {\n  const variables = {\n    path: path,\n  };\n  const result = await apiRequest(GetUrlHistoryByPathQuery, variables);\n  return result.urlHistories;\n}\n\nconst getCurrentUrlByPath = async (contentType, contentId) => {\n  const variables = {\n    contentType: contentType,\n    contentId: contentId,\n  };\n  const result = await apiRequest(GetCurrentUrlByPathQuery, variables);\n  return result.urlHistories[0];\n}\n\nconst repository = { read };\n\nexport { read }\nexport default repository\n","import BaseAtomFamilyFactory from '../../utils/BaseAtomFamilyFactory';\nimport repository from '../repositories/url-history';\n\nconst operations = {\n  __name: \"url-history\",\n  read: async (action, path) => {\n    return await repository.read(path);\n  },\n}\n\nconst atomFamily = new BaseAtomFamilyFactory(operations);\nexport default atomFamily;\n","import prerenderedLoadable from \"../utils/prerendered-loadable\";\nimport { useRouteMatch, useHistory } from \"react-router-dom\";\nimport { useAtomValue } from \"jotai/utils\";\nimport urlHistoryAtomFamily from \"../data/atoms/url-history\";\nimport { useEffect } from \"react\";\nimport NotFound from \"./not-found\";\n\nconst CoursePackDetails = prerenderedLoadable(() => import('./course-pack-details'));\nconst LearningResourceDetails = prerenderedLoadable(() => import('./learning-resource-details'));\nconst TextbookDetails = prerenderedLoadable(() => import('./textbook-details'));\nconst SubjectPage = prerenderedLoadable(() => import('./subject-page'));\n\nfunction Content() {\n  const routeMatch = useRouteMatch();\n  const path = routeMatch.url.replace(/\\/$/, \"\");\n  const urlHistory = useAtomValue(urlHistoryAtomFamily(path));\n  const history = useHistory();\n\n  useEffect(() => {\n    if (urlHistory.running === false && urlHistory.error === null && urlHistory.data?.canonicalUrl && urlHistory.data.canonicalUrl !== path) {\n      history.replace(urlHistory.data.canonicalUrl);\n    }\n  }, [urlHistory, path, history]);\n\n  if (!urlHistory.data) return <NotFound />;\n\n  switch (urlHistory.data.contentType) {\n    case \"course_packs\":\n      return <CoursePackDetails id={urlHistory.data.contentId} path={urlHistory.data.canonicalUrl} />\n\n    case \"textbooks\":\n      return <TextbookDetails id={urlHistory.data.contentId} path={urlHistory.data.canonicalUrl} />\n\n    case \"learning_resources\":\n      return <LearningResourceDetails id={urlHistory.data.contentId} path={urlHistory.data.canonicalUrl} />\n\n    case \"subjects\":\n      return <SubjectPage id={urlHistory.data.contentId} path={urlHistory.data.canonicalUrl}/>\n\n    default:\n      return <NotFound />;\n  }\n}\n\nexport default Content;\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetUrlHistoryByPathQuery\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"urlHistories\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filters\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"eq\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"}}}]}}]}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"pagination\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"limit\"},\"value\":{\"kind\":\"IntValue\",\"value\":\"1\"}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UrlHistoryDetails\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetCurrentUrlByPathQuery\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"contentType\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"contentId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"urlHistories\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filters\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"contentType\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"eq\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"contentType\"}}}]}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"contentId\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"eq\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"contentId\"}}}]}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"canonical\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"eq\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}]}}]}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"pagination\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"limit\"},\"value\":{\"kind\":\"IntValue\",\"value\":\"1\"}}]}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"sort\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"StringValue\",\"value\":\"createdAt:DESC\",\"block\":false}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UrlHistoryDetails\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":587}};\n    doc.loc.source = {\"body\":\"#import \\\"./fragments/UrlHistoryDetails.graphql\\\"\\n\\nquery GetUrlHistoryByPathQuery($path: String!) {\\n  urlHistories(filters: { path: { eq: $path } }, pagination: { limit: 1 }) {\\n    __typename\\n    data {\\n      ...UrlHistoryDetails\\n    }\\n  }\\n}\\n\\nquery GetCurrentUrlByPathQuery($contentType: String!, $contentId: Int!) {\\n  urlHistories(\\n    filters: {\\n      contentType: { eq: $contentType }\\n      contentId: { eq: $contentId }\\n      canonical: { eq: true }\\n    }\\n    pagination: { limit: 1 }\\n    sort: [\\\"createdAt:DESC\\\"]\\n  ) {\\n    __typename\\n    data {\\n      ...UrlHistoryDetails\\n    }\\n  }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  doc.definitions = doc.definitions.concat(unique(require(\"./fragments/UrlHistoryDetails.graphql\").definitions));\n\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"GetUrlHistoryByPathQuery\"] = oneQuery(doc, \"GetUrlHistoryByPathQuery\");\n        \n        module.exports[\"GetCurrentUrlByPathQuery\"] = oneQuery(doc, \"GetCurrentUrlByPathQuery\");\n        \n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"UrlHistoryDetails\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UrlHistoryEntity\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attributes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentType\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canonical\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":128}};\n    doc.loc.source = {\"body\":\"fragment UrlHistoryDetails on UrlHistoryEntity {\\n  id\\n  attributes {\\n    path\\n    contentType\\n    contentId\\n    canonical\\n  }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"UrlHistoryDetails\"] = oneQuery(doc, \"UrlHistoryDetails\");\n        \n"],"names":["operations","options","atomFamily","key","BaseAtomFactory","getByPath","async","variables","path","apiRequest","GetUrlHistoryByPathQuery","urlHistories","getCurrentUrlByPath","contentType","contentId","GetCurrentUrlByPathQuery","read","result","Array","isArray","length","canonical","canonicalUrl","currentUrl","__name","action","repository","BaseAtomFamilyFactory","CoursePackDetails","prerenderedLoadable","LearningResourceDetails","TextbookDetails","SubjectPage","useRouteMatch","url","replace","urlHistory","useAtomValue","urlHistoryAtomFamily","history","useHistory","useEffect","_urlHistory$data","running","error","data","_jsx","NotFound","id","doc","loc","source","names","collectFragmentReferences","node","refs","kind","add","name","value","type","selectionSet","selections","forEach","selection","variableDefinitions","def","definitions","concat","filter","definitionRefs","findOperation","i","element","oneQuery","operationName","newDoc","hasOwnProperty","opRefs","Set","allRefs","newRefs","refName","size","prevRefs","has","childRef","op","push","module","exports"],"sourceRoot":""}