{"version":3,"sources":["Themes/Default/Content/ts/Shared/Navigation/MainMenu/Services/ConfigureNavigationMenuService.ts"],"names":[],"mappings":";;;;IAMA,IAAc,8BAA8B,CA4D3C;IA5DD,WAAc,8BAA8B;QACxC,SAAgB,mBAAmB,CAAC,SAAwC;YACxE,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,UAAC,QAAgC,EAAE,KAAa;gBACpE,IAAM,iBAAiB,GAAG,kCAA2B,KAAK,CAAE,CAAC;gBAE7D,IAAI,cAAc,GAAG;oBACjB,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,IAAI,EAAE,UAAG,QAAQ,CAAC,IAAI,WAAQ;oBAC9B,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,OAAO,EAAE,QAAQ,CAAC,IAAI,IAAI,IAAI;oBAC9B,iBAAiB,EAAE,iBAAiB;oBACpC,eAAe,EAAE,WAAI,iBAAiB,CAAE;oBAExC,mBAAmB,EAAE,sBAAsB,CAAC,QAAQ,CAAC;oBACrD,QAAQ,EAAE,sBAAsB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;iBACrG,CAAC;gBAE7B,cAAc,CAAC,qBAAqB,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;gBAElF,IAAI,QAAQ,CAAC,gBAAgB,IAAI,IAAI,IAAI,QAAQ,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3E,cAAc,CAAC,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;iBAC9E;gBAED,OAAO,cAAc,CAAC;YAC1B,CAAC,CAAC,CAAC;QACP,CAAC;QAzBe,kDAAmB,sBAyBlC,CAAA;QAAA,CAAC;QAEF,SAAS,sBAAsB,CAAC,QAAgC;YAC5D,IAAI,QAAQ,CAAC,gBAAgB,IAAI,IAAI,IAAI,QAAQ,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC5E,OAAO,KAAK,CAAC;aAChB;YAED,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,UAAC,SAAiC,IAAO,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QACpH,CAAC;QAAA,CAAC;QAEF,SAAS,sBAAsB,CAAC,SAAwC;YACpE,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,UAAC,QAAgC;gBACrD,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC;QACP,CAAC;QAAA,CAAC;QAEF,SAAS,SAAS,CAAC,GAAW;YAC1B,IAAI,CAAC,GAAG,EAAE;gBACN,OAAO,IAAI,CAAC;aACf;YAED,IAAM,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAW,EAC5C,YAAY,GAAG,WAAW;iBACrB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;iBACvB,WAAW,EAAE,CAAC;YAEvB,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAAE;gBAG9C,OAAO,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;aACvE;YAED,OAAO,YAAY,CAAC;QACxB,CAAC;QAAA,CAAC;IACN,CAAC,EA5Da,8BAA8B,GAA9B,sCAA8B,KAA9B,sCAA8B,QA4D3C","file":"ConfigureNavigationMenuService.js","sourcesContent":["import * as _ from \"underscore\";\n\n// Models\nimport { NavigationMenuResponse } from \"Content/ts/Models/Shared/Navigation/MainMenu/MainMenuDetails\";\nimport { MappedNavigationDetails } from \"Content/ts/Models/Shared/Navigation/MainMenu/MappedNavigationDetails\";\n\nexport module ConfigureNavigationMenuService {\n export function BuildNavigationMenu(menuItems: Array): Array {\n return _.map(menuItems, (menuItem: NavigationMenuResponse, index: number) => {\n const subMenuIdentifier = `main-navigation-submenu-${index}`;\n\n let mappedMenuItem = {\n Url: menuItem.Url,\n Name: menuItem.Name,\n Icon: `${menuItem.Icon} fa-fw`,\n IsEnabled: menuItem.IsEnabled,\n HasIcon: menuItem.Icon != null,\n SubMenuIdentifier: subMenuIdentifier,\n DataTargetValue: `#${subMenuIdentifier}`,\n\n ChildItemsAvailable: AreChildItemsAvailable(menuItem),\n IsActive: AreAnyChildrenSelected(menuItem.MenuItemChildren) || FormatUrl(menuItem.Url) == FormatUrl(window.location.pathname)\n } as MappedNavigationDetails;\n\n mappedMenuItem.InitialCollapsedState = mappedMenuItem.IsActive ? \"\" : \"collapsed\";\n\n if (menuItem.MenuItemChildren != null && menuItem.MenuItemChildren.length > 0) {\n mappedMenuItem.ChildItems = BuildNavigationMenu(menuItem.MenuItemChildren);\r\n }\n\n return mappedMenuItem;\n });\n };\n\n function AreChildItemsAvailable(menuItem: NavigationMenuResponse): boolean {\r\n if (menuItem.MenuItemChildren == null || menuItem.MenuItemChildren.length == 0) {\r\n return false;\r\n }\r\n\r\n return _.some(menuItem.MenuItemChildren, (childItem: NavigationMenuResponse) => { return childItem.IsEnabled; })\r\n };\n\n function AreAnyChildrenSelected(menuItems: Array): boolean {\r\n return _.any(menuItems, (menuItem: NavigationMenuResponse) => {\r\n return FormatUrl(menuItem.Url) == FormatUrl(window.location.pathname);\r\n });\r\n };\n\n function FormatUrl(url: string): string {\n if (!url) {\n return null;\r\n }\n\n const evaluateUrl = (url ? url : null) as string,\n formattedUrl = evaluateUrl\n .replace(/^\\/|\\/$/g, '')\n .toLowerCase();\n\n if (_.contains(formattedUrl, \"/personalprofile\")) {\r\n // Purpose : Profile has multiple URLs. The URLs are read from the routing setup and\r\n // changing that will have knock - on effects.Therefore this is a necessary evil.\r\n return formattedUrl.replace('/personalprofile', '/account/profile');\r\n }\n\n return formattedUrl;\r\n };\n}"]}