{"version":3,"file":"./assets/dist/js/standardAim.js","mappings":"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","sources":["webpack:///./wwwroot/app/Enums/SearchType.ts","webpack:///./wwwroot/app/Enums/Page.ts","webpack:///./wwwroot/app/Services/storageService.ts","webpack:///./wwwroot/app/Interfaces/IStorageItem.ts","webpack:///./wwwroot/app/Services/LinkService.ts","webpack:///./wwwroot/app/Breadcrumbs/qualificationsBreadcrumbStrategy.ts","webpack:///./wwwroot/app/Breadcrumbs/defaultBreadcrumbStrategy.ts","webpack:///./wwwroot/app/Breadcrumbs/unitsBreadcrumbStrategy.ts","webpack:///./wwwroot/app/Breadcrumbs/frameworksBreadcrumbStrategy.ts","webpack:///./wwwroot/app/Breadcrumbs/standardsBreadcrumbStrategy.ts","webpack:///./wwwroot/app/Breadcrumbs/tlevelsBreadcrumbStrategy.ts","webpack:///./wwwroot/app/Breadcrumbs/breadcrumbStrategyManager.ts","webpack:///./wwwroot/app/Breadcrumbs/breadcrumbService.ts","webpack:///./wwwroot/app/constants.ts","webpack:///./wwwroot/app/Services/viewService.ts","webpack:///./wwwroot/app/pages/standardAimMain.ts"],"sourcesContent":["export enum SearchType {\r\n Qualifications = \"Qualifications\",\r\n Frameworks = \"Frameworks\",\r\n Units = \"Units\",\r\n Standards = \"Standards\",\r\n TLevels = \"TLevels\"\r\n}","export enum Page{\r\n Home = \"Home\",\r\n Results = \"Results\",\r\n LearningAimDetails = \"LearningAimDetails\",\r\n Pathway = \"Pathway\",\r\n Category = \"Category\",\r\n CommonComponent = \"CommonComponent\",\r\n Standard = \"Standard\",\r\n RelatedLearningAims = \"RelatedLearningAims\"\r\n}","import { IStorageItem, emptyIStorageItem } from '../Interfaces/IStorageItem';\r\nimport { IFilterItem } from '../Interfaces/IFilterItem';\r\n\r\nexport default class StorageService {\r\n\r\n private readonly storage: Storage;\r\n\r\n constructor(storageType: Storage)\r\n {\r\n this.storage = storageType;\r\n }\r\n\r\n retrieve(key: string): IStorageItem\r\n {\r\n const item = this.storage.getItem(key);\r\n\r\n if (item && item !== 'undefined') {\r\n return JSON.parse(item) as IStorageItem;\r\n }\r\n\r\n return emptyIStorageItem();\r\n }\r\n\r\n store(key: string, value: IStorageItem): void {\r\n this.storage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n updateFilters(key: string, filters: Array) : void {\r\n const item = this.retrieve(key);\r\n item.filters = filters;\r\n this.store(key, item);\r\n }\r\n\r\n getFilters(key: string): Array {\r\n const item = this.retrieve(key);\r\n return item.filters;\r\n }\r\n\r\n clearFilters(key: string) : void {\r\n const item = this.retrieve(key) as IStorageItem;\r\n item.filters = [];\r\n this.store(key, item);\r\n }\r\n\r\n clear(key: string) : void {\r\n this.storage.removeItem(key);\r\n }\r\n\r\n clearAll() : void {\r\n this.storage.clear();\r\n }\r\n}","import { IFilterItem } from '../Interfaces/IFilterItem';\r\nimport { SearchType } from '../Enums/SearchType';\r\nimport { Page } from '../Enums/Page';\r\n\r\nexport interface IStorageItem {\r\n searchTerm: string;\r\n academicYear: string;\r\n learnAimRef: string;\r\n learningAimTitle: string;\r\n standardName: string;\r\n standardCode: string;\r\n currentAcademicYear: string;\r\n searchType: SearchType;\r\n frameworkCode: string;\r\n programType: string;\r\n pathwayCode: string;\r\n filters: IFilterItem[];\r\n page: Page;\r\n hasFilterMismatch: boolean\r\n}\r\n\r\nexport function emptyIStorageItem(): IStorageItem {\r\n return {\r\n searchTerm: '', academicYear:'', learnAimRef: '', learningAimTitle: '', standardName: '', standardCode: '', page: Page.Home, hasFilterMismatch: false,\r\n currentAcademicYear: '', searchType: SearchType.Qualifications, frameworkCode: '', programType: '', pathwayCode: '', filters: [],\r\n };\r\n}","import { IStorageItem } from '../Interfaces/IStorageItem';\r\nimport { IFilterItem } from '../Interfaces/IFilterItem';\r\nimport { SearchType } from '../Enums/SearchType';\r\n\r\nexport default class LinkService {\r\n\r\n public baseUrl = \"/find-a-learning-aim/\";\r\n\r\n public getQualificationsSearchResultsLink(storageItem: IStorageItem): string {\r\n return `${this.baseUrl}LearningAimSearchResult?SearchTerm=${storageItem.searchTerm}&TeachingYear=${this.getTeachingYear(storageItem)}${this.hasFiltersParam(storageItem.filters)}`;\r\n }\r\n\r\n public getResultsLinkForSearchType(searchType: SearchType, storageItem: IStorageItem ): string {\r\n\r\n switch (searchType) {\r\n case SearchType.Frameworks:\r\n return this.getFrameworksSearchResultsLink(storageItem);\r\n case SearchType.Units:\r\n return this.getUnitsSearchResultsLink(storageItem);\r\n case SearchType.Qualifications:\r\n return this.getQualificationsSearchResultsLink(storageItem);\r\n case SearchType.Standards:\r\n return this.getStandardsSearchResultsLink(storageItem);\r\n case SearchType.TLevels:\r\n return this.getTLevelsSearchResultsLink(storageItem);\r\n default:\r\n return this.baseUrl;\r\n }\r\n }\r\n\r\n public getQualificationsDetailsLink(storageItem: IStorageItem): string {\r\n return `${this.baseUrl}LearningAimDetails/${storageItem.learnAimRef}?academicYear=${this.getTeachingYear(storageItem)}`;\r\n }\r\n\r\n public getQualificationsDetailsLinkWithoutYear(storageItem: IStorageItem): string {\r\n return `${this.baseUrl}LearningAimDetails/${storageItem.learnAimRef}`;\r\n }\r\n\r\n public getUnitsSearchResultsLink(storageItem: IStorageItem): string {\r\n return `${this.baseUrl}UnitSearchResult?SearchTerm=${storageItem.searchTerm}&TeachingYear=${this.getTeachingYear(storageItem)}${this.hasFiltersParam(storageItem.filters)}`;\r\n }\r\n\r\n public getUnitsDetailsLink(storageItem: IStorageItem): string {\r\n return `${this.baseUrl}UnitDetails/${storageItem.learnAimRef}?academicYear=${this.getTeachingYear(storageItem)}`;\r\n }\r\n\r\n public getFrameworksSearchResultsLink(storageItem: IStorageItem): string {\r\n return `${this.baseUrl}FrameworkSearchResult?SearchTerm=${storageItem.searchTerm}${this.hasFiltersParam(storageItem.filters)}`;\r\n }\r\n\r\n public getFrameworksDetailsLink(storageItem: IStorageItem): string {\r\n return `${this.baseUrl}FrameworkDetails/${storageItem.frameworkCode}/${storageItem.programType}/${storageItem.pathwayCode}/${storageItem.academicYear}`;\r\n }\r\n\r\n public getStandardsSearchResultsLink(storageItem: IStorageItem): string {\r\n return `${this.baseUrl}StandardsSearchResult?SearchTerm=${storageItem.searchTerm}${this.hasFiltersParam(storageItem.filters)}`;\r\n }\r\n\r\n public getStandardsDetailsLink(storageItem: IStorageItem): string {\r\n return `${this.baseUrl}StandardDetails/${storageItem.standardCode}`;\r\n }\r\n\r\n public getStandardsRelatedAimsLink(storageItem: IStorageItem): string {\r\n return `${this.baseUrl}StandardLearningAims/${storageItem.standardCode}`;\r\n }\r\n\r\n public getTLevelsSearchResultsLink(storageItem: IStorageItem): string {\r\n return `${this.baseUrl}TLevelSearchResult?SearchTerm=${storageItem.searchTerm}`;\r\n }\r\n\r\n public getTLevelsDetailsLink(storageItem: IStorageItem): string {\r\n return `${this.baseUrl}TLevelDetails/${storageItem.frameworkCode}/${storageItem.programType}/${storageItem.pathwayCode}/${storageItem.academicYear}`;\r\n }\r\n\r\n public hasFilterQueryStringParam(url: string): boolean {\r\n const urlParams = new URLSearchParams(url);\r\n return Boolean(urlParams.get('hasFilters'));\r\n }\r\n\r\n private getTeachingYear(storageItem: IStorageItem): string {\r\n if (storageItem.academicYear) {\r\n return storageItem.academicYear;\r\n }\r\n return storageItem.currentAcademicYear;\r\n }\r\n\r\n private hasFiltersParam(filters: IFilterItem[]): string {\r\n if (filters.length > 0) {\r\n return \"&hasFilters=true\";\r\n }\r\n return '';\r\n }\r\n}","import { IBreadcrumb } from '../Interfaces/IBreadcrumb';\r\nimport { IStorageItem } from '../Interfaces/IStorageItem';\r\nimport { IBreadcrumbStrategy } from '../Interfaces/IBreadcrumbStrategy';\r\nimport LinkService from '../Services/LinkService';\r\nimport { Page } from '../Enums/Page';\r\n\r\nexport class QualificationsBreadcrumbStrategy implements IBreadcrumbStrategy {\r\n\r\n public build(storageItem: IStorageItem): Array {\r\n const linkService = new LinkService();\r\n\r\n const breadcrumbs: Array = [\r\n { text: \"Home\", link: linkService.baseUrl, page: Page.Home },\r\n { text: \"Search Results\", link: linkService.getQualificationsSearchResultsLink(storageItem), page: Page.Results },\r\n { text: storageItem.learningAimTitle, link: linkService.getQualificationsDetailsLink(storageItem), page: Page.LearningAimDetails },\r\n { text: \"Category\", link: \"\", page: Page.Category }\r\n ];\r\n return breadcrumbs;\r\n }\r\n}\r\n","import { IBreadcrumb } from '../Interfaces/IBreadcrumb';\r\nimport { IStorageItem } from '../Interfaces/IStorageItem';\r\nimport { IBreadcrumbStrategy } from '../Interfaces/IBreadcrumbStrategy';\r\nimport LinkService from '../Services/LinkService';\r\nimport { Page } from '../Enums/Page';\r\n\r\nexport class DefaultBreadcrumbStrategy implements IBreadcrumbStrategy {\r\n\r\n public build(storageItem: IStorageItem): Array {\r\n const linkService = new LinkService();\r\n\r\n const breadcrumbs: Array = [\r\n { text: \"Start a new search\", link: linkService.baseUrl, page: Page.Home },\r\n ];\r\n\r\n return breadcrumbs;\r\n }\r\n}\r\n","import { IBreadcrumb } from '../Interfaces/IBreadcrumb';\r\nimport { IStorageItem } from '../Interfaces/IStorageItem';\r\nimport { IBreadcrumbStrategy } from '../Interfaces/IBreadcrumbStrategy';\r\nimport LinkService from '../Services/LinkService';\r\nimport { Page } from '../Enums/Page';\r\n\r\nexport class UnitsBreadcrumbStrategy implements IBreadcrumbStrategy {\r\n\r\n public build(storageItem: IStorageItem): Array {\r\n const linkService = new LinkService();\r\n\r\n const breadcrumbs: Array = [\r\n { text: \"Home\", link: linkService.baseUrl, page: Page.Home },\r\n { text: \"Search Results\", link: linkService.getUnitsSearchResultsLink(storageItem), page: Page.Results },\r\n { text: storageItem.learningAimTitle, link: linkService.getUnitsDetailsLink(storageItem), page: Page.LearningAimDetails },\r\n { text: \"Category\", link: \"\", page: Page.Category }\r\n ];\r\n return breadcrumbs;\r\n }\r\n}\r\n","import { IBreadcrumb } from '../Interfaces/IBreadcrumb';\r\nimport { IStorageItem } from '../Interfaces/IStorageItem';\r\nimport { IBreadcrumbStrategy } from '../Interfaces/IBreadcrumbStrategy';\r\nimport LinkService from '../Services/LinkService';\r\nimport { Page } from '../Enums/Page';\r\n\r\nexport class FrameworksBreadcrumbStrategy implements IBreadcrumbStrategy {\r\n\r\n public build(storageItem: IStorageItem): Array {\r\n const linkService = new LinkService();\r\n\r\n const breadcrumbs: Array = [\r\n { text: \"Home\", link: linkService.baseUrl, page: Page.Home },\r\n { text: \"Search Results\", link: linkService.getFrameworksSearchResultsLink(storageItem), page: Page.Results },\r\n { text: 'Pathways', link: linkService.getFrameworksDetailsLink(storageItem), page: Page.Pathway }\r\n ];\r\n\r\n if (storageItem.page === Page.CommonComponent) {\r\n breadcrumbs.push({ text: 'Common components', link: '', page: Page.CommonComponent });\r\n } else {\r\n breadcrumbs.push({ text: storageItem.learningAimTitle, link: linkService.getQualificationsDetailsLinkWithoutYear(storageItem), page: Page.LearningAimDetails });\r\n breadcrumbs.push({ text: 'Category', link: '', page: Page.Category });\r\n }\r\n\r\n return breadcrumbs;\r\n }\r\n}\r\n","import { IBreadcrumb } from '../Interfaces/IBreadcrumb';\r\nimport { IStorageItem } from '../Interfaces/IStorageItem';\r\nimport { IBreadcrumbStrategy } from '../Interfaces/IBreadcrumbStrategy';\r\nimport LinkService from '../Services/LinkService';\r\nimport { Page } from '../Enums/Page';\r\n\r\nexport class StandardsBreadcrumbStrategy implements IBreadcrumbStrategy {\r\n\r\n public build(storageItem: IStorageItem): Array {\r\n const linkService = new LinkService();\r\n\r\n const breadcrumbs: Array = [\r\n { text: \"Home\", link: linkService.baseUrl, page: Page.Home },\r\n { text: \"Search Results\", link: linkService.getStandardsSearchResultsLink(storageItem), page: Page.Results },\r\n { text: storageItem.standardName, link: linkService.getStandardsDetailsLink(storageItem), page: Page.Standard }\r\n ];\r\n\r\n if (storageItem.page === Page.CommonComponent) {\r\n breadcrumbs.push({ text: 'Common components', link: '', page: Page.CommonComponent});\r\n } else {\r\n breadcrumbs.push({ text: 'Related learning aims', link: linkService.getStandardsRelatedAimsLink(storageItem), page: Page.RelatedLearningAims});\r\n breadcrumbs.push({ text: storageItem.learningAimTitle, link: linkService.getQualificationsDetailsLinkWithoutYear(storageItem), page: Page.LearningAimDetails });\r\n breadcrumbs.push({ text: 'Category', link: '', page: Page.Category });\r\n }\r\n\r\n return breadcrumbs;\r\n }\r\n\r\n}\r\n","import { IBreadcrumb } from '../Interfaces/IBreadcrumb';\r\nimport { IStorageItem } from '../Interfaces/IStorageItem';\r\nimport { IBreadcrumbStrategy } from '../Interfaces/IBreadcrumbStrategy';\r\nimport LinkService from '../Services/LinkService';\r\nimport { Page } from '../Enums/Page';\r\n\r\nexport class TLevelsBreadcrumbStrategy implements IBreadcrumbStrategy {\r\n\r\n public build(storageItem: IStorageItem): Array {\r\n const linkService = new LinkService();\r\n\r\n const breadcrumbs: Array = [\r\n { text: \"Home\", link: linkService.baseUrl, page: Page.Home },\r\n { text: \"Search Results\", link: linkService.getTLevelsSearchResultsLink(storageItem), page: Page.Results },\r\n { text: 'Pathways', link: linkService.getTLevelsDetailsLink(storageItem), page: Page.Pathway }\r\n ];\r\n\r\n if (storageItem.page === Page.CommonComponent) {\r\n breadcrumbs.push({ text: 'Common components', link: '', page: Page.CommonComponent });\r\n } else {\r\n breadcrumbs.push({ text: storageItem.learningAimTitle, link: linkService.getQualificationsDetailsLinkWithoutYear(storageItem), page: Page.LearningAimDetails });\r\n breadcrumbs.push({ text: 'Category', link: '', page: Page.Category });\r\n }\r\n\r\n return breadcrumbs;\r\n }\r\n}\r\n","import { SearchType } from \"../Enums/SearchType\";\r\nimport { IStorageItem } from \"../Interfaces/IStorageItem\";\r\nimport { IBreadcrumb } from \"../Interfaces/IBreadcrumb\";\r\nimport { IBreadcrumbStrategy } from \"../Interfaces/IBreadcrumbStrategy\";\r\nimport { QualificationsBreadcrumbStrategy } from \"./qualificationsBreadcrumbStrategy\";\r\nimport { DefaultBreadcrumbStrategy } from \"./defaultBreadcrumbStrategy\";\r\nimport { UnitsBreadcrumbStrategy } from \"./unitsBreadcrumbStrategy\";\r\nimport { FrameworksBreadcrumbStrategy } from \"./frameworksBreadcrumbStrategy\";\r\nimport { StandardsBreadcrumbStrategy } from \"./standardsBreadcrumbStrategy\";\r\nimport { TLevelsBreadcrumbStrategy } from \"./tlevelsBreadcrumbStrategy\";\r\n\r\nclass BreadcrumbStrategyManager {\r\n\r\n private _breadcrumbStrategy: IBreadcrumbStrategy = new DefaultBreadcrumbStrategy();\r\n\r\n private _breadcrumbStrategies = {\r\n [SearchType.Qualifications]: new QualificationsBreadcrumbStrategy(),\r\n [SearchType.Units]: new UnitsBreadcrumbStrategy(),\r\n [SearchType.Frameworks]: new FrameworksBreadcrumbStrategy(),\r\n [SearchType.Standards]: new StandardsBreadcrumbStrategy(),\r\n [SearchType.TLevels]: new TLevelsBreadcrumbStrategy()\r\n };\r\n\r\n public setBreadcrumbStrategy(searchType: SearchType) {\r\n let selectedStrategy = this._breadcrumbStrategies[searchType];\r\n if (!selectedStrategy) {\r\n selectedStrategy = new DefaultBreadcrumbStrategy();\r\n }\r\n this._breadcrumbStrategy = selectedStrategy;\r\n }\r\n\r\n public build(storeageItem: IStorageItem): Array {\r\n return this._breadcrumbStrategy.build(storeageItem);\r\n }\r\n}\r\n\r\nexport const breadcrumbStrategyManager = new BreadcrumbStrategyManager();","import { IStorageItem } from '../Interfaces/IStorageItem';\r\nimport { Page } from '../Enums/Page';\r\nimport { IBreadcrumb } from '../Interfaces/IBreadcrumb';\r\nimport { breadcrumbStrategyManager } from './breadcrumbStrategyManager';\r\n\r\nclass BreadcrumbService {\r\n\r\n private linkTemplate = \"
  • {{title}}
  • \";\r\n private textTemplate = \"
  • {{title}}
  • \";\r\n\r\n public buildBreadcrumb(storageItem: IStorageItem): void {\r\n breadcrumbStrategyManager.setBreadcrumbStrategy(storageItem.searchType);\r\n const element = document.getElementById(\"breadCrumbs\") as HTMLElement;\r\n if (element) {\r\n element.innerHTML = this.createHTML(breadcrumbStrategyManager.build(storageItem), storageItem.page);\r\n }\r\n }\r\n\r\n private createHTML(breadcrumbs: Array, page: Page): string {\r\n let breadcrumbHTML = \"\";\r\n\r\n breadcrumbs.every((breadcrumb: IBreadcrumb) => {\r\n if (breadcrumb.page === page) {\r\n breadcrumbHTML += this.textTemplate.replace(\"{{title}}\", breadcrumb.text);\r\n } else {\r\n breadcrumbHTML += this.linkTemplate.replace(\"{{title}}\", breadcrumb.text).replace(\"{{link}}\", breadcrumb.link);\r\n }\r\n return breadcrumb.page !== page;\r\n });\r\n return breadcrumbHTML;\r\n }\r\n}\r\n\r\nexport const breadcrumbs = new BreadcrumbService();\r\n","export const constants = {\r\n storageKey: 'sessionData',\r\n debounceTime: '600ms',\r\n filterDebounceTime: '75ms',\r\n pageSize: 50\r\n};","import { IStorageItem } from '../Interfaces/IStorageItem';\r\nimport StorageService from './storageService';\r\nimport { breadcrumbs } from '../Breadcrumbs/breadcrumbService';\r\nimport { Page } from '../Enums/Page';\r\nimport { constants } from '../constants';\r\n\r\nclass ViewService {\r\n private readonly storageService: StorageService;\r\n\r\n constructor() {\r\n this.storageService = new StorageService(sessionStorage);\r\n }\r\n\r\n public setupLearingAimView(learnAimRef: string, learningAimTitle: string, page: Page): void {\r\n const storageItem = Object.assign(this.currentStorageItem, { learnAimRef, learningAimTitle, page: page });\r\n this.storageService.store(constants.storageKey, storageItem);\r\n breadcrumbs.buildBreadcrumb(storageItem);\r\n }\r\n \r\n public setupStandardView(standardCode: string, standardName: string, page: Page) : void {\r\n const storageItem = Object.assign(this.currentStorageItem, { standardCode, standardName, page});\r\n this.storageService.store(constants.storageKey, storageItem);\r\n breadcrumbs.buildBreadcrumb(storageItem);\r\n }\r\n\r\n public setupFrameworkView(frameworkCode: string, programType: string, pathwayCode: string, academicYear: string, page:Page): void {\r\n const storageItem = Object.assign(this.currentStorageItem, { frameworkCode, programType, pathwayCode, academicYear, page });\r\n this.storageService.store(constants.storageKey, storageItem);\r\n breadcrumbs.buildBreadcrumb(storageItem);\r\n }\r\n\r\n private get currentStorageItem(): IStorageItem {\r\n return this.storageService.retrieve(constants.storageKey) as IStorageItem;\r\n }\r\n}\r\n\r\nexport const viewService = new ViewService();","import { viewService } from '../Services/viewService';\r\nimport { IStandardState } from '../Interfaces/IStandardState';\r\nimport { Page } from '../Enums/Page';\r\n\r\nclass StandardAim {\r\n\r\n constructor() {\r\n const initalState: IStandardState = JSON.parse((document.getElementById('initialState')).innerHTML);\r\n this.setState(initalState);\r\n }\r\n\r\n public setState(state: IStandardState): void {\r\n viewService.setupStandardView(state.standardCode, state.standardName, Page.RelatedLearningAims);\r\n }\r\n}\r\n\r\nexport const standardAim = new StandardAim();"],"names":["SearchType","Page","storageType","this","storage","retrieve","key","item","getItem","JSON","parse","searchTerm","academicYear","learnAimRef","learningAimTitle","standardName","standardCode","page","Home","hasFilterMismatch","currentAcademicYear","searchType","Qualifications","frameworkCode","programType","pathwayCode","filters","store","value","setItem","stringify","updateFilters","getFilters","clearFilters","clear","removeItem","clearAll","baseUrl","getQualificationsSearchResultsLink","storageItem","getTeachingYear","hasFiltersParam","getResultsLinkForSearchType","Frameworks","getFrameworksSearchResultsLink","Units","getUnitsSearchResultsLink","Standards","getStandardsSearchResultsLink","TLevels","getTLevelsSearchResultsLink","getQualificationsDetailsLink","getQualificationsDetailsLinkWithoutYear","getUnitsDetailsLink","getFrameworksDetailsLink","getStandardsDetailsLink","getStandardsRelatedAimsLink","getTLevelsDetailsLink","hasFilterQueryStringParam","url","urlParams","URLSearchParams","Boolean","get","length","build","linkService","text","link","Results","LearningAimDetails","Category","breadcrumbs","Pathway","CommonComponent","push","Standard","RelatedLearningAims","breadcrumbStrategyManager","_breadcrumbStrategy","DefaultBreadcrumbStrategy","_breadcrumbStrategies","QualificationsBreadcrumbStrategy","UnitsBreadcrumbStrategy","FrameworksBreadcrumbStrategy","StandardsBreadcrumbStrategy","TLevelsBreadcrumbStrategy","setBreadcrumbStrategy","selectedStrategy","storeageItem","linkTemplate","textTemplate","buildBreadcrumb","element","document","getElementById","innerHTML","createHTML","breadcrumbHTML","every","breadcrumb","replace","BreadcrumbService","constants","viewService","storageService","sessionStorage","setupLearingAimView","Object","assign","currentStorageItem","setupStandardView","setupFrameworkView","initalState","setState","state"],"sourceRoot":""}