UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

1 lines 15.3 kB
module.exports=function(a){var i={};function s(e){if(i[e])return i[e].exports;var t=i[e]={exports:{},id:e,loaded:!1};return a[e].call(t.exports,t,t.exports,s),t.loaded=!0,t.exports}return s.m=a,s.c=i,s.p="",s(0)}({0:function(e,t,a){e.exports=a(1705)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},20:function(e,t){e.exports=require("../kendo.core")},962:function(e,t){e.exports=require("../kendo.popup")},965:function(e,t){e.exports=require("../kendo.treeview")},1672:function(e,t){e.exports=require("../kendo.numerictextbox")},1705:function(e,t,a){var i;a(3),a=[a(20),a(962),a(965),a(1672),a(1706),a(1707)],void 0===(t="function"==typeof(i=function(){var h=window.kendo,r=h.jQuery,i=h.ui.Widget,e={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"},o=(h.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"}}},i.extend({init:function(e,t){i.fn.init.call(this,e,t);this.element.addClass(l.classNames.details);this._summary=this.element.find("."+l.classNames.detailsSummary).on("click",this._toggle.bind(this));var a=t.expanded?l.classNames.iconCollapse:l.classNames.iconExpand;this._icon=r("<span />",{class:l.classNames.icon+" "+a}).prependTo(this._summary);this._container=h.wrap(this._summary.next(),true);if(!t.expanded)this._container.hide()},options:{name:"Details"},events:["toggle"],visible:function(){return this.options.expanded},toggle:function(e){var t=h.fx(this._container).expand("vertical");t.stop()[e?"reverse":"play"]();this._icon.toggleClass(l.classNames.iconExpand,e).toggleClass(l.classNames.iconCollapse,!e);this.options.expanded=!e},_toggle:function(){var e=this.visible();this.toggle(e);this.trigger("toggle",{show:e})}})),t=(h.data.binders.spreadsheetFilterValue=h.data.Binder.extend({init:function(e,t,a){h.data.Binder.fn.init.call(this,e,t,a);this._change=this.change.bind(this);r(this.element).on("change",this._change)},refresh:function(){var e=this,t=e.bindings.spreadsheetFilterValue.get();r(e.element).val(t instanceof Date?"":t)},change:function(){var e=this.element.value;this.bindings.spreadsheetFilterValue.set(e)}}),h.data.binders.widget.spreadsheetFilterValue=h.data.Binder.extend({init:function(e,t,a){h.data.Binder.fn.init.call(this,e.element[0],t,a);this.widget=e;this._change=this.change.bind(this);this.widget.first("change",this._change)},refresh:function(){var e=this.bindings.spreadsheetFilterValue,t=e.get(),a=r(this.widget.element).data("filterType");if(a==="date"&&t instanceof Date||a==="number"&&!isNaN(t))this.widget.value(t);else this.widget.value(null)},change:function(){var e=this.widget.value(),t=this.bindings.spreadsheetFilterValue;t.set(e)}}),{filterByValue:"<div class='"+e.detailsSummary+"'>#= messages.filterByValue #</div>"+"<div class='"+e.detailsContent+"'>"+"<div class='k-searchbox k-input k-input-md k-rounded-md k-input-solid'>"+"<span class='k-input-icon k-icon k-i-search'></span>"+"<input class='k-input-inner' autocomplete='off' placeholder='#= messages.search #' data-#=ns#bind='events: { input: filterValues }' />"+"</div>"+"<div data-#=ns#bind='visible: hasActiveSearch'><input class='k-checkbox k-checkbox-md k-rounded-md' type='checkbox' data-#=ns#bind='checked: appendToSearch' id='_#=guid#'/><label class='k-checkbox-label' for='_#=guid#'>#= messages.addToCurrent #</label></div>"+"<div class='"+e.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='"+e.detailsSummary+"'>#= messages.filterByCondition #</div>"+"<div class='"+e.detailsContent+"'>"+"<div>"+"<select "+'aria-label="#= messages.filterByCondition #" '+'data-#=ns#role="dropdownlist"'+'data-#=ns#bind="value: operator, source: operators, events: { change: operatorChange } "'+'data-#=ns#value-primitive="false"'+'data-#=ns#option-label="#=messages.operatorNone#"'+'data-#=ns#height="auto"'+'data-#=ns#text-field="text"'+'data-#=ns#value-field="unique">'+"</select>"+"</div>"+'<div data-#=ns#bind="visible: isString">'+'<input aria-label="string-value" data-filter-type="string" data-#=ns#bind="spreadsheetFilterValue: customFilter.criteria[0].value" class="k-textbox" />'+"</div>"+'<div data-#=ns#bind="visible: isNumber">'+'<input aria-label="number-value" data-filter-type="number" data-#=ns#role="numerictextbox" data-#=ns#bind="spreadsheetFilterValue: customFilter.criteria[0].value" />'+"</div>"+'<div data-#=ns#bind="visible: isDate">'+'<input aria-label="date-value" 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-button-md k-rounded-md k-button-solid k-button-solid-primary'><span class='k-button-text'>#=messages.apply#</span></button>"+"<button data-#=ns#bind='click: clear' class='k-button k-button-md k-rounded-md k-button-solid k-button-solid-base'><span class='k-button-text'>#=messages.clear#</span></button>"});function u(e){var t={};var a=[];for(var i=0;i<e.length;i++)if(!t[e[i].value]){t[e[i].value]=e[i];a.push(e[i])}else if(!t[e[i].value].checked&&e[i].checked)t[e[i].value].checked=true;return a}function p(e,t){var a=false;var i=e instanceof h.data.HierarchicalDataSource&&e.data();var s=this;var n=this.values;for(var r=0;r<i.length;r++){var o=i[r];var u=o.text.toString().toLocaleLowerCase(h.culture().name);var l=t===true||t===""||u.indexOf(t)>=0;var c=p.bind(s);var d=c(o.children,t);a=a||d||l;o.hidden=!l&&!d;if(t.length||n&&!n.length)o.checked=!o.hidden;else if(n&&n.indexOf(o.text)!=-1)o.checked=true}if(i)e.filter({field:"hidden",operator:"neq",value:true});return a}function s(e){var t=e instanceof h.data.HierarchicalDataSource&&e.data();for(var a=0;a<t.length;a++){var i=t[a];i.checked=false;if(i.hasChildren)s(i.children)}}var a=h.spreadsheet.FilterMenuViewModel=h.data.ObservableObject.extend({valuesChange:function(e){var t=e?e.sender.dataSource:this.valuesDataSource;var a=function(e){return e.checked};var i=function(e){return e.dataType==="date"?h.spreadsheet.dateToNumber(e.value):e.value};var s=function(e,t,a){return a.lastIndexOf(e)===t};var n=t.data();var r=n.toJSON()[0].items;var o=r.filter(function(e){return e.dataType==="blank"});o=o.length?o[0].checked:false;r=r.filter(a).map(i);if(this.appendToSearch&&this.valueFilter&&this.valueFilter.values.length)r=r.concat(this.valueFilter.values.toJSON()).sort().filter(s);this.set("valueFilter",{values:r,blanks:o})},valueSelect:function(e){e.preventDefault();var t=e.sender.dataItem(e.node);t.set("checked",!t.checked)},hasActiveSearch:false,appendToSearch:false,filterValues:function(e){var t=typeof e=="string"?e:r(e.target).val().toLocaleLowerCase(h.culture().name);var a=this.valuesDataSource;this.set("hasActiveSearch",!!t);var i=p.bind(this.valueFilter);s(a);i(a,t)},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);if(!this.get("customFilter"))this.reset();this.set("customFilter.criteria[0].operator",t.value)},isNone:function(){return this.get("operatorType")===undefined},isString:function(){return this.get("operatorType")==="string"},isNumber:function(){return this.get("operatorType")==="number"},isDate:function(){return this.get("operatorType")==="date"}});function d(e){var t=h.spreadsheet.messages.filterMenu.operators;var a=[];for(var i in e){if(!e.hasOwnProperty(i))continue;for(var s in e[i]){if(!e[i].hasOwnProperty(s))continue;a.push({text:t[i][s],value:s,unique:i+"_"+s,type:i})}}return a}var n=h.spreadsheet.FilterMenuController={valuesTree:function(e,t){return[{text:h.spreadsheet.messages.filterMenu.all,expanded:true,checked:false,items:this.values(e.resize({top:1}),t)}]},values:function(e,t){var o=[];var l=h.spreadsheet.messages.filterMenu;var a=e.column(t);var d=e.sheet();a.forEachCell(function(e,t,a){var i=true;if(d.isHiddenRow(e))i=false;var s=a.value;var n=a.dataType;var r=a.text;if(s===undefined)n="blank";else if(a.format)n=h.spreadsheet.formatting.type(s,a.format);else n=typeof s;if(s!==null&&a.format)r=h.spreadsheet.formatting.text(s,a.format);else r=n=="blank"?l.blanks:s;if(n==="percent"||n==="currency")n="number";if(n==="date")s=h.spreadsheet.numberToDate(s);o.push({dataType:n,value:s,text:r,checked:i})});o=u(o);o.sort(function(e,t){if(e.dataType===t.dataType)return 0;if(e.dataType==="blank"||t.dataType==="blank")return e.dataType==="blank"?-1:1;if(e.dataType==="number"||t.dataType==="number")return e.dataType==="number"?-1:1;if(e.dataType==="date"||t.dataType==="date")return e.dataType==="date"?-1:1;return 0});return o},filterType:function(e,t){var a=e.sheet();var i=this.filterForColumn(t,a);var s;i=i&&i.filter.toJSON();if(i&&i.filter=="custom"){var n=i.criteria[0].value;if(n instanceof Date)s="date";else if(typeof n=="string")s="string";else if(typeof n=="number")s="number"}if(!s){var r=this.values(e.row(1),t)[0];s=r&&r.dataType;if(s=="blank")s=null}return s},filterForColumn:function(t,e){var a=e.filter();var i;if(a)i=a.columns.filter(function(e){return e.index===t})[0];return i},filter:function(e,t){var a=this.filterForColumn(e,t);if(!a)return;var i=a.filter.toJSON();var s=i.filter;delete i.filter;var n={type:s,options:i};var r=i.criteria;if(r&&r.length)n.operator=r[0].operator;return n}},l=i.extend({init:function(e,t){i.call(this,e,t);this.element.addClass(l.classNames.wrapper);this.viewModel=new a({active:"value",operator:null,operators:d(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(){i.fn.destroy.call(this);this.menu.destroy();this.valuesTreeView.destroy();this.popup.destroy()},openFor:function(e,t){if(r(e).hasClass("k-spreadsheet-view-size"))this.popup.open(t.pageX,t.pageY);else{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(){this._active();var e={operatingRange:this.options.range,column:this.options.column};var t;var a;if(this.viewModel.active==="value"){this.viewModel.valuesChange({sender:this.valuesTreeView});t=this.viewModel.valueFilter.toJSON();if(t.blanks||t.values&&t.values.length)e.valueFilter=t}else if(this.viewModel.active==="custom"){a=this.viewModel.customFilter.toJSON();if(a.criteria.length&&a.criteria[0].value!==null)e.customFilter=a}if(e.valueFilter||e.customFilter)this.action({command:"ApplyFilterCommand",options:e})},action:function(e){this.trigger("action",r.extend({},e))},_filterInit:function(){var e=this.options.column;var t=this.options.range;var a=t.sheet();var i=n.filter(e,a);if(i){var s=n.filterType(t,e);this.viewModel.set("active",i.type);this.viewModel.set(i.type+"Filter",i.options);if(i.type=="custom"){this.viewModel.set("operator",s+"_"+i.operator);this.viewModel.set("operatorType",s)}}else this.viewModel.reset()},_popup:function(){this.popup=this.element.kendoPopup({copyAnchorStyles:false}).data("kendoPopup")},_sort:function(){var e=h.template(l.templates.menuItem);var t=h.spreadsheet.messages.filterMenu;var a=[{command:"sort",dir:"asc",text:t.sortAscending,iconClass:"sort-asc"},{command:"sort",dir:"desc",text:t.sortDescending,iconClass:"sort-desc"}];var i=r("<ul></ul>",{html:h.render(e,a)}).appendTo(this.element);this.menu=i.kendoMenu({orientation:"vertical",select:function(e){var t=r(e.item).data("dir");var a=this.options.range.resize({top:1});var i={value:t,sheet:false,operatingRange:a,column:this.options.column};this.action({command:"SortCommand",options:i})}.bind(this)}).data("kendoMenu")},_appendTemplate:function(e,t,a,i){var s=h.template(e);var n=r("<div class='"+t+"'/>").html(s({messages:h.spreadsheet.messages.filterMenu,guid:h.guid(),ns:h.ns}));this.element.append(n);if(a)a=new o(n,{expanded:i,toggle:this._detailToggle.bind(this)});h.bind(n,this.viewModel);return n},_detailToggle:function(e){this.element.find("["+h.attr("role")+"=details]").not(e.sender.element).data("kendoDetails").toggle(!e.show)},_filterByCondition:function(){var e=this.viewModel.active==="custom";this._appendTemplate(l.templates.filterByCondition,l.classNames.filterByCondition,true,e)},_filterByValue:function(){var e=this.viewModel.active==="value";var t=this._appendTemplate(l.templates.filterByValue,l.classNames.filterByValue,true,e);this.valuesTreeView=t.find("["+h.attr("role")+"=treeview]").data("kendoTreeView");var a=n.valuesTree(this.options.range,this.options.column);this.viewModel.set("valuesDataSource",new h.data.HierarchicalDataSource({data:a,accentFoldingFiltering:h.culture().name}))},_actionButtons:function(){this._appendTemplate(l.templates.actionButtons,l.classNames.actionButtons,false)},_active:function(){var e=this.element.find("["+h.attr("role")+"=details]").filter(function(e,t){return r(t).data("kendoDetails").visible()});if(e.hasClass(l.classNames.filterByValue))this.viewModel.set("active","value");else if(e.hasClass(l.classNames.filterByCondition))this.viewModel.set("active","custom")}});r.extend(true,h.spreadsheet.FilterMenu=l,{classNames:e,templates:t})})?i.apply(t,a):i)||(e.exports=t)},1706:function(e,t){e.exports=require("../kendo.datepicker")},1707:function(e,t){e.exports=require("../kendo.datetimepicker")}});