/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/@grapecity/wijmo.grid.detail@5.20261.48/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
﻿/*!
    *
    * Wijmo Library 5.20261.48
    * https://developer.mescius.com/wijmo
    *
    * Copyright(c) MESCIUS inc. All rights reserved.
    *
    * Licensed under the End-User License Agreement For MESCIUS Wijmo Software.
    * us.sales@mescius.com
    * https://developer.mescius.com/wijmo/licensing
    *
    */

"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(e,t){return(extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)};return function(e,t){extendStatics(e,t);function __(){this.constructor=e}e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)}}(),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.hasOwnProperty.call(e,i)&&(t[i]=e[i]);t.default=e;return t};Object.defineProperty(exports,"__esModule",{value:!0});var wijmo_grid_1=require("@grapecity/wijmo.grid"),wijmo_1=require("@grapecity/wijmo"),selfModule=__importStar(require("@grapecity/wijmo.grid.detail")),DetailRow=function(e){__extends(DetailRow,e);function DetailRow(t){var i=e.call(this)||this;i.isReadOnly=!0;return i}Object.defineProperty(DetailRow.prototype,"detail",{get:function(){return this._detail},set:function(e){this._detail=e},enumerable:!0,configurable:!0});return DetailRow}(wijmo_grid_1.Row);exports.DetailRow=DetailRow;var KeyAction,DetailVisibilityMode,DetailMergeManager=function(e){__extends(DetailMergeManager,e);function DetailMergeManager(t){var i=e.call(this)||this;i._originalMergeManager=t.mergeManager;return i}DetailMergeManager.prototype.getMergedRange=function(e,t,i,r){void 0===r&&(r=!0);switch(e.cellType){case wijmo_grid_1.CellType.Cell:if(e.rows[t]instanceof DetailRow){e.columns._frozenInternal>0&&e.grid&&(e.grid.cloneFrozenCells=!1);return new wijmo_grid_1.CellRange(t,0,t,e.columns.length-1)}break;case wijmo_grid_1.CellType.RowHeader:var o=_isFrozen(e,t),l=_isNew(e,t),n=e.rows[t].dataItem;!n&&t>0&&e.rows[t]instanceof DetailRow&&(n=e.rows[t-1].dataItem);for(var a=t;a>0&&e.rows[a-1].dataItem==n&&_isFrozen(e,a-1)==o&&_isNew(e,a-1)==l;)a--;for(var s=t;s<e.rows.length-1&&e.rows[s+1].dataItem==n&&_isFrozen(e,s+1)==o&&_isNew(e,s+1)==l;)s++;s<e.rows.length-1&&e.rows[s+1]instanceof DetailRow&&_isFrozen(e,s+1)==o&&_isNew(e,s+1)==l&&s++;return a!=s?new wijmo_grid_1.CellRange(a,i,s,i):null}return this._originalMergeManager.getMergedRange(e,t,i,r)};return DetailMergeManager}(wijmo_grid_1.MergeManager);exports.DetailMergeManager=DetailMergeManager;function _isFrozen(e,t){return t<e.rows._frozenInternal}function _isNew(e,t){return e.rows[t]instanceof wijmo_grid_1._NewRowTemplate}exports.FlexGridDetailProviderClsNames={detail:"wj-detail",detailRow:"wj-detail-row",elemDetail:"wj-elem-detail"};wijmo_1._addCultureInfo("FlexGridDetailProvider",{ariaLabels:{toggleDetail:"Toggle Row Detail"},accessibilityHelperMessage:{showDetail:"Show detail row: {rowIndex}",hideDetail:"Hide detail row: {rowIndex}"}});!function(e){e[e.None=0]="None";e[e.ToggleDetail=1]="ToggleDetail"}(KeyAction=exports.KeyAction||(exports.KeyAction={}));!function(e){e[e.Code=0]="Code";e[e.Selection=1]="Selection";e[e.ExpandSingle=2]="ExpandSingle";e[e.ExpandMulti=3]="ExpandMulti"}(DetailVisibilityMode=exports.DetailVisibilityMode||(exports.DetailVisibilityMode={}));var FlexGridDetailProvider=function(){function FlexGridDetailProvider(e,t){var i=this;this._maxHeight=null;this._mode=DetailVisibilityMode.ExpandSingle;this._animated=!1;this._keyActionEnter=KeyAction.None;this._g=e;e.mergeManager=new DetailMergeManager(e);e.addEventListener(e.rowHeaders.hostElement,"click",this._hdrClick.bind(this));e.addEventListener(e.rowHeaders.hostElement,"mousedown",(function(t){var r=e.editableCollectionView;if(e.activeEditor||r&&r.currentEditItem){i._hdrClick(t);t.preventDefault()}}));setTimeout((function(){e.formatItem.addHandler(i._formatItem,i)}),100);e.selectionChanged.addHandler(this._selectionChanged,this);e.resizedRow.addHandler(this._resizedRow,this);e.loadingRows.addHandler((function(){return i.hideDetail()}));e.deletingRow.addHandler((function(e,t){i.hideDetail(t.row)}));e.updatedView.addHandler(this._handleFrozenCells,this);e.cloneFrozenCells=!1;e.draggingRow.addHandler((function(e,t){if(t.row<e.rows.length-1&&e.rows[t.row+1]instanceof DetailRow){t.cancel=!0;i.hideDetail(t.row)}}));e.addEventListener(e.hostElement,"keydown",(function(e){if(e.keyCode==wijmo_1.Key.Enter&&i._keyActionEnter==KeyAction.ToggleDetail){var t=i._g.selection.row,r=i._g.activePanel.cellType;i._toggleRowDetail(t)&&r===wijmo_grid_1.CellType.Cell&&e.preventDefault()}}),!0);e._root.addEventListener("scroll",(function(){wijmo_1.hasClass(e.activeCell,exports.FlexGridDetailProviderClsNames.detail)&&wijmo_1.Control.sharedState.InvalidScroll||wijmo_1.Control.refreshAll(e._root)}));wijmo_1.copy(this,t)}FlexGridDetailProvider.prototype.dispose=function(){if(this._toSel){clearTimeout(this._toSel);this._toSel=null}};Object.defineProperty(FlexGridDetailProvider.prototype,"grid",{get:function(){return this._g},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridDetailProvider.prototype,"detailVisibilityMode",{get:function(){return this._mode},set:function(e){if((e=wijmo_1.asEnum(e,DetailVisibilityMode))!=this._mode){this._mode=e;this.hideDetail();this._g.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridDetailProvider.prototype,"maxHeight",{get:function(){return this._maxHeight},set:function(e){if((e=wijmo_1.asNumber(e,!0))!=this._maxHeight){this._maxHeight=e;this.hideDetail()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridDetailProvider.prototype,"isAnimated",{get:function(){return this._animated},set:function(e){e!=this._animated&&(this._animated=wijmo_1.asBoolean(e))},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridDetailProvider.prototype,"keyActionEnter",{get:function(){return this._keyActionEnter},set:function(e){this._keyActionEnter=wijmo_1.asEnum(e,KeyAction)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridDetailProvider.prototype,"createDetailCell",{get:function(){return this._createDetailCellFn},set:function(e){this._createDetailCellFn=wijmo_1.asFunction(e,!0)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridDetailProvider.prototype,"disposeDetailCell",{get:function(){return this._disposeDetailCellFn},set:function(e){this._disposeDetailCellFn=wijmo_1.asFunction(e,!0)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridDetailProvider.prototype,"rowHasDetail",{get:function(){return this._rowHasDetailFn},set:function(e){if((e=wijmo_1.asFunction(e,!0))!=this._rowHasDetailFn){this._rowHasDetailFn=e;this.hideDetail();this._g.invalidate()}},enumerable:!0,configurable:!0});FlexGridDetailProvider.prototype.getDetailRow=function(e){for(var t=this._g.rows,i=this._toIndex(e),r=t[i]?t[i].dataItem:void 0;i<t.length;i++){var o=t[i];if(o instanceof DetailRow)return o;if(o.dataItem!=r)return null}return null};FlexGridDetailProvider.prototype.isDetailVisible=function(e){return null!=this.getDetailRow(e)};FlexGridDetailProvider.prototype.isDetailAvailable=function(e){e=this._toIndex(e);return this._hasDetail(e)};FlexGridDetailProvider.prototype.hideDetail=function(e){var t=this._g,i=t.rows,r=wijmo_1.culture.FlexGridDetailProvider.accessibilityHelperMessage.hideDetail;if(null!=e){var o=this._toIndex(e);if(t.rows._frozenInternal>0&&o<=t.rows._frozenInternal-1){t.rows.frozenDetailChildren-=1;t.rows._frozenInternal-=1}else if(t.rows._frozenInternal<0&&t.rows.isFrozen(o)){t.rows.frozenDetailChildren-=1;t.rows._frozenInternal+=1}for(;!(i[o]instanceof DetailRow)&&o<i.length-1;)o++;var l=i[o];if(l instanceof DetailRow){var n=l.detail.parentElement;if(n)for(var a=n.querySelectorAll("."+wijmo_1.ControlClsNames.hostElement),s=0;s<a.length;s++){var d=wijmo_1.Control.getControl(a[s]);d&&d.containsFocus()&&t.focus(!0)}var _=this.disposeDetailCell;!!_&&_(l)||wijmo_1.Control.disposeAll(l.detail);i.removeAt(o);r=wijmo_1.format(r,{rowIndex:o});t.announceShortcut(r)}}else for(var c=0;c<i.length;c++)i[c]instanceof DetailRow&&this.hideDetail(c)};FlexGridDetailProvider.prototype.showDetail=function(e,t){void 0===t&&(t=!1);var i=this._g,r=i.rows,o=wijmo_1.culture.FlexGridDetailProvider.accessibilityHelperMessage.showDetail,l=this._toIndex(e);if(i.rows._frozenInternal>0&&l<=i.rows._frozenInternal-1){i.rows.frozenDetailChildren+=1;i.rows._frozenInternal+=1}else if(i.rows._frozenInternal<0&&i.rows.isFrozen(l)){i.rows.frozenDetailChildren+=1;i.rows._frozenInternal-=1}l>0&&r[l]instanceof DetailRow&&l--;for(var n=r[l].dataItem;l<r.length-1&&r[l+1].dataItem==n;)l++;if(t){for(var a=i.selection,s=!1,d=0;d<r.length-1;d++)if(d!=l&&r[d+1]instanceof DetailRow){this.hideDetail(d);d<l&&l--;if(d<a.row){a.row--;a.row2--;s=!0}}s&&i.select(a,!1)}if(!this.isDetailVisible(l)&&this._hasDetail(l)){var _=new DetailRow(r[l]),c=this._createDetailCell(r[l]);_.detail=c;if(c){r.insert(l+1,_);o=wijmo_1.format(o,{rowIndex:l+1});i.announceShortcut(o);var w=i.containsFocus();if(this._animated){var u=c.style;u.transform="translateY(-100%)";u.opacity="0";wijmo_1.animate((function(e){if(e<1){u.transform="translateY("+(100*-(1-e)).toFixed(0)+"%)";u.opacity=(e*e).toString()}else{u.transform=u.opacity="";wijmo_1.Control.invalidateAll(c);w&&i.hostElement&&i.scrollIntoView(l,-1)}}))}else w&&i.scrollIntoView(l,-1,!0)}}};FlexGridDetailProvider.prototype._sizeDetailRow=function(e,t){void 0===t&&(t=!1);var i=this._g,r=e.detail;wijmo_1.Control.refreshAll(r);var o=t?r.scrollHeight:r.offsetHeight,l=o+i._cellPadVert+1,n=this._maxHeight;wijmo_1.isNumber(n)&&n>0&&l>n&&(l=n);e.height=l;r.style.height||(r.style.height="100%");var a=r.querySelector("."+wijmo_grid_1.FlexGridClsNames.hostElement);a&&!a.style.height&&(a.style.height="100%");return o};FlexGridDetailProvider.prototype._handleFrozenCells=function(){var e=this._g,t=e.hostElement,i="."+wijmo_grid_1.FlexGridClsNames.hostElement,r=wijmo_1.Control.getControl(t.querySelector(i));if(r instanceof wijmo_grid_1.FlexGrid&&(r.rows._frozenInternal||r.columns._frozenInternal)){wijmo_1.setCss([e._eTL,e._eBL,e._eCFtr,e._eRHdr,e._eMarquee],{zIndex:"13"});wijmo_1.setCss(e._eCHdr,{zIndex:"14"});for(var o=t.querySelectorAll("."+wijmo_grid_1.FlexGridClsNames.frozen),l=0;l<o.length;l++){var n=o[l];if(wijmo_1.closest(n,i)==t){var a=parseInt(n.style.zIndex);n.style.zIndex=(a%10+10).toString()}}}};FlexGridDetailProvider.prototype._toIndex=function(e){return e instanceof wijmo_grid_1.Row?e.index:wijmo_1.asNumber(e)};FlexGridDetailProvider.prototype._hdrClick=function(e){if(!e.defaultPrevented&&0==e.button&&wijmo_1.closestClass(e.target,FlexGridDetailProvider._WJC_DETAIL)){var t=DetailVisibilityMode;switch(this._mode){case t.ExpandMulti:case t.ExpandSingle:var i=this._g,r=i.hostElement,o=r&&r.offsetHeight&&r.offsetWidth,l=i.hitTest(e.target);l.panel||(l=i.hitTest(e));l.panel&&o&&this._toggleRowDetail(l.row)&&e.preventDefault()}}};FlexGridDetailProvider.prototype._toggleRowDetail=function(e){if(e>-1){if(this.isDetailVisible(e)){this.hideDetail(e);return!0}if(this._hasDetail(e)){this.showDetail(e,this._mode==DetailVisibilityMode.ExpandSingle);return!0}}return!1};FlexGridDetailProvider.prototype._selectionChanged=function(e,t){var i=this;if(this._mode==DetailVisibilityMode.Selection){this._toSel&&clearTimeout(this._toSel);this._toSel=setTimeout((function(){if(e._selHdl&&e._selHdl.selection){var t=e._selHdl.selection.row;t>-1?i.showDetail(t,!0):i.hideDetail()}}),300)}};FlexGridDetailProvider.prototype._formatItem=function(e,t){var i=this,r=this._g,o=t.cell,l=t.getRow(),n=DetailVisibilityMode;if(t.panel==r.cells&&l instanceof DetailRow&&null!=l.detail&&!wijmo_1.hasClass(o,exports.FlexGridDetailProviderClsNames.detail)){wijmo_1.addClass(o,exports.FlexGridDetailProviderClsNames.detail);wijmo_1.addClass(o.parentElement,exports.FlexGridDetailProviderClsNames.detailRow);o.textContent="";o.style.textAlign="";o.className=o.className.replace(/wj-align-[\S]+/g,"");o.appendChild(l.detail);null==l.height?0===this._sizeDetailRow(l)&&setTimeout((function(){i._sizeDetailRow(l,!0)}),1):wijmo_1.Control.refreshAll(l.detail)}if(t.panel==r.rowHeaders&&0==t.col&&this._hasDetail(t.row)){o.style.cursor="";switch(this._mode){case n.ExpandMulti:case n.ExpandSingle:var a=this.isDetailVisible(t.row),s=a?"minus":"plus",d=FlexGridDetailProvider._WJC_DETAIL;o.innerHTML='<div class="'+wijmo_1.InputFormElementsClsNames.btn+" "+wijmo_1.GlyphClsNames.btnGlyph+" "+d+'" role="button" tabindex="-1"><span class="'+wijmo_1.GlyphClsNames.glyph+"-"+s+'"></span></div>';var _=o.children[0],c=wijmo_1.culture.FlexGridDetailProvider.ariaLabels.toggleDetail;wijmo_1.setAriaLabel(_,c);wijmo_1.setAttribute(_,"aria-expanded",a)}}};FlexGridDetailProvider.prototype._resizedRow=function(e,t){var i=t.getRow();i instanceof DetailRow&&i.detail&&wijmo_1.Control.refreshAll(i.detail)};FlexGridDetailProvider.prototype._hasDetail=function(e){var t=this._g.rows[e];return wijmo_1.isFunction(this._rowHasDetailFn)?this._rowHasDetailFn(t):this._isRegularRow(t)};FlexGridDetailProvider.prototype._isRegularRow=function(e){return!(e instanceof wijmo_grid_1._NewRowTemplate||e instanceof DetailRow)&&!(e instanceof wijmo_grid_1.GroupRow&&!this._g.childItemsPath)};FlexGridDetailProvider.prototype._createDetailCell=function(e){return this.createDetailCell?this.createDetailCell(e):null};FlexGridDetailProvider._WJC_DETAIL=exports.FlexGridDetailProviderClsNames.elemDetail;return FlexGridDetailProvider}();exports.FlexGridDetailProvider=FlexGridDetailProvider;wijmo_1._registerModule("wijmo.grid.detail",selfModule);