{"version":3,"file":"static/js/357.e7ab2e39.chunk.js","mappings":"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","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":""}