@grapecity/wijmo.grid.pdf 5.20261.48 → 5.20261.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/es2015-commonjs.js +2 -2
- package/es2015-esm.js +2 -2
- package/es5-esm.js +2 -2
- package/index.d.ts +2 -1
- package/index.js +2 -2
- package/package.json +13 -13
package/README.md
CHANGED
|
@@ -169,7 +169,7 @@ Submit questions to our team of [Wijmo Experts](https://developer.mescius.com/fo
|
|
|
169
169
|
|
|
170
170
|
## Wijmo CN
|
|
171
171
|
|
|
172
|
-
**注意:从 2027v1
|
|
172
|
+
**注意:从 2027v1 开始,@grapecity域下的所有Wijmo包将停止维护,请迁移到 @grapecity-software。**
|
|
173
173
|
|
|
174
174
|
---
|
|
175
175
|
|
package/es2015-commonjs.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
*
|
|
3
|
-
* Wijmo Library 5.20261.
|
|
3
|
+
* Wijmo Library 5.20261.52
|
|
4
4
|
* https://developer.mescius.com/wijmo
|
|
5
5
|
*
|
|
6
6
|
* Copyright(c) MESCIUS inc. All rights reserved.
|
|
@@ -11,4 +11,4 @@
|
|
|
11
11
|
*
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
"use strict";var __importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);t.default=e;return t};Object.defineProperty(exports,"__esModule",{value:!0});const wijmo_1=require("@grapecity/wijmo"),pdf=__importStar(require("@grapecity/wijmo.pdf")),selfModule=__importStar(require("@grapecity/wijmo.grid.pdf"));function softGrid(){return wijmo_1._getModule("wijmo.grid")}exports.softGrid=softGrid;function softDetail(){return wijmo_1._getModule("wijmo.grid.detail")}exports.softDetail=softDetail;function softMultiRow(){return wijmo_1._getModule("wijmo.grid.multirow")}exports.softMultiRow=softMultiRow;function softSheet(){return wijmo_1._getModule("wijmo.grid.sheet")}exports.softSheet=softSheet;function softOlap(){return wijmo_1._getModule("wijmo.olap")}exports.softOlap=softOlap;function softTransposed(){return wijmo_1._getModule("wijmo.grid.transposed")}exports.softTransposed=softTransposed;function softTransposedMultiRow(){return wijmo_1._getModule("wijmo.grid.transposedmultirow")}exports.softTransposedMultiRow=softTransposedMultiRow;class PdfFormatItemEventArgs extends wijmo_1.CancelEventArgs{constructor(e,t,r,o,l,n,i,s,a){super();this.cancelBorders=!1;this._p=e;this._rng=t;"undefined"!=typeof HTMLElement&&(this._cell=wijmo_1.asType(r,HTMLElement,!0));this._canvas=o;this._clientRect=l;this._contentRect=n;this._style=i;this._getFormattedCell=s;this._getTextRect=a}get panel(){return this._p}get range(){return this._rng.clone()}get row(){return this._rng.row}get col(){return this._rng.col}get data(){return this._data}set data(e){this._data=e}get canvas(){return this._canvas}get cell(){return this._cell}get clientRect(){return this._clientRect}get contentRect(){return this._contentRect}drawBackground(e){const t=this.clientRect;e&&t.width>0&&t.height>0&&this.canvas.paths.rect(t.left,t.top,t.width,t.height).fill(e||this.style.backgroundColor)}getFormattedCell(){return wijmo_1.asFunction(this._getFormattedCell)()}get tagContent(){return this._tagContent}set tagContent(e){this._tagContent=e}get style(){return this._style}get textTop(){!this._textRect&&wijmo_1.isFunction(this._getTextRect)&&(this._textRect=this._getTextRect());return this._textRect?this._textRect.top:this._contentRect.top}}exports.PdfFormatItemEventArgs=PdfFormatItemEventArgs;var ScaleMode,ExportMode,_CellType,_fc;!function(e){e[e.ActualSize=0]="ActualSize";e[e.PageWidth=1]="PageWidth";e[e.SinglePage=2]="SinglePage"}(ScaleMode=exports.ScaleMode||(exports.ScaleMode={}));!function(e){e[e.All=0]="All";e[e.Selection=1]="Selection"}(ExportMode=exports.ExportMode||(exports.ExportMode={}));!function(e){e[e.None=0]="None";e[e.Cell=1]="Cell";e[e.ColumnHeader=2]="ColumnHeader";e[e.RowHeader=3]="RowHeader";e[e.TopLeft=4]="TopLeft";e[e.ColumnFooter=5]="ColumnFooter";e[e.BottomLeft=6]="BottomLeft"}(_CellType=exports._CellType||(exports._CellType={}));function _merge(e,t,r=!1){!e&&t&&(e={});if(t&&e)for(var o in t){let l=t[o],n=e[o];if(wijmo_1.isObject(l)){if(void 0===n||!wijmo_1.isObject(n)&&r){if(wijmo_1.isFunction(l.clone)){e[o]=n=l.clone();continue}e[o]=n={}}wijmo_1.isObject(n)&&_merge(e[o],l,r)}else(void 0===n||r&&void 0!==l)&&(e[o]=l)}return e}exports._merge=_merge;function _combineColumns(e,t){return{aggregate:t.aggregate,binding:t.binding,name:t.name,dataType:t.dataType,wordWrap:t.wordWrap,multiLine:t.multiLine,getAlignment:e=>{if("getAlignment"in t)return t.getAlignment(e)},index:e.index,visibleIndex:e.visibleIndex,isVisible:e.isVisible,renderWidth:e.renderWidth}}exports._combineColumns=_combineColumns;function _cloneStyle(e){if(!e)return null;var t={},toCamel=e=>e.replace(/-([a-z])/g,(e,t,r)=>r>0?t.toUpperCase():t);for(let r=0,o=e.length;r<o;r++){const o=e[r];t[toCamel(o)]=e.getPropertyValue(o)}return t}exports._cloneStyle=_cloneStyle;class _FlexGridPdfCoreConverter{static draw(e,t,r,o,l,n){wijmo_1.assert(!!e,"The flex argument cannot be null.");wijmo_1.assert(!!t,"The doc argument cannot be null.");null==(n=_FlexGridPdfCoreConverter._applyDefaultDrawSettings(n)).scaleMode&&(n.scaleMode=null==o?ScaleMode.ActualSize:null==l?ScaleMode.PageWidth:ScaleMode.SinglePage);_FlexGridPdfCoreConverter._drawInternal(e,t,r,o,l,n)}static _applyDefaultDrawSettings(e){return _merge(_merge({},e),_FlexGridPdfCoreConverter.DefaultDrawSettings)}static _drawInternal(e,t,r,o,l,n){const i=null!=r,s=new wijmo_1.Size(t.width,t.height);r||(r=new wijmo_1.Point(0,t.y));wijmo_1.isArray(n.embeddedFonts)&&n.embeddedFonts.forEach(e=>{t.registerFont(e)});const a=_FlexGridPdfCoreConverter._getRowsToRender(e,n),d=new FlexGridRenderer(e,n,a,_FlexGridPdfCoreConverter.BorderWidth,!0);let h=new wijmo_1.Rect(r.x||0,r.y||0,o||s.width,l||s.height);const c=_FlexGridPdfCoreConverter._getScaleFactor(d,n.scaleMode,h);if(r.y>0&&_FlexGridPdfCoreConverter._canBreakRows(n.scaleMode)){const n=a.find(e.cells,e=>d.isRenderableRow(e));if(n){const i=(h.height-h.top)*(1/c);if((d.showColumnHeader?pdf.pxToPt(e.columnHeaders.height):0)+pdf.pxToPt(n.renderHeight)-_FlexGridPdfCoreConverter.BorderWidth>i){t.addPage();h=new wijmo_1.Rect(r.x||0,0,o||s.width,l||s.height)}}}n._mergedCellTextState={};const g=_FlexGridPdfCoreConverter._getPages(d,a,h,n,i,c),u=(n.progress?_FlexGridPdfCoreConverter._getCellsCount(e,n,g):0)/n._progressMax;let f=0,p=0;const _=n.progress?()=>{if(++f-p>=50){p=f;n.progress(f/u)}}:null;n.progress&&n.progress(0);for(let r=0;r<g.length;r++){r>0&&t.addPage();const o=g[r],l=0===o.pageCol?h.left:0,i=0===o.pageRow?h.top:0;t.saveState();t.paths.rect(0,0,t._widthCtm,t._heightCtm).clip();t.scale(c,c,new wijmo_1.Point(l,i));t.translate(l,i);const s=new FlexGridRenderer(e,n,o.range,_FlexGridPdfCoreConverter.BorderWidth,r===g.length-1);s.render(t,_);t.restoreState();t.x=l;t.y=i+s.renderSize.height*c}n.progress&&0<n._progressMax&&n.progress(n._progressMax)}static _getCellsCount(e,t,r){var o=0;for(let l=0;l<r.length;l++){o+=new FlexGridRenderer(e,t,r[l].range,0,!1).getCellsCount()}return o}static _getRowsToRender(e,t){var r=[];t.exportMode==ExportMode.All?r.push(new _CellRange(0,0,e.rows.length-1,e.columns.length-1)):r=e.getSelection();var o=new RowRange(r);if(o.isValid&&!t.drawDetailRows){const t=[];o.forEach(e.cells,(r,o,l)=>{if(!e.isDetailRow(r)){const e=t.length;e&&t[e-1].bottomRow+1===l?t[e-1].row2++:t.push(new _CellRange(l,o.col,l,o.col2))}});o=new RowRange(t)}return o}static _getScaleFactor(e,t,r){let o=1;if(t==ScaleMode.ActualSize)return o;const l=e.renderSize;let n;if(t==ScaleMode.SinglePage){n=Math.min(r.width/l.width,r.height/l.height);n<1&&(o=n)}else{n=r.width/l.width;n<1&&(o=n)}return o}static _canBreakRows(e){return e==ScaleMode.ActualSize||e==ScaleMode.PageWidth}static _getPages(e,t,r,o,l,n){let i=[],s=[],a=pdf.pxToPt,d=e.flex,h=e.showColumnHeader,c=e.showColumnFooter,g=e.showRowHeader,u=h?a(d.columnHeaders.height):0,f=c?a(d.columnFooters.height):0,p=g?a(d.rowHeaders.width):0,_=_FlexGridPdfCoreConverter._canBreakRows(o.scaleMode),w=o.scaleMode==ScaleMode.ActualSize,C=(r.width-r.left)*(1/n),m=(r.height-r.top)*(1/n),R=r.width*(1/n),x=r.height*(1/n),b=u,S=p,T=l&&o.scaleMode==ScaleMode.ActualSize,y=m;if(_){let r=0,o=0;t.forEach(d.cells,(t,l,n,s)=>{y=i.length?x:m;if(e.isRenderableRow(t)){const e=a(t.renderHeight)+1;r++;b+=e;(h||r>1)&&(b-=_FlexGridPdfCoreConverter.BorderWidth);if(b>y){if(T||u+e>y&&0===o){i.push(s);b=u}else{i.push(s-1);b=u+e}o=0;h&&(b-=_FlexGridPdfCoreConverter.BorderWidth)}else o++}})}const P=Math.max(t.length()-1,0);i.length&&i[i.length-1]===P||i.push(P);c&&b+f>y&&i.push(-1);if(w){let r=0;for(let o=t.leftCol;o<=t.rightCol;o++){const t=d.columns[o];if(e.isRenderableColumn(t)){const e=a(t.renderWidth),l=s.length?R:C;r++;S+=e;(g||r>1)&&(S-=_FlexGridPdfCoreConverter.BorderWidth);if(S>l){if(p+e>l||T){s.push(o);S=p}else{s.push(o-1);S=p+e}g&&(S-=_FlexGridPdfCoreConverter.BorderWidth)}}}}s.length&&s[s.length-1]===t.rightCol||s.push(t.rightCol);let G=[],v=!1,F=1,M=l&&o.maxPages>0?1:o.maxPages;for(let e=0;e<i.length&&!v;e++)for(let r=0;r<s.length&&!v;r++,F++){v=F>M;if(!v){const o=0===e?0:i[e-1]+1,l=0===r?t.leftCol:s[r-1]+1,n=-1===i[e]?new RowRange([new _CellRange(-1,l,-1,s[r])]):t.subrange(o,i[e]-o+1,l,s[r]);G.push(new PdfPageRowRange(n,r,e))}}return G}}_FlexGridPdfCoreConverter.BorderWidth=1;_FlexGridPdfCoreConverter.DefFont=new pdf.PdfFont;_FlexGridPdfCoreConverter.DefaultDrawSettings={customCellContent:!1,drawDetailRows:!1,exportMode:ExportMode.All,maxPages:Number.MAX_VALUE,repeatMergedValuesAcrossPages:!0,recalculateStarWidths:!0,styles:{cellStyle:{font:{family:_FlexGridPdfCoreConverter.DefFont.family,size:_FlexGridPdfCoreConverter.DefFont.size,style:_FlexGridPdfCoreConverter.DefFont.style,weight:_FlexGridPdfCoreConverter.DefFont.weight},padding:1.5,verticalAlign:"middle"},headerCellStyle:{font:{weight:"bold"}}},quickCellStyles:!0,_progressMax:1};exports._FlexGridPdfCoreConverter=_FlexGridPdfCoreConverter;class FlexGridRenderer{constructor(e,t,r,o,l){this._flex=e;this._borderWidth=o;this._lastPage=l;this._settings=t||{};this._topLeft=new PanelSectionRenderer(this,e.topLeftCells,this.showRowHeader&&this.showColumnHeader?new RowRange([new _CellRange(0,0,e.topLeftCells.rows.length-1,e.topLeftCells.columns.length-1)]):new RowRange([]),o);this._rowHeader=new PanelSectionRenderer(this,e.rowHeaders,this.showRowHeader?r.clone(0,e.rowHeaders.columns.length-1):new RowRange([]),o);this._columnHeader=new PanelSectionRenderer(this,e.columnHeaders,this.showColumnHeader?new RowRange([new _CellRange(0,r.leftCol,e.columnHeaders.rows.length-1,r.rightCol)]):new RowRange([]),o);this._cells=new PanelSectionRenderer(this,e.cells,r,o);this._bottomLeft=new PanelSectionRenderer(this,e.bottomLeftCells,this.showRowHeader&&this.showColumnFooter?new RowRange([new _CellRange(0,0,e.bottomLeftCells.rows.length-1,e.bottomLeftCells.columns.length-1)]):new RowRange([]),o);this._columnFooter=new PanelSectionRenderer(this,e.columnFooters,this.showColumnFooter?new RowRange([new _CellRange(0,r.leftCol,e.columnFooters.rows.length-1,r.rightCol)]):new RowRange([]),o)}get settings(){return this._settings}isRenderableRow(e){return this._flex.isRenderableRow(e)}isRenderableColumn(e){return this._flex.isRenderableColumn(e)}getCellsCount(){return this._topLeft.getCellsCount()+this._rowHeader.getCellsCount()+this._columnHeader.getCellsCount()+this._cells.getCellsCount()+this._bottomLeft.getCellsCount()+this._columnFooter.getCellsCount()}render(e,t){let r,o,l,n;if(e.tagged){r=o=l=n=new TrStructCache(e,e.tag(pdf.PdfTagType.Table));e.addTag(r.el);if(e.version>=pdf.PdfVersion.v1_5){o=new TrStructCache(e,e.tag(pdf.PdfTagType.THead));r.el.add(o.el);l=new TrStructCache(e,e.tag(pdf.PdfTagType.TBody));r.el.add(l.el);n=new TrStructCache(e,e.tag(pdf.PdfTagType.TFoot));r.el.add(n.el)}}let i=Math.max(0,Math.max(this._topLeft.renderSize.width,this._rowHeader.renderSize.width)-this._borderWidth),s=Math.max(0,Math.max(this._topLeft.renderSize.height,this._columnHeader.renderSize.height)-this._borderWidth);this._topLeft.render(e,0,0,t,o);this._rowHeader.render(e,0,s,t,l);this._columnHeader.render(e,i,0,t,o);this._cells.render(e,i,s,t,l);s+=Math.max(0,this._cells.renderSize.height-this._borderWidth);this._bottomLeft.render(e,0,s,t,n);this._columnFooter.render(e,i,s,t,n)}get flex(){return this._flex}get renderSize(){var e=Math.max(this._topLeft.renderSize.height,this._columnHeader.renderSize.height)+Math.max(this._rowHeader.renderSize.height,this._cells.renderSize.height)+Math.max(this._bottomLeft.renderSize.height,this._columnFooter.renderSize.height),t=Math.max(this._topLeft.renderSize.width,this._rowHeader.renderSize.width)+Math.max(this._columnHeader.renderSize.width,this._cells.renderSize.width);this._columnHeader.renderableRowsCount>0&&(e-=this._borderWidth);this._columnFooter.renderableRowsCount>0&&(e-=this._borderWidth);this._rowHeader.renderableColumnsCount>0&&(t-=this._borderWidth);return new wijmo_1.Size(t,e)}get showColumnHeader(){return this._flex.showColumnHeader}get showRowHeader(){return this._flex.showRowHeader}get showColumnFooter(){return this._lastPage&&this._flex.showColumnFooter}alignMergedTextToTheTopRow(e){return this._flex.alignMergedTextToTheTopRow(e)}getColumn(e,t,r){return this._flex.getColumn(e,t,r)}isAlternatingRow(e){return this._flex.isAlternatingRow(e)}isGroupRow(e){return this._flex.isGroupRow(e)}isNewRow(e){return this._flex.isNewRow(e)}isExpandableGroupRow(e){return this._flex.isExpandableGroupRow(e)}isBooleanCell(e,t,r){return this._flex.isBooleanCell(e,t,r)}getCellStyle(e,t,r){return this._flex.getCellStyle(e,t,r)}}class PanelSection{constructor(e,t,r){this._flex=e;this._panel=t;this._range=r.clone()}get renderableRowsCount(){if(null==this._renderableRowsCnt){this._renderableRowsCnt=0;this._range.forEach(this._panel,e=>{this._flex.isRenderableRow(e)&&this._renderableRowsCnt++})}return this._renderableRowsCnt}get renderableColumnsCount(){if(null==this._renderableColumnsCnt){this._renderableColumnsCnt=0;if(this._range.isValid)for(let e=this._range.leftCol;e<=this._range.rightCol;e++)this._flex.isRenderableColumn(this._panel.columns[e])&&this._renderableColumnsCnt++}return this._renderableColumnsCnt}get size(){if(null==this._size){const e=this._range.getRenderSize(this._flex,this._panel);this._size=new wijmo_1.Size(pdf.pxToPt(e.width),pdf.pxToPt(e.height))}return this._size}get range(){return this._range}get panel(){return this._panel}}class PanelSectionRenderer extends PanelSection{constructor(e,t,r,o){super(e.flex,t,r);this._gr=e;this._borderWidth=o}get gr(){return this._gr}get renderSize(){if(null==this._renderSize){this._renderSize=this.size.clone();this.renderableColumnsCount>1&&(this._renderSize.width-=this._borderWidth*(this.renderableColumnsCount-1));this.renderableRowsCount>1&&(this._renderSize.height-=this._borderWidth*(this.renderableRowsCount-1))}return this._renderSize}_getRangeWidth(e,t){let r=0,o=0;const l=this.panel;for(let n=e;n<=t;n++){const e=l.columns[n];if(this._gr.isRenderableColumn(e)){o++;r+=e.renderWidth}}r=pdf.pxToPt(r);o>1&&(r-=this._borderWidth*(o-1));return r}_getRangeHeight(e,t){let r=0,o=0;const l=this.panel;for(let n=e;n<=t;n++){const e=l.rows[n];if(this._gr.isRenderableRow(e)){o++;r+=e.renderHeight}}r=pdf.pxToPt(r);o>1&&(r-=this._borderWidth*(o-1));return r}getCellsCount(){let e=0;const t=this.range,r=this.panel,o=new GetMergedRangeProxy(this._gr.flex);if(!t.isValid)return e;t.forEach(r,(l,n,i)=>{if(this._gr.isRenderableRow(l))for(let l=t.leftCol;l<=t.rightCol;l++){if(!this._gr.isRenderableColumn(r.columns[l]))continue;let s,a=!1;const d=o.getMergedRange(r,i,l);if(d){const e=i===d.firstVisibleRow,r=l===d.leftCol,o=i===n.topRow,h=l===n.leftCol,c=d.rowSpan>1,g=d.columnSpan>1;if(c&&g&&(e&&r||o&&h)||c&&!g&&(e||o)||!c&&g&&(r||h)){a=!0;g&&(s=Math.min(t.rightCol,d.rightCol))}}else a=!0;a&&e++;s&&(l=s)}});return e}render(e,t,r,o,l){const n=this.range;if(!n.isValid)return;const i={},s=this.panel,a=new GetMergedRangeProxy(this._gr.flex),d=new _CellRangeExt(s,0,0,0,0),h=new _CellRenderer(this,e,this._borderWidth);for(let e=n.leftCol;e<=n.rightCol;e++)i[e]=r;n.forEach(s,(r,c,g)=>{if(!this._gr.isRenderableRow(r))return;const u=l?l.getTR(g,s.cellType):null;let f=t;for(let t=n.leftCol;t<=n.rightCol;t++){const l=this.gr.getColumn(s,g,t);if(!this._gr.isRenderableColumn(l))continue;let p,_,w,C,m,R=!1;const x=this._gr.flex.getCellContent(this.panel,r,l,t),b=a.getMergedRange(s,g,t);if(b){if(g>=b.topRow){d.copyFrom(b);const e=g===b.firstVisibleRow,r=t===b.leftCol,o=g===c.topRow,l=t===c.leftCol,s=b.rowSpan>1,a=b.columnSpan>1;if(s&&a&&(e&&r||o&&l)||s&&!a&&(e||o)||!s&&a&&(r||l)){R=!0;m=b.topRow>=c.topRow&&b.bottomRow<=c.bottomRow?null:`${b.firstVisibleRow}_${b.leftCol}`;if(this.gr.settings.repeatMergedValuesAcrossPages)w=x;else if(e&&r)w=x;else{const e=this.gr.settings._mergedCellTextState,t=e&&e[m]||0;w=t>0&&x?x.substring(t):x}p=s?this._getRangeHeight(g,Math.min(b.bottomRow,c.bottomRow)):this._getRangeHeight(g,g);if(a){_=this._getRangeWidth(Math.max(n.leftCol,b.leftCol),Math.min(n.rightCol,b.rightCol));C=Math.min(n.rightCol,b.rightCol);for(let e=t+1;e<=C;e++)i[e]+=p-this._borderWidth}}}else p=this._getRangeHeight(g,g);null==_&&(_=this._getRangeWidth(t,t))}else{d.setRange(g,t,g,t);R=!0;w=x;p=this._getRangeHeight(g,g);_=this._getRangeWidth(t,t)}if(R&&_>0&&p>0){const n=h.renderCell(w,r,l,d,new wijmo_1.Rect(f,i[t],_,p));if(m&&!this.gr.settings.repeatMergedValuesAcrossPages){const e=this.gr.settings._mergedCellTextState;e&&(e[m]=(e[m]||0)+h._lastRenderCharCount)}if(u){const t=e.tag(s.cellType===_CellType.ColumnHeader||s.cellType==_CellType.TopLeft?pdf.PdfTagType.TH:pdf.PdfTagType.TD);n&&t.add(n);u.add(t)}o&&o()}p&&(i[t]+=p-this._borderWidth);_&&(f+=_-this._borderWidth);C&&(t=C)}})}}class TrStructCache{constructor(e,t){this.doc=e;this.tableSection=t;this._trh=[];this._trb=[];this._trf=[]}get el(){return this.tableSection}getTR(e,t){const r=t===_CellType.TopLeft||t===_CellType.ColumnHeader?this._trh:t===_CellType.RowHeader||t===_CellType.Cell?this._trb:this._trf;let o=r[e];if(!o){o=this.doc.tag(pdf.PdfTagType.TR);r[e]=o;this.tableSection.add(o)}return o}}class _CellRenderer{constructor(e,t,r){this.InvisiblePen=new pdf.PdfPen(wijmo_1.Color.fromRgba(0,0,0,0),0);this._lastRenderCharCount=0;this._pr=e;this._area=t;this._borderWidth=r}renderCell(e,t,r,o,l){this._lastRenderCharCount=0;let n;const i=this._pr.gr.flex,s=this._pr.panel,getGridCell=e=>i.getCell(s,o.topRow,o.leftCol,e);let a=null;const d=this._pr.gr.getCellStyle(s,t,r),h=this._pr.gr.settings.customCellContent,c=wijmo_1.isFunction(this._pr.gr.settings.formatItem);if(h){a=getGridCell(c);const e=i.getComputedStyle(s,a);d.color=e.color;d.backgroundColor=e.backgroundColor;const t=i.getComputedDefBorderColor();d.borderLeftColor="none"!=e.borderLeftStyle?e.borderLeftColor:t;d.borderRightColor="none"!=e.borderRightStyle?e.borderRightColor:t;d.borderTopColor="none"!=e.borderTopStyle?e.borderTopColor:t;d.borderBottomColor="none"!=e.borderBottomStyle?e.borderBottomColor:t;d.font=new pdf.PdfFont(e.fontFamily,pdf._asPt(e.fontSize,!0,void 0),e.fontStyle,e.fontWeight);d.textAlign=e.textAlign;d.textDecoration=e.textDecoration}if(d.font&&!(d.font instanceof pdf.PdfFont)){const e=d.font;d.font=new pdf.PdfFont(e.family,e.size,e.style,e.weight)}d.boxSizing="border-box";d.borderWidth=this._borderWidth;d.borderStyle="solid";h||this._pr.gr.isExpandableGroupRow(t)&&0===r.visibleIndex||(d.textAlign=r.getAlignment(t));if(s.cellType===_CellType.Cell&&i.rows.maxGroupLevel>=0&&o.leftCol===i.columns.firstVisibleIndex){const e=i.isGroupRow(t)?Math.max(t.level,0):i.rows.maxGroupLevel+1,r=pdf._asPt(d.paddingLeft||d.padding),o=pdf.pxToPt(e*i.treeIndent);d.paddingLeft=r+o}var g=this._measureCell(e,s,t,r,d,l);const u=o.rowSpan>1&&o.visibleRowsCount>1&&this._pr.gr.alignMergedTextToTheTopRow(s)?new wijmo_1.Rect(g.contentRect.left,g.contentRect.top,g.contentRect.width,g.contentRect.height/(o.visibleRowsCount||1)):g.contentRect;let f,p=!0,_=!0;if(c){n=new PdfFormatItemEventArgs(s,o,a,this._area,g.rect,g.contentRect,d,()=>a||getGridCell(!0),()=>{g.textRect=this._calculateTextRect(e,s,t,r,u,d);return g.textRect});n.data=e;this._pr.gr.settings.formatItem(n);if(n.data!==e){e=wijmo_1.asString(n.data);g.textRect=null}p=!n.cancel;_=!n.cancelBorders;f=n.tagContent}p&&!g.textRect&&(g.textRect=this._calculateTextRect(e,s,t,r,u,d));return this._renderCell(e,t,r,o,g,d,p,_,null==f)||f}_renderCell(e,t,r,o,l,n,i,s,a){if(!i&&!s)return;const d=this._area.document.tagged,h=this._area.document;d&&h.beginArtifact({type:pdf.PdfArtifactType.Layout});this._renderEmptyCell(l,n,i,s);d&&h.endArtifact();let c;if(i){a=!0===d&&!0===a;let o;if(this._isBooleanCellAndValue(e,this._pr.panel,t,r)){if(a){c=h.tag(pdf.PdfTagType.Span,null,{actual:e.toString()});o=h.beginTagContent(pdf.PdfTagType.Span)}this._renderBooleanCell(e,l,n)}else{if(a){c=h.tag(pdf.PdfTagType.P);o=h.beginTagContent(pdf.PdfTagType.P)}this._renderTextCell(e,l,n)}if(a){h.endTagContent();c.add(o)}}return c}_isBooleanCellAndValue(e,t,r,o){return this._pr.gr.isBooleanCell(t,r,o)&&this._isBoolean(e)}_isBoolean(e){var t=wijmo_1.isString(e)&&e.toLowerCase();return"true"===t||"false"===t||!0===e||!1===e}_measureCell(e,t,r,o,l,n){this._decompositeStyle(l);const i=n.left,s=n.top,a=n.height,d=n.width,h=this._parseBorder(l),c=h.left.width,g=h.top.width,u=h.bottom.width,f=h.right.width,p=this._parsePadding(l);let _=0,w=0,C=0,m=0;if("content-box"===l.boxSizing||void 0===l.boxSizing){_=p.top+a+p.bottom;w=p.left+d+p.right;C=a;m=d}else{if("border-box"!==l.boxSizing)throw"Invalid value: "+l.boxSizing;if(pdf._IE&&l instanceof CSSStyleDeclaration){_=p.top+p.bottom+a;w=p.left+p.right+d}else{_=Math.max(a-g-u,0);w=Math.max(d-c-f,0)}C=Math.max(_-p.top-p.bottom,0);m=Math.max(w-p.left-p.right,0)}return{rect:new wijmo_1.Rect(i,s,d,a),clientRect:new wijmo_1.Rect(i+c,s+g,w,_),contentRect:new wijmo_1.Rect(i+c+p.left,s+g+p.top,m,C),textRect:null}}_decompositeStyle(e){if(e){let t;t=e.borderColor;if(t){e.borderLeftColor||(e.borderLeftColor=t);e.borderRightColor||(e.borderRightColor=t);e.borderTopColor||(e.borderTopColor=t);e.borderBottomColor||(e.borderBottomColor=t)}t=e.borderWidth;if(t){e.borderLeftWidth||(e.borderLeftWidth=t);e.borderRightWidth||(e.borderRightWidth=t);e.borderTopWidth||(e.borderTopWidth=t);e.borderBottomWidth||(e.borderBottomWidth=t)}t=e.borderStyle;if(t){e.borderLeftStyle||(e.borderLeftStyle=t);e.borderRightStyle||(e.borderRightStyle=t);e.borderTopStyle||(e.borderTopStyle=t);e.borderBottomStyle||(e.borderBottomStyle=t)}t=e.padding;if(t){e.paddingLeft||(e.paddingLeft=t);e.paddingRight||(e.paddingRight=t);e.paddingTop||(e.paddingTop=t);e.paddingBottom||(e.paddingBottom=t)}}}_parseBorder(e){var t={left:{width:0},top:{width:0},bottom:{width:0},right:{width:0}};"none"!==e.borderLeftStyle&&(t.left={width:pdf._asPt(e.borderLeftWidth),style:e.borderLeftStyle,color:e.borderLeftColor});"none"!==e.borderTopStyle&&(t.top={width:pdf._asPt(e.borderTopWidth),style:e.borderTopStyle,color:e.borderTopColor});"none"!==e.borderBottomStyle&&(t.bottom={width:pdf._asPt(e.borderBottomWidth),style:e.borderBottomStyle,color:e.borderBottomColor});"none"!==e.borderRightStyle&&(t.right={width:pdf._asPt(e.borderRightWidth),style:e.borderRightStyle,color:e.borderRightColor});return t}_parsePadding(e){return{left:pdf._asPt(e.paddingLeft),top:pdf._asPt(e.paddingTop),bottom:pdf._asPt(e.paddingBottom),right:pdf._asPt(e.paddingRight)}}_renderEmptyCell(e,t,r,o){var l=e.rect.left,n=e.rect.top,i=e.clientRect.width,s=e.clientRect.height,a=e.clientRect.left-e.rect.left,d=e.clientRect.top-e.rect.top,h=e.rect.top+e.rect.height-(e.clientRect.top+e.clientRect.height),c=e.rect.left+e.rect.width-(e.clientRect.left+e.clientRect.width);r=r&&t.backgroundColor&&i>0&&s>0;if(o&&(a||c||h||d)){const e=t.borderLeftColor||t.borderColor,o=t.borderRightColor||t.borderColor,g=t.borderTopColor||t.borderColor,u=t.borderBottomColor||t.borderColor;if(a&&d&&h&&c&&a===c&&a===h&&a===d&&e===o&&e===u&&e===g){const o=a,d=o/2,h=this._area.paths.rect(l+d,n+d,i+o,s+o);if(r){h.fillAndStroke(t.backgroundColor,new pdf.PdfPen(e,o));return}h.stroke(new pdf.PdfPen(e,o))}else{a&&this._area.paths.polygon([[l,n],[l+a,n+d],[l+a,n+d+s],[l,n+d+s+h]]).fill(e);d&&this._area.paths.polygon([[l,n],[l+a,n+d],[l+a+i,n+d],[l+a+i+c,n]]).fill(g);c&&this._area.paths.polygon([[l+a+i+c,n],[l+a+i,n+d],[l+a+i,n+d+s],[l+a+i+c,n+d+s+h]]).fill(o);h&&this._area.paths.polygon([[l,n+d+s+h],[l+a,n+d+s],[l+a+i,n+d+s],[l+a+i+c,n+d+s+h]]).fill(u)}}r&&this._area.paths.rect(e.clientRect.left,e.clientRect.top,e.clientRect.width,e.clientRect.height).fillAndStroke(t.backgroundColor,this.InvisiblePen)}_renderBooleanCell(e,t,r){if(!(!t.textRect||t.textRect.height<=0||t.textRect.width<=0)){var o=t.textRect.left,l=t.textRect.top,n=t.textRect.height;this._area.paths.rect(o,l,n,n).fillAndStroke(wijmo_1.Color.fromRgba(255,255,255),new pdf.PdfPen(void 0,.5));if(!0===wijmo_1.changeType(e,wijmo_1.DataType.Boolean,"")){const e=n/20,t=n-.5-2*e,r=n/8;this._area.document.saveState();this._area.translate(o+.25+e,l+.25+e).paths.moveTo(r/2,.6*t).lineTo(t-.6*t,t-r).lineTo(t-r/2,r/2).stroke(new pdf.PdfPen(void 0,r));this._area.document.restoreState()}}}_renderTextCell(e,t,r){if(!e||!t.textRect||t.textRect.height<=0||t.textRect.width<=0)return;var o=r.textDecoration||"",l=o.indexOf("line-through")>=0,n=o.indexOf("underline")>=0;const i=this._area.drawText(e,t.textRect.left,t.textRect.top,{brush:r.color,font:r.font,height:t.textRect.height,width:t.textRect.width,align:"center"===r.textAlign?pdf.PdfTextHorizontalAlign.Center:"right"===r.textAlign?pdf.PdfTextHorizontalAlign.Right:"justify"===r.textAlign?pdf.PdfTextHorizontalAlign.Justify:pdf.PdfTextHorizontalAlign.Left,strike:l,underline:n});i&&(this._lastRenderCharCount=i.charCount)}_calculateTextRect(e,t,r,o,l,n){if(null!=e&&!wijmo_1.isString(e))return null;const i=l.clone();if(this._isBooleanCellAndValue(e,t,r,o)){const e=this._getTextLineHeight(n.font);switch(n.verticalAlign){case"middle":i.top=l.top+l.height/2-e/2;break;case"bottom":i.top=l.top+l.height-e}switch(n.textAlign){case"justify":case"center":i.left=l.left+l.width/2-e/2;break;case"right":i.left=l.left+l.width-e}i.height=i.width=e}else if(i.height>0&&i.width>0)switch(n.verticalAlign){case"bottom":{const t=this._area.measureText(e,n.font,{height:i.height,width:i.width});if(t.size.height<i.height){const e=this._area.document._document,r=e.currentLineHeight(!0)-e.currentLineHeight(!1);i.top+=i.height-t.size.height-r;i.height=t.size.height}break}case"middle":{const t=this._area.measureText(e,n.font,{height:i.height,width:i.width});if(t.size.height<i.height){const e=this._area.document._document,r=e.currentLineHeight(!0)-e.currentLineHeight(!1);i.top+=i.height/2-(t.size.height-r)/2;i.height=t.size.height}break}}return i}_getTextLineHeight(e){return this._area.lineHeight(e)}}exports._CellRenderer=_CellRenderer;class GetMergedRangeProxy{constructor(e){this._columns={};this._flex=e}getMergedRange(e,t,r){const o=this._columns[r];if(o&&t>=o.topRow&&t<=o.bottomRow)return o;{let o=this._flex.getMergedRange(e,t,r),l=e.columns,n=e.rows;if(o&&!o.isSingleCell&&(!l[o.col].isVisible||!l[o.col2].isVisible||!n[o.row].isVisible||!n[o.row2].isVisible)){o=o.clone();for(;o.col<o.col2&&!l[o.col].isVisible;)o.col++;for(;o.col2>o.col&&!l[o.col2].isVisible;)o.col2--;for(;o.row<o.row2&&!n[o.row].isVisible;)o.row++;for(;o.row2>o.row&&!n[o.row2].isVisible;)o.row2--}o&&o.isSingleCell&&(o=null);this._columns[r]=o?new _CellRangeExt(e,o):null;return this._columns[r]}}}class _CellRange{constructor(e,t,r,o){if("number"==typeof e){this._row=e;this._col=t;this._row2=r;this._col2=o}else{this._row=e.row;this._col=e.col;this._row2=e.row2;this._col2=e.col2}(this._row<0||this._row2<0)&&(this._row=this._row2=-1);(this._col<0||this._col2<0)&&(this._col=this._col2=-1)}get row(){return this._row}set row(e){this._row=e}get col(){return this._col}set col(e){this._col=e}get row2(){return this._row2}set row2(e){this._row2=e}get col2(){return this._col2}set col2(e){this._col2=e}get topRow(){return Math.min(this._row,this._row2)}get bottomRow(){return Math.max(this._row,this._row2)}get leftCol(){return Math.min(this._col,this._col2)}get rightCol(){return Math.max(this._col,this._col2)}get columnSpan(){return Math.abs(this._col2-this._col)+1}get rowSpan(){return Math.abs(this._row2-this._row)+1}get isValid(){return this._row>-1&&this._col>-1&&this._row2>-1&&this._col2>-1}get isSingleCell(){return this._row===this._row2&&this._col===this._col2}copyFrom(e){this.setRange(e.row,e.col,e.row2,e.col2)}clone(){return new _CellRange(this._row,this._col,this._row2,this._col2)}getRenderSize(e,t){const r=new wijmo_1.Size(0,0);if(this.isValid){for(let o=this.topRow;o<=this.bottomRow;o++){const l=t.rows[o];e.isRenderableRow(l)&&(r.height+=l.renderHeight)}for(let o=this.leftCol;o<=this.rightCol;o++){const l=t.columns[o];e.isRenderableColumn(l)&&(r.width+=l.renderWidth)}}return r}setRange(e=-1,t=-1,r=e,o=t){this._row=wijmo_1.asInt(e);this._col=wijmo_1.asInt(t);this._row2=wijmo_1.asInt(r);this._col2=wijmo_1.asInt(o)}}exports._CellRange=_CellRange;class _CellRangeExt extends _CellRange{constructor(e,t,r,o,l){super(t,r,o,l);this.firstVisibleRow=-1;this.visibleRowsCount=0;if(e){const t=this.topRow,r=this.bottomRow,o=e.rows.length;if(o>0)for(let l=t;l<=r&&l<o;l++)if(e.rows[l].isVisible){this.firstVisibleRow<0&&(this.firstVisibleRow=l);this.visibleRowsCount++}}}copyFrom(e){super.copyFrom(e);this.firstVisibleRow=e.firstVisibleRow;this.visibleRowsCount=e.visibleRowsCount}clone(){return new _CellRangeExt(null,this.row,this.col,this.row2,this.col2)}}exports._CellRangeExt=_CellRangeExt;class RowRange{constructor(e){this._ranges=e||[]}length(){let e=0;for(let t=0;t<this._ranges.length;t++){const r=this._ranges[t];r.isValid&&(e+=r.bottomRow-r.topRow+1)}return e}get isValid(){return this._ranges.length&&this._ranges[0].isValid}get leftCol(){return this._ranges.length?this._ranges[0].leftCol:-1}get rightCol(){return this._ranges.length?this._ranges[0].rightCol:-1}clone(e,t){const r=[];for(let o=0;o<this._ranges.length;o++){const l=this._ranges[o].clone();arguments.length>0&&(l.col=e);arguments.length>1&&(l.col2=t);r.push(l)}return new RowRange(r)}getRenderSize(e,t){const r=new wijmo_1.Size(0,0);for(let o=0;o<this._ranges.length;o++){const l=this._ranges[o].getRenderSize(e,t);r.width=Math.max(r.width,l.width);r.height+=l.height}return r}find(e,t){let r=null;this.forEach(e,e=>{if(!0===t(e)){r=e;return!1}});return r}forEach(e,t){let r=0,o=!1;for(let l=0;l<this._ranges.length&&!o;l++){const n=this._ranges[l];if(n.isValid)for(let l=n.topRow;l<=n.bottomRow&&!o;l++)o=!1===t(e.rows[l],n,l,r++)}}subrange(e,t,r,o){const l=[];if(e>=0&&t>0){let n=0,i=0;for(let s=0;s<this._ranges.length&&t>0;s++,n=i+1){const a=this._ranges[s];i=n+(a.bottomRow-a.topRow);if(e>i)continue;const d=e>n?a.topRow+(e-n):a.topRow,h=Math.min(a.bottomRow,d+t-1),c=arguments.length>2?r:a.leftCol,g=arguments.length>2?o:a.rightCol;l.push(new _CellRange(d,c,h,g));t-=h-d+1}}return new RowRange(l)}}class PdfPageRowRange{constructor(e,t,r){this._col=t;this._row=r;this._range=e}get range(){return this._range}get pageCol(){return this._col}get pageRow(){return this._row}}const FAKE_CELL="wj-pdf-fake-cell";function getFakeCell(e){if(!_fc){(_fc=document.createElement("div")).setAttribute(FAKE_CELL,"true");softGrid()&&_fc.setAttribute(softGrid().FlexGrid._WJS_MEASURE,"true")}const t=_fc.style;t.cssText="";t.position="absolute";t.overflow="hidden";t.width="1px";t.height="1px";t.clipPath="inset(100%)";t.clip="rect(0 0 0 0)";const r=e.hostElement,o=r.children.length?r.children[0]:r;_fc.parentNode!==o&&o.appendChild(_fc);return _fc}function _removeFakeCell(){if(_fc){wijmo_1.removeChild(_fc);_fc=null}}exports._removeFakeCell=_removeFakeCell;class FlexGridPdfConverter{static draw(e,t,r,o,l){FlexGridPdfConverter.drawToPosition(e,t,null,r,o,l)}static drawToPosition(e,t,r,o,l,n){wijmo_1.assert(!!e,"The flex argument cannot be null.");wijmo_1.assert(!!t,"The doc argument cannot be null.");let i,s=softGrid()&&e instanceof softGrid().FlexGrid,a=e;try{n=_FlexGridPdfCoreConverter._applyDefaultDrawSettings(n);let d=e;if(s){if(n&&n.recalculateStarWidths){i=a.columns.getTotalSize();a.columns._updateStarSizes(pdf.ptToPx(t.width))}d=FlexGridPdfConverter._getFlexGridAdapter(a,n)}_FlexGridPdfCoreConverter.draw(d,t,r,o,l,n)}finally{_removeFakeCell();s&&n&&n.recalculateStarWidths&&a.columns._updateStarSizes(i)}}static export(e,t,r){wijmo_1.assert(!!e,"The flex argument cannot be null.");wijmo_1.assert(!!t,"The fileName argument cannot be empty.");var o=(r=FlexGridPdfConverter._applyDefaultExportSettings(r)).documentOptions.ended;r.documentOptions.ended=(e,n)=>{r.progress&&r.progress(1);o&&!1===o.apply(l,[e,n])||pdf.saveBlob(n.blob,t);e.dispose()};var l=new pdf.PdfDocument(r.documentOptions);FlexGridPdfConverter.drawToPosition(e,l,null,null,null,r);l.end()}static _getFlexGridAdapter(e,t){return new(softMultiRow()&&e instanceof softMultiRow().MultiRow&&MultiRowAdapter||softSheet()&&e instanceof softSheet().FlexSheet&&FlexSheetAdapter||softOlap()&&e instanceof softOlap().PivotGrid&&PivotGridAdapter||softTransposed()&&e instanceof softTransposed().TransposedGrid&&_TransposedGridAdapter||softTransposedMultiRow()&&e instanceof softTransposedMultiRow().TransposedMultiRow&&TransposedMultiRowAdapter||FlexGridAdapter)(e,t)}static _applyDefaultExportSettings(e){return _merge(_merge({},e),FlexGridPdfConverter._DefaultExportSettings)}}FlexGridPdfConverter._DefaultExportSettings=_merge({scaleMode:ScaleMode.PageWidth,documentOptions:{compress:!1,pageSettings:{margins:{left:36,right:36,top:18,bottom:18}}},_progressMax:.9},_FlexGridPdfCoreConverter.DefaultDrawSettings);exports.FlexGridPdfConverter=FlexGridPdfConverter;class FlexGridAdapter{constructor(e,t){this._defBorderColor=null;this._flex=e;this._settings=t;t.quickCellStyles&&(this._styleCache=new StyleCache(500))}get flex(){return this._flex}get settings(){return this._settings}get columns(){return this._flex.columns}get rows(){return this._flex.rows}get bottomLeftCells(){return this._flex.bottomLeftCells}get cells(){return this._flex.cells}get columnFooters(){return this._flex.columnFooters}get columnHeaders(){return this._flex.columnHeaders}get rowHeaders(){return this._flex.rowHeaders}get topLeftCells(){return this._flex.topLeftCells}get treeIndent(){return this._flex.treeIndent}getSelection(){var e=[],t=this._flex.selection,r=softGrid();switch(this._flex.selectionMode){case r.SelectionMode.None:break;case r.SelectionMode.Cell:case r.SelectionMode.CellRange:e.push(new _CellRange(t.row,t.col,t.row2,t.col2));break;case r.SelectionMode.Row:e.push(new _CellRange(t.topRow,0,t.topRow,this._flex.cells.columns.length-1));break;case r.SelectionMode.RowRange:e.push(new _CellRange(t.topRow,0,t.bottomRow,this._flex.cells.columns.length-1));break;case r.SelectionMode.ListBox:{let t=-1;for(let r=0;r<this._flex.rows.length;r++){if(this._flex.rows[r].isSelected){t<0&&(t=r);r===this._flex.rows.length-1&&e.push(new _CellRange(t,0,r,this._flex.cells.columns.length-1))}else{t>=0&&e.push(new _CellRange(t,0,r-1,this._flex.cells.columns.length-1));t=-1}}break}}return e}getCell(e,t,r,o){var l=e.getCellElement(t,r);if(!l){l=getFakeCell(e);this._flex.cellFactory.updateCell(e,t,r,l,null,o)}return l}getComputedDefBorderColor(){if(null==this._defBorderColor){const e=window.getComputedStyle(this._flex.hostElement);this._defBorderColor="none"!=e.borderRightStyle?e.borderRightColor:"none"!=e.borderBottomStyle?e.borderBottomColor:"none"!=e.borderLeftStyle?e.borderLeftColor:"none"!=e.borderTopStyle?e.borderTopColor:"rgba(0,0,0,0.2)"}return this._defBorderColor}getComputedStyle(e,t){let r;const o=null==t.getAttribute(FAKE_CELL),l=t.className,n=l.indexOf(wijmo_1.ControlStateClsNames.selected)>=0||l.indexOf(wijmo_1.ControlStateClsNames.multiSelected)>=0;n&&(t.className=l.replace(wijmo_1.ControlStateClsNames.selected,"").replace(wijmo_1.ControlStateClsNames.multiSelected,""));if(this._styleCache){const o=e.hostElement;let l=t.style.cssText.split(/;\s+/).filter(e=>{var t=e.substring(0,e.indexOf(":"));return/^(color|background-color|border-color|border-left-color|border-right-color|border-top-color|border-bottom-color|font|textAlign|text-decoration)/i.test(t)}).join(";"),n=t;do{l=n.className+l}while(n!==o&&(n=n.parentElement));r=this._styleCache.getValue(l);if(!r){r=window.getComputedStyle(t);r=this._styleCache.add(l,r)}}else r=_cloneStyle(window.getComputedStyle(t));o&&n&&(t.className=l);return r}getMergedRange(e,t,r){const o=this._flex.getMergedRange(e,t,r,!1);return o?new _CellRange(o.row,o.col,o.row2,o.col2):null}get showColumnHeader(){return!!(this._flex.headersVisibility&softGrid().HeadersVisibility.Column)}get showRowHeader(){return!!(this._flex.headersVisibility&softGrid().HeadersVisibility.Row)}get showColumnFooter(){return this._flex.columnFooters.rows.length>0}alignMergedTextToTheTopRow(e){return!1}getCellData(e,t,r){return e.getCellData(t,r,!0)}getCellContent(e,t,r,o){let l,n=softGrid();if(this.settings.customCellContent){const n=this.getCell(e,t.index,o,!0);l=n.innerText.trim();l=l.replace(/\r/gm,"").replace(/\n+/gm,"\n");if(!l&&this.isBooleanCell(e,t,r)){l=this._extractCheckboxValue(n);l=null==l?"":""+l}}else{let i=r.isContentHtml;l=this.getCellData(e,t.index,o);if(this.isGroupRow(t)&&e.cellType===n.CellType.Cell&&r.index===e.columns.firstVisibleIndex){i=!0;l||(l=t.getGroupHeader())}i&&(l=wijmo_1.toPlainText(l).trim())}return l}isBooleanCell(e,t,r){return r.dataType===wijmo_1.DataType.Boolean&&e.cellType===softGrid().CellType.Cell&&(!this.isExpandableGroupRow(t)||r.visibleIndex>0)}getColumn(e,t,r){return e.columns[r]}isAlternatingRow(e){let t=!1,r=this._flex.alternatingRowStep;if(r){t=e.visibleIndex%(r+1)==0;1==r&&(t=!t)}return t}isGroupRow(e){return e instanceof softGrid().GroupRow}isNewRow(e){return e instanceof softGrid()._NewRowTemplate}isDetailRow(e){return softDetail()&&e instanceof softDetail().DetailRow}isExpandableGroupRow(e){return e instanceof softGrid().GroupRow&&e.hasChildren}isRenderableRow(e){return e.isVisible&&e.renderHeight>0&&!this.isNewRow(e)}isRenderableColumn(e){return e.isVisible&&e.renderWidth>0}getCellStyle(e,t,r){var o=this.settings.styles,l=_merge({},o.cellStyle),n=this._flex,i=softGrid();switch(e.cellType){case i.CellType.Cell:this.isExpandableGroupRow(t)?_merge(l,o.groupCellStyle,!0):this.isAlternatingRow(t)&&_merge(l,o.altCellStyle,!0);break;case i.CellType.ColumnHeader:case i.CellType.RowHeader:case i.CellType.TopLeft:case i.CellType.BottomLeft:_merge(l,o.headerCellStyle,!0);break;case i.CellType.ColumnFooter:_merge(l,o.headerCellStyle,!0);_merge(l,o.footerCellStyle,!0)}!this.settings.customCellContent&&n._getShowErrors()&&n._getError(e,t.index,r.index)&&_merge(l,o.errorCellStyle,!0);return l}_extractCheckboxValue(e){var t=e.querySelector("input[type=checkbox]");if(t&&"none"!==t.style.display&&"hidden"!==t.style.visibility)return t.checked}}class FlexSheetAdapter extends FlexGridAdapter{getCellData(e,t,r){return e.cellType===softGrid().CellType.Cell?e.rows[t]instanceof softSheet().HeaderRow?this.flex.columnHeaders.getCellData(t,r,!0):this.flex.getCellValue(t,r,!0):super.getCellData(e,t,r)}getCellStyle(e,t,r){var o=super.getCellStyle(e,t,r),l=this.flex.selectedSheet.findTable(t.index,r.index);if(l){const e=l.getRange(),n=t.index-e.topRow,i=r.index-e.leftCol,s=l._getTableCellAppliedStyles(n,i);s&&(s.font=new pdf.PdfFont(s.fontFamily,pdf._asPt(s.fontSize,!0,void 0),s.fontStyle,s.fontWeight));_merge(o,s,!0)}return o}get showColumnHeader(){return!1}get showRowHeader(){return!1}get showColumnFooter(){return!1}}class MultiRowAdapter extends FlexGridAdapter{getColumn(e,t,r){return _combineColumns(super.getColumn(e,t,r),this.flex.getBindingColumn(e,t,r))}isAlternatingRow(e){if(e instanceof softMultiRow()._MultiRow){let t=!1,r=this.flex.alternatingRowStep;if(r){t=e.dataIndex%(r+1)==0;1==r&&(t=!t)}return t}return super.isAlternatingRow(e)}}class PivotGridAdapter extends FlexGridAdapter{alignMergedTextToTheTopRow(e){const t=softGrid();return!this.flex.centerHeadersVertically&&(e.cellType===t.CellType.ColumnHeader||e.cellType===t.CellType.RowHeader)}}class _TransposedGridAdapter extends FlexGridAdapter{getColumn(e,t,r){const o=super.getColumn(e,t,r);if(e.cellType!=softGrid().CellType.Cell)return o;{const r=e.grid._getBindingColumn(e,t,o);return r?_combineColumns(o,r):o}}}class TransposedMultiRowAdapter extends FlexGridAdapter{getColumn(e,t,r){const o=super.getColumn(e,t,r);if(e.cellType!=softGrid().CellType.Cell)return o;{const l=this.flex.getBindingColumn(e,t,r);return l?_combineColumns(o,l):o}}}class StyleCache{constructor(e){this._cache={};this._size=0;this._max=e}add(e,t){this._size>=this._max&&this.clear();const r=_cloneStyle(t);this._cache[e]=r;this._size++;return r}clear(){this._cache={};this._size=0}getValue(e){return this._cache[e]||null}hasKey(e){return!!this._cache[e]}}var PdfWebWorkerResponseStatus;!function(e){e[e.Done=1]="Done";e[e.Progress=2]="Progress"}(PdfWebWorkerResponseStatus||(PdfWebWorkerResponseStatus={}));const DefGridName="";class PdfWebWorkerExportDoneEventArgs extends wijmo_1.EventArgs{constructor(e){super();this._buf=e}get blob(){this._blob||(this._blob=new Blob([new Uint8Array(this._buf)],{type:"application/pdf"}));return this._blob}get buffer(){return this._buf}}exports.PdfWebWorkerExportDoneEventArgs=PdfWebWorkerExportDoneEventArgs;class PdfWebWorkerClient{static exportGrid(e,t,r,o,l,n){(o=FlexGridPdfConverter._applyDefaultExportSettings(o)).progress=o.progress||n;PdfWebWorkerClient.addGrid(e,t,"",o);PdfWebWorkerClient.export(e,o.documentOptions,e=>{wijmo_1.isFunction(l)&&!1===l(e)||pdf.saveBlob(e.blob,r)},n)}static export(e,t,r,o){e.addEventListener("message",(function handler(t){const l=t.data;switch(l.status){case PdfWebWorkerResponseStatus.Done:e.removeEventListener("message",handler);wijmo_1.isFunction(r)&&r(new PdfWebWorkerExportDoneEventArgs(l.data));break;case PdfWebWorkerResponseStatus.Progress:o&&o(l.data);break;default:throw"Unknown status: "+l.status}}));const l=PdfWebWorkerClient._clientDataToArrayBuffer(e);e.postMessage({content:l,settings:t},[l]);PdfWebWorkerClient._clearClientData(e)}static addGrid(e,t,r,o){const l=PdfWebWorkerClient._gridToJson(t,o);PdfWebWorkerClient._addClientData(e,JSON.stringify(l),r,o,!0)}static addImage(e,t,r,o){const l=wijmo_1.isString(t)&&t.indexOf("data:image/svg")>=0?t:pdf._PdfImageHelper.getDataUri(t);PdfWebWorkerClient._addClientData(e,l,r,o)}static addString(e,t,r){PdfWebWorkerClient._addClientData(e,t,r,null)}static serializeGrid(e,t){const r=PdfWebWorkerClient._gridToJson(e,t);return strToBuf(JSON.stringify(r))}static _addClientData(e,t,r,o,l=!1){wijmo_1.asType(e,Worker);wijmo_1.asString(r);wijmo_1.asString(t,!0);const n=e;n.clientData=n.clientData||{};n.clientData[r]={content:t,settings:o?JSON.stringify(o):null};var i=n.clientData[r];if(l){i.isGrid=!0;i.progressMessaging=!!o&&wijmo_1.isFunction(o.progress)}}static _clearClientData(e){delete e.clientData}static _clientDataToArrayBuffer(e){const t=e;return strToBuf(JSON.stringify(t.clientData||{}))}static _gridToJson(e,t){t=FlexGridPdfConverter._applyDefaultExportSettings(t);let r,o;try{r=new pdf.PdfDocument(t.documentOptions);if(t&&t.recalculateStarWidths){o=e.columns.getTotalSize();e.columns._updateStarSizes(pdf.ptToPx(r.width))}return PdfWebWorkerClient._getJsonConverter(e,t).convert()}finally{_removeFakeCell();t&&t.recalculateStarWidths&&e.columns._updateStarSizes(o);if(null!=r){r.dispose();r=null}}}static _getJsonConverter(e,t){return new(softMultiRow()&&e instanceof softMultiRow().MultiRow&&MultiRowJsonConverter||softOlap()&&e instanceof softOlap().PivotGrid&&PivotGridJsonConverter||softTransposed()&&e instanceof softTransposed().TransposedGrid&&TransposedGridJsonConverter||softTransposedMultiRow()&&e instanceof softTransposedMultiRow().TransposedMultiRow&&TransposedMultirowJsonConverter||FlexGridJsonConverter)(e,t,FlexGridPdfConverter._getFlexGridAdapter(e,t))}}exports.PdfWebWorkerClient=PdfWebWorkerClient;class PdfWebWorker{static initExportGrid(){PdfWebWorker.initExport((e,t)=>{var r=t[""];if(r.progressMessaging){r.settings._progressMax=FlexGridPdfConverter._DefaultExportSettings._progressMax;r.settings.progress=e=>{PdfWebWorker.sendExportProgress(e)};e.ended.addHandler(()=>{PdfWebWorker.sendExportProgress(1)})}FlexGridPdfConverter.draw(r.content,e,null,null,r.settings);e.end()})}static initExport(e){self.addEventListener("message",(function handler(t){self.removeEventListener("message",handler);const r=t.data,o=JSON.parse(bufToStr(r.content)),l=r.settings||{};l.ended=(e,t)=>{blobToBuf(t.blob,e=>{self.postMessage({data:e,status:PdfWebWorkerResponseStatus.Done},[e])})};const n=new pdf.PdfDocument(l);Object.keys(o).forEach(e=>{const t=o[e];t.settings&&(t.settings=JSON.parse(t.settings));if(t.isGrid){t.settings&&PdfWebWorker._disableUnsupportedFeatures(t.settings);t.content=PdfWebWorker._deserializeGridFromString(t.content,t.settings)}});e(n,o)}))}static sendExportProgress(e){e=wijmo_1.clamp(e,0,1);self.postMessage({data:e,status:PdfWebWorkerResponseStatus.Progress})}static deserializeGrid(e,t){return PdfWebWorker._deserializeGridFromString(bufToStr(e),t)}static _deserializeGridFromString(e,t){return PdfWebWorker._getJsonAdapter(JSON.parse(e),FlexGridPdfConverter._applyDefaultExportSettings(t))}static _disableUnsupportedFeatures(e){e.customCellContent=!1}static _getJsonAdapter(e,t){switch(e.typeName){case"MultiRow":return new MultiRowJsonAdapter(e,t);case"PivotGrid":return new PivotGridJsonAdapter(e,t);case"TransposedGrid":return new TransposedGridJsonAdapter(e,t);case"TransposedMultiRow":return new TransposedMultiRowJsonAdapter(e,t);default:return new FlexGridJsonAdapter(e,t)}}}exports.PdfWebWorker=PdfWebWorker;function bufToStr(e){var t=new Uint16Array(e),r="";for(let e=0,o=t.length;e<o;e++)r+=String.fromCharCode(t[e]);return r}function strToBuf(e){var t=new ArrayBuffer(2*e.length),r=new Uint16Array(t);for(let t=0,o=e.length;t<o;t++)r[t]=e.charCodeAt(t);return t}function blobToBuf(e,t){wijmo_1.asFunction(t);var r=new FileReader;r.onload=e=>{t(e.target.result)};r.readAsArrayBuffer(e)}var RowState,ColState;!function(e){e[e.None=0]="None";e[e.Alternate=1]="Alternate";e[e.Group=2]="Group";e[e.ExpandableGroup=4]="ExpandableGroup";e[e.New=8]="New";e[e.Visible=16]="Visible";e[e.Detail=32]="Detail"}(RowState||(RowState={}));!function(e){e[e.None=0]="None";e[e.Visible=1]="Visible"}(ColState||(ColState={}));class FlexGridJsonConverter{constructor(e,t,r){this._flex=e;this._settings=t;this._adapter=r}convert(){var e={};e.typeName=this._getTypeName(this._flex);e.selection=this._serializeSelection();e.showColumnFooter=this.adapter.showColumnFooter;e.showColumnHeader=this.adapter.showColumnHeader;e.showRowHeader=this.adapter.showRowHeader;e.treeIndent=this._flex.treeIndent;e.bottomLeftCells=this._serializePanel(this._flex.bottomLeftCells);e.cells=this._serializePanel(this._flex.cells);e.columnFooters=this._serializePanel(this._flex.columnFooters);e.columnHeaders=this._serializePanel(this._flex.columnHeaders);e.rowHeaders=this._serializePanel(this._flex.rowHeaders);e.topLeftCells=this._serializePanel(this._flex.topLeftCells);return e}get adapter(){return this._adapter}get flex(){return this._flex}_getConstructorName(e){let t=e.constructor.name;t=t.replace(/\d+$/g,"");return t}_getTypeName(e){const t=new Set(["MultiRow","PivotGrid","TransposedGrid","TransposedMultiRow","FlexGrid"]);let r=e;for(;r;){const e=this._getConstructorName(r);if(t.has(e))return e;r=r.constructor.prototype.__proto__}return e.constructor.name}_getRowState(e){var t=RowState.None;this.adapter.isAlternatingRow(e)&&(t|=RowState.Alternate);e instanceof softGrid().GroupRow&&(t|=RowState.Group);this.adapter.isDetailRow(e)&&(t|=RowState.Detail);this.adapter.isExpandableGroupRow(e)&&(t|=RowState.ExpandableGroup);e instanceof softGrid()._NewRowTemplate&&(t|=RowState.New);e.isVisible&&(t|=RowState.Visible);return t}_getColumnState(e){var t=ColState.None;e.isVisible&&(t|=ColState.Visible);return t}_serializeSelection(){const e=this.adapter.getSelection(),t=[];for(let r=0;r<e.length;r++){const o=e[r];t.push([o.row,o.col,o.row2,o.col2])}return t}_serializeColumns(e){const t=[];for(let r=0,o=(e||[]).length;r<o;r++){let o=e[r],l=null;if(o){l={aggregate:o.aggregate,renderWidth:o.renderWidth,visibleIndex:o.visibleIndex};const e=o.getAlignment();e&&(l.alignment=e);const t=this._getColumnState(o);t!==ColState.None&&(l.state=t);o.binding&&(l.binding=o.binding);null!=o.dataType&&(l.dataType=o.dataType);null!=o.name&&(l.name=o.name);o.wordWrap&&(l.wordWrap=!0);o.multiLine&&(l.multiLine=!0)}t.push(l)}return t}_serializePanel(e){const t={cellType:e.cellType,height:e.height,width:e.width},getAlignment=e=>{if(e.align)return e.align;if(!e.dataMap)switch(e.dataType){case wijmo_1.DataType.Boolean:return"center";case wijmo_1.DataType.Number:return"right"}return null};t.mergedRanges=this._serializeMergedRanges(e);t.columns=this._serializeColumns(e.columns);t.columnsFirstVisibleIndex=e.columns.firstVisibleIndex;t.rows=[];t.rowsMaxGroupLevel=e.rows.maxGroupLevel;const r=!this._settings.customCellContent&&this._flex._getShowErrors();for(let o=0,l=e.rows.length,n=e.columns.length;o<l;o++){const l=e.rows[o],i={renderHeight:l.renderHeight};t.rows.push(i);const s=getAlignment(l);s&&(i.alignment=s);l instanceof softGrid().GroupRow&&(i.level=l.level);const a=this._getRowState(l);a!==RowState.None&&(i.state=a);l.binding&&(i.binding=l.binding);null!=l.dataType&&(i.dataType=l.dataType);l.wordWrap&&(i.wordWrap=!0);l.multiLine&&(i.multiLine=!0);i.cells=[];const d=softGrid();for(let t=0;t<n;t++){let l=this._adapter.getCellContent(e,e.rows[o],e.columns[t],t);if(wijmo_1.isFunction(this._settings.formatItem)){const r=new PdfFormatItemEventArgs(e,new d.CellRange(o,t),null,null,null,null,null,()=>this._adapter.getCell(e,o,t,!0),null);r.data=l;this._settings.formatItem(r);r.data!==l&&(l=r.data)}i.cells[t]=l;if(r&&this._flex._getError(e,o,t)){i.errors||(i.errors={});i.errors[t]=1}}}return t}_serializeMergedRanges(e){const t=[],r=[];let o,l,n,i,s;for(o=0;o<e.columns.length;o++)r[o]=0;for(l=0;l<e.rows.length;l++)for(n=0;n<e.columns.length;n++)if(!(l<r[n])){i=e.grid.getMergedRange(e,l,n);if(null!=i&&!i.isSingleCell){t.push([i.row,i.col,i.row2,i.col2]);for(s=i.col;s<=i.col2;s++)r[s]=i.row2+1;i.col!==i.col2&&(n=i.col2)}}return t}}class MultiRowJsonConverter extends FlexGridJsonConverter{convert(){const e=super.convert();e.rowsPerItem=this.flex.rowsPerItem;return e}_serializePanel(e){const t=super._serializePanel(e);t.cellGroups=this._serializeCellGroup(e);return t}_serializeCellGroup(e){const t=[],r=[],o=softGrid();let l=this.flex.rowsPerItem;e.cellType!==o.CellType.TopLeft&&e.cellType!==o.CellType.ColumnHeader||(l=e.rows.length);for(let o=0;o<l;o++){r[o]=[];for(let l=0;l<e.columns.length;l++){const n=this.flex.getBindingColumn(e,o,l),i=t.indexOf(n);r[o][l]=i<0?t.push(n)-1:i}}return{bindingColumns:this._serializeColumns(t),mappings:r}}}class PivotGridJsonConverter extends FlexGridJsonConverter{convert(){const e=super.convert();e.centerHeadersVertically=this.flex.centerHeadersVertically;return e}}class TransposedGridJsonConverter extends FlexGridJsonConverter{convert(){const e=super.convert(),t=new Array(this.flex.cells.rows.length),r=this.flex.cells,o=softGrid();let l,n,i,s;for(l=0,n=r.rows.length;l<n;l++){i=r.rows[l].dataItem;s=i&&i._rowInfo;s instanceof o.Column||(s=_combineColumns(s,s));t[l]=s}e.rowInfo=this._serializeColumns(t);return e}}class TransposedMultirowJsonConverter extends FlexGridJsonConverter{convert(){const e=super.convert();e.cellGroups=this._serializeCellGroup();e.columnsPerItem=this.flex.columnsPerItem;return e}_serializeCellGroup(){const e=[],t=[],r=this.flex.columnsPerItem,o=this.flex.cells;for(let l=0;l<o.rows.length;l++){t[l]=[];for(let n=0;n<r;n++){const r=this.flex.getBindingColumn(o,l,n),i=e.indexOf(r);t[l][n]=i<0?e.push(r)-1:i}}return{bindingColumns:this._serializeColumns(e),mappings:t}}}class RowJson{constructor(e,t){this.index=t;this.binding=e.binding;this.dataType=e.dataType;this.alignment=e.alignment;this.level=e.level;this.renderHeight=e.renderHeight;this.cells=e.cells;this.wordWrap=e.wordWrap||!1;this.multiLine=e.multiLine||!1;this.errors=e.errors;this._state=e.state}get isAlternatingRow(){return(this._state&RowState.Alternate)!==RowState.None}get isGroupRow(){return(this._state&RowState.Group)!==RowState.None}get isDetailRow(){return(this._state&RowState.Detail)!==RowState.None}get isExpandableGroupRow(){return(this._state&RowState.ExpandableGroup)!==RowState.None}get isNewRow(){return(this._state&RowState.New)!==RowState.None}get isVisible(){return(this._state&RowState.Visible)!==RowState.None}}class ColumnJson{constructor(e,t){this.index=t;this.binding=e.binding;this.dataType=e.dataType;this.aggregate=e.aggregate;this.name=e.name;this.renderWidth=e.renderWidth;this.visibleIndex=e.visibleIndex;this.wordWrap=e.wordWrap||!1;this.multiLine=e.multiLine||!1;this._alignment=e.alignment;this._state=e.state}getAlignment(e){return this._alignment?this._alignment:e&&e.alignment?e.alignment:""}get isVisible(){return(this._state&ColState.Visible)!==ColState.None}}class RowJsonCollection{constructor(e,t=-1){this.maxGroupLevel=t;this.length=e.length;for(let t=0;t<e.length;t++)this[t]=new RowJson(e[t],t)}}class ColumnJsonCollection{constructor(e,t=-1){this.firstVisibleIndex=t;this.length=e.length;for(let t=0;t<e.length;t++){const r=e[t];this[t]=r?new ColumnJson(e[t],t):null}}}class GridJsonPanel{constructor(e){this.height=e.height;this.width=e.width;this.cellType=e.cellType;this.columns=new ColumnJsonCollection(e.columns,e.columnsFirstVisibleIndex);this.rows=new RowJsonCollection(e.rows,e.rowsMaxGroupLevel);this._mergedRanges=this._deserializeMergedRanges(e.mergedRanges)}getCellData(e,t){return this.rows[e].cells[t]}getMergedRange(e,t){const r=this._mergedRanges[e];if(r)for(let e=0,o=r.length;e<o;e++){const o=r[e];if(t>=o.col&&t<=o.col2)return o}return null}_deserializeMergedRanges(e){const t=[];e=e||[];for(let e=0,r=this.rows.length;e<r;e++)t[e]=[];for(let r=0,o=e.length;r<o;r++){const o=e[r],l=new _CellRange(o[0],o[1],o[2],o[3]);for(let e=l.row;e<=l.row2;e++)t[e].push(l)}return t}}class FlexGridJsonAdapter{constructor(e,t){this.settings=t;this.bottomLeftCells=this.deserializePanel(e.bottomLeftCells);this.cells=this.deserializePanel(e.cells);this.columnFooters=this.deserializePanel(e.columnFooters);this.columnHeaders=this.deserializePanel(e.columnHeaders);this.rowHeaders=this.deserializePanel(e.rowHeaders);this.topLeftCells=this.deserializePanel(e.topLeftCells);this.treeIndent=e.treeIndent;this.showColumnFooter=e.showColumnFooter;this.showColumnHeader=e.showColumnHeader;this.showRowHeader=e.showRowHeader;this._selection=[];for(let t=0;t<e.selection.length;t++){const r=e.selection[t];this._selection.push(new _CellRange(r[0],r[1],r[2],r[3]))}}get columns(){return this.cells.columns}get rows(){return this.cells.rows}getSelection(){return this._selection}getCell(e,t,r,o){throw"Not implemented"}getComputedDefBorderColor(){throw"Not implemented"}getComputedStyle(e,t){throw"Not implemented"}getMergedRange(e,t,r){return e.getMergedRange(t,r)}alignMergedTextToTheTopRow(e){return!1}getCellData(e,t,r){return e.getCellData(t,r)}getCellContent(e,t,r,o){return this.getCellData(e,t.index,o)}isBooleanCell(e,t,r){return r.dataType===wijmo_1.DataType.Boolean&&e.cellType===_CellType.Cell&&!this.isExpandableGroupRow(t)}getColumn(e,t,r){return e.columns[r]}isAlternatingRow(e){return e.isAlternatingRow}isGroupRow(e){return e.isGroupRow}isNewRow(e){return e.isNewRow}isDetailRow(e){return e.isDetailRow}isExpandableGroupRow(e){return e.isExpandableGroupRow}isRenderableRow(e){return e.isVisible&&e.renderHeight>0&&!this.isNewRow(e)}isRenderableColumn(e){return e.isVisible&&e.renderWidth>0}getCellStyle(e,t,r){var o=this.settings.styles,l=_merge({},o.cellStyle);switch(e.cellType){case _CellType.Cell:this.isExpandableGroupRow(t)?_merge(l,o.groupCellStyle,!0):this.isAlternatingRow(t)&&_merge(l,o.altCellStyle,!0);break;case _CellType.ColumnHeader:case _CellType.RowHeader:case _CellType.TopLeft:case _CellType.BottomLeft:_merge(l,o.headerCellStyle,!0);break;case _CellType.ColumnFooter:_merge(l,o.headerCellStyle,!0);_merge(l,o.footerCellStyle,!0)}t.errors&&t.errors[r.index]&&_merge(l,o.errorCellStyle,!0);return l}deserializePanel(e){return new GridJsonPanel(e)}}class PivotGridJsonAdapter extends FlexGridJsonAdapter{constructor(e,t){super(e,t);this._centerHeadersVertically=e.centerHeadersVertically}alignMergedTextToTheTopRow(e){return!this._centerHeadersVertically&&(e.cellType===_CellType.ColumnHeader||e.cellType===_CellType.RowHeader)}}class MultiRowJsonPanel extends GridJsonPanel{constructor(e){super(e);e.cellGroups&&(this._cellGroups={bindingColumns:new ColumnJsonCollection(e.cellGroups.bindingColumns),mappings:e.cellGroups.mappings})}getColumn(e,t,r){const o=this.columns[t];let l;if(this._cellGroups){this.cellType!==_CellType.ColumnHeader&&this.cellType!==_CellType.BottomLeft&&(e%=r);l=this._cellGroups.bindingColumns[this._cellGroups.mappings[e][t]];return _combineColumns(o,l)}return o}}class MultiRowJsonAdapter extends FlexGridJsonAdapter{constructor(e,t){super(e,t);this._rowsPerItem=e.rowsPerItem}deserializePanel(e){return new MultiRowJsonPanel(e)}getColumn(e,t,r){return e.getColumn(t,r,this._rowsPerItem)}}class TransposedGridJsonAdapter extends FlexGridJsonAdapter{constructor(e,t){super(e,t);this._rowInfo=new ColumnJsonCollection(e.rowInfo)}getColumn(e,t,r){const o=super.getColumn(e,t,r);if(e.cellType!==_CellType.Cell)return o;{const e=this._rowInfo[t];return e?_combineColumns(o,e):o}}}class TransposedMultiRowJsonAdapter extends FlexGridJsonAdapter{constructor(e,t){super(e,t);this._columnsPerItem=e.columnsPerItem;e.cellGroups&&(this._cellGroups={bindingColumns:new ColumnJsonCollection(e.cellGroups.bindingColumns),mappings:e.cellGroups.mappings})}getColumn(e,t,r){const o=super.getColumn(e,t,r);if(this._cellGroups&&e.cellType===_CellType.Cell){r%=this._columnsPerItem;return _combineColumns(o,this._cellGroups.bindingColumns[this._cellGroups.mappings[t][r]])}return o}}wijmo_1._registerModule("wijmo.grid.pdf",selfModule);
|
|
14
|
+
"use strict";var __importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);t.default=e;return t};Object.defineProperty(exports,"__esModule",{value:!0});const wijmo_1=require("@grapecity/wijmo"),pdf=__importStar(require("@grapecity/wijmo.pdf")),selfModule=__importStar(require("@grapecity/wijmo.grid.pdf"));function softGrid(){return wijmo_1._getModule("wijmo.grid")}exports.softGrid=softGrid;function softDetail(){return wijmo_1._getModule("wijmo.grid.detail")}exports.softDetail=softDetail;function softMultiRow(){return wijmo_1._getModule("wijmo.grid.multirow")}exports.softMultiRow=softMultiRow;function softSheet(){return wijmo_1._getModule("wijmo.grid.sheet")}exports.softSheet=softSheet;function softOlap(){return wijmo_1._getModule("wijmo.olap")}exports.softOlap=softOlap;function softTransposed(){return wijmo_1._getModule("wijmo.grid.transposed")}exports.softTransposed=softTransposed;function softTransposedMultiRow(){return wijmo_1._getModule("wijmo.grid.transposedmultirow")}exports.softTransposedMultiRow=softTransposedMultiRow;class PdfFormatItemEventArgs extends wijmo_1.CancelEventArgs{constructor(e,t,r,o,l,n,i,s,a){super();this.cancelBorders=!1;this._p=e;this._rng=t;"undefined"!=typeof HTMLElement&&(this._cell=wijmo_1.asType(r,HTMLElement,!0));this._canvas=o;this._clientRect=l;this._contentRect=n;this._style=i;this._getFormattedCell=s;this._getTextRect=a}get panel(){return this._p}get range(){return this._rng.clone()}get row(){return this._rng.row}get col(){return this._rng.col}get data(){return this._data}set data(e){this._data=e}get canvas(){return this._canvas}get cell(){return this._cell}get clientRect(){return this._clientRect}get contentRect(){return this._contentRect}drawBackground(e){const t=this.clientRect;e&&t.width>0&&t.height>0&&this.canvas.paths.rect(t.left,t.top,t.width,t.height).fill(e||this.style.backgroundColor)}getFormattedCell(){return wijmo_1.asFunction(this._getFormattedCell)()}get tagContent(){return this._tagContent}set tagContent(e){this._tagContent=e}get style(){return this._style}get textTop(){!this._textRect&&wijmo_1.isFunction(this._getTextRect)&&(this._textRect=this._getTextRect());return this._textRect?this._textRect.top:this._contentRect.top}}exports.PdfFormatItemEventArgs=PdfFormatItemEventArgs;var ScaleMode,ExportMode,_CellType,_fc;!function(e){e[e.ActualSize=0]="ActualSize";e[e.PageWidth=1]="PageWidth";e[e.SinglePage=2]="SinglePage"}(ScaleMode=exports.ScaleMode||(exports.ScaleMode={}));!function(e){e[e.All=0]="All";e[e.Selection=1]="Selection"}(ExportMode=exports.ExportMode||(exports.ExportMode={}));!function(e){e[e.None=0]="None";e[e.Cell=1]="Cell";e[e.ColumnHeader=2]="ColumnHeader";e[e.RowHeader=3]="RowHeader";e[e.TopLeft=4]="TopLeft";e[e.ColumnFooter=5]="ColumnFooter";e[e.BottomLeft=6]="BottomLeft"}(_CellType=exports._CellType||(exports._CellType={}));function _merge(e,t,r=!1){!e&&t&&(e={});if(t&&e)for(var o in t){let l=t[o],n=e[o];if(wijmo_1.isObject(l)){if(void 0===n||!wijmo_1.isObject(n)&&r){if(wijmo_1.isFunction(l.clone)){e[o]=n=l.clone();continue}e[o]=n={}}wijmo_1.isObject(n)&&_merge(e[o],l,r)}else(void 0===n||r&&void 0!==l)&&(e[o]=l)}return e}exports._merge=_merge;function _combineColumns(e,t){return{aggregate:t.aggregate,binding:t.binding,name:t.name,dataType:t.dataType,wordWrap:t.wordWrap,multiLine:t.multiLine,getAlignment:e=>{if("getAlignment"in t)return t.getAlignment(e)},index:e.index,visibleIndex:e.visibleIndex,isVisible:e.isVisible,renderWidth:e.renderWidth}}exports._combineColumns=_combineColumns;function _cloneStyle(e){if(!e)return null;var t={},toCamel=e=>e.replace(/-([a-z])/g,(e,t,r)=>r>0?t.toUpperCase():t);for(let r=0,o=e.length;r<o;r++){const o=e[r];t[toCamel(o)]=e.getPropertyValue(o)}return t}exports._cloneStyle=_cloneStyle;class _FlexGridPdfCoreConverter{static draw(e,t,r,o,l,n){wijmo_1.assert(!!e,"The flex argument cannot be null.");wijmo_1.assert(!!t,"The doc argument cannot be null.");null==(n=_FlexGridPdfCoreConverter._applyDefaultDrawSettings(n)).scaleMode&&(n.scaleMode=null==o?ScaleMode.ActualSize:null==l?ScaleMode.PageWidth:ScaleMode.SinglePage);_FlexGridPdfCoreConverter._drawInternal(e,t,r,o,l,n)}static _applyDefaultDrawSettings(e){return _merge(_merge({},e),_FlexGridPdfCoreConverter.DefaultDrawSettings)}static _drawInternal(e,t,r,o,l,n){const i=null!=r,s=new wijmo_1.Size(t.width,t.height);r||(r=new wijmo_1.Point(0,t.y));wijmo_1.isArray(n.embeddedFonts)&&n.embeddedFonts.forEach(e=>{t.registerFont(e)});const a=_FlexGridPdfCoreConverter._getRowsToRender(e,n),d=new FlexGridRenderer(e,n,a,_FlexGridPdfCoreConverter.BorderWidth,!0);let h=new wijmo_1.Rect(r.x||0,r.y||0,o||s.width,l||s.height);const c=_FlexGridPdfCoreConverter._getScaleFactor(d,n.scaleMode,h);if(r.y>0&&_FlexGridPdfCoreConverter._canBreakRows(n.scaleMode)){const n=a.find(e.cells,e=>d.isRenderableRow(e));if(n){const i=(h.height-h.top)*(1/c);if((d.showColumnHeader?pdf.pxToPt(e.columnHeaders.height):0)+pdf.pxToPt(n.renderHeight)-_FlexGridPdfCoreConverter.BorderWidth>i){t.addPage();h=new wijmo_1.Rect(r.x||0,0,o||s.width,l||s.height)}}}n._mergedCellTextState={};const g=_FlexGridPdfCoreConverter._getPages(d,a,h,n,i,c),u=(n.progress?_FlexGridPdfCoreConverter._getCellsCount(e,n,g):0)/n._progressMax;let f=0,p=0;const _=n.progress?()=>{if(++f-p>=50){p=f;n.progress(f/u)}}:null;n.progress&&n.progress(0);for(let r=0;r<g.length;r++){r>0&&t.addPage();const o=g[r],l=0===o.pageCol?h.left:0,i=0===o.pageRow?h.top:0;t.saveState();t.paths.rect(0,0,t._widthCtm,t._heightCtm).clip();t.scale(c,c,new wijmo_1.Point(l,i));t.translate(l,i);const s=new FlexGridRenderer(e,n,o.range,_FlexGridPdfCoreConverter.BorderWidth,r===g.length-1);s.render(t,_);t.restoreState();t.x=l;t.y=i+s.renderSize.height*c}n.progress&&0<n._progressMax&&n.progress(n._progressMax)}static _getCellsCount(e,t,r){var o=0;for(let l=0;l<r.length;l++){o+=new FlexGridRenderer(e,t,r[l].range,0,!1).getCellsCount()}return o}static _getRowsToRender(e,t){var r=[];t.exportMode==ExportMode.All?r.push(new _CellRange(0,0,e.rows.length-1,e.columns.length-1)):r=e.getSelection();var o=new RowRange(r);if(o.isValid&&!t.drawDetailRows){const t=[];o.forEach(e.cells,(r,o,l)=>{if(!e.isDetailRow(r)){const e=t.length;e&&t[e-1].bottomRow+1===l?t[e-1].row2++:t.push(new _CellRange(l,o.col,l,o.col2))}});o=new RowRange(t)}return o}static _getScaleFactor(e,t,r){let o=1;if(t==ScaleMode.ActualSize)return o;const l=e.renderSize;let n;if(t==ScaleMode.SinglePage){n=Math.min(r.width/l.width,r.height/l.height);n<1&&(o=n)}else{n=r.width/l.width;n<1&&(o=n)}return o}static _canBreakRows(e){return e==ScaleMode.ActualSize||e==ScaleMode.PageWidth}static _getPages(e,t,r,o,l,n){let i=[],s=[],a=pdf.pxToPt,d=e.flex,h=e.showColumnHeader,c=e.showColumnFooter,g=e.showRowHeader,u=h?a(d.columnHeaders.height):0,f=c?a(d.columnFooters.height):0,p=g?a(d.rowHeaders.width):0,_=_FlexGridPdfCoreConverter._canBreakRows(o.scaleMode),w=o.scaleMode==ScaleMode.ActualSize,C=(r.width-r.left)*(1/n),m=(r.height-r.top)*(1/n),R=r.width*(1/n),x=r.height*(1/n),b=u,S=p,T=l&&o.scaleMode==ScaleMode.ActualSize,y=m;if(_){let r=0,o=0;t.forEach(d.cells,(t,l,n,s)=>{y=i.length?x:m;if(e.isRenderableRow(t)){const e=a(t.renderHeight)+1;r++;b+=e;(h||r>1)&&(b-=_FlexGridPdfCoreConverter.BorderWidth);if(b>y){if(T||u+e>y&&0===o){i.push(s);b=u}else{i.push(s-1);b=u+e}o=0;h&&(b-=_FlexGridPdfCoreConverter.BorderWidth)}else o++}})}const P=Math.max(t.length()-1,0);i.length&&i[i.length-1]===P||i.push(P);c&&b+f>y&&i.push(-1);if(w){let r=0;for(let o=t.leftCol;o<=t.rightCol;o++){const t=d.columns[o];if(e.isRenderableColumn(t)){const e=a(t.renderWidth),l=s.length?R:C;r++;S+=e;(g||r>1)&&(S-=_FlexGridPdfCoreConverter.BorderWidth);if(S>l){if(p+e>l||T){s.push(o);S=p}else{s.push(o-1);S=p+e}g&&(S-=_FlexGridPdfCoreConverter.BorderWidth)}}}}s.length&&s[s.length-1]===t.rightCol||s.push(t.rightCol);let G=[],v=!1,F=1,M=l&&o.maxPages>0?1:o.maxPages;for(let e=0;e<i.length&&!v;e++)for(let r=0;r<s.length&&!v;r++,F++){v=F>M;if(!v){const o=0===e?0:i[e-1]+1,l=0===r?t.leftCol:s[r-1]+1,n=-1===i[e]?new RowRange([new _CellRange(-1,l,-1,s[r])]):t.subrange(o,i[e]-o+1,l,s[r]);G.push(new PdfPageRowRange(n,r,e))}}return G}}_FlexGridPdfCoreConverter.BorderWidth=1;_FlexGridPdfCoreConverter.DefFont=new pdf.PdfFont;_FlexGridPdfCoreConverter.DefaultDrawSettings={customCellContent:!1,drawDetailRows:!1,exportMode:ExportMode.All,maxPages:Number.MAX_VALUE,repeatMergedValuesAcrossPages:!0,recalculateStarWidths:!0,styles:{cellStyle:{font:{family:_FlexGridPdfCoreConverter.DefFont.family,size:_FlexGridPdfCoreConverter.DefFont.size,style:_FlexGridPdfCoreConverter.DefFont.style,weight:_FlexGridPdfCoreConverter.DefFont.weight},padding:1.5,verticalAlign:"middle"},headerCellStyle:{font:{weight:"bold"}}},quickCellStyles:!0,_progressMax:1};exports._FlexGridPdfCoreConverter=_FlexGridPdfCoreConverter;class FlexGridRenderer{constructor(e,t,r,o,l){this._flex=e;this._borderWidth=o;this._lastPage=l;this._settings=t||{};this._topLeft=new PanelSectionRenderer(this,e.topLeftCells,this.showRowHeader&&this.showColumnHeader?new RowRange([new _CellRange(0,0,e.topLeftCells.rows.length-1,e.topLeftCells.columns.length-1)]):new RowRange([]),o);this._rowHeader=new PanelSectionRenderer(this,e.rowHeaders,this.showRowHeader?r.clone(0,e.rowHeaders.columns.length-1):new RowRange([]),o);this._columnHeader=new PanelSectionRenderer(this,e.columnHeaders,this.showColumnHeader?new RowRange([new _CellRange(0,r.leftCol,e.columnHeaders.rows.length-1,r.rightCol)]):new RowRange([]),o);this._cells=new PanelSectionRenderer(this,e.cells,r,o);this._bottomLeft=new PanelSectionRenderer(this,e.bottomLeftCells,this.showRowHeader&&this.showColumnFooter?new RowRange([new _CellRange(0,0,e.bottomLeftCells.rows.length-1,e.bottomLeftCells.columns.length-1)]):new RowRange([]),o);this._columnFooter=new PanelSectionRenderer(this,e.columnFooters,this.showColumnFooter?new RowRange([new _CellRange(0,r.leftCol,e.columnFooters.rows.length-1,r.rightCol)]):new RowRange([]),o)}get settings(){return this._settings}isRenderableRow(e){return this._flex.isRenderableRow(e)}isRenderableColumn(e){return this._flex.isRenderableColumn(e)}getCellsCount(){return this._topLeft.getCellsCount()+this._rowHeader.getCellsCount()+this._columnHeader.getCellsCount()+this._cells.getCellsCount()+this._bottomLeft.getCellsCount()+this._columnFooter.getCellsCount()}render(e,t){let r,o,l,n;if(e.tagged){r=o=l=n=new TrStructCache(e,e.tag(pdf.PdfTagType.Table));e.addTag(r.el);if(e.version>=pdf.PdfVersion.v1_5){o=new TrStructCache(e,e.tag(pdf.PdfTagType.THead));r.el.add(o.el);l=new TrStructCache(e,e.tag(pdf.PdfTagType.TBody));r.el.add(l.el);n=new TrStructCache(e,e.tag(pdf.PdfTagType.TFoot));r.el.add(n.el)}}let i=Math.max(0,Math.max(this._topLeft.renderSize.width,this._rowHeader.renderSize.width)-this._borderWidth),s=Math.max(0,Math.max(this._topLeft.renderSize.height,this._columnHeader.renderSize.height)-this._borderWidth);this._topLeft.render(e,0,0,t,o);this._rowHeader.render(e,0,s,t,l);this._columnHeader.render(e,i,0,t,o);this._cells.render(e,i,s,t,l);s+=Math.max(0,this._cells.renderSize.height-this._borderWidth);this._bottomLeft.render(e,0,s,t,n);this._columnFooter.render(e,i,s,t,n)}get flex(){return this._flex}get renderSize(){var e=Math.max(this._topLeft.renderSize.height,this._columnHeader.renderSize.height)+Math.max(this._rowHeader.renderSize.height,this._cells.renderSize.height)+Math.max(this._bottomLeft.renderSize.height,this._columnFooter.renderSize.height),t=Math.max(this._topLeft.renderSize.width,this._rowHeader.renderSize.width)+Math.max(this._columnHeader.renderSize.width,this._cells.renderSize.width);this._columnHeader.renderableRowsCount>0&&(e-=this._borderWidth);this._columnFooter.renderableRowsCount>0&&(e-=this._borderWidth);this._rowHeader.renderableColumnsCount>0&&(t-=this._borderWidth);return new wijmo_1.Size(t,e)}get showColumnHeader(){return this._flex.showColumnHeader}get showRowHeader(){return this._flex.showRowHeader}get showColumnFooter(){return this._lastPage&&this._flex.showColumnFooter}alignMergedTextToTheTopRow(e){return this._flex.alignMergedTextToTheTopRow(e)}getColumn(e,t,r){return this._flex.getColumn(e,t,r)}isAlternatingRow(e){return this._flex.isAlternatingRow(e)}isGroupRow(e){return this._flex.isGroupRow(e)}isNewRow(e){return this._flex.isNewRow(e)}isExpandableGroupRow(e){return this._flex.isExpandableGroupRow(e)}isBooleanCell(e,t,r){return this._flex.isBooleanCell(e,t,r)}getCellStyle(e,t,r){return this._flex.getCellStyle(e,t,r)}}class PanelSection{constructor(e,t,r){this._flex=e;this._panel=t;this._range=r.clone()}get renderableRowsCount(){if(null==this._renderableRowsCnt){this._renderableRowsCnt=0;this._range.forEach(this._panel,e=>{this._flex.isRenderableRow(e)&&this._renderableRowsCnt++})}return this._renderableRowsCnt}get renderableColumnsCount(){if(null==this._renderableColumnsCnt){this._renderableColumnsCnt=0;if(this._range.isValid)for(let e=this._range.leftCol;e<=this._range.rightCol;e++)this._flex.isRenderableColumn(this._panel.columns[e])&&this._renderableColumnsCnt++}return this._renderableColumnsCnt}get size(){if(null==this._size){const e=this._range.getRenderSize(this._flex,this._panel);this._size=new wijmo_1.Size(pdf.pxToPt(e.width),pdf.pxToPt(e.height))}return this._size}get range(){return this._range}get panel(){return this._panel}}class PanelSectionRenderer extends PanelSection{constructor(e,t,r,o){super(e.flex,t,r);this._gr=e;this._borderWidth=o}get gr(){return this._gr}get renderSize(){if(null==this._renderSize){this._renderSize=this.size.clone();this.renderableColumnsCount>1&&(this._renderSize.width-=this._borderWidth*(this.renderableColumnsCount-1));this.renderableRowsCount>1&&(this._renderSize.height-=this._borderWidth*(this.renderableRowsCount-1))}return this._renderSize}_getRangeWidth(e,t){let r=0,o=0;const l=this.panel;for(let n=e;n<=t;n++){const e=l.columns[n];if(this._gr.isRenderableColumn(e)){o++;r+=e.renderWidth}}r=pdf.pxToPt(r);o>1&&(r-=this._borderWidth*(o-1));return r}_getRangeHeight(e,t){let r=0,o=0;const l=this.panel;for(let n=e;n<=t;n++){const e=l.rows[n];if(this._gr.isRenderableRow(e)){o++;r+=e.renderHeight}}r=pdf.pxToPt(r);o>1&&(r-=this._borderWidth*(o-1));return r}getCellsCount(){let e=0;const t=this.range,r=this.panel,o=new GetMergedRangeProxy(this._gr.flex);if(!t.isValid)return e;t.forEach(r,(l,n,i)=>{if(this._gr.isRenderableRow(l))for(let l=t.leftCol;l<=t.rightCol;l++){if(!this._gr.isRenderableColumn(r.columns[l]))continue;let s,a=!1;const d=o.getMergedRange(r,i,l);if(d){const e=i===d.firstVisibleRow,r=l===d.leftCol,o=i===n.topRow,h=l===n.leftCol,c=d.rowSpan>1,g=d.columnSpan>1;if(c&&g&&(e&&r||o&&h)||c&&!g&&(e||o)||!c&&g&&(r||h)){a=!0;g&&(s=Math.min(t.rightCol,d.rightCol))}}else a=!0;a&&e++;s&&(l=s)}});return e}render(e,t,r,o,l){const n=this.range;if(!n.isValid)return;const i={},s=this.panel,a=new GetMergedRangeProxy(this._gr.flex),d=new _CellRangeExt(s,0,0,0,0),h=new _CellRenderer(this,e,this._borderWidth);for(let e=n.leftCol;e<=n.rightCol;e++)i[e]=r;n.forEach(s,(r,c,g)=>{if(!this._gr.isRenderableRow(r))return;const u=l?l.getTR(g,s.cellType):null;let f=t;for(let t=n.leftCol;t<=n.rightCol;t++){const l=this.gr.getColumn(s,g,t);if(!this._gr.isRenderableColumn(l))continue;let p,_,w,C,m,R=!1;const x=this._gr.flex.getCellContent(this.panel,r,l,t),b=a.getMergedRange(s,g,t);if(b){if(g>=b.topRow){d.copyFrom(b);const e=g===b.firstVisibleRow,r=t===b.leftCol,o=g===c.topRow,l=t===c.leftCol,s=b.rowSpan>1,a=b.columnSpan>1;if(s&&a&&(e&&r||o&&l)||s&&!a&&(e||o)||!s&&a&&(r||l)){R=!0;m=b.topRow>=c.topRow&&b.bottomRow<=c.bottomRow?null:`${b.firstVisibleRow}_${b.leftCol}`;if(this.gr.settings.repeatMergedValuesAcrossPages)w=x;else if(e&&r)w=x;else{const e=this.gr.settings._mergedCellTextState,t=e&&e[m]||0;w=t>0&&x?x.substring(t):x}p=s?this._getRangeHeight(g,Math.min(b.bottomRow,c.bottomRow)):this._getRangeHeight(g,g);if(a){_=this._getRangeWidth(Math.max(n.leftCol,b.leftCol),Math.min(n.rightCol,b.rightCol));C=Math.min(n.rightCol,b.rightCol);for(let e=t+1;e<=C;e++)i[e]+=p-this._borderWidth}}}else p=this._getRangeHeight(g,g);null==_&&(_=this._getRangeWidth(t,t))}else{d.setRange(g,t,g,t);R=!0;w=x;p=this._getRangeHeight(g,g);_=this._getRangeWidth(t,t)}if(R&&_>0&&p>0){const n=h.renderCell(w,r,l,d,new wijmo_1.Rect(f,i[t],_,p));if(m&&!this.gr.settings.repeatMergedValuesAcrossPages){const e=this.gr.settings._mergedCellTextState;e&&(e[m]=(e[m]||0)+h._lastRenderCharCount)}if(u){const t=e.tag(s.cellType===_CellType.ColumnHeader||s.cellType==_CellType.TopLeft?pdf.PdfTagType.TH:pdf.PdfTagType.TD);n&&t.add(n);u.add(t)}o&&o()}p&&(i[t]+=p-this._borderWidth);_&&(f+=_-this._borderWidth);C&&(t=C)}})}}class TrStructCache{constructor(e,t){this.doc=e;this.tableSection=t;this._trh=[];this._trb=[];this._trf=[]}get el(){return this.tableSection}getTR(e,t){const r=t===_CellType.TopLeft||t===_CellType.ColumnHeader?this._trh:t===_CellType.RowHeader||t===_CellType.Cell?this._trb:this._trf;let o=r[e];if(!o){o=this.doc.tag(pdf.PdfTagType.TR);r[e]=o;this.tableSection.add(o)}return o}}class _CellRenderer{constructor(e,t,r){this.InvisiblePen=new pdf.PdfPen(wijmo_1.Color.fromRgba(0,0,0,0),0);this._lastRenderCharCount=0;this._pr=e;this._area=t;this._borderWidth=r}renderCell(e,t,r,o,l){this._lastRenderCharCount=0;let n;const i=this._pr.gr.flex,s=this._pr.panel,getGridCell=e=>i.getCell(s,o.topRow,o.leftCol,e);let a=null;const d=this._pr.gr.getCellStyle(s,t,r),h=this._pr.gr.settings.customCellContent,c=wijmo_1.isFunction(this._pr.gr.settings.formatItem);if(h){a=getGridCell(c);const e=i.getComputedStyle(s,a);d.color=e.color;d.backgroundColor=e.backgroundColor;const t=i.getComputedDefBorderColor();d.borderLeftColor="none"!=e.borderLeftStyle?e.borderLeftColor:t;d.borderRightColor="none"!=e.borderRightStyle?e.borderRightColor:t;d.borderTopColor="none"!=e.borderTopStyle?e.borderTopColor:t;d.borderBottomColor="none"!=e.borderBottomStyle?e.borderBottomColor:t;d.font=new pdf.PdfFont(e.fontFamily,pdf._asPt(e.fontSize,!0,void 0),e.fontStyle,e.fontWeight);d.textAlign=e.textAlign;d.textDecoration=e.textDecoration}if(d.font&&!(d.font instanceof pdf.PdfFont)){const e=d.font;d.font=new pdf.PdfFont(e.family,e.size,e.style,e.weight)}d.boxSizing="border-box";d.borderWidth=this._borderWidth;d.borderStyle="solid";h||this._pr.gr.isExpandableGroupRow(t)&&r.index===i.treeColumnIndex||(d.textAlign=r.getAlignment(t));if(s.cellType===_CellType.Cell&&i.rows.maxGroupLevel>=0&&o.leftCol===i.treeColumnIndex){const e=i.isGroupRow(t)?Math.max(t.level,0):i.rows.maxGroupLevel+1,r=pdf._asPt(d.paddingLeft||d.padding),o=pdf.pxToPt(e*i.treeIndent);d.paddingLeft=r+o}var g=this._measureCell(e,s,t,r,d,l);const u=o.rowSpan>1&&o.visibleRowsCount>1&&this._pr.gr.alignMergedTextToTheTopRow(s)?new wijmo_1.Rect(g.contentRect.left,g.contentRect.top,g.contentRect.width,g.contentRect.height/(o.visibleRowsCount||1)):g.contentRect;let f,p=!0,_=!0;if(c){n=new PdfFormatItemEventArgs(s,o,a,this._area,g.rect,g.contentRect,d,()=>a||getGridCell(!0),()=>{g.textRect=this._calculateTextRect(e,s,t,r,u,d);return g.textRect});n.data=e;this._pr.gr.settings.formatItem(n);if(n.data!==e){e=wijmo_1.asString(n.data);g.textRect=null}p=!n.cancel;_=!n.cancelBorders;f=n.tagContent}p&&!g.textRect&&(g.textRect=this._calculateTextRect(e,s,t,r,u,d));return this._renderCell(e,t,r,o,g,d,p,_,null==f)||f}_renderCell(e,t,r,o,l,n,i,s,a){if(!i&&!s)return;const d=this._area.document.tagged,h=this._area.document;d&&h.beginArtifact({type:pdf.PdfArtifactType.Layout});this._renderEmptyCell(l,n,i,s);d&&h.endArtifact();let c;if(i){a=!0===d&&!0===a;let o;if(this._isBooleanCellAndValue(e,this._pr.panel,t,r)){if(a){c=h.tag(pdf.PdfTagType.Span,null,{actual:e.toString()});o=h.beginTagContent(pdf.PdfTagType.Span)}this._renderBooleanCell(e,l,n)}else{if(a){c=h.tag(pdf.PdfTagType.P);o=h.beginTagContent(pdf.PdfTagType.P)}this._renderTextCell(e,l,n)}if(a){h.endTagContent();c.add(o)}}return c}_isBooleanCellAndValue(e,t,r,o){return this._pr.gr.isBooleanCell(t,r,o)&&this._isBoolean(e)}_isBoolean(e){var t=wijmo_1.isString(e)&&e.toLowerCase();return"true"===t||"false"===t||!0===e||!1===e}_measureCell(e,t,r,o,l,n){this._decompositeStyle(l);const i=n.left,s=n.top,a=n.height,d=n.width,h=this._parseBorder(l),c=h.left.width,g=h.top.width,u=h.bottom.width,f=h.right.width,p=this._parsePadding(l);let _=0,w=0,C=0,m=0;if("content-box"===l.boxSizing||void 0===l.boxSizing){_=p.top+a+p.bottom;w=p.left+d+p.right;C=a;m=d}else{if("border-box"!==l.boxSizing)throw"Invalid value: "+l.boxSizing;if(pdf._IE&&l instanceof CSSStyleDeclaration){_=p.top+p.bottom+a;w=p.left+p.right+d}else{_=Math.max(a-g-u,0);w=Math.max(d-c-f,0)}C=Math.max(_-p.top-p.bottom,0);m=Math.max(w-p.left-p.right,0)}return{rect:new wijmo_1.Rect(i,s,d,a),clientRect:new wijmo_1.Rect(i+c,s+g,w,_),contentRect:new wijmo_1.Rect(i+c+p.left,s+g+p.top,m,C),textRect:null}}_decompositeStyle(e){if(e){let t;t=e.borderColor;if(t){e.borderLeftColor||(e.borderLeftColor=t);e.borderRightColor||(e.borderRightColor=t);e.borderTopColor||(e.borderTopColor=t);e.borderBottomColor||(e.borderBottomColor=t)}t=e.borderWidth;if(t){e.borderLeftWidth||(e.borderLeftWidth=t);e.borderRightWidth||(e.borderRightWidth=t);e.borderTopWidth||(e.borderTopWidth=t);e.borderBottomWidth||(e.borderBottomWidth=t)}t=e.borderStyle;if(t){e.borderLeftStyle||(e.borderLeftStyle=t);e.borderRightStyle||(e.borderRightStyle=t);e.borderTopStyle||(e.borderTopStyle=t);e.borderBottomStyle||(e.borderBottomStyle=t)}t=e.padding;if(t){e.paddingLeft||(e.paddingLeft=t);e.paddingRight||(e.paddingRight=t);e.paddingTop||(e.paddingTop=t);e.paddingBottom||(e.paddingBottom=t)}}}_parseBorder(e){var t={left:{width:0},top:{width:0},bottom:{width:0},right:{width:0}};"none"!==e.borderLeftStyle&&(t.left={width:pdf._asPt(e.borderLeftWidth),style:e.borderLeftStyle,color:e.borderLeftColor});"none"!==e.borderTopStyle&&(t.top={width:pdf._asPt(e.borderTopWidth),style:e.borderTopStyle,color:e.borderTopColor});"none"!==e.borderBottomStyle&&(t.bottom={width:pdf._asPt(e.borderBottomWidth),style:e.borderBottomStyle,color:e.borderBottomColor});"none"!==e.borderRightStyle&&(t.right={width:pdf._asPt(e.borderRightWidth),style:e.borderRightStyle,color:e.borderRightColor});return t}_parsePadding(e){return{left:pdf._asPt(e.paddingLeft),top:pdf._asPt(e.paddingTop),bottom:pdf._asPt(e.paddingBottom),right:pdf._asPt(e.paddingRight)}}_renderEmptyCell(e,t,r,o){var l=e.rect.left,n=e.rect.top,i=e.clientRect.width,s=e.clientRect.height,a=e.clientRect.left-e.rect.left,d=e.clientRect.top-e.rect.top,h=e.rect.top+e.rect.height-(e.clientRect.top+e.clientRect.height),c=e.rect.left+e.rect.width-(e.clientRect.left+e.clientRect.width);r=r&&t.backgroundColor&&i>0&&s>0;if(o&&(a||c||h||d)){const e=t.borderLeftColor||t.borderColor,o=t.borderRightColor||t.borderColor,g=t.borderTopColor||t.borderColor,u=t.borderBottomColor||t.borderColor;if(a&&d&&h&&c&&a===c&&a===h&&a===d&&e===o&&e===u&&e===g){const o=a,d=o/2,h=this._area.paths.rect(l+d,n+d,i+o,s+o);if(r){h.fillAndStroke(t.backgroundColor,new pdf.PdfPen(e,o));return}h.stroke(new pdf.PdfPen(e,o))}else{a&&this._area.paths.polygon([[l,n],[l+a,n+d],[l+a,n+d+s],[l,n+d+s+h]]).fill(e);d&&this._area.paths.polygon([[l,n],[l+a,n+d],[l+a+i,n+d],[l+a+i+c,n]]).fill(g);c&&this._area.paths.polygon([[l+a+i+c,n],[l+a+i,n+d],[l+a+i,n+d+s],[l+a+i+c,n+d+s+h]]).fill(o);h&&this._area.paths.polygon([[l,n+d+s+h],[l+a,n+d+s],[l+a+i,n+d+s],[l+a+i+c,n+d+s+h]]).fill(u)}}r&&this._area.paths.rect(e.clientRect.left,e.clientRect.top,e.clientRect.width,e.clientRect.height).fillAndStroke(t.backgroundColor,this.InvisiblePen)}_renderBooleanCell(e,t,r){if(!(!t.textRect||t.textRect.height<=0||t.textRect.width<=0)){var o=t.textRect.left,l=t.textRect.top,n=t.textRect.height;this._area.paths.rect(o,l,n,n).fillAndStroke(wijmo_1.Color.fromRgba(255,255,255),new pdf.PdfPen(void 0,.5));if(!0===wijmo_1.changeType(e,wijmo_1.DataType.Boolean,"")){const e=n/20,t=n-.5-2*e,r=n/8;this._area.document.saveState();this._area.translate(o+.25+e,l+.25+e).paths.moveTo(r/2,.6*t).lineTo(t-.6*t,t-r).lineTo(t-r/2,r/2).stroke(new pdf.PdfPen(void 0,r));this._area.document.restoreState()}}}_renderTextCell(e,t,r){if(!e||!t.textRect||t.textRect.height<=0||t.textRect.width<=0)return;var o=r.textDecoration||"",l=o.indexOf("line-through")>=0,n=o.indexOf("underline")>=0;const i=this._area.drawText(e,t.textRect.left,t.textRect.top,{brush:r.color,font:r.font,height:t.textRect.height,width:t.textRect.width,align:"center"===r.textAlign?pdf.PdfTextHorizontalAlign.Center:"right"===r.textAlign?pdf.PdfTextHorizontalAlign.Right:"justify"===r.textAlign?pdf.PdfTextHorizontalAlign.Justify:pdf.PdfTextHorizontalAlign.Left,strike:l,underline:n});i&&(this._lastRenderCharCount=i.charCount)}_calculateTextRect(e,t,r,o,l,n){if(null!=e&&!wijmo_1.isString(e))return null;const i=l.clone();if(this._isBooleanCellAndValue(e,t,r,o)){const e=this._getTextLineHeight(n.font);switch(n.verticalAlign){case"middle":i.top=l.top+l.height/2-e/2;break;case"bottom":i.top=l.top+l.height-e}switch(n.textAlign){case"justify":case"center":i.left=l.left+l.width/2-e/2;break;case"right":i.left=l.left+l.width-e}i.height=i.width=e}else if(i.height>0&&i.width>0)switch(n.verticalAlign){case"bottom":{const t=this._area.measureText(e,n.font,{height:i.height,width:i.width});if(t.size.height<i.height){const e=this._area.document._document,r=e.currentLineHeight(!0)-e.currentLineHeight(!1);i.top+=i.height-t.size.height-r;i.height=t.size.height}break}case"middle":{const t=this._area.measureText(e,n.font,{height:i.height,width:i.width});if(t.size.height<i.height){const e=this._area.document._document,r=e.currentLineHeight(!0)-e.currentLineHeight(!1);i.top+=i.height/2-(t.size.height-r)/2;i.height=t.size.height}break}}return i}_getTextLineHeight(e){return this._area.lineHeight(e)}}exports._CellRenderer=_CellRenderer;class GetMergedRangeProxy{constructor(e){this._columns={};this._flex=e}getMergedRange(e,t,r){const o=this._columns[r];if(o&&t>=o.topRow&&t<=o.bottomRow)return o;{let o=this._flex.getMergedRange(e,t,r),l=e.columns,n=e.rows;if(o&&!o.isSingleCell&&(!l[o.col].isVisible||!l[o.col2].isVisible||!n[o.row].isVisible||!n[o.row2].isVisible)){o=o.clone();for(;o.col<o.col2&&!l[o.col].isVisible;)o.col++;for(;o.col2>o.col&&!l[o.col2].isVisible;)o.col2--;for(;o.row<o.row2&&!n[o.row].isVisible;)o.row++;for(;o.row2>o.row&&!n[o.row2].isVisible;)o.row2--}o&&o.isSingleCell&&(o=null);this._columns[r]=o?new _CellRangeExt(e,o):null;return this._columns[r]}}}class _CellRange{constructor(e,t,r,o){if("number"==typeof e){this._row=e;this._col=t;this._row2=r;this._col2=o}else{this._row=e.row;this._col=e.col;this._row2=e.row2;this._col2=e.col2}(this._row<0||this._row2<0)&&(this._row=this._row2=-1);(this._col<0||this._col2<0)&&(this._col=this._col2=-1)}get row(){return this._row}set row(e){this._row=e}get col(){return this._col}set col(e){this._col=e}get row2(){return this._row2}set row2(e){this._row2=e}get col2(){return this._col2}set col2(e){this._col2=e}get topRow(){return Math.min(this._row,this._row2)}get bottomRow(){return Math.max(this._row,this._row2)}get leftCol(){return Math.min(this._col,this._col2)}get rightCol(){return Math.max(this._col,this._col2)}get columnSpan(){return Math.abs(this._col2-this._col)+1}get rowSpan(){return Math.abs(this._row2-this._row)+1}get isValid(){return this._row>-1&&this._col>-1&&this._row2>-1&&this._col2>-1}get isSingleCell(){return this._row===this._row2&&this._col===this._col2}copyFrom(e){this.setRange(e.row,e.col,e.row2,e.col2)}clone(){return new _CellRange(this._row,this._col,this._row2,this._col2)}getRenderSize(e,t){const r=new wijmo_1.Size(0,0);if(this.isValid){for(let o=this.topRow;o<=this.bottomRow;o++){const l=t.rows[o];e.isRenderableRow(l)&&(r.height+=l.renderHeight)}for(let o=this.leftCol;o<=this.rightCol;o++){const l=t.columns[o];e.isRenderableColumn(l)&&(r.width+=l.renderWidth)}}return r}setRange(e=-1,t=-1,r=e,o=t){this._row=wijmo_1.asInt(e);this._col=wijmo_1.asInt(t);this._row2=wijmo_1.asInt(r);this._col2=wijmo_1.asInt(o)}}exports._CellRange=_CellRange;class _CellRangeExt extends _CellRange{constructor(e,t,r,o,l){super(t,r,o,l);this.firstVisibleRow=-1;this.visibleRowsCount=0;if(e){const t=this.topRow,r=this.bottomRow,o=e.rows.length;if(o>0)for(let l=t;l<=r&&l<o;l++)if(e.rows[l].isVisible){this.firstVisibleRow<0&&(this.firstVisibleRow=l);this.visibleRowsCount++}}}copyFrom(e){super.copyFrom(e);this.firstVisibleRow=e.firstVisibleRow;this.visibleRowsCount=e.visibleRowsCount}clone(){return new _CellRangeExt(null,this.row,this.col,this.row2,this.col2)}}exports._CellRangeExt=_CellRangeExt;class RowRange{constructor(e){this._ranges=e||[]}length(){let e=0;for(let t=0;t<this._ranges.length;t++){const r=this._ranges[t];r.isValid&&(e+=r.bottomRow-r.topRow+1)}return e}get isValid(){return this._ranges.length&&this._ranges[0].isValid}get leftCol(){return this._ranges.length?this._ranges[0].leftCol:-1}get rightCol(){return this._ranges.length?this._ranges[0].rightCol:-1}clone(e,t){const r=[];for(let o=0;o<this._ranges.length;o++){const l=this._ranges[o].clone();arguments.length>0&&(l.col=e);arguments.length>1&&(l.col2=t);r.push(l)}return new RowRange(r)}getRenderSize(e,t){const r=new wijmo_1.Size(0,0);for(let o=0;o<this._ranges.length;o++){const l=this._ranges[o].getRenderSize(e,t);r.width=Math.max(r.width,l.width);r.height+=l.height}return r}find(e,t){let r=null;this.forEach(e,e=>{if(!0===t(e)){r=e;return!1}});return r}forEach(e,t){let r=0,o=!1;for(let l=0;l<this._ranges.length&&!o;l++){const n=this._ranges[l];if(n.isValid)for(let l=n.topRow;l<=n.bottomRow&&!o;l++)o=!1===t(e.rows[l],n,l,r++)}}subrange(e,t,r,o){const l=[];if(e>=0&&t>0){let n=0,i=0;for(let s=0;s<this._ranges.length&&t>0;s++,n=i+1){const a=this._ranges[s];i=n+(a.bottomRow-a.topRow);if(e>i)continue;const d=e>n?a.topRow+(e-n):a.topRow,h=Math.min(a.bottomRow,d+t-1),c=arguments.length>2?r:a.leftCol,g=arguments.length>2?o:a.rightCol;l.push(new _CellRange(d,c,h,g));t-=h-d+1}}return new RowRange(l)}}class PdfPageRowRange{constructor(e,t,r){this._col=t;this._row=r;this._range=e}get range(){return this._range}get pageCol(){return this._col}get pageRow(){return this._row}}const FAKE_CELL="wj-pdf-fake-cell";function getFakeCell(e){if(!_fc){(_fc=document.createElement("div")).setAttribute(FAKE_CELL,"true");softGrid()&&_fc.setAttribute(softGrid().FlexGrid._WJS_MEASURE,"true")}const t=_fc.style;t.cssText="";t.position="absolute";t.overflow="hidden";t.width="1px";t.height="1px";t.clipPath="inset(100%)";t.clip="rect(0 0 0 0)";const r=e.hostElement,o=r.children.length?r.children[0]:r;_fc.parentNode!==o&&o.appendChild(_fc);return _fc}function _removeFakeCell(){if(_fc){wijmo_1.removeChild(_fc);_fc=null}}exports._removeFakeCell=_removeFakeCell;class FlexGridPdfConverter{static draw(e,t,r,o,l){FlexGridPdfConverter.drawToPosition(e,t,null,r,o,l)}static drawToPosition(e,t,r,o,l,n){wijmo_1.assert(!!e,"The flex argument cannot be null.");wijmo_1.assert(!!t,"The doc argument cannot be null.");let i,s=softGrid()&&e instanceof softGrid().FlexGrid,a=e;try{n=_FlexGridPdfCoreConverter._applyDefaultDrawSettings(n);let d=e;if(s){if(n&&n.recalculateStarWidths){i=a.columns.getTotalSize();a.columns._updateStarSizes(pdf.ptToPx(t.width))}d=FlexGridPdfConverter._getFlexGridAdapter(a,n)}_FlexGridPdfCoreConverter.draw(d,t,r,o,l,n)}finally{_removeFakeCell();s&&n&&n.recalculateStarWidths&&a.columns._updateStarSizes(i)}}static export(e,t,r){wijmo_1.assert(!!e,"The flex argument cannot be null.");wijmo_1.assert(!!t,"The fileName argument cannot be empty.");var o=(r=FlexGridPdfConverter._applyDefaultExportSettings(r)).documentOptions.ended;r.documentOptions.ended=(e,n)=>{r.progress&&r.progress(1);o&&!1===o.apply(l,[e,n])||pdf.saveBlob(n.blob,t);e.dispose()};var l=new pdf.PdfDocument(r.documentOptions);FlexGridPdfConverter.drawToPosition(e,l,null,null,null,r);l.end()}static _getFlexGridAdapter(e,t){return new(softMultiRow()&&e instanceof softMultiRow().MultiRow&&MultiRowAdapter||softSheet()&&e instanceof softSheet().FlexSheet&&FlexSheetAdapter||softOlap()&&e instanceof softOlap().PivotGrid&&PivotGridAdapter||softTransposed()&&e instanceof softTransposed().TransposedGrid&&_TransposedGridAdapter||softTransposedMultiRow()&&e instanceof softTransposedMultiRow().TransposedMultiRow&&TransposedMultiRowAdapter||FlexGridAdapter)(e,t)}static _applyDefaultExportSettings(e){return _merge(_merge({},e),FlexGridPdfConverter._DefaultExportSettings)}}FlexGridPdfConverter._DefaultExportSettings=_merge({scaleMode:ScaleMode.PageWidth,documentOptions:{compress:!1,pageSettings:{margins:{left:36,right:36,top:18,bottom:18}}},_progressMax:.9},_FlexGridPdfCoreConverter.DefaultDrawSettings);exports.FlexGridPdfConverter=FlexGridPdfConverter;class FlexGridAdapter{constructor(e,t){this._defBorderColor=null;this._flex=e;this._settings=t;t.quickCellStyles&&(this._styleCache=new StyleCache(500))}get flex(){return this._flex}get settings(){return this._settings}get columns(){return this._flex.columns}get rows(){return this._flex.rows}get bottomLeftCells(){return this._flex.bottomLeftCells}get cells(){return this._flex.cells}get columnFooters(){return this._flex.columnFooters}get columnHeaders(){return this._flex.columnHeaders}get rowHeaders(){return this._flex.rowHeaders}get topLeftCells(){return this._flex.topLeftCells}get treeIndent(){return this._flex.treeIndent}get treeColumnIndex(){return this._flex._getTreeColIndex()}getSelection(){var e=[],t=this._flex.selection,r=softGrid();switch(this._flex.selectionMode){case r.SelectionMode.None:break;case r.SelectionMode.Cell:case r.SelectionMode.CellRange:e.push(new _CellRange(t.row,t.col,t.row2,t.col2));break;case r.SelectionMode.Row:e.push(new _CellRange(t.topRow,0,t.topRow,this._flex.cells.columns.length-1));break;case r.SelectionMode.RowRange:e.push(new _CellRange(t.topRow,0,t.bottomRow,this._flex.cells.columns.length-1));break;case r.SelectionMode.ListBox:{let t=-1;for(let r=0;r<this._flex.rows.length;r++){if(this._flex.rows[r].isSelected){t<0&&(t=r);r===this._flex.rows.length-1&&e.push(new _CellRange(t,0,r,this._flex.cells.columns.length-1))}else{t>=0&&e.push(new _CellRange(t,0,r-1,this._flex.cells.columns.length-1));t=-1}}break}}return e}getCell(e,t,r,o){var l=e.getCellElement(t,r);if(!l){l=getFakeCell(e);this._flex.cellFactory.updateCell(e,t,r,l,null,o)}return l}getComputedDefBorderColor(){if(null==this._defBorderColor){const e=window.getComputedStyle(this._flex.hostElement);this._defBorderColor="none"!=e.borderRightStyle?e.borderRightColor:"none"!=e.borderBottomStyle?e.borderBottomColor:"none"!=e.borderLeftStyle?e.borderLeftColor:"none"!=e.borderTopStyle?e.borderTopColor:"rgba(0,0,0,0.2)"}return this._defBorderColor}getComputedStyle(e,t){let r;const o=null==t.getAttribute(FAKE_CELL),l=t.className,n=l.indexOf(wijmo_1.ControlStateClsNames.selected)>=0||l.indexOf(wijmo_1.ControlStateClsNames.multiSelected)>=0;n&&(t.className=l.replace(wijmo_1.ControlStateClsNames.selected,"").replace(wijmo_1.ControlStateClsNames.multiSelected,""));if(this._styleCache){const o=e.hostElement;let l=t.style.cssText.split(/;\s+/).filter(e=>{var t=e.substring(0,e.indexOf(":"));return/^(color|background-color|border-color|border-left-color|border-right-color|border-top-color|border-bottom-color|font|textAlign|text-decoration)/i.test(t)}).join(";"),n=t;do{l=n.className+l}while(n!==o&&(n=n.parentElement));r=this._styleCache.getValue(l);if(!r){r=window.getComputedStyle(t);r=this._styleCache.add(l,r)}}else r=_cloneStyle(window.getComputedStyle(t));o&&n&&(t.className=l);return r}getMergedRange(e,t,r){const o=this._flex.getMergedRange(e,t,r,!1);return o?new _CellRange(o.row,o.col,o.row2,o.col2):null}get showColumnHeader(){return!!(this._flex.headersVisibility&softGrid().HeadersVisibility.Column)}get showRowHeader(){return!!(this._flex.headersVisibility&softGrid().HeadersVisibility.Row)}get showColumnFooter(){return this._flex.columnFooters.rows.length>0}alignMergedTextToTheTopRow(e){return!1}getCellData(e,t,r){return e.getCellData(t,r,!0)}getCellContent(e,t,r,o){let l,n=softGrid();if(this.settings.customCellContent){const n=this.getCell(e,t.index,o,!0);l=n.innerText.trim();l=l.replace(/\r/gm,"").replace(/\n+/gm,"\n");if(!l&&this.isBooleanCell(e,t,r)){l=this._extractCheckboxValue(n);l=null==l?"":""+l}}else{let i=r.isContentHtml;l=this.getCellData(e,t.index,o);if(this.isGroupRow(t)&&e.cellType===n.CellType.Cell&&r.index===this.treeColumnIndex){i=!0;l||(l=t.getGroupHeader())}i&&(l=wijmo_1.toPlainText(l).trim())}return l}isBooleanCell(e,t,r){return r.dataType===wijmo_1.DataType.Boolean&&e.cellType===softGrid().CellType.Cell&&(!this.isExpandableGroupRow(t)||r.index!==this.treeColumnIndex)}getColumn(e,t,r){return e.columns[r]}isAlternatingRow(e){let t=!1,r=this._flex.alternatingRowStep;if(r){t=e.visibleIndex%(r+1)==0;1==r&&(t=!t)}return t}isGroupRow(e){return e instanceof softGrid().GroupRow}isNewRow(e){return e instanceof softGrid()._NewRowTemplate}isDetailRow(e){return softDetail()&&e instanceof softDetail().DetailRow}isExpandableGroupRow(e){return e instanceof softGrid().GroupRow&&e.hasChildren}isRenderableRow(e){return e.isVisible&&e.renderHeight>0&&!this.isNewRow(e)}isRenderableColumn(e){return e.isVisible&&e.renderWidth>0}getCellStyle(e,t,r){var o=this.settings.styles,l=_merge({},o.cellStyle),n=this._flex,i=softGrid();switch(e.cellType){case i.CellType.Cell:this.isExpandableGroupRow(t)?_merge(l,o.groupCellStyle,!0):this.isAlternatingRow(t)&&_merge(l,o.altCellStyle,!0);break;case i.CellType.ColumnHeader:case i.CellType.RowHeader:case i.CellType.TopLeft:case i.CellType.BottomLeft:_merge(l,o.headerCellStyle,!0);break;case i.CellType.ColumnFooter:_merge(l,o.headerCellStyle,!0);_merge(l,o.footerCellStyle,!0)}!this.settings.customCellContent&&n._getShowErrors()&&n._getError(e,t.index,r.index)&&_merge(l,o.errorCellStyle,!0);return l}_extractCheckboxValue(e){var t=e.querySelector("input[type=checkbox]");if(t&&"none"!==t.style.display&&"hidden"!==t.style.visibility)return t.checked}}class FlexSheetAdapter extends FlexGridAdapter{getCellData(e,t,r){return e.cellType===softGrid().CellType.Cell?e.rows[t]instanceof softSheet().HeaderRow?this.flex.columnHeaders.getCellData(t,r,!0):this.flex.getCellValue(t,r,!0):super.getCellData(e,t,r)}getCellStyle(e,t,r){var o=super.getCellStyle(e,t,r),l=this.flex.selectedSheet.findTable(t.index,r.index);if(l){const e=l.getRange(),n=t.index-e.topRow,i=r.index-e.leftCol,s=l._getTableCellAppliedStyles(n,i);s&&(s.font=new pdf.PdfFont(s.fontFamily,pdf._asPt(s.fontSize,!0,void 0),s.fontStyle,s.fontWeight));_merge(o,s,!0)}return o}get showColumnHeader(){return!1}get showRowHeader(){return!1}get showColumnFooter(){return!1}}class MultiRowAdapter extends FlexGridAdapter{getColumn(e,t,r){return _combineColumns(super.getColumn(e,t,r),this.flex.getBindingColumn(e,t,r))}isAlternatingRow(e){if(e instanceof softMultiRow()._MultiRow){let t=!1,r=this.flex.alternatingRowStep;if(r){t=e.dataIndex%(r+1)==0;1==r&&(t=!t)}return t}return super.isAlternatingRow(e)}}class PivotGridAdapter extends FlexGridAdapter{alignMergedTextToTheTopRow(e){const t=softGrid();return!this.flex.centerHeadersVertically&&(e.cellType===t.CellType.ColumnHeader||e.cellType===t.CellType.RowHeader)}}class _TransposedGridAdapter extends FlexGridAdapter{getColumn(e,t,r){const o=super.getColumn(e,t,r);if(e.cellType!=softGrid().CellType.Cell)return o;{const r=e.grid._getBindingColumn(e,t,o);return r?_combineColumns(o,r):o}}}class TransposedMultiRowAdapter extends FlexGridAdapter{getColumn(e,t,r){const o=super.getColumn(e,t,r);if(e.cellType!=softGrid().CellType.Cell)return o;{const l=this.flex.getBindingColumn(e,t,r);return l?_combineColumns(o,l):o}}}class StyleCache{constructor(e){this._cache={};this._size=0;this._max=e}add(e,t){this._size>=this._max&&this.clear();const r=_cloneStyle(t);this._cache[e]=r;this._size++;return r}clear(){this._cache={};this._size=0}getValue(e){return this._cache[e]||null}hasKey(e){return!!this._cache[e]}}var PdfWebWorkerResponseStatus;!function(e){e[e.Done=1]="Done";e[e.Progress=2]="Progress"}(PdfWebWorkerResponseStatus||(PdfWebWorkerResponseStatus={}));const DefGridName="";class PdfWebWorkerExportDoneEventArgs extends wijmo_1.EventArgs{constructor(e){super();this._buf=e}get blob(){this._blob||(this._blob=new Blob([new Uint8Array(this._buf)],{type:"application/pdf"}));return this._blob}get buffer(){return this._buf}}exports.PdfWebWorkerExportDoneEventArgs=PdfWebWorkerExportDoneEventArgs;class PdfWebWorkerClient{static exportGrid(e,t,r,o,l,n){(o=FlexGridPdfConverter._applyDefaultExportSettings(o)).progress=o.progress||n;PdfWebWorkerClient.addGrid(e,t,"",o);PdfWebWorkerClient.export(e,o.documentOptions,e=>{wijmo_1.isFunction(l)&&!1===l(e)||pdf.saveBlob(e.blob,r)},n)}static export(e,t,r,o){e.addEventListener("message",(function handler(t){const l=t.data;switch(l.status){case PdfWebWorkerResponseStatus.Done:e.removeEventListener("message",handler);wijmo_1.isFunction(r)&&r(new PdfWebWorkerExportDoneEventArgs(l.data));break;case PdfWebWorkerResponseStatus.Progress:o&&o(l.data);break;default:throw"Unknown status: "+l.status}}));const l=PdfWebWorkerClient._clientDataToArrayBuffer(e);e.postMessage({content:l,settings:t},[l]);PdfWebWorkerClient._clearClientData(e)}static addGrid(e,t,r,o){const l=PdfWebWorkerClient._gridToJson(t,o);PdfWebWorkerClient._addClientData(e,JSON.stringify(l),r,o,!0)}static addImage(e,t,r,o){const l=wijmo_1.isString(t)&&t.indexOf("data:image/svg")>=0?t:pdf._PdfImageHelper.getDataUri(t);PdfWebWorkerClient._addClientData(e,l,r,o)}static addString(e,t,r){PdfWebWorkerClient._addClientData(e,t,r,null)}static serializeGrid(e,t){const r=PdfWebWorkerClient._gridToJson(e,t);return strToBuf(JSON.stringify(r))}static _addClientData(e,t,r,o,l=!1){wijmo_1.asType(e,Worker);wijmo_1.asString(r);wijmo_1.asString(t,!0);const n=e;n.clientData=n.clientData||{};n.clientData[r]={content:t,settings:o?JSON.stringify(o):null};var i=n.clientData[r];if(l){i.isGrid=!0;i.progressMessaging=!!o&&wijmo_1.isFunction(o.progress)}}static _clearClientData(e){delete e.clientData}static _clientDataToArrayBuffer(e){const t=e;return strToBuf(JSON.stringify(t.clientData||{}))}static _gridToJson(e,t){t=FlexGridPdfConverter._applyDefaultExportSettings(t);let r,o;try{r=new pdf.PdfDocument(t.documentOptions);if(t&&t.recalculateStarWidths){o=e.columns.getTotalSize();e.columns._updateStarSizes(pdf.ptToPx(r.width))}return PdfWebWorkerClient._getJsonConverter(e,t).convert()}finally{_removeFakeCell();t&&t.recalculateStarWidths&&e.columns._updateStarSizes(o);if(null!=r){r.dispose();r=null}}}static _getJsonConverter(e,t){return new(softMultiRow()&&e instanceof softMultiRow().MultiRow&&MultiRowJsonConverter||softOlap()&&e instanceof softOlap().PivotGrid&&PivotGridJsonConverter||softTransposed()&&e instanceof softTransposed().TransposedGrid&&TransposedGridJsonConverter||softTransposedMultiRow()&&e instanceof softTransposedMultiRow().TransposedMultiRow&&TransposedMultirowJsonConverter||FlexGridJsonConverter)(e,t,FlexGridPdfConverter._getFlexGridAdapter(e,t))}}exports.PdfWebWorkerClient=PdfWebWorkerClient;class PdfWebWorker{static initExportGrid(){PdfWebWorker.initExport((e,t)=>{var r=t[""];if(r.progressMessaging){r.settings._progressMax=FlexGridPdfConverter._DefaultExportSettings._progressMax;r.settings.progress=e=>{PdfWebWorker.sendExportProgress(e)};e.ended.addHandler(()=>{PdfWebWorker.sendExportProgress(1)})}FlexGridPdfConverter.draw(r.content,e,null,null,r.settings);e.end()})}static initExport(e){self.addEventListener("message",(function handler(t){self.removeEventListener("message",handler);const r=t.data,o=JSON.parse(bufToStr(r.content)),l=r.settings||{};l.ended=(e,t)=>{blobToBuf(t.blob,e=>{self.postMessage({data:e,status:PdfWebWorkerResponseStatus.Done},[e])})};const n=new pdf.PdfDocument(l);Object.keys(o).forEach(e=>{const t=o[e];t.settings&&(t.settings=JSON.parse(t.settings));if(t.isGrid){t.settings&&PdfWebWorker._disableUnsupportedFeatures(t.settings);t.content=PdfWebWorker._deserializeGridFromString(t.content,t.settings)}});e(n,o)}))}static sendExportProgress(e){e=wijmo_1.clamp(e,0,1);self.postMessage({data:e,status:PdfWebWorkerResponseStatus.Progress})}static deserializeGrid(e,t){return PdfWebWorker._deserializeGridFromString(bufToStr(e),t)}static _deserializeGridFromString(e,t){return PdfWebWorker._getJsonAdapter(JSON.parse(e),FlexGridPdfConverter._applyDefaultExportSettings(t))}static _disableUnsupportedFeatures(e){e.customCellContent=!1}static _getJsonAdapter(e,t){switch(e.typeName){case"MultiRow":return new MultiRowJsonAdapter(e,t);case"PivotGrid":return new PivotGridJsonAdapter(e,t);case"TransposedGrid":return new TransposedGridJsonAdapter(e,t);case"TransposedMultiRow":return new TransposedMultiRowJsonAdapter(e,t);default:return new FlexGridJsonAdapter(e,t)}}}exports.PdfWebWorker=PdfWebWorker;function bufToStr(e){var t=new Uint16Array(e),r="";for(let e=0,o=t.length;e<o;e++)r+=String.fromCharCode(t[e]);return r}function strToBuf(e){var t=new ArrayBuffer(2*e.length),r=new Uint16Array(t);for(let t=0,o=e.length;t<o;t++)r[t]=e.charCodeAt(t);return t}function blobToBuf(e,t){wijmo_1.asFunction(t);var r=new FileReader;r.onload=e=>{t(e.target.result)};r.readAsArrayBuffer(e)}var RowState,ColState;!function(e){e[e.None=0]="None";e[e.Alternate=1]="Alternate";e[e.Group=2]="Group";e[e.ExpandableGroup=4]="ExpandableGroup";e[e.New=8]="New";e[e.Visible=16]="Visible";e[e.Detail=32]="Detail"}(RowState||(RowState={}));!function(e){e[e.None=0]="None";e[e.Visible=1]="Visible"}(ColState||(ColState={}));class FlexGridJsonConverter{constructor(e,t,r){this._flex=e;this._settings=t;this._adapter=r}convert(){var e={};e.typeName=this._getTypeName(this._flex);e.selection=this._serializeSelection();e.showColumnFooter=this.adapter.showColumnFooter;e.showColumnHeader=this.adapter.showColumnHeader;e.showRowHeader=this.adapter.showRowHeader;e.treeIndent=this._flex.treeIndent;e.treeColumnIndex=this.adapter.treeColumnIndex;e.bottomLeftCells=this._serializePanel(this._flex.bottomLeftCells);e.cells=this._serializePanel(this._flex.cells);e.columnFooters=this._serializePanel(this._flex.columnFooters);e.columnHeaders=this._serializePanel(this._flex.columnHeaders);e.rowHeaders=this._serializePanel(this._flex.rowHeaders);e.topLeftCells=this._serializePanel(this._flex.topLeftCells);return e}get adapter(){return this._adapter}get flex(){return this._flex}_getConstructorName(e){let t=e.constructor.name;t=t.replace(/\d+$/g,"");return t}_getTypeName(e){const t=new Set(["MultiRow","PivotGrid","TransposedGrid","TransposedMultiRow","FlexGrid"]);let r=e;for(;r;){const e=this._getConstructorName(r);if(t.has(e))return e;r=r.constructor.prototype.__proto__}return e.constructor.name}_getRowState(e){var t=RowState.None;this.adapter.isAlternatingRow(e)&&(t|=RowState.Alternate);e instanceof softGrid().GroupRow&&(t|=RowState.Group);this.adapter.isDetailRow(e)&&(t|=RowState.Detail);this.adapter.isExpandableGroupRow(e)&&(t|=RowState.ExpandableGroup);e instanceof softGrid()._NewRowTemplate&&(t|=RowState.New);e.isVisible&&(t|=RowState.Visible);return t}_getColumnState(e){var t=ColState.None;e.isVisible&&(t|=ColState.Visible);return t}_serializeSelection(){const e=this.adapter.getSelection(),t=[];for(let r=0;r<e.length;r++){const o=e[r];t.push([o.row,o.col,o.row2,o.col2])}return t}_serializeColumns(e){const t=[];for(let r=0,o=(e||[]).length;r<o;r++){let o=e[r],l=null;if(o){l={aggregate:o.aggregate,renderWidth:o.renderWidth,visibleIndex:o.visibleIndex};const e=o.getAlignment();e&&(l.alignment=e);const t=this._getColumnState(o);t!==ColState.None&&(l.state=t);o.binding&&(l.binding=o.binding);null!=o.dataType&&(l.dataType=o.dataType);null!=o.name&&(l.name=o.name);o.wordWrap&&(l.wordWrap=!0);o.multiLine&&(l.multiLine=!0)}t.push(l)}return t}_serializePanel(e){const t={cellType:e.cellType,height:e.height,width:e.width},getAlignment=e=>{if(e.align)return e.align;if(!e.dataMap)switch(e.dataType){case wijmo_1.DataType.Boolean:return"center";case wijmo_1.DataType.Number:return"right"}return null};t.mergedRanges=this._serializeMergedRanges(e);t.columns=this._serializeColumns(e.columns);t.columnsFirstVisibleIndex=e.columns.firstVisibleIndex;t.rows=[];t.rowsMaxGroupLevel=e.rows.maxGroupLevel;const r=!this._settings.customCellContent&&this._flex._getShowErrors();for(let o=0,l=e.rows.length,n=e.columns.length;o<l;o++){const l=e.rows[o],i={renderHeight:l.renderHeight};t.rows.push(i);const s=getAlignment(l);s&&(i.alignment=s);l instanceof softGrid().GroupRow&&(i.level=l.level);const a=this._getRowState(l);a!==RowState.None&&(i.state=a);l.binding&&(i.binding=l.binding);null!=l.dataType&&(i.dataType=l.dataType);l.wordWrap&&(i.wordWrap=!0);l.multiLine&&(i.multiLine=!0);i.cells=[];const d=softGrid();for(let t=0;t<n;t++){let l=this._adapter.getCellContent(e,e.rows[o],e.columns[t],t);if(wijmo_1.isFunction(this._settings.formatItem)){const r=new PdfFormatItemEventArgs(e,new d.CellRange(o,t),null,null,null,null,null,()=>this._adapter.getCell(e,o,t,!0),null);r.data=l;this._settings.formatItem(r);r.data!==l&&(l=r.data)}i.cells[t]=l;if(r&&this._flex._getError(e,o,t)){i.errors||(i.errors={});i.errors[t]=1}}}return t}_serializeMergedRanges(e){const t=[],r=[];let o,l,n,i,s;for(o=0;o<e.columns.length;o++)r[o]=0;for(l=0;l<e.rows.length;l++)for(n=0;n<e.columns.length;n++)if(!(l<r[n])){i=e.grid.getMergedRange(e,l,n);if(null!=i&&!i.isSingleCell){t.push([i.row,i.col,i.row2,i.col2]);for(s=i.col;s<=i.col2;s++)r[s]=i.row2+1;i.col!==i.col2&&(n=i.col2)}}return t}}class MultiRowJsonConverter extends FlexGridJsonConverter{convert(){const e=super.convert();e.rowsPerItem=this.flex.rowsPerItem;return e}_serializePanel(e){const t=super._serializePanel(e);t.cellGroups=this._serializeCellGroup(e);return t}_serializeCellGroup(e){const t=[],r=[],o=softGrid();let l=this.flex.rowsPerItem;e.cellType!==o.CellType.TopLeft&&e.cellType!==o.CellType.ColumnHeader||(l=e.rows.length);for(let o=0;o<l;o++){r[o]=[];for(let l=0;l<e.columns.length;l++){const n=this.flex.getBindingColumn(e,o,l),i=t.indexOf(n);r[o][l]=i<0?t.push(n)-1:i}}return{bindingColumns:this._serializeColumns(t),mappings:r}}}class PivotGridJsonConverter extends FlexGridJsonConverter{convert(){const e=super.convert();e.centerHeadersVertically=this.flex.centerHeadersVertically;return e}}class TransposedGridJsonConverter extends FlexGridJsonConverter{convert(){const e=super.convert(),t=new Array(this.flex.cells.rows.length),r=this.flex.cells,o=softGrid();let l,n,i,s;for(l=0,n=r.rows.length;l<n;l++){i=r.rows[l].dataItem;s=i&&i._rowInfo;s instanceof o.Column||(s=_combineColumns(s,s));t[l]=s}e.rowInfo=this._serializeColumns(t);return e}}class TransposedMultirowJsonConverter extends FlexGridJsonConverter{convert(){const e=super.convert();e.cellGroups=this._serializeCellGroup();e.columnsPerItem=this.flex.columnsPerItem;return e}_serializeCellGroup(){const e=[],t=[],r=this.flex.columnsPerItem,o=this.flex.cells;for(let l=0;l<o.rows.length;l++){t[l]=[];for(let n=0;n<r;n++){const r=this.flex.getBindingColumn(o,l,n),i=e.indexOf(r);t[l][n]=i<0?e.push(r)-1:i}}return{bindingColumns:this._serializeColumns(e),mappings:t}}}class RowJson{constructor(e,t){this.index=t;this.binding=e.binding;this.dataType=e.dataType;this.alignment=e.alignment;this.level=e.level;this.renderHeight=e.renderHeight;this.cells=e.cells;this.wordWrap=e.wordWrap||!1;this.multiLine=e.multiLine||!1;this.errors=e.errors;this._state=e.state}get isAlternatingRow(){return(this._state&RowState.Alternate)!==RowState.None}get isGroupRow(){return(this._state&RowState.Group)!==RowState.None}get isDetailRow(){return(this._state&RowState.Detail)!==RowState.None}get isExpandableGroupRow(){return(this._state&RowState.ExpandableGroup)!==RowState.None}get isNewRow(){return(this._state&RowState.New)!==RowState.None}get isVisible(){return(this._state&RowState.Visible)!==RowState.None}}class ColumnJson{constructor(e,t){this.index=t;this.binding=e.binding;this.dataType=e.dataType;this.aggregate=e.aggregate;this.name=e.name;this.renderWidth=e.renderWidth;this.visibleIndex=e.visibleIndex;this.wordWrap=e.wordWrap||!1;this.multiLine=e.multiLine||!1;this._alignment=e.alignment;this._state=e.state}getAlignment(e){return this._alignment?this._alignment:e&&e.alignment?e.alignment:""}get isVisible(){return(this._state&ColState.Visible)!==ColState.None}}class RowJsonCollection{constructor(e,t=-1){this.maxGroupLevel=t;this.length=e.length;for(let t=0;t<e.length;t++)this[t]=new RowJson(e[t],t)}}class ColumnJsonCollection{constructor(e,t=-1){this.firstVisibleIndex=t;this.length=e.length;for(let t=0;t<e.length;t++){const r=e[t];this[t]=r?new ColumnJson(e[t],t):null}}}class GridJsonPanel{constructor(e){this.height=e.height;this.width=e.width;this.cellType=e.cellType;this.columns=new ColumnJsonCollection(e.columns,e.columnsFirstVisibleIndex);this.rows=new RowJsonCollection(e.rows,e.rowsMaxGroupLevel);this._mergedRanges=this._deserializeMergedRanges(e.mergedRanges)}getCellData(e,t){return this.rows[e].cells[t]}getMergedRange(e,t){const r=this._mergedRanges[e];if(r)for(let e=0,o=r.length;e<o;e++){const o=r[e];if(t>=o.col&&t<=o.col2)return o}return null}_deserializeMergedRanges(e){const t=[];e=e||[];for(let e=0,r=this.rows.length;e<r;e++)t[e]=[];for(let r=0,o=e.length;r<o;r++){const o=e[r],l=new _CellRange(o[0],o[1],o[2],o[3]);for(let e=l.row;e<=l.row2;e++)t[e].push(l)}return t}}class FlexGridJsonAdapter{constructor(e,t){this.settings=t;this.bottomLeftCells=this.deserializePanel(e.bottomLeftCells);this.cells=this.deserializePanel(e.cells);this.columnFooters=this.deserializePanel(e.columnFooters);this.columnHeaders=this.deserializePanel(e.columnHeaders);this.rowHeaders=this.deserializePanel(e.rowHeaders);this.topLeftCells=this.deserializePanel(e.topLeftCells);this.treeIndent=e.treeIndent;this.treeColumnIndex=e.treeColumnIndex;this.showColumnFooter=e.showColumnFooter;this.showColumnHeader=e.showColumnHeader;this.showRowHeader=e.showRowHeader;this._selection=[];for(let t=0;t<e.selection.length;t++){const r=e.selection[t];this._selection.push(new _CellRange(r[0],r[1],r[2],r[3]))}}get columns(){return this.cells.columns}get rows(){return this.cells.rows}getSelection(){return this._selection}getCell(e,t,r,o){throw"Not implemented"}getComputedDefBorderColor(){throw"Not implemented"}getComputedStyle(e,t){throw"Not implemented"}getMergedRange(e,t,r){return e.getMergedRange(t,r)}alignMergedTextToTheTopRow(e){return!1}getCellData(e,t,r){return e.getCellData(t,r)}getCellContent(e,t,r,o){return this.getCellData(e,t.index,o)}isBooleanCell(e,t,r){return r.dataType===wijmo_1.DataType.Boolean&&e.cellType===_CellType.Cell&&(!this.isExpandableGroupRow(t)||r.index!==this.treeColumnIndex)}getColumn(e,t,r){return e.columns[r]}isAlternatingRow(e){return e.isAlternatingRow}isGroupRow(e){return e.isGroupRow}isNewRow(e){return e.isNewRow}isDetailRow(e){return e.isDetailRow}isExpandableGroupRow(e){return e.isExpandableGroupRow}isRenderableRow(e){return e.isVisible&&e.renderHeight>0&&!this.isNewRow(e)}isRenderableColumn(e){return e.isVisible&&e.renderWidth>0}getCellStyle(e,t,r){var o=this.settings.styles,l=_merge({},o.cellStyle);switch(e.cellType){case _CellType.Cell:this.isExpandableGroupRow(t)?_merge(l,o.groupCellStyle,!0):this.isAlternatingRow(t)&&_merge(l,o.altCellStyle,!0);break;case _CellType.ColumnHeader:case _CellType.RowHeader:case _CellType.TopLeft:case _CellType.BottomLeft:_merge(l,o.headerCellStyle,!0);break;case _CellType.ColumnFooter:_merge(l,o.headerCellStyle,!0);_merge(l,o.footerCellStyle,!0)}t.errors&&t.errors[r.index]&&_merge(l,o.errorCellStyle,!0);return l}deserializePanel(e){return new GridJsonPanel(e)}}class PivotGridJsonAdapter extends FlexGridJsonAdapter{constructor(e,t){super(e,t);this._centerHeadersVertically=e.centerHeadersVertically}alignMergedTextToTheTopRow(e){return!this._centerHeadersVertically&&(e.cellType===_CellType.ColumnHeader||e.cellType===_CellType.RowHeader)}}class MultiRowJsonPanel extends GridJsonPanel{constructor(e){super(e);e.cellGroups&&(this._cellGroups={bindingColumns:new ColumnJsonCollection(e.cellGroups.bindingColumns),mappings:e.cellGroups.mappings})}getColumn(e,t,r){const o=this.columns[t];let l;if(this._cellGroups){this.cellType!==_CellType.ColumnHeader&&this.cellType!==_CellType.BottomLeft&&(e%=r);l=this._cellGroups.bindingColumns[this._cellGroups.mappings[e][t]];return _combineColumns(o,l)}return o}}class MultiRowJsonAdapter extends FlexGridJsonAdapter{constructor(e,t){super(e,t);this._rowsPerItem=e.rowsPerItem}deserializePanel(e){return new MultiRowJsonPanel(e)}getColumn(e,t,r){return e.getColumn(t,r,this._rowsPerItem)}}class TransposedGridJsonAdapter extends FlexGridJsonAdapter{constructor(e,t){super(e,t);this._rowInfo=new ColumnJsonCollection(e.rowInfo)}getColumn(e,t,r){const o=super.getColumn(e,t,r);if(e.cellType!==_CellType.Cell)return o;{const e=this._rowInfo[t];return e?_combineColumns(o,e):o}}}class TransposedMultiRowJsonAdapter extends FlexGridJsonAdapter{constructor(e,t){super(e,t);this._columnsPerItem=e.columnsPerItem;e.cellGroups&&(this._cellGroups={bindingColumns:new ColumnJsonCollection(e.cellGroups.bindingColumns),mappings:e.cellGroups.mappings})}getColumn(e,t,r){const o=super.getColumn(e,t,r);if(this._cellGroups&&e.cellType===_CellType.Cell){r%=this._columnsPerItem;return _combineColumns(o,this._cellGroups.bindingColumns[this._cellGroups.mappings[t][r]])}return o}}wijmo_1._registerModule("wijmo.grid.pdf",selfModule);
|
package/es2015-esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
*
|
|
3
|
-
* Wijmo Library 5.20261.
|
|
3
|
+
* Wijmo Library 5.20261.52
|
|
4
4
|
* https://developer.mescius.com/wijmo
|
|
5
5
|
*
|
|
6
6
|
* Copyright(c) MESCIUS inc. All rights reserved.
|
|
@@ -11,4 +11,4 @@
|
|
|
11
11
|
*
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
import{asFunction,asType,CancelEventArgs,Color,isFunction,Rect,Size,isObject,assert,asInt,asString,changeType,isArray,isString,DataType,Point,_getModule,removeChild,toPlainText,ControlStateClsNames,clamp,EventArgs,_registerModule}from"@grapecity/wijmo";import*as pdf from"@grapecity/wijmo.pdf";import*as selfModule from"@grapecity/wijmo.grid.pdf";export function softGrid(){return _getModule("wijmo.grid")}export function softDetail(){return _getModule("wijmo.grid.detail")}export function softMultiRow(){return _getModule("wijmo.grid.multirow")}export function softSheet(){return _getModule("wijmo.grid.sheet")}export function softOlap(){return _getModule("wijmo.olap")}export function softTransposed(){return _getModule("wijmo.grid.transposed")}export function softTransposedMultiRow(){return _getModule("wijmo.grid.transposedmultirow")}export class PdfFormatItemEventArgs extends CancelEventArgs{constructor(e,t,r,o,l,n,s,i,a){super();this.cancelBorders=!1;this._p=e;this._rng=t;"undefined"!=typeof HTMLElement&&(this._cell=asType(r,HTMLElement,!0));this._canvas=o;this._clientRect=l;this._contentRect=n;this._style=s;this._getFormattedCell=i;this._getTextRect=a}get panel(){return this._p}get range(){return this._rng.clone()}get row(){return this._rng.row}get col(){return this._rng.col}get data(){return this._data}set data(e){this._data=e}get canvas(){return this._canvas}get cell(){return this._cell}get clientRect(){return this._clientRect}get contentRect(){return this._contentRect}drawBackground(e){const t=this.clientRect;e&&t.width>0&&t.height>0&&this.canvas.paths.rect(t.left,t.top,t.width,t.height).fill(e||this.style.backgroundColor)}getFormattedCell(){return asFunction(this._getFormattedCell)()}get tagContent(){return this._tagContent}set tagContent(e){this._tagContent=e}get style(){return this._style}get textTop(){!this._textRect&&isFunction(this._getTextRect)&&(this._textRect=this._getTextRect());return this._textRect?this._textRect.top:this._contentRect.top}}export var ScaleMode;!function(e){e[e.ActualSize=0]="ActualSize";e[e.PageWidth=1]="PageWidth";e[e.SinglePage=2]="SinglePage"}(ScaleMode||(ScaleMode={}));export var ExportMode;!function(e){e[e.All=0]="All";e[e.Selection=1]="Selection"}(ExportMode||(ExportMode={}));export var _CellType;!function(e){e[e.None=0]="None";e[e.Cell=1]="Cell";e[e.ColumnHeader=2]="ColumnHeader";e[e.RowHeader=3]="RowHeader";e[e.TopLeft=4]="TopLeft";e[e.ColumnFooter=5]="ColumnFooter";e[e.BottomLeft=6]="BottomLeft"}(_CellType||(_CellType={}));export function _merge(e,t,r=!1){!e&&t&&(e={});if(t&&e)for(var o in t){let l=t[o],n=e[o];if(isObject(l)){if(void 0===n||!isObject(n)&&r){if(isFunction(l.clone)){e[o]=n=l.clone();continue}e[o]=n={}}isObject(n)&&_merge(e[o],l,r)}else(void 0===n||r&&void 0!==l)&&(e[o]=l)}return e}export function _combineColumns(e,t){return{aggregate:t.aggregate,binding:t.binding,name:t.name,dataType:t.dataType,wordWrap:t.wordWrap,multiLine:t.multiLine,getAlignment:e=>{if("getAlignment"in t)return t.getAlignment(e)},index:e.index,visibleIndex:e.visibleIndex,isVisible:e.isVisible,renderWidth:e.renderWidth}}export function _cloneStyle(e){if(!e)return null;var t={},toCamel=e=>e.replace(/-([a-z])/g,(e,t,r)=>r>0?t.toUpperCase():t);for(let r=0,o=e.length;r<o;r++){const o=e[r];t[toCamel(o)]=e.getPropertyValue(o)}return t}export class _FlexGridPdfCoreConverter{static draw(e,t,r,o,l,n){assert(!!e,"The flex argument cannot be null.");assert(!!t,"The doc argument cannot be null.");null==(n=_FlexGridPdfCoreConverter._applyDefaultDrawSettings(n)).scaleMode&&(n.scaleMode=null==o?ScaleMode.ActualSize:null==l?ScaleMode.PageWidth:ScaleMode.SinglePage);_FlexGridPdfCoreConverter._drawInternal(e,t,r,o,l,n)}static _applyDefaultDrawSettings(e){return _merge(_merge({},e),_FlexGridPdfCoreConverter.DefaultDrawSettings)}static _drawInternal(e,t,r,o,l,n){const s=null!=r,i=new Size(t.width,t.height);r||(r=new Point(0,t.y));isArray(n.embeddedFonts)&&n.embeddedFonts.forEach(e=>{t.registerFont(e)});const a=_FlexGridPdfCoreConverter._getRowsToRender(e,n),d=new FlexGridRenderer(e,n,a,_FlexGridPdfCoreConverter.BorderWidth,!0);let h=new Rect(r.x||0,r.y||0,o||i.width,l||i.height);const c=_FlexGridPdfCoreConverter._getScaleFactor(d,n.scaleMode,h);if(r.y>0&&_FlexGridPdfCoreConverter._canBreakRows(n.scaleMode)){const n=a.find(e.cells,e=>d.isRenderableRow(e));if(n){const s=(h.height-h.top)*(1/c);if((d.showColumnHeader?pdf.pxToPt(e.columnHeaders.height):0)+pdf.pxToPt(n.renderHeight)-_FlexGridPdfCoreConverter.BorderWidth>s){t.addPage();h=new Rect(r.x||0,0,o||i.width,l||i.height)}}}n._mergedCellTextState={};const g=_FlexGridPdfCoreConverter._getPages(d,a,h,n,s,c),u=(n.progress?_FlexGridPdfCoreConverter._getCellsCount(e,n,g):0)/n._progressMax;let f=0,p=0;const _=n.progress?()=>{if(++f-p>=50){p=f;n.progress(f/u)}}:null;n.progress&&n.progress(0);for(let r=0;r<g.length;r++){r>0&&t.addPage();const o=g[r],l=0===o.pageCol?h.left:0,s=0===o.pageRow?h.top:0;t.saveState();t.paths.rect(0,0,t._widthCtm,t._heightCtm).clip();t.scale(c,c,new Point(l,s));t.translate(l,s);const i=new FlexGridRenderer(e,n,o.range,_FlexGridPdfCoreConverter.BorderWidth,r===g.length-1);i.render(t,_);t.restoreState();t.x=l;t.y=s+i.renderSize.height*c}n.progress&&0<n._progressMax&&n.progress(n._progressMax)}static _getCellsCount(e,t,r){var o=0;for(let l=0;l<r.length;l++){o+=new FlexGridRenderer(e,t,r[l].range,0,!1).getCellsCount()}return o}static _getRowsToRender(e,t){var r=[];t.exportMode==ExportMode.All?r.push(new _CellRange(0,0,e.rows.length-1,e.columns.length-1)):r=e.getSelection();var o=new RowRange(r);if(o.isValid&&!t.drawDetailRows){const t=[];o.forEach(e.cells,(r,o,l)=>{if(!e.isDetailRow(r)){const e=t.length;e&&t[e-1].bottomRow+1===l?t[e-1].row2++:t.push(new _CellRange(l,o.col,l,o.col2))}});o=new RowRange(t)}return o}static _getScaleFactor(e,t,r){let o=1;if(t==ScaleMode.ActualSize)return o;const l=e.renderSize;let n;if(t==ScaleMode.SinglePage){n=Math.min(r.width/l.width,r.height/l.height);n<1&&(o=n)}else{n=r.width/l.width;n<1&&(o=n)}return o}static _canBreakRows(e){return e==ScaleMode.ActualSize||e==ScaleMode.PageWidth}static _getPages(e,t,r,o,l,n){let s=[],i=[],a=pdf.pxToPt,d=e.flex,h=e.showColumnHeader,c=e.showColumnFooter,g=e.showRowHeader,u=h?a(d.columnHeaders.height):0,f=c?a(d.columnFooters.height):0,p=g?a(d.rowHeaders.width):0,_=_FlexGridPdfCoreConverter._canBreakRows(o.scaleMode),w=o.scaleMode==ScaleMode.ActualSize,C=(r.width-r.left)*(1/n),m=(r.height-r.top)*(1/n),R=r.width*(1/n),x=r.height*(1/n),b=u,S=p,T=l&&o.scaleMode==ScaleMode.ActualSize,y=m;if(_){let r=0,o=0;t.forEach(d.cells,(t,l,n,i)=>{y=s.length?x:m;if(e.isRenderableRow(t)){const e=a(t.renderHeight)+1;r++;b+=e;(h||r>1)&&(b-=_FlexGridPdfCoreConverter.BorderWidth);if(b>y){if(T||u+e>y&&0===o){s.push(i);b=u}else{s.push(i-1);b=u+e}o=0;h&&(b-=_FlexGridPdfCoreConverter.BorderWidth)}else o++}})}const P=Math.max(t.length()-1,0);s.length&&s[s.length-1]===P||s.push(P);c&&b+f>y&&s.push(-1);if(w){let r=0;for(let o=t.leftCol;o<=t.rightCol;o++){const t=d.columns[o];if(e.isRenderableColumn(t)){const e=a(t.renderWidth),l=i.length?R:C;r++;S+=e;(g||r>1)&&(S-=_FlexGridPdfCoreConverter.BorderWidth);if(S>l){if(p+e>l||T){i.push(o);S=p}else{i.push(o-1);S=p+e}g&&(S-=_FlexGridPdfCoreConverter.BorderWidth)}}}}i.length&&i[i.length-1]===t.rightCol||i.push(t.rightCol);let G=[],v=!1,F=1,M=l&&o.maxPages>0?1:o.maxPages;for(let e=0;e<s.length&&!v;e++)for(let r=0;r<i.length&&!v;r++,F++){v=F>M;if(!v){const o=0===e?0:s[e-1]+1,l=0===r?t.leftCol:i[r-1]+1,n=-1===s[e]?new RowRange([new _CellRange(-1,l,-1,i[r])]):t.subrange(o,s[e]-o+1,l,i[r]);G.push(new PdfPageRowRange(n,r,e))}}return G}}_FlexGridPdfCoreConverter.BorderWidth=1;_FlexGridPdfCoreConverter.DefFont=new pdf.PdfFont;_FlexGridPdfCoreConverter.DefaultDrawSettings={customCellContent:!1,drawDetailRows:!1,exportMode:ExportMode.All,maxPages:Number.MAX_VALUE,repeatMergedValuesAcrossPages:!0,recalculateStarWidths:!0,styles:{cellStyle:{font:{family:_FlexGridPdfCoreConverter.DefFont.family,size:_FlexGridPdfCoreConverter.DefFont.size,style:_FlexGridPdfCoreConverter.DefFont.style,weight:_FlexGridPdfCoreConverter.DefFont.weight},padding:1.5,verticalAlign:"middle"},headerCellStyle:{font:{weight:"bold"}}},quickCellStyles:!0,_progressMax:1};class FlexGridRenderer{constructor(e,t,r,o,l){this._flex=e;this._borderWidth=o;this._lastPage=l;this._settings=t||{};this._topLeft=new PanelSectionRenderer(this,e.topLeftCells,this.showRowHeader&&this.showColumnHeader?new RowRange([new _CellRange(0,0,e.topLeftCells.rows.length-1,e.topLeftCells.columns.length-1)]):new RowRange([]),o);this._rowHeader=new PanelSectionRenderer(this,e.rowHeaders,this.showRowHeader?r.clone(0,e.rowHeaders.columns.length-1):new RowRange([]),o);this._columnHeader=new PanelSectionRenderer(this,e.columnHeaders,this.showColumnHeader?new RowRange([new _CellRange(0,r.leftCol,e.columnHeaders.rows.length-1,r.rightCol)]):new RowRange([]),o);this._cells=new PanelSectionRenderer(this,e.cells,r,o);this._bottomLeft=new PanelSectionRenderer(this,e.bottomLeftCells,this.showRowHeader&&this.showColumnFooter?new RowRange([new _CellRange(0,0,e.bottomLeftCells.rows.length-1,e.bottomLeftCells.columns.length-1)]):new RowRange([]),o);this._columnFooter=new PanelSectionRenderer(this,e.columnFooters,this.showColumnFooter?new RowRange([new _CellRange(0,r.leftCol,e.columnFooters.rows.length-1,r.rightCol)]):new RowRange([]),o)}get settings(){return this._settings}isRenderableRow(e){return this._flex.isRenderableRow(e)}isRenderableColumn(e){return this._flex.isRenderableColumn(e)}getCellsCount(){return this._topLeft.getCellsCount()+this._rowHeader.getCellsCount()+this._columnHeader.getCellsCount()+this._cells.getCellsCount()+this._bottomLeft.getCellsCount()+this._columnFooter.getCellsCount()}render(e,t){let r,o,l,n;if(e.tagged){r=o=l=n=new TrStructCache(e,e.tag(pdf.PdfTagType.Table));e.addTag(r.el);if(e.version>=pdf.PdfVersion.v1_5){o=new TrStructCache(e,e.tag(pdf.PdfTagType.THead));r.el.add(o.el);l=new TrStructCache(e,e.tag(pdf.PdfTagType.TBody));r.el.add(l.el);n=new TrStructCache(e,e.tag(pdf.PdfTagType.TFoot));r.el.add(n.el)}}let s=Math.max(0,Math.max(this._topLeft.renderSize.width,this._rowHeader.renderSize.width)-this._borderWidth),i=Math.max(0,Math.max(this._topLeft.renderSize.height,this._columnHeader.renderSize.height)-this._borderWidth);this._topLeft.render(e,0,0,t,o);this._rowHeader.render(e,0,i,t,l);this._columnHeader.render(e,s,0,t,o);this._cells.render(e,s,i,t,l);i+=Math.max(0,this._cells.renderSize.height-this._borderWidth);this._bottomLeft.render(e,0,i,t,n);this._columnFooter.render(e,s,i,t,n)}get flex(){return this._flex}get renderSize(){var e=Math.max(this._topLeft.renderSize.height,this._columnHeader.renderSize.height)+Math.max(this._rowHeader.renderSize.height,this._cells.renderSize.height)+Math.max(this._bottomLeft.renderSize.height,this._columnFooter.renderSize.height),t=Math.max(this._topLeft.renderSize.width,this._rowHeader.renderSize.width)+Math.max(this._columnHeader.renderSize.width,this._cells.renderSize.width);this._columnHeader.renderableRowsCount>0&&(e-=this._borderWidth);this._columnFooter.renderableRowsCount>0&&(e-=this._borderWidth);this._rowHeader.renderableColumnsCount>0&&(t-=this._borderWidth);return new Size(t,e)}get showColumnHeader(){return this._flex.showColumnHeader}get showRowHeader(){return this._flex.showRowHeader}get showColumnFooter(){return this._lastPage&&this._flex.showColumnFooter}alignMergedTextToTheTopRow(e){return this._flex.alignMergedTextToTheTopRow(e)}getColumn(e,t,r){return this._flex.getColumn(e,t,r)}isAlternatingRow(e){return this._flex.isAlternatingRow(e)}isGroupRow(e){return this._flex.isGroupRow(e)}isNewRow(e){return this._flex.isNewRow(e)}isExpandableGroupRow(e){return this._flex.isExpandableGroupRow(e)}isBooleanCell(e,t,r){return this._flex.isBooleanCell(e,t,r)}getCellStyle(e,t,r){return this._flex.getCellStyle(e,t,r)}}class PanelSection{constructor(e,t,r){this._flex=e;this._panel=t;this._range=r.clone()}get renderableRowsCount(){if(null==this._renderableRowsCnt){this._renderableRowsCnt=0;this._range.forEach(this._panel,e=>{this._flex.isRenderableRow(e)&&this._renderableRowsCnt++})}return this._renderableRowsCnt}get renderableColumnsCount(){if(null==this._renderableColumnsCnt){this._renderableColumnsCnt=0;if(this._range.isValid)for(let e=this._range.leftCol;e<=this._range.rightCol;e++)this._flex.isRenderableColumn(this._panel.columns[e])&&this._renderableColumnsCnt++}return this._renderableColumnsCnt}get size(){if(null==this._size){const e=this._range.getRenderSize(this._flex,this._panel);this._size=new Size(pdf.pxToPt(e.width),pdf.pxToPt(e.height))}return this._size}get range(){return this._range}get panel(){return this._panel}}class PanelSectionRenderer extends PanelSection{constructor(e,t,r,o){super(e.flex,t,r);this._gr=e;this._borderWidth=o}get gr(){return this._gr}get renderSize(){if(null==this._renderSize){this._renderSize=this.size.clone();this.renderableColumnsCount>1&&(this._renderSize.width-=this._borderWidth*(this.renderableColumnsCount-1));this.renderableRowsCount>1&&(this._renderSize.height-=this._borderWidth*(this.renderableRowsCount-1))}return this._renderSize}_getRangeWidth(e,t){let r=0,o=0;const l=this.panel;for(let n=e;n<=t;n++){const e=l.columns[n];if(this._gr.isRenderableColumn(e)){o++;r+=e.renderWidth}}r=pdf.pxToPt(r);o>1&&(r-=this._borderWidth*(o-1));return r}_getRangeHeight(e,t){let r=0,o=0;const l=this.panel;for(let n=e;n<=t;n++){const e=l.rows[n];if(this._gr.isRenderableRow(e)){o++;r+=e.renderHeight}}r=pdf.pxToPt(r);o>1&&(r-=this._borderWidth*(o-1));return r}getCellsCount(){let e=0;const t=this.range,r=this.panel,o=new GetMergedRangeProxy(this._gr.flex);if(!t.isValid)return e;t.forEach(r,(l,n,s)=>{if(this._gr.isRenderableRow(l))for(let l=t.leftCol;l<=t.rightCol;l++){if(!this._gr.isRenderableColumn(r.columns[l]))continue;let i,a=!1;const d=o.getMergedRange(r,s,l);if(d){const e=s===d.firstVisibleRow,r=l===d.leftCol,o=s===n.topRow,h=l===n.leftCol,c=d.rowSpan>1,g=d.columnSpan>1;if(c&&g&&(e&&r||o&&h)||c&&!g&&(e||o)||!c&&g&&(r||h)){a=!0;g&&(i=Math.min(t.rightCol,d.rightCol))}}else a=!0;a&&e++;i&&(l=i)}});return e}render(e,t,r,o,l){const n=this.range;if(!n.isValid)return;const s={},i=this.panel,a=new GetMergedRangeProxy(this._gr.flex),d=new _CellRangeExt(i,0,0,0,0),h=new _CellRenderer(this,e,this._borderWidth);for(let e=n.leftCol;e<=n.rightCol;e++)s[e]=r;n.forEach(i,(r,c,g)=>{if(!this._gr.isRenderableRow(r))return;const u=l?l.getTR(g,i.cellType):null;let f=t;for(let t=n.leftCol;t<=n.rightCol;t++){const l=this.gr.getColumn(i,g,t);if(!this._gr.isRenderableColumn(l))continue;let p,_,w,C,m,R=!1;const x=this._gr.flex.getCellContent(this.panel,r,l,t),b=a.getMergedRange(i,g,t);if(b){if(g>=b.topRow){d.copyFrom(b);const e=g===b.firstVisibleRow,r=t===b.leftCol,o=g===c.topRow,l=t===c.leftCol,i=b.rowSpan>1,a=b.columnSpan>1;if(i&&a&&(e&&r||o&&l)||i&&!a&&(e||o)||!i&&a&&(r||l)){R=!0;m=b.topRow>=c.topRow&&b.bottomRow<=c.bottomRow?null:`${b.firstVisibleRow}_${b.leftCol}`;if(this.gr.settings.repeatMergedValuesAcrossPages)w=x;else if(e&&r)w=x;else{const e=this.gr.settings._mergedCellTextState,t=e&&e[m]||0;w=t>0&&x?x.substring(t):x}p=i?this._getRangeHeight(g,Math.min(b.bottomRow,c.bottomRow)):this._getRangeHeight(g,g);if(a){_=this._getRangeWidth(Math.max(n.leftCol,b.leftCol),Math.min(n.rightCol,b.rightCol));C=Math.min(n.rightCol,b.rightCol);for(let e=t+1;e<=C;e++)s[e]+=p-this._borderWidth}}}else p=this._getRangeHeight(g,g);null==_&&(_=this._getRangeWidth(t,t))}else{d.setRange(g,t,g,t);R=!0;w=x;p=this._getRangeHeight(g,g);_=this._getRangeWidth(t,t)}if(R&&_>0&&p>0){const n=h.renderCell(w,r,l,d,new Rect(f,s[t],_,p));if(m&&!this.gr.settings.repeatMergedValuesAcrossPages){const e=this.gr.settings._mergedCellTextState;e&&(e[m]=(e[m]||0)+h._lastRenderCharCount)}if(u){const t=e.tag(i.cellType===_CellType.ColumnHeader||i.cellType==_CellType.TopLeft?pdf.PdfTagType.TH:pdf.PdfTagType.TD);n&&t.add(n);u.add(t)}o&&o()}p&&(s[t]+=p-this._borderWidth);_&&(f+=_-this._borderWidth);C&&(t=C)}})}}class TrStructCache{constructor(e,t){this.doc=e;this.tableSection=t;this._trh=[];this._trb=[];this._trf=[]}get el(){return this.tableSection}getTR(e,t){const r=t===_CellType.TopLeft||t===_CellType.ColumnHeader?this._trh:t===_CellType.RowHeader||t===_CellType.Cell?this._trb:this._trf;let o=r[e];if(!o){o=this.doc.tag(pdf.PdfTagType.TR);r[e]=o;this.tableSection.add(o)}return o}}export class _CellRenderer{constructor(e,t,r){this.InvisiblePen=new pdf.PdfPen(Color.fromRgba(0,0,0,0),0);this._lastRenderCharCount=0;this._pr=e;this._area=t;this._borderWidth=r}renderCell(e,t,r,o,l){this._lastRenderCharCount=0;let n;const s=this._pr.gr.flex,i=this._pr.panel,getGridCell=e=>s.getCell(i,o.topRow,o.leftCol,e);let a=null;const d=this._pr.gr.getCellStyle(i,t,r),h=this._pr.gr.settings.customCellContent,c=isFunction(this._pr.gr.settings.formatItem);if(h){a=getGridCell(c);const e=s.getComputedStyle(i,a);d.color=e.color;d.backgroundColor=e.backgroundColor;const t=s.getComputedDefBorderColor();d.borderLeftColor="none"!=e.borderLeftStyle?e.borderLeftColor:t;d.borderRightColor="none"!=e.borderRightStyle?e.borderRightColor:t;d.borderTopColor="none"!=e.borderTopStyle?e.borderTopColor:t;d.borderBottomColor="none"!=e.borderBottomStyle?e.borderBottomColor:t;d.font=new pdf.PdfFont(e.fontFamily,pdf._asPt(e.fontSize,!0,void 0),e.fontStyle,e.fontWeight);d.textAlign=e.textAlign;d.textDecoration=e.textDecoration}if(d.font&&!(d.font instanceof pdf.PdfFont)){const e=d.font;d.font=new pdf.PdfFont(e.family,e.size,e.style,e.weight)}d.boxSizing="border-box";d.borderWidth=this._borderWidth;d.borderStyle="solid";h||this._pr.gr.isExpandableGroupRow(t)&&0===r.visibleIndex||(d.textAlign=r.getAlignment(t));if(i.cellType===_CellType.Cell&&s.rows.maxGroupLevel>=0&&o.leftCol===s.columns.firstVisibleIndex){const e=s.isGroupRow(t)?Math.max(t.level,0):s.rows.maxGroupLevel+1,r=pdf._asPt(d.paddingLeft||d.padding),o=pdf.pxToPt(e*s.treeIndent);d.paddingLeft=r+o}var g=this._measureCell(e,i,t,r,d,l);const u=o.rowSpan>1&&o.visibleRowsCount>1&&this._pr.gr.alignMergedTextToTheTopRow(i)?new Rect(g.contentRect.left,g.contentRect.top,g.contentRect.width,g.contentRect.height/(o.visibleRowsCount||1)):g.contentRect;let f,p=!0,_=!0;if(c){n=new PdfFormatItemEventArgs(i,o,a,this._area,g.rect,g.contentRect,d,()=>a||getGridCell(!0),()=>{g.textRect=this._calculateTextRect(e,i,t,r,u,d);return g.textRect});n.data=e;this._pr.gr.settings.formatItem(n);if(n.data!==e){e=asString(n.data);g.textRect=null}p=!n.cancel;_=!n.cancelBorders;f=n.tagContent}p&&!g.textRect&&(g.textRect=this._calculateTextRect(e,i,t,r,u,d));return this._renderCell(e,t,r,o,g,d,p,_,null==f)||f}_renderCell(e,t,r,o,l,n,s,i,a){if(!s&&!i)return;const d=this._area.document.tagged,h=this._area.document;d&&h.beginArtifact({type:pdf.PdfArtifactType.Layout});this._renderEmptyCell(l,n,s,i);d&&h.endArtifact();let c;if(s){a=!0===d&&!0===a;let o;if(this._isBooleanCellAndValue(e,this._pr.panel,t,r)){if(a){c=h.tag(pdf.PdfTagType.Span,null,{actual:e.toString()});o=h.beginTagContent(pdf.PdfTagType.Span)}this._renderBooleanCell(e,l,n)}else{if(a){c=h.tag(pdf.PdfTagType.P);o=h.beginTagContent(pdf.PdfTagType.P)}this._renderTextCell(e,l,n)}if(a){h.endTagContent();c.add(o)}}return c}_isBooleanCellAndValue(e,t,r,o){return this._pr.gr.isBooleanCell(t,r,o)&&this._isBoolean(e)}_isBoolean(e){var t=isString(e)&&e.toLowerCase();return"true"===t||"false"===t||!0===e||!1===e}_measureCell(e,t,r,o,l,n){this._decompositeStyle(l);const s=n.left,i=n.top,a=n.height,d=n.width,h=this._parseBorder(l),c=h.left.width,g=h.top.width,u=h.bottom.width,f=h.right.width,p=this._parsePadding(l);let _=0,w=0,C=0,m=0;if("content-box"===l.boxSizing||void 0===l.boxSizing){_=p.top+a+p.bottom;w=p.left+d+p.right;C=a;m=d}else{if("border-box"!==l.boxSizing)throw"Invalid value: "+l.boxSizing;if(pdf._IE&&l instanceof CSSStyleDeclaration){_=p.top+p.bottom+a;w=p.left+p.right+d}else{_=Math.max(a-g-u,0);w=Math.max(d-c-f,0)}C=Math.max(_-p.top-p.bottom,0);m=Math.max(w-p.left-p.right,0)}return{rect:new Rect(s,i,d,a),clientRect:new Rect(s+c,i+g,w,_),contentRect:new Rect(s+c+p.left,i+g+p.top,m,C),textRect:null}}_decompositeStyle(e){if(e){let t;t=e.borderColor;if(t){e.borderLeftColor||(e.borderLeftColor=t);e.borderRightColor||(e.borderRightColor=t);e.borderTopColor||(e.borderTopColor=t);e.borderBottomColor||(e.borderBottomColor=t)}t=e.borderWidth;if(t){e.borderLeftWidth||(e.borderLeftWidth=t);e.borderRightWidth||(e.borderRightWidth=t);e.borderTopWidth||(e.borderTopWidth=t);e.borderBottomWidth||(e.borderBottomWidth=t)}t=e.borderStyle;if(t){e.borderLeftStyle||(e.borderLeftStyle=t);e.borderRightStyle||(e.borderRightStyle=t);e.borderTopStyle||(e.borderTopStyle=t);e.borderBottomStyle||(e.borderBottomStyle=t)}t=e.padding;if(t){e.paddingLeft||(e.paddingLeft=t);e.paddingRight||(e.paddingRight=t);e.paddingTop||(e.paddingTop=t);e.paddingBottom||(e.paddingBottom=t)}}}_parseBorder(e){var t={left:{width:0},top:{width:0},bottom:{width:0},right:{width:0}};"none"!==e.borderLeftStyle&&(t.left={width:pdf._asPt(e.borderLeftWidth),style:e.borderLeftStyle,color:e.borderLeftColor});"none"!==e.borderTopStyle&&(t.top={width:pdf._asPt(e.borderTopWidth),style:e.borderTopStyle,color:e.borderTopColor});"none"!==e.borderBottomStyle&&(t.bottom={width:pdf._asPt(e.borderBottomWidth),style:e.borderBottomStyle,color:e.borderBottomColor});"none"!==e.borderRightStyle&&(t.right={width:pdf._asPt(e.borderRightWidth),style:e.borderRightStyle,color:e.borderRightColor});return t}_parsePadding(e){return{left:pdf._asPt(e.paddingLeft),top:pdf._asPt(e.paddingTop),bottom:pdf._asPt(e.paddingBottom),right:pdf._asPt(e.paddingRight)}}_renderEmptyCell(e,t,r,o){var l=e.rect.left,n=e.rect.top,s=e.clientRect.width,i=e.clientRect.height,a=e.clientRect.left-e.rect.left,d=e.clientRect.top-e.rect.top,h=e.rect.top+e.rect.height-(e.clientRect.top+e.clientRect.height),c=e.rect.left+e.rect.width-(e.clientRect.left+e.clientRect.width);r=r&&t.backgroundColor&&s>0&&i>0;if(o&&(a||c||h||d)){const e=t.borderLeftColor||t.borderColor,o=t.borderRightColor||t.borderColor,g=t.borderTopColor||t.borderColor,u=t.borderBottomColor||t.borderColor;if(a&&d&&h&&c&&a===c&&a===h&&a===d&&e===o&&e===u&&e===g){const o=a,d=o/2,h=this._area.paths.rect(l+d,n+d,s+o,i+o);if(r){h.fillAndStroke(t.backgroundColor,new pdf.PdfPen(e,o));return}h.stroke(new pdf.PdfPen(e,o))}else{a&&this._area.paths.polygon([[l,n],[l+a,n+d],[l+a,n+d+i],[l,n+d+i+h]]).fill(e);d&&this._area.paths.polygon([[l,n],[l+a,n+d],[l+a+s,n+d],[l+a+s+c,n]]).fill(g);c&&this._area.paths.polygon([[l+a+s+c,n],[l+a+s,n+d],[l+a+s,n+d+i],[l+a+s+c,n+d+i+h]]).fill(o);h&&this._area.paths.polygon([[l,n+d+i+h],[l+a,n+d+i],[l+a+s,n+d+i],[l+a+s+c,n+d+i+h]]).fill(u)}}r&&this._area.paths.rect(e.clientRect.left,e.clientRect.top,e.clientRect.width,e.clientRect.height).fillAndStroke(t.backgroundColor,this.InvisiblePen)}_renderBooleanCell(e,t,r){if(!(!t.textRect||t.textRect.height<=0||t.textRect.width<=0)){var o=t.textRect.left,l=t.textRect.top,n=t.textRect.height;this._area.paths.rect(o,l,n,n).fillAndStroke(Color.fromRgba(255,255,255),new pdf.PdfPen(void 0,.5));if(!0===changeType(e,DataType.Boolean,"")){const e=n/20,t=n-.5-2*e,r=n/8;this._area.document.saveState();this._area.translate(o+.25+e,l+.25+e).paths.moveTo(r/2,.6*t).lineTo(t-.6*t,t-r).lineTo(t-r/2,r/2).stroke(new pdf.PdfPen(void 0,r));this._area.document.restoreState()}}}_renderTextCell(e,t,r){if(!e||!t.textRect||t.textRect.height<=0||t.textRect.width<=0)return;var o=r.textDecoration||"",l=o.indexOf("line-through")>=0,n=o.indexOf("underline")>=0;const s=this._area.drawText(e,t.textRect.left,t.textRect.top,{brush:r.color,font:r.font,height:t.textRect.height,width:t.textRect.width,align:"center"===r.textAlign?pdf.PdfTextHorizontalAlign.Center:"right"===r.textAlign?pdf.PdfTextHorizontalAlign.Right:"justify"===r.textAlign?pdf.PdfTextHorizontalAlign.Justify:pdf.PdfTextHorizontalAlign.Left,strike:l,underline:n});s&&(this._lastRenderCharCount=s.charCount)}_calculateTextRect(e,t,r,o,l,n){if(null!=e&&!isString(e))return null;const s=l.clone();if(this._isBooleanCellAndValue(e,t,r,o)){const e=this._getTextLineHeight(n.font);switch(n.verticalAlign){case"middle":s.top=l.top+l.height/2-e/2;break;case"bottom":s.top=l.top+l.height-e}switch(n.textAlign){case"justify":case"center":s.left=l.left+l.width/2-e/2;break;case"right":s.left=l.left+l.width-e}s.height=s.width=e}else if(s.height>0&&s.width>0)switch(n.verticalAlign){case"bottom":{const t=this._area.measureText(e,n.font,{height:s.height,width:s.width});if(t.size.height<s.height){const e=this._area.document._document,r=e.currentLineHeight(!0)-e.currentLineHeight(!1);s.top+=s.height-t.size.height-r;s.height=t.size.height}break}case"middle":{const t=this._area.measureText(e,n.font,{height:s.height,width:s.width});if(t.size.height<s.height){const e=this._area.document._document,r=e.currentLineHeight(!0)-e.currentLineHeight(!1);s.top+=s.height/2-(t.size.height-r)/2;s.height=t.size.height}break}}return s}_getTextLineHeight(e){return this._area.lineHeight(e)}}class GetMergedRangeProxy{constructor(e){this._columns={};this._flex=e}getMergedRange(e,t,r){const o=this._columns[r];if(o&&t>=o.topRow&&t<=o.bottomRow)return o;{let o=this._flex.getMergedRange(e,t,r),l=e.columns,n=e.rows;if(o&&!o.isSingleCell&&(!l[o.col].isVisible||!l[o.col2].isVisible||!n[o.row].isVisible||!n[o.row2].isVisible)){o=o.clone();for(;o.col<o.col2&&!l[o.col].isVisible;)o.col++;for(;o.col2>o.col&&!l[o.col2].isVisible;)o.col2--;for(;o.row<o.row2&&!n[o.row].isVisible;)o.row++;for(;o.row2>o.row&&!n[o.row2].isVisible;)o.row2--}o&&o.isSingleCell&&(o=null);this._columns[r]=o?new _CellRangeExt(e,o):null;return this._columns[r]}}}export class _CellRange{constructor(e,t,r,o){if("number"==typeof e){this._row=e;this._col=t;this._row2=r;this._col2=o}else{this._row=e.row;this._col=e.col;this._row2=e.row2;this._col2=e.col2}(this._row<0||this._row2<0)&&(this._row=this._row2=-1);(this._col<0||this._col2<0)&&(this._col=this._col2=-1)}get row(){return this._row}set row(e){this._row=e}get col(){return this._col}set col(e){this._col=e}get row2(){return this._row2}set row2(e){this._row2=e}get col2(){return this._col2}set col2(e){this._col2=e}get topRow(){return Math.min(this._row,this._row2)}get bottomRow(){return Math.max(this._row,this._row2)}get leftCol(){return Math.min(this._col,this._col2)}get rightCol(){return Math.max(this._col,this._col2)}get columnSpan(){return Math.abs(this._col2-this._col)+1}get rowSpan(){return Math.abs(this._row2-this._row)+1}get isValid(){return this._row>-1&&this._col>-1&&this._row2>-1&&this._col2>-1}get isSingleCell(){return this._row===this._row2&&this._col===this._col2}copyFrom(e){this.setRange(e.row,e.col,e.row2,e.col2)}clone(){return new _CellRange(this._row,this._col,this._row2,this._col2)}getRenderSize(e,t){const r=new Size(0,0);if(this.isValid){for(let o=this.topRow;o<=this.bottomRow;o++){const l=t.rows[o];e.isRenderableRow(l)&&(r.height+=l.renderHeight)}for(let o=this.leftCol;o<=this.rightCol;o++){const l=t.columns[o];e.isRenderableColumn(l)&&(r.width+=l.renderWidth)}}return r}setRange(e=-1,t=-1,r=e,o=t){this._row=asInt(e);this._col=asInt(t);this._row2=asInt(r);this._col2=asInt(o)}}export class _CellRangeExt extends _CellRange{constructor(e,t,r,o,l){super(t,r,o,l);this.firstVisibleRow=-1;this.visibleRowsCount=0;if(e){const t=this.topRow,r=this.bottomRow,o=e.rows.length;if(o>0)for(let l=t;l<=r&&l<o;l++)if(e.rows[l].isVisible){this.firstVisibleRow<0&&(this.firstVisibleRow=l);this.visibleRowsCount++}}}copyFrom(e){super.copyFrom(e);this.firstVisibleRow=e.firstVisibleRow;this.visibleRowsCount=e.visibleRowsCount}clone(){return new _CellRangeExt(null,this.row,this.col,this.row2,this.col2)}}class RowRange{constructor(e){this._ranges=e||[]}length(){let e=0;for(let t=0;t<this._ranges.length;t++){const r=this._ranges[t];r.isValid&&(e+=r.bottomRow-r.topRow+1)}return e}get isValid(){return this._ranges.length&&this._ranges[0].isValid}get leftCol(){return this._ranges.length?this._ranges[0].leftCol:-1}get rightCol(){return this._ranges.length?this._ranges[0].rightCol:-1}clone(e,t){const r=[];for(let o=0;o<this._ranges.length;o++){const l=this._ranges[o].clone();arguments.length>0&&(l.col=e);arguments.length>1&&(l.col2=t);r.push(l)}return new RowRange(r)}getRenderSize(e,t){const r=new Size(0,0);for(let o=0;o<this._ranges.length;o++){const l=this._ranges[o].getRenderSize(e,t);r.width=Math.max(r.width,l.width);r.height+=l.height}return r}find(e,t){let r=null;this.forEach(e,e=>{if(!0===t(e)){r=e;return!1}});return r}forEach(e,t){let r=0,o=!1;for(let l=0;l<this._ranges.length&&!o;l++){const n=this._ranges[l];if(n.isValid)for(let l=n.topRow;l<=n.bottomRow&&!o;l++)o=!1===t(e.rows[l],n,l,r++)}}subrange(e,t,r,o){const l=[];if(e>=0&&t>0){let n=0,s=0;for(let i=0;i<this._ranges.length&&t>0;i++,n=s+1){const a=this._ranges[i];s=n+(a.bottomRow-a.topRow);if(e>s)continue;const d=e>n?a.topRow+(e-n):a.topRow,h=Math.min(a.bottomRow,d+t-1),c=arguments.length>2?r:a.leftCol,g=arguments.length>2?o:a.rightCol;l.push(new _CellRange(d,c,h,g));t-=h-d+1}}return new RowRange(l)}}class PdfPageRowRange{constructor(e,t,r){this._col=t;this._row=r;this._range=e}get range(){return this._range}get pageCol(){return this._col}get pageRow(){return this._row}}var _fc;const FAKE_CELL="wj-pdf-fake-cell";function getFakeCell(e){if(!_fc){(_fc=document.createElement("div")).setAttribute(FAKE_CELL,"true");softGrid()&&_fc.setAttribute(softGrid().FlexGrid._WJS_MEASURE,"true")}const t=_fc.style;t.cssText="";t.position="absolute";t.overflow="hidden";t.width="1px";t.height="1px";t.clipPath="inset(100%)";t.clip="rect(0 0 0 0)";const r=e.hostElement,o=r.children.length?r.children[0]:r;_fc.parentNode!==o&&o.appendChild(_fc);return _fc}export function _removeFakeCell(){if(_fc){removeChild(_fc);_fc=null}}export class FlexGridPdfConverter{static draw(e,t,r,o,l){FlexGridPdfConverter.drawToPosition(e,t,null,r,o,l)}static drawToPosition(e,t,r,o,l,n){assert(!!e,"The flex argument cannot be null.");assert(!!t,"The doc argument cannot be null.");let s,i=softGrid()&&e instanceof softGrid().FlexGrid,a=e;try{n=_FlexGridPdfCoreConverter._applyDefaultDrawSettings(n);let d=e;if(i){if(n&&n.recalculateStarWidths){s=a.columns.getTotalSize();a.columns._updateStarSizes(pdf.ptToPx(t.width))}d=FlexGridPdfConverter._getFlexGridAdapter(a,n)}_FlexGridPdfCoreConverter.draw(d,t,r,o,l,n)}finally{_removeFakeCell();i&&n&&n.recalculateStarWidths&&a.columns._updateStarSizes(s)}}static export(e,t,r){assert(!!e,"The flex argument cannot be null.");assert(!!t,"The fileName argument cannot be empty.");var o=(r=FlexGridPdfConverter._applyDefaultExportSettings(r)).documentOptions.ended;r.documentOptions.ended=(e,n)=>{r.progress&&r.progress(1);o&&!1===o.apply(l,[e,n])||pdf.saveBlob(n.blob,t);e.dispose()};var l=new pdf.PdfDocument(r.documentOptions);FlexGridPdfConverter.drawToPosition(e,l,null,null,null,r);l.end()}static _getFlexGridAdapter(e,t){return new(softMultiRow()&&e instanceof softMultiRow().MultiRow&&MultiRowAdapter||softSheet()&&e instanceof softSheet().FlexSheet&&FlexSheetAdapter||softOlap()&&e instanceof softOlap().PivotGrid&&PivotGridAdapter||softTransposed()&&e instanceof softTransposed().TransposedGrid&&_TransposedGridAdapter||softTransposedMultiRow()&&e instanceof softTransposedMultiRow().TransposedMultiRow&&TransposedMultiRowAdapter||FlexGridAdapter)(e,t)}static _applyDefaultExportSettings(e){return _merge(_merge({},e),FlexGridPdfConverter._DefaultExportSettings)}}FlexGridPdfConverter._DefaultExportSettings=_merge({scaleMode:ScaleMode.PageWidth,documentOptions:{compress:!1,pageSettings:{margins:{left:36,right:36,top:18,bottom:18}}},_progressMax:.9},_FlexGridPdfCoreConverter.DefaultDrawSettings);class FlexGridAdapter{constructor(e,t){this._defBorderColor=null;this._flex=e;this._settings=t;t.quickCellStyles&&(this._styleCache=new StyleCache(500))}get flex(){return this._flex}get settings(){return this._settings}get columns(){return this._flex.columns}get rows(){return this._flex.rows}get bottomLeftCells(){return this._flex.bottomLeftCells}get cells(){return this._flex.cells}get columnFooters(){return this._flex.columnFooters}get columnHeaders(){return this._flex.columnHeaders}get rowHeaders(){return this._flex.rowHeaders}get topLeftCells(){return this._flex.topLeftCells}get treeIndent(){return this._flex.treeIndent}getSelection(){var e=[],t=this._flex.selection,r=softGrid();switch(this._flex.selectionMode){case r.SelectionMode.None:break;case r.SelectionMode.Cell:case r.SelectionMode.CellRange:e.push(new _CellRange(t.row,t.col,t.row2,t.col2));break;case r.SelectionMode.Row:e.push(new _CellRange(t.topRow,0,t.topRow,this._flex.cells.columns.length-1));break;case r.SelectionMode.RowRange:e.push(new _CellRange(t.topRow,0,t.bottomRow,this._flex.cells.columns.length-1));break;case r.SelectionMode.ListBox:{let t=-1;for(let r=0;r<this._flex.rows.length;r++){if(this._flex.rows[r].isSelected){t<0&&(t=r);r===this._flex.rows.length-1&&e.push(new _CellRange(t,0,r,this._flex.cells.columns.length-1))}else{t>=0&&e.push(new _CellRange(t,0,r-1,this._flex.cells.columns.length-1));t=-1}}break}}return e}getCell(e,t,r,o){var l=e.getCellElement(t,r);if(!l){l=getFakeCell(e);this._flex.cellFactory.updateCell(e,t,r,l,null,o)}return l}getComputedDefBorderColor(){if(null==this._defBorderColor){const e=window.getComputedStyle(this._flex.hostElement);this._defBorderColor="none"!=e.borderRightStyle?e.borderRightColor:"none"!=e.borderBottomStyle?e.borderBottomColor:"none"!=e.borderLeftStyle?e.borderLeftColor:"none"!=e.borderTopStyle?e.borderTopColor:"rgba(0,0,0,0.2)"}return this._defBorderColor}getComputedStyle(e,t){let r;const o=null==t.getAttribute(FAKE_CELL),l=t.className,n=l.indexOf(ControlStateClsNames.selected)>=0||l.indexOf(ControlStateClsNames.multiSelected)>=0;n&&(t.className=l.replace(ControlStateClsNames.selected,"").replace(ControlStateClsNames.multiSelected,""));if(this._styleCache){const o=e.hostElement;let l=t.style.cssText.split(/;\s+/).filter(e=>{var t=e.substring(0,e.indexOf(":"));return/^(color|background-color|border-color|border-left-color|border-right-color|border-top-color|border-bottom-color|font|textAlign|text-decoration)/i.test(t)}).join(";"),n=t;do{l=n.className+l}while(n!==o&&(n=n.parentElement));r=this._styleCache.getValue(l);if(!r){r=window.getComputedStyle(t);r=this._styleCache.add(l,r)}}else r=_cloneStyle(window.getComputedStyle(t));o&&n&&(t.className=l);return r}getMergedRange(e,t,r){const o=this._flex.getMergedRange(e,t,r,!1);return o?new _CellRange(o.row,o.col,o.row2,o.col2):null}get showColumnHeader(){return!!(this._flex.headersVisibility&softGrid().HeadersVisibility.Column)}get showRowHeader(){return!!(this._flex.headersVisibility&softGrid().HeadersVisibility.Row)}get showColumnFooter(){return this._flex.columnFooters.rows.length>0}alignMergedTextToTheTopRow(e){return!1}getCellData(e,t,r){return e.getCellData(t,r,!0)}getCellContent(e,t,r,o){let l,n=softGrid();if(this.settings.customCellContent){const n=this.getCell(e,t.index,o,!0);l=n.innerText.trim();l=l.replace(/\r/gm,"").replace(/\n+/gm,"\n");if(!l&&this.isBooleanCell(e,t,r)){l=this._extractCheckboxValue(n);l=null==l?"":""+l}}else{let s=r.isContentHtml;l=this.getCellData(e,t.index,o);if(this.isGroupRow(t)&&e.cellType===n.CellType.Cell&&r.index===e.columns.firstVisibleIndex){s=!0;l||(l=t.getGroupHeader())}s&&(l=toPlainText(l).trim())}return l}isBooleanCell(e,t,r){return r.dataType===DataType.Boolean&&e.cellType===softGrid().CellType.Cell&&(!this.isExpandableGroupRow(t)||r.visibleIndex>0)}getColumn(e,t,r){return e.columns[r]}isAlternatingRow(e){let t=!1,r=this._flex.alternatingRowStep;if(r){t=e.visibleIndex%(r+1)==0;1==r&&(t=!t)}return t}isGroupRow(e){return e instanceof softGrid().GroupRow}isNewRow(e){return e instanceof softGrid()._NewRowTemplate}isDetailRow(e){return softDetail()&&e instanceof softDetail().DetailRow}isExpandableGroupRow(e){return e instanceof softGrid().GroupRow&&e.hasChildren}isRenderableRow(e){return e.isVisible&&e.renderHeight>0&&!this.isNewRow(e)}isRenderableColumn(e){return e.isVisible&&e.renderWidth>0}getCellStyle(e,t,r){var o=this.settings.styles,l=_merge({},o.cellStyle),n=this._flex,s=softGrid();switch(e.cellType){case s.CellType.Cell:this.isExpandableGroupRow(t)?_merge(l,o.groupCellStyle,!0):this.isAlternatingRow(t)&&_merge(l,o.altCellStyle,!0);break;case s.CellType.ColumnHeader:case s.CellType.RowHeader:case s.CellType.TopLeft:case s.CellType.BottomLeft:_merge(l,o.headerCellStyle,!0);break;case s.CellType.ColumnFooter:_merge(l,o.headerCellStyle,!0);_merge(l,o.footerCellStyle,!0)}!this.settings.customCellContent&&n._getShowErrors()&&n._getError(e,t.index,r.index)&&_merge(l,o.errorCellStyle,!0);return l}_extractCheckboxValue(e){var t=e.querySelector("input[type=checkbox]");if(t&&"none"!==t.style.display&&"hidden"!==t.style.visibility)return t.checked}}class FlexSheetAdapter extends FlexGridAdapter{getCellData(e,t,r){return e.cellType===softGrid().CellType.Cell?e.rows[t]instanceof softSheet().HeaderRow?this.flex.columnHeaders.getCellData(t,r,!0):this.flex.getCellValue(t,r,!0):super.getCellData(e,t,r)}getCellStyle(e,t,r){var o=super.getCellStyle(e,t,r),l=this.flex.selectedSheet.findTable(t.index,r.index);if(l){const e=l.getRange(),n=t.index-e.topRow,s=r.index-e.leftCol,i=l._getTableCellAppliedStyles(n,s);i&&(i.font=new pdf.PdfFont(i.fontFamily,pdf._asPt(i.fontSize,!0,void 0),i.fontStyle,i.fontWeight));_merge(o,i,!0)}return o}get showColumnHeader(){return!1}get showRowHeader(){return!1}get showColumnFooter(){return!1}}class MultiRowAdapter extends FlexGridAdapter{getColumn(e,t,r){return _combineColumns(super.getColumn(e,t,r),this.flex.getBindingColumn(e,t,r))}isAlternatingRow(e){if(e instanceof softMultiRow()._MultiRow){let t=!1,r=this.flex.alternatingRowStep;if(r){t=e.dataIndex%(r+1)==0;1==r&&(t=!t)}return t}return super.isAlternatingRow(e)}}class PivotGridAdapter extends FlexGridAdapter{alignMergedTextToTheTopRow(e){const t=softGrid();return!this.flex.centerHeadersVertically&&(e.cellType===t.CellType.ColumnHeader||e.cellType===t.CellType.RowHeader)}}class _TransposedGridAdapter extends FlexGridAdapter{getColumn(e,t,r){const o=super.getColumn(e,t,r);if(e.cellType!=softGrid().CellType.Cell)return o;{const r=e.grid._getBindingColumn(e,t,o);return r?_combineColumns(o,r):o}}}class TransposedMultiRowAdapter extends FlexGridAdapter{getColumn(e,t,r){const o=super.getColumn(e,t,r);if(e.cellType!=softGrid().CellType.Cell)return o;{const l=this.flex.getBindingColumn(e,t,r);return l?_combineColumns(o,l):o}}}class StyleCache{constructor(e){this._cache={};this._size=0;this._max=e}add(e,t){this._size>=this._max&&this.clear();const r=_cloneStyle(t);this._cache[e]=r;this._size++;return r}clear(){this._cache={};this._size=0}getValue(e){return this._cache[e]||null}hasKey(e){return!!this._cache[e]}}var PdfWebWorkerResponseStatus;!function(e){e[e.Done=1]="Done";e[e.Progress=2]="Progress"}(PdfWebWorkerResponseStatus||(PdfWebWorkerResponseStatus={}));const DefGridName="";export class PdfWebWorkerExportDoneEventArgs extends EventArgs{constructor(e){super();this._buf=e}get blob(){this._blob||(this._blob=new Blob([new Uint8Array(this._buf)],{type:"application/pdf"}));return this._blob}get buffer(){return this._buf}}export class PdfWebWorkerClient{static exportGrid(e,t,r,o,l,n){(o=FlexGridPdfConverter._applyDefaultExportSettings(o)).progress=o.progress||n;PdfWebWorkerClient.addGrid(e,t,"",o);PdfWebWorkerClient.export(e,o.documentOptions,e=>{isFunction(l)&&!1===l(e)||pdf.saveBlob(e.blob,r)},n)}static export(e,t,r,o){e.addEventListener("message",(function handler(t){const l=t.data;switch(l.status){case PdfWebWorkerResponseStatus.Done:e.removeEventListener("message",handler);isFunction(r)&&r(new PdfWebWorkerExportDoneEventArgs(l.data));break;case PdfWebWorkerResponseStatus.Progress:o&&o(l.data);break;default:throw"Unknown status: "+l.status}}));const l=PdfWebWorkerClient._clientDataToArrayBuffer(e);e.postMessage({content:l,settings:t},[l]);PdfWebWorkerClient._clearClientData(e)}static addGrid(e,t,r,o){const l=PdfWebWorkerClient._gridToJson(t,o);PdfWebWorkerClient._addClientData(e,JSON.stringify(l),r,o,!0)}static addImage(e,t,r,o){const l=isString(t)&&t.indexOf("data:image/svg")>=0?t:pdf._PdfImageHelper.getDataUri(t);PdfWebWorkerClient._addClientData(e,l,r,o)}static addString(e,t,r){PdfWebWorkerClient._addClientData(e,t,r,null)}static serializeGrid(e,t){const r=PdfWebWorkerClient._gridToJson(e,t);return strToBuf(JSON.stringify(r))}static _addClientData(e,t,r,o,l=!1){asType(e,Worker);asString(r);asString(t,!0);const n=e;n.clientData=n.clientData||{};n.clientData[r]={content:t,settings:o?JSON.stringify(o):null};var s=n.clientData[r];if(l){s.isGrid=!0;s.progressMessaging=!!o&&isFunction(o.progress)}}static _clearClientData(e){delete e.clientData}static _clientDataToArrayBuffer(e){const t=e;return strToBuf(JSON.stringify(t.clientData||{}))}static _gridToJson(e,t){t=FlexGridPdfConverter._applyDefaultExportSettings(t);let r,o;try{r=new pdf.PdfDocument(t.documentOptions);if(t&&t.recalculateStarWidths){o=e.columns.getTotalSize();e.columns._updateStarSizes(pdf.ptToPx(r.width))}return PdfWebWorkerClient._getJsonConverter(e,t).convert()}finally{_removeFakeCell();t&&t.recalculateStarWidths&&e.columns._updateStarSizes(o);if(null!=r){r.dispose();r=null}}}static _getJsonConverter(e,t){return new(softMultiRow()&&e instanceof softMultiRow().MultiRow&&MultiRowJsonConverter||softOlap()&&e instanceof softOlap().PivotGrid&&PivotGridJsonConverter||softTransposed()&&e instanceof softTransposed().TransposedGrid&&TransposedGridJsonConverter||softTransposedMultiRow()&&e instanceof softTransposedMultiRow().TransposedMultiRow&&TransposedMultirowJsonConverter||FlexGridJsonConverter)(e,t,FlexGridPdfConverter._getFlexGridAdapter(e,t))}}export class PdfWebWorker{static initExportGrid(){PdfWebWorker.initExport((e,t)=>{var r=t[""];if(r.progressMessaging){r.settings._progressMax=FlexGridPdfConverter._DefaultExportSettings._progressMax;r.settings.progress=e=>{PdfWebWorker.sendExportProgress(e)};e.ended.addHandler(()=>{PdfWebWorker.sendExportProgress(1)})}FlexGridPdfConverter.draw(r.content,e,null,null,r.settings);e.end()})}static initExport(e){self.addEventListener("message",(function handler(t){self.removeEventListener("message",handler);const r=t.data,o=JSON.parse(bufToStr(r.content)),l=r.settings||{};l.ended=(e,t)=>{blobToBuf(t.blob,e=>{self.postMessage({data:e,status:PdfWebWorkerResponseStatus.Done},[e])})};const n=new pdf.PdfDocument(l);Object.keys(o).forEach(e=>{const t=o[e];t.settings&&(t.settings=JSON.parse(t.settings));if(t.isGrid){t.settings&&PdfWebWorker._disableUnsupportedFeatures(t.settings);t.content=PdfWebWorker._deserializeGridFromString(t.content,t.settings)}});e(n,o)}))}static sendExportProgress(e){e=clamp(e,0,1);self.postMessage({data:e,status:PdfWebWorkerResponseStatus.Progress})}static deserializeGrid(e,t){return PdfWebWorker._deserializeGridFromString(bufToStr(e),t)}static _deserializeGridFromString(e,t){return PdfWebWorker._getJsonAdapter(JSON.parse(e),FlexGridPdfConverter._applyDefaultExportSettings(t))}static _disableUnsupportedFeatures(e){e.customCellContent=!1}static _getJsonAdapter(e,t){switch(e.typeName){case"MultiRow":return new MultiRowJsonAdapter(e,t);case"PivotGrid":return new PivotGridJsonAdapter(e,t);case"TransposedGrid":return new TransposedGridJsonAdapter(e,t);case"TransposedMultiRow":return new TransposedMultiRowJsonAdapter(e,t);default:return new FlexGridJsonAdapter(e,t)}}}function bufToStr(e){var t=new Uint16Array(e),r="";for(let e=0,o=t.length;e<o;e++)r+=String.fromCharCode(t[e]);return r}function strToBuf(e){var t=new ArrayBuffer(2*e.length),r=new Uint16Array(t);for(let t=0,o=e.length;t<o;t++)r[t]=e.charCodeAt(t);return t}function blobToBuf(e,t){asFunction(t);var r=new FileReader;r.onload=e=>{t(e.target.result)};r.readAsArrayBuffer(e)}var RowState,ColState;!function(e){e[e.None=0]="None";e[e.Alternate=1]="Alternate";e[e.Group=2]="Group";e[e.ExpandableGroup=4]="ExpandableGroup";e[e.New=8]="New";e[e.Visible=16]="Visible";e[e.Detail=32]="Detail"}(RowState||(RowState={}));!function(e){e[e.None=0]="None";e[e.Visible=1]="Visible"}(ColState||(ColState={}));class FlexGridJsonConverter{constructor(e,t,r){this._flex=e;this._settings=t;this._adapter=r}convert(){var e={};e.typeName=this._getTypeName(this._flex);e.selection=this._serializeSelection();e.showColumnFooter=this.adapter.showColumnFooter;e.showColumnHeader=this.adapter.showColumnHeader;e.showRowHeader=this.adapter.showRowHeader;e.treeIndent=this._flex.treeIndent;e.bottomLeftCells=this._serializePanel(this._flex.bottomLeftCells);e.cells=this._serializePanel(this._flex.cells);e.columnFooters=this._serializePanel(this._flex.columnFooters);e.columnHeaders=this._serializePanel(this._flex.columnHeaders);e.rowHeaders=this._serializePanel(this._flex.rowHeaders);e.topLeftCells=this._serializePanel(this._flex.topLeftCells);return e}get adapter(){return this._adapter}get flex(){return this._flex}_getConstructorName(e){let t=e.constructor.name;t=t.replace(/\d+$/g,"");return t}_getTypeName(e){const t=new Set(["MultiRow","PivotGrid","TransposedGrid","TransposedMultiRow","FlexGrid"]);let r=e;for(;r;){const e=this._getConstructorName(r);if(t.has(e))return e;r=r.constructor.prototype.__proto__}return e.constructor.name}_getRowState(e){var t=RowState.None;this.adapter.isAlternatingRow(e)&&(t|=RowState.Alternate);e instanceof softGrid().GroupRow&&(t|=RowState.Group);this.adapter.isDetailRow(e)&&(t|=RowState.Detail);this.adapter.isExpandableGroupRow(e)&&(t|=RowState.ExpandableGroup);e instanceof softGrid()._NewRowTemplate&&(t|=RowState.New);e.isVisible&&(t|=RowState.Visible);return t}_getColumnState(e){var t=ColState.None;e.isVisible&&(t|=ColState.Visible);return t}_serializeSelection(){const e=this.adapter.getSelection(),t=[];for(let r=0;r<e.length;r++){const o=e[r];t.push([o.row,o.col,o.row2,o.col2])}return t}_serializeColumns(e){const t=[];for(let r=0,o=(e||[]).length;r<o;r++){let o=e[r],l=null;if(o){l={aggregate:o.aggregate,renderWidth:o.renderWidth,visibleIndex:o.visibleIndex};const e=o.getAlignment();e&&(l.alignment=e);const t=this._getColumnState(o);t!==ColState.None&&(l.state=t);o.binding&&(l.binding=o.binding);null!=o.dataType&&(l.dataType=o.dataType);null!=o.name&&(l.name=o.name);o.wordWrap&&(l.wordWrap=!0);o.multiLine&&(l.multiLine=!0)}t.push(l)}return t}_serializePanel(e){const t={cellType:e.cellType,height:e.height,width:e.width},getAlignment=e=>{if(e.align)return e.align;if(!e.dataMap)switch(e.dataType){case DataType.Boolean:return"center";case DataType.Number:return"right"}return null};t.mergedRanges=this._serializeMergedRanges(e);t.columns=this._serializeColumns(e.columns);t.columnsFirstVisibleIndex=e.columns.firstVisibleIndex;t.rows=[];t.rowsMaxGroupLevel=e.rows.maxGroupLevel;const r=!this._settings.customCellContent&&this._flex._getShowErrors();for(let o=0,l=e.rows.length,n=e.columns.length;o<l;o++){const l=e.rows[o],s={renderHeight:l.renderHeight};t.rows.push(s);const i=getAlignment(l);i&&(s.alignment=i);l instanceof softGrid().GroupRow&&(s.level=l.level);const a=this._getRowState(l);a!==RowState.None&&(s.state=a);l.binding&&(s.binding=l.binding);null!=l.dataType&&(s.dataType=l.dataType);l.wordWrap&&(s.wordWrap=!0);l.multiLine&&(s.multiLine=!0);s.cells=[];const d=softGrid();for(let t=0;t<n;t++){let l=this._adapter.getCellContent(e,e.rows[o],e.columns[t],t);if(isFunction(this._settings.formatItem)){const r=new PdfFormatItemEventArgs(e,new d.CellRange(o,t),null,null,null,null,null,()=>this._adapter.getCell(e,o,t,!0),null);r.data=l;this._settings.formatItem(r);r.data!==l&&(l=r.data)}s.cells[t]=l;if(r&&this._flex._getError(e,o,t)){s.errors||(s.errors={});s.errors[t]=1}}}return t}_serializeMergedRanges(e){const t=[],r=[];let o,l,n,s,i;for(o=0;o<e.columns.length;o++)r[o]=0;for(l=0;l<e.rows.length;l++)for(n=0;n<e.columns.length;n++)if(!(l<r[n])){s=e.grid.getMergedRange(e,l,n);if(null!=s&&!s.isSingleCell){t.push([s.row,s.col,s.row2,s.col2]);for(i=s.col;i<=s.col2;i++)r[i]=s.row2+1;s.col!==s.col2&&(n=s.col2)}}return t}}class MultiRowJsonConverter extends FlexGridJsonConverter{convert(){const e=super.convert();e.rowsPerItem=this.flex.rowsPerItem;return e}_serializePanel(e){const t=super._serializePanel(e);t.cellGroups=this._serializeCellGroup(e);return t}_serializeCellGroup(e){const t=[],r=[],o=softGrid();let l=this.flex.rowsPerItem;e.cellType!==o.CellType.TopLeft&&e.cellType!==o.CellType.ColumnHeader||(l=e.rows.length);for(let o=0;o<l;o++){r[o]=[];for(let l=0;l<e.columns.length;l++){const n=this.flex.getBindingColumn(e,o,l),s=t.indexOf(n);r[o][l]=s<0?t.push(n)-1:s}}return{bindingColumns:this._serializeColumns(t),mappings:r}}}class PivotGridJsonConverter extends FlexGridJsonConverter{convert(){const e=super.convert();e.centerHeadersVertically=this.flex.centerHeadersVertically;return e}}class TransposedGridJsonConverter extends FlexGridJsonConverter{convert(){const e=super.convert(),t=new Array(this.flex.cells.rows.length),r=this.flex.cells,o=softGrid();let l,n,s,i;for(l=0,n=r.rows.length;l<n;l++){s=r.rows[l].dataItem;i=s&&s._rowInfo;i instanceof o.Column||(i=_combineColumns(i,i));t[l]=i}e.rowInfo=this._serializeColumns(t);return e}}class TransposedMultirowJsonConverter extends FlexGridJsonConverter{convert(){const e=super.convert();e.cellGroups=this._serializeCellGroup();e.columnsPerItem=this.flex.columnsPerItem;return e}_serializeCellGroup(){const e=[],t=[],r=this.flex.columnsPerItem,o=this.flex.cells;for(let l=0;l<o.rows.length;l++){t[l]=[];for(let n=0;n<r;n++){const r=this.flex.getBindingColumn(o,l,n),s=e.indexOf(r);t[l][n]=s<0?e.push(r)-1:s}}return{bindingColumns:this._serializeColumns(e),mappings:t}}}class RowJson{constructor(e,t){this.index=t;this.binding=e.binding;this.dataType=e.dataType;this.alignment=e.alignment;this.level=e.level;this.renderHeight=e.renderHeight;this.cells=e.cells;this.wordWrap=e.wordWrap||!1;this.multiLine=e.multiLine||!1;this.errors=e.errors;this._state=e.state}get isAlternatingRow(){return(this._state&RowState.Alternate)!==RowState.None}get isGroupRow(){return(this._state&RowState.Group)!==RowState.None}get isDetailRow(){return(this._state&RowState.Detail)!==RowState.None}get isExpandableGroupRow(){return(this._state&RowState.ExpandableGroup)!==RowState.None}get isNewRow(){return(this._state&RowState.New)!==RowState.None}get isVisible(){return(this._state&RowState.Visible)!==RowState.None}}class ColumnJson{constructor(e,t){this.index=t;this.binding=e.binding;this.dataType=e.dataType;this.aggregate=e.aggregate;this.name=e.name;this.renderWidth=e.renderWidth;this.visibleIndex=e.visibleIndex;this.wordWrap=e.wordWrap||!1;this.multiLine=e.multiLine||!1;this._alignment=e.alignment;this._state=e.state}getAlignment(e){return this._alignment?this._alignment:e&&e.alignment?e.alignment:""}get isVisible(){return(this._state&ColState.Visible)!==ColState.None}}class RowJsonCollection{constructor(e,t=-1){this.maxGroupLevel=t;this.length=e.length;for(let t=0;t<e.length;t++)this[t]=new RowJson(e[t],t)}}class ColumnJsonCollection{constructor(e,t=-1){this.firstVisibleIndex=t;this.length=e.length;for(let t=0;t<e.length;t++){const r=e[t];this[t]=r?new ColumnJson(e[t],t):null}}}class GridJsonPanel{constructor(e){this.height=e.height;this.width=e.width;this.cellType=e.cellType;this.columns=new ColumnJsonCollection(e.columns,e.columnsFirstVisibleIndex);this.rows=new RowJsonCollection(e.rows,e.rowsMaxGroupLevel);this._mergedRanges=this._deserializeMergedRanges(e.mergedRanges)}getCellData(e,t){return this.rows[e].cells[t]}getMergedRange(e,t){const r=this._mergedRanges[e];if(r)for(let e=0,o=r.length;e<o;e++){const o=r[e];if(t>=o.col&&t<=o.col2)return o}return null}_deserializeMergedRanges(e){const t=[];e=e||[];for(let e=0,r=this.rows.length;e<r;e++)t[e]=[];for(let r=0,o=e.length;r<o;r++){const o=e[r],l=new _CellRange(o[0],o[1],o[2],o[3]);for(let e=l.row;e<=l.row2;e++)t[e].push(l)}return t}}class FlexGridJsonAdapter{constructor(e,t){this.settings=t;this.bottomLeftCells=this.deserializePanel(e.bottomLeftCells);this.cells=this.deserializePanel(e.cells);this.columnFooters=this.deserializePanel(e.columnFooters);this.columnHeaders=this.deserializePanel(e.columnHeaders);this.rowHeaders=this.deserializePanel(e.rowHeaders);this.topLeftCells=this.deserializePanel(e.topLeftCells);this.treeIndent=e.treeIndent;this.showColumnFooter=e.showColumnFooter;this.showColumnHeader=e.showColumnHeader;this.showRowHeader=e.showRowHeader;this._selection=[];for(let t=0;t<e.selection.length;t++){const r=e.selection[t];this._selection.push(new _CellRange(r[0],r[1],r[2],r[3]))}}get columns(){return this.cells.columns}get rows(){return this.cells.rows}getSelection(){return this._selection}getCell(e,t,r,o){throw"Not implemented"}getComputedDefBorderColor(){throw"Not implemented"}getComputedStyle(e,t){throw"Not implemented"}getMergedRange(e,t,r){return e.getMergedRange(t,r)}alignMergedTextToTheTopRow(e){return!1}getCellData(e,t,r){return e.getCellData(t,r)}getCellContent(e,t,r,o){return this.getCellData(e,t.index,o)}isBooleanCell(e,t,r){return r.dataType===DataType.Boolean&&e.cellType===_CellType.Cell&&!this.isExpandableGroupRow(t)}getColumn(e,t,r){return e.columns[r]}isAlternatingRow(e){return e.isAlternatingRow}isGroupRow(e){return e.isGroupRow}isNewRow(e){return e.isNewRow}isDetailRow(e){return e.isDetailRow}isExpandableGroupRow(e){return e.isExpandableGroupRow}isRenderableRow(e){return e.isVisible&&e.renderHeight>0&&!this.isNewRow(e)}isRenderableColumn(e){return e.isVisible&&e.renderWidth>0}getCellStyle(e,t,r){var o=this.settings.styles,l=_merge({},o.cellStyle);switch(e.cellType){case _CellType.Cell:this.isExpandableGroupRow(t)?_merge(l,o.groupCellStyle,!0):this.isAlternatingRow(t)&&_merge(l,o.altCellStyle,!0);break;case _CellType.ColumnHeader:case _CellType.RowHeader:case _CellType.TopLeft:case _CellType.BottomLeft:_merge(l,o.headerCellStyle,!0);break;case _CellType.ColumnFooter:_merge(l,o.headerCellStyle,!0);_merge(l,o.footerCellStyle,!0)}t.errors&&t.errors[r.index]&&_merge(l,o.errorCellStyle,!0);return l}deserializePanel(e){return new GridJsonPanel(e)}}class PivotGridJsonAdapter extends FlexGridJsonAdapter{constructor(e,t){super(e,t);this._centerHeadersVertically=e.centerHeadersVertically}alignMergedTextToTheTopRow(e){return!this._centerHeadersVertically&&(e.cellType===_CellType.ColumnHeader||e.cellType===_CellType.RowHeader)}}class MultiRowJsonPanel extends GridJsonPanel{constructor(e){super(e);e.cellGroups&&(this._cellGroups={bindingColumns:new ColumnJsonCollection(e.cellGroups.bindingColumns),mappings:e.cellGroups.mappings})}getColumn(e,t,r){const o=this.columns[t];let l;if(this._cellGroups){this.cellType!==_CellType.ColumnHeader&&this.cellType!==_CellType.BottomLeft&&(e%=r);l=this._cellGroups.bindingColumns[this._cellGroups.mappings[e][t]];return _combineColumns(o,l)}return o}}class MultiRowJsonAdapter extends FlexGridJsonAdapter{constructor(e,t){super(e,t);this._rowsPerItem=e.rowsPerItem}deserializePanel(e){return new MultiRowJsonPanel(e)}getColumn(e,t,r){return e.getColumn(t,r,this._rowsPerItem)}}class TransposedGridJsonAdapter extends FlexGridJsonAdapter{constructor(e,t){super(e,t);this._rowInfo=new ColumnJsonCollection(e.rowInfo)}getColumn(e,t,r){const o=super.getColumn(e,t,r);if(e.cellType!==_CellType.Cell)return o;{const e=this._rowInfo[t];return e?_combineColumns(o,e):o}}}class TransposedMultiRowJsonAdapter extends FlexGridJsonAdapter{constructor(e,t){super(e,t);this._columnsPerItem=e.columnsPerItem;e.cellGroups&&(this._cellGroups={bindingColumns:new ColumnJsonCollection(e.cellGroups.bindingColumns),mappings:e.cellGroups.mappings})}getColumn(e,t,r){const o=super.getColumn(e,t,r);if(this._cellGroups&&e.cellType===_CellType.Cell){r%=this._columnsPerItem;return _combineColumns(o,this._cellGroups.bindingColumns[this._cellGroups.mappings[t][r]])}return o}}_registerModule("wijmo.grid.pdf",selfModule);
|
|
14
|
+
import{asFunction,asType,CancelEventArgs,Color,isFunction,Rect,Size,isObject,assert,asInt,asString,changeType,isArray,isString,DataType,Point,_getModule,removeChild,toPlainText,ControlStateClsNames,clamp,EventArgs,_registerModule}from"@grapecity/wijmo";import*as pdf from"@grapecity/wijmo.pdf";import*as selfModule from"@grapecity/wijmo.grid.pdf";export function softGrid(){return _getModule("wijmo.grid")}export function softDetail(){return _getModule("wijmo.grid.detail")}export function softMultiRow(){return _getModule("wijmo.grid.multirow")}export function softSheet(){return _getModule("wijmo.grid.sheet")}export function softOlap(){return _getModule("wijmo.olap")}export function softTransposed(){return _getModule("wijmo.grid.transposed")}export function softTransposedMultiRow(){return _getModule("wijmo.grid.transposedmultirow")}export class PdfFormatItemEventArgs extends CancelEventArgs{constructor(e,t,r,o,l,n,s,i,a){super();this.cancelBorders=!1;this._p=e;this._rng=t;"undefined"!=typeof HTMLElement&&(this._cell=asType(r,HTMLElement,!0));this._canvas=o;this._clientRect=l;this._contentRect=n;this._style=s;this._getFormattedCell=i;this._getTextRect=a}get panel(){return this._p}get range(){return this._rng.clone()}get row(){return this._rng.row}get col(){return this._rng.col}get data(){return this._data}set data(e){this._data=e}get canvas(){return this._canvas}get cell(){return this._cell}get clientRect(){return this._clientRect}get contentRect(){return this._contentRect}drawBackground(e){const t=this.clientRect;e&&t.width>0&&t.height>0&&this.canvas.paths.rect(t.left,t.top,t.width,t.height).fill(e||this.style.backgroundColor)}getFormattedCell(){return asFunction(this._getFormattedCell)()}get tagContent(){return this._tagContent}set tagContent(e){this._tagContent=e}get style(){return this._style}get textTop(){!this._textRect&&isFunction(this._getTextRect)&&(this._textRect=this._getTextRect());return this._textRect?this._textRect.top:this._contentRect.top}}export var ScaleMode;!function(e){e[e.ActualSize=0]="ActualSize";e[e.PageWidth=1]="PageWidth";e[e.SinglePage=2]="SinglePage"}(ScaleMode||(ScaleMode={}));export var ExportMode;!function(e){e[e.All=0]="All";e[e.Selection=1]="Selection"}(ExportMode||(ExportMode={}));export var _CellType;!function(e){e[e.None=0]="None";e[e.Cell=1]="Cell";e[e.ColumnHeader=2]="ColumnHeader";e[e.RowHeader=3]="RowHeader";e[e.TopLeft=4]="TopLeft";e[e.ColumnFooter=5]="ColumnFooter";e[e.BottomLeft=6]="BottomLeft"}(_CellType||(_CellType={}));export function _merge(e,t,r=!1){!e&&t&&(e={});if(t&&e)for(var o in t){let l=t[o],n=e[o];if(isObject(l)){if(void 0===n||!isObject(n)&&r){if(isFunction(l.clone)){e[o]=n=l.clone();continue}e[o]=n={}}isObject(n)&&_merge(e[o],l,r)}else(void 0===n||r&&void 0!==l)&&(e[o]=l)}return e}export function _combineColumns(e,t){return{aggregate:t.aggregate,binding:t.binding,name:t.name,dataType:t.dataType,wordWrap:t.wordWrap,multiLine:t.multiLine,getAlignment:e=>{if("getAlignment"in t)return t.getAlignment(e)},index:e.index,visibleIndex:e.visibleIndex,isVisible:e.isVisible,renderWidth:e.renderWidth}}export function _cloneStyle(e){if(!e)return null;var t={},toCamel=e=>e.replace(/-([a-z])/g,(e,t,r)=>r>0?t.toUpperCase():t);for(let r=0,o=e.length;r<o;r++){const o=e[r];t[toCamel(o)]=e.getPropertyValue(o)}return t}export class _FlexGridPdfCoreConverter{static draw(e,t,r,o,l,n){assert(!!e,"The flex argument cannot be null.");assert(!!t,"The doc argument cannot be null.");null==(n=_FlexGridPdfCoreConverter._applyDefaultDrawSettings(n)).scaleMode&&(n.scaleMode=null==o?ScaleMode.ActualSize:null==l?ScaleMode.PageWidth:ScaleMode.SinglePage);_FlexGridPdfCoreConverter._drawInternal(e,t,r,o,l,n)}static _applyDefaultDrawSettings(e){return _merge(_merge({},e),_FlexGridPdfCoreConverter.DefaultDrawSettings)}static _drawInternal(e,t,r,o,l,n){const s=null!=r,i=new Size(t.width,t.height);r||(r=new Point(0,t.y));isArray(n.embeddedFonts)&&n.embeddedFonts.forEach(e=>{t.registerFont(e)});const a=_FlexGridPdfCoreConverter._getRowsToRender(e,n),d=new FlexGridRenderer(e,n,a,_FlexGridPdfCoreConverter.BorderWidth,!0);let h=new Rect(r.x||0,r.y||0,o||i.width,l||i.height);const c=_FlexGridPdfCoreConverter._getScaleFactor(d,n.scaleMode,h);if(r.y>0&&_FlexGridPdfCoreConverter._canBreakRows(n.scaleMode)){const n=a.find(e.cells,e=>d.isRenderableRow(e));if(n){const s=(h.height-h.top)*(1/c);if((d.showColumnHeader?pdf.pxToPt(e.columnHeaders.height):0)+pdf.pxToPt(n.renderHeight)-_FlexGridPdfCoreConverter.BorderWidth>s){t.addPage();h=new Rect(r.x||0,0,o||i.width,l||i.height)}}}n._mergedCellTextState={};const g=_FlexGridPdfCoreConverter._getPages(d,a,h,n,s,c),u=(n.progress?_FlexGridPdfCoreConverter._getCellsCount(e,n,g):0)/n._progressMax;let f=0,p=0;const _=n.progress?()=>{if(++f-p>=50){p=f;n.progress(f/u)}}:null;n.progress&&n.progress(0);for(let r=0;r<g.length;r++){r>0&&t.addPage();const o=g[r],l=0===o.pageCol?h.left:0,s=0===o.pageRow?h.top:0;t.saveState();t.paths.rect(0,0,t._widthCtm,t._heightCtm).clip();t.scale(c,c,new Point(l,s));t.translate(l,s);const i=new FlexGridRenderer(e,n,o.range,_FlexGridPdfCoreConverter.BorderWidth,r===g.length-1);i.render(t,_);t.restoreState();t.x=l;t.y=s+i.renderSize.height*c}n.progress&&0<n._progressMax&&n.progress(n._progressMax)}static _getCellsCount(e,t,r){var o=0;for(let l=0;l<r.length;l++){o+=new FlexGridRenderer(e,t,r[l].range,0,!1).getCellsCount()}return o}static _getRowsToRender(e,t){var r=[];t.exportMode==ExportMode.All?r.push(new _CellRange(0,0,e.rows.length-1,e.columns.length-1)):r=e.getSelection();var o=new RowRange(r);if(o.isValid&&!t.drawDetailRows){const t=[];o.forEach(e.cells,(r,o,l)=>{if(!e.isDetailRow(r)){const e=t.length;e&&t[e-1].bottomRow+1===l?t[e-1].row2++:t.push(new _CellRange(l,o.col,l,o.col2))}});o=new RowRange(t)}return o}static _getScaleFactor(e,t,r){let o=1;if(t==ScaleMode.ActualSize)return o;const l=e.renderSize;let n;if(t==ScaleMode.SinglePage){n=Math.min(r.width/l.width,r.height/l.height);n<1&&(o=n)}else{n=r.width/l.width;n<1&&(o=n)}return o}static _canBreakRows(e){return e==ScaleMode.ActualSize||e==ScaleMode.PageWidth}static _getPages(e,t,r,o,l,n){let s=[],i=[],a=pdf.pxToPt,d=e.flex,h=e.showColumnHeader,c=e.showColumnFooter,g=e.showRowHeader,u=h?a(d.columnHeaders.height):0,f=c?a(d.columnFooters.height):0,p=g?a(d.rowHeaders.width):0,_=_FlexGridPdfCoreConverter._canBreakRows(o.scaleMode),w=o.scaleMode==ScaleMode.ActualSize,C=(r.width-r.left)*(1/n),m=(r.height-r.top)*(1/n),R=r.width*(1/n),x=r.height*(1/n),b=u,S=p,T=l&&o.scaleMode==ScaleMode.ActualSize,y=m;if(_){let r=0,o=0;t.forEach(d.cells,(t,l,n,i)=>{y=s.length?x:m;if(e.isRenderableRow(t)){const e=a(t.renderHeight)+1;r++;b+=e;(h||r>1)&&(b-=_FlexGridPdfCoreConverter.BorderWidth);if(b>y){if(T||u+e>y&&0===o){s.push(i);b=u}else{s.push(i-1);b=u+e}o=0;h&&(b-=_FlexGridPdfCoreConverter.BorderWidth)}else o++}})}const P=Math.max(t.length()-1,0);s.length&&s[s.length-1]===P||s.push(P);c&&b+f>y&&s.push(-1);if(w){let r=0;for(let o=t.leftCol;o<=t.rightCol;o++){const t=d.columns[o];if(e.isRenderableColumn(t)){const e=a(t.renderWidth),l=i.length?R:C;r++;S+=e;(g||r>1)&&(S-=_FlexGridPdfCoreConverter.BorderWidth);if(S>l){if(p+e>l||T){i.push(o);S=p}else{i.push(o-1);S=p+e}g&&(S-=_FlexGridPdfCoreConverter.BorderWidth)}}}}i.length&&i[i.length-1]===t.rightCol||i.push(t.rightCol);let G=[],v=!1,F=1,M=l&&o.maxPages>0?1:o.maxPages;for(let e=0;e<s.length&&!v;e++)for(let r=0;r<i.length&&!v;r++,F++){v=F>M;if(!v){const o=0===e?0:s[e-1]+1,l=0===r?t.leftCol:i[r-1]+1,n=-1===s[e]?new RowRange([new _CellRange(-1,l,-1,i[r])]):t.subrange(o,s[e]-o+1,l,i[r]);G.push(new PdfPageRowRange(n,r,e))}}return G}}_FlexGridPdfCoreConverter.BorderWidth=1;_FlexGridPdfCoreConverter.DefFont=new pdf.PdfFont;_FlexGridPdfCoreConverter.DefaultDrawSettings={customCellContent:!1,drawDetailRows:!1,exportMode:ExportMode.All,maxPages:Number.MAX_VALUE,repeatMergedValuesAcrossPages:!0,recalculateStarWidths:!0,styles:{cellStyle:{font:{family:_FlexGridPdfCoreConverter.DefFont.family,size:_FlexGridPdfCoreConverter.DefFont.size,style:_FlexGridPdfCoreConverter.DefFont.style,weight:_FlexGridPdfCoreConverter.DefFont.weight},padding:1.5,verticalAlign:"middle"},headerCellStyle:{font:{weight:"bold"}}},quickCellStyles:!0,_progressMax:1};class FlexGridRenderer{constructor(e,t,r,o,l){this._flex=e;this._borderWidth=o;this._lastPage=l;this._settings=t||{};this._topLeft=new PanelSectionRenderer(this,e.topLeftCells,this.showRowHeader&&this.showColumnHeader?new RowRange([new _CellRange(0,0,e.topLeftCells.rows.length-1,e.topLeftCells.columns.length-1)]):new RowRange([]),o);this._rowHeader=new PanelSectionRenderer(this,e.rowHeaders,this.showRowHeader?r.clone(0,e.rowHeaders.columns.length-1):new RowRange([]),o);this._columnHeader=new PanelSectionRenderer(this,e.columnHeaders,this.showColumnHeader?new RowRange([new _CellRange(0,r.leftCol,e.columnHeaders.rows.length-1,r.rightCol)]):new RowRange([]),o);this._cells=new PanelSectionRenderer(this,e.cells,r,o);this._bottomLeft=new PanelSectionRenderer(this,e.bottomLeftCells,this.showRowHeader&&this.showColumnFooter?new RowRange([new _CellRange(0,0,e.bottomLeftCells.rows.length-1,e.bottomLeftCells.columns.length-1)]):new RowRange([]),o);this._columnFooter=new PanelSectionRenderer(this,e.columnFooters,this.showColumnFooter?new RowRange([new _CellRange(0,r.leftCol,e.columnFooters.rows.length-1,r.rightCol)]):new RowRange([]),o)}get settings(){return this._settings}isRenderableRow(e){return this._flex.isRenderableRow(e)}isRenderableColumn(e){return this._flex.isRenderableColumn(e)}getCellsCount(){return this._topLeft.getCellsCount()+this._rowHeader.getCellsCount()+this._columnHeader.getCellsCount()+this._cells.getCellsCount()+this._bottomLeft.getCellsCount()+this._columnFooter.getCellsCount()}render(e,t){let r,o,l,n;if(e.tagged){r=o=l=n=new TrStructCache(e,e.tag(pdf.PdfTagType.Table));e.addTag(r.el);if(e.version>=pdf.PdfVersion.v1_5){o=new TrStructCache(e,e.tag(pdf.PdfTagType.THead));r.el.add(o.el);l=new TrStructCache(e,e.tag(pdf.PdfTagType.TBody));r.el.add(l.el);n=new TrStructCache(e,e.tag(pdf.PdfTagType.TFoot));r.el.add(n.el)}}let s=Math.max(0,Math.max(this._topLeft.renderSize.width,this._rowHeader.renderSize.width)-this._borderWidth),i=Math.max(0,Math.max(this._topLeft.renderSize.height,this._columnHeader.renderSize.height)-this._borderWidth);this._topLeft.render(e,0,0,t,o);this._rowHeader.render(e,0,i,t,l);this._columnHeader.render(e,s,0,t,o);this._cells.render(e,s,i,t,l);i+=Math.max(0,this._cells.renderSize.height-this._borderWidth);this._bottomLeft.render(e,0,i,t,n);this._columnFooter.render(e,s,i,t,n)}get flex(){return this._flex}get renderSize(){var e=Math.max(this._topLeft.renderSize.height,this._columnHeader.renderSize.height)+Math.max(this._rowHeader.renderSize.height,this._cells.renderSize.height)+Math.max(this._bottomLeft.renderSize.height,this._columnFooter.renderSize.height),t=Math.max(this._topLeft.renderSize.width,this._rowHeader.renderSize.width)+Math.max(this._columnHeader.renderSize.width,this._cells.renderSize.width);this._columnHeader.renderableRowsCount>0&&(e-=this._borderWidth);this._columnFooter.renderableRowsCount>0&&(e-=this._borderWidth);this._rowHeader.renderableColumnsCount>0&&(t-=this._borderWidth);return new Size(t,e)}get showColumnHeader(){return this._flex.showColumnHeader}get showRowHeader(){return this._flex.showRowHeader}get showColumnFooter(){return this._lastPage&&this._flex.showColumnFooter}alignMergedTextToTheTopRow(e){return this._flex.alignMergedTextToTheTopRow(e)}getColumn(e,t,r){return this._flex.getColumn(e,t,r)}isAlternatingRow(e){return this._flex.isAlternatingRow(e)}isGroupRow(e){return this._flex.isGroupRow(e)}isNewRow(e){return this._flex.isNewRow(e)}isExpandableGroupRow(e){return this._flex.isExpandableGroupRow(e)}isBooleanCell(e,t,r){return this._flex.isBooleanCell(e,t,r)}getCellStyle(e,t,r){return this._flex.getCellStyle(e,t,r)}}class PanelSection{constructor(e,t,r){this._flex=e;this._panel=t;this._range=r.clone()}get renderableRowsCount(){if(null==this._renderableRowsCnt){this._renderableRowsCnt=0;this._range.forEach(this._panel,e=>{this._flex.isRenderableRow(e)&&this._renderableRowsCnt++})}return this._renderableRowsCnt}get renderableColumnsCount(){if(null==this._renderableColumnsCnt){this._renderableColumnsCnt=0;if(this._range.isValid)for(let e=this._range.leftCol;e<=this._range.rightCol;e++)this._flex.isRenderableColumn(this._panel.columns[e])&&this._renderableColumnsCnt++}return this._renderableColumnsCnt}get size(){if(null==this._size){const e=this._range.getRenderSize(this._flex,this._panel);this._size=new Size(pdf.pxToPt(e.width),pdf.pxToPt(e.height))}return this._size}get range(){return this._range}get panel(){return this._panel}}class PanelSectionRenderer extends PanelSection{constructor(e,t,r,o){super(e.flex,t,r);this._gr=e;this._borderWidth=o}get gr(){return this._gr}get renderSize(){if(null==this._renderSize){this._renderSize=this.size.clone();this.renderableColumnsCount>1&&(this._renderSize.width-=this._borderWidth*(this.renderableColumnsCount-1));this.renderableRowsCount>1&&(this._renderSize.height-=this._borderWidth*(this.renderableRowsCount-1))}return this._renderSize}_getRangeWidth(e,t){let r=0,o=0;const l=this.panel;for(let n=e;n<=t;n++){const e=l.columns[n];if(this._gr.isRenderableColumn(e)){o++;r+=e.renderWidth}}r=pdf.pxToPt(r);o>1&&(r-=this._borderWidth*(o-1));return r}_getRangeHeight(e,t){let r=0,o=0;const l=this.panel;for(let n=e;n<=t;n++){const e=l.rows[n];if(this._gr.isRenderableRow(e)){o++;r+=e.renderHeight}}r=pdf.pxToPt(r);o>1&&(r-=this._borderWidth*(o-1));return r}getCellsCount(){let e=0;const t=this.range,r=this.panel,o=new GetMergedRangeProxy(this._gr.flex);if(!t.isValid)return e;t.forEach(r,(l,n,s)=>{if(this._gr.isRenderableRow(l))for(let l=t.leftCol;l<=t.rightCol;l++){if(!this._gr.isRenderableColumn(r.columns[l]))continue;let i,a=!1;const d=o.getMergedRange(r,s,l);if(d){const e=s===d.firstVisibleRow,r=l===d.leftCol,o=s===n.topRow,h=l===n.leftCol,c=d.rowSpan>1,g=d.columnSpan>1;if(c&&g&&(e&&r||o&&h)||c&&!g&&(e||o)||!c&&g&&(r||h)){a=!0;g&&(i=Math.min(t.rightCol,d.rightCol))}}else a=!0;a&&e++;i&&(l=i)}});return e}render(e,t,r,o,l){const n=this.range;if(!n.isValid)return;const s={},i=this.panel,a=new GetMergedRangeProxy(this._gr.flex),d=new _CellRangeExt(i,0,0,0,0),h=new _CellRenderer(this,e,this._borderWidth);for(let e=n.leftCol;e<=n.rightCol;e++)s[e]=r;n.forEach(i,(r,c,g)=>{if(!this._gr.isRenderableRow(r))return;const u=l?l.getTR(g,i.cellType):null;let f=t;for(let t=n.leftCol;t<=n.rightCol;t++){const l=this.gr.getColumn(i,g,t);if(!this._gr.isRenderableColumn(l))continue;let p,_,w,C,m,R=!1;const x=this._gr.flex.getCellContent(this.panel,r,l,t),b=a.getMergedRange(i,g,t);if(b){if(g>=b.topRow){d.copyFrom(b);const e=g===b.firstVisibleRow,r=t===b.leftCol,o=g===c.topRow,l=t===c.leftCol,i=b.rowSpan>1,a=b.columnSpan>1;if(i&&a&&(e&&r||o&&l)||i&&!a&&(e||o)||!i&&a&&(r||l)){R=!0;m=b.topRow>=c.topRow&&b.bottomRow<=c.bottomRow?null:`${b.firstVisibleRow}_${b.leftCol}`;if(this.gr.settings.repeatMergedValuesAcrossPages)w=x;else if(e&&r)w=x;else{const e=this.gr.settings._mergedCellTextState,t=e&&e[m]||0;w=t>0&&x?x.substring(t):x}p=i?this._getRangeHeight(g,Math.min(b.bottomRow,c.bottomRow)):this._getRangeHeight(g,g);if(a){_=this._getRangeWidth(Math.max(n.leftCol,b.leftCol),Math.min(n.rightCol,b.rightCol));C=Math.min(n.rightCol,b.rightCol);for(let e=t+1;e<=C;e++)s[e]+=p-this._borderWidth}}}else p=this._getRangeHeight(g,g);null==_&&(_=this._getRangeWidth(t,t))}else{d.setRange(g,t,g,t);R=!0;w=x;p=this._getRangeHeight(g,g);_=this._getRangeWidth(t,t)}if(R&&_>0&&p>0){const n=h.renderCell(w,r,l,d,new Rect(f,s[t],_,p));if(m&&!this.gr.settings.repeatMergedValuesAcrossPages){const e=this.gr.settings._mergedCellTextState;e&&(e[m]=(e[m]||0)+h._lastRenderCharCount)}if(u){const t=e.tag(i.cellType===_CellType.ColumnHeader||i.cellType==_CellType.TopLeft?pdf.PdfTagType.TH:pdf.PdfTagType.TD);n&&t.add(n);u.add(t)}o&&o()}p&&(s[t]+=p-this._borderWidth);_&&(f+=_-this._borderWidth);C&&(t=C)}})}}class TrStructCache{constructor(e,t){this.doc=e;this.tableSection=t;this._trh=[];this._trb=[];this._trf=[]}get el(){return this.tableSection}getTR(e,t){const r=t===_CellType.TopLeft||t===_CellType.ColumnHeader?this._trh:t===_CellType.RowHeader||t===_CellType.Cell?this._trb:this._trf;let o=r[e];if(!o){o=this.doc.tag(pdf.PdfTagType.TR);r[e]=o;this.tableSection.add(o)}return o}}export class _CellRenderer{constructor(e,t,r){this.InvisiblePen=new pdf.PdfPen(Color.fromRgba(0,0,0,0),0);this._lastRenderCharCount=0;this._pr=e;this._area=t;this._borderWidth=r}renderCell(e,t,r,o,l){this._lastRenderCharCount=0;let n;const s=this._pr.gr.flex,i=this._pr.panel,getGridCell=e=>s.getCell(i,o.topRow,o.leftCol,e);let a=null;const d=this._pr.gr.getCellStyle(i,t,r),h=this._pr.gr.settings.customCellContent,c=isFunction(this._pr.gr.settings.formatItem);if(h){a=getGridCell(c);const e=s.getComputedStyle(i,a);d.color=e.color;d.backgroundColor=e.backgroundColor;const t=s.getComputedDefBorderColor();d.borderLeftColor="none"!=e.borderLeftStyle?e.borderLeftColor:t;d.borderRightColor="none"!=e.borderRightStyle?e.borderRightColor:t;d.borderTopColor="none"!=e.borderTopStyle?e.borderTopColor:t;d.borderBottomColor="none"!=e.borderBottomStyle?e.borderBottomColor:t;d.font=new pdf.PdfFont(e.fontFamily,pdf._asPt(e.fontSize,!0,void 0),e.fontStyle,e.fontWeight);d.textAlign=e.textAlign;d.textDecoration=e.textDecoration}if(d.font&&!(d.font instanceof pdf.PdfFont)){const e=d.font;d.font=new pdf.PdfFont(e.family,e.size,e.style,e.weight)}d.boxSizing="border-box";d.borderWidth=this._borderWidth;d.borderStyle="solid";h||this._pr.gr.isExpandableGroupRow(t)&&r.index===s.treeColumnIndex||(d.textAlign=r.getAlignment(t));if(i.cellType===_CellType.Cell&&s.rows.maxGroupLevel>=0&&o.leftCol===s.treeColumnIndex){const e=s.isGroupRow(t)?Math.max(t.level,0):s.rows.maxGroupLevel+1,r=pdf._asPt(d.paddingLeft||d.padding),o=pdf.pxToPt(e*s.treeIndent);d.paddingLeft=r+o}var g=this._measureCell(e,i,t,r,d,l);const u=o.rowSpan>1&&o.visibleRowsCount>1&&this._pr.gr.alignMergedTextToTheTopRow(i)?new Rect(g.contentRect.left,g.contentRect.top,g.contentRect.width,g.contentRect.height/(o.visibleRowsCount||1)):g.contentRect;let f,p=!0,_=!0;if(c){n=new PdfFormatItemEventArgs(i,o,a,this._area,g.rect,g.contentRect,d,()=>a||getGridCell(!0),()=>{g.textRect=this._calculateTextRect(e,i,t,r,u,d);return g.textRect});n.data=e;this._pr.gr.settings.formatItem(n);if(n.data!==e){e=asString(n.data);g.textRect=null}p=!n.cancel;_=!n.cancelBorders;f=n.tagContent}p&&!g.textRect&&(g.textRect=this._calculateTextRect(e,i,t,r,u,d));return this._renderCell(e,t,r,o,g,d,p,_,null==f)||f}_renderCell(e,t,r,o,l,n,s,i,a){if(!s&&!i)return;const d=this._area.document.tagged,h=this._area.document;d&&h.beginArtifact({type:pdf.PdfArtifactType.Layout});this._renderEmptyCell(l,n,s,i);d&&h.endArtifact();let c;if(s){a=!0===d&&!0===a;let o;if(this._isBooleanCellAndValue(e,this._pr.panel,t,r)){if(a){c=h.tag(pdf.PdfTagType.Span,null,{actual:e.toString()});o=h.beginTagContent(pdf.PdfTagType.Span)}this._renderBooleanCell(e,l,n)}else{if(a){c=h.tag(pdf.PdfTagType.P);o=h.beginTagContent(pdf.PdfTagType.P)}this._renderTextCell(e,l,n)}if(a){h.endTagContent();c.add(o)}}return c}_isBooleanCellAndValue(e,t,r,o){return this._pr.gr.isBooleanCell(t,r,o)&&this._isBoolean(e)}_isBoolean(e){var t=isString(e)&&e.toLowerCase();return"true"===t||"false"===t||!0===e||!1===e}_measureCell(e,t,r,o,l,n){this._decompositeStyle(l);const s=n.left,i=n.top,a=n.height,d=n.width,h=this._parseBorder(l),c=h.left.width,g=h.top.width,u=h.bottom.width,f=h.right.width,p=this._parsePadding(l);let _=0,w=0,C=0,m=0;if("content-box"===l.boxSizing||void 0===l.boxSizing){_=p.top+a+p.bottom;w=p.left+d+p.right;C=a;m=d}else{if("border-box"!==l.boxSizing)throw"Invalid value: "+l.boxSizing;if(pdf._IE&&l instanceof CSSStyleDeclaration){_=p.top+p.bottom+a;w=p.left+p.right+d}else{_=Math.max(a-g-u,0);w=Math.max(d-c-f,0)}C=Math.max(_-p.top-p.bottom,0);m=Math.max(w-p.left-p.right,0)}return{rect:new Rect(s,i,d,a),clientRect:new Rect(s+c,i+g,w,_),contentRect:new Rect(s+c+p.left,i+g+p.top,m,C),textRect:null}}_decompositeStyle(e){if(e){let t;t=e.borderColor;if(t){e.borderLeftColor||(e.borderLeftColor=t);e.borderRightColor||(e.borderRightColor=t);e.borderTopColor||(e.borderTopColor=t);e.borderBottomColor||(e.borderBottomColor=t)}t=e.borderWidth;if(t){e.borderLeftWidth||(e.borderLeftWidth=t);e.borderRightWidth||(e.borderRightWidth=t);e.borderTopWidth||(e.borderTopWidth=t);e.borderBottomWidth||(e.borderBottomWidth=t)}t=e.borderStyle;if(t){e.borderLeftStyle||(e.borderLeftStyle=t);e.borderRightStyle||(e.borderRightStyle=t);e.borderTopStyle||(e.borderTopStyle=t);e.borderBottomStyle||(e.borderBottomStyle=t)}t=e.padding;if(t){e.paddingLeft||(e.paddingLeft=t);e.paddingRight||(e.paddingRight=t);e.paddingTop||(e.paddingTop=t);e.paddingBottom||(e.paddingBottom=t)}}}_parseBorder(e){var t={left:{width:0},top:{width:0},bottom:{width:0},right:{width:0}};"none"!==e.borderLeftStyle&&(t.left={width:pdf._asPt(e.borderLeftWidth),style:e.borderLeftStyle,color:e.borderLeftColor});"none"!==e.borderTopStyle&&(t.top={width:pdf._asPt(e.borderTopWidth),style:e.borderTopStyle,color:e.borderTopColor});"none"!==e.borderBottomStyle&&(t.bottom={width:pdf._asPt(e.borderBottomWidth),style:e.borderBottomStyle,color:e.borderBottomColor});"none"!==e.borderRightStyle&&(t.right={width:pdf._asPt(e.borderRightWidth),style:e.borderRightStyle,color:e.borderRightColor});return t}_parsePadding(e){return{left:pdf._asPt(e.paddingLeft),top:pdf._asPt(e.paddingTop),bottom:pdf._asPt(e.paddingBottom),right:pdf._asPt(e.paddingRight)}}_renderEmptyCell(e,t,r,o){var l=e.rect.left,n=e.rect.top,s=e.clientRect.width,i=e.clientRect.height,a=e.clientRect.left-e.rect.left,d=e.clientRect.top-e.rect.top,h=e.rect.top+e.rect.height-(e.clientRect.top+e.clientRect.height),c=e.rect.left+e.rect.width-(e.clientRect.left+e.clientRect.width);r=r&&t.backgroundColor&&s>0&&i>0;if(o&&(a||c||h||d)){const e=t.borderLeftColor||t.borderColor,o=t.borderRightColor||t.borderColor,g=t.borderTopColor||t.borderColor,u=t.borderBottomColor||t.borderColor;if(a&&d&&h&&c&&a===c&&a===h&&a===d&&e===o&&e===u&&e===g){const o=a,d=o/2,h=this._area.paths.rect(l+d,n+d,s+o,i+o);if(r){h.fillAndStroke(t.backgroundColor,new pdf.PdfPen(e,o));return}h.stroke(new pdf.PdfPen(e,o))}else{a&&this._area.paths.polygon([[l,n],[l+a,n+d],[l+a,n+d+i],[l,n+d+i+h]]).fill(e);d&&this._area.paths.polygon([[l,n],[l+a,n+d],[l+a+s,n+d],[l+a+s+c,n]]).fill(g);c&&this._area.paths.polygon([[l+a+s+c,n],[l+a+s,n+d],[l+a+s,n+d+i],[l+a+s+c,n+d+i+h]]).fill(o);h&&this._area.paths.polygon([[l,n+d+i+h],[l+a,n+d+i],[l+a+s,n+d+i],[l+a+s+c,n+d+i+h]]).fill(u)}}r&&this._area.paths.rect(e.clientRect.left,e.clientRect.top,e.clientRect.width,e.clientRect.height).fillAndStroke(t.backgroundColor,this.InvisiblePen)}_renderBooleanCell(e,t,r){if(!(!t.textRect||t.textRect.height<=0||t.textRect.width<=0)){var o=t.textRect.left,l=t.textRect.top,n=t.textRect.height;this._area.paths.rect(o,l,n,n).fillAndStroke(Color.fromRgba(255,255,255),new pdf.PdfPen(void 0,.5));if(!0===changeType(e,DataType.Boolean,"")){const e=n/20,t=n-.5-2*e,r=n/8;this._area.document.saveState();this._area.translate(o+.25+e,l+.25+e).paths.moveTo(r/2,.6*t).lineTo(t-.6*t,t-r).lineTo(t-r/2,r/2).stroke(new pdf.PdfPen(void 0,r));this._area.document.restoreState()}}}_renderTextCell(e,t,r){if(!e||!t.textRect||t.textRect.height<=0||t.textRect.width<=0)return;var o=r.textDecoration||"",l=o.indexOf("line-through")>=0,n=o.indexOf("underline")>=0;const s=this._area.drawText(e,t.textRect.left,t.textRect.top,{brush:r.color,font:r.font,height:t.textRect.height,width:t.textRect.width,align:"center"===r.textAlign?pdf.PdfTextHorizontalAlign.Center:"right"===r.textAlign?pdf.PdfTextHorizontalAlign.Right:"justify"===r.textAlign?pdf.PdfTextHorizontalAlign.Justify:pdf.PdfTextHorizontalAlign.Left,strike:l,underline:n});s&&(this._lastRenderCharCount=s.charCount)}_calculateTextRect(e,t,r,o,l,n){if(null!=e&&!isString(e))return null;const s=l.clone();if(this._isBooleanCellAndValue(e,t,r,o)){const e=this._getTextLineHeight(n.font);switch(n.verticalAlign){case"middle":s.top=l.top+l.height/2-e/2;break;case"bottom":s.top=l.top+l.height-e}switch(n.textAlign){case"justify":case"center":s.left=l.left+l.width/2-e/2;break;case"right":s.left=l.left+l.width-e}s.height=s.width=e}else if(s.height>0&&s.width>0)switch(n.verticalAlign){case"bottom":{const t=this._area.measureText(e,n.font,{height:s.height,width:s.width});if(t.size.height<s.height){const e=this._area.document._document,r=e.currentLineHeight(!0)-e.currentLineHeight(!1);s.top+=s.height-t.size.height-r;s.height=t.size.height}break}case"middle":{const t=this._area.measureText(e,n.font,{height:s.height,width:s.width});if(t.size.height<s.height){const e=this._area.document._document,r=e.currentLineHeight(!0)-e.currentLineHeight(!1);s.top+=s.height/2-(t.size.height-r)/2;s.height=t.size.height}break}}return s}_getTextLineHeight(e){return this._area.lineHeight(e)}}class GetMergedRangeProxy{constructor(e){this._columns={};this._flex=e}getMergedRange(e,t,r){const o=this._columns[r];if(o&&t>=o.topRow&&t<=o.bottomRow)return o;{let o=this._flex.getMergedRange(e,t,r),l=e.columns,n=e.rows;if(o&&!o.isSingleCell&&(!l[o.col].isVisible||!l[o.col2].isVisible||!n[o.row].isVisible||!n[o.row2].isVisible)){o=o.clone();for(;o.col<o.col2&&!l[o.col].isVisible;)o.col++;for(;o.col2>o.col&&!l[o.col2].isVisible;)o.col2--;for(;o.row<o.row2&&!n[o.row].isVisible;)o.row++;for(;o.row2>o.row&&!n[o.row2].isVisible;)o.row2--}o&&o.isSingleCell&&(o=null);this._columns[r]=o?new _CellRangeExt(e,o):null;return this._columns[r]}}}export class _CellRange{constructor(e,t,r,o){if("number"==typeof e){this._row=e;this._col=t;this._row2=r;this._col2=o}else{this._row=e.row;this._col=e.col;this._row2=e.row2;this._col2=e.col2}(this._row<0||this._row2<0)&&(this._row=this._row2=-1);(this._col<0||this._col2<0)&&(this._col=this._col2=-1)}get row(){return this._row}set row(e){this._row=e}get col(){return this._col}set col(e){this._col=e}get row2(){return this._row2}set row2(e){this._row2=e}get col2(){return this._col2}set col2(e){this._col2=e}get topRow(){return Math.min(this._row,this._row2)}get bottomRow(){return Math.max(this._row,this._row2)}get leftCol(){return Math.min(this._col,this._col2)}get rightCol(){return Math.max(this._col,this._col2)}get columnSpan(){return Math.abs(this._col2-this._col)+1}get rowSpan(){return Math.abs(this._row2-this._row)+1}get isValid(){return this._row>-1&&this._col>-1&&this._row2>-1&&this._col2>-1}get isSingleCell(){return this._row===this._row2&&this._col===this._col2}copyFrom(e){this.setRange(e.row,e.col,e.row2,e.col2)}clone(){return new _CellRange(this._row,this._col,this._row2,this._col2)}getRenderSize(e,t){const r=new Size(0,0);if(this.isValid){for(let o=this.topRow;o<=this.bottomRow;o++){const l=t.rows[o];e.isRenderableRow(l)&&(r.height+=l.renderHeight)}for(let o=this.leftCol;o<=this.rightCol;o++){const l=t.columns[o];e.isRenderableColumn(l)&&(r.width+=l.renderWidth)}}return r}setRange(e=-1,t=-1,r=e,o=t){this._row=asInt(e);this._col=asInt(t);this._row2=asInt(r);this._col2=asInt(o)}}export class _CellRangeExt extends _CellRange{constructor(e,t,r,o,l){super(t,r,o,l);this.firstVisibleRow=-1;this.visibleRowsCount=0;if(e){const t=this.topRow,r=this.bottomRow,o=e.rows.length;if(o>0)for(let l=t;l<=r&&l<o;l++)if(e.rows[l].isVisible){this.firstVisibleRow<0&&(this.firstVisibleRow=l);this.visibleRowsCount++}}}copyFrom(e){super.copyFrom(e);this.firstVisibleRow=e.firstVisibleRow;this.visibleRowsCount=e.visibleRowsCount}clone(){return new _CellRangeExt(null,this.row,this.col,this.row2,this.col2)}}class RowRange{constructor(e){this._ranges=e||[]}length(){let e=0;for(let t=0;t<this._ranges.length;t++){const r=this._ranges[t];r.isValid&&(e+=r.bottomRow-r.topRow+1)}return e}get isValid(){return this._ranges.length&&this._ranges[0].isValid}get leftCol(){return this._ranges.length?this._ranges[0].leftCol:-1}get rightCol(){return this._ranges.length?this._ranges[0].rightCol:-1}clone(e,t){const r=[];for(let o=0;o<this._ranges.length;o++){const l=this._ranges[o].clone();arguments.length>0&&(l.col=e);arguments.length>1&&(l.col2=t);r.push(l)}return new RowRange(r)}getRenderSize(e,t){const r=new Size(0,0);for(let o=0;o<this._ranges.length;o++){const l=this._ranges[o].getRenderSize(e,t);r.width=Math.max(r.width,l.width);r.height+=l.height}return r}find(e,t){let r=null;this.forEach(e,e=>{if(!0===t(e)){r=e;return!1}});return r}forEach(e,t){let r=0,o=!1;for(let l=0;l<this._ranges.length&&!o;l++){const n=this._ranges[l];if(n.isValid)for(let l=n.topRow;l<=n.bottomRow&&!o;l++)o=!1===t(e.rows[l],n,l,r++)}}subrange(e,t,r,o){const l=[];if(e>=0&&t>0){let n=0,s=0;for(let i=0;i<this._ranges.length&&t>0;i++,n=s+1){const a=this._ranges[i];s=n+(a.bottomRow-a.topRow);if(e>s)continue;const d=e>n?a.topRow+(e-n):a.topRow,h=Math.min(a.bottomRow,d+t-1),c=arguments.length>2?r:a.leftCol,g=arguments.length>2?o:a.rightCol;l.push(new _CellRange(d,c,h,g));t-=h-d+1}}return new RowRange(l)}}class PdfPageRowRange{constructor(e,t,r){this._col=t;this._row=r;this._range=e}get range(){return this._range}get pageCol(){return this._col}get pageRow(){return this._row}}var _fc;const FAKE_CELL="wj-pdf-fake-cell";function getFakeCell(e){if(!_fc){(_fc=document.createElement("div")).setAttribute(FAKE_CELL,"true");softGrid()&&_fc.setAttribute(softGrid().FlexGrid._WJS_MEASURE,"true")}const t=_fc.style;t.cssText="";t.position="absolute";t.overflow="hidden";t.width="1px";t.height="1px";t.clipPath="inset(100%)";t.clip="rect(0 0 0 0)";const r=e.hostElement,o=r.children.length?r.children[0]:r;_fc.parentNode!==o&&o.appendChild(_fc);return _fc}export function _removeFakeCell(){if(_fc){removeChild(_fc);_fc=null}}export class FlexGridPdfConverter{static draw(e,t,r,o,l){FlexGridPdfConverter.drawToPosition(e,t,null,r,o,l)}static drawToPosition(e,t,r,o,l,n){assert(!!e,"The flex argument cannot be null.");assert(!!t,"The doc argument cannot be null.");let s,i=softGrid()&&e instanceof softGrid().FlexGrid,a=e;try{n=_FlexGridPdfCoreConverter._applyDefaultDrawSettings(n);let d=e;if(i){if(n&&n.recalculateStarWidths){s=a.columns.getTotalSize();a.columns._updateStarSizes(pdf.ptToPx(t.width))}d=FlexGridPdfConverter._getFlexGridAdapter(a,n)}_FlexGridPdfCoreConverter.draw(d,t,r,o,l,n)}finally{_removeFakeCell();i&&n&&n.recalculateStarWidths&&a.columns._updateStarSizes(s)}}static export(e,t,r){assert(!!e,"The flex argument cannot be null.");assert(!!t,"The fileName argument cannot be empty.");var o=(r=FlexGridPdfConverter._applyDefaultExportSettings(r)).documentOptions.ended;r.documentOptions.ended=(e,n)=>{r.progress&&r.progress(1);o&&!1===o.apply(l,[e,n])||pdf.saveBlob(n.blob,t);e.dispose()};var l=new pdf.PdfDocument(r.documentOptions);FlexGridPdfConverter.drawToPosition(e,l,null,null,null,r);l.end()}static _getFlexGridAdapter(e,t){return new(softMultiRow()&&e instanceof softMultiRow().MultiRow&&MultiRowAdapter||softSheet()&&e instanceof softSheet().FlexSheet&&FlexSheetAdapter||softOlap()&&e instanceof softOlap().PivotGrid&&PivotGridAdapter||softTransposed()&&e instanceof softTransposed().TransposedGrid&&_TransposedGridAdapter||softTransposedMultiRow()&&e instanceof softTransposedMultiRow().TransposedMultiRow&&TransposedMultiRowAdapter||FlexGridAdapter)(e,t)}static _applyDefaultExportSettings(e){return _merge(_merge({},e),FlexGridPdfConverter._DefaultExportSettings)}}FlexGridPdfConverter._DefaultExportSettings=_merge({scaleMode:ScaleMode.PageWidth,documentOptions:{compress:!1,pageSettings:{margins:{left:36,right:36,top:18,bottom:18}}},_progressMax:.9},_FlexGridPdfCoreConverter.DefaultDrawSettings);class FlexGridAdapter{constructor(e,t){this._defBorderColor=null;this._flex=e;this._settings=t;t.quickCellStyles&&(this._styleCache=new StyleCache(500))}get flex(){return this._flex}get settings(){return this._settings}get columns(){return this._flex.columns}get rows(){return this._flex.rows}get bottomLeftCells(){return this._flex.bottomLeftCells}get cells(){return this._flex.cells}get columnFooters(){return this._flex.columnFooters}get columnHeaders(){return this._flex.columnHeaders}get rowHeaders(){return this._flex.rowHeaders}get topLeftCells(){return this._flex.topLeftCells}get treeIndent(){return this._flex.treeIndent}get treeColumnIndex(){return this._flex._getTreeColIndex()}getSelection(){var e=[],t=this._flex.selection,r=softGrid();switch(this._flex.selectionMode){case r.SelectionMode.None:break;case r.SelectionMode.Cell:case r.SelectionMode.CellRange:e.push(new _CellRange(t.row,t.col,t.row2,t.col2));break;case r.SelectionMode.Row:e.push(new _CellRange(t.topRow,0,t.topRow,this._flex.cells.columns.length-1));break;case r.SelectionMode.RowRange:e.push(new _CellRange(t.topRow,0,t.bottomRow,this._flex.cells.columns.length-1));break;case r.SelectionMode.ListBox:{let t=-1;for(let r=0;r<this._flex.rows.length;r++){if(this._flex.rows[r].isSelected){t<0&&(t=r);r===this._flex.rows.length-1&&e.push(new _CellRange(t,0,r,this._flex.cells.columns.length-1))}else{t>=0&&e.push(new _CellRange(t,0,r-1,this._flex.cells.columns.length-1));t=-1}}break}}return e}getCell(e,t,r,o){var l=e.getCellElement(t,r);if(!l){l=getFakeCell(e);this._flex.cellFactory.updateCell(e,t,r,l,null,o)}return l}getComputedDefBorderColor(){if(null==this._defBorderColor){const e=window.getComputedStyle(this._flex.hostElement);this._defBorderColor="none"!=e.borderRightStyle?e.borderRightColor:"none"!=e.borderBottomStyle?e.borderBottomColor:"none"!=e.borderLeftStyle?e.borderLeftColor:"none"!=e.borderTopStyle?e.borderTopColor:"rgba(0,0,0,0.2)"}return this._defBorderColor}getComputedStyle(e,t){let r;const o=null==t.getAttribute(FAKE_CELL),l=t.className,n=l.indexOf(ControlStateClsNames.selected)>=0||l.indexOf(ControlStateClsNames.multiSelected)>=0;n&&(t.className=l.replace(ControlStateClsNames.selected,"").replace(ControlStateClsNames.multiSelected,""));if(this._styleCache){const o=e.hostElement;let l=t.style.cssText.split(/;\s+/).filter(e=>{var t=e.substring(0,e.indexOf(":"));return/^(color|background-color|border-color|border-left-color|border-right-color|border-top-color|border-bottom-color|font|textAlign|text-decoration)/i.test(t)}).join(";"),n=t;do{l=n.className+l}while(n!==o&&(n=n.parentElement));r=this._styleCache.getValue(l);if(!r){r=window.getComputedStyle(t);r=this._styleCache.add(l,r)}}else r=_cloneStyle(window.getComputedStyle(t));o&&n&&(t.className=l);return r}getMergedRange(e,t,r){const o=this._flex.getMergedRange(e,t,r,!1);return o?new _CellRange(o.row,o.col,o.row2,o.col2):null}get showColumnHeader(){return!!(this._flex.headersVisibility&softGrid().HeadersVisibility.Column)}get showRowHeader(){return!!(this._flex.headersVisibility&softGrid().HeadersVisibility.Row)}get showColumnFooter(){return this._flex.columnFooters.rows.length>0}alignMergedTextToTheTopRow(e){return!1}getCellData(e,t,r){return e.getCellData(t,r,!0)}getCellContent(e,t,r,o){let l,n=softGrid();if(this.settings.customCellContent){const n=this.getCell(e,t.index,o,!0);l=n.innerText.trim();l=l.replace(/\r/gm,"").replace(/\n+/gm,"\n");if(!l&&this.isBooleanCell(e,t,r)){l=this._extractCheckboxValue(n);l=null==l?"":""+l}}else{let s=r.isContentHtml;l=this.getCellData(e,t.index,o);if(this.isGroupRow(t)&&e.cellType===n.CellType.Cell&&r.index===this.treeColumnIndex){s=!0;l||(l=t.getGroupHeader())}s&&(l=toPlainText(l).trim())}return l}isBooleanCell(e,t,r){return r.dataType===DataType.Boolean&&e.cellType===softGrid().CellType.Cell&&(!this.isExpandableGroupRow(t)||r.index!==this.treeColumnIndex)}getColumn(e,t,r){return e.columns[r]}isAlternatingRow(e){let t=!1,r=this._flex.alternatingRowStep;if(r){t=e.visibleIndex%(r+1)==0;1==r&&(t=!t)}return t}isGroupRow(e){return e instanceof softGrid().GroupRow}isNewRow(e){return e instanceof softGrid()._NewRowTemplate}isDetailRow(e){return softDetail()&&e instanceof softDetail().DetailRow}isExpandableGroupRow(e){return e instanceof softGrid().GroupRow&&e.hasChildren}isRenderableRow(e){return e.isVisible&&e.renderHeight>0&&!this.isNewRow(e)}isRenderableColumn(e){return e.isVisible&&e.renderWidth>0}getCellStyle(e,t,r){var o=this.settings.styles,l=_merge({},o.cellStyle),n=this._flex,s=softGrid();switch(e.cellType){case s.CellType.Cell:this.isExpandableGroupRow(t)?_merge(l,o.groupCellStyle,!0):this.isAlternatingRow(t)&&_merge(l,o.altCellStyle,!0);break;case s.CellType.ColumnHeader:case s.CellType.RowHeader:case s.CellType.TopLeft:case s.CellType.BottomLeft:_merge(l,o.headerCellStyle,!0);break;case s.CellType.ColumnFooter:_merge(l,o.headerCellStyle,!0);_merge(l,o.footerCellStyle,!0)}!this.settings.customCellContent&&n._getShowErrors()&&n._getError(e,t.index,r.index)&&_merge(l,o.errorCellStyle,!0);return l}_extractCheckboxValue(e){var t=e.querySelector("input[type=checkbox]");if(t&&"none"!==t.style.display&&"hidden"!==t.style.visibility)return t.checked}}class FlexSheetAdapter extends FlexGridAdapter{getCellData(e,t,r){return e.cellType===softGrid().CellType.Cell?e.rows[t]instanceof softSheet().HeaderRow?this.flex.columnHeaders.getCellData(t,r,!0):this.flex.getCellValue(t,r,!0):super.getCellData(e,t,r)}getCellStyle(e,t,r){var o=super.getCellStyle(e,t,r),l=this.flex.selectedSheet.findTable(t.index,r.index);if(l){const e=l.getRange(),n=t.index-e.topRow,s=r.index-e.leftCol,i=l._getTableCellAppliedStyles(n,s);i&&(i.font=new pdf.PdfFont(i.fontFamily,pdf._asPt(i.fontSize,!0,void 0),i.fontStyle,i.fontWeight));_merge(o,i,!0)}return o}get showColumnHeader(){return!1}get showRowHeader(){return!1}get showColumnFooter(){return!1}}class MultiRowAdapter extends FlexGridAdapter{getColumn(e,t,r){return _combineColumns(super.getColumn(e,t,r),this.flex.getBindingColumn(e,t,r))}isAlternatingRow(e){if(e instanceof softMultiRow()._MultiRow){let t=!1,r=this.flex.alternatingRowStep;if(r){t=e.dataIndex%(r+1)==0;1==r&&(t=!t)}return t}return super.isAlternatingRow(e)}}class PivotGridAdapter extends FlexGridAdapter{alignMergedTextToTheTopRow(e){const t=softGrid();return!this.flex.centerHeadersVertically&&(e.cellType===t.CellType.ColumnHeader||e.cellType===t.CellType.RowHeader)}}class _TransposedGridAdapter extends FlexGridAdapter{getColumn(e,t,r){const o=super.getColumn(e,t,r);if(e.cellType!=softGrid().CellType.Cell)return o;{const r=e.grid._getBindingColumn(e,t,o);return r?_combineColumns(o,r):o}}}class TransposedMultiRowAdapter extends FlexGridAdapter{getColumn(e,t,r){const o=super.getColumn(e,t,r);if(e.cellType!=softGrid().CellType.Cell)return o;{const l=this.flex.getBindingColumn(e,t,r);return l?_combineColumns(o,l):o}}}class StyleCache{constructor(e){this._cache={};this._size=0;this._max=e}add(e,t){this._size>=this._max&&this.clear();const r=_cloneStyle(t);this._cache[e]=r;this._size++;return r}clear(){this._cache={};this._size=0}getValue(e){return this._cache[e]||null}hasKey(e){return!!this._cache[e]}}var PdfWebWorkerResponseStatus;!function(e){e[e.Done=1]="Done";e[e.Progress=2]="Progress"}(PdfWebWorkerResponseStatus||(PdfWebWorkerResponseStatus={}));const DefGridName="";export class PdfWebWorkerExportDoneEventArgs extends EventArgs{constructor(e){super();this._buf=e}get blob(){this._blob||(this._blob=new Blob([new Uint8Array(this._buf)],{type:"application/pdf"}));return this._blob}get buffer(){return this._buf}}export class PdfWebWorkerClient{static exportGrid(e,t,r,o,l,n){(o=FlexGridPdfConverter._applyDefaultExportSettings(o)).progress=o.progress||n;PdfWebWorkerClient.addGrid(e,t,"",o);PdfWebWorkerClient.export(e,o.documentOptions,e=>{isFunction(l)&&!1===l(e)||pdf.saveBlob(e.blob,r)},n)}static export(e,t,r,o){e.addEventListener("message",(function handler(t){const l=t.data;switch(l.status){case PdfWebWorkerResponseStatus.Done:e.removeEventListener("message",handler);isFunction(r)&&r(new PdfWebWorkerExportDoneEventArgs(l.data));break;case PdfWebWorkerResponseStatus.Progress:o&&o(l.data);break;default:throw"Unknown status: "+l.status}}));const l=PdfWebWorkerClient._clientDataToArrayBuffer(e);e.postMessage({content:l,settings:t},[l]);PdfWebWorkerClient._clearClientData(e)}static addGrid(e,t,r,o){const l=PdfWebWorkerClient._gridToJson(t,o);PdfWebWorkerClient._addClientData(e,JSON.stringify(l),r,o,!0)}static addImage(e,t,r,o){const l=isString(t)&&t.indexOf("data:image/svg")>=0?t:pdf._PdfImageHelper.getDataUri(t);PdfWebWorkerClient._addClientData(e,l,r,o)}static addString(e,t,r){PdfWebWorkerClient._addClientData(e,t,r,null)}static serializeGrid(e,t){const r=PdfWebWorkerClient._gridToJson(e,t);return strToBuf(JSON.stringify(r))}static _addClientData(e,t,r,o,l=!1){asType(e,Worker);asString(r);asString(t,!0);const n=e;n.clientData=n.clientData||{};n.clientData[r]={content:t,settings:o?JSON.stringify(o):null};var s=n.clientData[r];if(l){s.isGrid=!0;s.progressMessaging=!!o&&isFunction(o.progress)}}static _clearClientData(e){delete e.clientData}static _clientDataToArrayBuffer(e){const t=e;return strToBuf(JSON.stringify(t.clientData||{}))}static _gridToJson(e,t){t=FlexGridPdfConverter._applyDefaultExportSettings(t);let r,o;try{r=new pdf.PdfDocument(t.documentOptions);if(t&&t.recalculateStarWidths){o=e.columns.getTotalSize();e.columns._updateStarSizes(pdf.ptToPx(r.width))}return PdfWebWorkerClient._getJsonConverter(e,t).convert()}finally{_removeFakeCell();t&&t.recalculateStarWidths&&e.columns._updateStarSizes(o);if(null!=r){r.dispose();r=null}}}static _getJsonConverter(e,t){return new(softMultiRow()&&e instanceof softMultiRow().MultiRow&&MultiRowJsonConverter||softOlap()&&e instanceof softOlap().PivotGrid&&PivotGridJsonConverter||softTransposed()&&e instanceof softTransposed().TransposedGrid&&TransposedGridJsonConverter||softTransposedMultiRow()&&e instanceof softTransposedMultiRow().TransposedMultiRow&&TransposedMultirowJsonConverter||FlexGridJsonConverter)(e,t,FlexGridPdfConverter._getFlexGridAdapter(e,t))}}export class PdfWebWorker{static initExportGrid(){PdfWebWorker.initExport((e,t)=>{var r=t[""];if(r.progressMessaging){r.settings._progressMax=FlexGridPdfConverter._DefaultExportSettings._progressMax;r.settings.progress=e=>{PdfWebWorker.sendExportProgress(e)};e.ended.addHandler(()=>{PdfWebWorker.sendExportProgress(1)})}FlexGridPdfConverter.draw(r.content,e,null,null,r.settings);e.end()})}static initExport(e){self.addEventListener("message",(function handler(t){self.removeEventListener("message",handler);const r=t.data,o=JSON.parse(bufToStr(r.content)),l=r.settings||{};l.ended=(e,t)=>{blobToBuf(t.blob,e=>{self.postMessage({data:e,status:PdfWebWorkerResponseStatus.Done},[e])})};const n=new pdf.PdfDocument(l);Object.keys(o).forEach(e=>{const t=o[e];t.settings&&(t.settings=JSON.parse(t.settings));if(t.isGrid){t.settings&&PdfWebWorker._disableUnsupportedFeatures(t.settings);t.content=PdfWebWorker._deserializeGridFromString(t.content,t.settings)}});e(n,o)}))}static sendExportProgress(e){e=clamp(e,0,1);self.postMessage({data:e,status:PdfWebWorkerResponseStatus.Progress})}static deserializeGrid(e,t){return PdfWebWorker._deserializeGridFromString(bufToStr(e),t)}static _deserializeGridFromString(e,t){return PdfWebWorker._getJsonAdapter(JSON.parse(e),FlexGridPdfConverter._applyDefaultExportSettings(t))}static _disableUnsupportedFeatures(e){e.customCellContent=!1}static _getJsonAdapter(e,t){switch(e.typeName){case"MultiRow":return new MultiRowJsonAdapter(e,t);case"PivotGrid":return new PivotGridJsonAdapter(e,t);case"TransposedGrid":return new TransposedGridJsonAdapter(e,t);case"TransposedMultiRow":return new TransposedMultiRowJsonAdapter(e,t);default:return new FlexGridJsonAdapter(e,t)}}}function bufToStr(e){var t=new Uint16Array(e),r="";for(let e=0,o=t.length;e<o;e++)r+=String.fromCharCode(t[e]);return r}function strToBuf(e){var t=new ArrayBuffer(2*e.length),r=new Uint16Array(t);for(let t=0,o=e.length;t<o;t++)r[t]=e.charCodeAt(t);return t}function blobToBuf(e,t){asFunction(t);var r=new FileReader;r.onload=e=>{t(e.target.result)};r.readAsArrayBuffer(e)}var RowState,ColState;!function(e){e[e.None=0]="None";e[e.Alternate=1]="Alternate";e[e.Group=2]="Group";e[e.ExpandableGroup=4]="ExpandableGroup";e[e.New=8]="New";e[e.Visible=16]="Visible";e[e.Detail=32]="Detail"}(RowState||(RowState={}));!function(e){e[e.None=0]="None";e[e.Visible=1]="Visible"}(ColState||(ColState={}));class FlexGridJsonConverter{constructor(e,t,r){this._flex=e;this._settings=t;this._adapter=r}convert(){var e={};e.typeName=this._getTypeName(this._flex);e.selection=this._serializeSelection();e.showColumnFooter=this.adapter.showColumnFooter;e.showColumnHeader=this.adapter.showColumnHeader;e.showRowHeader=this.adapter.showRowHeader;e.treeIndent=this._flex.treeIndent;e.treeColumnIndex=this.adapter.treeColumnIndex;e.bottomLeftCells=this._serializePanel(this._flex.bottomLeftCells);e.cells=this._serializePanel(this._flex.cells);e.columnFooters=this._serializePanel(this._flex.columnFooters);e.columnHeaders=this._serializePanel(this._flex.columnHeaders);e.rowHeaders=this._serializePanel(this._flex.rowHeaders);e.topLeftCells=this._serializePanel(this._flex.topLeftCells);return e}get adapter(){return this._adapter}get flex(){return this._flex}_getConstructorName(e){let t=e.constructor.name;t=t.replace(/\d+$/g,"");return t}_getTypeName(e){const t=new Set(["MultiRow","PivotGrid","TransposedGrid","TransposedMultiRow","FlexGrid"]);let r=e;for(;r;){const e=this._getConstructorName(r);if(t.has(e))return e;r=r.constructor.prototype.__proto__}return e.constructor.name}_getRowState(e){var t=RowState.None;this.adapter.isAlternatingRow(e)&&(t|=RowState.Alternate);e instanceof softGrid().GroupRow&&(t|=RowState.Group);this.adapter.isDetailRow(e)&&(t|=RowState.Detail);this.adapter.isExpandableGroupRow(e)&&(t|=RowState.ExpandableGroup);e instanceof softGrid()._NewRowTemplate&&(t|=RowState.New);e.isVisible&&(t|=RowState.Visible);return t}_getColumnState(e){var t=ColState.None;e.isVisible&&(t|=ColState.Visible);return t}_serializeSelection(){const e=this.adapter.getSelection(),t=[];for(let r=0;r<e.length;r++){const o=e[r];t.push([o.row,o.col,o.row2,o.col2])}return t}_serializeColumns(e){const t=[];for(let r=0,o=(e||[]).length;r<o;r++){let o=e[r],l=null;if(o){l={aggregate:o.aggregate,renderWidth:o.renderWidth,visibleIndex:o.visibleIndex};const e=o.getAlignment();e&&(l.alignment=e);const t=this._getColumnState(o);t!==ColState.None&&(l.state=t);o.binding&&(l.binding=o.binding);null!=o.dataType&&(l.dataType=o.dataType);null!=o.name&&(l.name=o.name);o.wordWrap&&(l.wordWrap=!0);o.multiLine&&(l.multiLine=!0)}t.push(l)}return t}_serializePanel(e){const t={cellType:e.cellType,height:e.height,width:e.width},getAlignment=e=>{if(e.align)return e.align;if(!e.dataMap)switch(e.dataType){case DataType.Boolean:return"center";case DataType.Number:return"right"}return null};t.mergedRanges=this._serializeMergedRanges(e);t.columns=this._serializeColumns(e.columns);t.columnsFirstVisibleIndex=e.columns.firstVisibleIndex;t.rows=[];t.rowsMaxGroupLevel=e.rows.maxGroupLevel;const r=!this._settings.customCellContent&&this._flex._getShowErrors();for(let o=0,l=e.rows.length,n=e.columns.length;o<l;o++){const l=e.rows[o],s={renderHeight:l.renderHeight};t.rows.push(s);const i=getAlignment(l);i&&(s.alignment=i);l instanceof softGrid().GroupRow&&(s.level=l.level);const a=this._getRowState(l);a!==RowState.None&&(s.state=a);l.binding&&(s.binding=l.binding);null!=l.dataType&&(s.dataType=l.dataType);l.wordWrap&&(s.wordWrap=!0);l.multiLine&&(s.multiLine=!0);s.cells=[];const d=softGrid();for(let t=0;t<n;t++){let l=this._adapter.getCellContent(e,e.rows[o],e.columns[t],t);if(isFunction(this._settings.formatItem)){const r=new PdfFormatItemEventArgs(e,new d.CellRange(o,t),null,null,null,null,null,()=>this._adapter.getCell(e,o,t,!0),null);r.data=l;this._settings.formatItem(r);r.data!==l&&(l=r.data)}s.cells[t]=l;if(r&&this._flex._getError(e,o,t)){s.errors||(s.errors={});s.errors[t]=1}}}return t}_serializeMergedRanges(e){const t=[],r=[];let o,l,n,s,i;for(o=0;o<e.columns.length;o++)r[o]=0;for(l=0;l<e.rows.length;l++)for(n=0;n<e.columns.length;n++)if(!(l<r[n])){s=e.grid.getMergedRange(e,l,n);if(null!=s&&!s.isSingleCell){t.push([s.row,s.col,s.row2,s.col2]);for(i=s.col;i<=s.col2;i++)r[i]=s.row2+1;s.col!==s.col2&&(n=s.col2)}}return t}}class MultiRowJsonConverter extends FlexGridJsonConverter{convert(){const e=super.convert();e.rowsPerItem=this.flex.rowsPerItem;return e}_serializePanel(e){const t=super._serializePanel(e);t.cellGroups=this._serializeCellGroup(e);return t}_serializeCellGroup(e){const t=[],r=[],o=softGrid();let l=this.flex.rowsPerItem;e.cellType!==o.CellType.TopLeft&&e.cellType!==o.CellType.ColumnHeader||(l=e.rows.length);for(let o=0;o<l;o++){r[o]=[];for(let l=0;l<e.columns.length;l++){const n=this.flex.getBindingColumn(e,o,l),s=t.indexOf(n);r[o][l]=s<0?t.push(n)-1:s}}return{bindingColumns:this._serializeColumns(t),mappings:r}}}class PivotGridJsonConverter extends FlexGridJsonConverter{convert(){const e=super.convert();e.centerHeadersVertically=this.flex.centerHeadersVertically;return e}}class TransposedGridJsonConverter extends FlexGridJsonConverter{convert(){const e=super.convert(),t=new Array(this.flex.cells.rows.length),r=this.flex.cells,o=softGrid();let l,n,s,i;for(l=0,n=r.rows.length;l<n;l++){s=r.rows[l].dataItem;i=s&&s._rowInfo;i instanceof o.Column||(i=_combineColumns(i,i));t[l]=i}e.rowInfo=this._serializeColumns(t);return e}}class TransposedMultirowJsonConverter extends FlexGridJsonConverter{convert(){const e=super.convert();e.cellGroups=this._serializeCellGroup();e.columnsPerItem=this.flex.columnsPerItem;return e}_serializeCellGroup(){const e=[],t=[],r=this.flex.columnsPerItem,o=this.flex.cells;for(let l=0;l<o.rows.length;l++){t[l]=[];for(let n=0;n<r;n++){const r=this.flex.getBindingColumn(o,l,n),s=e.indexOf(r);t[l][n]=s<0?e.push(r)-1:s}}return{bindingColumns:this._serializeColumns(e),mappings:t}}}class RowJson{constructor(e,t){this.index=t;this.binding=e.binding;this.dataType=e.dataType;this.alignment=e.alignment;this.level=e.level;this.renderHeight=e.renderHeight;this.cells=e.cells;this.wordWrap=e.wordWrap||!1;this.multiLine=e.multiLine||!1;this.errors=e.errors;this._state=e.state}get isAlternatingRow(){return(this._state&RowState.Alternate)!==RowState.None}get isGroupRow(){return(this._state&RowState.Group)!==RowState.None}get isDetailRow(){return(this._state&RowState.Detail)!==RowState.None}get isExpandableGroupRow(){return(this._state&RowState.ExpandableGroup)!==RowState.None}get isNewRow(){return(this._state&RowState.New)!==RowState.None}get isVisible(){return(this._state&RowState.Visible)!==RowState.None}}class ColumnJson{constructor(e,t){this.index=t;this.binding=e.binding;this.dataType=e.dataType;this.aggregate=e.aggregate;this.name=e.name;this.renderWidth=e.renderWidth;this.visibleIndex=e.visibleIndex;this.wordWrap=e.wordWrap||!1;this.multiLine=e.multiLine||!1;this._alignment=e.alignment;this._state=e.state}getAlignment(e){return this._alignment?this._alignment:e&&e.alignment?e.alignment:""}get isVisible(){return(this._state&ColState.Visible)!==ColState.None}}class RowJsonCollection{constructor(e,t=-1){this.maxGroupLevel=t;this.length=e.length;for(let t=0;t<e.length;t++)this[t]=new RowJson(e[t],t)}}class ColumnJsonCollection{constructor(e,t=-1){this.firstVisibleIndex=t;this.length=e.length;for(let t=0;t<e.length;t++){const r=e[t];this[t]=r?new ColumnJson(e[t],t):null}}}class GridJsonPanel{constructor(e){this.height=e.height;this.width=e.width;this.cellType=e.cellType;this.columns=new ColumnJsonCollection(e.columns,e.columnsFirstVisibleIndex);this.rows=new RowJsonCollection(e.rows,e.rowsMaxGroupLevel);this._mergedRanges=this._deserializeMergedRanges(e.mergedRanges)}getCellData(e,t){return this.rows[e].cells[t]}getMergedRange(e,t){const r=this._mergedRanges[e];if(r)for(let e=0,o=r.length;e<o;e++){const o=r[e];if(t>=o.col&&t<=o.col2)return o}return null}_deserializeMergedRanges(e){const t=[];e=e||[];for(let e=0,r=this.rows.length;e<r;e++)t[e]=[];for(let r=0,o=e.length;r<o;r++){const o=e[r],l=new _CellRange(o[0],o[1],o[2],o[3]);for(let e=l.row;e<=l.row2;e++)t[e].push(l)}return t}}class FlexGridJsonAdapter{constructor(e,t){this.settings=t;this.bottomLeftCells=this.deserializePanel(e.bottomLeftCells);this.cells=this.deserializePanel(e.cells);this.columnFooters=this.deserializePanel(e.columnFooters);this.columnHeaders=this.deserializePanel(e.columnHeaders);this.rowHeaders=this.deserializePanel(e.rowHeaders);this.topLeftCells=this.deserializePanel(e.topLeftCells);this.treeIndent=e.treeIndent;this.treeColumnIndex=e.treeColumnIndex;this.showColumnFooter=e.showColumnFooter;this.showColumnHeader=e.showColumnHeader;this.showRowHeader=e.showRowHeader;this._selection=[];for(let t=0;t<e.selection.length;t++){const r=e.selection[t];this._selection.push(new _CellRange(r[0],r[1],r[2],r[3]))}}get columns(){return this.cells.columns}get rows(){return this.cells.rows}getSelection(){return this._selection}getCell(e,t,r,o){throw"Not implemented"}getComputedDefBorderColor(){throw"Not implemented"}getComputedStyle(e,t){throw"Not implemented"}getMergedRange(e,t,r){return e.getMergedRange(t,r)}alignMergedTextToTheTopRow(e){return!1}getCellData(e,t,r){return e.getCellData(t,r)}getCellContent(e,t,r,o){return this.getCellData(e,t.index,o)}isBooleanCell(e,t,r){return r.dataType===DataType.Boolean&&e.cellType===_CellType.Cell&&(!this.isExpandableGroupRow(t)||r.index!==this.treeColumnIndex)}getColumn(e,t,r){return e.columns[r]}isAlternatingRow(e){return e.isAlternatingRow}isGroupRow(e){return e.isGroupRow}isNewRow(e){return e.isNewRow}isDetailRow(e){return e.isDetailRow}isExpandableGroupRow(e){return e.isExpandableGroupRow}isRenderableRow(e){return e.isVisible&&e.renderHeight>0&&!this.isNewRow(e)}isRenderableColumn(e){return e.isVisible&&e.renderWidth>0}getCellStyle(e,t,r){var o=this.settings.styles,l=_merge({},o.cellStyle);switch(e.cellType){case _CellType.Cell:this.isExpandableGroupRow(t)?_merge(l,o.groupCellStyle,!0):this.isAlternatingRow(t)&&_merge(l,o.altCellStyle,!0);break;case _CellType.ColumnHeader:case _CellType.RowHeader:case _CellType.TopLeft:case _CellType.BottomLeft:_merge(l,o.headerCellStyle,!0);break;case _CellType.ColumnFooter:_merge(l,o.headerCellStyle,!0);_merge(l,o.footerCellStyle,!0)}t.errors&&t.errors[r.index]&&_merge(l,o.errorCellStyle,!0);return l}deserializePanel(e){return new GridJsonPanel(e)}}class PivotGridJsonAdapter extends FlexGridJsonAdapter{constructor(e,t){super(e,t);this._centerHeadersVertically=e.centerHeadersVertically}alignMergedTextToTheTopRow(e){return!this._centerHeadersVertically&&(e.cellType===_CellType.ColumnHeader||e.cellType===_CellType.RowHeader)}}class MultiRowJsonPanel extends GridJsonPanel{constructor(e){super(e);e.cellGroups&&(this._cellGroups={bindingColumns:new ColumnJsonCollection(e.cellGroups.bindingColumns),mappings:e.cellGroups.mappings})}getColumn(e,t,r){const o=this.columns[t];let l;if(this._cellGroups){this.cellType!==_CellType.ColumnHeader&&this.cellType!==_CellType.BottomLeft&&(e%=r);l=this._cellGroups.bindingColumns[this._cellGroups.mappings[e][t]];return _combineColumns(o,l)}return o}}class MultiRowJsonAdapter extends FlexGridJsonAdapter{constructor(e,t){super(e,t);this._rowsPerItem=e.rowsPerItem}deserializePanel(e){return new MultiRowJsonPanel(e)}getColumn(e,t,r){return e.getColumn(t,r,this._rowsPerItem)}}class TransposedGridJsonAdapter extends FlexGridJsonAdapter{constructor(e,t){super(e,t);this._rowInfo=new ColumnJsonCollection(e.rowInfo)}getColumn(e,t,r){const o=super.getColumn(e,t,r);if(e.cellType!==_CellType.Cell)return o;{const e=this._rowInfo[t];return e?_combineColumns(o,e):o}}}class TransposedMultiRowJsonAdapter extends FlexGridJsonAdapter{constructor(e,t){super(e,t);this._columnsPerItem=e.columnsPerItem;e.cellGroups&&(this._cellGroups={bindingColumns:new ColumnJsonCollection(e.cellGroups.bindingColumns),mappings:e.cellGroups.mappings})}getColumn(e,t,r){const o=super.getColumn(e,t,r);if(this._cellGroups&&e.cellType===_CellType.Cell){r%=this._columnsPerItem;return _combineColumns(o,this._cellGroups.bindingColumns[this._cellGroups.mappings[t][r]])}return o}}_registerModule("wijmo.grid.pdf",selfModule);
|