{"version":3,"sources":["knockout/kosearch.js"],"names":["isArray","Array","objectToStringFn","Object","prototype","toString","arrayToStringResult","call","subject","GetRequestObject","koObject","viewModelToUpdate","ko","mapping","toJS","prop","parentProperty","arrayCopy","slice","length","i","IsSelected","push","childProp","childProperty","bindingHandlers","bindFilterList","init","element","valueAccessor","allBindingsAccessor","viewModel","bindingContext","$","observable","allBindings","searchFilters","$root","SearchFilters","root","toggleSingleSelectFilter","data","event","selectedItem","this","IsEnabled","hasOwnProperty","isObservable","HasPendingUpdates","ParentName","ResetDropdown","utils","arrayForEach","item","Name","isFunction","ClearFilter","bindFilterListClearFunction","bindFilterListSearchFunction","bindFilterListDeleteOnSelect","remove","toggleMultiSelectFilter","preventDefault","stopPropagation","IsSelectAll","IsClearAll","toggleDateRangeFilter","DateRangeFrom","DateRangeTo","AllowMultiSelect","ID","ClearAllFilters"],"mappings":"AAAA,IAAIA,QAAW,WAEX,GAAIC,MAAMD,QACN,OAAOC,MAAMD,QAKjB,IAAIE,EAAmBC,OAAOC,UAAUC,SACpCC,EAAsBJ,EAAiBK,SAE3C,OAAO,SAAUC,GACb,OAAON,EAAiBK,KAAKC,KAAaF,GAZpC,GAgBd,SAASG,iBAAiBC,GACtB,IAAIC,EAAoBC,GAAGC,QAAQC,KAAKJ,GACxC,IAAK,IAAIK,KAAQJ,EAAmB,CAChC,IAAIK,EAAiBL,EAAkBI,GACvC,GAAIf,QAAQgB,GAAiB,CACzB,IAAIC,EAAYD,EAAeE,MAAM,GACrCF,EAAeG,OAAS,EACxB,IAAK,IAAIC,EAAI,EAAGA,EAAIH,EAAUE,OAAQC,IACtB,sBAARL,QAAqE,IAA7BE,EAAUG,GAAa,WAChC,GAA3BH,EAAUG,GAAGC,YACbL,EAAeM,KAAKL,EAAUG,IAGlCJ,EAAeM,KAAKL,EAAUG,SAKtC,IAAK,IAAIG,KAAaP,EAAgB,CAClC,IAAIQ,EAAgBR,EAAeO,GACnC,GAAIvB,QAAQwB,GAAgB,CACpBP,EAAYO,EAAcN,MAAM,GACpCM,EAAcL,OAAS,EACvB,IAASC,EAAI,EAAGA,EAAIH,EAAUE,OAAQC,IACtB,sBAARL,QAAqE,IAA7BE,EAAUG,GAAa,WAChC,GAA3BH,EAAUG,GAAGC,YACbG,EAAcF,KAAKL,EAAUG,IAGjCI,EAAcF,KAAKL,EAAUG,MAOrD,OAAOT,EAGXC,GAAGa,gBAAgBC,gBACfC,KAAM,SAAUC,EAASC,EAAeC,EAAqBC,EAAWC,GACtDC,EAAEL,GAAhB,IACIM,EAAaL,IACbM,EAAcL,IACdM,EAAgBJ,EAAeK,MAAMC,cACrCC,EAAOP,EAAeK,MAE1BH,EAAWM,yBAA2B,SAAUC,EAAMC,GAClD,IAAIC,EAAeC,UACkB,IAA3BD,EAAaE,YACnBF,EAAeF,GACfF,EAAKO,eAAe,sBAAwBlC,GAAGmC,aAAaR,EAAwB,oBACpFA,EAAKS,mBAAkB,GAGK,GAA5BL,EAAaE,aAgBgB,GAA7BF,EAAatB,cACbsB,EAAatB,YAAW,GACQ,OAA5BsB,EAAaM,YAAqD,OAA9BN,EAAaM,cACjDV,EAAKW,cAAcP,EAAaM,gBAGpCN,EAAatB,YAAW,GACxBT,GAAGuC,MAAMC,aAAalB,IAAc,SAAUmB,GACjB,GAArBA,EAAKhC,cAAwBgC,EAAKC,QAAUX,EAAaW,QACzDD,EAAKhC,YAAW,MAIxBY,EAAEsB,WAAWZ,EAAaa,aAC1Bb,EAAaa,cAEPrB,GAAeF,EAAEsB,WAAWpB,EAAYsB,6BAC1CtB,EAAYsB,4BAA4BtB,EAAYuB,8BAE9CvB,GAAeF,EAAEsB,WAAWpB,EAAYuB,+BAC1CvB,EAAYuB,+BAIlBvB,GAA2D,GAA5CA,EAAYwB,8BAC7BzB,EAAW0B,OAAOjB,IAxCe,GAA7BA,EAAatB,eACbsB,EAAatB,YAAW,GAClBc,GAAeF,EAAEsB,WAAWpB,EAAYsB,6BAC1CtB,EAAYsB,4BAA4BtB,EAAYuB,8BAE9CvB,GAAeF,EAAEsB,WAAWpB,EAAYuB,+BAC1CvB,EAAYuB,+BAGdvB,GAA2D,GAA5CA,EAAYwB,8BAC7BzB,EAAW0B,OAAOjB,KAkClCT,EAAW2B,wBAA0B,SAAUpB,EAAMC,GAEjDA,EAAMoB,iBACNpB,EAAMqB,kBAEFxB,EAAKO,eAAe,sBAAwBlC,GAAGmC,aAAaR,EAAwB,oBACpFA,EAAKS,mBAAkB,GAGK,GARbJ,KAQFC,aAagB,GArBdD,KAqBFvB,aArBEuB,KAsBFvB,YAAW,IAEpBkB,EAAKO,eAAe,gBAAkBlC,GAAGmC,aAAaR,EAAkB,cACxEA,EAAKyB,aAAY,GAEjBzB,EAAKO,eAAe,eAAiBlC,GAAGmC,aAAaR,EAAiB,aACtEA,EAAK0B,YAAW,GA5BLrB,KA8BFvB,YAAW,IAExBY,EAAEsB,WAhCaX,KAgCWY,aAhCXZ,KAiCFY,cAEPrB,GAAeF,EAAEsB,WAAWpB,EAAYsB,6BAC1CtB,EAAYsB,4BAA4BtB,EAAYuB,8BAE9CvB,GAAeF,EAAEsB,WAAWpB,EAAYuB,+BAC1CvB,EAAYuB,gCA9Ba,GATlBd,KASEvB,eATFuB,KAUEvB,YAAW,GAClBc,GAAeF,EAAEsB,WAAWpB,EAAYsB,6BAC1CtB,EAAYsB,4BAA4BtB,EAAYuB,8BAE9CvB,GAAeF,EAAEsB,WAAWpB,EAAYuB,+BAC1CvB,EAAYuB,iCA8BhCxB,EAAWgC,sBAAwB,SAAUzB,EAAMC,GAC/C,IAAIC,EAAeC,KACnBF,EAAMoB,iBACNpB,EAAMqB,kBAE0B,GAA5BpB,EAAaE,aAGbjC,GAAGmC,aAAaX,EAAc+B,gBAAkBvD,GAAGmC,aAAaX,EAAcgC,eAC9EzB,EAAatB,aAAce,EAAc+B,iBAAoD,IAAjC/B,EAAc+B,mBAA6B/B,EAAcgC,eAAgD,IAA/BhC,EAAcgC,eAChH,GAAhCrC,EAAUsC,oBACVzD,GAAGuC,MAAMC,aAAalB,IAAc,SAAUmB,GACtCA,EAAKiB,IAAM3B,EAAa2B,IACxBjB,EAAKhC,YAAW,OAOpCa,EAAWqC,gBAAkB,SAAU9B,EAAMC,GACzC9B,GAAGuC,MAAMC,aAAalB,IAAc,SAAUmB,GAC1CA,EAAKR,WAAU,GACfQ,EAAKhC,YAAW,KAEdc,GAAeF,EAAEsB,WAAWpB,EAAYuB,+BAC1CvB,EAAYuB","file":"kosearch.js","sourcesContent":["var isArray = (function () {\r\n // Use compiler's own isArray when available\r\n if (Array.isArray) {\r\n return Array.isArray;\r\n }\r\n\r\n // Retain references to variables for performance\r\n // optimization\r\n var objectToStringFn = Object.prototype.toString,\r\n arrayToStringResult = objectToStringFn.call([]);\r\n\r\n return function (subject) {\r\n return objectToStringFn.call(subject) === arrayToStringResult;\r\n };\r\n}());\r\n\r\nfunction GetRequestObject(koObject) {\r\n var viewModelToUpdate = ko.mapping.toJS(koObject);\r\n for (var prop in viewModelToUpdate) {\r\n var parentProperty = viewModelToUpdate[prop];\r\n if (isArray(parentProperty)) {\r\n var arrayCopy = parentProperty.slice(0);\r\n parentProperty.length = 0;\r\n for (var i = 0; i < arrayCopy.length; i++) {\r\n if (prop != 'ArticleTypeFilters' && typeof (arrayCopy[i].IsSelected) !== 'undefined') {\r\n if (arrayCopy[i].IsSelected == true) {\r\n parentProperty.push(arrayCopy[i]);\r\n }\r\n } else {\r\n parentProperty.push(arrayCopy[i]);\r\n }\r\n };\r\n }\r\n else {\r\n for (var childProp in parentProperty) {\r\n var childProperty = parentProperty[childProp];\r\n if (isArray(childProperty)) {\r\n var arrayCopy = childProperty.slice(0);\r\n childProperty.length = 0;\r\n for (var i = 0; i < arrayCopy.length; i++) {\r\n if (prop != 'ArticleTypeFilters' && typeof (arrayCopy[i].IsSelected) !== 'undefined') {\r\n if (arrayCopy[i].IsSelected == true) {\r\n childProperty.push(arrayCopy[i]);\r\n }\r\n } else {\r\n childProperty.push(arrayCopy[i]);\r\n }\r\n };\r\n }\r\n }\r\n }\r\n }\r\n return viewModelToUpdate;\r\n}\r\n\r\nko.bindingHandlers.bindFilterList = {\r\n init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\r\n var acInput = $(element);\r\n var observable = valueAccessor();\r\n var allBindings = allBindingsAccessor();\r\n var searchFilters = bindingContext.$root.SearchFilters;\r\n var root = bindingContext.$root;\r\n\r\n observable.toggleSingleSelectFilter = function (data, event) {\r\n var selectedItem = this;\r\n if(typeof selectedItem.IsEnabled === 'undefined')\r\n selectedItem = data;\r\n if (root.hasOwnProperty('HasPendingUpdates') && ko.isObservable(root['HasPendingUpdates'])) {\r\n root.HasPendingUpdates(true);\r\n }\r\n\r\n if (selectedItem.IsEnabled() == false) {\r\n if (selectedItem.IsSelected() == true) {\r\n selectedItem.IsSelected(false);\r\n if (!!allBindings && $.isFunction(allBindings.bindFilterListClearFunction)) {\r\n allBindings.bindFilterListClearFunction(allBindings.bindFilterListSearchFunction);\r\n } else {\r\n if (!!allBindings && $.isFunction(allBindings.bindFilterListSearchFunction)) {\r\n allBindings.bindFilterListSearchFunction();\r\n }\r\n }\r\n if (!!allBindings && allBindings.bindFilterListDeleteOnSelect == true) {\r\n observable.remove(selectedItem);\r\n }\r\n }\r\n return;\r\n }\r\n if (selectedItem.IsSelected() == true) {\r\n selectedItem.IsSelected(false);\r\n if (selectedItem.ParentName !== null && selectedItem.ParentName() !== null) {\r\n root.ResetDropdown(selectedItem.ParentName());\r\n }\r\n } else {\r\n selectedItem.IsSelected(true);\r\n ko.utils.arrayForEach(observable(), function (item) {\r\n if (item.IsSelected() == true && item.Name() != selectedItem.Name()) {\r\n item.IsSelected(false);\r\n }\r\n });\r\n }\r\n if ($.isFunction(selectedItem.ClearFilter)) {\r\n selectedItem.ClearFilter();\r\n } else {\r\n if (!!allBindings && $.isFunction(allBindings.bindFilterListClearFunction)) {\r\n allBindings.bindFilterListClearFunction(allBindings.bindFilterListSearchFunction);\r\n } else {\r\n if (!!allBindings && $.isFunction(allBindings.bindFilterListSearchFunction)) {\r\n allBindings.bindFilterListSearchFunction();\r\n }\r\n }\r\n }\r\n if (!!allBindings && allBindings.bindFilterListDeleteOnSelect == true) {\r\n observable.remove(selectedItem);\r\n }\r\n };\r\n\r\n observable.toggleMultiSelectFilter = function (data, event) {\r\n var selectedItem = this;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if (root.hasOwnProperty('HasPendingUpdates') && ko.isObservable(root['HasPendingUpdates'])) {\r\n root.HasPendingUpdates(true);\r\n }\r\n\r\n if (selectedItem.IsEnabled() == false) {\r\n if (selectedItem.IsSelected() == true) {\r\n selectedItem.IsSelected(false);\r\n if (!!allBindings && $.isFunction(allBindings.bindFilterListClearFunction)) {\r\n allBindings.bindFilterListClearFunction(allBindings.bindFilterListSearchFunction);\r\n } else {\r\n if (!!allBindings && $.isFunction(allBindings.bindFilterListSearchFunction)) {\r\n allBindings.bindFilterListSearchFunction();\r\n }\r\n }\r\n }\r\n return;\r\n }\r\n if (selectedItem.IsSelected() == true) {\r\n selectedItem.IsSelected(false);\r\n } else {\r\n if (root.hasOwnProperty('IsSelectAll') && ko.isObservable(root['IsSelectAll'])) {\r\n root.IsSelectAll(false);\r\n }\r\n if (root.hasOwnProperty('IsClearAll') && ko.isObservable(root['IsClearAll'])) {\r\n root.IsClearAll(false);\r\n }\r\n selectedItem.IsSelected(true);\r\n }\r\n if ($.isFunction(selectedItem.ClearFilter)) {\r\n selectedItem.ClearFilter();\r\n } else {\r\n if (!!allBindings && $.isFunction(allBindings.bindFilterListClearFunction)) {\r\n allBindings.bindFilterListClearFunction(allBindings.bindFilterListSearchFunction);\r\n } else {\r\n if (!!allBindings && $.isFunction(allBindings.bindFilterListSearchFunction)) {\r\n allBindings.bindFilterListSearchFunction();\r\n }\r\n }\r\n }\r\n };\r\n\r\n observable.toggleDateRangeFilter = function (data, event) {\r\n var selectedItem = this;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if (selectedItem.IsEnabled() == false) {\r\n return;\r\n }\r\n if (ko.isObservable(searchFilters.DateRangeFrom) && ko.isObservable(searchFilters.DateRangeTo)) {\r\n selectedItem.IsSelected((!!searchFilters.DateRangeFrom() && searchFilters.DateRangeFrom() != '') || (!!searchFilters.DateRangeTo() && searchFilters.DateRangeTo() != ''));\r\n if (viewModel.AllowMultiSelect() == false) {\r\n ko.utils.arrayForEach(observable(), function (item) {\r\n if (item.ID != selectedItem.ID) {\r\n item.IsSelected(false);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n\r\n observable.ClearAllFilters = function (data, event) {\r\n ko.utils.arrayForEach(observable(), function (item) {\r\n item.IsEnabled(true);\r\n item.IsSelected(false);\r\n });\r\n if (!!allBindings && $.isFunction(allBindings.bindFilterListSearchFunction)) {\r\n allBindings.bindFilterListSearchFunction();\r\n }\r\n };\r\n }\r\n}\r\n"]}