{"version":3,"file":"../../widgets/docsTabWidget.js","sources":["widgets/docsTabWidget.js"],"sourcesContent":["\"use strict\";\n\nvar docsWidget = function () {\n var docsRowTemplate = '';\n var docsWidgetParams = {\n model: {},\n url: {},\n template: {}\n };\n\n function renderAddDocButton(data) {\n var $moreDocsBtn = $('#moreDocsBtn');\n\n if (data.IsDisplayAddDockButton) {\n $moreDocsBtn.show();\n } else {\n $moreDocsBtn.hide();\n }\n }\n\n function getRequestData() {\n return {\n url: docsWidgetParams.url.getDocs,\n id: docsWidgetParams.model.id,\n filter: docsWidgetParams.model.filter,\n serviceIds: docsWidgetParams.model.serviceTypeIds,\n skip: docsWidgetParams.model.skip,\n limit: docsWidgetParams.model.itemsLimit\n };\n }\n\n function getDocs(callback) {\n var req = getRequestData();\n $.ajax({\n url: req.url,\n type: 'POST',\n data: {\n entityId: req.id,\n docFilter: req.filter,\n serviceIds: req.serviceIds,\n skip: req.skip,\n take: req.limit\n },\n success: function success(data) {\n callback(data);\n }\n });\n }\n\n function appendDocList(data) {\n var $docsList = $('.docs');\n $docsList.append(docsRowTemplate.render({\n Documents: data.Documents\n }));\n renderAddDocButton(data);\n }\n\n function renderDocList(data) {\n var $docsList = $('.docs');\n $docsList.html(docsRowTemplate.render({\n Documents: data.Documents\n }));\n renderAddDocButton(data);\n }\n\n function resetServiceTypesIds() {\n docsWidgetParams.model.skip = 0;\n docsWidgetParams.model.serviceTypeIds = [];\n }\n\n function findSelectedIdFromServiceTypeIds(allServiceTypes, selectedId) {\n return _.find(allServiceTypes, function (item) {\n return item.index === selectedId;\n }).value;\n }\n\n function pushSelectedIdToServiceTypeIdList(selectDataContext) {\n _.forEach(selectDataContext.state.selectedIdx, function (id) {\n if (id != 0) {\n var selectedId = findSelectedIdFromServiceTypeIds(selectDataContext.items, id);\n docsWidgetParams.model.serviceTypeIds.push(selectedId);\n }\n });\n }\n\n function bindHandlers() {\n $(document).on('click', '.docs-section-link', function (e) {\n e.preventDefault();\n var $this = $(this);\n var filter = $this.attr('data-filter');\n $('.docs-sections .tab').removeClass('-active');\n $this.parent().addClass('-active');\n docsWidgetParams.model.filter = filter;\n docsWidgetParams.model.skip = 0;\n getDocs(function (docs) {\n renderDocList(docs.Result);\n });\n docsWidgetParams.model.skip += docsWidgetParams.model.itemsLimit;\n window.history.replaceState('', 'Title', $this.attr('href'));\n });\n $(document).on('click', '#moreDocsBtn', function () {\n getDocs(function (docs) {\n appendDocList(docs.Result);\n });\n docsWidgetParams.model.skip += docsWidgetParams.model.itemsLimit;\n });\n }\n\n function initPlugins() {\n $('#serviceTypes').selectric({\n disableOnMobile: false,\n onChange: function onChange(element, selectData) {\n resetServiceTypesIds();\n pushSelectedIdToServiceTypeIdList(selectData);\n getDocs(function (docs) {\n renderDocList(docs.Result);\n });\n docsWidgetParams.model.skip += docsWidgetParams.model.itemsLimit;\n },\n optionsItemBuilder: function optionsItemBuilder(itemData) {\n return \"