UNPKG

@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
module.exports=function(e){function t(i){if(a[i])return a[i].exports;var s=a[i]={exports:{},id:i,loaded:!1};return e[i].call(s.exports,s,s.exports,t),s.loaded=!0,s.exports}var a={};return t.m=e,t.c=a,t.p="",t(0)}({0:function(e,t,a){a(1508),e.exports=a(1508)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},19:function(e,t){e.exports=require("../kendo.core")},928:function(e,t){e.exports=require("../kendo.popup")},931:function(e,t){e.exports=require("../kendo.treeview")},1508:function(e,t,a){var i,s,n;!function(r,define){s=[a(19),a(928),a(931),a(1509),a(1510),a(1511)],i=r,n="function"==typeof i?i.apply(t,s):i,!(void 0!==n&&(e.exports=n))}(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 s,n,r,o,l,d,c=!1,u=t instanceof e.data.HierarchicalDataSource&&t.data(),h=this,p=this.values;for(s=0;s<u.length;s++)n=u[s],r=(""+n.text).toLowerCase(),o=i===!0||""===i||r.indexOf(i)>=0,l=a.bind(h),d=l(n.children,i),c=c||d||o,n.hidden=!o&&!d,i.length||p&&!p.length?n.checked=!n.hidden:p&&p.indexOf(n.text)!=-1&&(n.checked=!0);return u&&t.filter({field:"hidden",operator:"neq",value:!0}),c}function i(t){var a,s,n=t instanceof e.data.HierarchicalDataSource&&t.data();for(a=0;a<n.length;a++)s=n[a],s.checked=!1,s.hasChildren&&i(s.children)}function s(t){var a,i,s=e.spreadsheet.messages.filterMenu.operators,n=[];for(a in t)if(t.hasOwnProperty(a))for(i in t[a])t[a].hasOwnProperty(i)&&n.push({text:s[a][i],value:i,unique:a+"_"+i,type:a});return n}var n,r,o,l,d,c,u,h;e.support.browser.msie&&e.support.browser.version<9||(n=e.jQuery,r=e.ui.Widget,o={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"}}},l=r.extend({init:function(t,a){r.fn.init.call(this,t,a),this.element.addClass(h.classNames.details),this._summary=this.element.find("."+h.classNames.detailsSummary).on("click",this._toggle.bind(this));var i=a.expanded?h.classNames.iconCollapse:h.classNames.iconExpand;this._icon=n("<span />",{"class":h.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(h.classNames.iconExpand,t).toggleClass(h.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=n.proxy(this.change,this),n(this.element).on("change",this._change)},refresh:function(){var e=this,t=e.bindings.spreadsheetFilterValue.get();n(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=n.proxy(this.change,this),this.widget.first("change",this._change)},refresh:function(){var e=this.bindings.spreadsheetFilterValue,t=e.get(),a=n(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)}}),d={filterByValue:"<div class='"+o.detailsSummary+"'>#= messages.filterByValue #</div><div class='"+o.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' /></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='"+o.valuesTreeViewWrapper+"'><div data-#=ns#role='treeview' data-#=ns#checkboxes='{ checkChildren: true }' data-#=ns#bind='source: valuesDataSource, events: { check: valuesChange, select: valueSelect }' /></div></div>",filterByCondition:"<div class='"+o.detailsSummary+"'>#= messages.filterByCondition #</div><div class='"+o.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>"},c=e.spreadsheet.FilterMenuViewModel=e.data.ObservableObject.extend({valuesChange:function(t){var a=t?t.sender.dataSource:this.valuesDataSource,i=function(e){return e.checked},s=function(t){return"date"===t.dataType?e.spreadsheet.dateToNumber(t.value):t.value},n=function(e,t,a){return a.lastIndexOf(e)===t},r=a.data(),o=r[0].children.data().toJSON(),l=o.filter(function(e){return"blank"===e.dataType});l=!!l.length&&l[0].checked,o=o.filter(i).map(s),this.appendToSearch&&this.valueFilter&&this.valueFilter.values.length&&(o=o.concat(this.valueFilter.values.toJSON()).sort().filter(n)),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(e){var t,s="string"==typeof e?e:n(e.target).val().toLowerCase(),r=this.valuesDataSource;this.set("hasActiveSearch",!!s),t=a.bind(this.valueFilter),i(r),t(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")}}),u=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 s=[],n=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?n.blanks:r,"percent"!==l&&"currency"!==l||(l="number"),"date"===l&&(r=e.spreadsheet.numberToDate(r)),s.push({dataType:l,value:r,text:d,checked:c})}),s=t(s),s.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}),s},filterType:function(e,t){var a,i,s,n=e.sheet(),r=this.filterForColumn(t,n);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||(s=this.values(e.row(1),t)[0],a=s&&s.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,s,n,r=this.filterForColumn(e,t);if(r)return a=r.filter.toJSON(),i=a.filter,delete a.filter,s={type:i,options:a},n=a.criteria,n&&n.length&&(s.operator=n[0].operator),s}},h=r.extend({init:function(e,t){r.call(this,e,t),this.element.addClass(h.classNames.wrapper),this.viewModel=new c({active:"value",operator:null,operators:s(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(){r.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",n.extend({},e))},_filterInit:function(){var e,t=this.options.column,a=this.options.range,i=a.sheet(),s=u.filter(t,i);s?(e=u.filterType(a,t),this.viewModel.set("active",s.type),this.viewModel.set(s.type+"Filter",s.options),"custom"==s.type&&(this.viewModel.set("operator",e+"_"+s.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(h.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"}],s=n("<ul />",{html:e.render(t,i)}).appendTo(this.element);this.menu=s.kendoMenu({orientation:"vertical",select:function(e){var t=n(e.item).data("dir"),a=this.options.range.resize({top:1}),i={value:t,sheet:!1,operatingRange:a,column:this.options.column};a.isSortable()?this.action({command:"SortCommand",options:i}):this.close()}.bind(this)}).data("kendoMenu")},_appendTemplate:function(t,a,i,s){var r=e.template(t),o=n("<div class='"+a+"'/>").html(r({messages:e.spreadsheet.messages.filterMenu,guid:e.guid(),ns:e.ns}));return this.element.append(o),i&&(i=new l(o,{expanded:s,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(h.templates.filterByCondition,h.classNames.filterByCondition,!0,e)},_filterByValue:function(){var t,a="value"===this.viewModel.active,i=this._appendTemplate(h.templates.filterByValue,h.classNames.filterByValue,!0,a);this.valuesTreeView=i.find("[data-role=treeview]").data("kendoTreeView"),t=u.valuesTree(this.options.range,this.options.column),this.viewModel.set("valuesDataSource",new e.data.HierarchicalDataSource({data:t}))},_actionButtons:function(){this._appendTemplate(h.templates.actionButtons,h.classNames.actionButtons,!1)},_active:function(){var e=this.element.find("[data-role=details]").filter(function(e,t){return n(t).data("kendoDetails").visible()});e.hasClass(h.classNames.filterByValue)?this.viewModel.set("active","value"):e.hasClass(h.classNames.filterByCondition)&&this.viewModel.set("active","custom")}}),e.spreadsheet.FilterMenu=h,n.extend(!0,h,{classNames:o,templates:d}))}(window.kendo)},a(3))},1509:function(e,t){e.exports=require("../kendo.numerictextbox")},1510:function(e,t){e.exports=require("../kendo.datepicker")},1511:function(e,t){e.exports=require("../kendo.datetimepicker")}});