@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 14.3 kB
JavaScript
module.exports=function(e){function t(i){if(a[i])return a[i].exports;var n=a[i]={exports:{},id:i,loaded:!1};return e[i].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var a={};return t.m=e,t.c=a,t.p="",t(0)}({0:function(e,t,a){a(1611),e.exports=a(1611)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},20:function(e,t){e.exports=require("../kendo.core")},953:function(e,t){e.exports=require("../kendo.popup")},956:function(e,t){e.exports=require("../kendo.treeview")},1579:function(e,t){e.exports=require("../kendo.numerictextbox")},1611:function(e,t,a){var i,n,s;!function(r,define){n=[a(20),a(953),a(956),a(1579),a(1612),a(1613)],i=r,s="function"==typeof i?i.apply(t,n):i,!(void 0!==s&&(e.exports=s))}(function(){!function(e){function t(e){var t,a={},i=[];for(t=0;t<e.length;t++)a[e[t].value]?!a[e[t].value].checked&&e[t].checked&&(a[e[t].value].checked=!0):(a[e[t].value]=e[t],i.push(e[t]));return i}function a(t,i){var n,s,r,o,l,d,c=!1,u=t instanceof e.data.HierarchicalDataSource&&t.data(),h=this,p=this.values;for(n=0;n<u.length;n++)s=u[n],r=(""+s.text).toLocaleLowerCase(e.culture().name),o=i===!0||""===i||r.indexOf(i)>=0,l=a.bind(h),d=l(s.children,i),c=c||d||o,s.hidden=!o&&!d,i.length||p&&!p.length?s.checked=!s.hidden:p&&p.indexOf(s.text)!=-1&&(s.checked=!0);return u&&t.filter({field:"hidden",operator:"neq",value:!0}),c}function i(t){var a,n,s=t instanceof e.data.HierarchicalDataSource&&t.data();for(a=0;a<s.length;a++)n=s[a],n.checked=!1,n.hasChildren&&i(n.children)}function n(t){var a,i,n=e.spreadsheet.messages.filterMenu.operators,s=[];for(a in t)if(t.hasOwnProperty(a))for(i in t[a])t[a].hasOwnProperty(i)&&s.push({text:n[a][i],value:i,unique:a+"_"+i,type:a});return s}var s,r,o,l,d,c=e.jQuery,u=e.ui.Widget,h={details:"k-details",button:"k-button",detailsSummary:"k-details-summary",detailsContent:"k-details-content",icon:"k-icon",iconCollapse:"k-i-arrow-45-down-right",iconExpand:"k-i-arrow-60-right",iconSearch:"k-i-zoom",textbox:"k-textbox",wrapper:"k-spreadsheet-filter-menu",filterByCondition:"k-spreadsheet-condition-filter",filterByValue:"k-spreadsheet-value-filter",valuesTreeViewWrapper:"k-spreadsheet-value-treeview-wrapper",actionButtons:"k-action-buttons"};e.spreadsheet.messages.filterMenu={all:"All",sortAscending:"Sort range A to Z",sortDescending:"Sort range Z to A",filterByValue:"Filter by value",filterByCondition:"Filter by condition",apply:"Apply",search:"Search",addToCurrent:"Add to current selection",clear:"Clear",blanks:"(Blanks)",operatorNone:"None",and:"AND",or:"OR",operators:{string:{contains:"Text contains",doesnotcontain:"Text does not contain",startswith:"Text starts with",endswith:"Text ends with",matches:"Text matches",doesnotmatch:"Text does not match"},date:{eq:"Date is",neq:"Date is not",lt:"Date is before",gt:"Date is after"},number:{eq:"Is equal to",neq:"Is not equal to",gte:"Is greater than or equal to",gt:"Is greater than",lte:"Is less than or equal to",lt:"Is less than"}}},s=u.extend({init:function(t,a){u.fn.init.call(this,t,a),this.element.addClass(d.classNames.details),this._summary=this.element.find("."+d.classNames.detailsSummary).on("click",this._toggle.bind(this));var i=a.expanded?d.classNames.iconCollapse:d.classNames.iconExpand;this._icon=c("<span />",{"class":d.classNames.icon+" "+i}).prependTo(this._summary),this._container=e.wrap(this._summary.next(),!0),a.expanded||this._container.hide()},options:{name:"Details"},events:["toggle"],visible:function(){return this.options.expanded},toggle:function(t){var a=e.fx(this._container).expand("vertical");a.stop()[t?"reverse":"play"](),this._icon.toggleClass(d.classNames.iconExpand,t).toggleClass(d.classNames.iconCollapse,!t),this.options.expanded=!t},_toggle:function(){var e=this.visible();this.toggle(e),this.trigger("toggle",{show:e})}}),e.data.binders.spreadsheetFilterValue=e.data.Binder.extend({init:function(t,a,i){e.data.Binder.fn.init.call(this,t,a,i),this._change=c.proxy(this.change,this),c(this.element).on("change",this._change)},refresh:function(){var e=this,t=e.bindings.spreadsheetFilterValue.get();c(e.element).val(t instanceof Date?"":t)},change:function(){var e=this.element.value;this.bindings.spreadsheetFilterValue.set(e)}}),e.data.binders.widget.spreadsheetFilterValue=e.data.Binder.extend({init:function(t,a,i){e.data.Binder.fn.init.call(this,t.element[0],a,i),this.widget=t,this._change=c.proxy(this.change,this),this.widget.first("change",this._change)},refresh:function(){var e=this.bindings.spreadsheetFilterValue,t=e.get(),a=c(this.widget.element).data("filterType");this.widget.value("date"===a&&t instanceof Date||"number"===a&&!isNaN(t)?t:null)},change:function(){var e=this.widget.value(),t=this.bindings.spreadsheetFilterValue;t.set(e)}}),r={filterByValue:"<div class='"+h.detailsSummary+"'>#= messages.filterByValue #</div><div class='"+h.detailsContent+"'><div class='k-textbox k-space-right'><input placeholder='#= messages.search #' data-#=ns#bind='events: { input: filterValues }' /><span class='k-icon k-i-zoom'></span></div><div data-#=ns#bind='visible: hasActiveSearch'><input class='k-checkbox' type='checkbox' data-#=ns#bind='checked: appendToSearch' id='_#=guid#'/><label class='k-checkbox-label' for='_#=guid#'>#= messages.addToCurrent #</label></div><div class='"+h.valuesTreeViewWrapper+"'><div data-#=ns#role='treeview' data-#=ns#checkboxes='{ checkChildren: true }' data-#=ns#bind='source: valuesDataSource, events: { check: valuesChange, select: valueSelect }' ></div></div></div>",filterByCondition:"<div class='"+h.detailsSummary+"'>#= messages.filterByCondition #</div><div class='"+h.detailsContent+'\'><div><select data-#=ns#role="dropdownlist"data-#=ns#bind="value: operator, source: operators, events: { change: operatorChange } "data-value-primitive="false"data-option-label="#=messages.operatorNone#"data-height="auto"data-text-field="text"data-value-field="unique"></select></div><div data-#=ns#bind="visible: isString"><input data-filter-type="string" data-#=ns#bind="spreadsheetFilterValue: customFilter.criteria[0].value" class="k-textbox" /></div><div data-#=ns#bind="visible: isNumber"><input data-filter-type="number" data-#=ns#role="numerictextbox" data-#=ns#bind="spreadsheetFilterValue: customFilter.criteria[0].value" /></div><div data-#=ns#bind="visible: isDate"><input data-filter-type="date" data-#=ns#role="datepicker" data-#=ns#bind="spreadsheetFilterValue: customFilter.criteria[0].value" /></div></div>',menuItem:"<li data-command='#=command#' data-dir='#=dir#'><span class='k-icon k-i-#=iconClass#'></span>#=text#</li>",actionButtons:"<button data-#=ns#bind='click: apply' class='k-button k-primary'>#=messages.apply#</button><button data-#=ns#bind='click: clear' class='k-button'>#=messages.clear#</button>"},o=e.spreadsheet.FilterMenuViewModel=e.data.ObservableObject.extend({valuesChange:function(t){var a=t?t.sender.dataSource:this.valuesDataSource,i=function(e){return e.checked},n=function(t){return"date"===t.dataType?e.spreadsheet.dateToNumber(t.value):t.value},s=function(e,t,a){return a.lastIndexOf(e)===t},r=a.data(),o=r.toJSON()[0].items,l=o.filter(function(e){return"blank"===e.dataType});l=!!l.length&&l[0].checked,o=o.filter(i).map(n),this.appendToSearch&&this.valueFilter&&this.valueFilter.values.length&&(o=o.concat(this.valueFilter.values.toJSON()).sort().filter(s)),this.set("valueFilter",{values:o,blanks:l})},valueSelect:function(e){e.preventDefault();var t=e.sender.dataItem(e.node);t.set("checked",!t.checked)},hasActiveSearch:!1,appendToSearch:!1,filterValues:function(t){var n,s="string"==typeof t?t:c(t.target).val().toLocaleLowerCase(e.culture().name),r=this.valuesDataSource;this.set("hasActiveSearch",!!s),n=a.bind(this.valueFilter),i(r),n(r,s)},reset:function(){this.set("customFilter",{logic:"and",criteria:[{operator:null,value:null}]}),this.set("valueFilter",{values:[]})},operatorChange:function(e){var t=e.sender.dataItem();this.set("operatorType",t.type),this.get("customFilter")||this.reset(),this.set("customFilter.criteria[0].operator",t.value)},isNone:function(){return void 0===this.get("operatorType")},isString:function(){return"string"===this.get("operatorType")},isNumber:function(){return"number"===this.get("operatorType")},isDate:function(){return"date"===this.get("operatorType")}}),l=e.spreadsheet.FilterMenuController={valuesTree:function(t,a){return[{text:e.spreadsheet.messages.filterMenu.all,expanded:!0,checked:!1,items:this.values(t.resize({top:1}),a)}]},values:function(a,i){var n=[],s=e.spreadsheet.messages.filterMenu,r=a.column(i),o=a.sheet();return r.forEachCell(function(t,a,i){var r,l,d,c=!0;o.isHiddenRow(t)&&(c=!1),r=i.value,l=i.dataType,d=i.text,l=void 0===r?"blank":i.format?e.spreadsheet.formatting.type(r,i.format):typeof r,d=null!==r&&i.format?e.spreadsheet.formatting.text(r,i.format):"blank"==l?s.blanks:r,"percent"!==l&&"currency"!==l||(l="number"),"date"===l&&(r=e.spreadsheet.numberToDate(r)),n.push({dataType:l,value:r,text:d,checked:c})}),n=t(n),n.sort(function(e,t){return e.dataType===t.dataType?0:"blank"===e.dataType||"blank"===t.dataType?"blank"===e.dataType?-1:1:"number"===e.dataType||"number"===t.dataType?"number"===e.dataType?-1:1:"date"===e.dataType||"date"===t.dataType?"date"===e.dataType?-1:1:0}),n},filterType:function(e,t){var a,i,n,s=e.sheet(),r=this.filterForColumn(t,s);return r=r&&r.filter.toJSON(),r&&"custom"==r.filter&&(i=r.criteria[0].value,i instanceof Date?a="date":"string"==typeof i?a="string":"number"==typeof i&&(a="number")),a||(n=this.values(e.row(1),t)[0],a=n&&n.dataType,"blank"==a&&(a=null)),a},filterForColumn:function(e,t){var a,i=t.filter();return i&&(a=i.columns.filter(function(t){return t.index===e})[0]),a},filter:function(e,t){var a,i,n,s,r=this.filterForColumn(e,t);if(r)return a=r.filter.toJSON(),i=a.filter,delete a.filter,n={type:i,options:a},s=a.criteria,s&&s.length&&(n.operator=s[0].operator),n}},d=u.extend({init:function(e,t){u.call(this,e,t),this.element.addClass(d.classNames.wrapper),this.viewModel=new o({active:"value",operator:null,operators:n(this.options.operators),clear:this.clear.bind(this),apply:this.apply.bind(this)}),this._filterInit(),this._popup(),this._sort(),this._filterByCondition(),this._filterByValue(),this._actionButtons()},options:{name:"FilterMenu",column:0,range:null,operators:{string:{contains:"Text contains",doesnotcontain:"Text does not contain",startswith:"Text starts with",endswith:"Text ends with",matches:"Text matches",doesnotmatch:"Text does not match"},date:{eq:"Date is",neq:"Date is not",lt:"Date is before",gt:"Date is after"},number:{eq:"Is equal to",neq:"Is not equal to",gte:"Is greater than or equal to",gt:"Is greater than",lte:"Is less than or equal to",lt:"Is less than"}}},events:["action"],destroy:function(){u.fn.destroy.call(this),this.menu.destroy(),this.valuesTreeView.destroy(),this.popup.destroy()},openFor:function(e){this.popup.setOptions({anchor:e}),this.popup.open()},close:function(){this.popup.close()},clear:function(){this.action({command:"ClearFilterCommand",options:{column:this.options.column}}),this.viewModel.reset(),this.close()},apply:function(){var e,t,a;this._active(),e={operatingRange:this.options.range,column:this.options.column},"value"===this.viewModel.active?(this.viewModel.valuesChange({sender:this.valuesTreeView}),t=this.viewModel.valueFilter.toJSON(),(t.blanks||t.values&&t.values.length)&&(e.valueFilter=t)):"custom"===this.viewModel.active&&(a=this.viewModel.customFilter.toJSON(),a.criteria.length&&null!==a.criteria[0].value&&(e.customFilter=a)),(e.valueFilter||e.customFilter)&&this.action({command:"ApplyFilterCommand",options:e})},action:function(e){this.trigger("action",c.extend({},e))},_filterInit:function(){var e,t=this.options.column,a=this.options.range,i=a.sheet(),n=l.filter(t,i);n?(e=l.filterType(a,t),this.viewModel.set("active",n.type),this.viewModel.set(n.type+"Filter",n.options),"custom"==n.type&&(this.viewModel.set("operator",e+"_"+n.operator),this.viewModel.set("operatorType",e))):this.viewModel.reset()},_popup:function(){this.popup=this.element.kendoPopup({copyAnchorStyles:!1}).data("kendoPopup")},_sort:function(){var t=e.template(d.templates.menuItem),a=e.spreadsheet.messages.filterMenu,i=[{command:"sort",dir:"asc",text:a.sortAscending,iconClass:"sort-asc"},{command:"sort",dir:"desc",text:a.sortDescending,iconClass:"sort-desc"}],n=c("<ul></ul>",{html:e.render(t,i)}).appendTo(this.element);this.menu=n.kendoMenu({orientation:"vertical",select:function(e){var t=c(e.item).data("dir"),a=this.options.range.resize({top:1}),i={value:t,sheet:!1,operatingRange:a,column:this.options.column};this.action({command:"SortCommand",options:i})}.bind(this)}).data("kendoMenu")},_appendTemplate:function(t,a,i,n){var r=e.template(t),o=c("<div class='"+a+"'/>").html(r({messages:e.spreadsheet.messages.filterMenu,guid:e.guid(),ns:e.ns}));return this.element.append(o),i&&(i=new s(o,{expanded:n,toggle:this._detailToggle.bind(this)})),e.bind(o,this.viewModel),o},_detailToggle:function(e){this.element.find("[data-role=details]").not(e.sender.element).data("kendoDetails").toggle(!e.show)},_filterByCondition:function(){var e="custom"===this.viewModel.active;this._appendTemplate(d.templates.filterByCondition,d.classNames.filterByCondition,!0,e)},_filterByValue:function(){var t,a="value"===this.viewModel.active,i=this._appendTemplate(d.templates.filterByValue,d.classNames.filterByValue,!0,a);this.valuesTreeView=i.find("[data-role=treeview]").data("kendoTreeView"),t=l.valuesTree(this.options.range,this.options.column),this.viewModel.set("valuesDataSource",new e.data.HierarchicalDataSource({data:t,accentFoldingFiltering:e.culture().name}))},_actionButtons:function(){this._appendTemplate(d.templates.actionButtons,d.classNames.actionButtons,!1)},_active:function(){var e=this.element.find("[data-role=details]").filter(function(e,t){return c(t).data("kendoDetails").visible()});e.hasClass(d.classNames.filterByValue)?this.viewModel.set("active","value"):e.hasClass(d.classNames.filterByCondition)&&this.viewModel.set("active","custom")}}),e.spreadsheet.FilterMenu=d,c.extend(!0,d,{classNames:h,templates:r})}(window.kendo)},a(3))},1612:function(e,t){e.exports=require("../kendo.datepicker")},1613:function(e,t){e.exports=require("../kendo.datetimepicker")}});