{"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 \"
\".concat(itemData.text, \"
\");\n }\n });\n $('.docs-filter-wrap').css('visibility', 'visible');\n }\n\n function unbindHandlers() {\n $(document).off('click', '.docs-section-link');\n $(document).off('change', '#serviceTypes');\n $(document).off('click', '#moreDocsBtn');\n }\n\n function compileTemplates() {\n docsRowTemplate = Hogan.compile(docsWidgetParams.template.doc);\n }\n\n function setParams(docsParams) {\n docsWidgetParams = $.extend({}, docsWidgetParams, docsParams);\n }\n\n function init(docsParams) {\n unbindHandlers();\n setParams(docsParams);\n compileTemplates();\n initPlugins();\n bindHandlers();\n }\n\n return {\n init: init\n };\n}();"],"names":["docsWidget","docsRowTemplate","docsWidgetParams","model","url","template","renderAddDocButton","data","$moreDocsBtn","$","IsDisplayAddDockButton","show","hide","getDocs","callback","req","id","filter","serviceIds","serviceTypeIds","skip","limit","itemsLimit","ajax","type","entityId","docFilter","take","success","renderDocList","html","render","Documents","pushSelectedIdToServiceTypeIdList","selectDataContext","_","forEach","state","selectedIdx","allServiceTypes","selectedId","items","find","item","index","value","push","bindHandlers","document","on","e","preventDefault","$this","this","attr","removeClass","parent","addClass","docs","Result","window","history","replaceState","append","initPlugins","selectric","disableOnMobile","onChange","element","selectData","optionsItemBuilder","itemData","concat","text","css","init","docsParams","off","extend","Hogan","compile","doc"],"mappings":"aAEA,IAAIA,WAAa,WACf,IAAIC,EAAkB,GAClBC,EAAmB,CACrBC,MAAO,GACPC,IAAK,GACLC,SAAU,IAGZ,SAASC,EAAmBC,GAC1B,IAAIC,EAAeC,EAAE,gBAEjBF,EAAKG,uBACPF,EAAaG,OAEbH,EAAaI,OAejB,SAASC,EAAQC,GACf,IAAIC,EAXG,CACLX,IAAKF,EAAiBE,IAAIS,QAC1BG,GAAId,EAAiBC,MAAMa,GAC3BC,OAAQf,EAAiBC,MAAMc,OAC/BC,WAAYhB,EAAiBC,MAAMgB,eACnCC,KAAMlB,EAAiBC,MAAMiB,KAC7BC,MAAOnB,EAAiBC,MAAMmB,YAMhCb,EAAEc,KAAK,CACLnB,IAAKW,EAAIX,IACToB,KAAM,OACNjB,KAAM,CACJkB,SAAUV,EAAIC,GACdU,UAAWX,EAAIE,OACfC,WAAYH,EAAIG,WAChBE,KAAML,EAAIK,KACVO,KAAMZ,EAAIM,OAEZO,QAAS,SAAiBrB,GACxBO,EAASP,MAaf,SAASsB,EAActB,GACLE,EAAE,SACRqB,KAAK7B,EAAgB8B,OAAO,CACpCC,UAAWzB,EAAKyB,aAElB1B,EAAmBC,GAcrB,SAAS0B,EAAkCC,GACzCC,EAAEC,QAAQF,EAAkBG,MAAMC,YAAa,SAAUtB,GACvD,IARsCuB,EAAiBC,EAQ7C,GAANxB,IARkCuB,EAScL,EAAkBO,MATfD,EASsBxB,EAAvEwB,EARDL,EAAEO,KAAKH,EAAiB,SAAUI,GACvC,OAAOA,EAAKC,QAAUJ,IACrBK,MAOC3C,EAAiBC,MAAMgB,eAAe2B,KAAKN,MAKjD,SAASO,IACPtC,EAAEuC,UAAUC,GAAG,QAAS,qBAAsB,SAAUC,GACtDA,EAAEC,iBACF,IAAIC,EAAQ3C,EAAE4C,MACVpC,EAASmC,EAAME,KAAK,eACxB7C,EAAE,uBAAuB8C,YAAY,WACrCH,EAAMI,SAASC,SAAS,WACxBvD,EAAiBC,MAAMc,OAASA,EAChCf,EAAiBC,MAAMiB,KAAO,EAC9BP,EAAQ,SAAU6C,GAChB7B,EAAc6B,EAAKC,UAErBzD,EAAiBC,MAAMiB,MAAQlB,EAAiBC,MAAMmB,WACtDsC,OAAOC,QAAQC,aAAa,GAAI,QAASV,EAAME,KAAK,WAEtD7C,EAAEuC,UAAUC,GAAG,QAAS,eAAgB,WACtCpC,EAAQ,SAAU6C,GApDCnD,EAqDHmD,EAAKC,OApDPlD,EAAE,SACRsD,OAAO9D,EAAgB8B,OAAO,CACtCC,UAAWzB,EAAKyB,aAElB1B,EAAmBC,KAkDjBL,EAAiBC,MAAMiB,MAAQlB,EAAiBC,MAAMmB,aAI1D,SAAS0C,IACPvD,EAAE,iBAAiBwD,UAAU,CAC3BC,iBAAiB,EACjBC,SAAU,SAAkBC,EAASC,GA7CvCnE,EAAiBC,MAAMiB,KAAO,EAC9BlB,EAAiBC,MAAMgB,eAAiB,GA8CpCc,EAAkCoC,GAClCxD,EAAQ,SAAU6C,GAChB7B,EAAc6B,EAAKC,UAErBzD,EAAiBC,MAAMiB,MAAQlB,EAAiBC,MAAMmB,YAExDgD,mBAAoB,SAA4BC,GAC9C,MAAO,mCAAqCC,OAAOD,EAASE,KAAM,aAGtEhE,EAAE,qBAAqBiE,IAAI,aAAc,WAyB3C,MAAO,CACLC,KATF,SAAcC,GAbZnE,EAAEuC,UAAU6B,IAAI,QAAS,sBACzBpE,EAAEuC,UAAU6B,IAAI,SAAU,iBAC1BpE,EAAEuC,UAAU6B,IAAI,QAAS,gBAORD,EAMPA,EALV1E,EAAmBO,EAAEqE,OAAO,GAAI5E,EAAkB0E,GAJlD3E,EAAkB8E,MAAMC,QAAQ9E,EAAiBG,SAAS4E,KAW1DjB,IACAjB,MA/Ia"}