{"version":3,"sources":["modules/shared-navigation/build-route-from-structure.tsx"],"names":["buildRoutesFromStructure","StaticSelector","items","navigationTree","Layout","isRoot","exact","length","React","createElement","Fragment","map","childItem","key","exactMatch","currentNavigationTree","node","parentNavigationTree","path","pathId","name","isModuleEntry","undefined","concatUrl","parent","isModule","isSubModuleEntry","bannerId","buildCurrentNavigationTree","contentTemplate","contentId","dynamicSelector","nodes","isShortcut","isDynamic","Route","structureNode","render","isRedirect","Redirect","to","content","id","template","sourceStructureNode"],"mappings":"4LAwBaA,EAA2B,SAA3BA,EACTC,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,OAAKJ,GAA0B,IAAjBA,EAAMK,OAKhBC,IAAAC,cAACD,IAAME,SAAQ,KACVR,EAAMS,KAAI,SAACC,EAAiBC,GACzB,IAEIC,EAFEC,EA7Ba,SAACC,EAAYC,GAC5C,IAAMC,EAAOF,EAAKG,OAASH,EAAKG,OAASH,EAAKE,KAC9C,MAAO,CACHE,KAAMJ,EAAKI,OAASJ,EAAKK,cAAgBL,EAAKI,UAAOE,EACrDJ,KAAMK,YAAU,CACZN,GAAwBA,EAAqBC,KAAOD,EAAqBC,KAAO,IAChFA,GAAQ,KAEZM,OAAQP,EACRQ,SAAUT,EAAKK,eAAiBL,EAAKU,iBACrCC,SAAUX,EAAKW,UAmBuBC,CAA2BhB,EAAWT,GAYpE,OARIG,GACAM,EAAUiB,iBACVjB,EAAUkB,WACVC,YAAgBnB,EAAUiB,gBAAiBjB,EAAUkB,aAErDhB,GAAa,GAKbN,IAAAC,cAACD,IAAME,SAAQ,CAACG,IAAKA,IACfD,EAAUS,eACRrB,EACIC,EACAW,EAAUoB,MACVjB,EACAX,GACA,EACAE,IAENM,EAAUqB,aAAerB,EAAUsB,WACjC1B,IAAAC,cAAC0B,IAAK,CACFC,cAAexB,EACfT,eAAgBY,EAChBT,QAAOD,GAAgBS,EACvBI,KAAMH,EAAsBG,KAC5BmB,OAAQ,WACJ,OAAIzB,EAAU0B,YAAc1B,EAAUiB,gBAC3BrB,IAAAC,cAAC8B,IAAQ,CAACC,GAAI5B,EAAUiB,mBAI/BjB,EAAUiB,iBAAmBjB,EAAUkB,YACvCW,EAAUV,YAAgBnB,EAAUiB,gBAAiBjB,EAAUkB,YAE9DW,IACDA,EACIjC,IAAAC,cAACR,EAAc,CACXyC,GAAI9B,EAAUkB,WAAa,GAC3Ba,SAAU/B,EAAUiB,iBAAmB,GACvCe,oBAAqBhC,EACrBT,eAAgBY,KAKxBX,IAAWQ,EAAUS,gBACrBoB,EAAUjC,IAAAC,cAACL,EAAM,KAAEqC,IAGhBA,GAnBP,IAAIA,UAzCzBjC,IAAAC,cAACD,IAAME,SAAQ","file":"static/js/1.89575740.chunk.js","sourcesContent":["import React, { ComponentType } from 'react';\nimport { Redirect } from 'react-router';\n\nimport { dynamicSelector } from 'modules/shared-cms-advanced/utils';\n\nimport { NavigationElement, Node } from 'modules/shared/models';\nimport { concatUrl } from 'modules/shared/utils';\nimport { StructureNavigationProps } from 'modules/shared/types';\nimport { NotifiedRoute as Route } from 'modules/shared/components';\n\nconst buildCurrentNavigationTree = (node: Node, parentNavigationTree?: NavigationElement): NavigationElement => {\n const path = node.pathId ? node.pathId : node.path;\n return {\n name: node.name && !node.isModuleEntry ? node.name : undefined,\n path: concatUrl([\n parentNavigationTree && parentNavigationTree.path ? parentNavigationTree.path : '/',\n path || '',\n ]),\n parent: parentNavigationTree,\n isModule: node.isModuleEntry || node.isSubModuleEntry,\n bannerId: node.bannerId,\n };\n};\n\nexport const buildRoutesFromStructure = (\n StaticSelector: ComponentType,\n items?: Node[],\n navigationTree?: NavigationElement,\n Layout?: ComponentType,\n isRoot?: boolean,\n exact?: boolean,\n): JSX.Element => {\n if (!items || items.length === 0) {\n return ;\n }\n\n return (\n \n {items.map((childItem: Node, key: number) => {\n const currentNavigationTree = buildCurrentNavigationTree(childItem, navigationTree);\n\n let exactMatch;\n if (\n exact &&\n childItem.contentTemplate &&\n childItem.contentId &&\n dynamicSelector(childItem.contentTemplate, childItem.contentId)\n ) {\n exactMatch = true;\n }\n\n return (\n // eslint-disable-next-line react/no-array-index-key\n \n {!childItem.isModuleEntry &&\n buildRoutesFromStructure(\n StaticSelector,\n childItem.nodes,\n currentNavigationTree,\n Layout,\n false,\n exact,\n )}\n {!childItem.isShortcut && !childItem.isDynamic && (\n {\n if (childItem.isRedirect && childItem.contentTemplate) {\n return ;\n }\n\n let content: JSX.Element | undefined;\n if (childItem.contentTemplate && childItem.contentId) {\n content = dynamicSelector(childItem.contentTemplate, childItem.contentId);\n }\n if (!content) {\n content = (\n \n );\n }\n\n if (Layout && !childItem.isModuleEntry) {\n content = {content};\n }\n\n return content;\n }}\n />\n )}\n \n );\n })}\n \n );\n};\n"],"sourceRoot":""}