@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(o[i])return o[i].exports;var s=o[i]={exports:{},id:i,loaded:!1};return e[i].call(s.exports,s,s.exports,t),s.loaded=!0,s.exports}var o={};return t.m=e,t.c=o,t.p="",t(0)}({0:function(e,t,o){e.exports=o(1247)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1049:function(e,t){e.exports=require("./kendo.core")},1247:function(e,t,o){var i,s,r;!function(l,define){s=[o(1049),o(1248)],i=l,r="function"==typeof i?i.apply(t,s):i,!(void 0!==r&&(e.exports=r))}(function(){var e={number:"<input type='text' title='#=field#' data-#=ns#role='numerictextbox' data-#=ns#bind='value: value'/>",string:"<input type='text' title='#=field#' class='k-textbox' data-#=ns#bind='value: value'/>","boolean":"<input class='k-checkbox' data-role='checkbox' data-#=ns#bind='checked: value' type='checkbox'>",date:"<input type='text' title='#=field#' data-#=ns#role='datepicker' data-#=ns#bind='value: value'/>"},t="<select data-#=ns#bind='value: operator' title='#=operatorsLabel#' data-#=ns#role='dropdownlist'>#for(var op in operators){#<option value='#=op#'>#=operators[op].text || operators[op]#</option>#}#</select>",o="<div data-#=ns#bind='value: logic' data-#=ns#role='filterbuttongroup'>#for(var op in operators){#<span value='#=op#'>#=operators[op]#</span>#}#</div>",i="<ul class='k-filter-container'><li class='k-filter-group-main'></li></ul>",s="<div class='k-filter-toolbar'><div class='k-toolbar' id='#=uid#'><div class='k-filter-toolbar-item'>"+o+"</div><div class='k-filter-toolbar-item'><button data-role='button' class='k-button k-button-icon' role='button' aria-disabled='false' title='#=addExpression#' aria-label='#=addExpression#' tabindex='0'><span class='k-icon k-i-filter-add-expression'></span></button></div><div class='k-filter-toolbar-item'><button data-role='button' class='k-button k-button-icon' role='button' aria-disabled='false' title='#=addGroup#' aria-label='#=addGroup#' tabindex='0'><span class='k-icon k-i-filter-add-group'></span></button></div><div class='k-filter-toolbar-item'><button data-role='button' class='k-button-flat k-button k-button-icon' role='button' title='#=close#' aria-label='#=close#' aria-disabled='false' tabindex='0'><span class='k-icon k-i-close'></span></button></div></div></div>",r="<li class='k-filter-item'><div class='k-filter-toolbar'><div class='k-toolbar'><div class='k-filter-toolbar-item'>"+o+"</div><div class='k-filter-toolbar-item'><button data-role='button' class='k-button k-button-icon' role='button' title='#=addExpression#' aria-label='#=addExpression#' aria-disabled='false' tabindex='0'><span class='k-icon k-i-filter-add-expression'></span></button></div><div class='k-filter-toolbar-item'><button data-role='button' class='k-button k-button-icon' role='button' title='#=addGroup#' aria-label='#=addGroup#' aria-disabled='false' tabindex='0'><span class='k-icon k-i-filter-add-group'></span></button></div><div class='k-filter-toolbar-item'><button data-role='button' class='k-button-flat k-button k-button-icon' role='button' title='#=close#' aria-label='#=close#' aria-disabled='false' tabindex='0'><span class='k-icon k-i-close'></span></button></div></div></div></li>",l="<li class='k-filter-item'><div class='k-filter-toolbar'><div class='k-toolbar' id='#=uid#'><div class='k-filter-toolbar-item k-filter-field'><select data-#=ns#bind='value: field' title='#=fieldsLabel#' class='k-filter-dropdown' data-auto-width='true' data-#=ns#role='dropdownlist'>#for(var current in fields){#<option value='#=fields[current].name#'>#=fields[current].label#</option>#}#</select></div><div class='k-filter-toolbar-item k-filter-operator'></div><div class='k-filter-toolbar-item k-filter-value'></div><div class='k-filter-toolbar-item'><button data-role='button' class='k-button-flat k-button k-button-icon' role='button' title='#=close#' aria-label='#=close#' aria-disabled='false' tabindex='0'><span class='k-icon k-i-close'></span></button></div></div></div></li>";return function(o){function n(e){var t,o;for(t in e)if(o=e[t],o.handler&&"function"==typeof o.handler||"object"==typeof o&&null!==o&&n(o))return!0;return!1}function a(e,t){var o,i;if(e.uid===t)return e;if(e.filters)for(o=0;o<e.filters.length;o++)if(i=a(e.filters[o],t))return i}var d=window.kendo,p=d.ui,u=p.Widget,f=p.ButtonGroup,c="change",b=".kendoFilter",v="Is equal to",h="Is not equal to",m=o.proxy,k=f.extend({init:function(e,t){var o=this;f.fn.init.call(o,e,t)},options:{name:"FilterButtonGroup"},value:function(e){return void 0===e?this._value:(this._value=e,f.fn.select.call(this,this.wrapper.find("[value='"+e+"']")[0]),void this.trigger(c))},select:function(e){e!==-1&&this.value(o(e).attr("value"))}}),_=u.extend({init:function(e,t){var i,s=this;u.fn.init.call(s,e,t),s.element=o(e).addClass("k-widget k-filter"),s.dataSource=t.dataSource,s.operators=o.extend(s.options.operators,t.operators),s._getFieldsInfo(),s._modelChangeHandler=m(s._modelChange,s),s._renderMain(),t.expression&&s._addExpressionTree(s.filterModel),s._renderApplyButton(),s.options.expressionPreview&&(s._previewContainer||(s._previewContainer=o('<div class="k-filter-preview"></div>').insertAfter(s.element.children().eq(0))),i=s._createPreview(s.filterModel.toJSON()),s._previewContainer.html(i)),s._attachEvents(),s.hasCustomOperators()},events:[c],options:{name:"Filter",dataSource:null,expression:null,applyButton:!1,fields:[],mainLogic:"and",messages:{and:"And",or:"Or",apply:"Apply",close:"Close",addExpression:"Add Expression",fields:"Fields",operators:"Operators",addGroup:"Add Group"},operators:{string:{eq:v,neq:h,startswith:"Starts with",contains:"Contains",doesnotcontain:"Does not contain",endswith:"Ends with",isnull:"Is null",isnotnull:"Is not null",isempty:"Is empty",isnotempty:"Is not empty",isnullorempty:"Has no value",isnotnullorempty:"Has value"},number:{eq:v,neq:h,gte:"Is greater than or equal to",gt:"Is greater than",lte:"Is less than or equal to",lt:"Is less than",isnull:"Is null",isnotnull:"Is not null"},date:{eq:v,neq:h,gte:"Is after or equal to",gt:"Is after",lte:"Is before or equal to",lt:"Is before",isnull:"Is null",isnotnull:"Is not null"},"boolean":{eq:v,neq:h}}},applyFilter:function(){var e=this.filterModel.toJSON();this._hasCustomOperators&&this._mapOperators(e),this._hasFieldsFilter(e.filters||[])?(this._removeEmptyGroups(e.filters),this.dataSource.filter(e)):this.dataSource.filter({})},destroy:function(){this.element.off(b),d.destroy(this.element.find(".k-filter-group-main")),this._previewContainer=null,this._applyButton=null,this._modelChangeHandler=null,u.fn.destroy.call(this)},setOptions:function(e){d.deepExtend(this.options,e),this.destroy(),this.element.empty(),this.init(this.element,this.options)},getOptions:function(){var e=o.extend(!0,{},this.options);return delete e.dataSource,e.expression=this.filterModel.toJSON(),e},_addExpressionTree:function(e){var t,o;if(e.filters)for(t=this.element.find("[id="+e.uid+"]"),o=0;o<e.filters.length;o++)e.filters[o].logic?this._addGroup(t,e.filters[o]):this._addExpression(t,e.filters[o]),e.filters[o].filters&&this._addExpressionTree(e.filters[o])},_attachEvents:function(){var e=this;e.element.on("click"+b,"button.k-button",function(t){var i,s,r;t.preventDefault(),i=o(t.currentTarget),s=i.find("span"),r=(s.length?s:i).attr("class").split("-").pop(),"close"==r?e._removeExpression(i.closest(".k-toolbar")):"expression"==r?e._addExpression(i.closest(".k-toolbar")):"group"==r?e._addGroup(i.closest(".k-toolbar")):"apply"==r&&e.applyFilter()})},_addExpression:function(e,t){var i,s=this,r=e.attr("id"),n=e.closest(".k-filter-toolbar").next("ul.k-filter-lines"),p=t?s._fields[t.field]:s._defaultField,u="";t?i=t:(i=a(s.filterModel,r),i.filters||i.set("filters",[]),i=s._addNewModel(i.filters,p)),n.length||(n=o("<ul class='k-filter-lines'></ul>").appendTo(e.closest("li"))),u=o(d.template(l)({fields:s._fields,operators:s.operators[p.type],close:s.options.messages.close,fieldsLabel:s.options.messages.fields,uid:i.uid,ns:d.ns})).appendTo(n),s._addExpressionControls(u.find(".k-toolbar"),p,i),t||s._expressionChange()},_addExpressionControls:function(e,t,o){var i=e.find(".k-filter-toolbar-item"),s=i.eq(1),r=i.eq(2);d.destroy(s),d.destroy(r),s.empty(),r.empty(),this._appendOperators(s,t),this._appendEditor(r,t),this._bindModel(e,o),this._showHideEditor(e,o)},_appendOperators:function(e,i){o(d.template(t)({operators:i.operators&&i.operators[i.type]?i.operators[i.type]:this.operators[i.type],operatorsLabel:this.options.messages.operators,ns:d.ns})).appendTo(e)},_appendEditor:function(e,t){d.isFunction(t.editor)?t.editor(e,o.extend(!0,{},{field:t.name})):o(d.template(t.editor)({ns:d.ns,field:t.name})).appendTo(e)},_addNewModel:function(e,t){var o,i,s=t.type,r=t.operators;return r||(r=this.options.operators),i=Object.keys(r[s])[0],e.push({field:t.name}),o=e[e.length-1],o.set("value",t.defaultValue),o.set("operator",i),o},_addGroup:function(e,t){var i,s=this,l=s.filterModel,n=e.attr("id"),p=e.closest(".k-filter-toolbar").next("ul.k-filter-lines");t?l=t:(l=a(l,n),l.filters||l.set("filters",[]),l.filters.push({logic:s.options.mainLogic}),l=l.filters[l.filters.length-1]),p.length||(p=o("<ul class='k-filter-lines'></ul>").appendTo(e.closest("li"))),i=o(d.template(r)({operators:{and:s.options.messages.and,or:s.options.messages.or},addExpression:s.options.messages.addExpression,addGroup:s.options.messages.addGroup,close:s.options.messages.close,ns:d.ns})).appendTo(p),s._bindModel(i.find(".k-toolbar"),l),t||s._expressionChange()},_bindModel:function(e,t){e.attr("id",t.uid),t.bind("change",this._modelChangeHandler),d.bind(e,t),e.parent().attr(d.attr("stop"),!0)},_createPreview:function(e){var t,o,i,s="",r=!1,l=this._hasFieldsFilter(e.filters||[]),n="";if(!e.filters||!e.filters.length||!l)return"";for(s+='<span class="k-filter-preview-bracket">(</span>',i=0;i<e.filters.length;i++)t=e.filters[i],t.filters&&(n=this._createPreview(t),n&&(r&&(s+='<span class="k-filter-preview-operator"> '+e.logic.toLocaleUpperCase()+" </span>"),r=!0),s+=n),t.field&&(o=this._fields[t.field],r&&(s+='<span class="k-filter-preview-operator"> '+e.logic.toLocaleUpperCase()+" </span>"),r=!0,s+='<span class="k-filter-preview-field">'+o.label+"</span>",s+='<span class="k-filter-preview-criteria"> '+this._getOperatorText(t.field,t.operator),t.operator.indexOf("is")<0?(s+=" </span>",s+="<span class='k-filter-preview-value'>'"+d.htmlEncode(o.previewFormat?d.toString(t.value,o.previewFormat):t.value)+"'</span>"):s+="</span>");return s+='<span class="k-filter-preview-bracket">)</span>'},_expressionChange:function(){var e=this,t=e.filterModel.toJSON(),o="";e.options.expressionPreview&&(o=e._createPreview(t),e._previewContainer.html(o)),e.trigger(c,{expression:t})},_getOperatorText:function(e,t){var o=this._fields[e].type,i=this._fields[e].operators;return i||(i=this.options.operators),i[o][t].text||i[o][t]},_addField:function(t,i){var s=this;t=o.extend(!0,{},{name:t.name||i,editor:t.editorTemplate||e[t.type||"string"],defaultValue:t.defaultValue||t.defaultValue===!1||0===t.defaultValue?t.defaultValue:"",type:t.type||"string",label:t.label||t.name||i,operators:t.operators,previewFormat:t.previewFormat}),s._fields[t.name]=t,s._defaultField||(s._defaultField=t)},_getFieldsInfo:function(){var e,t,o,i=this,s=i.options.fields.length?i.options.fields:(i.options.dataSource.options.schema.model||{}).fields;if(i._fields={},Array.isArray(s))for(t=0;t<s.length;t++)e=s[t],i._addField(e);else for(o in s)e=s[o],i._addField(e,o)},_hasFieldsFilter:function(e,t){t=!!t;for(var o=0;o<e.length;o++)if(e[o].filters&&(t=this._hasFieldsFilter(e[o].filters,t)),e[o].field)return!0;return t},_removeEmptyGroups:function(e){if(e)for(var t=e.length-1;t>=0;t--)e[t].logic&&!e[t].filters||e[t].filters&&!this._hasFieldsFilter(e[t].filters)?e.splice(t,1):e[t].filters&&this._removeEmptyGroups(e[t].filters)},_modelChange:function(e){var t,o,i,s,r=this,l=r.element.find("[id="+e.sender.uid+"]");return r._showHideEditor(l,e.sender),"field"!==e.field?void("filters"!==e.field&&r._expressionChange()):(t=e.sender.field,o=e.sender.parent(),i=r._fields[t],s=r._addNewModel(o,i),e.sender.unbind("change",r._modelChangeHandler),o.remove(e.sender),r._addExpressionControls(l,i,s),void r._expressionChange())},_renderMain:function(){var e=this;o(i).appendTo(e.element),e.filterModel=d.observable(e.options.expression?e.options.expression:{logic:e.options.mainLogic}),o(d.template(s)({operators:{and:e.options.messages.and,or:e.options.messages.or},addExpression:e.options.messages.addExpression,addGroup:e.options.messages.addGroup,close:e.options.messages.close,uid:e.filterModel.uid,ns:d.ns})).appendTo(e.element.find("li:first")),e._bindModel(e.element.find(".k-toolbar:first"),e.filterModel)},_removeExpression:function(e){var t,o,i=this,s=e.attr("id"),r=e.closest("li"),l=r.hasClass("k-filter-group-main");l?(r=r.find(".k-filter-lines"),i.filterModel.filters&&(i.filterModel.filters.empty(),delete i.filterModel.filters)):(o=a(i.filterModel,s),t=o.parent(),o.unbind("change",i._modelChangeHandler),t.remove(o),t.length||delete t.parent().filters,r.siblings().length||(r=r.parent())),d.destroy(r),r.remove(),i._expressionChange()},_renderApplyButton:function(){var e=this;e.options.applyButton&&(e._applyButton||(e._applyButton=o(d.format('<button type="button" aria-label="{0}" title="{0}" class="k-button k-filter-apply">{0}</button>',e.options.messages.apply)).appendTo(e.element)))},_showHideEditor:function(e,t){var o,i;t.logic||(o=t.operator,i=e.find(".k-filter-toolbar-item:eq(2)"),"isnull"==o||"isnotnull"==o||"isempty"==o||"isnotempty"==o||"isnullorempty"==o||"isnotnullorempty"==o?i.hide():i.show())},_mapOperators:function(e){var t=this;e.filters&&e.filters.forEach(function(e){var o,i,s;e.filters?t._mapOperators(e):(i=t._fields[e.field],s=i.type,o=i.operators&&i.operators[s][e.operator]?i.operators[s][e.operator]:t.operators[s][e.operator],o&&(e.operator=o.handler||e.operator))})},hasCustomOperators:function(){var e,t=o.extend(!0,{},this.operators);for(e in this._fields)t=o.extend(!0,{},t,this._fields[e].operators);this._hasCustomOperators=n(t)}});p.plugin(_),p.plugin(k)}(window.kendo.jQuery),window.kendo},o(3))},1248:function(e,t){e.exports=require("./kendo.buttongroup")}});