{"version":3,"file":"kendo.multicolumncombobox.min.js","names":["factory","define","amd","kendo","ui","ComboBox","percentageUnitsRegex","MultiColumnComboBox","window","jQuery","extend","init","element","options","fn","call","this","list","parent","addClass","_allColumnsWidthsAreSet","width","_calculateDropDownWidth","dropDownWidth","name","ns","columns","filterFields","setOptions","length","i","currentWidth","isNaN","parseInt","test","totalWidth","support","scrollbar","_wrapper","wrapper","plugin","cssProperties","registerPrefix","registerValues","prop","values","roundedValues","concat"],"sources":["kendo.multicolumncombobox.js"],"mappings":"CAAA,SAAWA,GACW,mBAAXC,QAAyBA,OAAOC,IAAMD,OAAO,CAAC,sBAAuBD,GAC5EA,IAFJ,EAGG,WACC,IAoBQG,EACAC,EACAC,EACAC,EAIAC,EAwELC,OAAOL,MAAMM,OA/ERN,EAAQK,OAAOL,MACfC,EAAKD,EAAMC,GACXC,EAAWD,EAAGC,SACdC,EAAuB,kBAIvBC,EAAsBF,EAASK,OAAO,CACtCC,KAAM,SAASC,EAASC,GACpBR,EAASS,GAAGH,KAAKI,KAAKC,KAAMJ,EAASC,GACrCG,KAAKC,KAAKC,SAASC,SALV,sCAOLH,KAAKI,wBAAwBJ,KAAKH,SAClCG,KAAKC,KAAKC,SAASG,MAAML,KAAKM,wBAAwBN,KAAKH,UACpDG,KAAKH,QAAQU,eACpBP,KAAKC,KAAKC,SAASG,MAAML,KAAKH,QAAQU,gBAI9CV,QAAS,CACLW,KAAM,sBACNC,GAAI,4BACJC,QAAS,GACTH,cAAe,KACfI,aAAc,IAGlBC,WAAY,SAASf,GACjBR,EAASS,GAAGc,WAAWb,KAAKC,KAAMH,GAC9BG,KAAKI,wBAAwBP,GAC7BG,KAAKC,KAAKC,SAASG,MAAML,KAAKM,wBAAwBT,IAC/CG,KAAKH,QAAQU,eACpBP,KAAKC,KAAKC,SAASG,MAAML,KAAKH,QAAQU,gBAI9CH,wBAAyB,SAASP,GAC9B,IAAIa,EAAUb,EAAQa,QAEtB,IAAKA,IAAYA,EAAQG,OACrB,OAAO,EAGX,IAAK,IAAIC,EAAI,EAAGA,EAAIJ,EAAQG,OAAQC,IAAK,CACrC,IAAIC,EAAeL,EAAQI,GAAGT,MAC9B,IAAKU,GAAgBC,MAAMC,SAASF,EAAc,MAAQzB,EAAqB4B,KAAKH,GAChF,OAAO,EAIf,OAAO,GAGXT,wBAAyB,SAAST,GAI9B,IAHA,IAAIa,EAAUb,EAAQa,QAClBS,EAAahC,EAAMiC,QAAQC,YAEtBP,EAAI,EAAGA,EAAIJ,EAAQG,OAAQC,IAAK,CACrC,IAAIC,EAAeL,EAAQI,GAAGT,MAC9Bc,GAA0BF,SAASF,EAAc,IAGrD,OAAOI,GAGXG,SAAU,WACNjC,EAASS,GAAGwB,SAASvB,KAAKC,MAC1BA,KAAKuB,QAAQpB,SA/DJ,qBAmEjBf,EAAGoC,OAAOjC,GAEVJ,EAAMsC,cAAcC,eAAe,sBAAuB,YAE1DvC,EAAMsC,cAAcE,eAAe,sBAAuB,CAAC,CACvDC,KAAM,UACNC,OAAQ1C,EAAMsC,cAAcK,cAAcC,OAAO,CAAC,CAAC,OAAQ","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.combobox'], factory) :\n factory();\n})((function () {\n var __meta__ = {\n id: \"multicolumncombobox\",\n name: \"MultiColumnComboBox\",\n category: \"web\",\n description: \"The MultiColumnComboBox widget allows the selection from pre-defined values or entering a new value where the list popup is rendered in table layout.\",\n depends: [ \"combobox\" ],\n features: [ {\n id: \"mobile-scroller\",\n name: \"Mobile scroller\",\n description: \"Support for kinetic scrolling in mobile device\",\n depends: [ \"mobile.scroller\" ]\n }, {\n id: \"virtualization\",\n name: \"VirtualList\",\n description: \"Support for virtualization\",\n depends: [ \"virtuallist\" ]\n } ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n ui = kendo.ui,\n ComboBox = ui.ComboBox,\n percentageUnitsRegex = /^\\d+(\\.\\d+)?%$/i,\n MCCOMBOBOX = \"k-dropdowngrid\",\n POPUPCLASS = \"k-dropdowngrid-popup k-popup-flush\";\n\n var MultiColumnComboBox = ComboBox.extend({\n init: function(element, options) {\n ComboBox.fn.init.call(this, element, options);\n this.list.parent().addClass(POPUPCLASS);\n\n if (this._allColumnsWidthsAreSet(this.options)) {\n this.list.parent().width(this._calculateDropDownWidth(this.options));\n } else if (this.options.dropDownWidth) {\n this.list.parent().width(this.options.dropDownWidth);\n }\n },\n\n options: {\n name: \"MultiColumnComboBox\",\n ns: \".kendoMultiColumnComboBox\",\n columns: [],\n dropDownWidth: null,\n filterFields: []\n },\n\n setOptions: function(options) {\n ComboBox.fn.setOptions.call(this, options);\n if (this._allColumnsWidthsAreSet(options)) {\n this.list.parent().width(this._calculateDropDownWidth(options));\n } else if (this.options.dropDownWidth) {\n this.list.parent().width(this.options.dropDownWidth);\n }\n },\n\n _allColumnsWidthsAreSet: function(options) {\n var columns = options.columns;\n\n if (!columns || !columns.length) {\n return false;\n }\n\n for (var i = 0; i < columns.length; i++) {\n var currentWidth = columns[i].width;\n if (!currentWidth || isNaN(parseInt(currentWidth, 10)) || percentageUnitsRegex.test(currentWidth)) {\n return false;\n }\n }\n\n return true;\n },\n\n _calculateDropDownWidth: function(options) {\n var columns = options.columns;\n var totalWidth = kendo.support.scrollbar();\n\n for (var i = 0; i < columns.length; i++) {\n var currentWidth = columns[i].width;\n totalWidth = totalWidth + parseInt(currentWidth, 10);\n }\n\n return totalWidth;\n },\n\n _wrapper: function() {\n ComboBox.fn._wrapper.call(this);\n this.wrapper.addClass(MCCOMBOBOX);\n }\n });\n\n ui.plugin(MultiColumnComboBox);\n\n kendo.cssProperties.registerPrefix(\"MultiColumnComboBox\", \"k-input-\");\n\n kendo.cssProperties.registerValues(\"MultiColumnComboBox\", [{\n prop: \"rounded\",\n values: kendo.cssProperties.roundedValues.concat([['full', 'full']])\n }]);\n })(window.kendo.jQuery);\n\n}));\n"]}