UNPKG

stimulsoft-reports-js-angular

Version:

Stimulsoft Reports.JS is a reporting tool for Angular

7 lines 982 kB
/* Stimulsoft.Reports.JS Version: 2025.4.1 Build date: 2025.10.06 License: https://www.stimulsoft.com/en/licensing/reports */ import{Stimulsoft}from"./stimulsoft.reports.engine.mjs";function defaultsDeep(t,e){for(var i in e)i in t?defaultsDeep(t[i],e[i]):t[i]=e[i];return t}defaultsDeep(Stimulsoft||{},{Report:{Export:{Office:{}}},Reflection:{}});var __={};__.a=Stimulsoft.Report,__.b=Stimulsoft.Reflection,__.c=__.a.Export,__.d=__.c.Office;let Exception=Stimulsoft.System.Exception,StiMath=Stimulsoft.System.StiMath,Char=Stimulsoft.System.Char,StiCheckBox=__.a.Components.StiCheckBox,CultureInfo=Stimulsoft.System.Globalization.CultureInfo,StiZipWriter20=Stimulsoft.Base.Zip.StiZipWriter20,ImageFormat=__.a.ImageFormat,IStiExportImageExtended=__.a.Components.IStiExportImageExtended,StiText=__.a.Components.StiText,StiArray=Stimulsoft.System.StiArray,Hashtable=Stimulsoft.System.Collections.Hashtable,StiPageOrientation=__.a.Components.StiPageOrientation,StiPagesCollection=__.a.Components.StiPagesCollection,DateTime=Stimulsoft.System.DateTime,Formatting=Stimulsoft.System.Xml.Formatting,XmlTextWriter=Stimulsoft.System.Xml.XmlTextWriter,Encoding=Stimulsoft.System.Text.Encoding,StreamWriter=Stimulsoft.System.IO.StreamWriter,Color=Stimulsoft.System.Drawing.Color,StiString=Stimulsoft.System.StiString,MemoryStream=Stimulsoft.System.IO.MemoryStream,StiLocalization=Stimulsoft.Base.Localization.StiLocalization,StiTextHorAlignment=Stimulsoft.Base.Drawing.StiTextHorAlignment,StiVertAlignment=Stimulsoft.Base.Drawing.StiVertAlignment;{class d{constructor(){this.BorderLeft="none",this.BorderRight="none",this.BorderTop="none",this.BorderBottom="none",this.BackColor=Color.transparent,this.VertAlign=StiVertAlignment.Bottom,this.FontName="Arial",this.FontSize=6,this.Bold=!1,this.Italic=!1,this.Underline=!1,this.FontColor=Color.black,this.HorAlign=StiTextHorAlignment.Left,this.Angle=0,this.Wordwrap=!1,this.DataStyle=-1}}class e{constructor(){this.isNumeric=!1,this.isCurrency=!1,this.isPercent=!1,this.isDate=!1,this.isTime=!1,this.isDefaultFormat=!1,this.DecimalDigits=2,this.DecimalComma=" ",this.GroupDigits=0,this.CurrencySymbol="$",this.CurrencyPositionBefore=!1,this.NegativeBraces=!1,this.DateTimeFormatString=null,this.CurrencyPositivePattern=null,this.CurrencyNegativePattern=null}}__.c.StiOdsExportService=class extends __.c.StiExportService{constructor(){super(...arguments),this.multipleFiles=!1,this.matrix=null,this.imageCache=null,this.cellStyleList=null,this.dataStyleList=null,this.sheetNameList=null,this.matrixList=null,this.firstPageIndexList=null,this.minRowList=null,this.maxRowList=null,this.cellStyleTableList=null,this.imageQuality=.75,this.imageResolution=96,this.xmlIndentation=1}implements(){let t=[__.c.IStiOdsExportService];return(this.implements=()=>t)()}get defaultExtension(){return"ods"}get exportFormat(){return __.a.StiExportFormat.Ods}get groupCategory(){return"Excel"}get position(){return __.c.StiExportPosition.Ods}get exportNameInMenu(){return StiLocalization.get("Export","ExportTypeCalcFile")}getFilter(){return StiLocalization.get("FileFilters","WriteCalcFilesrFiles")}exportTo(t,e,i){this.exportOds(t,e,i)}exportToAsync(e,i,t,r){setTimeout(async()=>{try{await __.c.StiExportImageHelper.convertAllImages(i,Stimulsoft.System.Drawing.Imaging.ImageFormat.Jpeg,!1,this.exportFormat),this.exportTo(i,t,r),null!=i&&null!=i.preparedExportImages&&(i.preparedExportImages.clear(),i.preparedExportImages=null)}catch(t){if(Exception.log(t,i,`Export Error`).isImportant)return e(Exception.getMessage(t))}e()})}doubleToString(t){return StiMath.round2(t/100,4).toString()[Stimulsoft.System.StiObject.stimulsoft]().replaceAll(",",".")+"in"}getColumnName(t){let e=t/26|0,i=t%26,r="";return 0<e&&(r+=String.fromCharCode(65+e-1)),r+=String.fromCharCode(65+i)}getColorString(t){return"#"+StiString.format("{0:X8}",t.toArgb()).substr(2)}getCellStyleNumber(r,n,e,i){let a=new d,o=!0,s=!0;for(let t=0;t<e;t++)null==this.matrix.bordersY.gett(r+t,n)&&(o=!1),null==this.matrix.bordersY.gett(r+t,n+i)&&(s=!1);let l=!0,h=!0;for(let t=0;t<i;t++)null==this.matrix.bordersX.gett(r,n+t)&&(l=!1),null==this.matrix.bordersX.gett(r+e,n+t)&&(h=!1);if(l&&(a.BorderTop=this.getStringFromBorder(this.matrix.bordersX.gett(r,n))),o&&(a.BorderLeft=this.getStringFromBorder(this.matrix.bordersY.gett(r,n))),h&&(a.BorderBottom=this.getStringFromBorder(this.matrix.bordersX.gett(r+e,n))),s&&(a.BorderRight=this.getStringFromBorder(this.matrix.bordersY.gett(r,n+i))),null!=this.matrix.cells.gett(r,n)){let i=this.matrix.cells.gett(r,n),t=i.cellStyle,e=(a.BackColor=t.color,a.VertAlign=t.vertAlignment,a.FontName=t.font.name,a.FontSize=t.font.sizeInPoints,a.Bold=t.font.bold,a.Italic=t.font.italic,a.Underline=t.font.underline,a.FontColor=t.textColor,a.HorAlign=t.horAlignment,0);if(null!=t.textOptions&&(e=t.textOptions.angle,a.Wordwrap=t.textOptions.wordWrap),a.Angle=0|Math.round(e),null!=i.component){let t=i.component.as(StiText),e=(null!=t&&(a.DataStyle=this.getDataStyleNumber(t)),i.component.as(StiCheckBox));null==e||StiString.isNullOrEmpty(e.excelDataValue)||(a.FontName=Stimulsoft.StiOptions.Export.CheckBoxReplacementForExcelValue.Font.name,a.FontSize=Stimulsoft.StiOptions.Export.CheckBoxReplacementForExcelValue.Font.sizeInPoints,a.Bold=Stimulsoft.StiOptions.Export.CheckBoxReplacementForExcelValue.Font.bold,a.Italic=Stimulsoft.StiOptions.Export.CheckBoxReplacementForExcelValue.Font.italic,a.Underline=Stimulsoft.StiOptions.Export.CheckBoxReplacementForExcelValue.Font.underline,a.VertAlign=Stimulsoft.StiOptions.Export.CheckBoxReplacementForExcelValue.VertAlignment,a.HorAlign=Stimulsoft.StiOptions.Export.CheckBoxReplacementForExcelValue.HorAlignment)}}if(0<this.cellStyleList.length)for(let e=0;e<this.cellStyleList.length;e++){let t=this.cellStyleList[e];if(t.BorderLeft==a.BorderLeft&&t.BorderRight==a.BorderRight&&t.BorderTop==a.BorderTop&&t.BorderBottom==a.BorderBottom&&t.BackColor.equals(a.BackColor)&&t.VertAlign==a.VertAlign&&t.FontName==a.FontName&&t.FontSize==a.FontSize&&t.Bold==a.Bold&&t.Italic==a.Italic&&t.Underline==a.Underline&&t.FontColor.equals(a.FontColor)&&t.HorAlign==a.HorAlign&&t.Angle==a.Angle&&t.Wordwrap==a.Wordwrap&&t.DataStyle==a.DataStyle)return e}return this.cellStyleList.push(a),this.cellStyleList.length-1}getStringFromBorder(t){return StiString.format("{0} solid {1}",this.doubleToString(t.size),this.getColorString(t.color))}getDataStyleNumber(t){let i=new e,r=t.format,n=null!=r?r.indexOf("|"):-1;if(-1!=n&&(i.CurrencyPositivePattern=__.c.StiExportUtils.getPositivePattern(r.charCodeAt(n+1)-65),i.CurrencyNegativePattern=__.c.StiExportUtils.getNegativePattern(r.charCodeAt(n+2)-65),r=r.substr(0,n)),StiString.isNullOrEmpty(r))return-1;if("C"==r.charAt(0)&&(i.isCurrency=!0),"N"==r.charAt(0)&&(i.isNumeric=!0),"P"==r.charAt(0)&&(i.isPercent=!0),"D"==r.charAt(0)&&(i.isDate=!0,1<r.length)&&(i.DateTimeFormatString=r.substr(1)),"T"==r.charAt(0)&&(i.isTime=!0,1<r.length)&&(i.DateTimeFormatString=r.substr(1)),1==r.length)i.isDefaultFormat=!0;else if(i.isCurrency||i.isNumeric||i.isPercent){let e=1;if(Char.isDigit(r,e)){let t="";while(e<r.length&&Char.isDigit(r,e))t+=r.charAt(e),e++;i.DecimalDigits=parseInt(t)}e<r.length&&"G"==r.charAt(e)&&(e++,i.GroupDigits=3),e<r.length&&"("==r.charAt(e)&&(e++,i.NegativeBraces=!0),e<r.length&&("."==r.charAt(e)||","==r.charAt(e))&&(i.DecimalComma=r.charAt(e),e++),e<r.length&&("+"==r.charAt(e)||"-"==r.charAt(e))&&("+"==r.charAt(e)&&(i.CurrencyPositionBefore=!0),++e<r.length)&&(i.CurrencySymbol=r.substr(e))}if(t.hideZeros&&!StiString.isNullOrEmpty(r)&&(i.isDefaultFormat=!1),0<this.dataStyleList.length)for(let e=0;e<this.dataStyleList.length;e++){let t=this.dataStyleList[e];if(t.isNumeric==i.isNumeric&&t.isCurrency==i.isCurrency&&t.isPercent==i.isPercent&&t.isDate==i.isDate&&t.isTime==i.isTime&&t.isDefaultFormat==i.isDefaultFormat&&t.DecimalDigits==i.DecimalDigits&&t.DecimalComma==i.DecimalComma&&t.GroupDigits==i.GroupDigits&&t.CurrencySymbol==i.CurrencySymbol&&t.CurrencyPositionBefore==i.CurrencyPositionBefore&&t.DateTimeFormatString==i.DateTimeFormatString&&t.CurrencyPositivePattern==i.CurrencyPositivePattern&&t.CurrencyNegativePattern==i.CurrencyNegativePattern)return e}this.dataStyleList.push(i);let a=this.dataStyleList.length-1;return a}writeMimetype(){let t=new MemoryStream,e=new StreamWriter(t,Encoding.ASCII);return e.write("application/vnd.oasis.opendocument.spreadsheet"),e.flush(),t}writeMeta(){let t=new MemoryStream,e=new XmlTextWriter(Encoding.UTF8,t),i=(e.indentation=this.xmlIndentation<0?0:this.xmlIndentation,e.formatting=this.xmlIndentation<0?Formatting.None:Formatting.Indented,e.writeStartDocument(),e.writeStartElement("office:document-meta"),e.writeAttributeString("xmlns:office","urn:oasis:names:tc:opendocument:xmlns:office:1.0"),e.writeAttributeString("xmlns:xlink","http://www.w3.org/1999/xlink"),e.writeAttributeString("xmlns:dc","http://purl.org/dc/elements/1.1/"),e.writeAttributeString("xmlns:meta","urn:oasis:names:tc:opendocument:xmlns:meta:1.0"),e.writeAttributeString("xmlns:ooo","http://openoffice.org/2004/office"),e.writeAttributeString("office:version","1.1"),e.writeStartElement("office:meta"),DateTime.now.toString("yyyy-MM-ddTHH:mm:ss")),r=__.c.StiExportUtils.getReportVersion(this.report);return e.writeElementString("meta:generator",r),e.writeElementString("meta:creation-date",i),e.writeElementString("dc:date",i),e.writeElementString("meta:editing-cycles","1"),e.writeElementString("meta:editing-duration","PT0M0S"),e.writeStartElement("meta:user-defined"),e.writeAttributeString("meta:name","Info 1"),e.writeEndElement(),e.writeStartElement("meta:user-defined"),e.writeAttributeString("meta:name","Info 2"),e.writeEndElement(),e.writeStartElement("meta:user-defined"),e.writeAttributeString("meta:name","Info 3"),e.writeEndElement(),e.writeStartElement("meta:user-defined"),e.writeAttributeString("meta:name","Info 4"),e.writeEndElement(),e.writeStartElement("meta:document-statistic"),e.writeAttributeString("meta:table-count","1"),e.writeAttributeString("meta:cell-count","1"),e.writeEndElement(),e.writeFullEndElement(),e.writeFullEndElement(),e.writeEndDocument(),e.flush(),t}writeManifest(){let t=new MemoryStream,e=new XmlTextWriter(Encoding.UTF8,t);e.indentation=this.xmlIndentation<0?0:this.xmlIndentation,e.formatting=this.xmlIndentation<0?Formatting.None:Formatting.Indented,e.writeStartDocument(),e.writeStartElement("manifest:manifest"),e.writeAttributeString("xmlns:manifest","urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"),e.writeStartElement("manifest:file-entry"),e.writeAttributeString("manifest:media-type","application/vnd.oasis.opendocument.spreadsheet"),e.writeAttributeString("manifest:full-path","/"),e.writeEndElement();for(let t=0;t<this.imageCache.imagePackedStore.length;t++)e.writeStartElement("manifest:file-entry"),e.writeAttributeString("manifest:media-type","image/jpeg"),e.writeAttributeString("manifest:full-path",StiString.format("Pictures/{0:D5}.jpg",t+1)),e.writeEndElement();return e.writeStartElement("manifest:file-entry"),e.writeAttributeString("manifest:media-type","text/xml"),e.writeAttributeString("manifest:full-path","content.xml"),e.writeEndElement(),e.writeStartElement("manifest:file-entry"),e.writeAttributeString("manifest:media-type","text/xml"),e.writeAttributeString("manifest:full-path","styles.xml"),e.writeEndElement(),e.writeStartElement("manifest:file-entry"),e.writeAttributeString("manifest:media-type","text/xml"),e.writeAttributeString("manifest:full-path","meta.xml"),e.writeEndElement(),e.writeStartElement("manifest:file-entry"),e.writeAttributeString("manifest:media-type","text/xml"),e.writeAttributeString("manifest:full-path","settings.xml"),e.writeEndElement(),e.writeFullEndElement(),e.writeEndDocument(),e.flush(),t}writeImage(t){let e=new MemoryStream,i=this.imageCache.imagePackedStore[t];return null!=i&&e.write(i,0,i.length),e}writeSettings(){let t=new MemoryStream,e=new XmlTextWriter(Encoding.UTF8,t);return e.indentation=this.xmlIndentation<0?0:this.xmlIndentation,e.formatting=this.xmlIndentation<0?Formatting.None:Formatting.Indented,e.writeStartDocument(),e.writeStartElement("office:document-settings"),e.writeAttributeString("xmlns:office","urn:oasis:names:tc:opendocument:xmlns:office:1.0"),e.writeAttributeString("xmlns:xlink","http://www.w3.org/1999/xlink"),e.writeAttributeString("xmlns:config","urn:oasis:names:tc:opendocument:xmlns:config:1.0"),e.writeAttributeString("xmlns:ooo","http://openoffice.org/2004/office"),e.writeAttributeString("office:version","1.1"),e.writeStartElement("office:settings"),e.writeStartElement("config:config-item-set"),e.writeAttributeString("config:name","ooo:view-settings"),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","VisibleAreaTop"),e.writeAttributeString("config:type","int"),e.writeString("0"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","VisibleAreaLeft"),e.writeAttributeString("config:type","int"),e.writeString("-10107"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","VisibleAreaWidth"),e.writeAttributeString("config:type","int"),e.writeString("43208"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","VisibleAreaHeight"),e.writeAttributeString("config:type","int"),e.writeString("22174"),e.writeEndElement(),e.writeStartElement("config:config-item-map-indexed"),e.writeAttributeString("config:name","Views"),e.writeStartElement("config:config-item-map-entry"),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","ViewId"),e.writeAttributeString("config:type","string"),e.writeString("View1"),e.writeEndElement(),e.writeStartElement("config:config-item-map-named"),e.writeAttributeString("config:name","Tables"),e.writeStartElement("config:config-item-map-entry"),e.writeAttributeString("config:name","Sheet1"),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","CursorPositionX"),e.writeAttributeString("config:type","int"),e.writeString("1"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","CursorPositionY"),e.writeAttributeString("config:type","int"),e.writeString("1"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","HorizontalSplitMode"),e.writeAttributeString("config:type","short"),e.writeString("0"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","VerticalSplitMode"),e.writeAttributeString("config:type","short"),e.writeString("0"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","HorizontalSplitPosition"),e.writeAttributeString("config:type","int"),e.writeString("0"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","VerticalSplitPosition"),e.writeAttributeString("config:type","int"),e.writeString("0"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","ActiveSplitRange"),e.writeAttributeString("config:type","short"),e.writeString("2"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","PositionLeft"),e.writeAttributeString("config:type","int"),e.writeString("0"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","PositionRight"),e.writeAttributeString("config:type","int"),e.writeString("0"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","PositionTop"),e.writeAttributeString("config:type","int"),e.writeString("0"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","PositionBottom"),e.writeAttributeString("config:type","int"),e.writeString("0"),e.writeEndElement(),e.writeEndElement(),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","ActiveTable"),e.writeAttributeString("config:type","string"),e.writeString("Sheet1"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","HorizontalScrollbarWidth"),e.writeAttributeString("config:type","int"),e.writeString("270"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","ZoomType"),e.writeAttributeString("config:type","short"),e.writeString("0"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","ZoomValue"),e.writeAttributeString("config:type","int"),e.writeString("100"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","PageViewZoomValue"),e.writeAttributeString("config:type","int"),e.writeString("60"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","ShowPageBreakPreview"),e.writeAttributeString("config:type","boolean"),e.writeString("false"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","ShowZeroValues"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","ShowNotes"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","ShowGrid"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","GridColor"),e.writeAttributeString("config:type","long"),e.writeString("12632256"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","ShowPageBreaks"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","HasColumnRowHeaders"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","HasSheetTabs"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","IsOutlineSymbolsSet"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","IsSnapToRaster"),e.writeAttributeString("config:type","long"),e.writeString("false"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","RasterIsVisible"),e.writeAttributeString("config:type","boolean"),e.writeString("false"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","RasterResolutionX"),e.writeAttributeString("config:type","int"),e.writeString("1000"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","RasterResolutionY"),e.writeAttributeString("config:type","int"),e.writeString("1000"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","RasterSubdivisionX"),e.writeAttributeString("config:type","int"),e.writeString("1"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","RasterSubdivisionY"),e.writeAttributeString("config:type","int"),e.writeString("1"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","IsRasterAxisSynchronized"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeEndElement(),e.writeEndElement(),e.writeEndElement(),e.writeStartElement("config:config-item-set"),e.writeAttributeString("config:name","ooo:configuration-settings"),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","ShowZeroValues"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","ShowNotes"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","ShowGrid"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","GridColor"),e.writeAttributeString("config:type","long"),e.writeString("12632256"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","ShowPageBreaks"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","LinkUpdateMode"),e.writeAttributeString("config:type","short"),e.writeString("3"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","HasColumnRowHeaders"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","HasSheetTabs"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","IsOutlineSymbolsSet"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","IsSnapToRaster"),e.writeAttributeString("config:type","boolean"),e.writeString("false"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","RasterIsVisible"),e.writeAttributeString("config:type","boolean"),e.writeString("false"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","RasterResolutionX"),e.writeAttributeString("config:type","int"),e.writeString("1000"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","RasterResolutionY"),e.writeAttributeString("config:type","int"),e.writeString("1000"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","RasterSubdivisionX"),e.writeAttributeString("config:type","int"),e.writeString("1"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","RasterSubdivisionY"),e.writeAttributeString("config:type","int"),e.writeString("1"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","IsRasterAxisSynchronized"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","AutoCalculate"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","PrinterName"),e.writeAttributeString("config:type","string"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","PrinterSetup"),e.writeAttributeString("config:type","base64Binary"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","ApplyUserData"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","CharacterCompressionType"),e.writeAttributeString("config:type","short"),e.writeString("0"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","IsKernAsianPunctuation"),e.writeAttributeString("config:type","boolean"),e.writeString("false"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","SaveVersionOnClose"),e.writeAttributeString("config:type","boolean"),e.writeString("false"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","UpdateFromTemplate"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","AllowPrintJobCancel"),e.writeAttributeString("config:type","boolean"),e.writeString("true"),e.writeEndElement(),e.writeStartElement("config:config-item"),e.writeAttributeString("config:name","LoadReadonly"),e.writeAttributeString("config:type","boolean"),e.writeString("false"),e.writeEndElement(),e.writeEndElement(),e.writeFullEndElement(),e.writeFullEndElement(),e.writeEndDocument(),e.flush(),t}writeStyles(t){let e=new MemoryStream,i=new XmlTextWriter(Encoding.UTF8,e),r=(i.indentation=this.xmlIndentation<0?0:this.xmlIndentation,i.formatting=this.xmlIndentation<0?Formatting.None:Formatting.Indented,i.writeStartDocument(),i.writeStartElement("office:document-styles"),i.writeAttributeString("xmlns:office","urn:oasis:names:tc:opendocument:xmlns:office:1.0"),i.writeAttributeString("xmlns:style","urn:oasis:names:tc:opendocument:xmlns:style:1.0"),i.writeAttributeString("xmlns:text","urn:oasis:names:tc:opendocument:xmlns:text:1.0"),i.writeAttributeString("xmlns:table","urn:oasis:names:tc:opendocument:xmlns:table:1.0"),i.writeAttributeString("xmlns:draw","urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"),i.writeAttributeString("xmlns:fo","urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"),i.writeAttributeString("xmlns:xlink","http://www.w3.org/1999/xlink"),i.writeAttributeString("xmlns:dc","http://purl.org/dc/elements/1.1/"),i.writeAttributeString("xmlns:meta","urn:oasis:names:tc:opendocument:xmlns:meta:1.0"),i.writeAttributeString("xmlns:number","urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"),i.writeAttributeString("xmlns:presentation","urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"),i.writeAttributeString("xmlns:svg","urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"),i.writeAttributeString("xmlns:chart","urn:oasis:names:tc:opendocument:xmlns:chart:1.0"),i.writeAttributeString("xmlns:dr3d","urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"),i.writeAttributeString("xmlns:math","http://www.w3.org/1998/Math/MathML"),i.writeAttributeString("xmlns:form","urn:oasis:names:tc:opendocument:xmlns:form:1.0"),i.writeAttributeString("xmlns:script","urn:oasis:names:tc:opendocument:xmlns:script:1.0"),i.writeAttributeString("xmlns:ooo","http://openoffice.org/2004/office"),i.writeAttributeString("xmlns:ooow","http://openoffice.org/2004/writer"),i.writeAttributeString("xmlns:oooc","http://openoffice.org/2004/calc"),i.writeAttributeString("xmlns:dom","http://www.w3.org/2001/xml-events"),i.writeAttributeString("office:version","1.1"),i.writeStartElement("office:font-face-decls"),i.writeStartElement("style:font-face"),i.writeAttributeString("style:name","Arial"),i.writeAttributeString("svg:font-family","Arial"),i.writeEndElement(),i.writeStartElement("style:font-face"),i.writeAttributeString("style:name","Tahoma"),i.writeAttributeString("svg:font-family","Tahoma"),i.writeAttributeString("style:font-family-generic","system"),i.writeAttributeString("style:font-pitch","variable"),i.writeEndElement(),i.writeEndElement(),i.writeStartElement("office:styles"),i.writeStartElement("style:default-style"),i.writeAttributeString("style:family","table-cell"),i.writeStartElement("style:table-cell-properties"),i.writeAttributeString("style:decimal-places","2"),i.writeEndElement(),i.writeStartElement("style:paragraph-properties"),i.writeAttributeString("style:tab-stop-distance","1.25cm"),i.writeEndElement(),i.writeStartElement("style:text-properties"),i.writeAttributeString("style:font-name","Arial"),i.writeAttributeString("fo:language","ru"),i.writeAttributeString("fo:country","RU"),i.writeAttributeString("style:font-name-asian","Lucida Sans Unicode"),i.writeAttributeString("style:language-asian","zxx"),i.writeAttributeString("style:country-asian","none"),i.writeAttributeString("style:font-name-complex","Tahoma"),i.writeAttributeString("style:language-complex","zxx"),i.writeAttributeString("style:country-complex","none"),i.writeEndElement(),i.writeEndElement(),i.writeStartElement("number:number-style"),i.writeAttributeString("style:name","N0"),i.writeStartElement("number:number"),i.writeAttributeString("number:min-integer-digits","1"),i.writeEndElement(),i.writeEndElement(),i.writeStartElement("style:style"),i.writeAttributeString("style:name","Default"),i.writeAttributeString("style:family","table-cell"),i.writeEndElement(),i.writeStartElement("style:style"),i.writeAttributeString("style:name","Result"),i.writeAttributeString("style:family","table-cell"),i.writeAttributeString("style:parent-style-name","Default"),i.writeStartElement("style:text-properties"),i.writeAttributeString("fo:font-style","italic"),i.writeAttributeString("style:text-underline-style","solid"),i.writeAttributeString("style:text-underline-width","auto"),i.writeAttributeString("style:text-underline-color","font-color"),i.writeAttributeString("fo:font-weight","bold"),i.writeEndElement(),i.writeEndElement(),i.writeStartElement("style:style"),i.writeAttributeString("style:name","Heading"),i.writeAttributeString("style:family","table-cell"),i.writeAttributeString("style:parent-style-name","Default"),i.writeStartElement("style:table-cell-properties"),i.writeAttributeString("style:text-align-source","fix"),i.writeAttributeString("style:repeat-content","false"),i.writeEndElement(),i.writeStartElement("style:paragraph-properties"),i.writeAttributeString("fo:text-align","center"),i.writeEndElement(),i.writeStartElement("style:text-properties"),i.writeAttributeString("fo:font-size","16pt"),i.writeAttributeString("fo:font-style","italic"),i.writeAttributeString("fo:font-weight","bold"),i.writeEndElement(),i.writeEndElement(),i.writeStartElement("style:style"),i.writeAttributeString("style:name","Heading1"),i.writeAttributeString("style:family","table-cell"),i.writeAttributeString("style:parent-style-name","Heading"),i.writeStartElement("style:table-cell-properties"),i.writeAttributeString("style:rotation-angle","90"),i.writeEndElement(),i.writeEndElement(),i.writeFullEndElement(),i.writeStartElement("office:automatic-styles"),t.getByIndex(0)),n=r.unit.convertToHInches(r.pageHeight*r.segmentPerHeight),a=r.unit.convertToHInches(r.pageWidth*r.segmentPerWidth),o=r.unit.convertToHInches(r.margins.left),s=r.unit.convertToHInches(r.margins.right),l=r.unit.convertToHInches(r.margins.top),h=r.unit.convertToHInches(r.margins.bottom)-4;return h<0&&(h=0),i.writeStartElement("style:page-layout"),i.writeAttributeString("style:name","pm1"),i.writeStartElement("style:page-layout-properties"),i.writeAttributeString("fo:page-width",this.doubleToString(a)),i.writeAttributeString("fo:page-height",this.doubleToString(n)),i.writeAttributeString("style:num-format","1"),i.writeAttributeString("style:print-orientation",r.orientation==StiPageOrientation.Portrait?"portrait":"landscape"),i.writeAttributeString("fo:margin-top",this.doubleToString(l)),i.writeAttributeString("fo:margin-bottom",this.doubleToString(h)),i.writeAttributeString("fo:margin-left",this.doubleToString(o)),i.writeAttributeString("fo:margin-right",this.doubleToString(s)),i.writeAttributeString("style:writing-mode","lr-tb"),i.writeEndElement(),i.writeStartElement("style:header-style"),i.writeStartElement("style:header-footer-properties"),i.writeAttributeString("fo:min-height","0.101cm"),i.writeAttributeString("fo:margin-left","0cm"),i.writeAttributeString("fo:margin-right","0cm"),i.writeAttributeString("fo:margin-bottom","0cm"),i.writeEndElement(),i.writeEndElement(),i.writeStartElement("style:footer-style"),i.writeStartElement("style:header-footer-properties"),i.writeAttributeString("fo:min-height","0.101cm"),i.writeAttributeString("fo:margin-left","0cm"),i.writeAttributeString("fo:margin-right","0cm"),i.writeAttributeString("fo:margin-top","0cm"),i.writeEndElement(),i.writeEndElement(),i.writeEndElement(),i.writeFullEndElement(),i.writeStartElement("office:master-styles"),i.writeStartElement("style:master-page"),i.writeAttributeString("style:name","Default"),i.writeAttributeString("style:page-layout-name","pm1"),i.writeStartElement("style:header"),i.writeAttributeString("style:display","false"),i.writeStartElement("text:p"),i.writeStartElement("text:sheet-name"),i.writeString("Sheet1"),i.writeEndElement(),i.writeEndElement(),i.writeEndElement(),i.writeStartElement("style:header-left"),i.writeAttributeString("style:display","false"),i.writeEndElement(),i.writeStartElement("style:footer"),i.writeAttributeString("style:display","false"),i.writeStartElement("text:p"),i.writeString("Page "),i.writeStartElement("text:page-number"),i.writeString("1"),i.writeEndElement(),i.writeEndElement(),i.writeEndElement(),i.writeStartElement("style:footer-left"),i.writeAttributeString("style:display","false"),i.writeEndElement(),i.writeEndElement(),i.writeEndElement(),i.writeFullEndElement(),i.writeEndDocument(),i.flush(),e}writeContent(s,l){let t=new MemoryStream,r=new XmlTextWriter(Encoding.UTF8,t),h=(r.indentation=this.xmlIndentation<0?0:this.xmlIndentation,r.formatting=this.xmlIndentation<0?Formatting.None:Formatting.Indented,r.writeStartDocument(),r.writeStartElement("office:document-content"),r.writeAttributeString("xmlns:office","urn:oasis:names:tc:opendocument:xmlns:office:1.0"),r.writeAttributeString("xmlns:style","urn:oasis:names:tc:opendocument:xmlns:style:1.0"),r.writeAttributeString("xmlns:text","urn:oasis:names:tc:opendocument:xmlns:text:1.0"),r.writeAttributeString("xmlns:table","urn:oasis:names:tc:opendocument:xmlns:table:1.0"),r.writeAttributeString("xmlns:draw","urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"),r.writeAttributeString("xmlns:fo","urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"),r.writeAttributeString("xmlns:xlink","http://www.w3.org/1999/xlink"),r.writeAttributeString("xmlns:dc","http://purl.org/dc/elements/1.1/"),r.writeAttributeString("xmlns:meta","urn:oasis:names:tc:opendocument:xmlns:meta:1.0"),r.writeAttributeString("xmlns:number","urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"),r.writeAttributeString("xmlns:presentation","urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"),r.writeAttributeString("xmlns:svg","urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"),r.writeAttributeString("xmlns:chart","urn:oasis:names:tc:opendocument:xmlns:chart:1.0"),r.writeAttributeString("xmlns:dr3d","urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"),r.writeAttributeString("xmlns:math","http://www.w3.org/1998/Math/MathML"),r.writeAttributeString("xmlns:form","urn:oasis:names:tc:opendocument:xmlns:form:1.0"),r.writeAttributeString("xmlns:script","urn:oasis:names:tc:opendocument:xmlns:script:1.0"),r.writeAttributeString("xmlns:ooo","http://openoffice.org/2004/office"),r.writeAttributeString("xmlns:ooow","http://openoffice.org/2004/writer"),r.writeAttributeString("xmlns:oooc","http://openoffice.org/2004/calc"),r.writeAttributeString("xmlns:dom","http://www.w3.org/2001/xml-events"),r.writeAttributeString("xmlns:xforms","http://www.w3.org/2002/xforms"),r.writeAttributeString("xmlns:xsd","http://www.w3.org/2001/XMLSchema"),r.writeAttributeString("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance"),r.writeAttributeString("office:version","1.1"),0);while(h<l.count){let t=new StiPagesCollection(s,l),e=(t.addV2Internal(l.getByIndex(h)),h),i=l.getByIndex(h).excelSheetValue;while(h<l.count-1&&l.getByIndex(h+1).excelSheetValue==i)h++,t.addV2Internal(l.getByIndex(h));t.cacheMode=s.renderedPages.cacheMode;let r=t.getByIndex(0).excelSheetValue,n=(StiString.isNullOrEmpty(r)&&(r=StiString.format("Page {0}",this.sheetNameList.length+1)),""),a=1;if(this.matrix=new __.c.StiMatrix(t,Stimulsoft.StiOptions.Export.OpenDocumentCalc.divideBigCells,this),this.isStopped)return null;let o=0;do{this.firstPageIndexList.push(e),this.matrixList.push(this.matrix);let t=this.matrix.coordY.countItems-1;if(t-o>Stimulsoft.StiOptions.Export.OpenDocumentCalc.maximumSheetHeight?t=o+Stimulsoft.StiOptions.Export.OpenDocumentCalc.maximumSheetHeight:this.matrix=null,this.minRowList.push(o),this.maxRowList.push(t),o=t,(null!=this.matrix||0<n.length)&&(n=` part`+a++),this.sheetNameList.push(r+n),this.isStopped)return null}while(null!=this.matrix);h++}let m=new Hashtable,c=new Hashtable,g=new Hashtable,S=new Hashtable;for(let n=0;n<this.matrixList.length;n++){this.matrix=this.matrixList[n];let t=this.minRowList[n],e=this.maxRowList[n],i=this.matrix.coordX.getKeys(),r=this.matrix.coordY.getKeys(),a=StiArray.create2(Boolean,this.matrix.coordY.countItems,this.matrix.coordX.countItems),o=StiArray.create2(Number,this.matrix.coordY.countItems,this.matrix.coordX.countItems);for(let t=0;t<this.matrix.coordX.countItems-1;t++){let e=this.matrix.coordX.getByIndex(t+1,i)-this.matrix.coordX.getByIndex(t,i);if(!g.containsKey(e)){let t=g.count;g.set(e,t),S.set(t,e)}}for(let n=t+1;n<e+1;n++){let e=this.matrix.coordY.getByIndex(n,r)-this.matrix.coordY.getByIndex(n-1,r);if(!m.containsKey(e)){let t=m.count;m.set(e,t),c.set(t,e)}for(let r=1;r<this.matrix.coordX.countItems;r++){let i=this.matrix.cells.gett(n-1,r-1);if(!a[n][r])if(null!=i){for(let e=0;e<=i.height;e++)for(let t=0;t<=i.width;t++)a[n+e][r+t]=!0;o[n-1][r-1]=this.getCellStyleNumber(n-1,r-1,i.height+1,i.width+1)}else o[n-1][r-1]=this.getCellStyleNumber(n-1,r-1,1,1)}}this.cellStyleTableList.push(o)}r.writeStartElement("office:scripts"),r.writeEndElement();let i=new Hashtable;for(let t of this.cellStyleList)i.set(t.FontName,t.FontName);r.writeStartElement("office:font-face-decls");for(let e of i.keys){let t=i.get(e);r.writeStartElement("style:font-face"),r.writeAttributeString("style:name",t),r.writeAttributeString("svg:font-family",t),r.writeEndElement()}r.writeEndElement(),r.writeStartElement("office:automatic-styles");for(let e=0;e<g.count;e++){r.writeStartElement("style:style"),r.writeAttributeString("style:name",`co`+(e+1)),r.writeAttributeString("style:family","table-column"),r.writeStartElement("style:table-column-properties"),r.writeAttributeString("fo:break-before","auto");let t=S.get(e);r.writeAttributeString("style:column-width",this.doubleToString(t)),r.writeEndElement(),r.writeEndElement()}for(let e=0;e<m.count;e++){r.writeStartElement("style:style"),r.writeAttributeString("style:name",`ro`+(e+1)),r.writeAttributeString("style:family","table-row"),r.writeStartElement("style:table-row-properties");let t=c.get(e);r.writeAttributeString("style:row-height",this.doubleToString(t)),r.writeAttributeString("fo:break-before","auto"),r.writeAttributeString("style:use-optimal-row-height","false"),r.writeEndElement(),r.writeEndElement()}r.writeStartElement("style:style"),r.writeAttributeString("style:name","ta1"),r.writeAttributeString("style:family","table"),r.writeAttributeString("style:master-page-name","Default"),r.writeStartElement("style:table-properties"),r.writeAttributeString("table:display","true"),r.writeAttributeString("style:writing-mode","lr-tb"),r.writeEndElement(),r.writeEndElement(),r.writeStartElement("style:style"),r.writeAttributeString("style:name","gr1"),r.writeAttributeString("style:family","graphic"),r.writeStartElement("style:graphic-properties"),r.writeAttributeString("draw:stroke","none"),r.writeAttributeString("draw:fill","none"),r.writeAttributeString("draw:textarea-horizontal-align","center"),r.writeAttributeString("draw:textarea-vertical-align","middle"),r.writeAttributeString("draw:color-mode","standard"),r.writeAttributeString("draw:luminance","0%"),r.writeAttributeString("draw:contrast","0%"),r.writeAttributeString("draw:gamma","100%"),r.writeAttributeString("draw:red","0%"),r.writeAttributeString("draw:green","0%"),r.writeAttributeString("draw:blue","0%"),r.writeAttributeString("fo:clip","rect(0cm 0cm 0cm 0cm)"),r.writeAttributeString("draw:image-opacity","100%"),r.writeAttributeString("style:mirror","none"),r.writeEndElement(),r.writeEndElement(),r.writeStartElement("style:style"),r.writeAttributeString("style:name","P1"),r.writeAttributeString("style:family","paragraph"),r.writeStartElement("style:paragraph-properties"),r.writeAttributeString("fo:text-align","center"),r.writeEndElement(),r.writeEndElement();for(let e=0;e<this.dataStyleList.length;e++){let t=this.dataStyleList[e];t.isNumeric&&(r.writeStartElement("number:number-style"),t.NegativeBraces?(r.writeAttributeString("style:name",`N${e+1}P0`),r.writeAttributeString("style:volatile","true")):r.writeAttributeString("style:name",`N`+(e+1))," "!=t.DecimalComma&&(r.writeAttributeString("number:language",","==t.DecimalComma?"ru":"en"),r.writeAttributeString("number:country",","==t.DecimalComma?"RU":"US")),r.writeStartElement("number:number"),r.writeAttributeString("number:decimal-places",t.DecimalDigits.toString()),r.writeAttributeString("number:min-integer-digits","1"),r.writeAttributeString("number:grouping",3==t.GroupDigits?"true":"false"),r.writeEndElement(),r.writeEndElement(),t.NegativeBraces)&&(r.writeStartElement("number:number-style"),r.writeAttributeString("style:name",`N`+(e+1))," "!=t.DecimalComma&&(r.writeAttributeString("number:language",","==t.DecimalComma?"ru":"en"),r.writeAttributeString("number:country",","==t.DecimalComma?"RU":"US")),r.writeElementString("number:text","("),r.writeStartElement("number:number"),r.writeAttributeString("number:decimal-places",t.DecimalDigits.toString()),r.writeAttributeString("number:min-integer-digits","1"),r.writeAttributeString("number:grouping",3==t.GroupDigits?"true":"false"),r.writeEndElement(),r.writeElementString("number:text",")"),r.writeStartElement("style:map"),r.writeAttributeString("style:condition","value()>=0"),r.writeAttributeString("style:apply-style-name",`N${e+1}P0`),r.writeEndElement(),r.writeEndElement()),t.isPercent&&(r.writeStartElement("number:percentage-style"),r.writeAttributeString("style:name",`N`+(e+1))," "!=t.DecimalComma&&(r.writeAttributeString("number:language",","==t.DecimalComma?"ru":"en"),r.writeAttributeString("number:country",","==t.DecimalComma?"RU":"US")),r.writeStartElement("number:number"),r.writeAttributeString("number:decimal-places",t.DecimalDigits.toString()),r.writeAttributeString("number:min-integer-digits","1"),3==t.GroupDigits&&r.writeAttributeString("number:grouping","true"),r.writeEndElement(),r.writeElementString("number:text","%"),r.writeEndElement()),t.isCurrency&&(r.writeStartElement("number:currency-style"),r.writeAttributeString("style:name",`N`+(e+1))," "!=t.DecimalComma&&(r.writeAttributeString("number:language",","==t.DecimalComma?"ru":"en"),r.writeAttributeString("number:country",","==t.DecimalComma?"RU":"US")),t.CurrencyPositionBefore&&r.writeElementString("number:currency-symbol",t.CurrencySymbol),r.writeStartElement("number:number"),r.writeAttributeString("number:decimal-places",t.DecimalDigits.toString()),r.writeAttributeString("number:min-integer-digits","1"),r.writeAttributeString("number:grouping",3==t.GroupDigits?"true":"false"),r.writeEndElement(),t.CurrencyPositionBefore||r.writeElementString("number:currency-symbol",t.CurrencySymbol),r.writeEndElement()),t.isDate&&(r.writeStartElement("number:date-style"),r.writeAttributeString("style:name",`N`+(e+1)),this.writeDateTimeFormatString(r,t.DateTimeFormatString,"d"),r.writeEndElement()),t.isTime&&(r.writeStartElement("number:time-style"),r.writeAttributeString("style:name",`N`+(e+1)),StiString.isNullOrEmpty(t.DateTimeFormatString)||-1==t.DateTimeFormatString.indexOf("h")||(r.writeAttributeString("number:language","en"),r.writeAttributeString("number:country","US")),this.writeDateTimeFormatString(r,t.DateTimeFormatString,"t"),r.writeEndElement())}for(let i=0;i<this.cellStyleList.length;i++){let t=this.cellStyleList[i],e=(r.writeStartElement("style:style"),r.writeAttributeString("style:name",`ce`+(i+1)),r.writeAttributeString("style:family","table-cell"),r.writeAttributeString("style:parent-style-name","Default"),-1!=t.DataStyle&&r.writeAttributeString("style:data-style-name",`N`+(t.DataStyle+1)),r.writeStartElement("style:table-cell-properties"),0<t.BackColor.a?r.writeAttributeString("fo:background-color",this.getColorString(t.BackColor)):r.writeAttributeString("fo:background-color","transparent"),t.VertAlign==StiVertAlignment.Center&&r.writeAttributeString("style:vertical-align","middle"),t.VertAlign==StiVertAlignment.Top&&r.writeAttributeString("style:vertical-align","top"),r.writeAttributeString("style:text-align-source","fix"),r.writeAttributeString("style:repeat-content","false"),t.Wordwrap&&r.writeAttributeString("fo:wrap-option","wrap"),r.writeAttributeString("fo:padding","0in"),r.writeAttributeString("fo:border-left",t.BorderLeft),r.writeAttributeString("fo:border-right",t.BorderRight),r.writeAttributeString("fo:border-top",t.BorderTop),r.writeAttributeString("fo:border-bottom",t.BorderBottom),0!=t.Angle&&(r.writeAttributeString("style:rotation-angle",t.Angle.toString()),r.writeAttributeString("style:rotation-align","none")),r.writeEndElement(),r.writeStartElement("style:paragraph-properties"),t.HorAlign==StiTextHorAlignment.Left&&r.writeAttributeString("fo:text-align","start"),t.HorAlign==StiTextHorAlignment.Center&&r.writeAttributeString("fo:text-align","center"),t.HorAlign==StiTextHorAlignment.Right&&r.writeAttributeString("fo:text-align","end"),t.HorAlign==StiTextHorAlignment.Width&&r.writeAttributeString("fo:text-align","justify"),r.writeAttributeString("fo:margin-left","0cm"),r.writeEndElement(),r.writeStartElement("style:text-properties"),r.writeAttributeString("fo:color",this.getColorString(t.FontColor)),r.writeAttributeString("style:font-name",t.FontName),t.FontSize+`pt`);r.writeAttributeString("fo:font-size",e),r.writeAttributeString("fo:font-size-asian",e),r.writeAttributeString("fo:font-size-complex",e),t.Italic&&(r.writeAttributeString("fo:font-style","italic"),r.writeAttributeString("fo:font-style-asian","italic"),r.writeAttributeString("fo:font-style-complex","italic")),t.Underline&&(r.writeAttributeString("style:text-underline-style","solid"),r.writeAttributeString("style:text-underline-width","auto"),r.writeAttributeString("style:text-underline-color","font-color")),t.Bold&&(r.writeAttributeString("fo:font-weight","bold"),r.writeAttributeString("fo:font-weight-asian","bold"),r.writeAttributeString("fo:font-weight-complex","bold")),r.writeEndElement(),r.writeEndElement()}r.writeFullEndElement(),r.writeStartElement("office:body"),r.writeStartElement("office:spreadsheet"),r.writeStartElement("table:calculation-settings"),r.writeAttributeString("table:use-regular-expressions","false"),r.writeEndElement(),this.currentPassNumber=Stimulsoft.StiOptions.Export.OpenDocumentCalc.divideSegmentPages?3:2;for(let t=0;t<this.matrixList.length;t++)this.writeTableFromMatrix(r,t,m,g);return r.writeEndElement(),r.writeEndElement(),r.writeFullEndElement(),r.writeEndDocument(),r.flush(),t}writeDateTimeFormatString(i,r,t){if(1==(r=StiString.isNullOrEmpty(r)?t:r).length){let t=this.currentCulture.dateTimeFormat;switch(r){case"d":r=t.shortDatePattern;break;case"D":r=t.longDatePattern;break;case"f":r=t.shortDatePattern+" "+t.shortTimePattern;break;case"F":r=t.fullDateTimePattern;break;case"g":r=t.shortDatePattern+" "+t.shortTimePattern;break;case"G":r=t.shortDatePattern+" "+t.longTimePattern;break;case"m":case"M":r=CultureInfo.currentCulture.name.includes("en")||CultureInfo.currentCulture.name.includes("us")?"MMMM d":"d MMMM";break;case"r":case"R":r="ddd, dd MMM yyyy HH\\:mm\\:ss \\G\\M\\T";break;case"s":r="yyyy\\-MM\\-dd\\THH\\:mm\\:ss";break;case"t":r=t.shortTimePattern;break;case"T":r=t.longTimePattern;break;case"u":r="yyyy\\-MM\\-dd HH\\:mm\\:ss\\Z";break;case"U":r=t.fullDateTimePattern;break;case"y":case"Y":r=t.yearMonthPattern;break}r=r[Stimulsoft.System.StiObject.stimulsoft]().replaceAll('"',"")[Stimulsoft.System.StiObject.stimulsoft]().replaceAll("'","")}let n=0;while(n<r.length){let t=r.charAt(n),e=1;while(n+1<r.length&&r.charAt(n+1)==t)n++,e++;switch(n++,t){case"d":1==e&&(i.writeStartElement("number:day"),i.writeEndElement()),2==e&&(i.writeStartElement("number:day"),i.writeAttributeString("number:style","long"),i.writeEndElement()),3==e&&(i.writeStartElement("number:day-of-week"),i.writeEndElement()),4==e&&(i.writeStartElement("number:day-of-week"),i.writeAttributeString("number:style","long"),i.writeEndElement());break;case"M":1==e&&(i.writeStartElement("number:month"),i.writeEndElement()),2==e&&(i.writeStartElement("number:month"),i.writeAttributeString("number:style","long"),i.writeEndElement()),3==e&&(i.writeStartElement("number:month"),i.writeAttributeString("number:textual","true"),i.writeEndElement()),4==e&&(i.writeStartElement("number:month"),i.writeAttributeString("number:style","long"),i.writeAttributeString("number:textual","true"),i.writeEndElement());break;case"y":1!=e&&2!=e||(i.writeStartElement("number:year"),i.writeEndElement()),3!=e&&4!=e||(i.writeStartElement("number:year"),i.writeAttributeString("number:style","long"),i.writeEndElement());break;case"s":1==e&&(i.writeStartElement("number:seconds"),i.writeEndElement()),2==e&&(i.writeStartElement("number:seconds"),i.writeAttributeString("number:style","long"),i.writeEndElement());break;case"m":1==e&&(i.writeStartElement("number:minutes"),i.writeEndElement()),2==e&&(i.writeStartElement("number:minutes"),i.writeAttributeString("number:style","long"),i.writeEndElement());break;case"h":case"H":1==e&&(i.writeStartElement("number:hours"),i.writeEndElement()),2==e&&(i.writeStartElement("number:hours"),i.writeAttributeString("number:style","long"),i.writeEndElement());break;default:i.writeElementString("number:text",t);break}}}writeTableFromMatrix(g,t,r,n){let S=this.