{"version":3,"sources":["ko_MainViewModel.js"],"names":["BodyClickCloseDropDown","$dropdownContainer","$triggerElement","$","one","ev","is","target","has","length","removeClass","window","bm","MainViewModel","extraModelArray","currentPageView","handbookId","self","this","SearchViewParam","DefaultViewParam","HandbookId","ko","observable","CurrentPageView","WordCloudAvailableEntities","WordCloudSectionVisible","WordCloudSelectedEntities","observableArray","IsWordCloudSearching","WordCloudSetSelectedEntities","entityTagIds","selectedEntities","utils","arrayForEach","item","entityType","indexOf","id","push","questions","mockChildEntity","ChildEntity","tempQuestions","arrayFilter","subItem","name","subTopics","subTopic","question","parentName","WordCloudSearch","entityIdsOverride","wordCloudItemId","ajax","url","type","mimeType","dataType","data","wordcloudid","handbookid","global","error","xhr","statusText","errorText","success","requestData","SetWordCloudDetail","wordCloudId","shouldScroll","entityIdsArr","$wordCloudElem","entityIds","split","scrollPosition","Math","ceil","offset","top","outerHeight","animate","scrollTop","SetTopicDetail","topicId","subTopicId","questionId","ChapterPageViewModel","CurrentSelectedTopicId","hasSubTopic","$topicTile","CurrentChapter","topics","Selected","SubTopicAllTabLabel","toLowerCase","isSelected","$questionElem","SetAccordionExpandCollapse","$subTopicTab","hasClass","parent","find","addClass","CurrentSubTopicTabName","html","undefined","scroll","$accordion","Load","qsParms","parseQueryString","location","href","parseInt","topic","setTimeout","subtopic","str","strArr","trim","reduce","ret","param","parts","replace","decodeURIComponent","i","model","Name","bindingHandlers","OnWindowStateChanged","init","element","valueAccessor","allBindings","viewModel","bindingContext","onstatechange","qs","History","getState","$root","currentView","view","currentSkip","HandbookSearchViewModel","HandbookSearchResultData","searchResults","newSkip","skip","projectedTotal","searchFilters","take","IsSearchRunning","hasMoreResults","pop","keyword","query","LoadDataFromServer","update","WordCloudSearchTrigger","availableEntities","on","preventDefault","dataId","pushState","options","initialTitle","blur","SwitchContentView","unwrapObservable","$siteSearchSection","$defaultSection","opacity","opactiy","BindDropDownTrigger","fadeOut","trigger","animationTime","defaultAnimation","duration","translateY","value","easing","elasticity","BindGridAnimation","targets","anime","BindRichTextContentTransform","ExternalLinksNewWindow","InitGlossaryTermsModule"],"mappings":"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","file":"ko_MainViewModel.js","sourcesContent":["window.bm.MainViewModel = function (extraModelArray, currentPageView, handbookId) {\r\n var self = this;\r\n\r\n self.SearchViewParam = 'search';\r\n self.DefaultViewParam = 'default';\r\n\r\n self.HandbookId = ko.observable(handbookId);\r\n self.CurrentPageView = ko.observable(!currentPageView || currentPageView.length == 0 ? self.DefaultViewParam : currentPageView);\r\n\r\n //Word Cloud Module\r\n self.WordCloudAvailableEntities = [];\r\n self.WordCloudSectionVisible = ko.observable(false);\r\n self.WordCloudSelectedEntities = ko.observableArray([]);\r\n self.IsWordCloudSearching = ko.observable(false);\r\n self.WordCloudSetSelectedEntities = function (entityTagIds) {\r\n if (!!entityTagIds && entityTagIds.length > 0 && self.WordCloudAvailableEntities.length > 0) {\r\n var selectedEntities = [];\r\n ko.utils.arrayForEach(self.WordCloudAvailableEntities, function (item) {\r\n if (item.entityType == 'Topic' || item.entityType == 'SubTopic') {\r\n if (entityTagIds.indexOf(item.id) >= 0) {\r\n selectedEntities.push(item);\r\n } else {\r\n if (!!item.questions && item.questions().length > 0) {\r\n var mockChildEntity = new ChildEntity(null);\r\n var tempQuestions = ko.utils.arrayFilter(item.questions(), function (subItem) {\r\n return entityTagIds.indexOf(subItem.id) >= 0;\r\n });\r\n if (tempQuestions.length > 0) {\r\n mockChildEntity.name = item.name;\r\n mockChildEntity.questions(tempQuestions);\r\n selectedEntities.push(mockChildEntity);\r\n }\r\n }\r\n\r\n if (!!item.subTopics && item.subTopics().length > 0) {\r\n ko.utils.arrayForEach(item.subTopics(), function (subTopic) {\r\n if (entityTagIds.indexOf(subTopic.id) >= 0) {\r\n selectedEntities.push(subTopic);\r\n } else {\r\n if (!!subTopic.questions && subTopic.questions().length > 0) {\r\n var mockChildEntity = new ChildEntity(null);\r\n var tempQuestions = ko.utils.arrayFilter(subTopic.questions(), function (question) {\r\n return entityTagIds.indexOf(question.id) >= 0;\r\n });\r\n if (tempQuestions.length > 0) {\r\n mockChildEntity.name = subTopic.name;\r\n mockChildEntity.parentName = item.name;\r\n mockChildEntity.questions(tempQuestions);\r\n selectedEntities.push(mockChildEntity);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n self.WordCloudSelectedEntities(selectedEntities);\r\n } else {\r\n self.WordCloudSelectedEntities([]);\r\n }\r\n };\r\n\r\n self.WordCloudSearch = function (entityIdsOverride, wordCloudItemId) {\r\n self.IsWordCloudSearching(true);\r\n if (self.WordCloudAvailableEntities.length > 0 && !!wordCloudItemId && wordCloudItemId.length > 0) {\r\n if (!!entityIdsOverride && entityIdsOverride.length > 0) {\r\n self.WordCloudSetSelectedEntities(entityIdsOverride);\r\n } else {\r\n $.ajax({\r\n url: '/api/wordcloud/phrasesearch',\r\n type: 'GET',\r\n mimeType: 'application/json',\r\n dataType: 'json',\r\n data: {\r\n wordcloudid: wordCloudItemId,\r\n handbookid: self.HandbookId()\r\n },\r\n global: false,\r\n error: function (xhr, statusText, errorText) {\r\n\r\n },\r\n success: function (data, requestData) {\r\n self.WordCloudSetSelectedEntities(data);\r\n self.IsWordCloudSearching(false);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n\r\n self.SetWordCloudDetail = function (wordCloudId, shouldScroll) {\r\n if (!!wordCloudId && wordCloudId.length > 0) {\r\n var entityIdsArr = [];\r\n var $wordCloudElem = $('.cloud-item-js[data-wordcloud-id=\"' + wordCloudId + '\"]');\r\n if (!!$wordCloudElem && $wordCloudElem.length > 0) {\r\n var entityIds = $wordCloudElem.data('entitytags');\r\n\r\n if (!!entityIds && entityIds.length > 0) {\r\n entityIdsArr = entityIds.split(',');\r\n }\r\n\r\n self.WordCloudSearch(entityIdsArr, wordCloudId);\r\n }\r\n\r\n self.WordCloudSectionVisible(true);\r\n\r\n if (shouldScroll) {\r\n var scrollPosition = Math.ceil($('.topic-grid').offset().top + $('.topic-grid').outerHeight());\r\n $(\"html, body\").animate({ scrollTop: scrollPosition }, \"slow\");\r\n }\r\n } else {\r\n self.WordCloudSectionVisible(false);\r\n }\r\n };\r\n\r\n self.SetTopicDetail = function (topicId, subTopicId, questionId, shouldScroll) {\r\n var scrollPosition;\r\n if (!!self.ChapterPageViewModel && !!topicId && topicId.length > 0) {\r\n self.ChapterPageViewModel.CurrentSelectedTopicId = topicId;\r\n self.WordCloudSectionVisible(false);\r\n\r\n var hasSubTopic = !!subTopicId && subTopicId.length > 0;\r\n var $topicTile = $('.grid-item-js[data-topicid=\"' + topicId + '\"]');\r\n\r\n if (!!$topicTile && $topicTile.length > 0) {\r\n\r\n ko.utils.arrayForEach(self.ChapterPageViewModel.CurrentChapter().topics(), function (item) {\r\n item.Selected(item.id == topicId);\r\n if (item.Selected()) {\r\n if (!hasSubTopic) {\r\n subTopicId = self.ChapterPageViewModel.SubTopicAllTabLabel.toLowerCase();\r\n }\r\n ko.utils.arrayForEach(item.subTopics(), function (subItem) {\r\n var isSelected = subItem.id == subTopicId || subTopicId.toLowerCase() == self.ChapterPageViewModel.SubTopicAllTabLabel.toLowerCase();\r\n subItem.Selected(isSelected);\r\n\r\n if (subItem.Selected() && !!questionId && questionId.length > 0) {\r\n ko.utils.arrayForEach(subItem.questions(), function (question) {\r\n if (question.id == questionId) {\r\n var $questionElem = $('.question[data-questionid=\"' + questionId + '\"]');\r\n scrollPosition = self.SetAccordionExpandCollapse($questionElem);\r\n }\r\n });\r\n }\r\n });\r\n\r\n if (!!questionId && questionId.length > 0) {\r\n ko.utils.arrayForEach(item.questions(), function (question) {\r\n if (question.id == questionId) {\r\n var $questionElem = $('.question[data-questionid=\"' + questionId + '\"]');\r\n scrollPosition = self.SetAccordionExpandCollapse($questionElem);\r\n }\r\n });\r\n }\r\n\r\n var $subTopicTab = $('.sub-topic-tab[data-tabid=\"' + subTopicId + '\"]');\r\n if (!$subTopicTab.hasClass('active-tab')) {\r\n $subTopicTab.parent().find('.active-tab').removeClass('active-tab');\r\n $subTopicTab.addClass('active-tab');\r\n self.ChapterPageViewModel.CurrentSubTopicTabName($subTopicTab.html());\r\n }\r\n }\r\n });\r\n\r\n $topicTile.parent().find('.active').removeClass('active');\r\n $topicTile.find('.topic-container').addClass('active');\r\n }\r\n\r\n if (scrollPosition == null || scroll == undefined) {\r\n if (hasSubTopic) {\r\n scrollPosition = Math.ceil($('.sub-topics-container').offset().top + 20);\r\n } else {\r\n scrollPosition = Math.ceil($('.topic-grid').offset().top + $('.topic-grid').outerHeight());\r\n }\r\n }\r\n\r\n if (shouldScroll && !!scrollPosition) {\r\n $(\"html, body\").animate({ scrollTop: scrollPosition }, \"slow\");\r\n }\r\n }\r\n };\r\n self.SetAccordionExpandCollapse = function ($accordion) {\r\n if ($accordion.hasClass('expanded')) {\r\n $accordion.removeClass('expanded');\r\n } else {\r\n $('.question.expanded').removeClass('expanded');\r\n $accordion.addClass('expanded');\r\n }\r\n\r\n return $accordion.offset().top - 20;\r\n };\r\n\r\n self.Load = function () {\r\n var qsParms = self.parseQueryString(window.location.href);\r\n if (!!qsParms) {\r\n if (!!qsParms.scroll && qsParms.scroll.length > 0) {\r\n scrollPosition = parseInt(qsParms.scroll);\r\n }\r\n if (!!qsParms.topic && qsParms.topic.length > 0) {\r\n setTimeout(function () {\r\n self.SetTopicDetail(qsParms.topic, qsParms.subtopic, qsParms.question, true);\r\n }, 100);\r\n } else if (!!qsParms.wordcloudid && qsParms.wordcloudid.length > 0) {\r\n setTimeout(function () {\r\n self.SetWordCloudDetail(qsParms.wordcloudid, true);\r\n }, 100);\r\n }\r\n }\r\n }\r\n\r\n self.parseQueryString = function (str) {\r\n if (typeof str !== 'string') {\r\n return {};\r\n }\r\n var strArr = str.trim().split('?');\r\n\r\n if (!strArr || strArr.length < 2) {\r\n return {};\r\n }\r\n str = strArr[1];\r\n return str.trim().split('&').reduce(function (ret, param) {\r\n var parts = param.replace(/\\+/g, ' ').split('=');\r\n ret[parts[0]] = parts[1] === undefined ? null : decodeURIComponent(parts[1]);\r\n return ret;\r\n }, {});\r\n };\r\n\r\n\r\n if (typeof (extraModelArray) != \"undefined\") {\r\n for (var i = 0; i < extraModelArray.length; i++) {\r\n var model = extraModelArray[i];\r\n self[model.Name] = model;\r\n }\r\n }\r\n\r\n\r\n self.Load();\r\n};\r\nko.bindingHandlers.OnWindowStateChanged = {\r\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\r\n // Onstate change for history\r\n window.onstatechange = function () {\r\n var qs = History.getState().data['qs'];\r\n if (!!qs) {\r\n var qsParms = bindingContext.$root.parseQueryString(qs);\r\n var currentView = qsParms.view;\r\n if (!currentView || currentView.length == 0) {\r\n currentView = bindingContext.$root.DefaultViewParam;\r\n }\r\n\r\n if (currentView == bindingContext.$root.SearchViewParam) {\r\n var currentSkip = bindingContext.$root.HandbookSearchViewModel.HandbookSearchResultData().searchResults().length;\r\n var newSkip = 0;\r\n if (!!qsParms.skip && qsParms.skip > 0) {\r\n newSkip = parseInt(qsParms.skip);\r\n }\r\n var projectedTotal = newSkip + bindingContext.$root.HandbookSearchViewModel.HandbookSearchResultData().searchFilters.take;\r\n if (projectedTotal < currentSkip && newSkip != 0) {\r\n // This is here for a back button after a page scroll\r\n bindingContext.$root.HandbookSearchViewModel.IsSearchRunning(true);\r\n bindingContext.$root.HandbookSearchViewModel.HandbookSearchResultData().hasMoreResults(true);\r\n bindingContext.$root.HandbookSearchViewModel.HandbookSearchResultData().searchFilters.skip(newSkip);\r\n while (bindingContext.$root.HandbookSearchViewModel.HandbookSearchResultData().searchResults().length > projectedTotal) {\r\n var popped = bindingContext.$root.HandbookSearchViewModel.HandbookSearchResultData().searchResults.pop();\r\n }\r\n bindingContext.$root.HandbookSearchViewModel.IsSearchRunning(false);\r\n } else {\r\n var hasFilters = false;\r\n if (!!qsParms.keyword && qsParms.keyword.length > 0) {\r\n bindingContext.$root.HandbookSearchViewModel.HandbookSearchResultData().searchFilters.query(qsParms.keyword);\r\n hasFilters = true;\r\n }\r\n bindingContext.$root.HandbookSearchViewModel.HandbookSearchResultData().searchFilters.skip(newSkip);\r\n bindingContext.$root.HandbookSearchViewModel.LoadDataFromServer();\r\n }\r\n } else if (currentView == bindingContext.$root.DefaultViewParam) {\r\n if (!!qsParms.wordcloudid && qsParms.wordcloudid.length > 0) {\r\n bindingContext.$root.SetWordCloudDetail(qsParms.wordcloudid, false);\r\n } else {\r\n bindingContext.$root.WordCloudSectionVisible(false);\r\n }\r\n\r\n if (!!qsParms.topic && qsParms.topic.length > 0 && !!bindingContext.$root.ChapterPageViewModel) {\r\n bindingContext.$root.SetTopicDetail(qsParms.topic, qsParms.subtopic, qsParms.question, false);\r\n } else if (!!bindingContext.$root.ChapterPageViewModel) {\r\n ko.utils.arrayForEach(bindingContext.$root.ChapterPageViewModel.CurrentChapter().topics(), function (item) {\r\n item.Selected(false);\r\n });\r\n $('.topic-container.active').removeClass('active');\r\n }\r\n }\r\n\r\n\r\n bindingContext.$root.CurrentPageView(currentView);\r\n\r\n // Reposition by scoll position\r\n var scrollPosition = 0;\r\n if (!!qsParms.scroll && qsParms.scroll.length > 0) {\r\n scrollPosition = parseInt(qsParms.scroll);\r\n }\r\n $(\"html, body\").animate({ scrollTop: scrollPosition }, \"slow\");\r\n }\r\n return;\r\n }\r\n },\r\n update: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\r\n\r\n }\r\n};\r\nko.bindingHandlers.WordCloudSearchTrigger = {\r\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\r\n var availableEntities = [];\r\n\r\n if (!!bindingContext.$root.ChapterPageViewModel && !!bindingContext.$root.ChapterPageViewModel.CurrentChapter()) {\r\n availableEntities = bindingContext.$root.ChapterPageViewModel.CurrentChapter().topics();\r\n }\r\n\r\n bindingContext.$root.WordCloudAvailableEntities = availableEntities;\r\n },\r\n update: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\r\n $(element).on('click', function (ev) {\r\n ev.preventDefault();\r\n\r\n var dataId = $(this).data('wordcloud-id');\r\n\r\n if (!!dataId && dataId.length > 0) {\r\n var scrollPosition = Math.ceil($('.topic-grid').offset().top + $('.topic-grid').outerHeight());\r\n var qs = \"?wordcloudid=\" + dataId + \"&scroll=\" + scrollPosition;\r\n\r\n History.pushState({ qs: qs }, History.options.initialTitle, qs);\r\n }\r\n\r\n $(element).blur();\r\n\r\n });\r\n }\r\n};\r\nko.bindingHandlers.SwitchContentView = {\r\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\r\n\r\n },\r\n update: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\r\n var currentPageView = ko.utils.unwrapObservable(valueAccessor()).toLowerCase();\r\n var $siteSearchSection = $('#SearchSection');\r\n var $defaultSection = $('#DefaultSection');\r\n\r\n setTimeout(function () {\r\n if (currentPageView == bindingContext.$root.SearchViewParam) {\r\n $defaultSection.removeClass('active-section').animate({ \"opacity\": \"0\" }, 600);\r\n $siteSearchSection.addClass('active-section').animate({ \"opacity\": \"1\" }, 600);\r\n } else if (currentPageView == '' || currentPageView == bindingContext.$root.DefaultViewParam) {\r\n $siteSearchSection.removeClass('active-section').animate({ \"opactiy\": \"0\" }, 600);\r\n $defaultSection.addClass('active-section').animate({ \"opacity\": \"1\" }, 600);\r\n }\r\n }, 300);\r\n\r\n }\r\n};\r\nko.bindingHandlers.BindDropDownTrigger = {\r\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\r\n },\r\n update: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\r\n $(element).on('click', function (ev) {\r\n ev.preventDefault();\r\n $('#GlossaryModal').removeClass('active').removeClass('active-freeze').fadeOut(300);\r\n var $dropdownContainer = $(this).parent().parent().find('.js-drop-down-container');\r\n\r\n if (!!$dropdownContainer && $dropdownContainer.length > 0) {\r\n if ($(this).hasClass('expanded')) {\r\n $dropdownContainer.removeClass('active');\r\n $(this).removeClass('expanded');\r\n } else {\r\n $dropdownContainer.addClass('active');\r\n $(this).addClass('expanded');\r\n\r\n setTimeout(function () {\r\n BodyClickCloseDropDown($dropdownContainer, $(element));\r\n }, 100);\r\n\r\n $dropdownContainer.find('li').on('click', function () {\r\n setTimeout(function () {\r\n $('body').trigger('click');\r\n }, 100);\r\n });\r\n }\r\n\r\n }\r\n });\r\n\r\n }\r\n};\r\nfunction BodyClickCloseDropDown($dropdownContainer, $triggerElement) {\r\n $('body').one('click', function (ev) {\r\n if (!$dropdownContainer.is(ev.target) && $dropdownContainer.has(ev.target).length === 0) {\r\n $dropdownContainer.removeClass('active');\r\n $triggerElement.removeClass('expanded');\r\n } else {\r\n BodyClickCloseDropDown($dropdownContainer, $triggerElement);\r\n }\r\n });\r\n\r\n}\r\n\r\nvar animationTime = 700;\r\nvar defaultAnimation = {\r\n duration: 1000,\r\n translateY: 400,\r\n opacity: {\r\n value: [0, 1],\r\n duration: animationTime,\r\n easing: 'linear'\r\n },\r\n translateY: {\r\n value: [200, 0],\r\n duration: animationTime,\r\n elasticity: 400,\r\n easing: 'easeInOutBack'\r\n },\r\n};\r\n\r\nko.bindingHandlers.BindGridAnimation = {\r\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\r\n },\r\n update: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\r\n if ($(element).parent().hasClass('animation-initialized')) {\r\n var animation = defaultAnimation;\r\n animation.targets = element;\r\n anime(defaultAnimation);\r\n }\r\n }\r\n};\r\nko.bindingHandlers.BindRichTextContentTransform = {\r\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\r\n },\r\n update: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\r\n window.ExternalLinksNewWindow($(element));\r\n if (!!window.bm.InitGlossaryTermsModule) {\r\n window.bm.InitGlossaryTermsModule($(element));\r\n }\r\n }\r\n};"]}