UNPKG

@progress/kendo-ui

Version:

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

3 lines (2 loc) 18.6 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("kendo.dom.js"),require("kendo.html.chip.js"),require("kendo.html.chiplist.js"),require("kendo.treeview.js"),require("kendo.treeview.draganddrop.js"),require("kendo.icons.js"),require("kendo.pivotgrid-common.cmn.chunk.js")):"function"==typeof define&&define.amd?define(["exports","kendo.dom","kendo.html.chip","kendo.html.chiplist","kendo.treeview","kendo.treeview.draganddrop","kendo.icons","kendo.pivotgrid-common.cmn.chunk"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.PivotConfigurator={}),e.kendo._globals.Dom,e.kendo._globals.HtmlChip,e.kendo._globals.HtmlChiplist,e.kendo._globals.Treeview,e.kendo._globals.TreeviewDraganddrop,e.kendo._globals.Icons,e.kendo._globals.PivotgridCommonCmnChunk)}(this,(function(e,t,a,i,s,r,o,n){!function(e){var t=window.kendo,a=t.ui,i=t.htmlEncode,s=a.Widget,r=".kendoPivotConfigurator",o="mouseenter"+r+" mouseleave"+r,c=({name:e})=>`<div class="k-pivotgrid-target k-pivotgrid-configurator-section"><strong>${i(e)}</strong><div class="k-pivotgrid-target-wrap"></div>`;function d(e){for(var t,a=0,i=e.length;a<i;a++)if(2==e[a].type){t=!0;break}t&&e.splice(a+1,0,{caption:"KPIs",defaultHierarchy:"[KPIs]",name:"KPIs",uniqueName:"[KPIs]"})}function l(e){return{name:e.uniqueName,type:e.type}}function u(e){for(var t=0,a=e.length;t<a;t++)e[t].uniqueName=e[t].name,e[t].type="kpi";return e}function h(t){var a=e(t).closest(".k-pivot-setting");return a.length?a.data("kendoPivotSettingTarget"):null}var m=s.extend({init:function(e,a){s.fn.init.call(this,e,a),this._ariaId=this.element.attr("id")||t.guid(),this.element.addClass("k-pivotgrid-configurator"),this.element.attr({role:"dialog","aria-hidden":!0,"aria-labelledby":`${this._ariaId}-configurator-header`}),this._dataSource(),this.options.navigatable&&this._initPivotGridConfiguratorNavigation(),this._layout(),this.refresh(),a.height&&this.element.height(a.height),t.notify(this)},events:[],options:{name:"PivotConfiguratorV2",orientation:"vertical",filterable:!1,sortable:!1,messages:{title:"Settings",cancelButtonText:"Cancel",applyButtonText:"Apply",measures:"Select some fields to begin setup",columns:"Select some fields to begin setup",rows:"Select some fields to begin setup"}},setDataSource:function(e){this.options.dataSource=e,this._dataSource(),this.measures&&this.measures.setDataSource(e),this.rows&&this.rows.setDataSource(e),this.columns&&this.columns.setDataSource(e),this.refresh()},_initPivotGridConfiguratorNavigation:function(){var e=this;e.configuratorNavigation=new n.H({tabIndex:0}),e.configuratorNavigation.start(e.element[0]);const t=e.configuratorNavigation.first;t&&t.setAttribute("tabindex","0")},_dataSource:function(){var e=this;e.dataSource&&e._refreshHandler?e.dataSource.unbind("change",e._refreshHandler).unbind("error",e._errorHandler).unbind("progress",e._progressHandler):(e._errorHandler=e._error.bind(e),e._refreshHandler=e.refresh.bind(e),e._progressHandler=e._requestStart.bind(e)),e.dataSource=t.data.PivotDataSourceV2.create(e.options.dataSource),e.dataSource.bind("change",e._refreshHandler).bind("error",e._errorHandler).bind("progress",e._progressHandler)},_layout:function(){var a=this,s=a.options,o=s.messages,n="horizontal"==s.orientation,c=e("<div class='k-pivotgrid-configurator-panel k-pivotgrid-configurator-push'></div>");c.addClass(n?"k-pivotgrid-configurator-horizontal":"k-pivotgrid-configurator-vertical"),a.element.append(c),a.panel=c,e((({title:e,headerTextId:t})=>`<div class="k-pivotgrid-configurator-header"><div class="k-pivotgrid-configurator-header-text" id="${t}">${i(e)}</div></div>`)({title:this.options.messages.title,headerTextId:`${a._ariaId}-configurator-header`})).appendTo(a.panel),e((({formClass:e,horizontal:t,ariaId:a})=>`<div class="k-pivotgrid-configurator-content"><form class="${i(e)}">`+(t?'<div class="k-form-field-wrapper">':"")+'<div class="k-form-field">'+`<label class="k-label" id="${a}-configurator-fields">Fields</label></div><div class="k-form-field"><div class="k-fields-list-wrapper"></div></div>`+(t?'</div><div class="k-form-field-wrapper">':"")+'<div class="k-form-field">'+`<label class="k-label" id="${a}-configurator-columns">Columns</label></div><div class="k-chip-list k-column-fields"></div><div class="k-form-field">`+`<label class="k-label" id="${a}-configurator-rows">Rows</label></div><div class="k-chip-list k-row-fields"></div>`+(t?'</div><div class="k-form-field-wrapper">':"")+'<div class="k-form-field">'+`<label class="k-label" id="${a}-configurator-values">Values</label></div><div class="k-chip-list k-column-fields"></div>`+(t?"</div>":"")+"</form></div>")({formClass:n?"k-form k-form-md k-form-horizontal":"k-form k-form-md",filterable:s.filterable,horizontal:n,ariaId:a._ariaId})).appendTo(a.panel).find(".k-chip-list").each((function(a,i){t.html.renderChipList(i,e.extend({},s)),e(i).attr({role:"listbox","aria-orientation":"horizontal"})})),a._fields(),e((({cancelText:e,applyText:t})=>`<div class="k-pivotgrid-configurator-actions k-actions k-hstack k-justify-content-end"><button class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base" aria-disabled="false"><span class="k-button-text">${i(e)}</span></button><button class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-primary" aria-disabled="false"><span class="k-button-text">${i(t)}</span></button></div>`)({cancelText:o.cancelButtonText,applyText:o.applyButtonText})).appendTo(a.panel),a._targets(),a.element.on("click"+r,".k-pivotgrid-configurator-actions > button",a._actions.bind(a))},_actions:function(t){t.preventDefault(),e(t.currentTarget).closest(":not(path,svg)").index()?(this.columns._applyState(),this.rows._applyState(),this.measures._applyState(),this.dataSource.read()):(this.columns._cancelChanges(),this.rows._cancelChanges(),this.measures._cancelChanges(),this.treeView.dataSource.read())},_targets:function(){var a=this,s=a.panel.find(".k-column-fields").first(),r=a.panel.find(".k-row-fields"),o=a.panel.find(".k-chip-list").last(),n=this.options,c=({name:a,menuenabled:s})=>{var r=t.html.renderChip((({name:e})=>`<span><span class="k-chip-label">${i(e)}</span></span>`)({name:a,menuenabled:s}),e.extend({},n,{fillMode:"solid",themeColor:"base",rounded:"md",removable:!0,removeIcon:"x-circle",actions:s?[{icon:"more-vertical"}]:null}));return r};this.columns=this._createTarget(s,{navigatable:n.navigatable,filterable:n.filterable,sortable:n.sortable,template:c,connectWith:r,messages:{empty:n.messages.columns,fieldMenu:this.options.messages.fieldMenu},configuratorNavigation:a.configuratorNavigation}),this.columns.element.attr("aria-labelledby",`${this._ariaId}-configurator-header ${this._ariaId}-configurator-columns`),this.rows=this._createTarget(r,{navigatable:n.navigatable,filterable:n.filterable,sortable:n.sortable,template:c,setting:"rows",connectWith:s,messages:{empty:this.options.messages.rows,fieldMenu:this.options.messages.fieldMenu},configuratorNavigation:a.configuratorNavigation}),this.rows.element.attr("aria-labelledby",`${this._ariaId}-configurator-header ${this._ariaId}-configurator-rows`),this.measures=this._createTarget(o,{navigatable:n.navigatable,filterable:!1,sortable:!1,setting:"measures",template:c,messages:{empty:n.messages.measures,fieldMenu:this.options.messages.fieldMenu},configuratorNavigation:a.configuratorNavigation}),this.measures.element.attr("aria-labelledby",`${this._ariaId}-configurator-header ${this._ariaId}-configurator-values`),[this.columns,this.rows,this.measures].forEach((e=>e.element.find(".k-chip").attr("role","option")))},_createTarget:function(a,i){var s=this;return new t.ui.PivotSettingTargetV2(a,e.extend({dataSource:this.dataSource,hint:function(e){return e.clone()},remove:function(e){var a=s.treeView.wrapper.find("[data-name='"+e.name+"']").closest("li"),i=a.attr(t.attr("uid")),r=s.treeView.dataSource.getByUid(i);r&&(r.checked=!1,a.find("input").attr("checked",!1))},template:i.template},i))},_fields:function(){var t=this,a=t.element.find(".k-fields-list-wrapper");this.treeView=e(`<div aria-labelledby="${this._ariaId}-configurator-header ${this._ariaId}-configurator-fields" />`).appendTo(a).kendoTreeView({checkboxes:{checkChildren:!0,template:({item:e})=>{var t="";return(e.hasChildren||e.aggregator||e.local)&&"[KPIs]"!==e.uniqueName&&"[Measures]"!==e.uniqueName&&"Measures"!==e.uniqueName&&(t+=`<input type="checkbox" data-name="${i(e.uniqueName)}" ${e.checked?"checked":""} class="k-checkbox k-checkbox-md k-rounded-md" id="${i(e.uid)}" tabindex="-1">`),t}},dataTextField:"caption",autoBind:!1,check:function(e){var a=e.sender.dataItem(e.node),i={type:n.I.toggleSelection,payload:a},s={columnAxes:t.columns._state(),rowAxes:t.rows._state(),measureAxes:t.measures._state()},r=n.u(s,i);t.dataSource.cubeSchema&&r.measureAxes&&r.measureAxes.length&&r.measureAxes.length>s.measureAxes.length&&t.dataSource.cubeSchema.restoreMeasure(r.measureAxes,a),a.defaultHierarchy&&a.items&&a.items.length&&(t._checkMembers([{name:a.defaultHierarchy}],a.items),a.items.trigger("change")),r.columnAxes&&(t.columns._state(r.columnAxes),t.columns._redraw()),r.rowAxes&&(t.rows._state(r.rowAxes),t.rows._redraw()),r.measureAxes&&(t.measures._state(r.measureAxes),t.measures._redraw())},dataSource:this._treeViewDataSource()}).data("kendoTreeView"),this.treeView.wrapper.off("click",this.treeView._clickHandler)},_treeViewDataSource:function(){var a=this;return t.data.HierarchicalDataSource.create({schema:{model:{id:"uniqueName",hasChildren:function(e){return a.dataSource.cubeSchema&&"Measures"!==e.uniqueName?(e.local=!0,!1):!("hierarchyUniqueName"in e)&&!("aggregator"in e)}}},transport:{read:function(t){var i,s,r,o,c=a.dataSource.transport,l=c.catalog(),h=c.cube(),m={url:c.options.read},p=a.columns._state(),g=a.rows._state(),v=a.measures._state(),k=p.concat(g).concat(v);e.isEmptyObject(t.data)?a.dataSource.cubeSchema?(s=a.dataSource.cubeSchema.dimensions(),a._checkMembers(k,s),t.success(s)):(o={connection:{catalog:l,cube:h},restrictions:{catalogName:l,cubeName:h},command:"schemaDimensions"},n.h(m,o).then((function(e){a._checkMembers(k,e),d(e),t.success(e)}))):(i=a.treeView.dataSource.get(t.data.uniqueName),a.dataSource.cubeSchema?(r=a.dataSource.measures(),a._checkMembers(k,r),t.success(r)):"[KPIs]"===i.uniqueName?n.h(m,a._getKPIOptions(l,h)).then((function(e){t.success(u(e))})):"kpi"==i.type?t.success(f(i)):n.h(m,a._loadFieldsCommand(i,l,h)).then((function(e){a._checkMembers(k,e),t.success(e)})))}}})},_checkMembers:function(e,t){var a={},i=0;for(i=0;i<e.length;i++)a[e[i].name]=!0;for(i=0;i<t.length;i++)a[t[i].uniqueName]&&(t[i].checked=!0)},_getKPIOptions:function(e,t){return{connection:{catalog:e,cube:t},restrictions:{catalogName:e,cubeName:t},command:"schemaKPIs"}},_loadFieldsCommand:function(e,t,a){var i,s,r;return 2===e.type?i="schemaMeasures":e.dimensionUniqueName?(i="schemaLevels",r=e.uniqueName):(i="schemaHierarchies",s=e.uniqueName),{connection:{catalog:t,cube:a},restrictions:{catalogName:t,cubeName:a,hierarchyUniqueName:r,dimensionUniqueName:s},command:i}},_progress:function(e){t.ui.progress(this.element,e)},_error:function(){this._progress(!1)},_requestStart:function(){this._progress(!0)},destroy:function(){s.fn.destroy.call(this),this.dataSource.unbind("change",this._refreshHandler),this.element.off(r),this.rows.destroy(),this.columns.destroy(),this.measures.destroy(),this.treeView.destroy(),this.element=null,this._refreshHandler=null},refresh:function(){this.treeView&&this.treeView.dataSource.fetch(),this._progress(!1)}});a.plugin(m);var p=s.extend({init:function(e,a){s.fn.init.call(this,e,a),this.element.addClass("k-pivotgrid-configurator-panel kendo-jquery"),this.options.height&&this.element.outerHeight(this.options.height),this._dataSource(),this._layout(),this.refresh(),t.notify(this)},events:[],options:{name:"PivotConfigurator",filterable:!1,sortable:!1,messages:{measures:"Drop Data Fields Here",columns:"Drop Column Fields Here",rows:"Drop Rows Fields Here",measuresLabel:"Measures",columnsLabel:"Columns",rowsLabel:"Rows",fieldsLabel:"Fields"}},_dataSource:function(){var e=this;e.dataSource&&e._refreshHandler?e.dataSource.unbind("change",e._refreshHandler).unbind("error",e._errorHandler).unbind("progress",e._progressHandler):(e._errorHandler=e._error.bind(e),e._refreshHandler=e.refresh.bind(e),e._progressHandler=e._requestStart.bind(e)),e.dataSource=t.data.PivotDataSource.create(e.options.dataSource),e.dataSource.bind("change",e._refreshHandler).bind("error",e._errorHandler).bind("progress",e._progressHandler)},setDataSource:function(e){this.options.dataSource=e,this._dataSource(),this.measures&&this.measures.setDataSource(e),this.rows&&this.rows.setDataSource(e),this.columns&&this.columns.setDataSource(e),this.refresh()},_treeViewDataSource:function(){var a=this;return t.data.HierarchicalDataSource.create({schema:{model:{id:"uniqueName",hasChildren:function(e){return!("hierarchyUniqueName"in e)&&!("aggregator"in e)}}},transport:{read:function(t){var i,s;e.isEmptyObject(t.data)?a.dataSource.schemaDimensions().done((function(e){a.dataSource.cubeBuilder||d(e),t.success(e)})).fail(t.error):("[KPIs]"===(i=a.treeView.dataSource.get(t.data.uniqueName)).uniqueName?(s=!0,a.dataSource.schemaKPIs().done((function(e){t.success(u(e))})).fail(t.error)):"kpi"==i.type&&(s=!0,t.success(f(i))),s||(2==i.type?a.dataSource.schemaMeasures():i.dimensionUniqueName?a.dataSource.schemaLevels(t.data.uniqueName):a.dataSource.schemaHierarchies(t.data.uniqueName)).done(t.success).fail(t.error))}}})},_progress:function(e){t.ui.progress(this.element,e)},_error:function(){this._progress(!1)},_requestStart:function(){this._progress(!0)},_layout:function(){e('<div class="k-pivotgrid-configurator"><div class="k-pivotgrid-configurator-content"></div></div>').appendTo(this.element),this.form=this.element.find(".k-pivotgrid-configurator-content"),this._fields(),this._targets()},_fields:function(){var a=e('<div class="k-pivotgrid-fields k-pivotgrid-configurator-section"><strong>'+i(this.options.messages.fieldsLabel)+'</strong><div class="k-fields-list-wrapper"></div></div>').appendTo(this.form);this.treeView=e("<div/>").appendTo(a.find(".k-fields-list-wrapper")).kendoTreeView({template:({item:e})=>{var a="";return 2==e.type||"[KPIs]"==e.uniqueName?a+=t.ui.icon(2==e.type?"sum":"caret-alt-expand"):e.type&&"kpi"!==e.type&&(a+=t.ui.icon("arrows-axes")),a+=`${i(e.caption||e.name)}`},dataTextField:"caption",dragAndDrop:!0,autoBind:!1,dataSource:this._treeViewDataSource(),dragstart:function(e){var t=this.dataItem(e.sourceNode);(t.hasChildren||t.aggregator||t.measure)&&2!=t.type&&"[KPIs]"!==t.uniqueName||e.preventDefault()},drag:function(e){var t="cancel",a=h(e.dropTarget);a&&a.validate(this.dataItem(e.sourceNode))&&(t="plus"),e.setStatusClass(t)},drop:function(e){e.preventDefault();var t,a,i,s,r=h(e.dropTarget),o=this.dataItem(e.sourceNode);if(r&&r.validate(o)){if(s=o.defaultHierarchy||o.uniqueName,"kpi"===o.type)for(a=(i=f(o)).length,s=[],t=0;t<a;t++)s.push(l(i[t]));else o.kpi&&(s=[l(o)]);r.add(s)}}}).data("kendoTreeView")},_createTarget:function(a,i){var s;return s=({name:e,sortIcon:a})=>`<div class="k-chip k-chip-md k-rounded-md k-chip-solid k-chip-solid-base" data-${t.ns}name="${e}"><span class="k-chip-content"><span class="k-chip-label">${e}</span></span><span class="k-chip-actions k-field-actions">`+function(e,a){var i=a.sortable,s="";return i&&(s+=e?`<span class="k-chip-action k-chip-more-action">${t.ui.icon(e+"-sm")}</span>`:""),(a.filterable||i)&&(s+=`<span class="k-setting-fieldmenu k-chip-action">${t.ui.icon("more-vertical")}</span>`),s+`<span class="k-setting-delete k-chip-action">${t.ui.icon("x")}</span>`}(a,i)+"</span></div>",new t.ui.PivotSettingTarget(a,e.extend({dataSource:this.dataSource,template:s,emptyTemplate:e=>`<span class="k-empty">${e}</span>`},i))},_targets:function(){var t=e('<div class="k-pivotgrid-targets"/>').appendTo(this.form),a=e(c({name:this.options.messages.columnsLabel,icon:"columns"})).appendTo(t),i=e('<div class="k-column-fields k-chip-list" />').appendTo(a.find(".k-pivotgrid-target-wrap")),s=e(c({name:this.options.messages.rowsLabel,icon:"rows"})).appendTo(t),r=e('<div class="k-column-fields k-chip-list" />').appendTo(s.find(".k-pivotgrid-target-wrap")),n=e(c({name:this.options.messages.measuresLabel,icon:"sum"})).appendTo(t),d=e('<div class="k-column-fields k-chip-list" />').appendTo(n.find(".k-pivotgrid-target-wrap")),l=this.options;this.columns=this._createTarget(i,{filterable:l.filterable,sortable:l.sortable,connectWith:r,messages:{empty:l.messages.columns,fieldMenu:l.messages.fieldMenu}}),this.rows=this._createTarget(r,{filterable:l.filterable,sortable:l.sortable,setting:"rows",connectWith:i,messages:{empty:this.options.messages.rows,fieldMenu:this.options.messages.fieldMenu}}),this.measures=this._createTarget(d,{setting:"measures",messages:{empty:l.messages.measures}}),i.add(r).add(d).on(o,".k-item:not(.k-empty)",this._toggleHover)},_toggleHover:function(t){e(t.currentTarget).closest(":not(path,svg)").toggleClass("k-hover","mouseenter"===t.type)},_resize:function(){var e=this.element,t=this.options.height;t&&e.outerHeight(t)},refresh:function(){var e=this.dataSource;(e.cubeBuilder||this._cube!==e.cube()||this._catalog!==e.catalog())&&this.treeView.dataSource.fetch(),this._catalog=this.dataSource.catalog(),this._cube=this.dataSource.cube(),this._resize(),this._progress(!1)},destroy:function(){s.fn.destroy.call(this),this.dataSource.unbind("change",this._refreshHandler),this.form.find(".k-pivot-setting").off(r),this.rows.destroy(),this.columns.destroy(),this.measures.destroy(),this.treeView.destroy(),this.element=null,this._refreshHandler=null}});function g(e,t,a){return{hierarchyUniqueName:e,uniqueName:t,caption:t,measure:t,name:t,type:a,kpi:!0}}function f(e){var t=e.name;return[g(t,e.value,"value"),g(t,e.goal,"goal"),g(t,e.status,"status"),g(t,e.trend,"trend")]}t.cssProperties.registerPrefix("HTMLChip","k-chip-"),t.cssProperties.registerValues("HTMLChip",[{prop:"rounded",values:t.cssProperties.roundedValues.concat([["md","md"]])}]),a.plugin(p)}(window.kendo.jQuery);var c=kendo;e.__meta__={id:"pivot.configurator",name:"PivotConfigurator",category:"web",depends:["dropdownlist","treeview","treeview.draganddrop","pivot.fieldmenu","html.chip","html.chiplist","icons","pivotgrid-common.cmn.chunk"],hidden:!0},e.default=c,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=kendo.pivot.configurator.min.js.map