{"version":3,"sources":["Themes/Default/Content/ts/Shared/Navigation/MainMenu/main-navigation-menu.ts"],"names":[],"mappings":"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","file":"main-navigation-menu.js","sourcesContent":["import * as ko from \"knockout\";\r\nimport * as _ from \"underscore\";\r\n\r\n// Helpers\r\nimport \"bootstrap\";\r\nimport \"fontAwesomeBindings\";\r\n\r\n// Models\r\nimport { NavigationMenuResponse } from \"Content/ts/Models/Shared/Navigation/MainMenu/MainMenuDetails\";\r\nimport { MappedNavigationDetails } from \"Content/ts/Models/Shared/Navigation/MainMenu/MappedNavigationDetails\";\r\n\r\n// Services\r\nimport { MainNavigationMenuServices } from \"Content/ts/Shared/Navigation/MainMenu/Services/MainNavigationMenuServices\";\r\nimport { ConfigureNavigationMenuService } from \"Content/ts/Shared/Navigation/MainMenu/Services/ConfigureNavigationMenuService\";\r\n\r\nexport default class MainNavigationMenu {\r\n LoadingAppearanceDelay: number = 750; // Purpose : Time in milliseconds before the loading message appears.\r\n\r\n Timer: number;\r\n IsLargerResolution: boolean;\r\n\r\n HasErrorOccurred: KnockoutObservable;\r\n DisplayTimerExpired: KnockoutObservable;\r\n IsRetrievingNavigationMenu: KnockoutObservable;\r\n\r\n NavigationOptions: KnockoutObservableArray;\r\n\r\n DisplayLoadingCondition: KnockoutComputed;\r\n\r\n constructor() {\r\n // Standard Module Properties\r\n this.HasErrorOccurred = ko.observable(false);\r\n this.DisplayTimerExpired = ko.observable(false);\r\n this.IsRetrievingNavigationMenu = ko.observable(false);\r\n\r\n this.NavigationOptions = ko.observableArray([]);\r\n\r\n const currentWidth = $(window).width();\r\n this.IsLargerResolution = currentWidth > 1200;\r\n\r\n // Initialisation Methods\r\n this.ConfigureListeners();\r\n this.RetrieveNavigationMenu();\r\n this.SetNavigationMenuDisplay();\r\n\r\n this.ComputedMethods();\r\n this.SubscribeMethods();\r\n }\r\n\r\n private ConfigureLoadingTimer(): void {\r\n this.DisplayTimerExpired(false);\r\n if (this.Timer != null) {\r\n clearTimeout(this.Timer);\r\n }\r\n this.Timer = setTimeout(() => {\r\n this.Timer = null;\r\n this.DisplayTimerExpired(true);\r\n }, this.LoadingAppearanceDelay);\r\n };\r\n\r\n private ConfigureListeners(): void {\r\n $(window).resize(() => {\r\n this.SetNavigationMenuDisplay();\r\n });\r\n };\r\n\r\n private SetNavigationMenuDisplay(): void {\r\n const currentWidth = $(window).width();\r\n if (currentWidth > 1200) {\r\n $(\"#lgd-navigation-menu-options\").addClass(\"in\");\r\n } else {\r\n ($(\"#lgd-navigation-menu-options\")).collapse(\"hide\");\r\n }\r\n };\r\n\r\n private RetrieveNavigationMenu(): void {\r\n this.IsRetrievingNavigationMenu(true);\r\n\r\n MainNavigationMenuServices.RetrieveNavigationMenuStructure()\r\n .then((response: Array) => {\r\n this.NavigationOptions(ConfigureNavigationMenuService.BuildNavigationMenu(response));\r\n })\r\n .catch(() => {\r\n this.HasErrorOccurred(true);\r\n })\r\n .finally(() => {\r\n this.IsRetrievingNavigationMenu(false);\r\n this.SetupChevronOnClick();\r\n });\r\n };\r\n\r\n private ComputedMethods() {\r\n this.DisplayLoadingCondition = ko.pureComputed(() => this.IsRetrievingNavigationMenu() && this.DisplayTimerExpired() && !this.HasErrorOccurred());\r\n }\r\n\r\n private SubscribeMethods(): void {\r\n this.IsRetrievingNavigationMenu.subscribe((value: boolean): void => {\r\n if (value) {\r\n this.ConfigureLoadingTimer();\r\n }\r\n });\r\n };\r\n\r\n private SetupChevronOnClick(): void {\r\n $('.lgd-navigation-chevron').on('click', function (e: JQuery.ClickEvent) {\r\n e.stopPropagation();\r\n $(this).parent().parent().trigger('click');\r\n })\r\n }\r\n}\r\n\r\nconst moduleName = \"main-navigation-menu\";\r\nko.components.unregister(moduleName);\r\nko.components.register(moduleName, {\r\n viewModel: MainNavigationMenu,\r\n template: { require: `text!/Themes/Default/Content/ts/Shared/Navigation/MainMenu/${moduleName}.html` }\r\n});"]}