/* * Copyright (C) Ascensio System SIA 2012-2020. All rights reserved * * https://www.onlyoffice.com/ * * Version: 0.0.0 (build:0) */ /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; ( /** * @param {Window} window * @param {undefined} undefined */ function (window, undefined) { var AscBrowser = { userAgent : "", isIE : false, isMacOs : false, isSafariMacOs : false, isAppleDevices : false, isAndroid : false, isMobile : false, isGecko : false, isChrome : false, isOpera : false, isWebkit : false, isSafari : false, isArm : false, isMozilla : false, isRetina : false, isLinuxOS : false, retinaPixelRatio : 1, isVivaldiLinux : false }; // user agent lower case AscBrowser.userAgent = navigator.userAgent.toLowerCase(); // ie detect AscBrowser.isIE = (AscBrowser.userAgent.indexOf("msie") > -1 || AscBrowser.userAgent.indexOf("trident") > -1 || AscBrowser.userAgent.indexOf("edge") > -1); AscBrowser.isIeEdge = (AscBrowser.userAgent.indexOf("edge/") > -1); AscBrowser.isIE9 = (AscBrowser.userAgent.indexOf("msie9") > -1 || AscBrowser.userAgent.indexOf("msie 9") > -1); AscBrowser.isIE10 = (AscBrowser.userAgent.indexOf("msie10") > -1 || AscBrowser.userAgent.indexOf("msie 10") > -1); // macOs detect AscBrowser.isMacOs = (AscBrowser.userAgent.indexOf('mac') > -1); // chrome detect AscBrowser.isChrome = !AscBrowser.isIE && (AscBrowser.userAgent.indexOf("chrome") > -1); // safari detect AscBrowser.isSafari = !AscBrowser.isIE && !AscBrowser.isChrome && (AscBrowser.userAgent.indexOf("safari") > -1); // macOs safari detect AscBrowser.isSafariMacOs = (AscBrowser.isSafari && AscBrowser.isMacOs); // apple devices detect AscBrowser.isAppleDevices = (AscBrowser.userAgent.indexOf("ipad") > -1 || AscBrowser.userAgent.indexOf("iphone") > -1 || AscBrowser.userAgent.indexOf("ipod") > -1); // android devices detect AscBrowser.isAndroid = (AscBrowser.userAgent.indexOf("android") > -1); // mobile detect AscBrowser.isMobile = /android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent || navigator.vendor || window.opera); // gecko detect AscBrowser.isGecko = (AscBrowser.userAgent.indexOf("gecko/") > -1); // opera detect AscBrowser.isOpera = (!!window.opera || AscBrowser.userAgent.indexOf("opr/") > -1); // webkit detect AscBrowser.isWebkit = !AscBrowser.isIE && (AscBrowser.userAgent.indexOf("webkit") > -1); // arm detect AscBrowser.isArm = (AscBrowser.userAgent.indexOf("arm") > -1); AscBrowser.isMozilla = !AscBrowser.isIE && (AscBrowser.userAgent.indexOf("firefox") > -1); AscBrowser.isLinuxOS = (AscBrowser.userAgent.indexOf(" linux ") > -1); AscBrowser.isVivaldiLinux = AscBrowser.isLinuxOS && (AscBrowser.userAgent.indexOf("vivaldi") > -1); AscBrowser.zoom = 1; AscBrowser.checkZoom = function() { if (AscBrowser.isAndroid) { AscBrowser.isRetina = (window.devicePixelRatio >= 1.9); AscBrowser.retinaPixelRatio = window.devicePixelRatio; return; } AscBrowser.zoom = 1.0; AscBrowser.isRetina = false; AscBrowser.retinaPixelRatio = 1; if (AscBrowser.isChrome && !AscBrowser.isOpera && !AscBrowser.isMobile && document && document.firstElementChild && document.body) { if (false) { // этот код - рабочий, но только если этот ифрейм открыт на весь размер браузера // (window.outerWidth и window.innerWidth зависимы) if (window.innerWidth > 300) AscBrowser.zoom = window.outerWidth / window.innerWidth; if (Math.abs(AscBrowser.zoom - 1) < 0.1) AscBrowser.zoom = 1; AscBrowser.zoom = window.outerWidth / window.innerWidth; var _devicePixelRatio = window.devicePixelRatio / AscBrowser.zoom; // device pixel ratio: кратно 0.5 _devicePixelRatio = (5 * (((2.5 + 10 * _devicePixelRatio) / 5) >> 0)) / 10; AscBrowser.zoom = window.devicePixelRatio / _devicePixelRatio; if (2 == _devicePixelRatio) AscBrowser.isRetina = true; // chrome 54.x: zoom = "reset" - clear retina zoom (windows) //document.firstElementChild.style.zoom = "reset"; document.firstElementChild.style.zoom = 1.0 / AscBrowser.zoom; } else { // делаем простую проверку // считаем: 0 < window.devicePixelRatio < 2 => _devicePixelRatio = 1; zoom = window.devicePixelRatio / _devicePixelRatio; // считаем: window.devicePixelRatio >= 2 => _devicePixelRatio = 2; zoom = window.devicePixelRatio / _devicePixelRatio; if (window.devicePixelRatio > 0.1) { if (window.devicePixelRatio < 1.99) { var _devicePixelRatio = 1; AscBrowser.zoom = window.devicePixelRatio / _devicePixelRatio; } else { var _devicePixelRatio = 2; AscBrowser.zoom = window.devicePixelRatio / _devicePixelRatio; AscBrowser.isRetina = true; } // chrome 54.x: zoom = "reset" - clear retina zoom (windows) //document.firstElementChild.style.zoom = "reset"; document.firstElementChild.style.zoom = 1.0 / AscBrowser.zoom; } else document.firstElementChild.style.zoom = "normal"; } if (AscBrowser.isRetina) AscBrowser.retinaPixelRatio = 2; } else { AscBrowser.isRetina = (Math.abs(2 - (window.devicePixelRatio / AscBrowser.zoom)) < 0.01); if (AscBrowser.isRetina) AscBrowser.retinaPixelRatio = 2; if (AscBrowser.isMobile) { AscBrowser.isRetina = (window.devicePixelRatio >= 1.9); AscBrowser.retinaPixelRatio = window.devicePixelRatio; } } }; AscBrowser.checkZoom(); AscBrowser.convertToRetinaValue = function(value, isScale) { if (isScale === true) return ((value * AscBrowser.retinaPixelRatio) + 0.5) >> 0; else return ((value / AscBrowser.retinaPixelRatio) + 0.5) >> 0; }; //--------------------------------------------------------export---------------------------------------------------- window['AscCommon'] = window['AscCommon'] || {}; window['AscCommon'].AscBrowser = AscBrowser; })(window); /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; (/** * @param {Window} window * @param {undefined} undefined */ function(window, undefined) { var g_cCharDelimiter = String.fromCharCode(5); var g_cGeneralFormat = 'General'; var FONT_THUMBNAIL_HEIGHT = (7 * 96.0 / 25.4) >> 0; var c_oAscMaxColumnWidth = 255; var c_oAscMaxRowHeight = 409.5; var c_nMaxConversionTime = 900000;//depends on config var c_nMaxDownloadTitleLen= 255; var c_nVersionNoBase64 = 10; var c_dMaxParaRunContentLength = 256; var c_rUneditableTypes = /^(?:(pdf|djvu|xps))$/; //files type for Saving & DownloadAs var c_oAscFileType = { UNKNOWN : 0, PDF : 0x0201, PDFA : 0x0901, HTML : 0x0803, // Word DOCX : 0x0041, DOC : 0x0042, ODT : 0x0043, RTF : 0x0044, TXT : 0x0045, MHT : 0x0047, EPUB : 0x0048, FB2 : 0x0049, MOBI : 0x004a, DOCY : 0x1001, CANVAS_WORD : 0x2001, JSON : 0x0808, // Для mail-merge // Excel XLSX : 0x0101, XLS : 0x0102, ODS : 0x0103, CSV : 0x0104, XLSY : 0x1002, // PowerPoint PPTX : 0x0081, PPT : 0x0082, ODP : 0x0083 }; var c_oAscError = { Level : { Critical : -1, NoCritical : 0 }, ID : { ServerSaveComplete : 3, ConvertationProgress : 2, DownloadProgress : 1, No : 0, Unknown : -1, ConvertationTimeout : -2, DownloadError : -4, UnexpectedGuid : -5, Database : -6, FileRequest : -7, FileVKey : -8, UplImageSize : -9, UplImageExt : -10, UplImageFileCount : -11, NoSupportClipdoard : -12, UplImageUrl : -13, MaxDataPointsError : -16, StockChartError : -17, CoAuthoringDisconnect : -18, ConvertationPassword : -19, VKeyEncrypt : -20, KeyExpire : -21, UserCountExceed : -22, AccessDeny : -23, LoadingScriptError : -24, SplitCellMaxRows : -30, SplitCellMaxCols : -31, SplitCellRowsDivider : -32, MobileUnexpectedCharCount : -35, // Mail Merge MailMergeLoadFile : -40, MailMergeSaveFile : -41, // for AutoFilter AutoFilterDataRangeError : -50, AutoFilterChangeFormatTableError : -51, AutoFilterChangeError : -52, AutoFilterMoveToHiddenRangeError : -53, LockedAllError : -54, LockedWorksheetRename : -55, FTChangeTableRangeError : -56, FTRangeIncludedOtherTables : -57, PasteMaxRangeError : -64, PastInMergeAreaError : -65, CopyMultiselectAreaError : -66, DataRangeError : -72, CannotMoveRange : -71, MaxDataSeriesError : -80, CannotFillRange : -81, ConvertationOpenError : -82, ConvertationSaveError : -83, UserDrop : -100, Warning : -101, PrintMaxPagesCount : -110, SessionAbsolute: -120, SessionIdle: -121, SessionToken: -122, /* для формул */ FrmlWrongCountParentheses : -300, FrmlWrongOperator : -301, FrmlWrongMaxArgument : -302, FrmlWrongCountArgument : -303, FrmlWrongFunctionName : -304, FrmlAnotherParsingError : -305, FrmlWrongArgumentRange : -306, FrmlOperandExpected : -307, FrmlParenthesesCorrectCount : -308, FrmlWrongReferences : -309, InvalidReferenceOrName : -310, LockCreateDefName : -311, LockedCellPivot : -312, ForceSaveButton: -331, ForceSaveTimeout: -332, OpenWarning : 500, DataEncrypted : -600, } }; var c_oAscAsyncAction = { Open : 0, // открытие документа Save : 1, // сохранение LoadDocumentFonts : 2, // загружаем фонты документа (сразу после открытия) LoadDocumentImages : 3, // загружаем картинки документа (сразу после загрузки шрифтов) LoadFont : 4, // подгрузка нужного шрифта LoadImage : 5, // подгрузка картинки DownloadAs : 6, // cкачать Print : 7, // конвертация в PDF и сохранение у пользователя UploadImage : 8, // загрузка картинки ApplyChanges : 9, // применение изменений от другого пользователя. SlowOperation : 11, // медленная операция LoadTheme : 12, // загрузка темы MailMergeLoadFile : 13, // загрузка файла для mail merge DownloadMerge : 14, // cкачать файл с mail merge SendMailMerge : 15, // рассылка mail merge по почте ForceSaveButton : 16, ForceSaveTimeout : 17 }; var c_oAscAdvancedOptionsID = { CSV : 0, TXT : 1, DRM : 2 }; var c_oAscAdvancedOptionsAction = { None : 0, Open : 1, Save : 2 }; var c_oAscRestrictionType = { None : 0, OnlyForms : 1, OnlyComments : 2, OnlySignatures : 3, View : 0xFF // Отличие данного ограничения от обычного ViewMode в том, что редактор открывается // как полноценный редактор, просто мы запрещаем ЛЮБОЕ редактирование. А во ViewMode // открывается именно просмотрщик. }; // Режимы отрисовки var c_oAscFontRenderingModeType = { noHinting : 1, hinting : 2, hintingAndSubpixeling : 3 }; var c_oAscAsyncActionType = { Information : 0, BlockInteraction : 1 }; var DownloadType = { None : '', Download : 'asc_onDownloadUrl', Print : 'asc_onPrintUrl', MailMerge : 'asc_onSaveMailMerge' }; var CellValueType = { Number : 0, String : 1, Bool : 2, Error : 3 }; /** * NumFormat defines * @enum {number} */ var c_oAscNumFormatType = { None : -1, General : 0, Number : 1, Scientific : 2, Accounting : 3, Currency : 4, Date : 5, Time : 6, Percent : 7, Fraction : 8, Text : 9, Custom : 10 }; var c_oAscDrawingLayerType = { BringToFront : 0, SendToBack : 1, BringForward : 2, SendBackward : 3 }; var c_oAscCellAnchorType = { cellanchorAbsolute : 0, cellanchorOneCell : 1, cellanchorTwoCell : 2 }; var c_oAscChartDefines = { defaultChartWidth : 478, defaultChartHeight : 286 }; var c_oAscStyleImage = { Default : 0, Document : 1 }; var c_oAscTypeSelectElement = { Paragraph : 0, Table : 1, Image : 2, Header : 3, Hyperlink : 4, SpellCheck : 5, Shape : 6, Slide : 7, Chart : 8, Math : 9, MailMerge : 10, ContentControl : 11 }; var c_oAscLineDrawingRule = { Left : 0, Center : 1, Right : 2, Top : 0, Bottom : 2 }; var align_Right = 0; var align_Left = 1; var align_Center = 2; var align_Justify = 3; var linerule_AtLeast = 0x00; var linerule_Auto = 0x01; var linerule_Exact = 0x02; var c_oAscShdClear = 0; var c_oAscShdNil = 1; var vertalign_Baseline = 0; var vertalign_SuperScript = 1; var vertalign_SubScript = 2; var hdrftr_Header = 0x01; var hdrftr_Footer = 0x02; var c_oAscDropCap = { None : 0x00, Drop : 0x01, Margin : 0x02 }; var c_oAscChartTitleShowSettings = { none : 0, overlay : 1, noOverlay : 2 }; var c_oAscChartHorAxisLabelShowSettings = { none : 0, noOverlay : 1 }; var c_oAscChartVertAxisLabelShowSettings = { none : 0, rotated : 1, vertical : 2, horizontal : 3 }; var c_oAscChartLegendShowSettings = { none : 0, left : 1, top : 2, right : 3, bottom : 4, leftOverlay : 5, rightOverlay : 6, layout : 7, topRight : 8 // ToDo добавить в меню }; var c_oAscChartDataLabelsPos = { none : 0, b : 1, bestFit : 2, ctr : 3, inBase : 4, inEnd : 5, l : 6, outEnd : 7, r : 8, t : 9 }; var c_oAscChartCatAxisSettings = { none : 0, leftToRight : 1, rightToLeft : 2, noLabels : 3 }; var c_oAscChartValAxisSettings = { none : 0, byDefault : 1, thousands : 2, millions : 3, billions : 4, log : 5 }; var c_oAscAxisTypeSettings = { vert : 0, hor : 1 }; var c_oAscGridLinesSettings = { none : 0, major : 1, minor : 2, majorMinor : 3 }; var c_oAscChartTypeSettings = { barNormal : 0, barStacked : 1, barStackedPer : 2, barNormal3d : 3, barStacked3d : 4, barStackedPer3d : 5, barNormal3dPerspective : 6, lineNormal : 7, lineStacked : 8, lineStackedPer : 9, lineNormalMarker : 10, lineStackedMarker : 11, lineStackedPerMarker : 12, line3d : 13, pie : 14, pie3d : 15, hBarNormal : 16, hBarStacked : 17, hBarStackedPer : 18, hBarNormal3d : 19, hBarStacked3d : 20, hBarStackedPer3d : 21, areaNormal : 22, areaStacked : 23, areaStackedPer : 24, doughnut : 25, stock : 26, scatter : 27, scatterLine : 28, scatterLineMarker : 29, scatterMarker : 30, scatterNone : 31, scatterSmooth : 32, scatterSmoothMarker : 33, surfaceNormal : 34, surfaceWireframe : 35, contourNormal : 36, contourWireframe : 37, unknown : 38 }; var c_oAscValAxisRule = { auto : 0, fixed : 1 }; var c_oAscValAxUnits = { none : 0, BILLIONS : 1, HUNDRED_MILLIONS : 2, HUNDREDS : 3, HUNDRED_THOUSANDS : 4, MILLIONS : 5, TEN_MILLIONS : 6, TEN_THOUSANDS : 7, TRILLIONS : 8, CUSTOM : 9, THOUSANDS : 10 }; var c_oAscTickMark = { TICK_MARK_CROSS : 0, TICK_MARK_IN : 1, TICK_MARK_NONE : 2, TICK_MARK_OUT : 3 }; var c_oAscTickLabelsPos = { TICK_LABEL_POSITION_HIGH : 0, TICK_LABEL_POSITION_LOW : 1, TICK_LABEL_POSITION_NEXT_TO : 2, TICK_LABEL_POSITION_NONE : 3 }; var c_oAscCrossesRule = { auto : 0, maxValue : 1, value : 2, minValue : 3 }; var c_oAscHorAxisType = { auto : 0, date : 1, text : 2 }; var c_oAscBetweenLabelsRule = { auto : 0, manual : 1 }; var c_oAscLabelsPosition = { byDivisions : 0, betweenDivisions : 1 }; var c_oAscAxisType = { auto : 0, date : 1, text : 2, cat : 3, val : 4 }; var c_oAscHAnchor = { Margin : 0x00, Page : 0x01, Text : 0x02, PageInternal : 0xFF // только для внутреннего использования }; var c_oAscXAlign = { Center : 0x00, Inside : 0x01, Left : 0x02, Outside : 0x03, Right : 0x04 }; var c_oAscYAlign = { Bottom : 0x00, Center : 0x01, Inline : 0x02, Inside : 0x03, Outside : 0x04, Top : 0x05 }; var c_oAscVAnchor = { Margin : 0x00, Page : 0x01, Text : 0x02 }; var c_oAscRelativeFromH = { Character : 0x00, Column : 0x01, InsideMargin : 0x02, LeftMargin : 0x03, Margin : 0x04, OutsideMargin : 0x05, Page : 0x06, RightMargin : 0x07 }; var c_oAscSizeRelFromH = { sizerelfromhMargin : 0, sizerelfromhPage : 1, sizerelfromhLeftMargin : 2, sizerelfromhRightMargin : 3, sizerelfromhInsideMargin : 4, sizerelfromhOutsideMargin : 5 }; var c_oAscSizeRelFromV = { sizerelfromvMargin : 0, sizerelfromvPage : 1, sizerelfromvTopMargin : 2, sizerelfromvBottomMargin : 3, sizerelfromvInsideMargin : 4, sizerelfromvOutsideMargin : 5 }; var c_oAscRelativeFromV = { BottomMargin : 0x00, InsideMargin : 0x01, Line : 0x02, Margin : 0x03, OutsideMargin : 0x04, Page : 0x05, Paragraph : 0x06, TopMargin : 0x07 }; // image wrap style var c_oAscWrapStyle = { Inline : 0, Flow : 1 }; // Толщина бордера var c_oAscBorderWidth = { None : 0, // 0px Thin : 1, // 1px Medium : 2, // 2px Thick : 3 // 3px }; /** * Располагаются в порядке значимости для отрисовки * @enum {number} */ var c_oAscBorderStyles = { None : 0, Double : 1, Hair : 2, DashDotDot : 3, DashDot : 4, Dotted : 5, Dashed : 6, Thin : 7, MediumDashDotDot : 8, SlantDashDot : 9, MediumDashDot : 10, MediumDashed : 11, Medium : 12, Thick : 13 }; var c_oAscBorderType = { Hor : 1, Ver : 2, Diag : 3 }; // PageOrientation var c_oAscPageOrientation = { PagePortrait : 0x00, PageLandscape : 0x01 }; /** * lock types * @const */ var c_oAscLockTypes = { kLockTypeNone : 1, // никто не залочил данный объект kLockTypeMine : 2, // данный объект залочен текущим пользователем kLockTypeOther : 3, // данный объект залочен другим(не текущим) пользователем kLockTypeOther2 : 4, // данный объект залочен другим(не текущим) пользователем (обновления уже пришли) kLockTypeOther3 : 5 // данный объект был залочен (обновления пришли) и снова стал залочен }; var c_oAscFormatPainterState = { kOff : 0, kOn : 1, kMultiple : 2 }; var c_oAscSaveTypes = { PartStart : 0, Part : 1, Complete : 2, CompleteAll : 3 }; var c_oAscColor = { COLOR_TYPE_NONE : 0, COLOR_TYPE_SRGB : 1, COLOR_TYPE_PRST : 2, COLOR_TYPE_SCHEME : 3, COLOR_TYPE_SYS : 4 }; var c_oAscFill = { FILL_TYPE_NONE : 0, FILL_TYPE_BLIP : 1, FILL_TYPE_NOFILL : 2, FILL_TYPE_SOLID : 3, FILL_TYPE_GRAD : 4, FILL_TYPE_PATT : 5, FILL_TYPE_GRP : 6 }; // Chart defines var c_oAscChartType = { line : "Line", bar : "Bar", hbar : "HBar", area : "Area", pie : "Pie", scatter : "Scatter", stock : "Stock", doughnut : "Doughnut" }; var c_oAscChartSubType = { normal : "normal", stacked : "stacked", stackedPer : "stackedPer" }; var c_oAscFillGradType = { GRAD_LINEAR : 1, GRAD_PATH : 2 }; var c_oAscFillBlipType = { STRETCH : 1, TILE : 2 }; var c_oAscStrokeType = { STROKE_NONE : 0, STROKE_COLOR : 1 }; var c_oAscVAlign = { Bottom : 0, // (Text Anchor Enum ( Bottom )) Center : 1, // (Text Anchor Enum ( Center )) Dist : 2, // (Text Anchor Enum ( Distributed )) Just : 3, // (Text Anchor Enum ( Justified )) Top : 4 // Top }; var c_oAscVertDrawingText = { normal : 1, vert : 3, vert270 : 4 }; var c_oAscLineJoinType = { Round : 1, Bevel : 2, Miter : 3 }; var c_oAscLineCapType = { Flat : 0, Round : 1, Square : 2 }; var c_oAscLineBeginType = { None : 0, Arrow : 1, Diamond : 2, Oval : 3, Stealth : 4, Triangle : 5 }; var c_oAscLineBeginSize = { small_small : 0, small_mid : 1, small_large : 2, mid_small : 3, mid_mid : 4, mid_large : 5, large_small : 6, large_mid : 7, large_large : 8 }; var c_oAscCsvDelimiter = { None : 0, Tab : 1, Semicolon : 2, Colon : 3, Comma : 4, Space : 5 }; var c_oAscUrlType = { Invalid : 0, Http : 1, Email : 2 }; var c_oAscCellTextDirection = { LRTB : 0x00, TBRL : 0x01, BTLR : 0x02 }; var c_oAscDocumentUnits = { Millimeter : 0, Inch : 1, Point : 2 }; var c_oAscMouseMoveDataTypes = { Common : 0, Hyperlink : 1, LockedObject : 2, Footnote : 3 }; // selection type var c_oAscSelectionType = { RangeCells : 1, RangeCol : 2, RangeRow : 3, RangeMax : 4, RangeImage : 5, RangeChart : 6, RangeShape : 7, RangeShapeText : 8, RangeChartText : 9, RangeFrozen : 10 }; var c_oAscInsertOptions = { InsertCellsAndShiftRight : 1, InsertCellsAndShiftDown : 2, InsertColumns : 3, InsertRows : 4, InsertTableRowAbove : 5, InsertTableRowBelow : 6, InsertTableColLeft : 7, InsertTableColRight : 8 }; var c_oAscDeleteOptions = { DeleteCellsAndShiftLeft : 1, DeleteCellsAndShiftTop : 2, DeleteColumns : 3, DeleteRows : 4, DeleteTable : 5 }; // Print default options (in mm) var c_oAscPrintDefaultSettings = { // Размеры страницы при печати PageWidth : 210, PageHeight : 297, PageOrientation : c_oAscPageOrientation.PagePortrait, // Поля для страницы при печати PageLeftField : 17.8, PageRightField : 17.8, PageTopField : 19.1, PageBottomField : 19.1, MinPageLeftField : 0.17, MinPageRightField : 0.17, MinPageTopField : 0.17, MinPageBottomField : 0.17, PageGridLines : 0, PageHeadings : 0 }; var c_oZoomType = { FitToPage : 1, FitToWidth : 2, CustomMode : 3 }; var c_oNotifyType = { Dirty: 0, Shift: 1, Move: 2, Delete: 3, RenameTableColumn: 4, ChangeDefName: 5, ChangeSheet: 6, DelColumnTable: 7, Prepare: 8 }; var c_oNotifyParentType = { Change: 0, ChangeFormula: 1, EndCalculate: 2, GetRangeCell: 3, IsDefName: 4, Shared: 5 }; var c_oDashType = { dash : 0, dashDot : 1, dot : 2, lgDash : 3, lgDashDot : 4, lgDashDotDot : 5, solid : 6, sysDash : 7, sysDashDot : 8, sysDashDotDot : 9, sysDot : 10 }; /** @enum {number} */ var c_oAscMathInterfaceType = { Common : 0x00, Fraction : 0x01, Script : 0x02, Radical : 0x03, LargeOperator : 0x04, Delimiter : 0x05, Function : 0x06, Accent : 0x07, BorderBox : 0x08, Bar : 0x09, Box : 0x0a, Limit : 0x0b, GroupChar : 0x0c, Matrix : 0x0d, EqArray : 0x0e, Phantom : 0x0f }; /** @enum {number} */ var c_oAscMathInterfaceBarPos = { Top : 0, Bottom : 1 }; /** @enum {number} */ var c_oAscMathInterfaceScript = { None : 0x000, // Удаление скрипта Sup : 0x001, Sub : 0x002, SubSup : 0x003, PreSubSup : 0x004 }; /** @enum {number} */ var c_oAscMathInterfaceFraction = { Bar : 0x001, Skewed : 0x002, Linear : 0x003, NoBar : 0x004 }; /** @enum {number} */ var c_oAscMathInterfaceLimitPos = { None : -1, // Удаление предела Top : 0, Bottom : 1 }; /** @enum {number} */ var c_oAscMathInterfaceMatrixMatrixAlign = { Top : 0, Center : 1, Bottom : 2 }; /** @enum {number} */ var c_oAscMathInterfaceMatrixColumnAlign = { Left : 0, Center : 1, Right : 2 }; /** @enum {number} */ var c_oAscMathInterfaceEqArrayAlign = { Top : 0, Center : 1, Bottom : 2 }; /** @enum {number} */ var c_oAscMathInterfaceNaryLimitLocation = { UndOvr : 0, SubSup : 1 }; /** @enum {number} */ var c_oAscMathInterfaceGroupCharPos = { None : -1, // Удаление GroupChar Top : 0, Bottom : 1 }; var c_oAscTabLeader = { Dot : 0x00, Heavy : 0x01, Hyphen : 0x02, MiddleDot : 0x03, None : 0x04, Underscore : 0x05 }; var c_oAscEncodings = [ [0, 28596, "ISO-8859-6", "Arabic (ISO 8859-6)"], [1, 720, "DOS-720", "Arabic (OEM 720)"], [2, 1256, "windows-1256", "Arabic (Windows)"], [3, 28594, "ISO-8859-4", "Baltic (ISO 8859-4)"], [4, 28603, "ISO-8859-13", "Baltic (ISO 8859-13)"], [5, 775, "IBM775", "Baltic (OEM 775)"], [6, 1257, "windows-1257", "Baltic (Windows)"], [7, 28604, "ISO-8859-14", "Celtic (ISO 8859-14)"], [8, 28595, "ISO-8859-5", "Cyrillic (ISO 8859-5)"], [9, 20866, "KOI8-R", "Cyrillic (KOI8-R)"], [10, 21866, "KOI8-U", "Cyrillic (KOI8-U)"], [11, 10007, "x-mac-cyrillic", "Cyrillic (Mac)"], [12, 855, "IBM855", "Cyrillic (OEM 855)"], [13, 866, "cp866", "Cyrillic (OEM 866)"], [14, 1251, "windows-1251", "Cyrillic (Windows)"], [15, 852, "IBM852", "Central European (OEM 852)"], [16, 1250, "windows-1250", "Central European (Windows)"], [17, 950, "Big5", "Chinese (Big5 Traditional)"], [18, 936, "GB2312", "Central (GB2312 Simplified)"], [19, 28592, "ISO-8859-2", "Eastern European (ISO 8859-2)"], [20, 28597, "ISO-8859-7", "Greek (ISO 8859-7)"], [21, 737, "IBM737", "Greek (OEM 737)"], [22, 869, "IBM869", "Greek (OEM 869)"], [23, 1253, "windows-1253", "Greek (Windows)"], [24, 28598, "ISO-8859-8", "Hebrew (ISO 8859-8)"], [25, 862, "DOS-862", "Hebrew (OEM 862)"], [26, 1255, "windows-1255", "Hebrew (Windows)"], [27, 932, "Shift_JIS", "Japanese (Shift-JIS)"], [28, 949, "KS_C_5601-1987", "Korean (Windows)"], [29, 51949, "EUC-KR", "Korean (EUC)"], [30, 861, "IBM861", "North European (Icelandic OEM 861)"], [31, 865, "IBM865", "North European (Nordic OEM 865)"], [32, 874, "windows-874", "Thai (TIS-620)"], [33, 28593, "ISO-8859-3", "Turkish (ISO 8859-3)"], [34, 28599, "ISO-8859-9", "Turkish (ISO 8859-9)"], [35, 857, "IBM857", "Turkish (OEM 857)"], [36, 1254, "windows-1254", "Turkish (Windows)"], [37, 28591, "ISO-8859-1", "Western European (ISO-8859-1)"], [38, 28605, "ISO-8859-15", "Western European (ISO-8859-15)"], [39, 850, "IBM850", "Western European (OEM 850)"], [40, 858, "IBM858", "Western European (OEM 858)"], [41, 860, "IBM860", "Western European (OEM 860 : Portuguese)"], [42, 863, "IBM863", "Western European (OEM 863 : French)"], [43, 437, "IBM437", "Western European (OEM-US)"], [44, 1252, "windows-1252", "Western European (Windows)"], [45, 1258, "windows-1258", "Vietnamese (Windows)"], [46, 65001, "UTF-8", "Unicode (UTF-8)"], [47, 65000, "UTF-7", "Unicode (UTF-7)"], [48, 1200, "UTF-16LE", "Unicode (UTF-16)"], [49, 1201, "UTF-16BE", "Unicode (UTF-16 Big Endian)"], [50, 12000, "UTF-32LE", "Unicode (UTF-32)"], [51, 12001, "UTF-32BE", "Unicode (UTF-32 Big Endian)"] ]; var c_oAscEncodingsMap = { "437" : 43, "720" : 1, "737" : 21, "775" : 5, "850" : 39, "852" : 15, "855" : 12, "857" : 35, "858" : 40, "860" : 41, "861" : 30, "862" : 25, "863" : 42, "865" : 31, "866" : 13, "869" : 22, "874" : 32, "932" : 27, "936" : 18, "949" : 28, "950" : 17, "1200" : 48, "1201" : 49, "1250" : 16, "1251" : 14, "1252" : 44, "1253" : 23, "1254" : 36, "1255" : 26, "1256" : 2, "1257" : 6, "1258" : 45, "10007" : 11, "12000" : 50, "12001" : 51, "20866" : 9, "21866" : 10, "28591" : 37, "28592" : 19, "28593" : 33, "28594" : 3, "28595" : 8, "28596" : 0, "28597" : 20, "28598" : 24, "28599" : 34, "28603" : 4, "28604" : 7, "28605" : 38, "51949" : 29, "65000" : 47, "65001" : 46 }; var c_oAscCodePageNone = -1; var c_oAscCodePageUtf7 = 47;//65000 var c_oAscCodePageUtf8 = 46;//65001 var c_oAscCodePageUtf16 = 48;//1200 var c_oAscCodePageUtf16BE = 49;//1201 var c_oAscCodePageUtf32 = 50;//12000 var c_oAscCodePageUtf32BE = 51;//12001 // https://support.office.com/en-us/article/Excel-specifications-and-limits-16c69c74-3d6a-4aaf-ba35-e6eb276e8eaa?ui=en-US&rs=en-US&ad=US&fromAR=1 var c_oAscMaxTooltipLength = 256; var c_oAscMaxCellOrCommentLength = 32767; var c_oAscMaxFormulaLength = 8192; var locktype_None = 1; // никто не залочил данный объект var locktype_Mine = 2; // данный объект залочен текущим пользователем var locktype_Other = 3; // данный объект залочен другим(не текущим) пользователем var locktype_Other2 = 4; // данный объект залочен другим(не текущим) пользователем (обновления уже пришли) var locktype_Other3 = 5; // данный объект был залочен (обновления пришли) и снова стал залочен var changestype_None = 0; // Ничего не происходит с выделенным элементом (проверка идет через дополнительный параметр) var changestype_Paragraph_Content = 1; // Добавление/удаление элементов в параграф var changestype_Paragraph_Properties = 2; // Изменение свойств параграфа var changestype_Paragraph_AddText = 3; // Добавление текста var changestype_Document_Content = 10; // Добавление/удаление элементов в Document или в DocumentContent var changestype_Document_Content_Add = 11; // Добавление элемента в класс Document или в класс DocumentContent var changestype_Document_SectPr = 12; // Изменения свойств данной секции (размер страницы, поля и ориентация) var changestype_Document_Styles = 13; // Изменяем стили документа (добавление/удаление/модифицирование) var changestype_Table_Properties = 20; // Любые изменения в таблице var changestype_Table_RemoveCells = 21; // Удаление ячеек (строк или столбцов) var changestype_Image_Properties = 23; // Изменения настроек картинки var changestype_ContentControl_Remove = 24; // Удаление контейнера целиком var changestype_ContentControl_Properties = 25; // Изменение свойств контейнера var changestype_ContentControl_Add = 26; // Добавление контейнера var changestype_HdrFtr = 30; // Изменения в колонтитуле (любые изменения) var changestype_Remove = 40; // Удаление, через кнопку backspace (Удаление назад) var changestype_Delete = 41; // Удаление, через кнопку delete (Удаление вперед) var changestype_Drawing_Props = 51; // Изменение свойств фигуры var changestype_ColorScheme = 60; // Изменение свойств фигуры var changestype_Text_Props = 61; // Изменение свойств фигуры var changestype_RemoveSlide = 62; // Изменение свойств фигуры var changestype_PresentationProps = 63; // Изменение темы, цветовой схемы, размера слайда; var changestype_Theme = 64; // Изменение темы; var changestype_SlideSize = 65; // Изменение цветовой схемы; var changestype_SlideBg = 66; // Изменение цветовой схемы; var changestype_SlideTiming = 67; // Изменение цветовой схемы; var changestype_MoveComment = 68; var changestype_AddSp = 69; var changestype_AddComment = 70; var changestype_Layout = 71; var changestype_AddShape = 72; var changestype_AddShapes = 73; var changestype_PresDefaultLang = 74; var changestype_SlideHide = 75; var changestype_2_InlineObjectMove = 1; // Передвигаем объект в заданную позцию (проверяем место, в которое пытаемся передвинуть) var changestype_2_HdrFtr = 2; // Изменения с колонтитулом var changestype_2_Comment = 3; // Работает с комментариями var changestype_2_Element_and_Type = 4; // Проверяем возможно ли сделать изменение заданного типа с заданным элементом(а не с текущим) var changestype_2_ElementsArray_and_Type = 5; // Аналогично предыдущему, только идет массив элементов var changestype_2_AdditionalTypes = 6; // Дополнительные проверки типа 1 var changestype_2_Element_and_Type_Array = 7; // Проверяем возможно ли сделать изменения заданного типа с заданными элементами (для каждого элемента свое изменение) var contentchanges_Add = 1; var contentchanges_Remove = 2; var PUNCTUATION_FLAG_BASE = 0x0001; var PUNCTUATION_FLAG_CANT_BE_AT_BEGIN = 0x0010; var PUNCTUATION_FLAG_CANT_BE_AT_END = 0x0020; var PUNCTUATION_FLAG_EAST_ASIAN = 0x0100; var PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E = 0x0002; var PUNCTUATION_FLAG_CANT_BE_AT_END_E = 0x0004; var g_aPunctuation = []; g_aPunctuation[0x0021] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // ! g_aPunctuation[0x0022] = PUNCTUATION_FLAG_BASE; // " g_aPunctuation[0x0023] = PUNCTUATION_FLAG_BASE; // # g_aPunctuation[0x0024] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_END; // $ g_aPunctuation[0x0025] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // % g_aPunctuation[0x0026] = PUNCTUATION_FLAG_BASE; // & g_aPunctuation[0x0027] = PUNCTUATION_FLAG_BASE; // ' g_aPunctuation[0x0028] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_END | PUNCTUATION_FLAG_CANT_BE_AT_END_E; // ( g_aPunctuation[0x0029] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // ) g_aPunctuation[0x002A] = PUNCTUATION_FLAG_BASE; // * g_aPunctuation[0x002B] = PUNCTUATION_FLAG_BASE; // + g_aPunctuation[0x002C] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // , g_aPunctuation[0x002D] = PUNCTUATION_FLAG_BASE; // - g_aPunctuation[0x002E] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // . g_aPunctuation[0x002F] = PUNCTUATION_FLAG_BASE; // / g_aPunctuation[0x003A] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // : g_aPunctuation[0x003B] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // ; g_aPunctuation[0x003C] = PUNCTUATION_FLAG_BASE; // < g_aPunctuation[0x003D] = PUNCTUATION_FLAG_BASE; // = g_aPunctuation[0x003E] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // > g_aPunctuation[0x003F] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // ? g_aPunctuation[0x0040] = PUNCTUATION_FLAG_BASE; // @ g_aPunctuation[0x005B] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_END | PUNCTUATION_FLAG_CANT_BE_AT_END_E; // [ g_aPunctuation[0x005C] = PUNCTUATION_FLAG_BASE; // \ g_aPunctuation[0x005D] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // ] g_aPunctuation[0x005E] = PUNCTUATION_FLAG_BASE; // ^ g_aPunctuation[0x005F] = PUNCTUATION_FLAG_BASE; // _ g_aPunctuation[0x0060] = PUNCTUATION_FLAG_BASE; // ` g_aPunctuation[0x007B] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_END | PUNCTUATION_FLAG_CANT_BE_AT_END_E; // { g_aPunctuation[0x007C] = PUNCTUATION_FLAG_BASE; // | g_aPunctuation[0x007D] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // } g_aPunctuation[0x007E] = PUNCTUATION_FLAG_BASE; // ~ g_aPunctuation[0x00A1] = PUNCTUATION_FLAG_BASE; // ¡ g_aPunctuation[0x00A2] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // ¢ g_aPunctuation[0x00A3] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_END; // £ g_aPunctuation[0x00A4] = PUNCTUATION_FLAG_BASE; // ¤ g_aPunctuation[0x00A5] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_END; // ¥ g_aPunctuation[0x00A6] = PUNCTUATION_FLAG_BASE; // ¦ g_aPunctuation[0x00A7] = PUNCTUATION_FLAG_BASE; // § g_aPunctuation[0x00A8] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // ¨ g_aPunctuation[0x00A9] = PUNCTUATION_FLAG_BASE; // © g_aPunctuation[0x00AA] = PUNCTUATION_FLAG_BASE; // ª g_aPunctuation[0x00AB] = PUNCTUATION_FLAG_BASE; // « g_aPunctuation[0x00AC] = PUNCTUATION_FLAG_BASE; // ¬ g_aPunctuation[0x00AD] = PUNCTUATION_FLAG_BASE; // ­ g_aPunctuation[0x00AE] = PUNCTUATION_FLAG_BASE; // ® g_aPunctuation[0x00AF] = PUNCTUATION_FLAG_BASE; // ¯ g_aPunctuation[0x00B0] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // ° g_aPunctuation[0x00B1] = PUNCTUATION_FLAG_BASE; // ± g_aPunctuation[0x00B4] = PUNCTUATION_FLAG_BASE; // ´ g_aPunctuation[0x00B6] = PUNCTUATION_FLAG_BASE; // ¶ g_aPunctuation[0x00B7] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // · g_aPunctuation[0x00B8] = PUNCTUATION_FLAG_BASE; // ¸ g_aPunctuation[0x00BA] = PUNCTUATION_FLAG_BASE; // º g_aPunctuation[0x00BB] = PUNCTUATION_FLAG_BASE; // » g_aPunctuation[0x00BB] = PUNCTUATION_FLAG_BASE; // » g_aPunctuation[0x00BF] = PUNCTUATION_FLAG_BASE; // ¿ g_aPunctuation[0x2010] = PUNCTUATION_FLAG_BASE; // ‐ g_aPunctuation[0x2011] = PUNCTUATION_FLAG_BASE; // ‑ g_aPunctuation[0x2012] = PUNCTUATION_FLAG_BASE; // ‒ g_aPunctuation[0x2013] = PUNCTUATION_FLAG_BASE; // – g_aPunctuation[0x2014] = PUNCTUATION_FLAG_BASE; // — g_aPunctuation[0x2015] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // ― g_aPunctuation[0x2016] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // ‖ g_aPunctuation[0x2017] = PUNCTUATION_FLAG_BASE; // ‗ g_aPunctuation[0x2018] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_END; // ‘ g_aPunctuation[0x2019] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // ’ g_aPunctuation[0x201A] = PUNCTUATION_FLAG_BASE; // ‚ g_aPunctuation[0x201B] = PUNCTUATION_FLAG_BASE; // ‛ g_aPunctuation[0x201C] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_END; // “ g_aPunctuation[0x201D] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // ” g_aPunctuation[0x201E] = PUNCTUATION_FLAG_BASE; // „ g_aPunctuation[0x201F] = PUNCTUATION_FLAG_BASE; // ‟ g_aPunctuation[0x2020] = PUNCTUATION_FLAG_BASE; // † g_aPunctuation[0x2021] = PUNCTUATION_FLAG_BASE; // ‡ g_aPunctuation[0x2022] = PUNCTUATION_FLAG_BASE; // • g_aPunctuation[0x2023] = PUNCTUATION_FLAG_BASE; // ‣ g_aPunctuation[0x2024] = PUNCTUATION_FLAG_BASE; // ․ g_aPunctuation[0x2025] = PUNCTUATION_FLAG_BASE; // ‥ g_aPunctuation[0x2026] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // … g_aPunctuation[0x2027] = PUNCTUATION_FLAG_BASE; // ‧ g_aPunctuation[0x2030] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // ‰ g_aPunctuation[0x2031] = PUNCTUATION_FLAG_BASE; // ‱ g_aPunctuation[0x2032] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // ′ g_aPunctuation[0x2033] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // ″ g_aPunctuation[0x2034] = PUNCTUATION_FLAG_BASE; // ‴ g_aPunctuation[0x2035] = PUNCTUATION_FLAG_BASE; // ‵ g_aPunctuation[0x2036] = PUNCTUATION_FLAG_BASE; // ‶ g_aPunctuation[0x2037] = PUNCTUATION_FLAG_BASE; // ‷ g_aPunctuation[0x2038] = PUNCTUATION_FLAG_BASE; // ‸ g_aPunctuation[0x2039] = PUNCTUATION_FLAG_BASE; // ‹ g_aPunctuation[0x203A] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // › g_aPunctuation[0x203B] = PUNCTUATION_FLAG_BASE; // ※ g_aPunctuation[0x203C] = PUNCTUATION_FLAG_BASE; // ‼ g_aPunctuation[0x203D] = PUNCTUATION_FLAG_BASE; // ‽ g_aPunctuation[0x203E] = PUNCTUATION_FLAG_BASE; // ‾ g_aPunctuation[0x203F] = PUNCTUATION_FLAG_BASE; // ‿ g_aPunctuation[0x2040] = PUNCTUATION_FLAG_BASE; // ⁀ g_aPunctuation[0x2041] = PUNCTUATION_FLAG_BASE; // ⁁ g_aPunctuation[0x2042] = PUNCTUATION_FLAG_BASE; // ⁂ g_aPunctuation[0x2043] = PUNCTUATION_FLAG_BASE; // ⁃ g_aPunctuation[0x2044] = PUNCTUATION_FLAG_BASE; // ⁄ g_aPunctuation[0x2045] = PUNCTUATION_FLAG_BASE; // ⁅ g_aPunctuation[0x2046] = PUNCTUATION_FLAG_BASE; // ⁆ g_aPunctuation[0x2047] = PUNCTUATION_FLAG_BASE; // ⁇ g_aPunctuation[0x2048] = PUNCTUATION_FLAG_BASE; // ⁈ g_aPunctuation[0x2049] = PUNCTUATION_FLAG_BASE; // ⁉ g_aPunctuation[0x204A] = PUNCTUATION_FLAG_BASE; // ⁊ g_aPunctuation[0x204B] = PUNCTUATION_FLAG_BASE; // ⁋ g_aPunctuation[0x204C] = PUNCTUATION_FLAG_BASE; // ⁌ g_aPunctuation[0x204D] = PUNCTUATION_FLAG_BASE; // ⁍ g_aPunctuation[0x204E] = PUNCTUATION_FLAG_BASE; // ⁎ g_aPunctuation[0x204F] = PUNCTUATION_FLAG_BASE; // ⁏ g_aPunctuation[0x2050] = PUNCTUATION_FLAG_BASE; // ⁐ g_aPunctuation[0x2051] = PUNCTUATION_FLAG_BASE; // ⁑ g_aPunctuation[0x2052] = PUNCTUATION_FLAG_BASE; // ⁒ g_aPunctuation[0x2053] = PUNCTUATION_FLAG_BASE; // ⁓ g_aPunctuation[0x2054] = PUNCTUATION_FLAG_BASE; // ⁔ g_aPunctuation[0x2055] = PUNCTUATION_FLAG_BASE; // ⁕ g_aPunctuation[0x2056] = PUNCTUATION_FLAG_BASE; // ⁖ g_aPunctuation[0x2057] = PUNCTUATION_FLAG_BASE; // ⁗ g_aPunctuation[0x2058] = PUNCTUATION_FLAG_BASE; // ⁘ g_aPunctuation[0x2059] = PUNCTUATION_FLAG_BASE; // ⁙ g_aPunctuation[0x205A] = PUNCTUATION_FLAG_BASE; // ⁚ g_aPunctuation[0x205B] = PUNCTUATION_FLAG_BASE; // ⁛ g_aPunctuation[0x205C] = PUNCTUATION_FLAG_BASE; // ⁜ g_aPunctuation[0x205D] = PUNCTUATION_FLAG_BASE; // ⁝ g_aPunctuation[0x205E] = PUNCTUATION_FLAG_BASE; // ⁞ // Не смотря на то что следующий набор символов идет в блоке CJK Symbols and Punctuation // Word не считает их как EastAsian script (w:lang->w:eastAsian) g_aPunctuation[0x3001] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // 、 g_aPunctuation[0x3002] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // 。 g_aPunctuation[0x3003] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // 〃 g_aPunctuation[0x3004] = PUNCTUATION_FLAG_BASE; // 〄 g_aPunctuation[0x3005] = PUNCTUATION_FLAG_BASE; // 々 g_aPunctuation[0x3006] = PUNCTUATION_FLAG_BASE; // 〆 g_aPunctuation[0x3007] = PUNCTUATION_FLAG_BASE; // 〇 g_aPunctuation[0x3008] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_END; // 〈 g_aPunctuation[0x3009] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // 〉 g_aPunctuation[0x300A] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_END; // 《 g_aPunctuation[0x300B] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // 》 g_aPunctuation[0x300C] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_END; // 「 g_aPunctuation[0x300D] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // 」 g_aPunctuation[0x300E] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_END; // 『 g_aPunctuation[0x300F] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // 』 g_aPunctuation[0x3010] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_END; // 【 g_aPunctuation[0x3011] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // 】 g_aPunctuation[0x3012] = PUNCTUATION_FLAG_BASE; // 〒 g_aPunctuation[0x3013] = PUNCTUATION_FLAG_BASE; // 〓 g_aPunctuation[0x3014] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_END; //〔 g_aPunctuation[0x3015] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // 〕 g_aPunctuation[0x3016] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_END; //〖 g_aPunctuation[0x3017] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // 〗 g_aPunctuation[0x3018] = PUNCTUATION_FLAG_BASE; // 〘 g_aPunctuation[0x3019] = PUNCTUATION_FLAG_BASE; // 〙 g_aPunctuation[0x301A] = PUNCTUATION_FLAG_BASE; // 〚 g_aPunctuation[0x301B] = PUNCTUATION_FLAG_BASE; // 〛 g_aPunctuation[0x301C] = PUNCTUATION_FLAG_BASE; // 〜 g_aPunctuation[0x301D] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_END; // 〝 g_aPunctuation[0x301E] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // 〞 g_aPunctuation[0x301F] = PUNCTUATION_FLAG_BASE; // 〟 g_aPunctuation[0xFF01] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // ! g_aPunctuation[0xFF02] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // " g_aPunctuation[0xFF03] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // # g_aPunctuation[0xFF04] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_END; // $ g_aPunctuation[0xFF05] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // % g_aPunctuation[0xFF06] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // & g_aPunctuation[0xFF07] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // ' g_aPunctuation[0xFF08] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_END | PUNCTUATION_FLAG_CANT_BE_AT_END_E; // ( g_aPunctuation[0xFF09] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // ) g_aPunctuation[0xFF0A] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // * g_aPunctuation[0xFF0B] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // + g_aPunctuation[0xFF0C] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // , g_aPunctuation[0xFF0D] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // - g_aPunctuation[0xFF0E] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // . g_aPunctuation[0xFF0F] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // / g_aPunctuation[0xFF1A] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // : g_aPunctuation[0xFF1B] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // ; g_aPunctuation[0xFF1C] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // < g_aPunctuation[0xFF1D] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // = g_aPunctuation[0xFF1E] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // > g_aPunctuation[0xFF1F] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // ? g_aPunctuation[0xFF20] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // @ g_aPunctuation[0xFF3B] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_END | PUNCTUATION_FLAG_CANT_BE_AT_END_E; // [ g_aPunctuation[0xFF3C] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // \ g_aPunctuation[0xFF3D] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // ] g_aPunctuation[0xFF3E] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // ^ g_aPunctuation[0xFF3F] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // _ g_aPunctuation[0xFF40] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // ` g_aPunctuation[0xFF5B] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_END | PUNCTUATION_FLAG_CANT_BE_AT_END_E; // { g_aPunctuation[0xFF5C] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // | g_aPunctuation[0xFF5D] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; // } g_aPunctuation[0xFF5E] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // ~ g_aPunctuation[0xFF5F] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // ⦅ g_aPunctuation[0xFF60] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // ⦆ g_aPunctuation[0xFF61] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // 。 g_aPunctuation[0xFF62] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // 「 g_aPunctuation[0xFF63] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // 」 g_aPunctuation[0xFF64] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // 、 g_aPunctuation[0xFF65] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // ・ g_aPunctuation[0xFFE0] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; // ¢ g_aPunctuation[0xFFE1] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_END; // £ g_aPunctuation[0xFFE2] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // ¬ g_aPunctuation[0xFFE3] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; //  ̄ g_aPunctuation[0xFFE4] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // ¦ g_aPunctuation[0xFFE5] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN | PUNCTUATION_FLAG_CANT_BE_AT_END; // ¥ g_aPunctuation[0xFFE6] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // ₩ g_aPunctuation[0xFFE8] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // │ g_aPunctuation[0xFFE9] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // ← g_aPunctuation[0xFFEA] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // ↑ g_aPunctuation[0xFFEB] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // → g_aPunctuation[0xFFEC] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // ↓ g_aPunctuation[0xFFED] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // ■ g_aPunctuation[0xFFEE] = PUNCTUATION_FLAG_BASE | PUNCTUATION_FLAG_EAST_ASIAN; // ○ var offlineMode = '_offline_'; var chartMode = '_chart_'; var c_oSpecialPasteProps = { paste: 0, pasteOnlyFormula: 1, formulaNumberFormat: 2, formulaAllFormatting: 3, formulaWithoutBorders: 4, formulaColumnWidth: 5, mergeConditionalFormating: 6, pasteOnlyValues: 7, valueNumberFormat: 8, valueAllFormating: 9, pasteOnlyFormating: 10, transpose: 11, link: 12, picture: 13, linkedPicture: 14, sourceformatting: 15, destinationFormatting: 16, mergeFormatting: 17, uniteList: 18, doNotUniteList: 19, insertAsNestedTable: 20, uniteIntoTable: 21, insertAsNewRows: 22, keepTextOnly: 23, overwriteCells : 24 }; /** @enum {number} */ var c_oAscNumberingFormat = { None : 0x0000, Bullet : 0x1001, Decimal : 0x2002, LowerRoman : 0x2003, UpperRoman : 0x2004, LowerLetter : 0x2005, UpperLetter : 0x2006, DecimalZero : 0x2007, BulletFlag : 0x1000, NumberedFlag : 0x2000 }; /** enum {number} */ var c_oAscNumberingSuff = { Tab : 0x01, Space : 0x02, None : 0x03 }; var c_oAscNumberingLvlTextType = { Text : 0x00, Num : 0x01 }; var c_oAscSdtAppearance = { Frame : 1, Hidden : 2 }; //------------------------------------------------------------export-------------------------------------------------- var prot; window['Asc'] = window['Asc'] || {}; window['Asc']['FONT_THUMBNAIL_HEIGHT'] = FONT_THUMBNAIL_HEIGHT; window['Asc']['c_oAscMaxColumnWidth'] = window['Asc'].c_oAscMaxColumnWidth = c_oAscMaxColumnWidth; window['Asc']['c_oAscMaxRowHeight'] = window['Asc'].c_oAscMaxRowHeight = c_oAscMaxRowHeight; window['Asc']['c_nMaxConversionTime'] = window['Asc'].c_nMaxConversionTime = c_nMaxConversionTime; window['Asc']['c_nMaxDownloadTitleLen'] = window['Asc'].c_nMaxDownloadTitleLen = c_nMaxDownloadTitleLen; window['Asc']['c_nVersionNoBase64'] = window['Asc'].c_nVersionNoBase64 = c_nVersionNoBase64; window['Asc']['c_dMaxParaRunContentLength'] = window['Asc'].c_dMaxParaRunContentLength = c_dMaxParaRunContentLength; window['Asc']['c_rUneditableTypes'] = window['Asc'].c_rUneditableTypes = c_rUneditableTypes; window['Asc']['c_oAscFileType'] = window['Asc'].c_oAscFileType = c_oAscFileType; prot = c_oAscFileType; prot['UNKNOWN'] = prot.UNKNOWN; prot['PDF'] = prot.PDF; prot['PDFA'] = prot.PDFA; prot['HTML'] = prot.HTML; prot['DOCX'] = prot.DOCX; prot['DOC'] = prot.DOC; prot['ODT'] = prot.ODT; prot['RTF'] = prot.RTF; prot['TXT'] = prot.TXT; prot['MHT'] = prot.MHT; prot['EPUB'] = prot.EPUB; prot['FB2'] = prot.FB2; prot['MOBI'] = prot.MOBI; prot['DOCY'] = prot.DOCY; prot['JSON'] = prot.JSON; prot['XLSX'] = prot.XLSX; prot['XLS'] = prot.XLS; prot['ODS'] = prot.ODS; prot['CSV'] = prot.CSV; prot['XLSY'] = prot.XLSY; prot['PPTX'] = prot.PPTX; prot['PPT'] = prot.PPT; prot['ODP'] = prot.ODP; window['Asc']['c_oAscError'] = window['Asc'].c_oAscError = c_oAscError; prot = c_oAscError; prot['Level'] = prot.Level; prot['ID'] = prot.ID; prot = c_oAscError.Level; prot['Critical'] = prot.Critical; prot['NoCritical'] = prot.NoCritical; prot = c_oAscError.ID; prot['ServerSaveComplete'] = prot.ServerSaveComplete; prot['ConvertationProgress'] = prot.ConvertationProgress; prot['DownloadProgress'] = prot.DownloadProgress; prot['No'] = prot.No; prot['Unknown'] = prot.Unknown; prot['ConvertationTimeout'] = prot.ConvertationTimeout; prot['DownloadError'] = prot.DownloadError; prot['UnexpectedGuid'] = prot.UnexpectedGuid; prot['Database'] = prot.Database; prot['FileRequest'] = prot.FileRequest; prot['FileVKey'] = prot.FileVKey; prot['UplImageSize'] = prot.UplImageSize; prot['UplImageExt'] = prot.UplImageExt; prot['UplImageFileCount'] = prot.UplImageFileCount; prot['NoSupportClipdoard'] = prot.NoSupportClipdoard; prot['UplImageUrl'] = prot.UplImageUrl; prot['MaxDataPointsError'] = prot.MaxDataPointsError; prot['StockChartError'] = prot.StockChartError; prot['CoAuthoringDisconnect'] = prot.CoAuthoringDisconnect; prot['ConvertationPassword'] = prot.ConvertationPassword; prot['VKeyEncrypt'] = prot.VKeyEncrypt; prot['KeyExpire'] = prot.KeyExpire; prot['UserCountExceed'] = prot.UserCountExceed; prot['AccessDeny'] = prot.AccessDeny; prot['LoadingScriptError'] = prot.LoadingScriptError; prot['SplitCellMaxRows'] = prot.SplitCellMaxRows; prot['SplitCellMaxCols'] = prot.SplitCellMaxCols; prot['SplitCellRowsDivider'] = prot.SplitCellRowsDivider; prot['MobileUnexpectedCharCount'] = prot.MobileUnexpectedCharCount; prot['MailMergeLoadFile'] = prot.MailMergeLoadFile; prot['MailMergeSaveFile'] = prot.MailMergeSaveFile; prot['AutoFilterDataRangeError'] = prot.AutoFilterDataRangeError; prot['AutoFilterChangeFormatTableError'] = prot.AutoFilterChangeFormatTableError; prot['AutoFilterChangeError'] = prot.AutoFilterChangeError; prot['AutoFilterMoveToHiddenRangeError'] = prot.AutoFilterMoveToHiddenRangeError; prot['LockedAllError'] = prot.LockedAllError; prot['LockedWorksheetRename'] = prot.LockedWorksheetRename; prot['FTChangeTableRangeError'] = prot.FTChangeTableRangeError; prot['FTRangeIncludedOtherTables'] = prot.FTRangeIncludedOtherTables; prot['PasteMaxRangeError'] = prot.PasteMaxRangeError; prot['PastInMergeAreaError'] = prot.PastInMergeAreaError; prot['CopyMultiselectAreaError'] = prot.CopyMultiselectAreaError; prot['DataRangeError'] = prot.DataRangeError; prot['CannotMoveRange'] = prot.CannotMoveRange; prot['MaxDataSeriesError'] = prot.MaxDataSeriesError; prot['CannotFillRange'] = prot.CannotFillRange; prot['ConvertationOpenError'] = prot.ConvertationOpenError; prot['ConvertationSaveError'] = prot.ConvertationSaveError; prot['UserDrop'] = prot.UserDrop; prot['Warning'] = prot.Warning; prot['PrintMaxPagesCount'] = prot.PrintMaxPagesCount; prot['SessionAbsolute'] = prot.SessionAbsolute; prot['SessionIdle'] = prot.SessionIdle; prot['SessionToken'] = prot.SessionToken; prot['FrmlWrongCountParentheses'] = prot.FrmlWrongCountParentheses; prot['FrmlWrongOperator'] = prot.FrmlWrongOperator; prot['FrmlWrongMaxArgument'] = prot.FrmlWrongMaxArgument; prot['FrmlWrongCountArgument'] = prot.FrmlWrongCountArgument; prot['FrmlWrongFunctionName'] = prot.FrmlWrongFunctionName; prot['FrmlAnotherParsingError'] = prot.FrmlAnotherParsingError; prot['FrmlWrongArgumentRange'] = prot.FrmlWrongArgumentRange; prot['FrmlOperandExpected'] = prot.FrmlOperandExpected; prot['FrmlParenthesesCorrectCount'] = prot.FrmlParenthesesCorrectCount; prot['FrmlWrongReferences'] = prot.FrmlWrongReferences; prot['InvalidReferenceOrName'] = prot.InvalidReferenceOrName; prot['LockCreateDefName'] = prot.LockCreateDefName; prot['LockedCellPivot'] = prot.LockedCellPivot; prot['ForceSaveButton'] = prot.ForceSaveButton; prot['ForceSaveTimeout'] = prot.ForceSaveTimeout; prot['OpenWarning'] = prot.OpenWarning; prot['DataEncrypted'] = prot.DataEncrypted; window['Asc']['c_oAscAsyncAction'] = window['Asc'].c_oAscAsyncAction = c_oAscAsyncAction; prot = c_oAscAsyncAction; prot['Open'] = prot.Open; prot['Save'] = prot.Save; prot['LoadDocumentFonts'] = prot.LoadDocumentFonts; prot['LoadDocumentImages'] = prot.LoadDocumentImages; prot['LoadFont'] = prot.LoadFont; prot['LoadImage'] = prot.LoadImage; prot['DownloadAs'] = prot.DownloadAs; prot['Print'] = prot.Print; prot['UploadImage'] = prot.UploadImage; prot['ApplyChanges'] = prot.ApplyChanges; prot['SlowOperation'] = prot.SlowOperation; prot['LoadTheme'] = prot.LoadTheme; prot['MailMergeLoadFile'] = prot.MailMergeLoadFile; prot['DownloadMerge'] = prot.DownloadMerge; prot['SendMailMerge'] = prot.SendMailMerge; prot['ForceSaveButton'] = prot.ForceSaveButton; prot['ForceSaveTimeout'] = prot.ForceSaveTimeout; window['Asc']['c_oAscAdvancedOptionsID'] = window['Asc'].c_oAscAdvancedOptionsID = c_oAscAdvancedOptionsID; prot = c_oAscAdvancedOptionsID; prot['CSV'] = prot.CSV; prot['TXT'] = prot.TXT; prot['DRM'] = prot.DRM; window['Asc']['c_oAscFontRenderingModeType'] = window['Asc'].c_oAscFontRenderingModeType = c_oAscFontRenderingModeType; prot = c_oAscFontRenderingModeType; prot['noHinting'] = prot.noHinting; prot['hinting'] = prot.hinting; prot['hintingAndSubpixeling'] = prot.hintingAndSubpixeling; window['Asc']['c_oAscAsyncActionType'] = window['Asc'].c_oAscAsyncActionType = c_oAscAsyncActionType; prot = c_oAscAsyncActionType; prot['Information'] = prot.Information; prot['BlockInteraction'] = prot.BlockInteraction; window['Asc']['c_oAscNumFormatType'] = window['Asc'].c_oAscNumFormatType = c_oAscNumFormatType; prot = c_oAscNumFormatType; prot['None'] = prot.None; prot['General'] = prot.General; prot['Number'] = prot.Number; prot['Scientific'] = prot.Scientific; prot['Accounting'] = prot.Accounting; prot['Currency'] = prot.Currency; prot['Date'] = prot.Date; prot['Time'] = prot.Time; prot['Percent'] = prot.Percent; prot['Fraction'] = prot.Fraction; prot['Text'] = prot.Text; prot['Custom'] = prot.Custom; window['Asc']['c_oAscDrawingLayerType'] = c_oAscDrawingLayerType; prot = c_oAscDrawingLayerType; prot['BringToFront'] = prot.BringToFront; prot['SendToBack'] = prot.SendToBack; prot['BringForward'] = prot.BringForward; prot['SendBackward'] = prot.SendBackward; window['Asc']['c_oAscTypeSelectElement'] = window['Asc'].c_oAscTypeSelectElement = c_oAscTypeSelectElement; prot = c_oAscTypeSelectElement; prot['Paragraph'] = prot.Paragraph; prot['Table'] = prot.Table; prot['Image'] = prot.Image; prot['Header'] = prot.Header; prot['Hyperlink'] = prot.Hyperlink; prot['SpellCheck'] = prot.SpellCheck; prot['Shape'] = prot.Shape; prot['Slide'] = prot.Slide; prot['Chart'] = prot.Chart; prot['Math'] = prot.Math; prot['MailMerge'] = prot.MailMerge; window['Asc']['linerule_AtLeast'] = window['Asc'].linerule_AtLeast = linerule_AtLeast; window['Asc']['linerule_Auto'] = window['Asc'].linerule_Auto = linerule_Auto; window['Asc']['linerule_Exact'] = window['Asc'].linerule_Exact = linerule_Exact; window['Asc']['c_oAscShdClear'] = window['Asc'].c_oAscShdClear = c_oAscShdClear; window['Asc']['c_oAscShdNil'] = window['Asc'].c_oAscShdNil = c_oAscShdNil; window['Asc']['c_oAscDropCap'] = window['Asc'].c_oAscDropCap = c_oAscDropCap; prot = c_oAscDropCap; prot['None'] = prot.None; prot['Drop'] = prot.Drop; prot['Margin'] = prot.Margin; window['Asc']['c_oAscChartTitleShowSettings'] = window['Asc'].c_oAscChartTitleShowSettings = c_oAscChartTitleShowSettings; prot = c_oAscChartTitleShowSettings; prot['none'] = prot.none; prot['overlay'] = prot.overlay; prot['noOverlay'] = prot.noOverlay; window['Asc']['c_oAscChartHorAxisLabelShowSettings'] = window['Asc'].c_oAscChartHorAxisLabelShowSettings = c_oAscChartHorAxisLabelShowSettings; prot = c_oAscChartHorAxisLabelShowSettings; prot['none'] = prot.none; prot['noOverlay'] = prot.noOverlay; window['Asc']['c_oAscChartVertAxisLabelShowSettings'] = window['Asc'].c_oAscChartVertAxisLabelShowSettings = c_oAscChartVertAxisLabelShowSettings; prot = c_oAscChartVertAxisLabelShowSettings; prot['none'] = prot.none; prot['rotated'] = prot.rotated; prot['vertical'] = prot.vertical; prot['horizontal'] = prot.horizontal; window['Asc']['c_oAscChartLegendShowSettings'] = window['Asc'].c_oAscChartLegendShowSettings = c_oAscChartLegendShowSettings; prot = c_oAscChartLegendShowSettings; prot['none'] = prot.none; prot['left'] = prot.left; prot['top'] = prot.top; prot['right'] = prot.right; prot['bottom'] = prot.bottom; prot['leftOverlay'] = prot.leftOverlay; prot['rightOverlay'] = prot.rightOverlay; prot['layout'] = prot.layout; prot['topRight'] = prot.topRight; window['Asc']['c_oAscChartDataLabelsPos'] = window['Asc'].c_oAscChartDataLabelsPos = c_oAscChartDataLabelsPos; prot = c_oAscChartDataLabelsPos; prot['none'] = prot.none; prot['b'] = prot.b; prot['bestFit'] = prot.bestFit; prot['ctr'] = prot.ctr; prot['inBase'] = prot.inBase; prot['inEnd'] = prot.inEnd; prot['l'] = prot.l; prot['outEnd'] = prot.outEnd; prot['r'] = prot.r; prot['t'] = prot.t; window['Asc']['c_oAscGridLinesSettings'] = window['Asc'].c_oAscGridLinesSettings = c_oAscGridLinesSettings; prot = c_oAscGridLinesSettings; prot['none'] = prot.none; prot['major'] = prot.major; prot['minor'] = prot.minor; prot['majorMinor'] = prot.majorMinor; window['Asc']['c_oAscChartTypeSettings'] = window['Asc'].c_oAscChartTypeSettings = c_oAscChartTypeSettings; prot = c_oAscChartTypeSettings; prot['barNormal'] = prot.barNormal; prot['barStacked'] = prot.barStacked; prot['barStackedPer'] = prot.barStackedPer; prot['barNormal3d'] = prot.barNormal3d; prot['barStacked3d'] = prot.barStacked3d; prot['barStackedPer3d'] = prot.barStackedPer3d; prot['barNormal3dPerspective'] = prot.barNormal3dPerspective; prot['lineNormal'] = prot.lineNormal; prot['lineStacked'] = prot.lineStacked; prot['lineStackedPer'] = prot.lineStackedPer; prot['lineNormalMarker'] = prot.lineNormalMarker; prot['lineStackedMarker'] = prot.lineStackedMarker; prot['lineStackedPerMarker'] = prot.lineStackedPerMarker; prot['line3d'] = prot.line3d; prot['pie'] = prot.pie; prot['pie3d'] = prot.pie3d; prot['hBarNormal'] = prot.hBarNormal; prot['hBarStacked'] = prot.hBarStacked; prot['hBarStackedPer'] = prot.hBarStackedPer; prot['hBarNormal3d'] = prot.hBarNormal3d; prot['hBarStacked3d'] = prot.hBarStacked3d; prot['hBarStackedPer3d'] = prot.hBarStackedPer3d; prot['areaNormal'] = prot.areaNormal; prot['areaStacked'] = prot.areaStacked; prot['areaStackedPer'] = prot.areaStackedPer; prot['doughnut'] = prot.doughnut; prot['stock'] = prot.stock; prot['scatter'] = prot.scatter; prot['scatterLine'] = prot.scatterLine; prot['scatterLineMarker'] = prot.scatterLineMarker; prot['scatterMarker'] = prot.scatterMarker; prot['scatterNone'] = prot.scatterNone; prot['scatterSmooth'] = prot.scatterSmooth; prot['scatterSmoothMarker'] = prot.scatterSmoothMarker; prot['unknown'] = prot.unknown; window['Asc']['c_oAscValAxisRule'] = window['Asc'].c_oAscValAxisRule = c_oAscValAxisRule; prot = c_oAscValAxisRule; prot['auto'] = prot.auto; prot['fixed'] = prot.fixed; window['Asc']['c_oAscValAxUnits'] = window['Asc'].c_oAscValAxUnits = c_oAscValAxUnits; prot = c_oAscValAxUnits; prot['BILLIONS'] = prot.BILLIONS; prot['HUNDRED_MILLIONS'] = prot.HUNDRED_MILLIONS; prot['HUNDREDS'] = prot.HUNDREDS; prot['HUNDRED_THOUSANDS'] = prot.HUNDRED_THOUSANDS; prot['MILLIONS'] = prot.MILLIONS; prot['TEN_MILLIONS'] = prot.TEN_MILLIONS; prot['TEN_THOUSANDS'] = prot.TEN_THOUSANDS; prot['TRILLIONS'] = prot.TRILLIONS; prot['CUSTOM'] = prot.CUSTOM; prot['THOUSANDS'] = prot.THOUSANDS; window['Asc']['c_oAscTickMark'] = window['Asc'].c_oAscTickMark = c_oAscTickMark; prot = c_oAscTickMark; prot['TICK_MARK_CROSS'] = prot.TICK_MARK_CROSS; prot['TICK_MARK_IN'] = prot.TICK_MARK_IN; prot['TICK_MARK_NONE'] = prot.TICK_MARK_NONE; prot['TICK_MARK_OUT'] = prot.TICK_MARK_OUT; window['Asc']['c_oAscTickLabelsPos'] = window['Asc'].c_oAscTickLabelsPos = c_oAscTickLabelsPos; prot = c_oAscTickLabelsPos; prot['TICK_LABEL_POSITION_HIGH'] = prot.TICK_LABEL_POSITION_HIGH; prot['TICK_LABEL_POSITION_LOW'] = prot.TICK_LABEL_POSITION_LOW; prot['TICK_LABEL_POSITION_NEXT_TO'] = prot.TICK_LABEL_POSITION_NEXT_TO; prot['TICK_LABEL_POSITION_NONE'] = prot.TICK_LABEL_POSITION_NONE; window['Asc']['c_oAscCrossesRule'] = window['Asc'].c_oAscCrossesRule = c_oAscCrossesRule; prot = c_oAscCrossesRule; prot['auto'] = prot.auto; prot['maxValue'] = prot.maxValue; prot['value'] = prot.value; prot['minValue'] = prot.minValue; window['Asc']['c_oAscBetweenLabelsRule'] = window['Asc'].c_oAscBetweenLabelsRule = c_oAscBetweenLabelsRule; prot = c_oAscBetweenLabelsRule; prot['auto'] = prot.auto; prot['manual'] = prot.manual; window['Asc']['c_oAscLabelsPosition'] = window['Asc'].c_oAscLabelsPosition = c_oAscLabelsPosition; prot = c_oAscLabelsPosition; prot['byDivisions'] = prot.byDivisions; prot['betweenDivisions'] = prot.betweenDivisions; window['Asc']['c_oAscAxisType'] = window['Asc'].c_oAscAxisType = c_oAscAxisType; prot = c_oAscAxisType; prot['auto'] = prot.auto; prot['date'] = prot.date; prot['text'] = prot.text; prot['cat'] = prot.cat; prot['val'] = prot.val; window['Asc']['c_oAscHAnchor'] = window['Asc'].c_oAscHAnchor = c_oAscHAnchor; prot = c_oAscHAnchor; prot['Margin'] = prot.Margin; prot['Page'] = prot.Page; prot['Text'] = prot.Text; prot['PageInternal'] = prot.PageInternal; window['Asc']['c_oAscXAlign'] = window['Asc'].c_oAscXAlign = c_oAscXAlign; prot = c_oAscXAlign; prot['Center'] = prot.Center; prot['Inside'] = prot.Inside; prot['Left'] = prot.Left; prot['Outside'] = prot.Outside; prot['Right'] = prot.Right; window['Asc']['c_oAscYAlign'] = window['Asc'].c_oAscYAlign = c_oAscYAlign; prot = c_oAscYAlign; prot['Bottom'] = prot.Bottom; prot['Center'] = prot.Center; prot['Inline'] = prot.Inline; prot['Inside'] = prot.Inside; prot['Outside'] = prot.Outside; prot['Top'] = prot.Top; window['Asc']['c_oAscVAnchor'] = window['Asc'].c_oAscVAnchor = c_oAscVAnchor; prot = c_oAscVAnchor; prot['Margin'] = prot.Margin; prot['Page'] = prot.Page; prot['Text'] = prot.Text; window['Asc']['c_oAscRelativeFromH'] = window['Asc'].c_oAscRelativeFromH = c_oAscRelativeFromH; prot = c_oAscRelativeFromH; prot['Character'] = prot.Character; prot['Column'] = prot.Column; prot['InsideMargin'] = prot.InsideMargin; prot['LeftMargin'] = prot.LeftMargin; prot['Margin'] = prot.Margin; prot['OutsideMargin'] = prot.OutsideMargin; prot['Page'] = prot.Page; prot['RightMargin'] = prot.RightMargin; window['Asc']['c_oAscRelativeFromV'] = window['Asc'].c_oAscRelativeFromV = c_oAscRelativeFromV; prot = c_oAscRelativeFromV; prot['BottomMargin'] = prot.BottomMargin; prot['InsideMargin'] = prot.InsideMargin; prot['Line'] = prot.Line; prot['Margin'] = prot.Margin; prot['OutsideMargin'] = prot.OutsideMargin; prot['Page'] = prot.Page; prot['Paragraph'] = prot.Paragraph; prot['TopMargin'] = prot.TopMargin; window['Asc']['c_oAscBorderStyles'] = window['AscCommon'].c_oAscBorderStyles = c_oAscBorderStyles; prot = c_oAscBorderStyles; prot['None'] = prot.None; prot['Double'] = prot.Double; prot['Hair'] = prot.Hair; prot['DashDotDot'] = prot.DashDotDot; prot['DashDot'] = prot.DashDot; prot['Dotted'] = prot.Dotted; prot['Dashed'] = prot.Dashed; prot['Thin'] = prot.Thin; prot['MediumDashDotDot'] = prot.MediumDashDotDot; prot['SlantDashDot'] = prot.SlantDashDot; prot['MediumDashDot'] = prot.MediumDashDot; prot['MediumDashed'] = prot.MediumDashed; prot['Medium'] = prot.Medium; prot['Thick'] = prot.Thick; window['Asc']['c_oAscPageOrientation'] = window['Asc'].c_oAscPageOrientation = c_oAscPageOrientation; prot = c_oAscPageOrientation; prot['PagePortrait'] = prot.PagePortrait; prot['PageLandscape'] = prot.PageLandscape; window['Asc']['c_oAscColor'] = window['Asc'].c_oAscColor = c_oAscColor; prot = c_oAscColor; prot['COLOR_TYPE_NONE'] = prot.COLOR_TYPE_NONE; prot['COLOR_TYPE_SRGB'] = prot.COLOR_TYPE_SRGB; prot['COLOR_TYPE_PRST'] = prot.COLOR_TYPE_PRST; prot['COLOR_TYPE_SCHEME'] = prot.COLOR_TYPE_SCHEME; prot['COLOR_TYPE_SYS'] = prot.COLOR_TYPE_SYS; window['Asc']['c_oAscFill'] = window['Asc'].c_oAscFill = c_oAscFill; prot = c_oAscFill; prot['FILL_TYPE_NONE'] = prot.FILL_TYPE_NONE; prot['FILL_TYPE_BLIP'] = prot.FILL_TYPE_BLIP; prot['FILL_TYPE_NOFILL'] = prot.FILL_TYPE_NOFILL; prot['FILL_TYPE_SOLID'] = prot.FILL_TYPE_SOLID; prot['FILL_TYPE_GRAD'] = prot.FILL_TYPE_GRAD; prot['FILL_TYPE_PATT'] = prot.FILL_TYPE_PATT; prot['FILL_TYPE_GRP'] = prot.FILL_TYPE_GRP; window['Asc']['c_oAscFillGradType'] = window['Asc'].c_oAscFillGradType = c_oAscFillGradType; prot = c_oAscFillGradType; prot['GRAD_LINEAR'] = prot.GRAD_LINEAR; prot['GRAD_PATH'] = prot.GRAD_PATH; window['Asc']['c_oAscFillBlipType'] = window['Asc'].c_oAscFillBlipType = c_oAscFillBlipType; prot = c_oAscFillBlipType; prot['STRETCH'] = prot.STRETCH; prot['TILE'] = prot.TILE; window['Asc']['c_oAscStrokeType'] = window['Asc'].c_oAscStrokeType = c_oAscStrokeType; prot = c_oAscStrokeType; prot['STROKE_NONE'] = prot.STROKE_NONE; prot['STROKE_COLOR'] = prot.STROKE_COLOR; window['Asc']['c_oAscVAlign'] = window['Asc'].c_oAscVAlign = c_oAscVAlign; prot = c_oAscVAlign; prot['Bottom'] = prot.Bottom; prot['Center'] = prot.Center; prot['Dist'] = prot.Dist; prot['Just'] = prot.Just; prot['Top'] = prot.Top; window['Asc']['c_oAscVertDrawingText'] = c_oAscVertDrawingText; prot = c_oAscVertDrawingText; prot['normal'] = prot.normal; prot['vert'] = prot.vert; prot['vert270'] = prot.vert270; window['Asc']['c_oAscLineJoinType'] = c_oAscLineJoinType; prot = c_oAscLineJoinType; prot['Round'] = prot.Round; prot['Bevel'] = prot.Bevel; prot['Miter'] = prot.Miter; window['Asc']['c_oAscLineCapType'] = c_oAscLineCapType; prot = c_oAscLineCapType; prot['Flat'] = prot.Flat; prot['Round'] = prot.Round; prot['Square'] = prot.Square; window['Asc']['c_oAscLineBeginType'] = c_oAscLineBeginType; prot = c_oAscLineBeginType; prot['None'] = prot.None; prot['Arrow'] = prot.Arrow; prot['Diamond'] = prot.Diamond; prot['Oval'] = prot.Oval; prot['Stealth'] = prot.Stealth; prot['Triangle'] = prot.Triangle; window['Asc']['c_oAscLineBeginSize'] = c_oAscLineBeginSize; prot = c_oAscLineBeginSize; prot['small_small'] = prot.small_small; prot['small_mid'] = prot.small_mid; prot['small_large'] = prot.small_large; prot['mid_small'] = prot.mid_small; prot['mid_mid'] = prot.mid_mid; prot['mid_large'] = prot.mid_large; prot['large_small'] = prot.large_small; prot['large_mid'] = prot.large_mid; prot['large_large'] = prot.large_large; window['Asc']['c_oAscCellTextDirection'] = window['Asc'].c_oAscCellTextDirection = c_oAscCellTextDirection; prot = c_oAscCellTextDirection; prot['LRTB'] = prot.LRTB; prot['TBRL'] = prot.TBRL; prot['BTLR'] = prot.BTLR; window['Asc']['c_oAscDocumentUnits'] = window['Asc'].c_oAscDocumentUnits = c_oAscDocumentUnits; prot = c_oAscDocumentUnits; prot['Millimeter'] = prot.Millimeter; prot['Inch'] = prot.Inch; prot['Point'] = prot.Point; window['Asc']['c_oAscMaxTooltipLength'] = window['Asc'].c_oAscMaxTooltipLength = c_oAscMaxTooltipLength; window['Asc']['c_oAscMaxCellOrCommentLength'] = window['Asc'].c_oAscMaxCellOrCommentLength = c_oAscMaxCellOrCommentLength; window['Asc']['c_oAscSelectionType'] = window['Asc'].c_oAscSelectionType = c_oAscSelectionType; prot = c_oAscSelectionType; prot['RangeCells'] = prot.RangeCells; prot['RangeCol'] = prot.RangeCol; prot['RangeRow'] = prot.RangeRow; prot['RangeMax'] = prot.RangeMax; prot['RangeImage'] = prot.RangeImage; prot['RangeChart'] = prot.RangeChart; prot['RangeShape'] = prot.RangeShape; prot['RangeShapeText'] = prot.RangeShapeText; prot['RangeChartText'] = prot.RangeChartText; prot['RangeFrozen'] = prot.RangeFrozen; window['Asc']['c_oAscInsertOptions'] = window['Asc'].c_oAscInsertOptions = c_oAscInsertOptions; prot = c_oAscInsertOptions; prot['InsertCellsAndShiftRight'] = prot.InsertCellsAndShiftRight; prot['InsertCellsAndShiftDown'] = prot.InsertCellsAndShiftDown; prot['InsertColumns'] = prot.InsertColumns; prot['InsertRows'] = prot.InsertRows; prot['InsertTableRowAbove'] = prot.InsertTableRowAbove; prot['InsertTableRowBelow'] = prot.InsertTableRowBelow; prot['InsertTableColLeft'] = prot.InsertTableColLeft; prot['InsertTableColRight'] = prot.InsertTableColRight; window['Asc']['c_oAscDeleteOptions'] = window['Asc'].c_oAscDeleteOptions = c_oAscDeleteOptions; prot = c_oAscDeleteOptions; prot['DeleteCellsAndShiftLeft'] = prot.DeleteCellsAndShiftLeft; prot['DeleteCellsAndShiftTop'] = prot.DeleteCellsAndShiftTop; prot['DeleteColumns'] = prot.DeleteColumns; prot['DeleteRows'] = prot.DeleteRows; prot['DeleteTable'] = prot.DeleteTable; window['Asc']['c_oDashType'] = window['Asc'].c_oDashType = c_oDashType; prot = c_oDashType; prot['dash'] = prot.dash; prot['dashDot'] = prot.dashDot; prot['dot'] = prot.dot; prot['lgDash'] = prot.lgDash; prot['lgDashDot'] = prot.lgDashDot; prot['lgDashDotDot'] = prot.lgDashDotDot; prot['solid'] = prot.solid; prot['sysDash'] = prot.sysDash; prot['sysDashDot'] = prot.sysDashDot; prot['sysDashDotDot'] = prot.sysDashDotDot; prot['sysDot'] = prot.sysDot; window['Asc']['c_oAscMathInterfaceType'] = window['Asc'].c_oAscMathInterfaceType = c_oAscMathInterfaceType; prot = c_oAscMathInterfaceType; prot['Common'] = prot.Common; prot['Fraction'] = prot.Fraction; prot['Script'] = prot.Script; prot['Radical'] = prot.Radical; prot['LargeOperator'] = prot.LargeOperator; prot['Delimiter'] = prot.Delimiter; prot['Function'] = prot.Function; prot['Accent'] = prot.Accent; prot['BorderBox'] = prot.BorderBox; prot['Bar'] = prot.Bar; prot['Box'] = prot.Box; prot['Limit'] = prot.Limit; prot['GroupChar'] = prot.GroupChar; prot['Matrix'] = prot.Matrix; prot['EqArray'] = prot.EqArray; prot['Phantom'] = prot.Phantom; prot = window['Asc']['c_oAscMathInterfaceBarPos'] = window['Asc'].c_oAscMathInterfaceBarPos = c_oAscMathInterfaceBarPos; prot['Top'] = c_oAscMathInterfaceBarPos.Top; prot['Bottom'] = c_oAscMathInterfaceBarPos.Bottom; prot = window['Asc']['c_oAscMathInterfaceScript'] = window['Asc'].c_oAscMathInterfaceScript = c_oAscMathInterfaceScript; prot['None'] = c_oAscMathInterfaceScript.None; prot['Sup'] = c_oAscMathInterfaceScript.Sup; prot['Sub'] = c_oAscMathInterfaceScript.Sub; prot['SubSup'] = c_oAscMathInterfaceScript.SubSup; prot['PreSubSup'] = c_oAscMathInterfaceScript.PreSubSup; prot = window['Asc']['c_oAscMathInterfaceFraction'] = window['Asc'].c_oAscMathInterfaceFraction = c_oAscMathInterfaceFraction; prot['None'] = c_oAscMathInterfaceFraction.Bar; prot['Skewed'] = c_oAscMathInterfaceFraction.Skewed; prot['Linear'] = c_oAscMathInterfaceFraction.Linear; prot['NoBar'] = c_oAscMathInterfaceFraction.NoBar; prot = window['Asc']['c_oAscMathInterfaceLimitPos'] = window['Asc'].c_oAscMathInterfaceLimitPos = c_oAscMathInterfaceLimitPos; prot['None'] = c_oAscMathInterfaceLimitPos.None; prot['Top'] = c_oAscMathInterfaceLimitPos.Top; prot['Bottom'] = c_oAscMathInterfaceLimitPos.Bottom; prot = window['Asc']['c_oAscMathInterfaceMatrixMatrixAlign'] = window['Asc'].c_oAscMathInterfaceMatrixMatrixAlign = c_oAscMathInterfaceMatrixMatrixAlign; prot['Top'] = c_oAscMathInterfaceMatrixMatrixAlign.Top; prot['Center'] = c_oAscMathInterfaceMatrixMatrixAlign.Center; prot['Bottom'] = c_oAscMathInterfaceMatrixMatrixAlign.Bottom; prot = window['Asc']['c_oAscMathInterfaceMatrixColumnAlign'] = window['Asc'].c_oAscMathInterfaceMatrixColumnAlign = c_oAscMathInterfaceMatrixColumnAlign; prot['Left'] = c_oAscMathInterfaceMatrixColumnAlign.Left; prot['Center'] = c_oAscMathInterfaceMatrixColumnAlign.Center; prot['Right'] = c_oAscMathInterfaceMatrixColumnAlign.Right; prot = window['Asc']['c_oAscMathInterfaceEqArrayAlign'] = window['Asc'].c_oAscMathInterfaceEqArrayAlign = c_oAscMathInterfaceEqArrayAlign; prot['Top'] = c_oAscMathInterfaceEqArrayAlign.Top; prot['Center'] = c_oAscMathInterfaceEqArrayAlign.Center; prot['Bottom'] = c_oAscMathInterfaceEqArrayAlign.Bottom; prot = window['Asc']['c_oAscMathInterfaceNaryLimitLocation'] = window['Asc'].c_oAscMathInterfaceNaryLimitLocation = c_oAscMathInterfaceNaryLimitLocation; prot['UndOvr'] = c_oAscMathInterfaceNaryLimitLocation.UndOvr; prot['SubSup'] = c_oAscMathInterfaceNaryLimitLocation.SubSup; prot = window['Asc']['c_oAscMathInterfaceGroupCharPos'] = window['Asc'].c_oAscMathInterfaceGroupCharPos = c_oAscMathInterfaceGroupCharPos; prot['None'] = c_oAscMathInterfaceGroupCharPos.None; prot['Top'] = c_oAscMathInterfaceGroupCharPos.Top; prot['Bottom'] = c_oAscMathInterfaceGroupCharPos.Bottom; prot = window['Asc']['c_oAscTabLeader'] = window['Asc'].c_oAscTabLeader = c_oAscTabLeader; prot["None"] = c_oAscTabLeader.None; prot["Heavy"] = c_oAscTabLeader.Heavy; prot["Dot"] = c_oAscTabLeader.Dot; prot["Hyphen"] = c_oAscTabLeader.Hyphen; prot["MiddleDot"] = c_oAscTabLeader.MiddleDot; prot["Underscore"] = c_oAscTabLeader.Underscore; prot = window['Asc']['c_oAscRestrictionType'] = window['Asc'].c_oAscRestrictionType = c_oAscRestrictionType; prot['None'] = c_oAscRestrictionType.None; prot['OnlyForms'] = c_oAscRestrictionType.OnlyForms; prot['OnlyComments'] = c_oAscRestrictionType.OnlyComments; prot['OnlySignatures'] = c_oAscRestrictionType.OnlySignatures; prot['View'] = c_oAscRestrictionType.View; window['AscCommon'] = window['AscCommon'] || {}; window["AscCommon"].g_cCharDelimiter = g_cCharDelimiter; window["AscCommon"].g_cGeneralFormat = g_cGeneralFormat; window["AscCommon"].bDate1904 = false; window["AscCommon"].c_oAscAdvancedOptionsAction = c_oAscAdvancedOptionsAction; window["AscCommon"].DownloadType = DownloadType; window["AscCommon"].CellValueType = CellValueType; window["AscCommon"].c_oAscCellAnchorType = c_oAscCellAnchorType; window["AscCommon"].c_oAscChartDefines = c_oAscChartDefines; window["AscCommon"].c_oAscStyleImage = c_oAscStyleImage; window["AscCommon"].c_oAscLineDrawingRule = c_oAscLineDrawingRule; window["AscCommon"].vertalign_Baseline = vertalign_Baseline; window["AscCommon"].vertalign_SuperScript = vertalign_SuperScript; window["AscCommon"].vertalign_SubScript = vertalign_SubScript; window["AscCommon"].hdrftr_Header = hdrftr_Header; window["AscCommon"].hdrftr_Footer = hdrftr_Footer; window["AscCommon"].c_oAscSizeRelFromH = c_oAscSizeRelFromH; window["AscCommon"].c_oAscSizeRelFromV = c_oAscSizeRelFromV; window["AscCommon"].c_oAscWrapStyle = c_oAscWrapStyle; window["AscCommon"].c_oAscBorderWidth = c_oAscBorderWidth; window["AscCommon"].c_oAscBorderType = c_oAscBorderType; window["AscCommon"].c_oAscLockTypes = c_oAscLockTypes; window["AscCommon"].c_oAscFormatPainterState = c_oAscFormatPainterState; window["AscCommon"].c_oAscSaveTypes = c_oAscSaveTypes; window["AscCommon"].c_oAscChartType = c_oAscChartType; window["AscCommon"].c_oAscChartSubType = c_oAscChartSubType; window["AscCommon"].c_oAscCsvDelimiter = c_oAscCsvDelimiter; window["AscCommon"].c_oAscUrlType = c_oAscUrlType; window["AscCommon"].c_oAscMouseMoveDataTypes = c_oAscMouseMoveDataTypes; window["AscCommon"].c_oAscPrintDefaultSettings = c_oAscPrintDefaultSettings; window["AscCommon"].c_oZoomType = c_oZoomType; window["AscCommon"].c_oNotifyType = c_oNotifyType; window["AscCommon"].c_oNotifyParentType = c_oNotifyParentType; window["AscCommon"].c_oAscEncodings = c_oAscEncodings; window["AscCommon"].c_oAscEncodingsMap = c_oAscEncodingsMap; window["AscCommon"].c_oAscCodePageNone = c_oAscCodePageNone; window["AscCommon"].c_oAscCodePageUtf7 = c_oAscCodePageUtf7; window["AscCommon"].c_oAscCodePageUtf8 = c_oAscCodePageUtf8; window["AscCommon"].c_oAscCodePageUtf16 = c_oAscCodePageUtf16; window["AscCommon"].c_oAscCodePageUtf16BE = c_oAscCodePageUtf16BE; window["AscCommon"].c_oAscCodePageUtf32 = c_oAscCodePageUtf32; window["AscCommon"].c_oAscCodePageUtf32BE = c_oAscCodePageUtf32BE; window["AscCommon"].c_oAscMaxFormulaLength = c_oAscMaxFormulaLength; window["AscCommon"].locktype_None = locktype_None; window["AscCommon"].locktype_Mine = locktype_Mine; window["AscCommon"].locktype_Other = locktype_Other; window["AscCommon"].locktype_Other2 = locktype_Other2; window["AscCommon"].locktype_Other3 = locktype_Other3; window["AscCommon"].changestype_None = changestype_None; window["AscCommon"].changestype_Paragraph_Content = changestype_Paragraph_Content; window["AscCommon"].changestype_Paragraph_Properties = changestype_Paragraph_Properties; window["AscCommon"].changestype_Paragraph_AddText = changestype_Paragraph_AddText; window["AscCommon"].changestype_Document_Content = changestype_Document_Content; window["AscCommon"].changestype_Document_Content_Add = changestype_Document_Content_Add; window["AscCommon"].changestype_Document_SectPr = changestype_Document_SectPr; window["AscCommon"].changestype_Document_Styles = changestype_Document_Styles; window["AscCommon"].changestype_Table_Properties = changestype_Table_Properties; window["AscCommon"].changestype_Table_RemoveCells = changestype_Table_RemoveCells; window["AscCommon"].changestype_Image_Properties = changestype_Image_Properties; window["AscCommon"].changestype_ContentControl_Remove = changestype_ContentControl_Remove; window["AscCommon"].changestype_ContentControl_Properties = changestype_ContentControl_Properties; window["AscCommon"].changestype_ContentControl_Add = changestype_ContentControl_Add; window["AscCommon"].changestype_HdrFtr = changestype_HdrFtr; window["AscCommon"].changestype_Remove = changestype_Remove; window["AscCommon"].changestype_Delete = changestype_Delete; window["AscCommon"].changestype_Drawing_Props = changestype_Drawing_Props; window["AscCommon"].changestype_ColorScheme = changestype_ColorScheme; window["AscCommon"].changestype_Text_Props = changestype_Text_Props; window["AscCommon"].changestype_RemoveSlide = changestype_RemoveSlide; window["AscCommon"].changestype_Theme = changestype_Theme; window["AscCommon"].changestype_SlideSize = changestype_SlideSize; window["AscCommon"].changestype_SlideBg = changestype_SlideBg; window["AscCommon"].changestype_SlideTiming = changestype_SlideTiming; window["AscCommon"].changestype_MoveComment = changestype_MoveComment; window["AscCommon"].changestype_AddComment = changestype_AddComment; window["AscCommon"].changestype_Layout = changestype_Layout; window["AscCommon"].changestype_AddShape = changestype_AddShape; window["AscCommon"].changestype_AddShapes = changestype_AddShapes; window["AscCommon"].changestype_PresDefaultLang = changestype_PresDefaultLang; window["AscCommon"].changestype_SlideHide = changestype_SlideHide; window["AscCommon"].changestype_2_InlineObjectMove = changestype_2_InlineObjectMove; window["AscCommon"].changestype_2_HdrFtr = changestype_2_HdrFtr; window["AscCommon"].changestype_2_Comment = changestype_2_Comment; window["AscCommon"].changestype_2_Element_and_Type = changestype_2_Element_and_Type; window["AscCommon"].changestype_2_ElementsArray_and_Type = changestype_2_ElementsArray_and_Type; window["AscCommon"].changestype_2_AdditionalTypes = changestype_2_AdditionalTypes; window["AscCommon"].changestype_2_Element_and_Type_Array = changestype_2_Element_and_Type_Array; window["AscCommon"].contentchanges_Add = contentchanges_Add; window["AscCommon"].contentchanges_Remove = contentchanges_Remove; window["AscCommon"].PUNCTUATION_FLAG_BASE = PUNCTUATION_FLAG_BASE; window["AscCommon"].PUNCTUATION_FLAG_CANT_BE_AT_BEGIN = PUNCTUATION_FLAG_CANT_BE_AT_BEGIN; window["AscCommon"].PUNCTUATION_FLAG_CANT_BE_AT_END = PUNCTUATION_FLAG_CANT_BE_AT_END; window["AscCommon"].PUNCTUATION_FLAG_EAST_ASIAN = PUNCTUATION_FLAG_EAST_ASIAN; window["AscCommon"].PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E = PUNCTUATION_FLAG_CANT_BE_AT_BEGIN_E; window["AscCommon"].PUNCTUATION_FLAG_CANT_BE_AT_END_E = PUNCTUATION_FLAG_CANT_BE_AT_END_E; window["AscCommon"].g_aPunctuation = g_aPunctuation; window["AscCommon"].offlineMode = offlineMode; window["AscCommon"].chartMode = chartMode; window['AscCommon']['align_Right'] = window['AscCommon'].align_Right = align_Right; window['AscCommon']['align_Left'] = window['AscCommon'].align_Left = align_Left; window['AscCommon']['align_Center'] = window['AscCommon'].align_Center = align_Center; window['AscCommon']['align_Justify'] = window['AscCommon'].align_Justify = align_Justify; window['Asc']['c_oSpecialPasteProps'] = window['Asc'].c_oSpecialPasteProps = c_oSpecialPasteProps; prot = c_oSpecialPasteProps; prot['paste'] = prot.paste; prot['pasteOnlyFormula'] = prot.pasteOnlyFormula; prot['formulaNumberFormat'] = prot.formulaNumberFormat; prot['formulaAllFormatting'] = prot.formulaAllFormatting; prot['formulaWithoutBorders'] = prot.formulaWithoutBorders; prot['formulaColumnWidth'] = prot.formulaColumnWidth; prot['mergeConditionalFormating'] = prot.mergeConditionalFormating; prot['pasteOnlyValues'] = prot.pasteOnlyValues; prot['valueNumberFormat'] = prot.valueNumberFormat; prot['valueAllFormating'] = prot.valueAllFormating; prot['pasteOnlyFormating'] = prot.pasteOnlyFormating; prot['transpose'] = prot.transpose; prot['link'] = prot.link; prot['picture'] = prot.picture; prot['linkedPicture'] = prot.linkedPicture; prot['sourceformatting'] = prot.sourceformatting; prot['destinationFormatting'] = prot.destinationFormatting; prot['mergeFormatting'] = prot.mergeFormatting; prot['uniteList'] = prot.uniteList; prot['doNotUniteList'] = prot.doNotUniteList; prot['keepTextOnly'] = prot.keepTextOnly; prot['insertAsNestedTable'] = prot.insertAsNestedTable; prot['overwriteCells'] = prot.overwriteCells; window['Asc']['c_oAscNumberingFormat'] = window['Asc'].c_oAscNumberingFormat = c_oAscNumberingFormat; prot = c_oAscNumberingFormat; prot['None'] = c_oAscNumberingFormat.None; prot['Bullet'] = c_oAscNumberingFormat.Bullet; prot['Decimal'] = c_oAscNumberingFormat.Decimal; prot['LowerRoman'] = c_oAscNumberingFormat.LowerRoman; prot['UpperRoman'] = c_oAscNumberingFormat.UpperRoman; prot['LowerLetter'] = c_oAscNumberingFormat.LowerLetter; prot['UpperLetter'] = c_oAscNumberingFormat.UpperLetter; prot['DecimalZero'] = c_oAscNumberingFormat.DecimalZero; window['Asc']['c_oAscNumberingSuff'] = window['Asc'].c_oAscNumberingSuff = c_oAscNumberingSuff; prot = c_oAscNumberingSuff; prot['Tab'] = c_oAscNumberingSuff.Tab; prot['Space'] = c_oAscNumberingSuff.Space; prot['None'] = c_oAscNumberingSuff.None; window['Asc']['c_oAscNumberingLvlTextType'] = window['Asc'].c_oAscNumberingLvlTextType = c_oAscNumberingLvlTextType; prot = c_oAscNumberingLvlTextType; prot['Text'] = c_oAscNumberingLvlTextType.Text; prot['Num'] = c_oAscNumberingLvlTextType.Num; prot = window['Asc']['c_oAscSdtAppearance'] = window['Asc'].c_oAscSdtAppearance = c_oAscSdtAppearance; prot['Frame'] = c_oAscSdtAppearance.Frame; prot['Hidden'] = c_oAscSdtAppearance.Hidden; })(window); /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; (/** * @param {Window} window * @param {undefined} undefined */ function(window, undefined) { /** * Класс user для совместного редактирования/просмотра документа * ----------------------------------------------------------------------------- * * @constructor * @memberOf Asc */ function asc_CUser(val) { this.id = null; // уникальный id - пользователя this.idOriginal = null; // уникальный id - пользователя this.userName = null; // имя пользователя this.state = undefined; // состояние (true - подключен, false - отключился) this.indexUser = -1; // Индекс пользователя (фактически равно числу заходов в документ на сервере) this.color = null; // цвет пользователя this.view = false; // просмотр(true), редактор(false) this._setUser(val); return this; } asc_CUser.prototype._setUser = function(val) { if (val) { this.id = val['id']; this.idOriginal = val['idOriginal']; this.userName = val['username']; this.indexUser = val['indexUser']; this.color = window['AscCommon'].getUserColorById(this.idOriginal, this.userName, false, true); this.view = val['view']; } }; asc_CUser.prototype.asc_getId = function() { return this.id; }; asc_CUser.prototype.asc_getIdOriginal = function() { return this.idOriginal; }; asc_CUser.prototype.asc_getUserName = function() { return this.userName; }; asc_CUser.prototype.asc_getFirstName = function() { return this.firstName; }; asc_CUser.prototype.asc_getLastName = function() { return this.lastName; }; asc_CUser.prototype.asc_getState = function() { return this.state; }; asc_CUser.prototype.asc_getColor = function() { return '#' + ('000000' + this.color.toString(16)).substr(-6); }; asc_CUser.prototype.asc_getView = function() { return this.view; }; asc_CUser.prototype.setId = function(val) { this.id = val; }; asc_CUser.prototype.setUserName = function(val) { this.userName = val; }; asc_CUser.prototype.setFirstName = function(val) { this.firstName = val; }; asc_CUser.prototype.setLastName = function(val) { this.lastName = val; }; asc_CUser.prototype.setState = function(val) { this.state = val; }; var ConnectionState = { Reconnect: -1, // reconnect state None: 0, // not initialized WaitAuth: 1, // waiting session id Authorized: 2, // authorized ClosedCoAuth: 3, // closed coauthoring ClosedAll: 4, // closed all SaveChanges: 10, // save AskSaveChanges: 11 // ask save }; var c_oEditorId = { Word:0, Spreadsheet:1, Presentation:2 }; var c_oCloseCode = { serverShutdown: 4001, sessionIdle: 4002, sessionAbsolute: 4003, accessDeny: 4004, jwtExpired: 4005, jwtError: 4006, drop: 4007 }; var c_oAscServerCommandErrors = { NoError: 0, DocumentIdError: 1, ParseError: 2, UnknownError: 3, NotModified: 4, UnknownCommand: 5, Token: 6, TokenExpire: 7 }; var c_oAscForceSaveTypes = { Command: 0, Button: 1, Timeout: 2 }; /* * Export * ----------------------------------------------------------------------------- */ var prot; window['AscCommon'] = window['AscCommon'] || {}; window["AscCommon"].asc_CUser = asc_CUser; prot = asc_CUser.prototype; prot["asc_getId"] = prot.asc_getId; prot["asc_getIdOriginal"] = prot.asc_getIdOriginal; prot["asc_getUserName"] = prot.asc_getUserName; prot["asc_getState"] = prot.asc_getState; prot["asc_getColor"] = prot.asc_getColor; prot["asc_getView"] = prot.asc_getView; window["AscCommon"].ConnectionState = ConnectionState; window["AscCommon"].c_oEditorId = c_oEditorId; window["AscCommon"].c_oCloseCode = c_oCloseCode; window["AscCommon"].c_oAscServerCommandErrors = c_oAscServerCommandErrors; window["AscCommon"].c_oAscForceSaveTypes = c_oAscForceSaveTypes; })(window); /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; (function(window, undefined) { 'use strict'; var Asc = window['Asc']; var AscCommon = window['AscCommon']; var ConnectionState = AscCommon.ConnectionState; var c_oEditorId = AscCommon.c_oEditorId; var c_oCloseCode = AscCommon.c_oCloseCode; var c_oAscServerCommandErrors = AscCommon.c_oAscServerCommandErrors; var c_oAscForceSaveTypes = AscCommon.c_oAscForceSaveTypes; // Класс надстройка, для online и offline работы function CDocsCoApi(options) { this._CoAuthoringApi = new DocsCoApi(); this._onlineWork = false; if (options) { this.onAuthParticipantsChanged = options.onAuthParticipantsChanged; this.onParticipantsChanged = options.onParticipantsChanged; this.onMessage = options.onMessage; this.onServerVersion = options.onServerVersion; this.onCursor = options.onCursor; this.onMeta = options.onMeta; this.onSession = options.onSession; this.onExpiredToken = options.onExpiredToken; this.onForceSave = options.onForceSave; this.onHasForgotten = options.onHasForgotten; this.onLocksAcquired = options.onLocksAcquired; this.onLocksReleased = options.onLocksReleased; this.onLocksReleasedEnd = options.onLocksReleasedEnd; // ToDo переделать на массив release locks this.onDisconnect = options.onDisconnect; this.onWarning = options.onWarning; this.onFirstLoadChangesEnd = options.onFirstLoadChangesEnd; this.onConnectionStateChanged = options.onConnectionStateChanged; this.onSetIndexUser = options.onSetIndexUser; this.onSpellCheckInit = options.onSpellCheckInit; this.onSaveChanges = options.onSaveChanges; this.onStartCoAuthoring = options.onStartCoAuthoring; this.onEndCoAuthoring = options.onEndCoAuthoring; this.onUnSaveLock = options.onUnSaveLock; this.onRecalcLocks = options.onRecalcLocks; this.onDocumentOpen = options.onDocumentOpen; this.onFirstConnect = options.onFirstConnect; this.onLicense = options.onLicense; this.onLicenseChanged = options.onLicenseChanged; } } CDocsCoApi.prototype.init = function(user, docid, documentCallbackUrl, token, editorType, documentFormatSave, docInfo) { if (this._CoAuthoringApi && this._CoAuthoringApi.isRightURL()) { var t = this; this._CoAuthoringApi.onAuthParticipantsChanged = function(e, id) { t.callback_OnAuthParticipantsChanged(e, id); }; this._CoAuthoringApi.onParticipantsChanged = function(e) { t.callback_OnParticipantsChanged(e); }; this._CoAuthoringApi.onMessage = function(e, clear) { t.callback_OnMessage(e, clear); }; this._CoAuthoringApi.onServerVersion = function(e) { t.callback_OnServerVersion(e); }; this._CoAuthoringApi.onCursor = function(e) { t.callback_OnCursor(e); }; this._CoAuthoringApi.onMeta = function(e) { t.callback_OnMeta(e); }; this._CoAuthoringApi.onSession = function(e) { t.callback_OnSession(e); }; this._CoAuthoringApi.onExpiredToken = function(e) { t.callback_OnExpiredToken(e); }; this._CoAuthoringApi.onHasForgotten = function(e) { t.callback_OnHasForgotten(e); }; this._CoAuthoringApi.onForceSave = function(e) { t.callback_OnForceSave(e); }; this._CoAuthoringApi.onLocksAcquired = function(e) { t.callback_OnLocksAcquired(e); }; this._CoAuthoringApi.onLocksReleased = function(e, bChanges) { t.callback_OnLocksReleased(e, bChanges); }; this._CoAuthoringApi.onLocksReleasedEnd = function() { t.callback_OnLocksReleasedEnd(); }; this._CoAuthoringApi.onDisconnect = function(e, error) { t.callback_OnDisconnect(e, error); }; this._CoAuthoringApi.onWarning = function(e) { t.callback_OnWarning(e); }; this._CoAuthoringApi.onFirstLoadChangesEnd = function() { t.callback_OnFirstLoadChangesEnd(); }; this._CoAuthoringApi.onConnectionStateChanged = function(e) { t.callback_OnConnectionStateChanged(e); }; this._CoAuthoringApi.onSetIndexUser = function(e) { t.callback_OnSetIndexUser(e); }; this._CoAuthoringApi.onSpellCheckInit = function(e) { t.callback_OnSpellCheckInit(e); }; this._CoAuthoringApi.onSaveChanges = function(e, userId, bFirstLoad) { t.callback_OnSaveChanges(e, userId, bFirstLoad); }; // Callback есть пользователей больше 1 this._CoAuthoringApi.onStartCoAuthoring = function(e) { t.callback_OnStartCoAuthoring(e); }; this._CoAuthoringApi.onEndCoAuthoring = function(e) { t.callback_OnEndCoAuthoring(e); }; this._CoAuthoringApi.onUnSaveLock = function() { t.callback_OnUnSaveLock(); }; this._CoAuthoringApi.onRecalcLocks = function(e) { t.callback_OnRecalcLocks(e); }; this._CoAuthoringApi.onDocumentOpen = function(data) { t.callback_OnDocumentOpen(data); }; this._CoAuthoringApi.onFirstConnect = function() { t.callback_OnFirstConnect(); }; this._CoAuthoringApi.onLicense = function(res) { t.callback_OnLicense(res); }; this._CoAuthoringApi.onLicenseChanged = function(res) { t.callback_OnLicenseChanged(res); }; this._CoAuthoringApi.init(user, docid, documentCallbackUrl, token, editorType, documentFormatSave, docInfo); this._onlineWork = true; } else { // Фиктивные вызовы this.onFirstConnect(); this.onLicense(null); } }; CDocsCoApi.prototype.getDocId = function() { if (this._CoAuthoringApi) { return this._CoAuthoringApi.getDocId() } return undefined; }; CDocsCoApi.prototype.setDocId = function(docId) { if (this._CoAuthoringApi) { return this._CoAuthoringApi.setDocId(docId) } }; CDocsCoApi.prototype.auth = function(isViewer, opt_openCmd, opt_isIdle) { if (this._CoAuthoringApi && this._onlineWork) { this._CoAuthoringApi.auth(isViewer, opt_openCmd, opt_isIdle); } else { // Фиктивные вызовы this.callback_OnSpellCheckInit(''); this.callback_OnSetIndexUser('123'); this.onFirstLoadChangesEnd(); } }; CDocsCoApi.prototype.set_url = function(url) { if (this._CoAuthoringApi) { this._CoAuthoringApi.set_url(url); } }; CDocsCoApi.prototype.get_onlineWork = function() { return this._onlineWork; }; CDocsCoApi.prototype.get_state = function() { if (this._CoAuthoringApi) { return this._CoAuthoringApi.get_state(); } return 0; }; CDocsCoApi.prototype.openDocument = function(data) { if (this._CoAuthoringApi && this._onlineWork) { this._CoAuthoringApi.openDocument(data); } }; CDocsCoApi.prototype.sendRawData = function(data) { if (this._CoAuthoringApi && this._onlineWork) { this._CoAuthoringApi.sendRawData(data); } }; CDocsCoApi.prototype.getMessages = function() { if (this._CoAuthoringApi && this._onlineWork) { this._CoAuthoringApi.getMessages(); } }; CDocsCoApi.prototype.sendMessage = function(message) { if (this._CoAuthoringApi && this._onlineWork) { this._CoAuthoringApi.sendMessage(message); } }; CDocsCoApi.prototype.sendCursor = function(cursor) { if (this._CoAuthoringApi && this._onlineWork) { this._CoAuthoringApi.sendCursor(cursor); } }; CDocsCoApi.prototype.sendChangesError = function(data) { if (this._CoAuthoringApi && this._onlineWork) { this._CoAuthoringApi.sendChangesError(data); } }; CDocsCoApi.prototype.askLock = function(arrayBlockId, callback) { if (this._CoAuthoringApi && this._onlineWork) { this._CoAuthoringApi.askLock(arrayBlockId, callback); } else { var t = this; window.setTimeout(function() { if (callback) { var lengthArray = (arrayBlockId) ? arrayBlockId.length : 0; if (0 < lengthArray) { callback({"lock": arrayBlockId[0]}); // Фиктивные вызовы for (var i = 0; i < lengthArray; ++i) { t.callback_OnLocksAcquired({"state": 2, "block": arrayBlockId[i]}); } } } }, 1); } }; CDocsCoApi.prototype.askSaveChanges = function(callback) { if (this._CoAuthoringApi && this._onlineWork) { this._CoAuthoringApi.askSaveChanges(callback); } else { window.setTimeout(function() { if (callback) { // Фиктивные вызовы callback({"saveLock": false}); } }, 100); } }; CDocsCoApi.prototype.unSaveLock = function() { if (this._CoAuthoringApi && this._onlineWork) { this._CoAuthoringApi.unSaveLock(); } else { var t = this; window.setTimeout(function() { // Фиктивные вызовы t.callback_OnUnSaveLock(); }, 100); } }; CDocsCoApi.prototype.saveChanges = function(arrayChanges, deleteIndex, excelAdditionalInfo, canUnlockDocument, canReleaseLocks) { if (this._CoAuthoringApi && this._onlineWork) { this._CoAuthoringApi.canUnlockDocument = canUnlockDocument; this._CoAuthoringApi.canReleaseLocks = canReleaseLocks; this._CoAuthoringApi.saveChanges(arrayChanges, null, deleteIndex, excelAdditionalInfo); } }; CDocsCoApi.prototype.unLockDocument = function(isSave, canUnlockDocument, deleteIndex, canReleaseLocks) { if (this._CoAuthoringApi && this._onlineWork) { this._CoAuthoringApi.canUnlockDocument = canUnlockDocument; this._CoAuthoringApi.canReleaseLocks = canReleaseLocks; this._CoAuthoringApi.unLockDocument(isSave, deleteIndex); } }; CDocsCoApi.prototype.getUsers = function() { if (this._CoAuthoringApi && this._onlineWork) { this._CoAuthoringApi.getUsers(); } }; CDocsCoApi.prototype.getUserConnectionId = function() { if (this._CoAuthoringApi && this._onlineWork) { return this._CoAuthoringApi.getUserConnectionId(); } return null; }; CDocsCoApi.prototype.get_indexUser = function() { if (this._CoAuthoringApi && this._onlineWork) { return this._CoAuthoringApi.get_indexUser(); } return null; }; CDocsCoApi.prototype.get_isAuth = function() { if (this._CoAuthoringApi && this._onlineWork) { return this._CoAuthoringApi.get_isAuth(); } return null; }; CDocsCoApi.prototype.get_jwt = function() { if (this._CoAuthoringApi && this._onlineWork) { return this._CoAuthoringApi.get_jwt(); } return null; }; CDocsCoApi.prototype.releaseLocks = function(blockId) { if (this._CoAuthoringApi && this._onlineWork) { this._CoAuthoringApi.releaseLocks(blockId); } }; CDocsCoApi.prototype.disconnect = function(opt_code, opt_reason) { if (this._CoAuthoringApi && this._onlineWork) { this._CoAuthoringApi.disconnect(opt_code, opt_reason); } }; CDocsCoApi.prototype.extendSession = function(idleTime) { if (this._CoAuthoringApi && this._onlineWork) { this._CoAuthoringApi.extendSession(idleTime); } }; CDocsCoApi.prototype.versionHistory = function(data) { if (this._CoAuthoringApi && this._onlineWork) { this._CoAuthoringApi.versionHistory(data); } }; CDocsCoApi.prototype.forceSave = function() { if (this._CoAuthoringApi && this._onlineWork) { return this._CoAuthoringApi.forceSave(); } return false; }; CDocsCoApi.prototype.callback_OnAuthParticipantsChanged = function(e, id) { if (this.onAuthParticipantsChanged) { this.onAuthParticipantsChanged(e, id); } }; CDocsCoApi.prototype.callback_OnParticipantsChanged = function(e) { if (this.onParticipantsChanged) { this.onParticipantsChanged(e); } }; CDocsCoApi.prototype.callback_OnMessage = function(e, clear) { if (this.onMessage) { this.onMessage(e, clear); } }; CDocsCoApi.prototype.callback_OnServerVersion = function(e) { if (this.onServerVersion) { this.onServerVersion(e); } }; CDocsCoApi.prototype.callback_OnCursor = function(e) { if (this.onCursor) { this.onCursor(e); } }; CDocsCoApi.prototype.callback_OnMeta = function(e) { if (this.onMeta) { this.onMeta(e); } }; CDocsCoApi.prototype.callback_OnSession = function(e) { if (this.onSession) { this.onSession(e); } }; CDocsCoApi.prototype.callback_OnExpiredToken = function(e) { if (this.onExpiredToken) { this.onExpiredToken(e); } }; CDocsCoApi.prototype.callback_OnForceSave = function(e) { if (this.onForceSave) { this.onForceSave(e); } }; CDocsCoApi.prototype.callback_OnHasForgotten = function(e) { if (this.onHasForgotten) { this.onHasForgotten(e); } }; CDocsCoApi.prototype.callback_OnLocksAcquired = function(e) { if (this.onLocksAcquired) { this.onLocksAcquired(e); } }; CDocsCoApi.prototype.callback_OnLocksReleased = function(e, bChanges) { if (this.onLocksReleased) { this.onLocksReleased(e, bChanges); } }; CDocsCoApi.prototype.callback_OnLocksReleasedEnd = function() { if (this.onLocksReleasedEnd) { this.onLocksReleasedEnd(); } }; /** * Event об отсоединении от сервера * @param {jQuery} e event об отсоединении с причиной * @param {code: Asc.c_oAscError.ID, level: Asc.c_oAscError.Level} error */ CDocsCoApi.prototype.callback_OnDisconnect = function(e, error) { if (this.onDisconnect) { this.onDisconnect(e, error); } }; CDocsCoApi.prototype.callback_OnWarning = function(e) { if (this.onWarning) { this.onWarning(e); } }; CDocsCoApi.prototype.callback_OnFirstLoadChangesEnd = function() { if (this.onFirstLoadChangesEnd) { this.onFirstLoadChangesEnd(); } }; CDocsCoApi.prototype.callback_OnConnectionStateChanged = function(e) { if (this.onConnectionStateChanged) { this.onConnectionStateChanged(e); } }; CDocsCoApi.prototype.callback_OnSetIndexUser = function(e) { if (this.onSetIndexUser) { this.onSetIndexUser(e); } }; CDocsCoApi.prototype.callback_OnSpellCheckInit = function(e) { if (this.onSpellCheckInit) { this.onSpellCheckInit(e); } }; CDocsCoApi.prototype.callback_OnSaveChanges = function(e, userId, bFirstLoad) { if (this.onSaveChanges) { this.onSaveChanges(e, userId, bFirstLoad); } }; CDocsCoApi.prototype.callback_OnStartCoAuthoring = function(e) { if (this.onStartCoAuthoring) { this.onStartCoAuthoring(e); } }; CDocsCoApi.prototype.callback_OnEndCoAuthoring = function(e) { if (this.onEndCoAuthoring) { this.onEndCoAuthoring(e); } }; CDocsCoApi.prototype.callback_OnUnSaveLock = function() { if (this.onUnSaveLock) { this.onUnSaveLock(); } }; CDocsCoApi.prototype.callback_OnRecalcLocks = function(e) { if (this.onRecalcLocks) { this.onRecalcLocks(e); } }; CDocsCoApi.prototype.callback_OnDocumentOpen = function(e) { if (this.onDocumentOpen) { this.onDocumentOpen(e); } }; CDocsCoApi.prototype.callback_OnFirstConnect = function() { if (this.onFirstConnect) { this.onFirstConnect(); } }; CDocsCoApi.prototype.callback_OnLicense = function(res) { if (this.onLicense) { this.onLicense(res); } }; CDocsCoApi.prototype.callback_OnLicenseChanged = function(res) { if (this.onLicenseChanged) { this.onLicenseChanged(res); } }; function LockBufferElement(arrayBlockId, callback) { this._arrayBlockId = arrayBlockId ? arrayBlockId.slice() : null; this._callback = callback; } function DocsCoApi(options) { if (options) { this.onAuthParticipantsChanged = options.onAuthParticipantsChanged; this.onParticipantsChanged = options.onParticipantsChanged; this.onMessage = options.onMessage; this.onServerVersion = options.onServerVersion; this.onCursor = options.onCursor; this.onMeta = options.onMeta; this.onSession = options.onSession; this.onExpiredToken = options.onExpiredToken; this.onForceSave = options.onForceSave; this.onHasForgotten = options.onHasForgotten; this.onLocksAcquired = options.onLocksAcquired; this.onLocksReleased = options.onLocksReleased; this.onLocksReleasedEnd = options.onLocksReleasedEnd; // ToDo переделать на массив release locks this.onRelockFailed = options.onRelockFailed; this.onDisconnect = options.onDisconnect; this.onWarning = options.onWarning; this.onSetIndexUser = options.onSetIndexUser; this.onSpellCheckInit = options.onSpellCheckInit; this.onSaveChanges = options.onSaveChanges; this.onFirstLoadChangesEnd = options.onFirstLoadChangesEnd; this.onConnectionStateChanged = options.onConnectionStateChanged; this.onUnSaveLock = options.onUnSaveLock; this.onRecalcLocks = options.onRecalcLocks; this.onDocumentOpen = options.onDocumentOpen; this.onFirstConnect = options.onFirstConnect; this.onLicense = options.onLicense; this.onLicenseChanged = options.onLicenseChanged; } this._state = ConnectionState.None; // Online-пользователи в документе this._participants = {}; this._participantsTimestamp; this._countEditUsers = 0; this._countUsers = 0; this.isLicenseInit = false; this._locks = {}; this._msgBuffer = []; this._msgInputBuffer = []; this._lockCallbacks = {}; this._lockCallbacksErrorTimerId = {}; this._saveCallback = []; this.saveLockCallbackErrorTimeOutId = null; this.saveCallbackErrorTimeOutId = null; this.unSaveLockCallbackErrorTimeOutId = null; this._id = null; this._sessionTimeConnect = null; this._allChangesSaved = null; this._lastForceSaveButtonTime = null; this._lastForceSaveTimeoutTime = null; this._indexUser = -1; // Если пользователей больше 1, то совместно редактируем this.isCoAuthoring = false; // Мы сами отключились от совместного редактирования this.isCloseCoAuthoring = false; // Максимальное число изменений, посылаемое на сервер (не может быть нечетным, т.к. пересчет обоих индексов должен быть) this.maxCountSaveChanges = 20000; // Текущий индекс для колличества изменений this.currentIndex = 0; // Индекс, с которого мы начинаем сохранять изменения this.deleteIndex = 0; // Массив изменений this.arrayChanges = null; // Время последнего сохранения (для разрыва соединения) this.lastOtherSaveTime = -1; this.lastOwnSaveTime = -1; // Локальный индекс изменений this.changesIndex = 0; // Дополнительная информация для Excel this.excelAdditionalInfo = null; // Unlock document this.canUnlockDocument = false; // Release locks this.canReleaseLocks = false; this._url = ""; this.reconnectTimeout = null; this.attemptCount = 0; this.maxAttemptCount = 50; this.reconnectInterval = 2000; this.errorTimeOut = 10000; this.errorTimeOutSave = 60000; // ToDo стоит переделать это, т.к. могут дублироваться изменения... this._docid = null; this._documentCallbackUrl = null; this._token = null; this._user = null; this._userId = "Anonymous"; this.ownedLockBlocks = []; this.sockjs_url = null; this.sockjs = null; this.editorType = -1; this._isExcel = false; this._isPresentation = false; this._isAuth = false; this._documentFormatSave = 0; this.mode = undefined; this.permissions = undefined; this.lang = undefined; this.jwtOpen = undefined; this.jwtSession = undefined; this.encrypted = undefined; this._isViewer = false; this._isReSaveAfterAuth = false; // Флаг для сохранения после повторной авторизации (для разрыва соединения во время сохранения) this._lockBuffer = []; this._authChanges = []; this._authOtherChanges = []; } DocsCoApi.prototype.isRightURL = function() { return ("" != this._url); }; DocsCoApi.prototype.set_url = function(url) { this._url = url; }; DocsCoApi.prototype.get_state = function() { return this._state; }; DocsCoApi.prototype.check_state = function () { return ConnectionState.Authorized === this._state || ConnectionState.SaveChanges === this._state || ConnectionState.AskSaveChanges === this._state; }; DocsCoApi.prototype.get_indexUser = function() { return this._indexUser; }; DocsCoApi.prototype.get_isAuth = function() { return this._isAuth; }; DocsCoApi.prototype.get_jwt = function() { return this.jwtSession || this.jwtOpen; }; DocsCoApi.prototype.getSessionId = function() { return this._id; }; DocsCoApi.prototype.getUserConnectionId = function() { return this._userId; }; DocsCoApi.prototype.getLocks = function() { return this._locks; }; DocsCoApi.prototype._sendBufferedLocks = function() { var elem; for (var i = 0, length = this._lockBuffer.length; i < length; ++i) { elem = this._lockBuffer[i]; this.askLock(elem._arrayBlockId, elem._callback); } this._lockBuffer = []; }; DocsCoApi.prototype.askLock = function(arrayBlockId, callback) { if (ConnectionState.SaveChanges === this._state || ConnectionState.AskSaveChanges === this._state) { // Мы в режиме сохранения. Lock-и запросим после окончания. this._lockBuffer.push(new LockBufferElement(arrayBlockId, callback)); return; } // ask all elements in array var t = this; var i = 0; var lengthArray = (arrayBlockId) ? arrayBlockId.length : 0; var isLock = false; var idLockInArray = null; for (; i < lengthArray; ++i) { idLockInArray = (this._isExcel || this._isPresentation) ? arrayBlockId[i]['guid'] : arrayBlockId[i]; if (this._locks[idLockInArray] && 0 !== this._locks[idLockInArray].state) { isLock = true; break; } } if (0 === lengthArray) { isLock = true; } idLockInArray = (this._isExcel || this._isPresentation) ? arrayBlockId[0]['guid'] : arrayBlockId[0]; if (!isLock) { if (this._lockCallbacksErrorTimerId.hasOwnProperty(idLockInArray)) { // Два раза для одного id нельзя запрашивать lock, не дождавшись ответа return; } //Ask this._locks[idLockInArray] = {'state': 1};//1-asked for block if (callback) { this._lockCallbacks[idLockInArray] = callback; //Set reconnectTimeout this._lockCallbacksErrorTimerId[idLockInArray] = window.setTimeout(function() { if (t._lockCallbacks.hasOwnProperty(idLockInArray)) { //Not signaled already t._lockCallbacks[idLockInArray]({error: 'Timed out'}); delete t._lockCallbacks[idLockInArray]; delete t._lockCallbacksErrorTimerId[idLockInArray]; } }, this.errorTimeOut); } this._send({"type": 'getLock', 'block': arrayBlockId}); } else { // Вернем ошибку, т.к. залочены элементы window.setTimeout(function() { if (callback) { callback({error: idLockInArray + '-lock'}); } }, 100); } }; DocsCoApi.prototype.askSaveChanges = function(callback) { if (this._saveCallback[this._saveCallback.length - 1]) { // Мы еще не отработали старый callback и ждем ответа return; } // Очищаем предыдущий таймер if (null !== this.saveLockCallbackErrorTimeOutId) { clearTimeout(this.saveLockCallbackErrorTimeOutId); } // Проверим состояние, если мы не подсоединились, то сразу отправим ошибку if (ConnectionState.Authorized !== this._state) { this.saveLockCallbackErrorTimeOutId = window.setTimeout(function() { if (callback) { // Фиктивные вызовы callback({error: "No connection"}); } }, 100); return; } if (callback) { var t = this; var indexCallback = this._saveCallback.length; this._saveCallback[indexCallback] = callback; //Set reconnectTimeout this.saveLockCallbackErrorTimeOutId = window.setTimeout(function() { t.saveLockCallbackErrorTimeOutId = null; var oTmpCallback = t._saveCallback[indexCallback]; if (oTmpCallback) { t._saveCallback[indexCallback] = null; //Not signaled already oTmpCallback({error: "Timed out"}); t._state = ConnectionState.Authorized; // Делаем отложенные lock-и t._sendBufferedLocks(); } }, this.errorTimeOut); } this._state = ConnectionState.AskSaveChanges; this._send({"type": "isSaveLock"}); }; DocsCoApi.prototype.unSaveLock = function() { // ToDo при разрыве соединения нужно перестать делать unSaveLock! var t = this; this.unSaveLockCallbackErrorTimeOutId = window.setTimeout(function() { t.unSaveLockCallbackErrorTimeOutId = null; t.unSaveLock(); }, this.errorTimeOut); this._send({"type": "unSaveLock"}); }; DocsCoApi.prototype.releaseLocks = function(blockId) { if (this._locks[blockId] && 2 === this._locks[blockId].state /*lock is ours*/) { //Ask this._locks[blockId] = {"state": 0};//0-released } }; DocsCoApi.prototype._reSaveChanges = function(reSaveType) { this.saveChanges(this.arrayChanges, this.currentIndex, undefined, undefined, reSaveType); }; DocsCoApi.prototype.saveChanges = function(arrayChanges, currentIndex, deleteIndex, excelAdditionalInfo, reSave) { if (null === currentIndex) { this.deleteIndex = deleteIndex; if (null != this.deleteIndex && -1 !== this.deleteIndex) { this.deleteIndex += this.changesIndex; } this.currentIndex = 0; this.arrayChanges = arrayChanges; this.excelAdditionalInfo = excelAdditionalInfo; } else { this.currentIndex = currentIndex; } var startIndex = this.currentIndex * this.maxCountSaveChanges; var endIndex = Math.min(this.maxCountSaveChanges * (this.currentIndex + 1), arrayChanges.length); if (endIndex === arrayChanges.length) { for (var key in this._locks) if (this._locks.hasOwnProperty(key)) { if (2 === this._locks[key].state /*lock is ours*/) { delete this._locks[key]; } } } //Set errorTimeout var t = this; this.saveCallbackErrorTimeOutId = window.setTimeout(function() { t.saveCallbackErrorTimeOutId = null; t._reSaveChanges(1); }, this.errorTimeOutSave); // Выставляем состояние сохранения this._state = ConnectionState.SaveChanges; this._send({'type': 'saveChanges', 'changes': JSON.stringify(arrayChanges.slice(startIndex, endIndex)), 'startSaveChanges': (startIndex === 0), 'endSaveChanges': (endIndex === arrayChanges.length), 'isCoAuthoring': this.isCoAuthoring, 'isExcel': this._isExcel, 'deleteIndex': this.deleteIndex, 'excelAdditionalInfo': this.excelAdditionalInfo ? JSON.stringify(this.excelAdditionalInfo) : null, 'unlock': this.canUnlockDocument, 'releaseLocks': this.canReleaseLocks, 'reSave': reSave}); }; DocsCoApi.prototype.unLockDocument = function(isSave, deleteIndex) { this.deleteIndex = deleteIndex; if (null != this.deleteIndex && -1 !== this.deleteIndex) { this.deleteIndex += this.changesIndex; } this._send({'type': 'unLockDocument', 'isSave': isSave, 'unlock': this.canUnlockDocument, 'deleteIndex': this.deleteIndex, 'releaseLocks': this.canReleaseLocks}); }; DocsCoApi.prototype.getUsers = function() { // Специально для возможности получения после прохождения авторизации (Стоит переделать) if (this.onAuthParticipantsChanged) { this.onAuthParticipantsChanged(this._participants, this._userId); } }; DocsCoApi.prototype.disconnect = function(opt_code, opt_reason) { // Отключаемся сами this.isCloseCoAuthoring = true; if (opt_code) { this.sockjs.close(opt_code, opt_reason); } else { this._send({"type": "close"}); this._state = ConnectionState.ClosedCoAuth; } }; DocsCoApi.prototype.extendSession = function(idleTime) { this._send({'type': 'extendSession', 'idletime': idleTime}); }; DocsCoApi.prototype.versionHistory = function(data) { this._send({'type': 'versionHistory', 'cmd': data}); }; DocsCoApi.prototype.forceSave = function() { var res = false; var newForceSaveButtonTime = Math.max(this.lastOtherSaveTime, this.lastOwnSaveTime); if (this._lastForceSaveButtonTime < newForceSaveButtonTime) { this._lastForceSaveButtonTime = newForceSaveButtonTime; this._send({'type': 'forceSaveStart'}); res = true; } return res; }; DocsCoApi.prototype.openDocument = function(data) { this._send({"type": "openDocument", "message": data}); }; DocsCoApi.prototype.sendRawData = function(data) { this._sendRaw(data); }; DocsCoApi.prototype.getMessages = function() { this._send({"type": "getMessages"}); }; DocsCoApi.prototype.sendMessage = function(message) { if (typeof message === 'string') { this._send({"type": "message", "message": message}); } }; DocsCoApi.prototype.sendCursor = function(cursor) { if (typeof cursor === 'string') { this._send({"type": "cursor", "cursor": cursor}); } }; DocsCoApi.prototype.sendChangesError = function(data) { if (typeof data === 'string') { this._send({'type': 'changesError', 'stack': data}); } }; DocsCoApi.prototype._applyPrebuffered = function () { for (var i = 0; i < this._msgInputBuffer.length; ++i) { this._msgInputBuffer[i](); } this._msgInputBuffer = []; }; DocsCoApi.prototype._sendPrebuffered = function() { for (var i = 0; i < this._msgBuffer.length; i++) { this._sendRaw(this._msgBuffer[i]); } this._msgBuffer = []; }; DocsCoApi.prototype._send = function(data, useEncryption) { if (!useEncryption && data && data["type"] == "saveChanges" && AscCommon.EncryptionWorker && AscCommon.EncryptionWorker.isInit()) return AscCommon.EncryptionWorker.sendChanges(this, data, AscCommon.EncryptionMessageType.Encrypt); if (data !== null && typeof data === "object") { if (this._state > 0) { this.sockjs.send(JSON.stringify(data)); } else { this._msgBuffer.push(JSON.stringify(data)); } } }; DocsCoApi.prototype._sendRaw = function(data) { if (data !== null && typeof data === "string") { if (this._state > 0) { this.sockjs.send(data); } else { this._msgBuffer.push(data); } } }; DocsCoApi.prototype._onMessages = function(data, clear) { if (this.check_state() && data["messages"] && this.onMessage) { this.onMessage(data["messages"], clear); } }; DocsCoApi.prototype._onServerVersion = function (data) { if (this.onServerVersion) { this.onServerVersion(data['buildVersion'], data['buildNumber']); } }; DocsCoApi.prototype._onCursor = function(data) { if (this.check_state() && data["messages"] && this.onCursor) { this.onCursor(data["messages"]); } }; DocsCoApi.prototype._onMeta = function(data) { if (data["messages"] && this.onMeta) { this.onMeta(data["messages"]); } }; DocsCoApi.prototype._onSession = function(data) { if (this.check_state() && data["messages"] && this.onSession) { this.onSession(data["messages"]); } }; DocsCoApi.prototype._onExpiredToken = function(data) { if (this.onExpiredToken) { this.onExpiredToken(); } }; DocsCoApi.prototype._onHasForgotten = function(data) { if (this.onHasForgotten) { this.onHasForgotten(); } }; DocsCoApi.prototype._onRefreshToken = function(jwt) { this.jwtOpen = undefined; if (jwt) { this.jwtSession = jwt; } }; DocsCoApi.prototype._onForceSaveStart = function(data) { var code = data['code']; if (code === c_oAscServerCommandErrors.NoError) { this._lastForceSaveButtonTime = data['time']; this.onForceSave({type: c_oAscForceSaveTypes.Button, start: true}); } else if (code === c_oAscServerCommandErrors.NotModified) { this.onForceSave({type: c_oAscForceSaveTypes.Button, refuse: true}); } else { this.onWarning(Asc.c_oAscError.ID.Unknown); } }; DocsCoApi.prototype._onForceSave = function(data) { var type = data['type']; if (c_oAscForceSaveTypes.Button === type) { if (this._lastForceSaveButtonTime == data['time']) { this.onForceSave({type: type, success: data['success']}); } } else { if (data['start']) { this.onForceSave({type: type, start: true}); this._lastForceSaveTimeoutTime = data['time']; } else { if (this._lastForceSaveTimeoutTime == data['time']) { this.onForceSave({type: type, success: data['success']}); } } } }; DocsCoApi.prototype._onGetLock = function(data) { if (this.check_state() && data["locks"]) { for (var key in data["locks"]) { if (data["locks"].hasOwnProperty(key)) { var lock = data["locks"][key], blockTmp = (this._isExcel || this._isPresentation) ? lock["block"]["guid"] : key, blockValue = (this._isExcel || this._isPresentation) ? lock["block"] : key; if (lock !== null) { var changed = true; if (this._locks[blockTmp] && 1 !== this._locks[blockTmp].state /*asked for it*/) { //Exists //Check lock state changed = !(this._locks[blockTmp].state === (lock["user"] === this._userId ? 2 : 3) && this._locks[blockTmp]["user"] === lock["user"] && this._locks[blockTmp]["time"] === lock["time"] && this._locks[blockTmp]["block"] === blockTmp); } if (changed) { this._locks[blockTmp] = {"state": lock["user"] === this._userId ? 2 : 3, "user": lock["user"], "time": lock["time"], "block": blockTmp, "blockValue": blockValue};//2-acquired by me! } if (this._lockCallbacks.hasOwnProperty(blockTmp)) { if (lock["user"] === this._userId) { //Do call back this._lockCallbacks[blockTmp]({"lock": this._locks[blockTmp]}); } else { this._lockCallbacks[blockTmp]({"error": "Already locked by " + lock["user"]}); } if (this._lockCallbacksErrorTimerId.hasOwnProperty(blockTmp)) { clearTimeout(this._lockCallbacksErrorTimerId[blockTmp]); delete this._lockCallbacksErrorTimerId[blockTmp]; } delete this._lockCallbacks[blockTmp]; } if (this.onLocksAcquired && changed) { this.onLocksAcquired(this._locks[blockTmp]); } } } } } }; DocsCoApi.prototype._onReleaseLock = function(data) { if (this.check_state() && data["locks"]) { var bSendEnd = false; for (var block in data["locks"]) { if (data["locks"].hasOwnProperty(block)) { var lock = data["locks"][block], blockTmp = (this._isExcel || this._isPresentation) ? lock["block"]["guid"] : lock["block"]; if (lock !== null) { this._locks[blockTmp] = {"state": 0, "user": lock["user"], "time": lock["time"], "changes": lock["changes"], "block": lock["block"]}; if (this.onLocksReleased) { // false - user not save changes this.onLocksReleased(this._locks[blockTmp], false); bSendEnd = true; } } } } if (bSendEnd && this.onLocksReleasedEnd) { this.onLocksReleasedEnd(); } } }; DocsCoApi.prototype._documentOpen = function(data) { this.onDocumentOpen(data); }; DocsCoApi.prototype._onSaveChanges = function(data, useEncryption) { if (!this.check_state()) { if (!this.get_isAuth()) { this._authOtherChanges.push(data); } return; } if (!useEncryption && AscCommon.EncryptionWorker && AscCommon.EncryptionWorker.isInit()) return AscCommon.EncryptionWorker.sendChanges(this, data, AscCommon.EncryptionMessageType.Decrypt); if (data["locks"]) { var bSendEnd = false; for (var block in data["locks"]) { if (data["locks"].hasOwnProperty(block)) { var lock = data["locks"][block]; if (lock !== null) { var blockTmp = (this._isExcel || this._isPresentation) ? lock["block"]["guid"] : lock["block"]; this._locks[blockTmp] = {"state": 0, "user": lock["user"], "time": lock["time"], "changes": lock["changes"], "block": lock["block"]}; if (this.onLocksReleased) { // true - lock with save this.onLocksReleased(this._locks[blockTmp], true); bSendEnd = true; } } } } if (bSendEnd && this.onLocksReleasedEnd) { this.onLocksReleasedEnd(); } } this._updateChanges(data["changes"], data["changesIndex"], false); if (this.onRecalcLocks) { this.onRecalcLocks(data["excelAdditionalInfo"]); } }; DocsCoApi.prototype._onStartCoAuthoring = function(isStartEvent, isWaitAuth) { if (false === this.isCoAuthoring) { this.isCoAuthoring = true; if (this.onStartCoAuthoring) { this.onStartCoAuthoring(isStartEvent); } } else if (isWaitAuth) { //it is a stub for unexpected situation(no direct reproduce scenery) //isCoAuthoring is true when more then one editor, but isWaitAuth mean than server has one editor this.canUnlockDocument = true; this.unLockDocument(false); } }; DocsCoApi.prototype._onEndCoAuthoring = function(isStartEvent) { if (true === this.isCoAuthoring) { this.isCoAuthoring = false; if (this.onEndCoAuthoring) { this.onEndCoAuthoring(isStartEvent); } } }; DocsCoApi.prototype._onSaveLock = function (data) { if (null != data["saveLock"]) { var indexCallback = this._saveCallback.length - 1; var oTmpCallback = this._saveCallback[indexCallback]; if (oTmpCallback) { // Очищаем предыдущий таймер if (null !== this.saveLockCallbackErrorTimeOutId) { clearTimeout(this.saveLockCallbackErrorTimeOutId); this.saveLockCallbackErrorTimeOutId = null; } this._saveCallback[indexCallback] = null; oTmpCallback(data); } } if (null == data["saveLock"] || data['error'] || data["saveLock"]) { this._state = ConnectionState.Authorized; // Делаем отложенные lock-и this._sendBufferedLocks(); } }; DocsCoApi.prototype._onUnSaveLock = function(data) { // Очищаем предыдущий таймер сохранения if (null !== this.saveCallbackErrorTimeOutId) { clearTimeout(this.saveCallbackErrorTimeOutId); this.saveCallbackErrorTimeOutId = null; } // Очищаем предыдущий таймер снятия блокировки if (null !== this.unSaveLockCallbackErrorTimeOutId) { clearTimeout(this.unSaveLockCallbackErrorTimeOutId); this.unSaveLockCallbackErrorTimeOutId = null; } // Возвращаем состояние this._state = ConnectionState.Authorized; // Делаем отложенные lock-и this._sendBufferedLocks(); if (-1 !== data['index']) { this.changesIndex = data['index']; } if (-1 !== data['time']) { this.lastOwnSaveTime = data['time']; } if (this.onUnSaveLock) { this.onUnSaveLock(); } }; DocsCoApi.prototype._updateChanges = function(allServerChanges, changesIndex, bFirstLoad) { if (this.onSaveChanges) { this.changesIndex = changesIndex; if (allServerChanges) { for (var i = 0; i < allServerChanges.length; ++i) { var change = allServerChanges[i]; var changesOneUser = change['change']; if (changesOneUser) { if (change['user'] !== this._userId) { this.lastOtherSaveTime = change['time']; } this.onSaveChanges(JSON.parse(changesOneUser), change['useridoriginal'], bFirstLoad); } } } } }; DocsCoApi.prototype._onSetIndexUser = function(data) { if (this.onSetIndexUser) { this.onSetIndexUser(data); } }; DocsCoApi.prototype._onSpellCheckInit = function(data) { if (this.onSpellCheckInit) { this.onSpellCheckInit(data); } }; DocsCoApi.prototype._onSavePartChanges = function(data) { // Очищаем предыдущий таймер if (null !== this.saveCallbackErrorTimeOutId) { clearTimeout(this.saveCallbackErrorTimeOutId); this.saveCallbackErrorTimeOutId = null; } if (-1 !== data['changesIndex']) { this.changesIndex = data['changesIndex']; } this.saveChanges(this.arrayChanges, this.currentIndex + 1); }; DocsCoApi.prototype._onPreviousLocks = function(locks, previousLocks) { var i = 0; if (locks && previousLocks) { for (var block in locks) { if (locks.hasOwnProperty(block)) { var lock = locks[block]; if (lock !== null && lock["block"]) { //Find in previous for (i = 0; i < previousLocks.length; i++) { if (previousLocks[i] === lock["block"] && lock["user"] === this._userId) { //Lock is ours previousLocks.remove(i); break; } } } } } if (previousLocks.length > 0 && this.onRelockFailed) { this.onRelockFailed(previousLocks); } previousLocks = []; } }; DocsCoApi.prototype._onParticipantsChanged = function(participants, needChanged) { var participantsNew = {}; var countEditUsersNew = 0; var countUsersNew = 0; var tmpUser; var i; var usersStateChanged = []; if (participants) { for (i = 0; i < participants.length; ++i) { tmpUser = new AscCommon.asc_CUser(participants[i]); participantsNew[tmpUser.asc_getId()] = tmpUser; if (!tmpUser.asc_getView()) { ++countEditUsersNew; } ++countUsersNew; } } if (needChanged) { for (i in participantsNew) { if (!this._participants[i]) { tmpUser = participantsNew[i]; tmpUser.setState(true); usersStateChanged.push(tmpUser); } } for (i in this._participants) { if (!participantsNew[i]) { tmpUser = this._participants[i]; tmpUser.setState(false); usersStateChanged.push(tmpUser); } } } this._participants = participantsNew; this._countEditUsers = countEditUsersNew; this._countUsers = countUsersNew; return usersStateChanged; }; DocsCoApi.prototype._onAuthParticipantsChanged = function(participants) { this._participants = {}; this._countEditUsers = 0; this._countUsers = 0; if (participants) { this._onParticipantsChanged(participants); if (this.onAuthParticipantsChanged) { this.onAuthParticipantsChanged(this._participants, this._userId); } // Посылаем эвент о совместном редактировании if (1 < this._countEditUsers) { this._onStartCoAuthoring(/*isStartEvent*/true); } else { this._onEndCoAuthoring(/*isStartEvent*/true); } } }; DocsCoApi.prototype._onConnectionStateChanged = function(data) { var t = this; if (!this.check_state()) { this._msgInputBuffer.push(function () { t._onConnectionStateChanged(data); }); return; } var isWaitAuth = data['waitAuth']; var usersStateChanged; if (this.onConnectionStateChanged && (!this._participantsTimestamp || this._participantsTimestamp <= data['participantsTimestamp'])) { this._participantsTimestamp = data['participantsTimestamp']; usersStateChanged = this._onParticipantsChanged(data['participants'], true); if (usersStateChanged.length > 0) { // Посылаем эвент о совместном редактировании if (1 < this._countEditUsers) { this._onStartCoAuthoring(/*isStartEvent*/false, isWaitAuth); } else { this._onEndCoAuthoring(/*isStartEvent*/false); } this.onParticipantsChanged(this._participants); for (var i = 0; i < usersStateChanged.length; ++i) { this.onConnectionStateChanged(usersStateChanged[i]); } } } }; DocsCoApi.prototype._onLicenseChanged = function (data) { this.onLicenseChanged(data['licenseType']); }; DocsCoApi.prototype._onDrop = function(data) { this.disconnect(); this.onDisconnect(data ? data['description'] : '', this._getDisconnectErrorCode()); }; DocsCoApi.prototype._onWarning = function(data) { this.onWarning(Asc.c_oAscError.ID.Warning); }; DocsCoApi.prototype._onLicense = function(data) { if (!this.isLicenseInit) { this.isLicenseInit = true; this.onLicense(data['license']); } }; DocsCoApi.prototype._onAuth = function(data) { var t = this; this._onRefreshToken(data['jwt']); if (true === this._isAuth) { this._state = ConnectionState.Authorized; // Мы должны только соединиться для получения файла. Совместное редактирование уже было отключено. if (this.isCloseCoAuthoring) { return; } this._onServerVersion(data); this._onLicenseChanged(data); // Мы уже авторизовывались, нужно обновить пользователей (т.к. пользователи могли входить и выходить пока у нас не было соединения) this._onAuthParticipantsChanged(data['participants']); //if (this.ownedLockBlocks && this.ownedLockBlocks.length > 0) { // this._onPreviousLocks(data["locks"], this.ownedLockBlocks); //} this._onMessages(data, true); this._onGetLock(data); //Apply prebuffered this._applyPrebuffered(); if (this._isReSaveAfterAuth) { this._isReSaveAfterAuth = false; var callbackAskSaveChanges = function(e) { if (false === e["saveLock"]) { t._reSaveChanges(2); } else { setTimeout(function() { t.askSaveChanges(callbackAskSaveChanges); }, 1000); } }; this.askSaveChanges(callbackAskSaveChanges); } return; } if (data['result'] === 1) { // Выставляем флаг, что мы уже авторизовывались this._isAuth = true; //TODO: add checks this._state = ConnectionState.Authorized; this._id = data['sessionId']; this._indexUser = data['indexUser']; this._userId = this._user.asc_getId() + this._indexUser; this._sessionTimeConnect = data['sessionTimeConnect']; if (data['settings'] && data['settings']['reconnection']) { this.maxAttemptCount = data['settings']['reconnection']['attempts']; this.reconnectInterval = data['settings']['reconnection']['delay']; } this._onLicenseChanged(data); this._onAuthParticipantsChanged(data['participants']); this._onSpellCheckInit(data['g_cAscSpellCheckUrl']); this._onSetIndexUser(this._indexUser); this._onMessages(data, false); this._onGetLock(data); if (data['hasForgotten']) { this._onHasForgotten(); } // Применения изменений пользователя if (window['AscApplyChanges'] && window['AscChanges']) { var userOfflineChanges = window['AscChanges'], changeOneUser; for (var i = 0; i < userOfflineChanges.length; ++i) { changeOneUser = userOfflineChanges[i]; for (var j = 0; j < changeOneUser.length; ++j) this.onSaveChanges(changeOneUser[j], null, true); } } this._updateAuthChanges(); // Посылать нужно всегда, т.к. на это рассчитываем при открытии if (this.onFirstLoadChangesEnd) { this.onFirstLoadChangesEnd(); } //Apply prebuffered this._applyPrebuffered(); //Send prebuffered this._sendPrebuffered(); } //TODO: Add errors }; DocsCoApi.prototype._onAuthChanges = function(data) { this._authChanges.push(data["changes"]); }; DocsCoApi.prototype._updateAuthChanges = function() { //todo apply changes with chunk on arrival var changesIndex = 0, i, changes, data, indexDiff; for (i = 0; i < this._authChanges.length; ++i) { changes = this._authChanges[i]; changesIndex += changes.length; this._updateChanges(changes, changesIndex, true); } this._authChanges = []; for (i = 0; i < this._authOtherChanges.length; ++i) { data = this._authOtherChanges[i]; indexDiff = data["changesIndex"] - changesIndex; if (indexDiff > 0) { if (indexDiff >= data["changes"].length) { changes = data["changes"]; } else { changes = data["changes"].splice(data["changes"].length - indexDiff, indexDiff); } changesIndex += changes.length; this._updateChanges(changes, changesIndex, true); } } this._authOtherChanges = []; }; DocsCoApi.prototype.init = function(user, docid, documentCallbackUrl, token, editorType, documentFormatSave, docInfo) { this._user = user; this._docid = null; this._documentCallbackUrl = documentCallbackUrl; this._token = token; this.ownedLockBlocks = []; this.sockjs_url = null; this.editorType = editorType; this._isExcel = c_oEditorId.Spreadsheet === editorType; this._isPresentation = c_oEditorId.Presentation === editorType; this._isAuth = false; this._documentFormatSave = documentFormatSave; this.mode = docInfo.get_Mode(); this.permissions = docInfo.get_Permissions(); this.lang = docInfo.get_Lang(); this.jwtOpen = docInfo.get_Token(); this.encrypted = docInfo.get_Encrypted(); this.setDocId(docid); this._initSocksJs(); }; DocsCoApi.prototype.getDocId = function() { return this._docid; }; DocsCoApi.prototype.setDocId = function(docid) { //todo возможно надо менять sockjs_url this._docid = docid; this.sockjs_url = AscCommon.getBaseUrl() + '../../../../doc/' + docid + '/c'; }; // Авторизация (ее нужно делать после выставления состояния редактора view-mode) DocsCoApi.prototype.auth = function(isViewer, opt_openCmd, opt_isIdle) { this._isViewer = isViewer; if (this._locks) { this.ownedLockBlocks = []; //If we already have locks for (var block in this._locks) if (this._locks.hasOwnProperty(block)) { var lock = this._locks[block]; if (lock["state"] === 2) { //Our lock. this.ownedLockBlocks.push(lock["blockValue"]); } } this._locks = {}; } this._send({ 'type': 'auth', 'docid': this._docid, 'documentCallbackUrl': this._documentCallbackUrl, 'token': this._token, 'user': { 'id': this._user.asc_getId(), 'username': this._user.asc_getUserName(), 'firstname': this._user.asc_getFirstName(), 'lastname': this._user.asc_getLastName(), 'indexUser': this._indexUser }, 'editorType': this.editorType, 'lastOtherSaveTime': this.lastOtherSaveTime, 'block': this.ownedLockBlocks, 'sessionId': this._id, 'sessionTimeConnect': this._sessionTimeConnect, 'sessionTimeIdle': opt_isIdle >= 0 ? opt_isIdle : 0, 'documentFormatSave': this._documentFormatSave, 'view': this._isViewer, 'isCloseCoAuthoring': this.isCloseCoAuthoring, 'openCmd': opt_openCmd, 'lang': this.lang, 'mode': this.mode, 'permissions': this.permissions, 'encrypted': this.encrypted, 'jwtOpen': this.jwtOpen, 'jwtSession': this.jwtSession }); }; DocsCoApi.prototype._initSocksJs = function () { var t = this; var sockjs; sockjs = this.sockjs = {}; var send = function (data) { setTimeout(function () { sockjs.onmessage({ data: JSON.stringify(data) }); }); }; var license = { type: 'license', license: { type: 3, mode: 0, //light: false, //trial: false, rights: 1, buildVersion: "5.2.6", buildNumber: 2, //branding: false } }; var channel; require([ '/common/outer/worker-channel.js', '/common/common-util.js' ], function (Channel, Util) { var msgEv = Util.mkEvent(); var p = window.parent; window.addEventListener('message', function (msg) { if (msg.source !== p) { return; } msgEv.fire(msg); }); var postMsg = function (data) { p.postMessage(data, '*'); }; Channel.create(msgEv, postMsg, function (chan) { channel = chan; send(license); chan.on('CMD', function (obj) { send(obj); }); }); }); sockjs.onopen = function() { t._state = ConnectionState.WaitAuth; t.onFirstConnect(); }; sockjs.onopen(); sockjs.close = function () { console.error('Close realtime'); }; sockjs.send = function (data) { try { var obj = JSON.parse(data); } catch (e) { console.error(e); return; } if (channel) { channel.event('CMD', obj); } }; sockjs.onmessage = function (e) { t._onServerMessage(e.data); }; return sockjs; }; DocsCoApi.prototype._onServerOpen = function () { if (this.reconnectTimeout) { clearTimeout(this.reconnectTimeout); this.reconnectTimeout = null; this.attemptCount = 0; } this._state = ConnectionState.WaitAuth; this.onFirstConnect(); }; DocsCoApi.prototype._onServerMessage = function (data) { //TODO: add checks and error handling //Get data type var dataObject = JSON.parse(data); switch (dataObject['type']) { case 'auth' : this._onAuth(dataObject); break; case 'message' : this._onMessages(dataObject, false); break; case 'cursor' : this._onCursor(dataObject); break; case 'meta' : this._onMeta(dataObject); break; case 'getLock' : this._onGetLock(dataObject); break; case 'releaseLock' : this._onReleaseLock(dataObject); break; case 'connectState' : this._onConnectionStateChanged(dataObject); break; case 'saveChanges' : this._onSaveChanges(dataObject); break; case 'authChanges' : this._onAuthChanges(dataObject); break; case 'saveLock' : this._onSaveLock(dataObject); break; case 'unSaveLock' : this._onUnSaveLock(dataObject); break; case 'savePartChanges' : this._onSavePartChanges(dataObject); break; case 'drop' : this._onDrop(dataObject); break; case 'waitAuth' : /*Ждем, когда придет auth, документ залочен*/ break; case 'error' : /*Старая версия sdk*/ this._onDrop(dataObject); break; case 'documentOpen' : this._documentOpen(dataObject); break; case 'warning': this._onWarning(dataObject); break; case 'license': this._onLicense(dataObject); break; case 'session' : this._onSession(dataObject); break; case 'refreshToken' : this._onRefreshToken(dataObject["messages"]); break; case 'expiredToken' : this._onExpiredToken(); break; case 'forceSaveStart' : this._onForceSaveStart(dataObject["messages"]); break; case 'forceSave' : this._onForceSave(dataObject["messages"]); break; } }; DocsCoApi.prototype._onServerClose = function (evt) { if (ConnectionState.SaveChanges === this._state) { // Мы сохраняли изменения и разорвалось соединение this._isReSaveAfterAuth = true; // Очищаем предыдущий таймер if (null !== this.saveCallbackErrorTimeOutId) { clearTimeout(this.saveCallbackErrorTimeOutId); this.saveCallbackErrorTimeOutId = null; } } this._state = ConnectionState.Reconnect; var bIsDisconnectAtAll = ((c_oCloseCode.serverShutdown <= evt.code && evt.code <= c_oCloseCode.drop) || this.attemptCount >= this.maxAttemptCount); var error = null; if (bIsDisconnectAtAll) { this._state = ConnectionState.ClosedAll; error = this._getDisconnectErrorCode(evt.code); } if (this.onDisconnect) { this.onDisconnect(evt.reason, error); } //Try reconect if (!bIsDisconnectAtAll) { this._tryReconnect(); } }; DocsCoApi.prototype._reconnect = function () { delete this.sockjs; this._initSocksJs(); }; DocsCoApi.prototype._tryReconnect = function () { var t = this; if (this.reconnectTimeout) { clearTimeout(this.reconnectTimeout); t.reconnectTimeout = null; } ++this.attemptCount; this.reconnectTimeout = setTimeout(function () { t._reconnect(); }, this.reconnectInterval); }; DocsCoApi.prototype._getDisconnectErrorCode = function(opt_closeCode) { var code = this.isCloseCoAuthoring ? Asc.c_oAscError.ID.UserDrop : Asc.c_oAscError.ID.CoAuthoringDisconnect; var level = Asc.c_oAscError.Level.NoCritical; if (c_oCloseCode.serverShutdown === opt_closeCode) { code = Asc.c_oAscError.ID.CoAuthoringDisconnect; } else if (c_oCloseCode.sessionIdle === opt_closeCode) { code = Asc.c_oAscError.ID.SessionIdle; } else if (c_oCloseCode.sessionAbsolute === opt_closeCode) { code = Asc.c_oAscError.ID.SessionAbsolute; } else if (c_oCloseCode.accessDeny === opt_closeCode) { code = Asc.c_oAscError.ID.AccessDeny; } else if (c_oCloseCode.jwtExpired === opt_closeCode) { if (this.jwtSession) { code = Asc.c_oAscError.ID.SessionToken; } else { code = Asc.c_oAscError.ID.KeyExpire; level = Asc.c_oAscError.Level.Critical; } } else if (c_oCloseCode.jwtError === opt_closeCode) { code = Asc.c_oAscError.ID.VKeyEncrypt; level = Asc.c_oAscError.Level.Critical; } else if (c_oCloseCode.drop === opt_closeCode) { code = Asc.c_oAscError.ID.UserDrop; } return {code: code, level: level}; }; //----------------------------------------------------------export---------------------------------------------------- window['AscCommon'] = window['AscCommon'] || {}; window['AscCommon'].CDocsCoApi = CDocsCoApi; })(window); /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; (function (window) { 'use strict'; // Класс надстройка, для online и offline работы var CSpellCheckApi = function () { this._SpellCheckApi = new SpellCheckApi(); this._onlineWork = false; this.onDisconnect = null; this.onSpellCheck = null; this.onSpellCheck = null; }; CSpellCheckApi.prototype.init = function (docid) { if (this._SpellCheckApi && this._SpellCheckApi.isRightURL()) { var t = this; this._SpellCheckApi.onDisconnect = function (e, isDisconnectAtAll, isCloseCoAuthoring) { t.callback_OnDisconnect(e, isDisconnectAtAll, isCloseCoAuthoring); }; this._SpellCheckApi.onSpellCheck = function (e) { t.callback_OnSpellCheck(e); }; this._SpellCheckApi.onInit = function (e) { t.callback_OnInit(e); }; this._SpellCheckApi.init(docid); this._onlineWork = true; } }; CSpellCheckApi.prototype.set_url = function (url) { if (this._SpellCheckApi) { this._SpellCheckApi.set_url(url); } }; CSpellCheckApi.prototype.get_state = function () { if (this._SpellCheckApi) { return this._SpellCheckApi.get_state(); } return 0; }; CSpellCheckApi.prototype.disconnect = function () { if (this._SpellCheckApi && this._onlineWork) { this._SpellCheckApi.disconnect(); } }; CSpellCheckApi.prototype.spellCheck = function (spellCheckData) { if (this._SpellCheckApi && this._onlineWork) { this._SpellCheckApi.spellCheck(spellCheckData); } }; CSpellCheckApi.prototype.callback_OnSpellCheck = function (e) { if (this.onSpellCheck) { return this.onSpellCheck(e); } }; CSpellCheckApi.prototype.callback_OnInit = function (e) { if (this.onInit) { return this.onInit(e); } }; /** * Event об отсоединении от сервера * @param {jQuery} e event об отсоединении с причиной * @param {Bool} isDisconnectAtAll окончательно ли отсоединяемся(true) или будем пробовать сделать reconnect(false) + сами отключились */ CSpellCheckApi.prototype.callback_OnDisconnect = function (e, isDisconnectAtAll, isCloseCoAuthoring) { if (this.onDisconnect) { return this.onDisconnect(e, isDisconnectAtAll, isCloseCoAuthoring); } }; /** States * -1 - reconnect state * 0 - not initialized * 1 - opened * 3 - closed */ var SpellCheckApi = function () { this.onDisconnect = null; this.onConnect = null; this.onSpellCheck = null; this.onInit = null; this._state = 0; // Мы сами отключились от совместного редактирования this.isCloseCoAuthoring = false; this.isInit = false; // Массив данных, который стоит отправить как только подключимся this.dataNeedSend = []; this._url = ""; }; SpellCheckApi.prototype.isRightURL = function () { return ("" !== this._url); }; SpellCheckApi.prototype.set_url = function (url) { this._url = url; }; SpellCheckApi.prototype.get_state = function () { return this._state; }; SpellCheckApi.prototype.spellCheck = function (spellCheckData) { this._send({"type": "spellCheck", "spellCheckData": spellCheckData}); }; SpellCheckApi.prototype.disconnect = function () { // Отключаемся сами this.isCloseCoAuthoring = true; return this.sockjs.close(); }; SpellCheckApi.prototype._send = function (data) { if (data !== null && typeof data === "object") { if (this._state > 0) { this.sockjs.send(JSON.stringify(data)); } else { this.dataNeedSend.push(data); } } }; SpellCheckApi.prototype._sendAfterConnect = function () { var data; while (this._state > 0 && undefined !== (data = this.dataNeedSend.shift())) this._send(data); }; SpellCheckApi.prototype._onSpellCheck = function (data) { if (data["spellCheckData"] && this.onSpellCheck) { this.onSpellCheck(data["spellCheckData"]); } }; SpellCheckApi.prototype._onInit = function (data) { if (!this.isInit && data["languages"] && this.onInit) { this.onInit(data["languages"]); this.isInit = true; } }; var reconnectTimeout, attemptCount = 0; function initSocksJs(url, docsCoApi) { //ограничиваем transports WebSocket и XHR / JSONP polling, как и engine.io https://github.com/socketio/engine.io //при переборе streaming transports у клиента с wirewall происходило зацикливание(не повторялось в версии sock.js 0.3.4) var sockjs = new (AscCommon.getSockJs())(url, null, {'transports': ['websocket', 'xdr-polling', 'xhr-polling', 'iframe-xhr-polling', 'jsonp-polling']}); sockjs.onopen = function () { if (reconnectTimeout) { clearTimeout(reconnectTimeout); attemptCount = 0; } docsCoApi._state = 1; // Opened state if (docsCoApi.onConnect) { docsCoApi.onConnect(); } // Отправляем все данные, которые пришли до соединения с сервером docsCoApi._sendAfterConnect(); }; sockjs.onmessage = function (e) { //TODO: add checks and error handling //Get data type var dataObject = JSON.parse(e.data); var type = dataObject.type; switch (type) { case 'spellCheck' : docsCoApi._onSpellCheck(dataObject); break; case 'init': docsCoApi._onInit(dataObject); break; } }; sockjs.onclose = function (evt) { docsCoApi._state = -1; // Reconnect state var bIsDisconnectAtAll = attemptCount >= 20 || docsCoApi.isCloseCoAuthoring; if (bIsDisconnectAtAll) { docsCoApi._state = 3; } // Closed state if (docsCoApi.onDisconnect) { docsCoApi.onDisconnect(evt.reason, bIsDisconnectAtAll, docsCoApi.isCloseCoAuthoring); } if (docsCoApi.isCloseCoAuthoring) { return; } //Try reconect if (attemptCount < 20) { tryReconnect(); } }; function tryReconnect() { if (reconnectTimeout) { clearTimeout(reconnectTimeout); } attemptCount++; reconnectTimeout = setTimeout(function () { delete docsCoApi.sockjs; docsCoApi.sockjs = initSocksJs(url, docsCoApi); }, 500 * attemptCount); } return sockjs; } SpellCheckApi.prototype.init = function (docid) { this._docid = docid; var re = /^https?:\/\//; var spellcheckUrl = this._url + '/doc/' + docid + '/c'; if (re.test(this._url)) { this.sockjs_url = spellcheckUrl; } else { this.sockjs_url = AscCommon.getBaseUrl() + "../../../.." + spellcheckUrl; } //Begin send auth this.sockjs = initSocksJs(this.sockjs_url, this); }; //-----------------------------------------------------------export--------------------------------------------------- window['AscCommon'] = window['AscCommon'] || {}; window["AscCommon"].CSpellCheckApi = CSpellCheckApi; })(window); /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; (/** * @param {Window} window * @param {undefined} undefined */ function (window, undefined) { var Asc = window['Asc']; var AscCommon = window['AscCommon']; // Import var prot; var c_oAscMouseMoveDataTypes = AscCommon.c_oAscMouseMoveDataTypes; var c_oAscColor = Asc.c_oAscColor; var c_oAscFill = Asc.c_oAscFill; var c_oAscFillBlipType = Asc.c_oAscFillBlipType; var c_oAscChartTypeSettings = Asc.c_oAscChartTypeSettings; var c_oAscTickMark = Asc.c_oAscTickMark; var c_oAscAxisType = Asc.c_oAscAxisType; // --------------------------------------------------------------------------------------------------------------- var c_oAscArrUserColors = [16757719, 7929702, 56805, 10081791, 12884479, 16751001, 6748927, 16762931, 6865407, 15650047, 16737894, 3407768, 16759142, 10852863, 6750176, 16774656, 13926655, 13815039, 3397375, 11927347, 16752947, 9404671, 4980531, 16744678, 3407830, 15919360, 16731553, 52479, 13330175, 16743219, 3386367, 14221056, 16737966, 1896960, 65484, 10970879, 16759296, 16711680, 13496832, 62072, 49906, 16734720, 10682112, 7890687, 16731610, 65406, 38655, 16747008, 59890, 12733951, 15859712, 47077, 15050496, 15224319, 10154496, 58807, 16724950, 1759488, 9981439, 15064320, 15893248, 16724883, 58737, 15007744, 36594, 12772608, 12137471, 6442495, 15039488, 16718470, 14274816, 53721, 16718545, 1625088, 15881472, 13419776, 32985, 16711800, 1490688, 16711884, 8991743, 13407488, 41932, 7978752, 15028480, 52387, 15007927, 12114176, 1421824, 55726, 13041893, 10665728, 30924, 49049, 14241024, 36530, 11709440, 13397504, 45710, 34214]; function CreateAscColorCustom(r, g, b, auto) { var ret = new asc_CColor(); ret.type = c_oAscColor.COLOR_TYPE_SRGB; ret.r = r; ret.g = g; ret.b = b; ret.a = 255; ret.Auto = ( undefined === auto ? false : auto ); return ret; } function CreateAscColor(unicolor) { if (null == unicolor || null == unicolor.color) { return new asc_CColor(); } var ret = new asc_CColor(); ret.r = unicolor.RGBA.R; ret.g = unicolor.RGBA.G; ret.b = unicolor.RGBA.B; ret.a = unicolor.RGBA.A; var _color = unicolor.color; switch (_color.type) { case c_oAscColor.COLOR_TYPE_SRGB: case c_oAscColor.COLOR_TYPE_SYS: { break; } case c_oAscColor.COLOR_TYPE_PRST: case c_oAscColor.COLOR_TYPE_SCHEME: { ret.type = _color.type; ret.value = _color.id; break; } default: break; } return ret; } function CreateGUID() { function s4() { return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1); } var val = '{' + s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4() + '}'; val = val.toUpperCase(); return val; } var c_oLicenseResult = { Error : 1, Expired : 2, Success : 3, UnknownUser : 4, Connections : 5, ExpiredTrial : 6, SuccessLimit : 7, UsersCount : 8, ConnectionsOS : 9, UsersCountOS : 10 }; var c_oRights = { None : 0, Edit : 1, Review : 2, Comment : 3, View : 4 }; var c_oLicenseMode = { None: 0, Trial: 1, Developer: 2 }; var EPluginDataType = { none: "none", text: "text", ole: "ole", html: "html", desktop: "desktop" }; /** @constructor */ function asc_CSignatureLine() { this.id = undefined; this.guid = ""; this.signer1 = ""; this.signer2 = ""; this.email = ""; this.instructions = ""; this.showDate = false; this.valid = 0; this.image = ""; this.date = ""; this.isvisible = false; this.isrequested = false; } asc_CSignatureLine.prototype.correct = function() { if (this.id == null) this.id = "0"; if (this.guid == null) this.guid = ""; if (this.signer1 == null) this.signer1 = ""; if (this.signer2 == null) this.signer2 = ""; if (this.email == null) this.email = ""; if (this.instructions == null) this.instructions = ""; if (this.showDate == null) this.showDate = false; if (this.valid == null) this.valid = 0; if (this.image == null) this.image = ""; if (this.date == null) this.date = ""; if (this.isvisible == null) this.isvisible = false; }; asc_CSignatureLine.prototype.asc_getId = function(){ return this.id; }; asc_CSignatureLine.prototype.asc_setId = function(v){ this.id = v; }; asc_CSignatureLine.prototype.asc_getGuid = function(){ return this.guid; }; asc_CSignatureLine.prototype.asc_setGuid = function(v){ this.guid = v; }; asc_CSignatureLine.prototype.asc_getSigner1 = function(){ return this.signer1; }; asc_CSignatureLine.prototype.asc_setSigner1 = function(v){ this.signer1 = v; }; asc_CSignatureLine.prototype.asc_getSigner2 = function(){ return this.signer2; }; asc_CSignatureLine.prototype.asc_setSigner2 = function(v){ this.signer2 = v; }; asc_CSignatureLine.prototype.asc_getEmail = function(){ return this.email; }; asc_CSignatureLine.prototype.asc_setEmail = function(v){ this.email = v; }; asc_CSignatureLine.prototype.asc_getInstructions = function(){ return this.instructions; }; asc_CSignatureLine.prototype.asc_setInstructions = function(v){ this.instructions = v; }; asc_CSignatureLine.prototype.asc_getShowDate = function(){ return this.showDate; }; asc_CSignatureLine.prototype.asc_setShowDate = function(v){ this.showDate = v; }; asc_CSignatureLine.prototype.asc_getValid = function(){ return this.valid; }; asc_CSignatureLine.prototype.asc_setValid = function(v){ this.valid = v; }; asc_CSignatureLine.prototype.asc_getDate = function(){ return this.date; }; asc_CSignatureLine.prototype.asc_setDate = function(v){ this.date = v; }; asc_CSignatureLine.prototype.asc_getVisible = function(){ return this.isvisible; }; asc_CSignatureLine.prototype.asc_setVisible = function(v){ this.isvisible = v; }; asc_CSignatureLine.prototype.asc_getRequested = function(){ return this.isrequested; }; asc_CSignatureLine.prototype.asc_setRequested = function(v){ this.isrequested = v; }; /** * Класс asc_CAscEditorPermissions для прав редакторов * ----------------------------------------------------------------------------- * * @constructor * @memberOf Asc */ function asc_CAscEditorPermissions() { this.licenseType = c_oLicenseResult.Error; this.licenseMode = c_oLicenseMode.None; this.isLight = false; this.rights = c_oRights.None; this.canCoAuthoring = true; this.canReaderMode = true; this.canBranding = false; this.isAutosaveEnable = true; this.AutosaveMinInterval = 300; this.isAnalyticsEnable = false; this.buildVersion = null; this.buildNumber = null; return this; } asc_CAscEditorPermissions.prototype.asc_getLicenseType = function () { return this.licenseType; }; asc_CAscEditorPermissions.prototype.asc_getCanCoAuthoring = function () { return this.canCoAuthoring; }; asc_CAscEditorPermissions.prototype.asc_getCanReaderMode = function () { return this.canReaderMode; }; asc_CAscEditorPermissions.prototype.asc_getCanBranding = function () { return this.canBranding; }; asc_CAscEditorPermissions.prototype.asc_getIsAutosaveEnable = function () { return this.isAutosaveEnable; }; asc_CAscEditorPermissions.prototype.asc_getAutosaveMinInterval = function () { return this.AutosaveMinInterval; }; asc_CAscEditorPermissions.prototype.asc_getIsAnalyticsEnable = function () { return this.isAnalyticsEnable; }; asc_CAscEditorPermissions.prototype.asc_getIsLight = function () { return this.isLight; }; asc_CAscEditorPermissions.prototype.asc_getLicenseMode = function () { return this.licenseMode; }; asc_CAscEditorPermissions.prototype.asc_getRights = function () { return this.rights; }; asc_CAscEditorPermissions.prototype.asc_getBuildVersion = function () { return this.buildVersion; }; asc_CAscEditorPermissions.prototype.asc_getBuildNumber = function () { return this.buildNumber; }; asc_CAscEditorPermissions.prototype.setLicenseType = function (v) { this.licenseType = v; }; asc_CAscEditorPermissions.prototype.setCanBranding = function (v) { this.canBranding = v; }; asc_CAscEditorPermissions.prototype.setIsLight = function (v) { this.isLight = v; }; asc_CAscEditorPermissions.prototype.setLicenseMode = function (v) { this.licenseMode = v; }; asc_CAscEditorPermissions.prototype.setRights = function (v) { this.rights = v; }; asc_CAscEditorPermissions.prototype.setBuildVersion = function (v) { this.buildVersion = v; }; asc_CAscEditorPermissions.prototype.setBuildNumber = function (v) { this.buildNumber = v; }; /** @constructor */ function asc_ValAxisSettings() { this.minValRule = null; this.minVal = null; this.maxValRule = null; this.maxVal = null; this.invertValOrder = null; this.logScale = null; this.logBase = null; this.dispUnitsRule = null; this.units = null; this.showUnitsOnChart = null; this.majorTickMark = null; this.minorTickMark = null; this.tickLabelsPos = null; this.crossesRule = null; this.crosses = null; this.axisType = c_oAscAxisType.val; } asc_ValAxisSettings.prototype = { isEqual: function(oPr){ if(!oPr){ return false; } if(this.minValRule !== oPr.minValRule){ return false; } if(this.minVal !== oPr.minVal){ return false; } if(this.maxValRule !== oPr.maxValRule){ return false; } if(this.maxVal !== oPr.maxVal){ return false; } if(this.invertValOrder !== oPr.invertValOrder){ return false; } if(this.logScale !== oPr.logScale){ return false; } if(this.logBase !== oPr.logBase){ return false; } if(this.dispUnitsRule !== oPr.dispUnitsRule){ return false; } if(this.units !== oPr.units){ return false; } if(this.showUnitsOnChart !== oPr.showUnitsOnChart){ return false; } if(this.majorTickMark !== oPr.majorTickMark){ return false; } if(this.minorTickMark !== oPr.minorTickMark){ return false; } if(this.tickLabelsPos !== oPr.tickLabelsPos){ return false; } if(this.crossesRule !== oPr.crossesRule){ return false; } if(this.crosses !== oPr.crosses){ return false; } if(this.axisType !== oPr.axisType){ return false; } return true; }, putAxisType: function (v) { this.axisType = v; }, putMinValRule: function (v) { this.minValRule = v; }, putMinVal: function (v) { this.minVal = v; }, putMaxValRule: function (v) { this.maxValRule = v; }, putMaxVal: function (v) { this.maxVal = v; }, putInvertValOrder: function (v) { this.invertValOrder = v; }, putLogScale: function (v) { this.logScale = v; }, putLogBase: function (v) { this.logBase = v; }, putUnits: function (v) { this.units = v; }, putShowUnitsOnChart: function (v) { this.showUnitsOnChart = v; }, putMajorTickMark: function (v) { this.majorTickMark = v; }, putMinorTickMark: function (v) { this.minorTickMark = v; }, putTickLabelsPos: function (v) { this.tickLabelsPos = v; }, putCrossesRule: function (v) { this.crossesRule = v; }, putCrosses: function (v) { this.crosses = v; }, putDispUnitsRule: function (v) { this.dispUnitsRule = v; }, getAxisType: function () { return this.axisType; }, getDispUnitsRule: function () { return this.dispUnitsRule; }, getMinValRule: function () { return this.minValRule; }, getMinVal: function () { return this.minVal; }, getMaxValRule: function () { return this.maxValRule; }, getMaxVal: function () { return this.maxVal; }, getInvertValOrder: function () { return this.invertValOrder; }, getLogScale: function () { return this.logScale; }, getLogBase: function () { return this.logBase; }, getUnits: function () { return this.units; }, getShowUnitsOnChart: function () { return this.showUnitsOnChart; }, getMajorTickMark: function () { return this.majorTickMark; }, getMinorTickMark: function () { return this.minorTickMark; }, getTickLabelsPos: function () { return this.tickLabelsPos; }, getCrossesRule: function () { return this.crossesRule; }, getCrosses: function () { return this.crosses; }, setDefault: function () { this.putMinValRule(Asc.c_oAscValAxisRule.auto); this.putMaxValRule(Asc.c_oAscValAxisRule.auto); this.putTickLabelsPos(Asc.c_oAscTickLabelsPos.TICK_LABEL_POSITION_NEXT_TO); this.putInvertValOrder(false); this.putDispUnitsRule(Asc.c_oAscValAxUnits.none); this.putMajorTickMark(c_oAscTickMark.TICK_MARK_OUT); this.putMinorTickMark(c_oAscTickMark.TICK_MARK_NONE); this.putCrossesRule(Asc.c_oAscCrossesRule.auto); } }; /** @constructor */ function asc_CatAxisSettings() { this.intervalBetweenTick = null; this.intervalBetweenLabelsRule = null; this.intervalBetweenLabels = null; this.invertCatOrder = null; this.labelsAxisDistance = null; this.majorTickMark = null; this.minorTickMark = null; this.tickLabelsPos = null; this.crossesRule = null; this.crosses = null; this.labelsPosition = null; this.axisType = c_oAscAxisType.cat; this.crossMinVal = null; this.crossMaxVal = null; } asc_CatAxisSettings.prototype = { isEqual: function(oPr){ if(!oPr){ return false; } if(this.intervalBetweenTick !== oPr.intervalBetweenTick){ return false; } if(this.intervalBetweenLabelsRule !== oPr.intervalBetweenLabelsRule){ return false; } if(this.intervalBetweenLabels !== oPr.intervalBetweenLabels){ return false; } if(this.invertCatOrder !== oPr.invertCatOrder){ return false; } if(this.labelsAxisDistance !== oPr.labelsAxisDistance){ return false; } if(this.majorTickMark !== oPr.majorTickMark){ return false; } if(this.minorTickMark !== oPr.minorTickMark){ return false; } if(this.tickLabelsPos !== oPr.tickLabelsPos){ return false; } if(this.crossesRule !== oPr.crossesRule){ return false; } if(this.crosses !== oPr.crosses){ return false; } if(this.labelsPosition !== oPr.labelsPosition){ return false; } if(this.axisType !== oPr.axisType){ return false; } if(this.crossMinVal !== oPr.crossMinVal){ return false; } if(this.crossMaxVal !== oPr.crossMaxVal){ return false; } return true; }, putIntervalBetweenTick: function (v) { this.intervalBetweenTick = v; }, putIntervalBetweenLabelsRule: function (v) { this.intervalBetweenLabelsRule = v; }, putIntervalBetweenLabels: function (v) { this.intervalBetweenLabels = v; }, putInvertCatOrder: function (v) { this.invertCatOrder = v; }, putLabelsAxisDistance: function (v) { this.labelsAxisDistance = v; }, putMajorTickMark: function (v) { this.majorTickMark = v; }, putMinorTickMark: function (v) { this.minorTickMark = v; }, putTickLabelsPos: function (v) { this.tickLabelsPos = v; }, putCrossesRule: function (v) { this.crossesRule = v; }, putCrosses: function (v) { this.crosses = v; }, putAxisType: function (v) { this.axisType = v; }, putLabelsPosition: function (v) { this.labelsPosition = v; }, getIntervalBetweenTick: function (v) { return this.intervalBetweenTick; }, getIntervalBetweenLabelsRule: function () { return this.intervalBetweenLabelsRule; }, getIntervalBetweenLabels: function () { return this.intervalBetweenLabels; }, getInvertCatOrder: function () { return this.invertCatOrder; }, getLabelsAxisDistance: function () { return this.labelsAxisDistance; }, getMajorTickMark: function () { return this.majorTickMark; }, getMinorTickMark: function () { return this.minorTickMark; }, getTickLabelsPos: function () { return this.tickLabelsPos; }, getCrossesRule: function () { return this.crossesRule; }, getCrosses: function () { return this.crosses; }, getAxisType: function () { return this.axisType; }, getLabelsPosition: function () { return this.labelsPosition; }, getCrossMinVal: function () { return this.crossMinVal; }, getCrossMaxVal: function () { return this.crossMaxVal; }, putCrossMinVal: function (val) { this.crossMinVal = val; }, putCrossMaxVal: function (val) { this.crossMaxVal = val; }, setDefault: function () { this.putIntervalBetweenLabelsRule(Asc.c_oAscBetweenLabelsRule.auto); this.putLabelsPosition(Asc.c_oAscLabelsPosition.betweenDivisions); this.putTickLabelsPos(Asc.c_oAscTickLabelsPos.TICK_LABEL_POSITION_NEXT_TO); this.putLabelsAxisDistance(100); this.putMajorTickMark(c_oAscTickMark.TICK_MARK_OUT); this.putMinorTickMark(c_oAscTickMark.TICK_MARK_NONE); this.putIntervalBetweenTick(1); this.putCrossesRule(Asc.c_oAscCrossesRule.auto); } }; /** @constructor */ function asc_ChartSettings() { this.style = null; this.title = null; this.rowCols = null; this.horAxisLabel = null; this.vertAxisLabel = null; this.legendPos = null; this.dataLabelsPos = null; this.vertAx = null; this.horAx = null; this.horGridLines = null; this.vertGridLines = null; this.type = null; this.showSerName = null; this.showCatName = null; this.showVal = null; this.separator = null; this.horAxisProps = null; this.vertAxisProps = null; this.range = null; this.inColumns = null; this.showMarker = null; this.bLine = null; this.smooth = null; this.showHorAxis = null; this.showVerAxis = null; } asc_ChartSettings.prototype = { equalBool: function(a, b){ return ((!!a) === (!!b)); }, isEqual: function(oPr){ if(!oPr){ return false; } if(this.style !== oPr.style){ return false; } if(this.title !== oPr.title){ return false; } if(this.rowCols !== oPr.rowCols){ return false; } if(this.horAxisLabel !== oPr.horAxisLabel){ return false; } if(this.vertAxisLabel !== oPr.vertAxisLabel){ return false; } if(this.legendPos !== oPr.legendPos){ return false; } if(this.dataLabelsPos !== oPr.dataLabelsPos){ return false; } if(this.vertAx !== oPr.vertAx){ return false; } if(this.horAx !== oPr.horAx){ return false; } if(this.horGridLines !== oPr.horGridLines){ return false; } if(this.vertGridLines !== oPr.vertGridLines){ return false; } if(this.type !== oPr.type){ return false; } if(!this.equalBool(this.showSerName, oPr.showSerName)){ return false; } if(!this.equalBool(this.showCatName, oPr.showCatName)){ return false; } if(!this.equalBool(this.showVal, oPr.showVal)){ return false; } if(this.separator !== oPr.separator && !(this.separator === ' ' && oPr.separator == null || oPr.separator === ' ' && this.separator == null)){ return false; } if(!this.horAxisProps){ if(oPr.horAxisProps){ return false; } } else{ if(!this.horAxisProps.isEqual(oPr.horAxisProps)){ return false; } } if(!this.vertAxisProps){ if(oPr.vertAxisProps){ return false; } } else{ if(!this.vertAxisProps.isEqual(oPr.vertAxisProps)){ return false; } } if(this.range !== oPr.range){ return false; } if(!this.equalBool(this.inColumns, oPr.inColumns)){ return false; } if(!this.equalBool(this.showMarker, oPr.showMarker)){ return false; } if(!this.equalBool(this.bLine, oPr.bLine)){ return false; } if(!this.equalBool(this.smooth, oPr.smooth)){ return false; } if(!this.equalBool(this.showHorAxis, oPr.showHorAxis)){ return false; } if(!this.equalBool(this.showVerAxis, oPr.showVerAxis)){ return false; } return true; }, putShowMarker: function (v) { this.showMarker = v; }, getShowMarker: function () { return this.showMarker; }, putLine: function (v) { this.bLine = v; }, getLine: function () { return this.bLine; }, putSmooth: function (v) { this.smooth = v; }, getSmooth: function () { return this.smooth; }, putStyle: function (index) { this.style = parseInt(index, 10); }, getStyle: function () { return this.style; }, putRange: function (range) { this.range = range; }, getRange: function () { return this.range; }, putInColumns: function (inColumns) { this.inColumns = inColumns; }, getInColumns: function () { return this.inColumns; }, putTitle: function (v) { this.title = v; }, getTitle: function () { return this.title; }, putRowCols: function (v) { this.rowCols = v; }, getRowCols: function () { return this.rowCols; }, putHorAxisLabel: function (v) { this.horAxisLabel = v; }, putVertAxisLabel: function (v) { this.vertAxisLabel = v; }, putLegendPos: function (v) { this.legendPos = v; }, putDataLabelsPos: function (v) { this.dataLabelsPos = v; }, putCatAx: function (v) { this.vertAx = v; }, putValAx: function (v) { this.horAx = v; }, getHorAxisLabel: function (v) { return this.horAxisLabel; }, getVertAxisLabel: function (v) { return this.vertAxisLabel; }, getLegendPos: function (v) { return this.legendPos; }, getDataLabelsPos: function (v) { return this.dataLabelsPos; }, getVertAx: function (v) { return this.vertAx; }, getHorAx: function (v) { return this.horAx; }, putHorGridLines: function (v) { this.horGridLines = v; }, getHorGridLines: function (v) { return this.horGridLines; }, putVertGridLines: function (v) { this.vertGridLines = v; }, getVertGridLines: function () { return this.vertGridLines; }, getType: function () { return this.type; }, putType: function (v) { return this.type = v; }, putShowSerName: function (v) { return this.showSerName = v; }, putShowCatName: function (v) { return this.showCatName = v; }, putShowVal: function (v) { return this.showVal = v; }, getShowSerName: function () { return this.showSerName; }, getShowCatName: function () { return this.showCatName; }, getShowVal: function () { return this.showVal; }, putSeparator: function (v) { this.separator = v; }, getSeparator: function () { return this.separator; }, putHorAxisProps: function (v) { this.horAxisProps = v; }, getHorAxisProps: function () { return this.horAxisProps; }, putVertAxisProps: function (v) { this.vertAxisProps = v; }, getVertAxisProps: function () { return this.vertAxisProps; }, checkSwapAxisProps: function(bHBar){ var hor_axis_settings = this.getHorAxisProps(); var vert_axis_settings = this.getVertAxisProps(); if(!bHBar){ if(hor_axis_settings){ if(hor_axis_settings.getAxisType() !== c_oAscAxisType.cat){ if(vert_axis_settings && vert_axis_settings.getAxisType() === c_oAscAxisType.cat){ this.putHorAxisProps(vert_axis_settings); } else{ var new_hor_axis_settings = new asc_CatAxisSettings(); new_hor_axis_settings.setDefault(); this.putHorAxisProps(new_hor_axis_settings); } } } else{ var new_hor_axis_settings = new asc_CatAxisSettings(); new_hor_axis_settings.setDefault(); this.putHorAxisProps(new_hor_axis_settings); } if(vert_axis_settings){ if(vert_axis_settings.getAxisType() !== c_oAscAxisType.val){ if(hor_axis_settings && hor_axis_settings.getAxisType() === c_oAscAxisType.val){ this.putVertAxisProps(hor_axis_settings); } else{ var new_vert_axis_settings = new asc_ValAxisSettings(); new_vert_axis_settings.setDefault(); this.putVertAxisProps(new_vert_axis_settings); } } } else{ var new_vert_axis_settings = new asc_ValAxisSettings(); new_vert_axis_settings.setDefault(); this.putVertAxisProps(new_vert_axis_settings); } } else{ if(hor_axis_settings){ if(hor_axis_settings.getAxisType() !== c_oAscAxisType.val){ if(vert_axis_settings && vert_axis_settings.getAxisType() === c_oAscAxisType.val){ this.putHorAxisProps(vert_axis_settings); } else{ var new_hor_axis_settings = new asc_ValAxisSettings(); new_hor_axis_settings.setDefault(); this.putHorAxisProps(new_hor_axis_settings); } } } else{ var new_hor_axis_settings = new asc_ValAxisSettings(); new_hor_axis_settings.setDefault(); this.putHorAxisProps(new_hor_axis_settings); } if(vert_axis_settings){ if(vert_axis_settings.getAxisType() !== c_oAscAxisType.cat){ if(hor_axis_settings && hor_axis_settings.getAxisType() === c_oAscAxisType.cat){ this.putVertAxisProps(hor_axis_settings); } else{ var new_vert_axis_settings = new asc_CatAxisSettings(); new_vert_axis_settings.setDefault(); this.putVertAxisProps(new_vert_axis_settings); } } } else{ var new_vert_axis_settings = new asc_CatAxisSettings(); new_vert_axis_settings.setDefault(); this.putVertAxisProps(new_vert_axis_settings); } } }, changeType: function (type) { if(null === this.type){ this.putType(type); return; } if (this.type === type) { return; } var bSwapGridLines = ((this.type === c_oAscChartTypeSettings.hBarNormal || this.type === c_oAscChartTypeSettings.hBarStacked || this.type === c_oAscChartTypeSettings.hBarStackedPer || this.type === c_oAscChartTypeSettings.hBarNormal3d || this.type === c_oAscChartTypeSettings.hBarStacked3d || this.type === c_oAscChartTypeSettings.hBarStackedPer3d) !== (type === c_oAscChartTypeSettings.hBarNormal || type === c_oAscChartTypeSettings.hBarStacked || type === c_oAscChartTypeSettings.hBarStackedPer || this.type === c_oAscChartTypeSettings.hBarNormal3d || this.type === c_oAscChartTypeSettings.hBarStacked3d || this.type === c_oAscChartTypeSettings.hBarStackedPer3d) ); var bSwapLines = (( type === c_oAscChartTypeSettings.lineNormal || type === c_oAscChartTypeSettings.lineStacked || type === c_oAscChartTypeSettings.lineStackedPer || type === c_oAscChartTypeSettings.lineNormalMarker || type === c_oAscChartTypeSettings.lineStackedMarker || type === c_oAscChartTypeSettings.lineStackedPerMarker || type === c_oAscChartTypeSettings.line3d ) !== ( this.type === c_oAscChartTypeSettings.lineNormal || this.type === c_oAscChartTypeSettings.lineStacked || this.type === c_oAscChartTypeSettings.lineStackedPer || this.type === c_oAscChartTypeSettings.lineNormalMarker || this.type === c_oAscChartTypeSettings.lineStackedMarker || this.type === c_oAscChartTypeSettings.lineStackedPerMarker || this.type === c_oAscChartTypeSettings.line3d )); var bSwapScatter = ((this.type === c_oAscChartTypeSettings.scatter) !== (type === c_oAscChartTypeSettings.scatter)); var nOldType = this.type; this.putType(type); var hor_axis_settings = this.getHorAxisProps(); var vert_axis_settings = this.getVertAxisProps(); var new_hor_axis_settings, new_vert_axis_settings, oTempVal; if (bSwapGridLines) { oTempVal = hor_axis_settings; hor_axis_settings = vert_axis_settings; vert_axis_settings = oTempVal; this.putHorAxisProps(hor_axis_settings); this.putVertAxisProps(vert_axis_settings); oTempVal = this.horGridLines; this.putHorGridLines(this.vertGridLines); this.putVertGridLines(oTempVal); } switch (type) { case c_oAscChartTypeSettings.pie : case c_oAscChartTypeSettings.pie3d : case c_oAscChartTypeSettings.doughnut : { this.putHorAxisProps(null); this.putVertAxisProps(null); this.putHorAxisLabel(null); this.putVertAxisLabel(null); this.putShowHorAxis(null); this.putShowVerAxis(null); break; } case c_oAscChartTypeSettings.barNormal : case c_oAscChartTypeSettings.barStacked : case c_oAscChartTypeSettings.barStackedPer : case c_oAscChartTypeSettings.barNormal3d : case c_oAscChartTypeSettings.barStacked3d : case c_oAscChartTypeSettings.barStackedPer3d : case c_oAscChartTypeSettings.barNormal3dPerspective : case c_oAscChartTypeSettings.lineNormal : case c_oAscChartTypeSettings.lineStacked : case c_oAscChartTypeSettings.lineStackedPer : case c_oAscChartTypeSettings.lineNormalMarker : case c_oAscChartTypeSettings.lineStackedMarker : case c_oAscChartTypeSettings.lineStackedPerMarker: case c_oAscChartTypeSettings.line3d: case c_oAscChartTypeSettings.areaNormal : case c_oAscChartTypeSettings.areaStacked : case c_oAscChartTypeSettings.areaStackedPer : case c_oAscChartTypeSettings.stock : case c_oAscChartTypeSettings.surfaceNormal : case c_oAscChartTypeSettings.surfaceWireframe : case c_oAscChartTypeSettings.contourNormal : case c_oAscChartTypeSettings.contourWireframe : { this.checkSwapAxisProps(false); if (bSwapLines) { this.putShowMarker(false); this.putSmooth(null); this.putLine(true); } if (nOldType === c_oAscChartTypeSettings.hBarNormal || nOldType === c_oAscChartTypeSettings.hBarStacked || nOldType === c_oAscChartTypeSettings.hBarStackedPer || nOldType === c_oAscChartTypeSettings.hBarNormal3d || nOldType === c_oAscChartTypeSettings.hBarStacked3d || nOldType === c_oAscChartTypeSettings.hBarStackedPer3d) { var bTemp = this.showHorAxis; this.putShowHorAxis(this.showVerAxis); this.putShowVerAxis(bTemp); } else if (nOldType === c_oAscChartTypeSettings.pie || nOldType === c_oAscChartTypeSettings.pie3d || nOldType === c_oAscChartTypeSettings.doughnut) { this.putShowHorAxis(true); this.putShowVerAxis(true); } var oHorAxisProps = this.getHorAxisProps(); if(oHorAxisProps && oHorAxisProps.getAxisType() === c_oAscAxisType.cat){ if(type === c_oAscChartTypeSettings.areaNormal || type === c_oAscChartTypeSettings.areaStacked || type === c_oAscChartTypeSettings.areaStackedPer|| type === c_oAscChartTypeSettings.stock || type === c_oAscChartTypeSettings.surfaceNormal || type === c_oAscChartTypeSettings.surfaceWireframe || type === c_oAscChartTypeSettings.contourNormal || type === c_oAscChartTypeSettings.contourWireframe){ oHorAxisProps.putLabelsPosition(Asc.c_oAscLabelsPosition.byDivisions); } else{ oHorAxisProps.putLabelsPosition(Asc.c_oAscLabelsPosition.betweenDivisions); } } break; } case c_oAscChartTypeSettings.hBarNormal : case c_oAscChartTypeSettings.hBarStacked : case c_oAscChartTypeSettings.hBarStackedPer : case c_oAscChartTypeSettings.hBarNormal3d : case c_oAscChartTypeSettings.hBarStacked3d : case c_oAscChartTypeSettings.hBarStackedPer3d : { this.checkSwapAxisProps(true); if (nOldType === c_oAscChartTypeSettings.pie || nOldType === c_oAscChartTypeSettings.pie3d || nOldType === c_oAscChartTypeSettings.doughnut) { this.putShowHorAxis(true); this.putShowVerAxis(true); } else if (nOldType !== c_oAscChartTypeSettings.hBarNormal && nOldType !== c_oAscChartTypeSettings.hBarStacked && nOldType !== c_oAscChartTypeSettings.hBarStackedPer || nOldType !== c_oAscChartTypeSettings.hBarNormal3d || nOldType !== c_oAscChartTypeSettings.hBarStacked3d || nOldType !== c_oAscChartTypeSettings.hBarStackedPer3d) { var bTemp = this.showHorAxis; this.putShowHorAxis(this.showVerAxis); this.putShowVerAxis(bTemp); } var oVertAxisProps = this.getVertAxisProps(); if(oVertAxisProps && oVertAxisProps.getAxisType() === c_oAscAxisType.cat){ oVertAxisProps.putLabelsPosition(Asc.c_oAscLabelsPosition.betweenDivisions); } //this.putHorGridLines(c_oAscGridLinesSettings.none); //this.putVertGridLines(c_oAscGridLinesSettings.major); break; } case c_oAscChartTypeSettings.scatter : case c_oAscChartTypeSettings.scatterLine : case c_oAscChartTypeSettings.scatterLineMarker : case c_oAscChartTypeSettings.scatterMarker : case c_oAscChartTypeSettings.scatterNone : case c_oAscChartTypeSettings.scatterSmooth : case c_oAscChartTypeSettings.scatterSmoothMarker : { if (!hor_axis_settings || hor_axis_settings.getAxisType() !== c_oAscAxisType.val) { new_hor_axis_settings = new asc_ValAxisSettings(); new_hor_axis_settings.setDefault(); this.putHorAxisProps(new_hor_axis_settings); } if (!vert_axis_settings || vert_axis_settings.getAxisType() !== c_oAscAxisType.val) { new_vert_axis_settings = new asc_ValAxisSettings(); new_vert_axis_settings.setDefault(); this.putVertAxisProps(new_vert_axis_settings); } //this.putHorGridLines(c_oAscGridLinesSettings.major); //this.putVertGridLines(c_oAscGridLinesSettings.major); if (bSwapScatter) { this.putShowMarker(true); this.putSmooth(null); this.putLine(false); } if (nOldType === c_oAscChartTypeSettings.hBarNormal || nOldType === c_oAscChartTypeSettings.hBarStacked || nOldType === c_oAscChartTypeSettings.hBarStackedPer || nOldType === c_oAscChartTypeSettings.hBarNormal3d || nOldType === c_oAscChartTypeSettings.hBarStacked3d || nOldType === c_oAscChartTypeSettings.hBarStackedPer3d) { var bTemp = this.showHorAxis; this.putShowHorAxis(this.showVerAxis); this.putShowVerAxis(bTemp); } else if (nOldType === c_oAscChartTypeSettings.pie || nOldType === c_oAscChartTypeSettings.pie3d || nOldType === c_oAscChartTypeSettings.doughnut) { this.putShowHorAxis(true); this.putShowVerAxis(true); } break; } } }, putShowHorAxis: function (v) { this.showHorAxis = v; }, getShowHorAxis: function () { return this.showHorAxis; }, putShowVerAxis: function (v) { this.showVerAxis = v; }, getShowVerAxis: function () { return this.showVerAxis; } }; /** @constructor */ function asc_CRect(x, y, width, height) { // private members this._x = x; this._y = y; this._width = width; this._height = height; } asc_CRect.prototype = { asc_getX: function () { return this._x; }, asc_getY: function () { return this._y; }, asc_getWidth: function () { return this._width; }, asc_getHeight: function () { return this._height; } }; /** * Класс CColor для работы с цветами * ----------------------------------------------------------------------------- * * @constructor * @memberOf window */ function CColor(r, g, b, a) { this.r = (undefined == r) ? 0 : r; this.g = (undefined == g) ? 0 : g; this.b = (undefined == b) ? 0 : b; this.a = (undefined == a) ? 1 : a; } CColor.prototype = { constructor: CColor, getR: function () { return this.r }, get_r: function () { return this.r }, put_r: function (v) { this.r = v; this.hex = undefined; }, getG: function () { return this.g }, get_g: function () { return this.g; }, put_g: function (v) { this.g = v; this.hex = undefined; }, getB: function () { return this.b }, get_b: function () { return this.b; }, put_b: function (v) { this.b = v; this.hex = undefined; }, getA: function () { return this.a }, get_hex: function () { if (!this.hex) { var r = this.r.toString(16); var g = this.g.toString(16); var b = this.b.toString(16); this.hex = ( r.length == 1 ? "0" + r : r) + ( g.length == 1 ? "0" + g : g) + ( b.length == 1 ? "0" + b : b); } return this.hex; }, Compare: function (Color) { return (this.r === Color.r && this.g === Color.g && this.b === Color.b && this.a === Color.a); }, Copy: function () { return new CColor(this.r, this.g, this.b, this.a); } }; /** @constructor */ function asc_CColor() { this.type = c_oAscColor.COLOR_TYPE_SRGB; this.value = null; this.r = 0; this.g = 0; this.b = 0; this.a = 255; this.Auto = false; this.Mods = []; this.ColorSchemeId = -1; if (1 === arguments.length) { this.r = arguments[0].r; this.g = arguments[0].g; this.b = arguments[0].b; } else { if (3 <= arguments.length) { this.r = arguments[0]; this.g = arguments[1]; this.b = arguments[2]; } if (4 === arguments.length) { this.a = arguments[3]; } } } asc_CColor.prototype = { constructor: asc_CColor, asc_getR: function () { return this.r }, asc_putR: function (v) { this.r = v; this.hex = undefined; }, asc_getG: function () { return this.g; }, asc_putG: function (v) { this.g = v; this.hex = undefined; }, asc_getB: function () { return this.b; }, asc_putB: function (v) { this.b = v; this.hex = undefined; }, asc_getA: function () { return this.a; }, asc_putA: function (v) { this.a = v; this.hex = undefined; }, asc_getType: function () { return this.type; }, asc_putType: function (v) { this.type = v; }, asc_getValue: function () { return this.value; }, asc_putValue: function (v) { this.value = v; }, asc_getHex: function () { if (!this.hex) { var a = this.a.toString(16); var r = this.r.toString(16); var g = this.g.toString(16); var b = this.b.toString(16); this.hex = ( a.length == 1 ? "0" + a : a) + ( r.length == 1 ? "0" + r : r) + ( g.length == 1 ? "0" + g : g) + ( b.length == 1 ? "0" + b : b); } return this.hex; }, asc_getColor: function () { return new CColor(this.r, this.g, this.b); }, asc_putAuto: function (v) { this.Auto = v; }, asc_getAuto: function () { return this.Auto; } }; /** @constructor */ function asc_CTextBorder(obj) { if (obj) { if (obj.Color instanceof asc_CColor) { this.Color = obj.Color; } else { this.Color = (undefined != obj.Color && null != obj.Color) ? CreateAscColorCustom(obj.Color.r, obj.Color.g, obj.Color.b) : null; } this.Size = (undefined != obj.Size) ? obj.Size : null; this.Value = (undefined != obj.Value) ? obj.Value : null; this.Space = (undefined != obj.Space) ? obj.Space : null; } else { this.Color = CreateAscColorCustom(0, 0, 0); this.Size = 0.5 * window["AscCommonWord"].g_dKoef_pt_to_mm; this.Value = window["AscCommonWord"].border_Single; this.Space = 0; } } asc_CTextBorder.prototype.asc_getColor = function () { return this.Color; }; asc_CTextBorder.prototype.asc_putColor = function (v) { this.Color = v; }; asc_CTextBorder.prototype.asc_getSize = function () { return this.Size; }; asc_CTextBorder.prototype.asc_putSize = function (v) { this.Size = v; }; asc_CTextBorder.prototype.asc_getValue = function () { return this.Value; }; asc_CTextBorder.prototype.asc_putValue = function (v) { this.Value = v; }; asc_CTextBorder.prototype.asc_getSpace = function () { return this.Space; }; asc_CTextBorder.prototype.asc_putSpace = function (v) { this.Space = v; }; asc_CTextBorder.prototype.asc_getForSelectedCells = function () { return this.ForSelectedCells; }; asc_CTextBorder.prototype.asc_putForSelectedCells = function (v) { this.ForSelectedCells = v; }; /** @constructor */ function asc_CParagraphBorders(obj) { if (obj) { this.Left = (undefined != obj.Left && null != obj.Left) ? new asc_CTextBorder(obj.Left) : null; this.Top = (undefined != obj.Top && null != obj.Top) ? new asc_CTextBorder(obj.Top) : null; this.Right = (undefined != obj.Right && null != obj.Right) ? new asc_CTextBorder(obj.Right) : null; this.Bottom = (undefined != obj.Bottom && null != obj.Bottom) ? new asc_CTextBorder(obj.Bottom) : null; this.Between = (undefined != obj.Between && null != obj.Between) ? new asc_CTextBorder(obj.Between) : null; } else { this.Left = null; this.Top = null; this.Right = null; this.Bottom = null; this.Between = null; } } asc_CParagraphBorders.prototype = { asc_getLeft: function () { return this.Left; }, asc_putLeft: function (v) { this.Left = (v) ? new asc_CTextBorder(v) : null; }, asc_getTop: function () { return this.Top; }, asc_putTop: function (v) { this.Top = (v) ? new asc_CTextBorder(v) : null; }, asc_getRight: function () { return this.Right; }, asc_putRight: function (v) { this.Right = (v) ? new asc_CTextBorder(v) : null; }, asc_getBottom: function () { return this.Bottom; }, asc_putBottom: function (v) { this.Bottom = (v) ? new asc_CTextBorder(v) : null; }, asc_getBetween: function () { return this.Between; }, asc_putBetween: function (v) { this.Between = (v) ? new asc_CTextBorder(v) : null; } }; /** @constructor */ function asc_CListType(obj) { if (obj) { this.Type = (undefined == obj.Type) ? null : obj.Type; this.SubType = (undefined == obj.Type) ? null : obj.SubType; } else { this.Type = null; this.SubType = null; } } asc_CListType.prototype.asc_getListType = function () { return this.Type; }; asc_CListType.prototype.asc_getListSubType = function () { return this.SubType; }; /** @constructor */ function asc_CTextFontFamily(obj) { if (obj) { this.Name = (undefined != obj.Name) ? obj.Name : null; // "Times New Roman" this.Index = (undefined != obj.Index) ? obj.Index : null; // -1 } else { this.Name = "Times New Roman"; this.Index = -1; } } asc_CTextFontFamily.prototype = { asc_getName: function () { return this.Name; }, asc_getIndex: function () { return this.Index; } }; /** @constructor */ function asc_CParagraphTab(Pos, Value, Leader) { this.Pos = Pos; this.Value = Value; this.Leader = Leader; } asc_CParagraphTab.prototype.asc_getValue = function() { return this.Value; }; asc_CParagraphTab.prototype.asc_putValue = function(v) { this.Value = v; }; asc_CParagraphTab.prototype.asc_getPos = function() { return this.Pos; }; asc_CParagraphTab.prototype.asc_putPos = function(v) { this.Pos = v; }; asc_CParagraphTab.prototype.asc_getLeader = function() { if (Asc.c_oAscTabLeader.Heavy === this.Leader) return Asc.c_oAscTabLeader.Underscore; return this.Leader; }; asc_CParagraphTab.prototype.asc_putLeader = function(v) { this.Leader = v; }; /** @constructor */ function asc_CParagraphTabs(obj) { this.Tabs = []; if (undefined != obj) { var Count = obj.Tabs.length; for (var Index = 0; Index < Count; Index++) { this.Tabs.push(new asc_CParagraphTab(obj.Tabs[Index].Pos, obj.Tabs[Index].Value, obj.Tabs[Index].Leader)); } } } asc_CParagraphTabs.prototype = { asc_getCount: function () { return this.Tabs.length; }, asc_getTab: function (Index) { return this.Tabs[Index]; }, asc_addTab: function (Tab) { this.Tabs.push(Tab) }, asc_clear: function () { this.Tabs.length = 0; } }; /** @constructor */ function asc_CParagraphShd(obj) { if (obj) { this.Value = (undefined != obj.Value) ? obj.Value : null; if (obj.Unifill && obj.Unifill.fill && obj.Unifill.fill.type === c_oAscFill.FILL_TYPE_SOLID && obj.Unifill.fill.color) { this.Color = CreateAscColor(obj.Unifill.fill.color); } else { this.Color = (undefined != obj.Color && null != obj.Color) ? CreateAscColorCustom(obj.Color.r, obj.Color.g, obj.Color.b) : null; } } else { this.Value = Asc.c_oAscShdNil; this.Color = CreateAscColorCustom(255, 255, 255); } } asc_CParagraphShd.prototype = { asc_getValue: function () { return this.Value; }, asc_putValue: function (v) { this.Value = v; }, asc_getColor: function () { return this.Color; }, asc_putColor: function (v) { this.Color = (v) ? v : null; } }; /** @constructor */ function asc_CParagraphFrame(obj) { if (obj) { this.FromDropCapMenu = false; this.DropCap = obj.DropCap; this.H = obj.H; this.HAnchor = obj.HAnchor; this.HRule = obj.HRule; this.HSpace = obj.HSpace; this.Lines = obj.Lines; this.VAnchor = obj.VAnchor; this.VSpace = obj.VSpace; this.W = obj.W; this.Wrap = obj.Wrap; this.X = obj.X; this.XAlign = obj.XAlign; this.Y = obj.Y; this.YAlign = obj.YAlign; this.Brd = (undefined != obj.Brd && null != obj.Brd) ? new asc_CParagraphBorders(obj.Brd) : null; this.Shd = (undefined != obj.Shd && null != obj.Shd) ? new asc_CParagraphShd(obj.Shd) : null; this.FontFamily = (undefined != obj.FontFamily && null != obj.FontFamily) ? new asc_CTextFontFamily(obj.FontFamily) : null; } else { this.FromDropCapMenu = false; this.DropCap = undefined; this.H = undefined; this.HAnchor = undefined; this.HRule = undefined; this.HSpace = undefined; this.Lines = undefined; this.VAnchor = undefined; this.VSpace = undefined; this.W = undefined; this.Wrap = undefined; this.X = undefined; this.XAlign = undefined; this.Y = undefined; this.YAlign = undefined; this.Shd = null; this.Brd = null; this.FontFamily = null; } } asc_CParagraphFrame.prototype.asc_getDropCap = function () { return this.DropCap; }; asc_CParagraphFrame.prototype.asc_putDropCap = function (v) { this.DropCap = v; }; asc_CParagraphFrame.prototype.asc_getH = function () { return this.H; }; asc_CParagraphFrame.prototype.asc_putH = function (v) { this.H = v; }; asc_CParagraphFrame.prototype.asc_getHAnchor = function () { return this.HAnchor; }; asc_CParagraphFrame.prototype.asc_putHAnchor = function (v) { this.HAnchor = v; }; asc_CParagraphFrame.prototype.asc_getHRule = function () { return this.HRule; }; asc_CParagraphFrame.prototype.asc_putHRule = function (v) { this.HRule = v; }; asc_CParagraphFrame.prototype.asc_getHSpace = function () { return this.HSpace; }; asc_CParagraphFrame.prototype.asc_putHSpace = function (v) { this.HSpace = v; }; asc_CParagraphFrame.prototype.asc_getLines = function () { return this.Lines; }; asc_CParagraphFrame.prototype.asc_putLines = function (v) { this.Lines = v; }; asc_CParagraphFrame.prototype.asc_getVAnchor = function () { return this.VAnchor; }; asc_CParagraphFrame.prototype.asc_putVAnchor = function (v) { this.VAnchor = v; }; asc_CParagraphFrame.prototype.asc_getVSpace = function () { return this.VSpace; }; asc_CParagraphFrame.prototype.asc_putVSpace = function (v) { this.VSpace = v; }; asc_CParagraphFrame.prototype.asc_getW = function () { return this.W; }; asc_CParagraphFrame.prototype.asc_putW = function (v) { this.W = v; }; asc_CParagraphFrame.prototype.asc_getWrap = function () { return this.Wrap; }; asc_CParagraphFrame.prototype.asc_putWrap = function (v) { this.Wrap = v; }; asc_CParagraphFrame.prototype.asc_getX = function () { return this.X; }; asc_CParagraphFrame.prototype.asc_putX = function (v) { this.X = v; }; asc_CParagraphFrame.prototype.asc_getXAlign = function () { return this.XAlign; }; asc_CParagraphFrame.prototype.asc_putXAlign = function (v) { this.XAlign = v; }; asc_CParagraphFrame.prototype.asc_getY = function () { return this.Y; }; asc_CParagraphFrame.prototype.asc_putY = function (v) { this.Y = v; }; asc_CParagraphFrame.prototype.asc_getYAlign = function () { return this.YAlign; }; asc_CParagraphFrame.prototype.asc_putYAlign = function (v) { this.YAlign = v; }; asc_CParagraphFrame.prototype.asc_getBorders = function () { return this.Brd; }; asc_CParagraphFrame.prototype.asc_putBorders = function (v) { this.Brd = v; }; asc_CParagraphFrame.prototype.asc_getShade = function () { return this.Shd; }; asc_CParagraphFrame.prototype.asc_putShade = function (v) { this.Shd = v; }; asc_CParagraphFrame.prototype.asc_getFontFamily = function () { return this.FontFamily; }; asc_CParagraphFrame.prototype.asc_putFontFamily = function (v) { this.FontFamily = v; }; asc_CParagraphFrame.prototype.asc_putFromDropCapMenu = function (v) { this.FromDropCapMenu = v; }; /** @constructor */ function asc_CParagraphSpacing(obj) { if (obj) { this.Line = (undefined != obj.Line ) ? obj.Line : null; // Расстояние между строками внутри абзаца this.LineRule = (undefined != obj.LineRule) ? obj.LineRule : null; // Тип расстрояния между строками this.Before = (undefined != obj.Before ) ? obj.Before : null; // Дополнительное расстояние до абзаца this.After = (undefined != obj.After ) ? obj.After : null; // Дополнительное расстояние после абзаца } else { this.Line = undefined; // Расстояние между строками внутри абзаца this.LineRule = undefined; // Тип расстрояния между строками this.Before = undefined; // Дополнительное расстояние до абзаца this.After = undefined; // Дополнительное расстояние после абзаца } } asc_CParagraphSpacing.prototype = { asc_getLine: function () { return this.Line; }, asc_getLineRule: function () { return this.LineRule; }, asc_getBefore: function () { return this.Before; }, asc_getAfter: function () { return this.After; } }; /** @constructor */ function asc_CParagraphInd(obj) { if (obj) { this.Left = (undefined != obj.Left ) ? obj.Left : null; // Левый отступ this.Right = (undefined != obj.Right ) ? obj.Right : null; // Правый отступ this.FirstLine = (undefined != obj.FirstLine) ? obj.FirstLine : null; // Первая строка } else { this.Left = undefined; // Левый отступ this.Right = undefined; // Правый отступ this.FirstLine = undefined; // Первая строка } } asc_CParagraphInd.prototype = { asc_getLeft: function () { return this.Left; }, asc_putLeft: function (v) { this.Left = v; }, asc_getRight: function () { return this.Right; }, asc_putRight: function (v) { this.Right = v; }, asc_getFirstLine: function () { return this.FirstLine; }, asc_putFirstLine: function (v) { this.FirstLine = v; } }; /** @constructor */ function asc_CParagraphProperty(obj) { if (obj) { this.ContextualSpacing = (undefined != obj.ContextualSpacing) ? obj.ContextualSpacing : null; this.Ind = (undefined != obj.Ind && null != obj.Ind) ? new asc_CParagraphInd(obj.Ind) : null; this.KeepLines = (undefined != obj.KeepLines) ? obj.KeepLines : null; this.KeepNext = (undefined != obj.KeepNext) ? obj.KeepNext : undefined; this.WidowControl = (undefined != obj.WidowControl ? obj.WidowControl : undefined ); this.PageBreakBefore = (undefined != obj.PageBreakBefore) ? obj.PageBreakBefore : null; this.Spacing = (undefined != obj.Spacing && null != obj.Spacing) ? new asc_CParagraphSpacing(obj.Spacing) : null; this.Brd = (undefined != obj.Brd && null != obj.Brd) ? new asc_CParagraphBorders(obj.Brd) : null; this.Shd = (undefined != obj.Shd && null != obj.Shd) ? new asc_CParagraphShd(obj.Shd) : null; this.Tabs = (undefined != obj.Tabs) ? new asc_CParagraphTabs(obj.Tabs) : undefined; this.DefaultTab = obj.DefaultTab != null ? obj.DefaultTab : window["AscCommonWord"].Default_Tab_Stop; this.Locked = (undefined != obj.Locked && null != obj.Locked ) ? obj.Locked : false; this.CanAddTable = (undefined != obj.CanAddTable ) ? obj.CanAddTable : true; this.FramePr = (undefined != obj.FramePr ) ? new asc_CParagraphFrame(obj.FramePr) : undefined; this.CanAddDropCap = (undefined != obj.CanAddDropCap ) ? obj.CanAddDropCap : false; this.CanAddImage = (undefined != obj.CanAddImage ) ? obj.CanAddImage : false; this.Subscript = (undefined != obj.Subscript) ? obj.Subscript : undefined; this.Superscript = (undefined != obj.Superscript) ? obj.Superscript : undefined; this.SmallCaps = (undefined != obj.SmallCaps) ? obj.SmallCaps : undefined; this.AllCaps = (undefined != obj.AllCaps) ? obj.AllCaps : undefined; this.Strikeout = (undefined != obj.Strikeout) ? obj.Strikeout : undefined; this.DStrikeout = (undefined != obj.DStrikeout) ? obj.DStrikeout : undefined; this.TextSpacing = (undefined != obj.TextSpacing) ? obj.TextSpacing : undefined; this.Position = (undefined != obj.Position) ? obj.Position : undefined; } else { //ContextualSpacing : false, // Удалять ли интервал между параграфами одинакового стиля // // Ind : // { // Left : 0, // Левый отступ // Right : 0, // Правый отступ // FirstLine : 0 // Первая строка // }, // // Jc : align_Left, // Прилегание параграфа // // KeepLines : false, // переносить параграф на новую страницу, // // если на текущей он целиком не убирается // KeepNext : false, // переносить параграф вместе со следующим параграфом // // PageBreakBefore : false, // начинать параграф с новой страницы this.ContextualSpacing = undefined; this.Ind = new asc_CParagraphInd(); this.KeepLines = undefined; this.KeepNext = undefined; this.WidowControl = undefined; this.PageBreakBefore = undefined; this.Spacing = new asc_CParagraphSpacing(); this.Brd = undefined; this.Shd = undefined; this.Locked = false; this.CanAddTable = true; this.Tabs = undefined; this.Subscript = undefined; this.Superscript = undefined; this.SmallCaps = undefined; this.AllCaps = undefined; this.Strikeout = undefined; this.DStrikeout = undefined; this.TextSpacing = undefined; this.Position = undefined; } } asc_CParagraphProperty.prototype = { asc_getContextualSpacing: function () { return this.ContextualSpacing; }, asc_putContextualSpacing: function (v) { this.ContextualSpacing = v; }, asc_getInd: function () { return this.Ind; }, asc_putInd: function (v) { this.Ind = v; }, asc_getKeepLines: function () { return this.KeepLines; }, asc_putKeepLines: function (v) { this.KeepLines = v; }, asc_getKeepNext: function () { return this.KeepNext; }, asc_putKeepNext: function (v) { this.KeepNext = v; }, asc_getPageBreakBefore: function () { return this.PageBreakBefore; }, asc_putPageBreakBefore: function (v) { this.PageBreakBefore = v; }, asc_getWidowControl: function () { return this.WidowControl; }, asc_putWidowControl: function (v) { this.WidowControl = v; }, asc_getSpacing: function () { return this.Spacing; }, asc_putSpacing: function (v) { this.Spacing = v; }, asc_getBorders: function () { return this.Brd; }, asc_putBorders: function (v) { this.Brd = v; }, asc_getShade: function () { return this.Shd; }, asc_putShade: function (v) { this.Shd = v; }, asc_getLocked: function () { return this.Locked; }, asc_getCanAddTable: function () { return this.CanAddTable; }, asc_getSubscript: function () { return this.Subscript; }, asc_putSubscript: function (v) { this.Subscript = v; }, asc_getSuperscript: function () { return this.Superscript; }, asc_putSuperscript: function (v) { this.Superscript = v; }, asc_getSmallCaps: function () { return this.SmallCaps; }, asc_putSmallCaps: function (v) { this.SmallCaps = v; }, asc_getAllCaps: function () { return this.AllCaps; }, asc_putAllCaps: function (v) { this.AllCaps = v; }, asc_getStrikeout: function () { return this.Strikeout; }, asc_putStrikeout: function (v) { this.Strikeout = v; }, asc_getDStrikeout: function () { return this.DStrikeout; }, asc_putDStrikeout: function (v) { this.DStrikeout = v; }, asc_getTextSpacing: function () { return this.TextSpacing; }, asc_putTextSpacing: function (v) { this.TextSpacing = v; }, asc_getPosition: function () { return this.Position; }, asc_putPosition: function (v) { this.Position = v; }, asc_getTabs: function () { return this.Tabs; }, asc_putTabs: function (v) { this.Tabs = v; }, asc_getDefaultTab: function () { return this.DefaultTab; }, asc_putDefaultTab: function (v) { this.DefaultTab = v; }, asc_getFramePr: function () { return this.FramePr; }, asc_putFramePr: function (v) { this.FramePr = v; }, asc_getCanAddDropCap: function () { return this.CanAddDropCap; }, asc_getCanAddImage: function () { return this.CanAddImage; } }; /** @constructor */ function asc_CTexture() { this.Id = 0; this.Image = ""; } asc_CTexture.prototype = { asc_getId: function () { return this.Id; }, asc_getImage: function () { return this.Image; } }; /** @constructor */ function asc_CImageSize(width, height, isCorrect) { this.Width = (undefined == width) ? 0.0 : width; this.Height = (undefined == height) ? 0.0 : height; this.IsCorrect = isCorrect; } asc_CImageSize.prototype = { asc_getImageWidth: function () { return this.Width; }, asc_getImageHeight: function () { return this.Height; }, asc_getIsCorrect: function () { return this.IsCorrect; } }; /** @constructor */ function asc_CPaddings(obj) { if (obj) { this.Left = (undefined == obj.Left) ? null : obj.Left; this.Top = (undefined == obj.Top) ? null : obj.Top; this.Bottom = (undefined == obj.Bottom) ? null : obj.Bottom; this.Right = (undefined == obj.Right) ? null : obj.Right; } else { this.Left = null; this.Top = null; this.Bottom = null; this.Right = null; } } asc_CPaddings.prototype = { asc_getLeft: function () { return this.Left; }, asc_putLeft: function (v) { this.Left = v; }, asc_getTop: function () { return this.Top; }, asc_putTop: function (v) { this.Top = v; }, asc_getBottom: function () { return this.Bottom; }, asc_putBottom: function (v) { this.Bottom = v; }, asc_getRight: function () { return this.Right; }, asc_putRight: function (v) { this.Right = v; } }; /** @constructor */ function asc_CShapeProperty() { this.type = null; // custom this.fill = null; this.stroke = null; this.paddings = null; this.canFill = true; this.canChangeArrows = false; this.bFromChart = false; this.bFromImage = false; this.Locked = false; this.w = null; this.h = null; this.vert = null; this.verticalTextAlign = null; this.textArtProperties = null; this.lockAspect = null; this.title = null; this.description = null; this.columnNumber = null; this.columnSpace = null; this.signatureId = null; } asc_CShapeProperty.prototype = { constructor: asc_CShapeProperty, asc_getType: function () { return this.type; }, asc_putType: function (v) { this.type = v; }, asc_getFill: function () { return this.fill; }, asc_putFill: function (v) { this.fill = v; }, asc_getStroke: function () { return this.stroke; }, asc_putStroke: function (v) { this.stroke = v; }, asc_getPaddings: function () { return this.paddings; }, asc_putPaddings: function (v) { this.paddings = v; }, asc_getCanFill: function () { return this.canFill; }, asc_putCanFill: function (v) { this.canFill = v; }, asc_getCanChangeArrows: function () { return this.canChangeArrows; }, asc_setCanChangeArrows: function (v) { this.canChangeArrows = v; }, asc_getFromChart: function () { return this.bFromChart; }, asc_setFromChart: function (v) { this.bFromChart = v; }, asc_getLocked: function () { return this.Locked; }, asc_setLocked: function (v) { this.Locked = v; }, asc_getWidth: function () { return this.w; }, asc_putWidth: function (v) { this.w = v; }, asc_getHeight: function () { return this.h; }, asc_putHeight: function (v) { this.h = v; }, asc_getVerticalTextAlign: function () { return this.verticalTextAlign; }, asc_putVerticalTextAlign: function (v) { this.verticalTextAlign = v; }, asc_getVert: function () { return this.vert; }, asc_putVert: function (v) { this.vert = v; }, asc_getTextArtProperties: function () { return this.textArtProperties; }, asc_putTextArtProperties: function (v) { this.textArtProperties = v; }, asc_getLockAspect: function () { return this.lockAspect }, asc_putLockAspect: function (v) { this.lockAspect = v; }, asc_getTitle: function () { return this.title; }, asc_putTitle: function (v) { this.title = v; }, asc_getDescription: function () { return this.description; }, asc_putDescription: function (v) { this.description = v; }, asc_getColumnNumber: function(){ return this.columnNumber; }, asc_putColumnNumber: function(v){ this.columnNumber = v; }, asc_getColumnSpace: function(){ return this.columnSpace; }, asc_putColumnSpace: function(v){ this.columnSpace = v; }, asc_getSignatureId: function(){ return this.signatureId; }, asc_putSignatureId: function(v){ this.signatureId = v; }, asc_getFromImage: function(){ return this.bFromImage; }, asc_putFromImage: function(v){ this.bFromImage = v; } }; /** @constructor */ function asc_TextArtProperties(obj) { if (obj) { this.Fill = obj.Fill;//asc_Fill this.Line = obj.Line;//asc_Stroke this.Form = obj.Form;//srting this.Style = obj.Style;// } else { this.Fill = undefined; this.Line = undefined; this.Form = undefined; this.Style = undefined; } } asc_TextArtProperties.prototype.asc_putFill = function (oAscFill) { this.Fill = oAscFill; }; asc_TextArtProperties.prototype.asc_getFill = function () { return this.Fill; }; asc_TextArtProperties.prototype.asc_putLine = function (oAscStroke) { this.Line = oAscStroke; }; asc_TextArtProperties.prototype.asc_getLine = function () { return this.Line; }; asc_TextArtProperties.prototype.asc_putForm = function (sForm) { this.Form = sForm; }; asc_TextArtProperties.prototype.asc_getForm = function () { return this.Form; }; asc_TextArtProperties.prototype.asc_putStyle = function (Style) { this.Style = Style; }; asc_TextArtProperties.prototype.asc_getStyle = function () { return this.Style; }; function CImagePositionH(obj) { if (obj) { this.RelativeFrom = ( undefined === obj.RelativeFrom ) ? undefined : obj.RelativeFrom; this.UseAlign = ( undefined === obj.UseAlign ) ? undefined : obj.UseAlign; this.Align = ( undefined === obj.Align ) ? undefined : obj.Align; this.Value = ( undefined === obj.Value ) ? undefined : obj.Value; this.Percent = ( undefined === obj.Percent ) ? undefined : obj.Percent; } else { this.RelativeFrom = undefined; this.UseAlign = undefined; this.Align = undefined; this.Value = undefined; this.Percent = undefined; } } CImagePositionH.prototype.get_RelativeFrom = function () { return this.RelativeFrom; }; CImagePositionH.prototype.put_RelativeFrom = function (v) { this.RelativeFrom = v; }; CImagePositionH.prototype.get_UseAlign = function () { return this.UseAlign; }; CImagePositionH.prototype.put_UseAlign = function (v) { this.UseAlign = v; }; CImagePositionH.prototype.get_Align = function () { return this.Align; }; CImagePositionH.prototype.put_Align = function (v) { this.Align = v; }; CImagePositionH.prototype.get_Value = function () { return this.Value; }; CImagePositionH.prototype.put_Value = function (v) { this.Value = v; }; CImagePositionH.prototype.get_Percent = function () { return this.Percent }; CImagePositionH.prototype.put_Percent = function (v) { this.Percent = v; }; function CImagePositionV(obj) { if (obj) { this.RelativeFrom = ( undefined === obj.RelativeFrom ) ? undefined : obj.RelativeFrom; this.UseAlign = ( undefined === obj.UseAlign ) ? undefined : obj.UseAlign; this.Align = ( undefined === obj.Align ) ? undefined : obj.Align; this.Value = ( undefined === obj.Value ) ? undefined : obj.Value; this.Percent = ( undefined === obj.Percent ) ? undefined : obj.Percent; } else { this.RelativeFrom = undefined; this.UseAlign = undefined; this.Align = undefined; this.Value = undefined; this.Percent = undefined; } } CImagePositionV.prototype.get_RelativeFrom = function () { return this.RelativeFrom; }; CImagePositionV.prototype.put_RelativeFrom = function (v) { this.RelativeFrom = v; }; CImagePositionV.prototype.get_UseAlign = function () { return this.UseAlign; }; CImagePositionV.prototype.put_UseAlign = function (v) { this.UseAlign = v; }; CImagePositionV.prototype.get_Align = function () { return this.Align; }; CImagePositionV.prototype.put_Align = function (v) { this.Align = v; }; CImagePositionV.prototype.get_Value = function () { return this.Value; }; CImagePositionV.prototype.put_Value = function (v) { this.Value = v; }; CImagePositionV.prototype.get_Percent = function () { return this.Percent }; CImagePositionV.prototype.put_Percent = function (v) { this.Percent = v; }; function CPosition(obj) { if (obj) { this.X = (undefined == obj.X) ? null : obj.X; this.Y = (undefined == obj.Y) ? null : obj.Y; } else { this.X = null; this.Y = null; } } CPosition.prototype.get_X = function () { return this.X; }; CPosition.prototype.put_X = function (v) { this.X = v; }; CPosition.prototype.get_Y = function () { return this.Y; }; CPosition.prototype.put_Y = function (v) { this.Y = v; }; /** @constructor */ function asc_CImgProperty(obj) { if (obj) { this.CanBeFlow = (undefined != obj.CanBeFlow) ? obj.CanBeFlow : true; this.Width = (undefined != obj.Width ) ? obj.Width : undefined; this.Height = (undefined != obj.Height ) ? obj.Height : undefined; this.WrappingStyle = (undefined != obj.WrappingStyle) ? obj.WrappingStyle : undefined; this.Paddings = (undefined != obj.Paddings ) ? new asc_CPaddings(obj.Paddings) : undefined; this.Position = (undefined != obj.Position ) ? new CPosition(obj.Position) : undefined; this.AllowOverlap = (undefined != obj.AllowOverlap ) ? obj.AllowOverlap : undefined; this.PositionH = (undefined != obj.PositionH ) ? new CImagePositionH(obj.PositionH) : undefined; this.PositionV = (undefined != obj.PositionV ) ? new CImagePositionV(obj.PositionV) : undefined; this.SizeRelH = (undefined != obj.SizeRelH) ? new CImagePositionH(obj.SizeRelH) : undefined; this.SizeRelV = (undefined != obj.SizeRelV) ? new CImagePositionV(obj.SizeRelV) : undefined; this.Internal_Position = (undefined != obj.Internal_Position) ? obj.Internal_Position : null; this.ImageUrl = (undefined != obj.ImageUrl) ? obj.ImageUrl : null; this.Locked = (undefined != obj.Locked) ? obj.Locked : false; this.lockAspect = (undefined != obj.lockAspect) ? obj.lockAspect : false; this.ChartProperties = (undefined != obj.ChartProperties) ? obj.ChartProperties : null; this.ShapeProperties = (undefined != obj.ShapeProperties) ? obj.ShapeProperties : null; this.ChangeLevel = (undefined != obj.ChangeLevel) ? obj.ChangeLevel : null; this.Group = (obj.Group != undefined) ? obj.Group : null; this.fromGroup = obj.fromGroup != undefined ? obj.fromGroup : null; this.severalCharts = obj.severalCharts != undefined ? obj.severalCharts : false; this.severalChartTypes = obj.severalChartTypes != undefined ? obj.severalChartTypes : undefined; this.severalChartStyles = obj.severalChartStyles != undefined ? obj.severalChartStyles : undefined; this.verticalTextAlign = obj.verticalTextAlign != undefined ? obj.verticalTextAlign : undefined; this.vert = obj.vert != undefined ? obj.vert : undefined; //oleObjects this.pluginGuid = obj.pluginGuid !== undefined ? obj.pluginGuid : undefined; this.pluginData = obj.pluginData !== undefined ? obj.pluginData : undefined; this.oleWidth = obj.oleWidth != undefined ? obj.oleWidth : undefined; this.oleHeight = obj.oleHeight != undefined ? obj.oleHeight : undefined; this.title = obj.title != undefined ? obj.title : undefined; this.description = obj.description != undefined ? obj.description : undefined; this.columnNumber = obj.columnNumber != undefined ? obj.columnNumber : undefined; this.columnSpace = obj.columnSpace != undefined ? obj.columnSpace : undefined; } else { this.CanBeFlow = true; this.Width = undefined; this.Height = undefined; this.WrappingStyle = undefined; this.Paddings = undefined; this.Position = undefined; this.PositionH = undefined; this.PositionV = undefined; this.SizeRelH = undefined; this.SizeRelV = undefined; this.Internal_Position = null; this.ImageUrl = null; this.Locked = false; this.ChartProperties = null; this.ShapeProperties = null; this.ImageProperties = null; this.ChangeLevel = null; this.Group = null; this.fromGroup = null; this.severalCharts = false; this.severalChartTypes = undefined; this.severalChartStyles = undefined; this.verticalTextAlign = undefined; this.vert = undefined; //oleObjects this.pluginGuid = undefined; this.pluginData = undefined; this.oleWidth = undefined; this.oleHeight = undefined; this.title = undefined; this.description = undefined; this.columnNumber = undefined; this.columnSpace = undefined; } } asc_CImgProperty.prototype = { constructor: asc_CImgProperty, asc_getChangeLevel: function () { return this.ChangeLevel; }, asc_putChangeLevel: function (v) { this.ChangeLevel = v; }, asc_getCanBeFlow: function () { return this.CanBeFlow; }, asc_getWidth: function () { return this.Width; }, asc_putWidth: function (v) { this.Width = v; }, asc_getHeight: function () { return this.Height; }, asc_putHeight: function (v) { this.Height = v; }, asc_getWrappingStyle: function () { return this.WrappingStyle; }, asc_putWrappingStyle: function (v) { this.WrappingStyle = v; }, // Возвращается объект класса Asc.asc_CPaddings asc_getPaddings: function () { return this.Paddings; }, // Аргумент объект класса Asc.asc_CPaddings asc_putPaddings: function (v) { this.Paddings = v; }, asc_getAllowOverlap: function () { return this.AllowOverlap; }, asc_putAllowOverlap: function (v) { this.AllowOverlap = v; }, // Возвращается объект класса CPosition asc_getPosition: function () { return this.Position; }, // Аргумент объект класса CPosition asc_putPosition: function (v) { this.Position = v; }, asc_getPositionH: function () { return this.PositionH; }, asc_putPositionH: function (v) { this.PositionH = v; }, asc_getPositionV: function () { return this.PositionV; }, asc_putPositionV: function (v) { this.PositionV = v; }, asc_getSizeRelH: function () { return this.SizeRelH; }, asc_putSizeRelH: function (v) { this.SizeRelH = v; }, asc_getSizeRelV: function () { return this.SizeRelV; }, asc_putSizeRelV: function (v) { this.SizeRelV = v; }, asc_getValue_X: function (RelativeFrom) { if (null != this.Internal_Position) { return this.Internal_Position.Calculate_X_Value(RelativeFrom); } return 0; }, asc_getValue_Y: function (RelativeFrom) { if (null != this.Internal_Position) { return this.Internal_Position.Calculate_Y_Value(RelativeFrom); } return 0; }, asc_getImageUrl: function () { return this.ImageUrl; }, asc_putImageUrl: function (v) { this.ImageUrl = v; }, asc_getGroup: function () { return this.Group; }, asc_putGroup: function (v) { this.Group = v; }, asc_getFromGroup: function () { return this.fromGroup; }, asc_putFromGroup: function (v) { this.fromGroup = v; }, asc_getisChartProps: function () { return this.isChartProps; }, asc_putisChartPross: function (v) { this.isChartProps = v; }, asc_getSeveralCharts: function () { return this.severalCharts; }, asc_putSeveralCharts: function (v) { this.severalCharts = v; }, asc_getSeveralChartTypes: function () { return this.severalChartTypes; }, asc_putSeveralChartTypes: function (v) { this.severalChartTypes = v; }, asc_getSeveralChartStyles: function () { return this.severalChartStyles; }, asc_putSeveralChartStyles: function (v) { this.severalChartStyles = v; }, asc_getVerticalTextAlign: function () { return this.verticalTextAlign; }, asc_putVerticalTextAlign: function (v) { this.verticalTextAlign = v; }, asc_getVert: function () { return this.vert; }, asc_putVert: function (v) { this.vert = v; }, asc_getLocked: function () { return this.Locked; }, asc_getLockAspect: function () { return this.lockAspect; }, asc_putLockAspect: function (v) { this.lockAspect = v; }, asc_getChartProperties: function () { return this.ChartProperties; }, asc_putChartProperties: function (v) { this.ChartProperties = v; }, asc_getShapeProperties: function () { return this.ShapeProperties; }, asc_putShapeProperties: function (v) { this.ShapeProperties = v; }, asc_getOriginSize: function (api) { if (window['AscFormat'].isRealNumber(this.oleWidth) && window['AscFormat'].isRealNumber(this.oleHeight)) { return new asc_CImageSize(this.oleWidth, this.oleHeight, true); } if(this.ImageUrl === null) { return new asc_CImageSize(50, 50, false); } var _section_select = api.WordControl.m_oLogicDocument.Get_PageSizesByDrawingObjects(); var _page_width = AscCommon.Page_Width; var _page_height = AscCommon.Page_Height; var _page_x_left_margin = AscCommon.X_Left_Margin; var _page_y_top_margin = AscCommon.Y_Top_Margin; var _page_x_right_margin = AscCommon.X_Right_Margin; var _page_y_bottom_margin = AscCommon.Y_Bottom_Margin; if (_section_select) { if (_section_select.W) { _page_width = _section_select.W; } if (_section_select.H) { _page_height = _section_select.H; } } var _image = api.ImageLoader.map_image_index[AscCommon.getFullImageSrc2(this.ImageUrl)]; if (_image != undefined && _image.Image != null && _image.Status == window['AscFonts'].ImageLoadStatus.Complete) { var _w = Math.max(1, _page_width - (_page_x_left_margin + _page_x_right_margin)); var _h = Math.max(1, _page_height - (_page_y_top_margin + _page_y_bottom_margin)); var bIsCorrect = false; if (_image.Image != null) { var __w = Math.max((_image.Image.width * AscCommon.g_dKoef_pix_to_mm), 1); var __h = Math.max((_image.Image.height * AscCommon.g_dKoef_pix_to_mm), 1); var dKoef = Math.max(__w / _w, __h / _h); if (dKoef > 1) { _w = Math.max(5, __w / dKoef); _h = Math.max(5, __h / dKoef); bIsCorrect = true; } else { _w = __w; _h = __h; } } return new asc_CImageSize(_w, _h, bIsCorrect); } return new asc_CImageSize(50, 50, false); }, //oleObjects asc_getPluginGuid: function () { return this.pluginGuid; }, asc_putPluginGuid: function (v) { this.pluginGuid = v; }, asc_getPluginData: function () { return this.pluginData; }, asc_putPluginData: function (v) { this.pluginData = v; }, asc_getTitle: function(){ return this.title; }, asc_putTitle: function(v){ this.title = v; }, asc_getDescription: function(){ return this.description; }, asc_putDescription: function(v){ this.description = v; }, asc_getColumnNumber: function(){ return this.columnNumber; }, asc_putColumnNumber: function(v){ this.columnNumber = v; }, asc_getColumnSpace: function(){ return this.columnSpace; }, asc_putColumnSpace: function(v){ this.columnSpace = v; }, asc_getSignatureId : function() { if (this.ShapeProperties) return this.ShapeProperties.asc_getSignatureId(); return undefined; } }; /** @constructor */ function asc_CSelectedObject(type, val) { this.Type = (undefined != type) ? type : null; this.Value = (undefined != val) ? val : null; } asc_CSelectedObject.prototype = { asc_getObjectType: function () { return this.Type; }, asc_getObjectValue: function () { return this.Value; } }; /** @constructor */ function asc_CShapeFill() { this.type = null; this.fill = null; this.transparent = null; } asc_CShapeFill.prototype = { asc_getType: function () { return this.type; }, asc_putType: function (v) { this.type = v; }, asc_getFill: function () { return this.fill; }, asc_putFill: function (v) { this.fill = v; }, asc_getTransparent: function () { return this.transparent; }, asc_putTransparent: function (v) { this.transparent = v; }, asc_CheckForseSet: function () { if (null != this.transparent) { return true; } if (null != this.fill && this.fill.Positions != null) { return true; } return false; } }; /** @constructor */ function asc_CFillBlip() { this.type = c_oAscFillBlipType.STRETCH; this.url = ""; this.texture_id = null; } asc_CFillBlip.prototype = { asc_getType: function () { return this.type }, asc_putType: function (v) { this.type = v; }, asc_getUrl: function () { return this.url; }, asc_putUrl: function (v) { this.url = v; }, asc_getTextureId: function () { return this.texture_id; }, asc_putTextureId: function (v) { this.texture_id = v; } }; /** @constructor */ function asc_CFillHatch() { this.PatternType = undefined; this.fgClr = undefined; this.bgClr = undefined; } asc_CFillHatch.prototype = { asc_getPatternType: function () { return this.PatternType; }, asc_putPatternType: function (v) { this.PatternType = v; }, asc_getColorFg: function () { return this.fgClr; }, asc_putColorFg: function (v) { this.fgClr = v; }, asc_getColorBg: function () { return this.bgClr; }, asc_putColorBg: function (v) { this.bgClr = v; } }; /** @constructor */ function asc_CFillGrad() { this.Colors = undefined; this.Positions = undefined; this.GradType = 0; this.LinearAngle = undefined; this.LinearScale = true; this.PathType = 0; } asc_CFillGrad.prototype = { asc_getColors: function () { return this.Colors; }, asc_putColors: function (v) { this.Colors = v; }, asc_getPositions: function () { return this.Positions; }, asc_putPositions: function (v) { this.Positions = v; }, asc_getGradType: function () { return this.GradType; }, asc_putGradType: function (v) { this.GradType = v; }, asc_getLinearAngle: function () { return this.LinearAngle; }, asc_putLinearAngle: function (v) { this.LinearAngle = v; }, asc_getLinearScale: function () { return this.LinearScale; }, asc_putLinearScale: function (v) { this.LinearScale = v; }, asc_getPathType: function () { return this.PathType; }, asc_putPathType: function (v) { this.PathType = v; } }; /** @constructor */ function asc_CFillSolid() { this.color = new asc_CColor(); } asc_CFillSolid.prototype = { asc_getColor: function () { return this.color }, asc_putColor: function (v) { this.color = v; } }; /** @constructor */ function asc_CStroke() { this.type = null; this.width = null; this.color = null; this.prstDash = null; this.LineJoin = null; this.LineCap = null; this.LineBeginStyle = null; this.LineBeginSize = null; this.LineEndStyle = null; this.LineEndSize = null; this.canChangeArrows = false; } asc_CStroke.prototype = { asc_getType: function () { return this.type; }, asc_putType: function (v) { this.type = v; }, asc_getWidth: function () { return this.width; }, asc_putWidth: function (v) { this.width = v; }, asc_getColor: function () { return this.color; }, asc_putColor: function (v) { this.color = v; }, asc_getLinejoin: function () { return this.LineJoin; }, asc_putLinejoin: function (v) { this.LineJoin = v; }, asc_getLinecap: function () { return this.LineCap; }, asc_putLinecap: function (v) { this.LineCap = v; }, asc_getLinebeginstyle: function () { return this.LineBeginStyle; }, asc_putLinebeginstyle: function (v) { this.LineBeginStyle = v; }, asc_getLinebeginsize: function () { return this.LineBeginSize; }, asc_putLinebeginsize: function (v) { this.LineBeginSize = v; }, asc_getLineendstyle: function () { return this.LineEndStyle; }, asc_putLineendstyle: function (v) { this.LineEndStyle = v; }, asc_getLineendsize: function () { return this.LineEndSize; }, asc_putLineendsize: function (v) { this.LineEndSize = v; }, asc_getCanChangeArrows: function () { return this.canChangeArrows; }, asc_putPrstDash: function (v) { this.prstDash = v; }, asc_getPrstDash: function () { return this.prstDash; } }; // цвет. может быть трех типов: // c_oAscColor.COLOR_TYPE_SRGB : value - не учитывается // c_oAscColor.COLOR_TYPE_PRST : value - имя стандартного цвета (map_prst_color) // c_oAscColor.COLOR_TYPE_SCHEME : value - тип цвета в схеме // c_oAscColor.COLOR_TYPE_SYS : конвертируется в srgb function CAscColorScheme() { this.colors = []; this.name = ""; } CAscColorScheme.prototype.get_colors = function () { return this.colors; }; CAscColorScheme.prototype.get_name = function () { return this.name; }; CAscColorScheme.prototype.get_dk1 = function () { return this.colors[0]; }; CAscColorScheme.prototype.get_lt1 = function () { return this.colors[1]; }; CAscColorScheme.prototype.get_dk2 = function () { return this.colors[2]; }; CAscColorScheme.prototype.get_lt2 = function () { return this.colors[3]; }; CAscColorScheme.prototype.get_accent1 = function () { return this.colors[4]; }; CAscColorScheme.prototype.get_accent2 = function () { return this.colors[5]; }; CAscColorScheme.prototype.get_accent3 = function () { return this.colors[6]; }; CAscColorScheme.prototype.get_accent4 = function () { return this.colors[7]; }; CAscColorScheme.prototype.get_accent5 = function () { return this.colors[8]; }; CAscColorScheme.prototype.get_accent6 = function () { return this.colors[9]; }; CAscColorScheme.prototype.get_hlink = function () { return this.colors[10]; }; CAscColorScheme.prototype.get_folHlink = function () { return this.colors[11]; }; //----------------------------------------------------------------- // События движения мыши //----------------------------------------------------------------- function CMouseMoveData(obj) { if (obj) { this.Type = ( undefined != obj.Type ) ? obj.Type : c_oAscMouseMoveDataTypes.Common; this.X_abs = ( undefined != obj.X_abs ) ? obj.X_abs : 0; this.Y_abs = ( undefined != obj.Y_abs ) ? obj.Y_abs : 0; switch (this.Type) { case c_oAscMouseMoveDataTypes.Hyperlink : { this.Hyperlink = ( undefined != obj.PageNum ) ? obj.PageNum : 0; break; } case c_oAscMouseMoveDataTypes.LockedObject : { this.UserId = ( undefined != obj.UserId ) ? obj.UserId : ""; this.HaveChanges = ( undefined != obj.HaveChanges ) ? obj.HaveChanges : false; this.LockedObjectType = ( undefined != obj.LockedObjectType ) ? obj.LockedObjectType : Asc.c_oAscMouseMoveLockedObjectType.Common; break; } case c_oAscMouseMoveDataTypes.Footnote: { this.Text = ""; this.Number = 1; break; } } } else { this.Type = c_oAscMouseMoveDataTypes.Common; this.X_abs = 0; this.Y_abs = 0; } } CMouseMoveData.prototype.get_Type = function () { return this.Type; }; CMouseMoveData.prototype.get_X = function () { return this.X_abs; }; CMouseMoveData.prototype.get_Y = function () { return this.Y_abs; }; CMouseMoveData.prototype.get_Hyperlink = function () { return this.Hyperlink; }; CMouseMoveData.prototype.get_UserId = function () { return this.UserId; }; CMouseMoveData.prototype.get_HaveChanges = function () { return this.HaveChanges; }; CMouseMoveData.prototype.get_LockedObjectType = function () { return this.LockedObjectType; }; CMouseMoveData.prototype.get_FootnoteText = function() { return this.Text; }; CMouseMoveData.prototype.get_FootnoteNumber = function() { return this.Number; }; /** * Класс для работы с интерфейсом для гиперссылок * @param obj * @constructor */ function CHyperlinkProperty(obj) { if (obj) { this.Text = (undefined != obj.Text ) ? obj.Text : null; this.Value = (undefined != obj.Value ) ? obj.Value : ""; this.ToolTip = (undefined != obj.ToolTip) ? obj.ToolTip : ""; this.Class = (undefined !== obj.Class ) ? obj.Class : null; this.Anchor = (undefined !== obj.Anchor) ? obj.Anchor : null; this.Heading = (obj.Heading ? obj.Heading : null); } else { this.Text = null; this.Value = ""; this.ToolTip = ""; this.Class = null; this.Anchor = null; this.Heading = null; } } CHyperlinkProperty.prototype.get_Value = function() { return this.Value; }; CHyperlinkProperty.prototype.put_Value = function(v) { this.Value = v; }; CHyperlinkProperty.prototype.get_ToolTip = function() { return this.ToolTip; }; CHyperlinkProperty.prototype.put_ToolTip = function(v) { this.ToolTip = v ? v.slice(0, Asc.c_oAscMaxTooltipLength) : v; }; CHyperlinkProperty.prototype.get_Text = function() { return this.Text; }; CHyperlinkProperty.prototype.put_Text = function(v) { this.Text = v; }; CHyperlinkProperty.prototype.put_InternalHyperlink = function(oClass) { this.Class = oClass; }; CHyperlinkProperty.prototype.get_InternalHyperlink = function() { return this.Class; }; CHyperlinkProperty.prototype.is_TopOfDocument = function() { return (this.Anchor === "_top"); }; CHyperlinkProperty.prototype.put_TopOfDocument = function() { this.Anchor = "_top"; }; CHyperlinkProperty.prototype.get_Bookmark = function() { return this.Anchor; }; CHyperlinkProperty.prototype.put_Bookmark = function(sBookmark) { this.Anchor = sBookmark; }; CHyperlinkProperty.prototype.is_Heading = function() { return (this.Heading instanceof AscCommonWord.Paragraph ? true : false) }; CHyperlinkProperty.prototype.put_Heading = function(oParagraph) { this.Heading = oParagraph; }; CHyperlinkProperty.prototype.get_Heading = function() { return this.Heading; }; window['Asc']['CHyperlinkProperty'] = window['Asc'].CHyperlinkProperty = CHyperlinkProperty; CHyperlinkProperty.prototype['get_Value'] = CHyperlinkProperty.prototype.get_Value; CHyperlinkProperty.prototype['put_Value'] = CHyperlinkProperty.prototype.put_Value; CHyperlinkProperty.prototype['get_ToolTip'] = CHyperlinkProperty.prototype.get_ToolTip; CHyperlinkProperty.prototype['put_ToolTip'] = CHyperlinkProperty.prototype.put_ToolTip; CHyperlinkProperty.prototype['get_Text'] = CHyperlinkProperty.prototype.get_Text; CHyperlinkProperty.prototype['put_Text'] = CHyperlinkProperty.prototype.put_Text; CHyperlinkProperty.prototype['get_InternalHyperlink'] = CHyperlinkProperty.prototype.get_InternalHyperlink; CHyperlinkProperty.prototype['put_InternalHyperlink'] = CHyperlinkProperty.prototype.put_InternalHyperlink; CHyperlinkProperty.prototype['is_TopOfDocument'] = CHyperlinkProperty.prototype.is_TopOfDocument; CHyperlinkProperty.prototype['put_TopOfDocument'] = CHyperlinkProperty.prototype.put_TopOfDocument; CHyperlinkProperty.prototype['get_Bookmark'] = CHyperlinkProperty.prototype.get_Bookmark; CHyperlinkProperty.prototype['put_Bookmark'] = CHyperlinkProperty.prototype.put_Bookmark; CHyperlinkProperty.prototype['is_Heading'] = CHyperlinkProperty.prototype.is_Heading; CHyperlinkProperty.prototype['put_Heading'] = CHyperlinkProperty.prototype.put_Heading; CHyperlinkProperty.prototype['get_Heading'] = CHyperlinkProperty.prototype.get_Heading; /** @constructor */ function asc_CUserInfo() { this.Id = null; this.FullName = null; this.FirstName = null; this.LastName = null; } asc_CUserInfo.prototype.asc_putId = asc_CUserInfo.prototype.put_Id = function (v) { this.Id = v; }; asc_CUserInfo.prototype.asc_getId = asc_CUserInfo.prototype.get_Id = function () { return this.Id; }; asc_CUserInfo.prototype.asc_putFullName = asc_CUserInfo.prototype.put_FullName = function (v) { this.FullName = v; }; asc_CUserInfo.prototype.asc_getFullName = asc_CUserInfo.prototype.get_FullName = function () { return this.FullName; }; asc_CUserInfo.prototype.asc_putFirstName = asc_CUserInfo.prototype.put_FirstName = function (v) { this.FirstName = v; }; asc_CUserInfo.prototype.asc_getFirstName = asc_CUserInfo.prototype.get_FirstName = function () { return this.FirstName; }; asc_CUserInfo.prototype.asc_putLastName = asc_CUserInfo.prototype.put_LastName = function (v) { this.LastName = v; }; asc_CUserInfo.prototype.asc_getLastName = asc_CUserInfo.prototype.get_LastName = function () { return this.LastName; }; /** @constructor */ function asc_CDocInfo() { this.Id = null; this.Url = null; this.Title = null; this.Format = null; this.VKey = null; this.Token = null; this.UserInfo = null; this.Options = null; this.CallbackUrl = null; this.TemplateReplacement = null; this.Mode = null; this.Permissions = null; this.Lang = null; this.OfflineApp = false; this.Encrypted; } prot = asc_CDocInfo.prototype; prot.get_Id = prot.asc_getId = function () { return this.Id }; prot.put_Id = prot.asc_putId = function (v) { this.Id = v; }; prot.get_Url = prot.asc_getUrl = function () { return this.Url; }; prot.put_Url = prot.asc_putUrl = function (v) { this.Url = v; }; prot.get_Title = prot.asc_getTitle = function () { return this.Title; }; prot.put_Title = prot.asc_putTitle = function (v) { this.Title = v; }; prot.get_Format = prot.asc_getFormat = function () { return this.Format; }; prot.put_Format = prot.asc_putFormat = function (v) { this.Format = v; }; prot.get_VKey = prot.asc_getVKey = function () { return this.VKey; }; prot.put_VKey = prot.asc_putVKey = function (v) { this.VKey = v; }; prot.get_Token = prot.asc_getToken = function () { return this.Token; }; prot.put_Token = prot.asc_putToken = function (v) { this.Token = v; }; prot.get_OfflineApp = function () { return this.OfflineApp; }; prot.put_OfflineApp = function (v) { this.OfflineApp = v; }; prot.get_UserId = prot.asc_getUserId = function () { return (this.UserInfo ? this.UserInfo.get_Id() : null ); }; prot.get_UserName = prot.asc_getUserName = function () { return (this.UserInfo ? this.UserInfo.get_FullName() : null ); }; prot.get_FirstName = prot.asc_getFirstName = function () { return (this.UserInfo ? this.UserInfo.get_FirstName() : null ); }; prot.get_LastName = prot.asc_getLastName = function () { return (this.UserInfo ? this.UserInfo.get_LastName() : null ); }; prot.get_Options = prot.asc_getOptions = function () { return this.Options; }; prot.put_Options = prot.asc_putOptions = function (v) { this.Options = v; }; prot.get_CallbackUrl = prot.asc_getCallbackUrl = function () { return this.CallbackUrl; }; prot.put_CallbackUrl = prot.asc_putCallbackUrl = function (v) { this.CallbackUrl = v; }; prot.get_TemplateReplacement = prot.asc_getTemplateReplacement = function () { return this.TemplateReplacement; }; prot.put_TemplateReplacement = prot.asc_putTemplateReplacement = function (v) { this.TemplateReplacement = v; }; prot.get_UserInfo = prot.asc_getUserInfo = function () { return this.UserInfo; }; prot.put_UserInfo = prot.asc_putUserInfo = function (v) { this.UserInfo = v; }; prot.get_Mode = prot.asc_getMode = function () { return this.Mode; }; prot.put_Mode = prot.asc_putMode = function (v) { this.Mode = v; }; prot.get_Permissions = prot.asc_getPermissions = function () { return this.Permissions; }; prot.put_Permissions = prot.asc_putPermissions = function (v) { this.Permissions = v; }; prot.get_Lang = prot.asc_getLang = function () { return this.Lang; }; prot.put_Lang = prot.asc_putLang = function (v) { this.Lang = v; }; prot.get_Encrypted = prot.asc_getEncrypted = function () { return this.Encrypted; }; prot.put_Encrypted = prot.asc_putEncrypted = function (v) { this.Encrypted = v; }; function COpenProgress() { this.Type = Asc.c_oAscAsyncAction.Open; this.FontsCount = 0; this.CurrentFont = 0; this.ImagesCount = 0; this.CurrentImage = 0; } COpenProgress.prototype.asc_getType = function () { return this.Type }; COpenProgress.prototype.asc_getFontsCount = function () { return this.FontsCount }; COpenProgress.prototype.asc_getCurrentFont = function () { return this.CurrentFont }; COpenProgress.prototype.asc_getImagesCount = function () { return this.ImagesCount }; COpenProgress.prototype.asc_getCurrentImage = function () { return this.CurrentImage }; function CErrorData() { this.Value = 0; } CErrorData.prototype.put_Value = function (v) { this.Value = v; }; CErrorData.prototype.get_Value = function () { return this.Value; }; function CAscMathType() { this.Id = 0; this.X = 0; this.Y = 0; } CAscMathType.prototype.get_Id = function () { return this.Id; }; CAscMathType.prototype.get_X = function () { return this.X; }; CAscMathType.prototype.get_Y = function () { return this.Y; }; function CAscMathCategory() { this.Id = 0; this.Data = []; this.W = 0; this.H = 0; } CAscMathCategory.prototype.get_Id = function () { return this.Id; }; CAscMathCategory.prototype.get_Data = function () { return this.Data; }; CAscMathCategory.prototype.get_W = function () { return this.W; }; CAscMathCategory.prototype.get_H = function () { return this.H; }; CAscMathCategory.prototype.private_Sort = function () { this.Data.sort(function (a, b) { return a.Id - b.Id; }); }; function CStyleImage(name, type, image, uiPriority) { this.Name = name; this.type = type; this.image = image; this.uiPriority = uiPriority; } CStyleImage.prototype.asc_getName = CStyleImage.prototype.get_Name = function () { return this.Name; }; CStyleImage.prototype.asc_getType = CStyleImage.prototype.get_Type = function () { return this.type; }; CStyleImage.prototype.asc_getImage = function () { return this.image; }; /** @constructor */ function asc_CSpellCheckProperty(Word, Checked, Variants, ParaId, Element) { this.Word = Word; this.Checked = Checked; this.Variants = Variants; this.ParaId = ParaId; this.Element = Element; } asc_CSpellCheckProperty.prototype.get_Word = function() { return this.Word; }; asc_CSpellCheckProperty.prototype.get_Checked = function() { return this.Checked; }; asc_CSpellCheckProperty.prototype.get_Variants = function() { return this.Variants; }; function CWatermarkOnDraw(htmlContent) { // example content: /* { "type" : "rect", "width" : 100, // mm "height" : 100, // mm "rotate" : -45, // degrees "margins" : [ 10, 10, 10, 10 ], // text margins "fill" : [255, 0, 0], // [] => none "stroke-width" : 1, // mm "stroke" : [0, 0, 255], // [] => none "align" : 1, // vertical text align (4 - top, 1 - center, 0 - bottom) "paragraphs" : [ { "align" : 4, // horizontal text align [1 - left, 2 - center, 0 - right, 3 - justify] "fill" : [255, 0, 0], // paragraph highlight. [] => none "linespacing" : 0, "runs" : [ { "text" : "some text", "fill" : [255, 255, 255], // text highlight. [] => none, "font-family" : "Arial", "font-size" : 24, // pt "bold" : true, "italic" : false, "strikeout" : "false", "underline" : "false" }, { "text" : "<%br%>" } ] } ] } */ this.inputContentSrc = htmlContent; this.replaceMap = {}; this.image = null; this.imageBase64 = undefined; this.width = 0; this.height = 0; this.transparent = 0.3; this.zoom = 1; this.calculatezoom = -1; this.CheckParams = function(api) { this.replaceMap["%user_name%"] = api.User.userName; }; this.Generate = function() { if (this.zoom == this.calculatezoom) return; this.calculatezoom = this.zoom; var content = this.inputContentSrc; for (var key in this.replaceMap) { if (!this.replaceMap.hasOwnProperty(key)) continue; content = content.replace(new RegExp(key, 'g'), this.replaceMap[key]); } var _obj = {}; try { var _objTmp = JSON.parse(content); _obj = _objTmp; } catch (err) { } this.transparent = (undefined == _obj['transparent']) ? 0.3 : _obj['transparent']; this.privateGenerateShape(_obj); //var _data = this.image.toDataURL("image/png"); //console.log(_data); }; this.Draw = function(context, dw_or_dx, dh_or_dy, dw, dh) { if (!this.image) return; var x = 0; var y = 0; if (undefined == dw) { x = (dw_or_dx - this.width) >> 1; y = (dh_or_dy - this.height) >> 1; } else { x = (dw_or_dx + ((dw - this.width) / 2)) >> 0; y = (dh_or_dy + ((dh - this.height) / 2)) >> 0; } var oldGlobalAlpha = context.globalAlpha; context.globalAlpha = this.transparent; context.drawImage(this.image, x, y); context.globalAlpha = oldGlobalAlpha; }; this.StartRenderer = function() { var canvasTransparent = document.createElement("canvas"); canvasTransparent.width = this.image.width; canvasTransparent.height = this.image.height; var ctx = canvasTransparent.getContext("2d"); ctx.globalAlpha = this.transparent; ctx.drawImage(this.image, 0, 0); this.imageBase64 = canvasTransparent.toDataURL("image/png"); canvasTransparent = null; }; this.EndRenderer = function() { delete this.imageBase64; this.imageBase64 = undefined; }; this.DrawOnRenderer = function(renderer, w, h) { var wMM = this.width * g_dKoef_pix_to_mm / this.zoom; var hMM = this.height * g_dKoef_pix_to_mm / this.zoom; var x = (w - wMM) / 2; var y = (h - hMM) / 2; renderer.UseOriginImageUrl = true; renderer.drawImage(this.imageBase64, x, y, wMM, hMM); renderer.UseOriginImageUrl = false; }; this.privateGenerateShape = function(obj) { AscFormat.ExecuteNoHistory(function(obj) { var oShape = new AscFormat.CShape(); var bWord = false; var oApi = Asc['editor'] || editor; if(!oApi){ return null; } switch(oApi.getEditorId()){ case AscCommon.c_oEditorId.Word:{ oShape.setWordShape(true); bWord = true; break; } case AscCommon.c_oEditorId.Presentation:{ oShape.setWordShape(false); oShape.setParent(oApi.WordControl.m_oLogicDocument.Slides[oApi.WordControl.m_oLogicDocument.CurPage]); break; } case AscCommon.c_oEditorId.Spreadsheet:{ oShape.setWordShape(false); oShape.setWorksheet(oApi.wb.getWorksheet().model); break; } } oShape.setBDeleted(false); oShape.spPr = new AscFormat.CSpPr(); oShape.spPr.setParent(oShape); oShape.spPr.setXfrm(new AscFormat.CXfrm()); oShape.spPr.xfrm.setParent(oShape.spPr); oShape.spPr.xfrm.setOffX(0); oShape.spPr.xfrm.setOffY(0); oShape.spPr.xfrm.setExtX(obj['width']); oShape.spPr.xfrm.setExtY(obj['height']); oShape.spPr.xfrm.setRot(AscFormat.normalizeRotate(obj['rotate'] ? (obj['rotate'] * Math.PI / 180) : 0)); oShape.spPr.setGeometry(AscFormat.CreateGeometry(obj['type'])); if(obj['fill'] && obj['fill'].length === 3){ oShape.spPr.setFill(AscFormat.CreteSolidFillRGB(obj['fill'][0], obj['fill'][1], obj['fill'][2])); } if(AscFormat.isRealNumber(obj['stroke-width']) || Array.isArray(obj['stroke']) && obj['stroke'].length === 3){ var oUnifill; if(Array.isArray(obj['stroke']) && obj['stroke'].length === 3){ oUnifill = AscFormat.CreteSolidFillRGB(obj['stroke'][0], obj['stroke'][1], obj['stroke'][2]); } else{ oUnifill = AscFormat.CreteSolidFillRGB(0, 0, 0); } oShape.spPr.setLn(AscFormat.CreatePenFromParams(oUnifill, undefined, undefined, undefined, undefined, AscFormat.isRealNumber(obj['stroke-width']) ? obj['stroke-width'] : 12700.0/36000.0)) } if(bWord){ oShape.createTextBoxContent(); } else{ oShape.createTextBody(); } var align = obj['align']; if(undefined != align){ oShape.setVerticalAlign(align); } if(Array.isArray(obj['margins']) && obj['margins'].length === 4){ oShape.setPaddings({Left: obj['margins'][0], Top: obj['margins'][1], Right: obj['margins'][2], Bottom: obj['margins'][3]}); } var oContent = oShape.getDocContent(); var aParagraphsS = obj['paragraphs']; if(aParagraphsS.length > 0){ oContent.Content.length = 0; } for(var i = 0; i < aParagraphsS.length; ++i){ var oCurParS = aParagraphsS[i]; var oNewParagraph = new Paragraph(oContent.DrawingDocument, oContent, !bWord); if(AscFormat.isRealNumber(oCurParS['align'])){ oNewParagraph.Set_Align(oCurParS['align']) } if(Array.isArray(oCurParS['fill']) && oCurParS['fill'].length === 3){ var oShd = new CDocumentShd(); oShd.Value = Asc.c_oAscShdClear; oShd.Color.r = oCurParS['fill'][0]; oShd.Color.g = oCurParS['fill'][1]; oShd.Color.b = oCurParS['fill'][2]; oNewParagraph.Set_Shd(oShd, true); } if(AscFormat.isRealNumber(oCurParS['linespacing'])){ oNewParagraph.Set_Spacing({Line: oCurParS['linespacing'], LineRule: Asc.linerule_Auto}, true); } var aRunsS = oCurParS['runs']; for(var j = 0; j < aRunsS.length; ++j){ var oRunS = aRunsS[j]; var oRun = new AscCommonWord.ParaRun(oNewParagraph, false); if(Array.isArray(oRunS['fill']) && oRunS['fill'].length === 3){ oRun.Set_Unifill(AscFormat.CreteSolidFillRGB(oRunS['fill'][0], oRunS['fill'][1], oRunS['fill'][2])); } if(oRunS['font-family']){ oRun.Set_RFonts_Ascii({Name : oRunS['font-family'], Index : -1}); oRun.Set_RFonts_CS({Name : oRunS['font-family'], Index : -1}); oRun.Set_RFonts_EastAsia({Name : oRunS['font-family'], Index : -1}); oRun.Set_RFonts_HAnsi({Name : oRunS['font-family'], Index : -1}); } if(oRunS['font-size']){ oRun.Set_FontSize(oRunS['font-size']); } oRun.Set_Bold(oRunS['bold'] === true); oRun.Set_Italic(oRunS['italic'] === true); oRun.Set_Strikeout(oRunS['strikeout'] === true); oRun.Set_Underline(oRunS['underline'] === true); var sCustomText = oRunS['text']; if(sCustomText === "<%br%>"){ oRun.AddToContent(0, new ParaNewLine(break_Line), false); } else{ oRun.AddText(sCustomText); } oNewParagraph.Internal_Content_Add(i, oRun, false); } oContent.Internal_Content_Add(oContent.Content.length, oNewParagraph); } oShape.recalculate(); if (oShape.bWordShape) { oShape.recalculateText(); } var oldShowParaMarks; if (window.editor) { oldShowParaMarks = editor.ShowParaMarks; editor.ShowParaMarks = false; } AscCommon.IsShapeToImageConverter = true; var _bounds_cheker = new AscFormat.CSlideBoundsChecker(); var w_mm = 210; var h_mm = 297; var w_px = AscCommon.AscBrowser.convertToRetinaValue(w_mm * g_dKoef_mm_to_pix * this.zoom, true); var h_px = AscCommon.AscBrowser.convertToRetinaValue(h_mm * g_dKoef_mm_to_pix * this.zoom, true); _bounds_cheker.init(w_px, h_px, w_mm, h_mm); _bounds_cheker.transform(1,0,0,1,0,0); _bounds_cheker.AutoCheckLineWidth = true; _bounds_cheker.CheckLineWidth(oShape); oShape.draw(_bounds_cheker, 0); _bounds_cheker.CorrectBounds2(); var _need_pix_width = _bounds_cheker.Bounds.max_x - _bounds_cheker.Bounds.min_x + 1; var _need_pix_height = _bounds_cheker.Bounds.max_y - _bounds_cheker.Bounds.min_y + 1; if (_need_pix_width <= 0 || _need_pix_height <= 0) return; if (!this.image) this.image = document.createElement("canvas"); this.image.width = _need_pix_width; this.image.height = _need_pix_height; this.width = _need_pix_width; this.height = _need_pix_height; var _ctx = this.image.getContext('2d'); var g = new AscCommon.CGraphics(); g.init(_ctx, w_px, h_px, w_mm, h_mm); g.m_oFontManager = AscCommon.g_fontManager; g.m_oCoordTransform.tx = -_bounds_cheker.Bounds.min_x; g.m_oCoordTransform.ty = -_bounds_cheker.Bounds.min_y; g.transform(1,0,0,1,0,0); oShape.draw(g, 0); AscCommon.IsShapeToImageConverter = false; if (window.editor) { window.editor.ShowParaMarks = oldShowParaMarks; } }, this, [obj]); }; } window.TEST_WATERMARK_STRING = "\ {\ \"transparent\" : 0.3,\ \"type\" : \"rect\",\ \"width\" : 100,\ \"height\" : 100,\ \"rotate\" : -45,\ \"margins\" : [ 10, 10, 10, 10 ],\ \"fill\" : [255, 0, 0],\ \"stroke-width\" : 1,\ \"stroke\" : [0, 0, 255],\ \"align\" : 1,\ \ \"paragraphs\" : [\ {\ \"align\" : 2,\ \"fill\" : [255, 0, 0],\ \"linespacing\" : 1,\ \ \"runs\" : [\ {\ \"text\" : \"Do not steal, %user_name%!\",\ \"fill\" : [0, 0, 0],\ \"font-family\" : \"Arial\",\ \"font-size\" : 40,\ \"bold\" : true,\ \"italic\" : false,\ \"strikeout\" : false,\ \"underline\" : false\ },\ {\ \"text\" : \"<%br%>\"\ }\ ]\ }\ ]\ }"; // ----------------------------- plugins ------------------------------- // function CPluginVariation() { this.description = ""; this.url = ""; this.baseUrl = ""; this.index = 0; // сверху не выставляем. оттуда в каком порядке пришли - в таком порядке и работают this.icons = ["1x", "2x"]; this.isViewer = false; this.EditorsSupport = ["word", "cell", "slide"]; this.isVisual = false; // визуальный ли this.isModal = false; // модальное ли окно (используется только для визуального) this.isInsideMode = false; // отрисовка не в окне а внутри редактора (в панели) (используется только для визуального немодального) this.isCustomWindow = false; // ued only if this.isModal == true this.initDataType = EPluginDataType.none; this.initData = ""; this.isUpdateOleOnResize = false; this.buttons = [{"text" : "Ok", "primary" : true}, {"text" : "Cancel", "primary" : false}]; this.size = undefined; this.initOnSelectionChanged = undefined; this.events = []; this.eventsMap = {}; } CPluginVariation.prototype["get_Description"] = function() { return this.description; }; CPluginVariation.prototype["set_Description"] = function(value) { this.description = value; }; CPluginVariation.prototype["get_Url"] = function() { return this.url; }; CPluginVariation.prototype["set_Url"] = function(value) { this.url = value; }; CPluginVariation.prototype["get_Icons"] = function() { return this.icons; }; CPluginVariation.prototype["set_Icons"] = function(value) { this.icons = value; }; CPluginVariation.prototype["get_Viewer"] = function() { return this.isViewer; }; CPluginVariation.prototype["set_Viewer"] = function(value) { this.isViewer = value; }; CPluginVariation.prototype["get_EditorsSupport"] = function() { return this.EditorsSupport; }; CPluginVariation.prototype["set_EditorsSupport"] = function(value) { this.EditorsSupport = value; }; CPluginVariation.prototype["get_Visual"] = function() { return this.isVisual; }; CPluginVariation.prototype["set_Visual"] = function(value) { this.isVisual = value; }; CPluginVariation.prototype["get_Modal"] = function() { return this.isModal; }; CPluginVariation.prototype["set_Modal"] = function(value) { this.isModal = value; }; CPluginVariation.prototype["get_InsideMode"] = function() { return this.isInsideMode; }; CPluginVariation.prototype["set_InsideMode"] = function(value) { this.isInsideMode = value; }; CPluginVariation.prototype["get_CustomWindow"] = function() { return this.isCustomWindow; }; CPluginVariation.prototype["set_CustomWindow"] = function(value) { this.isCustomWindow = value; }; CPluginVariation.prototype["get_InitDataType"] = function() { return this.initDataType; }; CPluginVariation.prototype["set_InitDataType"] = function(value) { this.initDataType = value; }; CPluginVariation.prototype["get_InitData"] = function() { return this.initData; }; CPluginVariation.prototype["set_InitData"] = function(value) { this.initData = value; }; CPluginVariation.prototype["get_UpdateOleOnResize"] = function() { return this.isUpdateOleOnResize; }; CPluginVariation.prototype["set_UpdateOleOnResize"] = function(value) { this.isUpdateOleOnResize = value; }; CPluginVariation.prototype["get_Buttons"] = function() { return this.buttons; }; CPluginVariation.prototype["set_Buttons"] = function(value) { this.buttons = value; }; CPluginVariation.prototype["get_Size"] = function() { return this.size; }; CPluginVariation.prototype["set_Size"] = function(value) { this.size = value; }; CPluginVariation.prototype["get_InitOnSelectionChanged"] = function() { return this.initOnSelectionChanged; }; CPluginVariation.prototype["set_InitOnSelectionChanged"] = function(value) { this.initOnSelectionChanged = value; }; CPluginVariation.prototype["get_Events"] = function() { return this.events; }; CPluginVariation.prototype["set_Events"] = function(value) { if (!value) return; this.events = value.slice(0, value.length); this.eventsMap = {}; for (var i = 0; i < this.events.length; i++) this.eventsMap[this.events[i]] = true; }; CPluginVariation.prototype["serialize"] = function() { var _object = {}; _object["description"] = this.description; _object["url"] = this.url; _object["index"] = this.index; _object["icons"] = this.icons; _object["isViewer"] = this.isViewer; _object["EditorsSupport"] = this.EditorsSupport; _object["isVisual"] = this.isVisual; _object["isModal"] = this.isModal; _object["isInsideMode"] = this.isInsideMode; _object["isCustomWindow"] = this.isCustomWindow; _object["initDataType"] = this.initDataType; _object["initData"] = this.initData; _object["isUpdateOleOnResize"] = this.isUpdateOleOnResize; _object["buttons"] = this.buttons; _object["size"] = this.size; _object["initOnSelectionChanged"] = this.initOnSelectionChanged; return _object; }; CPluginVariation.prototype["deserialize"] = function(_object) { this.description = (_object["description"] != null) ? _object["description"] : this.description; this.url = (_object["url"] != null) ? _object["url"] : this.url; this.index = (_object["index"] != null) ? _object["index"] : this.index; this.icons = (_object["icons"] != null) ? _object["icons"] : this.icons; this.isViewer = (_object["isViewer"] != null) ? _object["isViewer"] : this.isViewer; this.EditorsSupport = (_object["EditorsSupport"] != null) ? _object["EditorsSupport"] : this.EditorsSupport; this.isVisual = (_object["isVisual"] != null) ? _object["isVisual"] : this.isVisual; this.isModal = (_object["isModal"] != null) ? _object["isModal"] : this.isModal; this.isInsideMode = (_object["isInsideMode"] != null) ? _object["isInsideMode"] : this.isInsideMode; this.isCustomWindow = (_object["isCustomWindow"] != null) ? _object["isCustomWindow"] : this.isCustomWindow; this.initDataType = (_object["initDataType"] != null) ? _object["initDataType"] : this.initDataType; this.initData = (_object["initData"] != null) ? _object["initData"] : this.initData; this.isUpdateOleOnResize = (_object["isUpdateOleOnResize"] != null) ? _object["isUpdateOleOnResize"] : this.isUpdateOleOnResize; this.buttons = (_object["buttons"] != null) ? _object["buttons"] : this.buttons; this.size = (_object["size"] != null) ? _object["size"] : this.size; this.initOnSelectionChanged = (_object["initOnSelectionChanged"] != null) ? _object["initOnSelectionChanged"] : this.initOnSelectionChanged; }; function CPlugin() { this.name = ""; this.guid = ""; this.baseUrl = ""; this.variations = []; } CPlugin.prototype["get_Name"] = function() { return this.name; }; CPlugin.prototype["set_Name"] = function(value) { this.name = value; }; CPlugin.prototype["get_Guid"] = function() { return this.guid; }; CPlugin.prototype["set_Guid"] = function(value) { this.guid = value; }; CPlugin.prototype["get_BaseUrl"] = function() { return this.baseUrl; }; CPlugin.prototype["set_BaseUrl"] = function(value) { this.baseUrl = value; }; CPlugin.prototype["get_Variations"] = function() { return this.variations; }; CPlugin.prototype["set_Variations"] = function(value) { this.variations = value; }; CPlugin.prototype["serialize"] = function() { var _object = {}; _object["name"] = this.name; _object["guid"] = this.guid; _object["baseUrl"] = this.baseUrl; _object["variations"] = []; for (var i = 0; i < this.variations.length; i++) { _object["variations"].push(this.variations[i].serialize()); } return _object; }; CPlugin.prototype["deserialize"] = function(_object) { this.name = (_object["name"] != null) ? _object["name"] : this.name; this.guid = (_object["guid"] != null) ? _object["guid"] : this.guid; this.baseUrl = (_object["baseUrl"] != null) ? _object["baseUrl"] : this.baseUrl; this.variations = []; for (var i = 0; i < _object["variations"].length; i++) { var _variation = new CPluginVariation(); _variation["deserialize"](_object["variations"][i]); this.variations.push(_variation); } }; /* * Export * ----------------------------------------------------------------------------- */ window['AscCommon'] = window['AscCommon'] || {}; window['Asc'] = window['Asc'] || {}; window['Asc']['c_oAscArrUserColors'] = window['Asc'].c_oAscArrUserColors = c_oAscArrUserColors; window["AscCommon"].CreateAscColorCustom = CreateAscColorCustom; window["AscCommon"].CreateAscColor = CreateAscColor; window["AscCommon"].CreateGUID = CreateGUID; window['Asc']['c_oLicenseResult'] = window['Asc'].c_oLicenseResult = c_oLicenseResult; prot = c_oLicenseResult; prot['Error'] = prot.Error; prot['Expired'] = prot.Expired; prot['Success'] = prot.Success; prot['UnknownUser'] = prot.UnknownUser; prot['Connections'] = prot.Connections; prot['ExpiredTrial'] = prot.ExpiredTrial; prot['SuccessLimit'] = prot.SuccessLimit; prot['UsersCount'] = prot.UsersCount; prot['ConnectionsOS'] = prot.ConnectionsOS; prot['UsersCountOS'] = prot.UsersCountOS; window['Asc']['c_oRights'] = window['Asc'].c_oRights = c_oRights; prot = c_oRights; prot['None'] = prot.None; prot['Edit'] = prot.Edit; prot['Review'] = prot.Review; prot['Comment'] = prot.Comment; prot['View'] = prot.View; window['Asc']['c_oLicenseMode'] = window['Asc'].c_oLicenseMode = c_oLicenseMode; prot = c_oLicenseMode; prot['None'] = prot.None; prot['Trial'] = prot.Trial; prot['Developer'] = prot.Developer; window["Asc"]["EPluginDataType"] = window["Asc"].EPluginDataType = EPluginDataType; prot = EPluginDataType; prot['none'] = prot.none; prot['text'] = prot.text; prot['ole'] = prot.ole; prot['html'] = prot.html; window["AscCommon"]["asc_CSignatureLine"] = window["AscCommon"].asc_CSignatureLine = asc_CSignatureLine; prot = asc_CSignatureLine.prototype; prot["asc_getId"] = prot.asc_getId; prot["asc_setId"] = prot.asc_setId; prot["asc_getGuid"] = prot.asc_getGuid; prot["asc_setGuid"] = prot.asc_setGuid; prot["asc_getSigner1"] = prot.asc_getSigner1; prot["asc_setSigner1"] = prot.asc_setSigner1; prot["asc_getSigner2"] = prot.asc_getSigner2; prot["asc_setSigner2"] = prot.asc_setSigner2; prot["asc_getEmail"] = prot.asc_getEmail; prot["asc_setEmail"] = prot.asc_setEmail; prot["asc_getInstructions"] = prot.asc_getInstructions; prot["asc_setInstructions"] = prot.asc_setInstructions; prot["asc_getShowDate"] = prot.asc_getShowDate; prot["asc_setShowDate"] = prot.asc_setShowDate; prot["asc_getValid"] = prot.asc_getValid; prot["asc_setValid"] = prot.asc_setValid; prot["asc_getDate"] = prot.asc_getDate; prot["asc_setDate"] = prot.asc_setDate; prot["asc_getVisible"] = prot.asc_getVisible; prot["asc_setVisible"] = prot.asc_setVisible; prot["asc_getRequested"] = prot.asc_getRequested; prot["asc_setRequested"] = prot.asc_setRequested; window["AscCommon"].asc_CAscEditorPermissions = asc_CAscEditorPermissions; prot = asc_CAscEditorPermissions.prototype; prot["asc_getLicenseType"] = prot.asc_getLicenseType; prot["asc_getCanCoAuthoring"] = prot.asc_getCanCoAuthoring; prot["asc_getCanReaderMode"] = prot.asc_getCanReaderMode; prot["asc_getCanBranding"] = prot.asc_getCanBranding; prot["asc_getIsAutosaveEnable"] = prot.asc_getIsAutosaveEnable; prot["asc_getAutosaveMinInterval"] = prot.asc_getAutosaveMinInterval; prot["asc_getIsAnalyticsEnable"] = prot.asc_getIsAnalyticsEnable; prot["asc_getIsLight"] = prot.asc_getIsLight; prot["asc_getLicenseMode"] = prot.asc_getLicenseMode; prot["asc_getRights"] = prot.asc_getRights; prot["asc_getBuildVersion"] = prot.asc_getBuildVersion; prot["asc_getBuildNumber"] = prot.asc_getBuildNumber; window["AscCommon"].asc_ValAxisSettings = asc_ValAxisSettings; prot = asc_ValAxisSettings.prototype; prot["putMinValRule"] = prot.putMinValRule; prot["putMinVal"] = prot.putMinVal; prot["putMaxValRule"] = prot.putMaxValRule; prot["putMaxVal"] = prot.putMaxVal; prot["putInvertValOrder"] = prot.putInvertValOrder; prot["putLogScale"] = prot.putLogScale; prot["putLogBase"] = prot.putLogBase; prot["putUnits"] = prot.putUnits; prot["putShowUnitsOnChart"] = prot.putShowUnitsOnChart; prot["putMajorTickMark"] = prot.putMajorTickMark; prot["putMinorTickMark"] = prot.putMinorTickMark; prot["putTickLabelsPos"] = prot.putTickLabelsPos; prot["putCrossesRule"] = prot.putCrossesRule; prot["putCrosses"] = prot.putCrosses; prot["putDispUnitsRule"] = prot.putDispUnitsRule; prot["getDispUnitsRule"] = prot.getDispUnitsRule; prot["putAxisType"] = prot.putAxisType; prot["getAxisType"] = prot.getAxisType; prot["getMinValRule"] = prot.getMinValRule; prot["getMinVal"] = prot.getMinVal; prot["getMaxValRule"] = prot.getMaxValRule; prot["getMaxVal"] = prot.getMaxVal; prot["getInvertValOrder"] = prot.getInvertValOrder; prot["getLogScale"] = prot.getLogScale; prot["getLogBase"] = prot.getLogBase; prot["getUnits"] = prot.getUnits; prot["getShowUnitsOnChart"] = prot.getShowUnitsOnChart; prot["getMajorTickMark"] = prot.getMajorTickMark; prot["getMinorTickMark"] = prot.getMinorTickMark; prot["getTickLabelsPos"] = prot.getTickLabelsPos; prot["getCrossesRule"] = prot.getCrossesRule; prot["getCrosses"] = prot.getCrosses; prot["setDefault"] = prot.setDefault; window["AscCommon"].asc_CatAxisSettings = asc_CatAxisSettings; prot = asc_CatAxisSettings.prototype; prot["putIntervalBetweenTick"] = prot.putIntervalBetweenTick; prot["putIntervalBetweenLabelsRule"] = prot.putIntervalBetweenLabelsRule; prot["putIntervalBetweenLabels"] = prot.putIntervalBetweenLabels; prot["putInvertCatOrder"] = prot.putInvertCatOrder; prot["putLabelsAxisDistance"] = prot.putLabelsAxisDistance; prot["putMajorTickMark"] = prot.putMajorTickMark; prot["putMinorTickMark"] = prot.putMinorTickMark; prot["putTickLabelsPos"] = prot.putTickLabelsPos; prot["putCrossesRule"] = prot.putCrossesRule; prot["putCrosses"] = prot.putCrosses; prot["putAxisType"] = prot.putAxisType; prot["putLabelsPosition"] = prot.putLabelsPosition; prot["putCrossMaxVal"] = prot.putCrossMaxVal; prot["putCrossMinVal"] = prot.putCrossMinVal; prot["getIntervalBetweenTick"] = prot.getIntervalBetweenTick; prot["getIntervalBetweenLabelsRule"] = prot.getIntervalBetweenLabelsRule; prot["getIntervalBetweenLabels"] = prot.getIntervalBetweenLabels; prot["getInvertCatOrder"] = prot.getInvertCatOrder; prot["getLabelsAxisDistance"] = prot.getLabelsAxisDistance; prot["getMajorTickMark"] = prot.getMajorTickMark; prot["getMinorTickMark"] = prot.getMinorTickMark; prot["getTickLabelsPos"] = prot.getTickLabelsPos; prot["getCrossesRule"] = prot.getCrossesRule; prot["getCrosses"] = prot.getCrosses; prot["getAxisType"] = prot.getAxisType; prot["getLabelsPosition"] = prot.getLabelsPosition; prot["getCrossMaxVal"] = prot.getCrossMaxVal; prot["getCrossMinVal"] = prot.getCrossMinVal; prot["setDefault"] = prot.setDefault; window["Asc"]["asc_ChartSettings"] = window["Asc"].asc_ChartSettings = asc_ChartSettings; prot = asc_ChartSettings.prototype; prot["putStyle"] = prot.putStyle; prot["putTitle"] = prot.putTitle; prot["putRowCols"] = prot.putRowCols; prot["putHorAxisLabel"] = prot.putHorAxisLabel; prot["putVertAxisLabel"] = prot.putVertAxisLabel; prot["putLegendPos"] = prot.putLegendPos; prot["putDataLabelsPos"] = prot.putDataLabelsPos; prot["putCatAx"] = prot.putCatAx; prot["putValAx"] = prot.putValAx; prot["getStyle"] = prot.getStyle; prot["getTitle"] = prot.getTitle; prot["getRowCols"] = prot.getRowCols; prot["getHorAxisLabel"] = prot.getHorAxisLabel; prot["getVertAxisLabel"] = prot.getVertAxisLabel; prot["getLegendPos"] = prot.getLegendPos; prot["getDataLabelsPos"] = prot.getDataLabelsPos; prot["getHorAx"] = prot.getHorAx; prot["getVertAx"] = prot.getVertAx; prot["getHorGridLines"] = prot.getHorGridLines; prot["putHorGridLines"] = prot.putHorGridLines; prot["getVertGridLines"] = prot.getVertGridLines; prot["putVertGridLines"] = prot.putVertGridLines; prot["getType"] = prot.getType; prot["putType"] = prot.putType; prot["putShowSerName"] = prot.putShowSerName; prot["getShowSerName"] = prot.getShowSerName; prot["putShowCatName"] = prot.putShowCatName; prot["getShowCatName"] = prot.getShowCatName; prot["putShowVal"] = prot.putShowVal; prot["getShowVal"] = prot.getShowVal; prot["putSeparator"] = prot.putSeparator; prot["getSeparator"] = prot.getSeparator; prot["putHorAxisProps"] = prot.putHorAxisProps; prot["getHorAxisProps"] = prot.getHorAxisProps; prot["putVertAxisProps"] = prot.putVertAxisProps; prot["getVertAxisProps"] = prot.getVertAxisProps; prot["putRange"] = prot.putRange; prot["getRange"] = prot.getRange; prot["putInColumns"] = prot.putInColumns; prot["getInColumns"] = prot.getInColumns; prot["putShowMarker"] = prot.putShowMarker; prot["getShowMarker"] = prot.getShowMarker; prot["putLine"] = prot.putLine; prot["getLine"] = prot.getLine; prot["putSmooth"] = prot.putSmooth; prot["getSmooth"] = prot.getSmooth; prot["changeType"] = prot.changeType; prot["putShowHorAxis"] = prot.putShowHorAxis; prot["getShowHorAxis"] = prot.getShowHorAxis; prot["putShowVerAxis"] = prot.putShowVerAxis; prot["getShowVerAxis"] = prot.getShowVerAxis; window["AscCommon"].asc_CRect = asc_CRect; prot = asc_CRect.prototype; prot["asc_getX"] = prot.asc_getX; prot["asc_getY"] = prot.asc_getY; prot["asc_getWidth"] = prot.asc_getWidth; prot["asc_getHeight"] = prot.asc_getHeight; window["AscCommon"].CColor = CColor; prot = CColor.prototype; prot["getR"] = prot.getR; prot["get_r"] = prot.get_r; prot["put_r"] = prot.put_r; prot["getG"] = prot.getG; prot["get_g"] = prot.get_g; prot["put_g"] = prot.put_g; prot["getB"] = prot.getB; prot["get_b"] = prot.get_b; prot["put_b"] = prot.put_b; prot["getA"] = prot.getA; prot["get_hex"] = prot.get_hex; window["Asc"]["asc_CColor"] = window["Asc"].asc_CColor = asc_CColor; prot = asc_CColor.prototype; prot["get_r"] = prot["asc_getR"] = prot.asc_getR; prot["put_r"] = prot["asc_putR"] = prot.asc_putR; prot["get_g"] = prot["asc_getG"] = prot.asc_getG; prot["put_g"] = prot["asc_putG"] = prot.asc_putG; prot["get_b"] = prot["asc_getB"] = prot.asc_getB; prot["put_b"] = prot["asc_putB"] = prot.asc_putB; prot["get_a"] = prot["asc_getA"] = prot.asc_getA; prot["put_a"] = prot["asc_putA"] = prot.asc_putA; prot["get_auto"] = prot["asc_getAuto"] = prot.asc_getAuto; prot["put_auto"] = prot["asc_putAuto"] = prot.asc_putAuto; prot["get_type"] = prot["asc_getType"] = prot.asc_getType; prot["put_type"] = prot["asc_putType"] = prot.asc_putType; prot["get_value"] = prot["asc_getValue"] = prot.asc_getValue; prot["put_value"] = prot["asc_putValue"] = prot.asc_putValue; prot["get_hex"] = prot["asc_getHex"] = prot.asc_getHex; prot["get_color"] = prot["asc_getColor"] = prot.asc_getColor; prot["get_hex"] = prot["asc_getHex"] = prot.asc_getHex; window["Asc"]["asc_CTextBorder"] = window["Asc"].asc_CTextBorder = asc_CTextBorder; prot = asc_CTextBorder.prototype; prot["get_Color"] = prot["asc_getColor"] = prot.asc_getColor; prot["put_Color"] = prot["asc_putColor"] = prot.asc_putColor; prot["get_Size"] = prot["asc_getSize"] = prot.asc_getSize; prot["put_Size"] = prot["asc_putSize"] = prot.asc_putSize; prot["get_Value"] = prot["asc_getValue"] = prot.asc_getValue; prot["put_Value"] = prot["asc_putValue"] = prot.asc_putValue; prot["get_Space"] = prot["asc_getSpace"] = prot.asc_getSpace; prot["put_Space"] = prot["asc_putSpace"] = prot.asc_putSpace; prot["get_ForSelectedCells"] = prot["asc_getForSelectedCells"] = prot.asc_getForSelectedCells; prot["put_ForSelectedCells"] = prot["asc_putForSelectedCells"] = prot.asc_putForSelectedCells; window["Asc"]["asc_CParagraphBorders"] = asc_CParagraphBorders; prot = asc_CParagraphBorders.prototype; prot["get_Left"] = prot["asc_getLeft"] = prot.asc_getLeft; prot["put_Left"] = prot["asc_putLeft"] = prot.asc_putLeft; prot["get_Top"] = prot["asc_getTop"] = prot.asc_getTop; prot["put_Top"] = prot["asc_putTop"] = prot.asc_putTop; prot["get_Right"] = prot["asc_getRight"] = prot.asc_getRight; prot["put_Right"] = prot["asc_putRight"] = prot.asc_putRight; prot["get_Bottom"] = prot["asc_getBottom"] = prot.asc_getBottom; prot["put_Bottom"] = prot["asc_putBottom"] = prot.asc_putBottom; prot["get_Between"] = prot["asc_getBetween"] = prot.asc_getBetween; prot["put_Between"] = prot["asc_putBetween"] = prot.asc_putBetween; window["AscCommon"].asc_CListType = asc_CListType; prot = asc_CListType.prototype; prot["get_ListType"] = prot["asc_getListType"] = prot.asc_getListType; prot["get_ListSubType"] = prot["asc_getListSubType"] = prot.asc_getListSubType; window["AscCommon"].asc_CTextFontFamily = asc_CTextFontFamily; prot = asc_CTextFontFamily.prototype; prot["get_Name"] = prot["asc_getName"] = prot.asc_getName; prot["get_Index"] = prot["asc_getIndex"] = prot.asc_getIndex; window["Asc"]["asc_CParagraphTab"] = window["Asc"].asc_CParagraphTab = asc_CParagraphTab; prot = asc_CParagraphTab.prototype; prot["get_Value"] = prot["asc_getValue"] = prot.asc_getValue; prot["put_Value"] = prot["asc_putValue"] = prot.asc_putValue; prot["get_Pos"] = prot["asc_getPos"] = prot.asc_getPos; prot["put_Pos"] = prot["asc_putPos"] = prot.asc_putPos; prot["get_Leader"] = prot["asc_getLeader"] = prot.asc_getLeader; prot["put_Leader"] = prot["asc_putLeader"] = prot.asc_putLeader; window["Asc"]["asc_CParagraphTabs"] = window["Asc"].asc_CParagraphTabs = asc_CParagraphTabs; prot = asc_CParagraphTabs.prototype; prot["get_Count"] = prot["asc_getCount"] = prot.asc_getCount; prot["get_Tab"] = prot["asc_getTab"] = prot.asc_getTab; prot["add_Tab"] = prot["asc_addTab"] = prot.asc_addTab; prot["clear"] = prot.clear = prot["asc_clear"] = prot.asc_clear; window["Asc"]["asc_CParagraphShd"] = window["Asc"].asc_CParagraphShd = asc_CParagraphShd; prot = asc_CParagraphShd.prototype; prot["get_Value"] = prot["asc_getValue"] = prot.asc_getValue; prot["put_Value"] = prot["asc_putValue"] = prot.asc_putValue; prot["get_Color"] = prot["asc_getColor"] = prot.asc_getColor; prot["put_Color"] = prot["asc_putColor"] = prot.asc_putColor; window["Asc"]["asc_CParagraphFrame"] = window["Asc"].asc_CParagraphFrame = asc_CParagraphFrame; prot = asc_CParagraphFrame.prototype; prot["asc_getDropCap"] = prot["get_DropCap"] = prot.asc_getDropCap; prot["asc_putDropCap"] = prot["put_DropCap"] = prot.asc_putDropCap; prot["asc_getH"] = prot["get_H"] = prot.asc_getH; prot["asc_putH"] = prot["put_H"] = prot.asc_putH; prot["asc_getHAnchor"] = prot["get_HAnchor"] = prot.asc_getHAnchor; prot["asc_putHAnchor"] = prot["put_HAnchor"] = prot.asc_putHAnchor; prot["asc_getHRule"] = prot["get_HRule"] = prot.asc_getHRule; prot["asc_putHRule"] = prot["put_HRule"] = prot.asc_putHRule; prot["asc_getHSpace"] = prot["get_HSpace"] = prot.asc_getHSpace; prot["asc_putHSpace"] = prot["put_HSpace"] = prot.asc_putHSpace; prot["asc_getLines"] = prot["get_Lines"] = prot.asc_getLines; prot["asc_putLines"] = prot["put_Lines"] = prot.asc_putLines; prot["asc_getVAnchor"] = prot["get_VAnchor"] = prot.asc_getVAnchor; prot["asc_putVAnchor"] = prot["put_VAnchor"] = prot.asc_putVAnchor; prot["asc_getVSpace"] = prot["get_VSpace"] = prot.asc_getVSpace; prot["asc_putVSpace"] = prot["put_VSpace"] = prot.asc_putVSpace; prot["asc_getW"] = prot["get_W"] = prot.asc_getW; prot["asc_putW"] = prot["put_W"] = prot.asc_putW; prot["asc_getWrap"] = prot["get_Wrap"] = prot.asc_getWrap; prot["asc_putWrap"] = prot["put_Wrap"] = prot.asc_putWrap; prot["asc_getX"] = prot["get_X"] = prot.asc_getX; prot["asc_putX"] = prot["put_X"] = prot.asc_putX; prot["asc_getXAlign"] = prot["get_XAlign"] = prot.asc_getXAlign; prot["asc_putXAlign"] = prot["put_XAlign"] = prot.asc_putXAlign; prot["asc_getY"] = prot["get_Y"] = prot.asc_getY; prot["asc_putY"] = prot["put_Y"] = prot.asc_putY; prot["asc_getYAlign"] = prot["get_YAlign"] = prot.asc_getYAlign; prot["asc_putYAlign"] = prot["put_YAlign"] = prot.asc_putYAlign; prot["asc_getBorders"] = prot["get_Borders"] = prot.asc_getBorders; prot["asc_putBorders"] = prot["put_Borders"] = prot.asc_putBorders; prot["asc_getShade"] = prot["get_Shade"] = prot.asc_getShade; prot["asc_putShade"] = prot["put_Shade"] = prot.asc_putShade; prot["asc_getFontFamily"] = prot["get_FontFamily"] = prot.asc_getFontFamily; prot["asc_putFontFamily"] = prot["put_FontFamily"] = prot.asc_putFontFamily; prot["asc_putFromDropCapMenu"] = prot["put_FromDropCapMenu"] = prot.asc_putFromDropCapMenu; window["AscCommon"].asc_CParagraphSpacing = asc_CParagraphSpacing; prot = asc_CParagraphSpacing.prototype; prot["get_Line"] = prot["asc_getLine"] = prot.asc_getLine; prot["get_LineRule"] = prot["asc_getLineRule"] = prot.asc_getLineRule; prot["get_Before"] = prot["asc_getBefore"] = prot.asc_getBefore; prot["get_After"] = prot["asc_getAfter"] = prot.asc_getAfter; window["Asc"]["asc_CParagraphInd"] = window["Asc"].asc_CParagraphInd = asc_CParagraphInd; prot = asc_CParagraphInd.prototype; prot["get_Left"] = prot["asc_getLeft"] = prot.asc_getLeft; prot["put_Left"] = prot["asc_putLeft"] = prot.asc_putLeft; prot["get_Right"] = prot["asc_getRight"] = prot.asc_getRight; prot["put_Right"] = prot["asc_putRight"] = prot.asc_putRight; prot["get_FirstLine"] = prot["asc_getFirstLine"] = prot.asc_getFirstLine; prot["put_FirstLine"] = prot["asc_putFirstLine"] = prot.asc_putFirstLine; window["Asc"]["asc_CParagraphProperty"] = window["Asc"].asc_CParagraphProperty = asc_CParagraphProperty; prot = asc_CParagraphProperty.prototype; prot["get_ContextualSpacing"] = prot["asc_getContextualSpacing"] = prot.asc_getContextualSpacing; prot["put_ContextualSpacing"] = prot["asc_putContextualSpacing"] = prot.asc_putContextualSpacing; prot["get_Ind"] = prot["asc_getInd"] = prot.asc_getInd; prot["put_Ind"] = prot["asc_putInd"] = prot.asc_putInd; prot["get_KeepLines"] = prot["asc_getKeepLines"] = prot.asc_getKeepLines; prot["put_KeepLines"] = prot["asc_putKeepLines"] = prot.asc_putKeepLines; prot["get_KeepNext"] = prot["asc_getKeepNext"] = prot.asc_getKeepNext; prot["put_KeepNext"] = prot["asc_putKeepNext"] = prot.asc_putKeepNext; prot["get_PageBreakBefore"] = prot["asc_getPageBreakBefore"] = prot.asc_getPageBreakBefore; prot["put_PageBreakBefore"] = prot["asc_putPageBreakBefore"] = prot.asc_putPageBreakBefore; prot["get_WidowControl"] = prot["asc_getWidowControl"] = prot.asc_getWidowControl; prot["put_WidowControl"] = prot["asc_putWidowControl"] = prot.asc_putWidowControl; prot["get_Spacing"] = prot["asc_getSpacing"] = prot.asc_getSpacing; prot["put_Spacing"] = prot["asc_putSpacing"] = prot.asc_putSpacing; prot["get_Borders"] = prot["asc_getBorders"] = prot.asc_getBorders; prot["put_Borders"] = prot["asc_putBorders"] = prot.asc_putBorders; prot["get_Shade"] = prot["asc_getShade"] = prot.asc_getShade; prot["put_Shade"] = prot["asc_putShade"] = prot.asc_putShade; prot["get_Locked"] = prot["asc_getLocked"] = prot.asc_getLocked; prot["get_CanAddTable"] = prot["asc_getCanAddTable"] = prot.asc_getCanAddTable; prot["get_Subscript"] = prot["asc_getSubscript"] = prot.asc_getSubscript; prot["put_Subscript"] = prot["asc_putSubscript"] = prot.asc_putSubscript; prot["get_Superscript"] = prot["asc_getSuperscript"] = prot.asc_getSuperscript; prot["put_Superscript"] = prot["asc_putSuperscript"] = prot.asc_putSuperscript; prot["get_SmallCaps"] = prot["asc_getSmallCaps"] = prot.asc_getSmallCaps; prot["put_SmallCaps"] = prot["asc_putSmallCaps"] = prot.asc_putSmallCaps; prot["get_AllCaps"] = prot["asc_getAllCaps"] = prot.asc_getAllCaps; prot["put_AllCaps"] = prot["asc_putAllCaps"] = prot.asc_putAllCaps; prot["get_Strikeout"] = prot["asc_getStrikeout"] = prot.asc_getStrikeout; prot["put_Strikeout"] = prot["asc_putStrikeout"] = prot.asc_putStrikeout; prot["get_DStrikeout"] = prot["asc_getDStrikeout"] = prot.asc_getDStrikeout; prot["put_DStrikeout"] = prot["asc_putDStrikeout"] = prot.asc_putDStrikeout; prot["get_TextSpacing"] = prot["asc_getTextSpacing"] = prot.asc_getTextSpacing; prot["put_TextSpacing"] = prot["asc_putTextSpacing"] = prot.asc_putTextSpacing; prot["get_Position"] = prot["asc_getPosition"] = prot.asc_getPosition; prot["put_Position"] = prot["asc_putPosition"] = prot.asc_putPosition; prot["get_Tabs"] = prot["asc_getTabs"] = prot.asc_getTabs; prot["put_Tabs"] = prot["asc_putTabs"] = prot.asc_putTabs; prot["get_DefaultTab"] = prot["asc_getDefaultTab"] = prot.asc_getDefaultTab; prot["put_DefaultTab"] = prot["asc_putDefaultTab"] = prot.asc_putDefaultTab; prot["get_FramePr"] = prot["asc_getFramePr"] = prot.asc_getFramePr; prot["put_FramePr"] = prot["asc_putFramePr"] = prot.asc_putFramePr; prot["get_CanAddDropCap"] = prot["asc_getCanAddDropCap"] = prot.asc_getCanAddDropCap; prot["get_CanAddImage"] = prot["asc_getCanAddImage"] = prot.asc_getCanAddImage; window["AscCommon"].asc_CTexture = asc_CTexture; prot = asc_CTexture.prototype; prot["get_id"] = prot["asc_getId"] = prot.asc_getId; prot["get_image"] = prot["asc_getImage"] = prot.asc_getImage; window["AscCommon"].asc_CImageSize = asc_CImageSize; prot = asc_CImageSize.prototype; prot["get_ImageWidth"] = prot["asc_getImageWidth"] = prot.asc_getImageWidth; prot["get_ImageHeight"] = prot["asc_getImageHeight"] = prot.asc_getImageHeight; prot["get_IsCorrect"] = prot["asc_getIsCorrect"] = prot.asc_getIsCorrect; window["Asc"]["asc_CPaddings"] = window["Asc"].asc_CPaddings = asc_CPaddings; prot = asc_CPaddings.prototype; prot["get_Left"] = prot["asc_getLeft"] = prot.asc_getLeft; prot["put_Left"] = prot["asc_putLeft"] = prot.asc_putLeft; prot["get_Top"] = prot["asc_getTop"] = prot.asc_getTop; prot["put_Top"] = prot["asc_putTop"] = prot.asc_putTop; prot["get_Bottom"] = prot["asc_getBottom"] = prot.asc_getBottom; prot["put_Bottom"] = prot["asc_putBottom"] = prot.asc_putBottom; prot["get_Right"] = prot["asc_getRight"] = prot.asc_getRight; prot["put_Right"] = prot["asc_putRight"] = prot.asc_putRight; window["Asc"]["asc_CShapeProperty"] = window["Asc"].asc_CShapeProperty = asc_CShapeProperty; prot = asc_CShapeProperty.prototype; prot["get_type"] = prot["asc_getType"] = prot.asc_getType; prot["put_type"] = prot["asc_putType"] = prot.asc_putType; prot["get_fill"] = prot["asc_getFill"] = prot.asc_getFill; prot["put_fill"] = prot["asc_putFill"] = prot.asc_putFill; prot["get_stroke"] = prot["asc_getStroke"] = prot.asc_getStroke; prot["put_stroke"] = prot["asc_putStroke"] = prot.asc_putStroke; prot["get_paddings"] = prot["asc_getPaddings"] = prot.asc_getPaddings; prot["put_paddings"] = prot["asc_putPaddings"] = prot.asc_putPaddings; prot["get_CanFill"] = prot["asc_getCanFill"] = prot.asc_getCanFill; prot["put_CanFill"] = prot["asc_putCanFill"] = prot.asc_putCanFill; prot["get_CanChangeArrows"] = prot["asc_getCanChangeArrows"] = prot.asc_getCanChangeArrows; prot["set_CanChangeArrows"] = prot["asc_setCanChangeArrows"] = prot.asc_setCanChangeArrows; prot["get_FromChart"] = prot["asc_getFromChart"] = prot.asc_getFromChart; prot["set_FromChart"] = prot["asc_setFromChart"] = prot.asc_setFromChart; prot["get_Locked"] = prot["asc_getLocked"] = prot.asc_getLocked; prot["set_Locked"] = prot["asc_setLocked"] = prot.asc_setLocked; prot["get_Width"] = prot["asc_getWidth"] = prot.asc_getWidth; prot["put_Width"] = prot["asc_putWidth"] = prot.asc_putWidth; prot["get_Height"] = prot["asc_getHeight"] = prot.asc_getHeight; prot["put_Height"] = prot["asc_putHeight"] = prot.asc_putHeight; prot["get_VerticalTextAlign"] = prot["asc_getVerticalTextAlign"] = prot.asc_getVerticalTextAlign; prot["put_VerticalTextAlign"] = prot["asc_putVerticalTextAlign"] = prot.asc_putVerticalTextAlign; prot["get_Vert"] = prot["asc_getVert"] = prot.asc_getVert; prot["put_Vert"] = prot["asc_putVert"] = prot.asc_putVert; prot["get_TextArtProperties"] = prot["asc_getTextArtProperties"] = prot.asc_getTextArtProperties; prot["put_TextArtProperties"] = prot["asc_putTextArtProperties"] = prot.asc_putTextArtProperties; prot["get_LockAspect"] = prot["asc_getLockAspect"] = prot.asc_getLockAspect; prot["put_LockAspect"] = prot["asc_putLockAspect"] = prot.asc_putLockAspect; prot["get_Title"] = prot["asc_getTitle"] = prot.asc_getTitle; prot["put_Title"] = prot["asc_putTitle"] = prot.asc_putTitle; prot["get_Description"] = prot["asc_getDescription"] = prot.asc_getDescription; prot["put_Description"] = prot["asc_putDescription"] = prot.asc_putDescription; prot["get_ColumnNumber"] = prot["asc_getColumnNumber"] = prot.asc_getColumnNumber; prot["put_ColumnNumber"] = prot["asc_putColumnNumber"] = prot.asc_putColumnNumber; prot["get_ColumnSpace"] = prot["asc_getColumnSpace"] = prot.asc_getColumnSpace; prot["put_ColumnSpace"] = prot["asc_putColumnSpace"] = prot.asc_putColumnSpace; prot["get_SignatureId"] = prot["asc_getSignatureId"] = prot.asc_getSignatureId; prot["put_SignatureId"] = prot["asc_putSignatureId"] = prot.asc_putSignatureId; prot["get_FromImage"] = prot["asc_getFromImage"] = prot.asc_getFromImage; prot["put_FromImage"] = prot["asc_putFromImage"] = prot.asc_putFromImage; window["Asc"]["asc_TextArtProperties"] = window["Asc"].asc_TextArtProperties = asc_TextArtProperties; prot = asc_TextArtProperties.prototype; prot["asc_putFill"] = prot.asc_putFill; prot["asc_getFill"] = prot.asc_getFill; prot["asc_putLine"] = prot.asc_putLine; prot["asc_getLine"] = prot.asc_getLine; prot["asc_putForm"] = prot.asc_putForm; prot["asc_getForm"] = prot.asc_getForm; prot["asc_putStyle"] = prot.asc_putStyle; prot["asc_getStyle"] = prot.asc_getStyle; window['Asc']['CImagePositionH'] = window["Asc"].CImagePositionH = CImagePositionH; prot = CImagePositionH.prototype; prot['get_RelativeFrom'] = prot.get_RelativeFrom; prot['put_RelativeFrom'] = prot.put_RelativeFrom; prot['get_UseAlign'] = prot.get_UseAlign; prot['put_UseAlign'] = prot.put_UseAlign; prot['get_Align'] = prot.get_Align; prot['put_Align'] = prot.put_Align; prot['get_Value'] = prot.get_Value; prot['put_Value'] = prot.put_Value; prot['get_Percent'] = prot.get_Percent; prot['put_Percent'] = prot.put_Percent; window['Asc']['CImagePositionV'] = window["Asc"].CImagePositionV = CImagePositionV; prot = CImagePositionV.prototype; prot['get_RelativeFrom'] = prot.get_RelativeFrom; prot['put_RelativeFrom'] = prot.put_RelativeFrom; prot['get_UseAlign'] = prot.get_UseAlign; prot['put_UseAlign'] = prot.put_UseAlign; prot['get_Align'] = prot.get_Align; prot['put_Align'] = prot.put_Align; prot['get_Value'] = prot.get_Value; prot['put_Value'] = prot.put_Value; prot['get_Percent'] = prot.get_Percent; prot['put_Percent'] = prot.put_Percent; window['Asc']['CPosition'] = window["Asc"].CPosition = CPosition; prot = CPosition.prototype; prot['get_X'] = prot.get_X; prot['put_X'] = prot.put_X; prot['get_Y'] = prot.get_Y; prot['put_Y'] = prot.put_Y; window["Asc"]["asc_CImgProperty"] = window["Asc"].asc_CImgProperty = asc_CImgProperty; prot = asc_CImgProperty.prototype; prot["get_ChangeLevel"] = prot["asc_getChangeLevel"] = prot.asc_getChangeLevel; prot["put_ChangeLevel"] = prot["asc_putChangeLevel"] = prot.asc_putChangeLevel; prot["get_CanBeFlow"] = prot["asc_getCanBeFlow"] = prot.asc_getCanBeFlow; prot["get_Width"] = prot["asc_getWidth"] = prot.asc_getWidth; prot["put_Width"] = prot["asc_putWidth"] = prot.asc_putWidth; prot["get_Height"] = prot["asc_getHeight"] = prot.asc_getHeight; prot["put_Height"] = prot["asc_putHeight"] = prot.asc_putHeight; prot["get_WrappingStyle"] = prot["asc_getWrappingStyle"] = prot.asc_getWrappingStyle; prot["put_WrappingStyle"] = prot["asc_putWrappingStyle"] = prot.asc_putWrappingStyle; prot["get_Paddings"] = prot["asc_getPaddings"] = prot.asc_getPaddings; prot["put_Paddings"] = prot["asc_putPaddings"] = prot.asc_putPaddings; prot["get_AllowOverlap"] = prot["asc_getAllowOverlap"] = prot.asc_getAllowOverlap; prot["put_AllowOverlap"] = prot["asc_putAllowOverlap"] = prot.asc_putAllowOverlap; prot["get_Position"] = prot["asc_getPosition"] = prot.asc_getPosition; prot["put_Position"] = prot["asc_putPosition"] = prot.asc_putPosition; prot["get_PositionH"] = prot["asc_getPositionH"] = prot.asc_getPositionH; prot["put_PositionH"] = prot["asc_putPositionH"] = prot.asc_putPositionH; prot["get_PositionV"] = prot["asc_getPositionV"] = prot.asc_getPositionV; prot["put_PositionV"] = prot["asc_putPositionV"] = prot.asc_putPositionV; prot["get_SizeRelH"] = prot["asc_getSizeRelH"] = prot.asc_getSizeRelH; prot["put_SizeRelH"] = prot["asc_putSizeRelH"] = prot.asc_putSizeRelH; prot["get_SizeRelV"] = prot["asc_getSizeRelV"] = prot.asc_getSizeRelV; prot["put_SizeRelV"] = prot["asc_putSizeRelV"] = prot.asc_putSizeRelV; prot["get_Value_X"] = prot["asc_getValue_X"] = prot.asc_getValue_X; prot["get_Value_Y"] = prot["asc_getValue_Y"] = prot.asc_getValue_Y; prot["get_ImageUrl"] = prot["asc_getImageUrl"] = prot.asc_getImageUrl; prot["put_ImageUrl"] = prot["asc_putImageUrl"] = prot.asc_putImageUrl; prot["get_Group"] = prot["asc_getGroup"] = prot.asc_getGroup; prot["put_Group"] = prot["asc_putGroup"] = prot.asc_putGroup; prot["get_FromGroup"] = prot["asc_getFromGroup"] = prot.asc_getFromGroup; prot["put_FromGroup"] = prot["asc_putFromGroup"] = prot.asc_putFromGroup; prot["get_isChartProps"] = prot["asc_getisChartProps"] = prot.asc_getisChartProps; prot["put_isChartPross"] = prot["asc_putisChartPross"] = prot.asc_putisChartPross; prot["get_SeveralCharts"] = prot["asc_getSeveralCharts"] = prot.asc_getSeveralCharts; prot["put_SeveralCharts"] = prot["asc_putSeveralCharts"] = prot.asc_putSeveralCharts; prot["get_SeveralChartTypes"] = prot["asc_getSeveralChartTypes"] = prot.asc_getSeveralChartTypes; prot["put_SeveralChartTypes"] = prot["asc_putSeveralChartTypes"] = prot.asc_putSeveralChartTypes; prot["get_SeveralChartStyles"] = prot["asc_getSeveralChartStyles"] = prot.asc_getSeveralChartStyles; prot["put_SeveralChartStyles"] = prot["asc_putSeveralChartStyles"] = prot.asc_putSeveralChartStyles; prot["get_VerticalTextAlign"] = prot["asc_getVerticalTextAlign"] = prot.asc_getVerticalTextAlign; prot["put_VerticalTextAlign"] = prot["asc_putVerticalTextAlign"] = prot.asc_putVerticalTextAlign; prot["get_Vert"] = prot["asc_getVert"] = prot.asc_getVert; prot["put_Vert"] = prot["asc_putVert"] = prot.asc_putVert; prot["get_Locked"] = prot["asc_getLocked"] = prot.asc_getLocked; prot["getLockAspect"] = prot["asc_getLockAspect"] = prot.asc_getLockAspect; prot["putLockAspect"] = prot["asc_putLockAspect"] = prot.asc_putLockAspect; prot["get_ChartProperties"] = prot["asc_getChartProperties"] = prot.asc_getChartProperties; prot["put_ChartProperties"] = prot["asc_putChartProperties"] = prot.asc_putChartProperties; prot["get_ShapeProperties"] = prot["asc_getShapeProperties"] = prot.asc_getShapeProperties; prot["put_ShapeProperties"] = prot["asc_putShapeProperties"] = prot.asc_putShapeProperties; prot["get_OriginSize"] = prot["asc_getOriginSize"] = prot.asc_getOriginSize; prot["get_PluginGuid"] = prot["asc_getPluginGuid"] = prot.asc_getPluginGuid; prot["put_PluginGuid"] = prot["asc_putPluginGuid"] = prot.asc_putPluginGuid; prot["get_PluginData"] = prot["asc_getPluginData"] = prot.asc_getPluginData; prot["put_PluginData"] = prot["asc_putPluginData"] = prot.asc_putPluginData; prot["get_Title"] = prot["asc_getTitle"] = prot.asc_getTitle; prot["put_Title"] = prot["asc_putTitle"] = prot.asc_putTitle; prot["get_Description"] = prot["asc_getDescription"] = prot.asc_getDescription; prot["put_Description"] = prot["asc_putDescription"] = prot.asc_putDescription; prot["get_ColumnNumber"] = prot["asc_getColumnNumber"] = prot.asc_getColumnNumber; prot["put_ColumnNumber"] = prot["asc_putColumnNumber"] = prot.asc_putColumnNumber; prot["get_ColumnSpace"] = prot["asc_getColumnSpace"] = prot.asc_getColumnSpace; prot["put_ColumnSpace"] = prot["asc_putColumnSpace"] = prot.asc_putColumnSpace; prot["asc_getSignatureId"] = prot["asc_getSignatureId"] = prot.asc_getSignatureId; window["AscCommon"].asc_CSelectedObject = asc_CSelectedObject; prot = asc_CSelectedObject.prototype; prot["get_ObjectType"] = prot["asc_getObjectType"] = prot.asc_getObjectType; prot["get_ObjectValue"] = prot["asc_getObjectValue"] = prot.asc_getObjectValue; window["Asc"]["asc_CShapeFill"] = window["Asc"].asc_CShapeFill = asc_CShapeFill; prot = asc_CShapeFill.prototype; prot["get_type"] = prot["asc_getType"] = prot.asc_getType; prot["put_type"] = prot["asc_putType"] = prot.asc_putType; prot["get_fill"] = prot["asc_getFill"] = prot.asc_getFill; prot["put_fill"] = prot["asc_putFill"] = prot.asc_putFill; prot["get_transparent"] = prot["asc_getTransparent"] = prot.asc_getTransparent; prot["put_transparent"] = prot["asc_putTransparent"] = prot.asc_putTransparent; prot["asc_CheckForseSet"] = prot["asc_CheckForseSet"] = prot.asc_CheckForseSet; window["Asc"]["asc_CFillBlip"] = window["Asc"].asc_CFillBlip = asc_CFillBlip; prot = asc_CFillBlip.prototype; prot["get_type"] = prot["asc_getType"] = prot.asc_getType; prot["put_type"] = prot["asc_putType"] = prot.asc_putType; prot["get_url"] = prot["asc_getUrl"] = prot.asc_getUrl; prot["put_url"] = prot["asc_putUrl"] = prot.asc_putUrl; prot["get_texture_id"] = prot["asc_getTextureId"] = prot.asc_getTextureId; prot["put_texture_id"] = prot["asc_putTextureId"] = prot.asc_putTextureId; window["Asc"]["asc_CFillHatch"] = window["Asc"].asc_CFillHatch = asc_CFillHatch; prot = asc_CFillHatch.prototype; prot["get_pattern_type"] = prot["asc_getPatternType"] = prot.asc_getPatternType; prot["put_pattern_type"] = prot["asc_putPatternType"] = prot.asc_putPatternType; prot["get_color_fg"] = prot["asc_getColorFg"] = prot.asc_getColorFg; prot["put_color_fg"] = prot["asc_putColorFg"] = prot.asc_putColorFg; prot["get_color_bg"] = prot["asc_getColorBg"] = prot.asc_getColorBg; prot["put_color_bg"] = prot["asc_putColorBg"] = prot.asc_putColorBg; window["Asc"]["asc_CFillGrad"] = window["Asc"].asc_CFillGrad = asc_CFillGrad; prot = asc_CFillGrad.prototype; prot["get_colors"] = prot["asc_getColors"] = prot.asc_getColors; prot["put_colors"] = prot["asc_putColors"] = prot.asc_putColors; prot["get_positions"] = prot["asc_getPositions"] = prot.asc_getPositions; prot["put_positions"] = prot["asc_putPositions"] = prot.asc_putPositions; prot["get_grad_type"] = prot["asc_getGradType"] = prot.asc_getGradType; prot["put_grad_type"] = prot["asc_putGradType"] = prot.asc_putGradType; prot["get_linear_angle"] = prot["asc_getLinearAngle"] = prot.asc_getLinearAngle; prot["put_linear_angle"] = prot["asc_putLinearAngle"] = prot.asc_putLinearAngle; prot["get_linear_scale"] = prot["asc_getLinearScale"] = prot.asc_getLinearScale; prot["put_linear_scale"] = prot["asc_putLinearScale"] = prot.asc_putLinearScale; prot["get_path_type"] = prot["asc_getPathType"] = prot.asc_getPathType; prot["put_path_type"] = prot["asc_putPathType"] = prot.asc_putPathType; window["Asc"]["asc_CFillSolid"] = window["Asc"].asc_CFillSolid = asc_CFillSolid; prot = asc_CFillSolid.prototype; prot["get_color"] = prot["asc_getColor"] = prot.asc_getColor; prot["put_color"] = prot["asc_putColor"] = prot.asc_putColor; window["Asc"]["asc_CStroke"] = window["Asc"].asc_CStroke = asc_CStroke; prot = asc_CStroke.prototype; prot["get_type"] = prot["asc_getType"] = prot.asc_getType; prot["put_type"] = prot["asc_putType"] = prot.asc_putType; prot["get_width"] = prot["asc_getWidth"] = prot.asc_getWidth; prot["put_width"] = prot["asc_putWidth"] = prot.asc_putWidth; prot["get_color"] = prot["asc_getColor"] = prot.asc_getColor; prot["put_color"] = prot["asc_putColor"] = prot.asc_putColor; prot["get_linejoin"] = prot["asc_getLinejoin"] = prot.asc_getLinejoin; prot["put_linejoin"] = prot["asc_putLinejoin"] = prot.asc_putLinejoin; prot["get_linecap"] = prot["asc_getLinecap"] = prot.asc_getLinecap; prot["put_linecap"] = prot["asc_putLinecap"] = prot.asc_putLinecap; prot["get_linebeginstyle"] = prot["asc_getLinebeginstyle"] = prot.asc_getLinebeginstyle; prot["put_linebeginstyle"] = prot["asc_putLinebeginstyle"] = prot.asc_putLinebeginstyle; prot["get_linebeginsize"] = prot["asc_getLinebeginsize"] = prot.asc_getLinebeginsize; prot["put_linebeginsize"] = prot["asc_putLinebeginsize"] = prot.asc_putLinebeginsize; prot["get_lineendstyle"] = prot["asc_getLineendstyle"] = prot.asc_getLineendstyle; prot["put_lineendstyle"] = prot["asc_putLineendstyle"] = prot.asc_putLineendstyle; prot["get_lineendsize"] = prot["asc_getLineendsize"] = prot.asc_getLineendsize; prot["put_lineendsize"] = prot["asc_putLineendsize"] = prot.asc_putLineendsize; prot["get_canChangeArrows"] = prot["asc_getCanChangeArrows"] = prot.asc_getCanChangeArrows; prot["put_prstDash"] = prot["asc_putPrstDash"] = prot.asc_putPrstDash; prot["get_prstDash"] = prot["asc_getPrstDash"] = prot.asc_getPrstDash; window["AscCommon"].CAscColorScheme = CAscColorScheme; prot = CAscColorScheme.prototype; prot["get_colors"] = prot.get_colors; prot["get_name"] = prot.get_name; window["AscCommon"].CMouseMoveData = CMouseMoveData; prot = CMouseMoveData.prototype; prot["get_Type"] = prot.get_Type; prot["get_X"] = prot.get_X; prot["get_Y"] = prot.get_Y; prot["get_Hyperlink"] = prot.get_Hyperlink; prot["get_UserId"] = prot.get_UserId; prot["get_HaveChanges"] = prot.get_HaveChanges; prot["get_LockedObjectType"] = prot.get_LockedObjectType; prot["get_FootnoteText"] = prot.get_FootnoteText; prot["get_FootnoteNumber"] = prot.get_FootnoteNumber; window["Asc"]["asc_CUserInfo"] = window["Asc"].asc_CUserInfo = asc_CUserInfo; prot = asc_CUserInfo.prototype; prot["asc_putId"] = prot["put_Id"] = prot.asc_putId; prot["asc_getId"] = prot["get_Id"] = prot.asc_getId; prot["asc_putFullName"] = prot["put_FullName"] = prot.asc_putFullName; prot["asc_getFullName"] = prot["get_FullName"] = prot.asc_getFullName; prot["asc_putFirstName"] = prot["put_FirstName"] = prot.asc_putFirstName; prot["asc_getFirstName"] = prot["get_FirstName"] = prot.asc_getFirstName; prot["asc_putLastName"] = prot["put_LastName"] = prot.asc_putLastName; prot["asc_getLastName"] = prot["get_LastName"] = prot.asc_getLastName; window["Asc"]["asc_CDocInfo"] = window["Asc"].asc_CDocInfo = asc_CDocInfo; prot = asc_CDocInfo.prototype; prot["get_Id"] = prot["asc_getId"] = prot.asc_getId; prot["put_Id"] = prot["asc_putId"] = prot.asc_putId; prot["get_Url"] = prot["asc_getUrl"] = prot.asc_getUrl; prot["put_Url"] = prot["asc_putUrl"] = prot.asc_putUrl; prot["get_Title"] = prot["asc_getTitle"] = prot.asc_getTitle; prot["put_Title"] = prot["asc_putTitle"] = prot.asc_putTitle; prot["get_Format"] = prot["asc_getFormat"] = prot.asc_getFormat; prot["put_Format"] = prot["asc_putFormat"] = prot.asc_putFormat; prot["get_VKey"] = prot["asc_getVKey"] = prot.asc_getVKey; prot["put_VKey"] = prot["asc_putVKey"] = prot.asc_putVKey; prot["get_UserId"] = prot["asc_getUserId"] = prot.asc_getUserId; prot["get_UserName"] = prot["asc_getUserName"] = prot.asc_getUserName; prot["get_Options"] = prot["asc_getOptions"] = prot.asc_getOptions; prot["put_Options"] = prot["asc_putOptions"] = prot.asc_putOptions; prot["get_CallbackUrl"] = prot["asc_getCallbackUrl"] = prot.asc_getCallbackUrl; prot["put_CallbackUrl"] = prot["asc_putCallbackUrl"] = prot.asc_putCallbackUrl; prot["get_TemplateReplacement"] = prot["asc_getTemplateReplacement"] = prot.asc_getTemplateReplacement; prot["put_TemplateReplacement"] = prot["asc_putTemplateReplacement"] = prot.asc_putTemplateReplacement; prot["get_UserInfo"] = prot["asc_getUserInfo"] = prot.asc_getUserInfo; prot["put_UserInfo"] = prot["asc_putUserInfo"] = prot.asc_putUserInfo; prot["get_Token"] = prot["asc_getToken"] = prot.asc_getToken; prot["put_Token"] = prot["asc_putToken"] = prot.asc_putToken; prot["get_Mode"] = prot["asc_getMode"] = prot.asc_getMode; prot["put_Mode"] = prot["asc_putMode"] = prot.asc_putMode; prot["get_Permissions"] = prot["asc_getPermissions"] = prot.asc_getPermissions; prot["put_Permissions"] = prot["asc_putPermissions"] = prot.asc_putPermissions; prot["get_Lang"] = prot["asc_getLang"] = prot.asc_getLang; prot["put_Lang"] = prot["asc_putLang"] = prot.asc_putLang; prot["get_Encrypted"] = prot["asc_getEncrypted"] = prot.asc_getEncrypted; prot["put_Encrypted"] = prot["asc_putEncrypted"] = prot.asc_putEncrypted; window["AscCommon"].COpenProgress = COpenProgress; prot = COpenProgress.prototype; prot["asc_getType"] = prot.asc_getType; prot["asc_getFontsCount"] = prot.asc_getFontsCount; prot["asc_getCurrentFont"] = prot.asc_getCurrentFont; prot["asc_getImagesCount"] = prot.asc_getImagesCount; prot["asc_getCurrentImage"] = prot.asc_getCurrentImage; window["AscCommon"].CErrorData = CErrorData; prot = CErrorData.prototype; prot["put_Value"] = prot.put_Value; prot["get_Value"] = prot.get_Value; window["AscCommon"].CAscMathType = CAscMathType; prot = CAscMathType.prototype; prot["get_Id"] = prot.get_Id; prot["get_X"] = prot.get_X; prot["get_Y"] = prot.get_Y; window["AscCommon"].CAscMathCategory = CAscMathCategory; prot = CAscMathCategory.prototype; prot["get_Id"] = prot.get_Id; prot["get_Data"] = prot.get_Data; prot["get_W"] = prot.get_W; prot["get_H"] = prot.get_H; window["AscCommon"].CStyleImage = CStyleImage; prot = CStyleImage.prototype; prot["asc_getName"] = prot["get_Name"] = prot.asc_getName; prot["asc_getType"] = prot["get_Type"] = prot.asc_getType; prot["asc_getImage"] = prot.asc_getImage; window["AscCommon"].asc_CSpellCheckProperty = asc_CSpellCheckProperty; prot = asc_CSpellCheckProperty.prototype; prot["get_Word"] = prot.get_Word; prot["get_Checked"] = prot.get_Checked; prot["get_Variants"] = prot.get_Variants; window["AscCommon"].CWatermarkOnDraw = CWatermarkOnDraw; window["Asc"]["CPluginVariation"] = window["Asc"].CPluginVariation = CPluginVariation; window["Asc"]["CPlugin"] = window["Asc"].CPlugin = CPlugin; })(window); /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; (function(window, undefined){ //зависимости //stream //memory //c_oAscChartType //todo //BinaryCommonWriter function inherit(proto) { function F() {} F.prototype = proto; return new F; } if (!Object.create || !Object['create']) Object['create'] = Object.create = inherit; var c_oSerConstants = { ErrorFormat: -2, ErrorUnknown: -1, ReadOk:0, ReadUnknown:1, ErrorStream:0x55 }; var c_oSerPropLenType = { Null:0, Byte:1, Short:2, Three:3, Long:4, Double:5, Variable:6 }; var c_oSer_ColorObjectType = { Rgb: 0, Type: 1, Theme: 2, Tint: 3 }; var c_oSer_ColorType = { Auto: 0 }; var c_oSerBorderType = { Color: 0, Space: 1, Size: 2, Value: 3, ColorTheme: 4 }; var c_oSerBordersType = { left: 0, top: 1, right: 2, bottom: 3, insideV: 4, insideH: 5, start: 6, end: 7, tl2br: 8, tr2bl: 9, bar: 10, between: 11 }; var c_oSerPaddingType = { left: 0, top: 1, right: 2, bottom: 3 }; var c_oSerShdType = { Value: 0, Color: 1, ColorTheme: 2 }; var c_oSer_ColorThemeType = { Auto: 0, Color: 1, Tint: 2, Shade: 3 }; var c_oSerBookmark = { Id: 0, Name: 1, DisplacedByCustomXml: 2, ColFirst: 3, ColLast: 4 }; function BinaryCommonWriter(memory) { this.memory = memory; } BinaryCommonWriter.prototype.WriteItem = function(type, fWrite) { //type this.memory.WriteByte(type); this.WriteItemWithLength(fWrite); }; BinaryCommonWriter.prototype.WriteItemStart = function(type, fWrite) { this.memory.WriteByte(type); return this.WriteItemWithLengthStart(fWrite); }; BinaryCommonWriter.prototype.WriteItemEnd = function(nStart) { this.WriteItemWithLengthEnd(nStart); }; BinaryCommonWriter.prototype.WriteItemWithLength = function(fWrite) { var nStart = this.WriteItemWithLengthStart(); fWrite(); this.WriteItemWithLengthEnd(nStart); }; BinaryCommonWriter.prototype.WriteItemWithLengthStart = function() { //Запоминаем позицию чтобы в конце записать туда длину var nStart = this.memory.GetCurPosition(); this.memory.Skip(4); return nStart; }; BinaryCommonWriter.prototype.WriteItemWithLengthEnd = function(nStart) { //Length var nEnd = this.memory.GetCurPosition(); this.memory.Seek(nStart); this.memory.WriteLong(nEnd - nStart - 4); this.memory.Seek(nEnd); }; BinaryCommonWriter.prototype.WriteBorder = function(border) { var _this = this; if(null != border.Value) { var color = null; if (null != border.Color) color = border.Color; else if (null != border.Unifill) { var doc = window.editor.WordControl.m_oLogicDocument; border.Unifill.check(doc.Get_Theme(), doc.Get_ColorMap()); var RGBA = border.Unifill.getRGBAColor(); color = new window['AscCommonWord'].CDocumentColor(RGBA.R, RGBA.G, RGBA.B); } if (null != color && !color.Auto) this.WriteColor(c_oSerBorderType.Color, color); if (null != border.Space) { this.memory.WriteByte(c_oSerBorderType.Space); this.memory.WriteByte(c_oSerPropLenType.Double); this.memory.WriteDouble(border.Space); } if (null != border.Size) { this.memory.WriteByte(c_oSerBorderType.Size); this.memory.WriteByte(c_oSerPropLenType.Double); this.memory.WriteDouble(border.Size); } if (null != border.Unifill || (null != border.Color && border.Color.Auto)) { this.memory.WriteByte(c_oSerBorderType.ColorTheme); this.memory.WriteByte(c_oSerPropLenType.Variable); this.WriteItemWithLength(function () { _this.WriteColorTheme(border.Unifill, border.Color); }); } this.memory.WriteByte(c_oSerBorderType.Value); this.memory.WriteByte(c_oSerPropLenType.Byte); this.memory.WriteByte(border.Value); } }; BinaryCommonWriter.prototype.WriteBorders = function(Borders) { var oThis = this; //Left if(null != Borders.Left) this.WriteItem(c_oSerBordersType.left, function(){oThis.WriteBorder(Borders.Left);}); //Top if(null != Borders.Top) this.WriteItem(c_oSerBordersType.top, function(){oThis.WriteBorder(Borders.Top);}); //Right if(null != Borders.Right) this.WriteItem(c_oSerBordersType.right, function(){oThis.WriteBorder(Borders.Right);}); //Bottom if(null != Borders.Bottom) this.WriteItem(c_oSerBordersType.bottom, function(){oThis.WriteBorder(Borders.Bottom);}); //InsideV if(null != Borders.InsideV) this.WriteItem(c_oSerBordersType.insideV, function(){oThis.WriteBorder(Borders.InsideV);}); //InsideH if(null != Borders.InsideH) this.WriteItem(c_oSerBordersType.insideH, function(){oThis.WriteBorder(Borders.InsideH);}); //Between if(null != Borders.Between) this.WriteItem(c_oSerBordersType.between, function(){oThis.WriteBorder(Borders.Between);}); }; BinaryCommonWriter.prototype.WriteColor = function(type, color) { this.memory.WriteByte(type); this.memory.WriteByte(c_oSerPropLenType.Three); this.memory.WriteByte(color.r); this.memory.WriteByte(color.g); this.memory.WriteByte(color.b); }; BinaryCommonWriter.prototype.WriteShd = function(Shd) { var _this = this; //Value if(null != Shd.Value) { this.memory.WriteByte(c_oSerShdType.Value); this.memory.WriteByte(c_oSerPropLenType.Byte); this.memory.WriteByte(Shd.Value); } //Value var color = null; if (null != Shd.Color) color = Shd.Color; else if (null != Shd.Unifill) { var doc = editor.WordControl.m_oLogicDocument; Shd.Unifill.check(doc.Get_Theme(), doc.Get_ColorMap()); var RGBA = Shd.Unifill.getRGBAColor(); color = new AscCommonWord.CDocumentColor(RGBA.R, RGBA.G, RGBA.B); } if (null != color && !color.Auto) this.WriteColor(c_oSerShdType.Color, color); if(null != Shd.Unifill || (null != Shd.Color && Shd.Color.Auto)) { this.memory.WriteByte(c_oSerShdType.ColorTheme); this.memory.WriteByte(c_oSerPropLenType.Variable); this.WriteItemWithLength(function(){_this.WriteColorTheme(Shd.Unifill, Shd.Color);}); } }; BinaryCommonWriter.prototype.WritePaddings = function(Paddings) { //left if(null != Paddings.L) { this.memory.WriteByte(c_oSerPaddingType.left); this.memory.WriteByte(c_oSerPropLenType.Double); this.memory.WriteDouble(Paddings.L); } //top if(null != Paddings.T) { this.memory.WriteByte(c_oSerPaddingType.top); this.memory.WriteByte(c_oSerPropLenType.Double); this.memory.WriteDouble(Paddings.T); } //Right if(null != Paddings.R) { this.memory.WriteByte(c_oSerPaddingType.right); this.memory.WriteByte(c_oSerPropLenType.Double); this.memory.WriteDouble(Paddings.R); } //bottom if(null != Paddings.B) { this.memory.WriteByte(c_oSerPaddingType.bottom); this.memory.WriteByte(c_oSerPropLenType.Double); this.memory.WriteDouble(Paddings.B); } }; BinaryCommonWriter.prototype.WriteColorSpreadsheet = function(color) { if(color instanceof AscCommonExcel.ThemeColor) { if(null != color.theme) { this.memory.WriteByte(c_oSer_ColorObjectType.Theme); this.memory.WriteByte(c_oSerPropLenType.Byte); this.memory.WriteByte(color.theme); } if(null != color.tint) { this.memory.WriteByte(c_oSer_ColorObjectType.Tint); this.memory.WriteByte(c_oSerPropLenType.Double); this.memory.WriteDouble2(color.tint); } } else { this.memory.WriteByte(c_oSer_ColorObjectType.Rgb); this.memory.WriteByte(c_oSerPropLenType.Long); this.memory.WriteLong(color.getRgb()); } }; BinaryCommonWriter.prototype.WriteColorTheme = function(unifill, color) { if(null != color && color.Auto){ this.memory.WriteByte(c_oSer_ColorThemeType.Auto); this.memory.WriteByte(c_oSerPropLenType.Null); } if (null != unifill && null != unifill.fill && null != unifill.fill.color && unifill.fill.color.color instanceof AscFormat.CSchemeColor) { var uniColor = unifill.fill.color; if(null != uniColor.color){ var EThemeColor = AscCommonWord.EThemeColor; var nFormatId = EThemeColor.themecolorNone; switch(uniColor.color.id){ case 0: nFormatId = EThemeColor.themecolorAccent1;break; case 1: nFormatId = EThemeColor.themecolorAccent2;break; case 2: nFormatId = EThemeColor.themecolorAccent3;break; case 3: nFormatId = EThemeColor.themecolorAccent4;break; case 4: nFormatId = EThemeColor.themecolorAccent5;break; case 5: nFormatId = EThemeColor.themecolorAccent6;break; case 6: nFormatId = EThemeColor.themecolorBackground1;break; case 7: nFormatId = EThemeColor.themecolorBackground2;break; case 8: nFormatId = EThemeColor.themecolorDark1;break; case 9: nFormatId = EThemeColor.themecolorDark2;break; case 10: nFormatId = EThemeColor.themecolorFollowedHyperlink;break; case 11: nFormatId = EThemeColor.themecolorHyperlink;break; case 12: nFormatId = EThemeColor.themecolorLight1;break; case 13: nFormatId = EThemeColor.themecolorLight2;break; case 14: nFormatId = EThemeColor.themecolorNone;break; case 15: nFormatId = EThemeColor.themecolorText1;break; case 16: nFormatId = EThemeColor.themecolorText2;break; } this.memory.WriteByte(c_oSer_ColorThemeType.Color); this.memory.WriteByte(c_oSerPropLenType.Byte); this.memory.WriteByte(nFormatId); } if(null != uniColor.Mods){ for(var i = 0, length = uniColor.Mods.Mods.length; i < length; ++i){ var mod = uniColor.Mods.Mods[i]; if("wordTint" == mod.name){ this.memory.WriteByte(c_oSer_ColorThemeType.Tint); this.memory.WriteByte(c_oSerPropLenType.Byte); this.memory.WriteByte(Math.round(mod.val)); } else if("wordShade" == mod.name){ this.memory.WriteByte(c_oSer_ColorThemeType.Shade); this.memory.WriteByte(c_oSerPropLenType.Byte); this.memory.WriteByte(Math.round(mod.val)); } } } } }; BinaryCommonWriter.prototype.WriteBookmark = function(bookmark) { var oThis = this; if (null !== bookmark.BookmarkId) { this.WriteItem(c_oSerBookmark.Id, function() { oThis.memory.WriteLong(bookmark.BookmarkId); }); } if (bookmark.IsStart() && null !== bookmark.BookmarkName) { this.memory.WriteByte(c_oSerBookmark.Name); this.memory.WriteString2(bookmark.BookmarkName); } }; function Binary_CommonReader(stream) { this.stream = stream; } Binary_CommonReader.prototype.ReadTable = function(fReadContent) { var res = c_oSerConstants.ReadOk; //stLen res = this.stream.EnterFrame(4); if(c_oSerConstants.ReadOk != res) return res; var stLen = this.stream.GetULongLE(); //Смотрим есть ли данные под всю таблицу в дальнейшем спокойно пользуемся get функциями res = this.stream.EnterFrame(stLen); if(c_oSerConstants.ReadOk != res) return res; return this.Read1(stLen, fReadContent); }; Binary_CommonReader.prototype.Read1 = function(stLen, fRead) { var res = c_oSerConstants.ReadOk; var stCurPos = 0; while(stCurPos < stLen) { this.stream.bLast = false; //stItem var type = this.stream.GetUChar(); var length = this.stream.GetULongLE(); if (stCurPos + length + 5 >= stLen) this.stream.bLast = true; res = fRead(type, length); if(res === c_oSerConstants.ReadUnknown) { res = this.stream.Skip2(length); if(c_oSerConstants.ReadOk != res) return res; } else if(res !== c_oSerConstants.ReadOk) return res; stCurPos += length + 5; } return res; }; Binary_CommonReader.prototype.Read2 = function(stLen, fRead) { var res = c_oSerConstants.ReadOk; var stCurPos = 0; while(stCurPos < stLen) { //stItem var type = this.stream.GetUChar(); var lenType = this.stream.GetUChar(); var nCurPosShift = 2; var nRealLen; switch(lenType) { case c_oSerPropLenType.Null: nRealLen = 0;break; case c_oSerPropLenType.Byte: nRealLen = 1;break; case c_oSerPropLenType.Short: nRealLen = 2;break; case c_oSerPropLenType.Three: nRealLen = 3;break; case c_oSerPropLenType.Long: case c_oSerPropLenType.Double: nRealLen = 4;break; case c_oSerPropLenType.Variable: nRealLen = this.stream.GetULongLE(); nCurPosShift += 4; break; default:return c_oSerConstants.ErrorUnknown; } res = fRead(type, nRealLen); if(res === c_oSerConstants.ReadUnknown) { res = this.stream.Skip2(nRealLen); if(c_oSerConstants.ReadOk != res) return res; } else if(res !== c_oSerConstants.ReadOk) return res; stCurPos += nRealLen + nCurPosShift; } return res; }; Binary_CommonReader.prototype.Read2Spreadsheet = function(stLen, fRead) { var res = c_oSerConstants.ReadOk; var stCurPos = 0; while(stCurPos < stLen) { //stItem var type = this.stream.GetUChar(); var lenType = this.stream.GetUChar(); var nCurPosShift = 2; var nRealLen; switch(lenType) { case c_oSerPropLenType.Null: nRealLen = 0;break; case c_oSerPropLenType.Byte: nRealLen = 1;break; case c_oSerPropLenType.Short: nRealLen = 2;break; case c_oSerPropLenType.Three: nRealLen = 3;break; case c_oSerPropLenType.Long: nRealLen = 4;break; case c_oSerPropLenType.Double: nRealLen = 8;break; case c_oSerPropLenType.Variable: nRealLen = this.stream.GetULongLE(); nCurPosShift += 4; break; default:return c_oSerConstants.ErrorUnknown; } res = fRead(type, nRealLen); if(res === c_oSerConstants.ReadUnknown) { res = this.stream.Skip2(nRealLen); if(c_oSerConstants.ReadOk != res) return res; } else if(res !== c_oSerConstants.ReadOk) return res; stCurPos += nRealLen + nCurPosShift; } return res; }; Binary_CommonReader.prototype.ReadDouble = function() { var dRes = 0.0; dRes |= this.stream.GetUChar(); dRes |= this.stream.GetUChar() << 8; dRes |= this.stream.GetUChar() << 16; dRes |= this.stream.GetUChar() << 24; dRes /= 100000; return dRes; }; Binary_CommonReader.prototype.ReadColor = function() { var r = this.stream.GetUChar(); var g = this.stream.GetUChar(); var b = this.stream.GetUChar(); return new AscCommonWord.CDocumentColor(r, g, b); }; Binary_CommonReader.prototype.ReadShd = function(type, length, Shd, themeColor) { var res = c_oSerConstants.ReadOk; var oThis = this; switch(type) { case c_oSerShdType.Value: Shd.Value = this.stream.GetUChar();break; case c_oSerShdType.Color: Shd.Color = this.ReadColor();break; case c_oSerShdType.ColorTheme: res = this.Read2(length, function(t, l){ return oThis.ReadColorTheme(t, l, themeColor); }); break; default: res = c_oSerConstants.ReadUnknown; break; } return res; }; Binary_CommonReader.prototype.ReadColorSpreadsheet = function(type, length, color) { var res = c_oSerConstants.ReadOk; if ( c_oSer_ColorObjectType.Type == type ) color.auto = (c_oSer_ColorType.Auto == this.stream.GetUChar()); else if ( c_oSer_ColorObjectType.Rgb == type ) color.rgb = 0xffffff & this.stream.GetULongLE(); else if ( c_oSer_ColorObjectType.Theme == type ) color.theme = this.stream.GetUChar(); else if ( c_oSer_ColorObjectType.Tint == type ) color.tint = this.stream.GetDoubleLE(); else res = c_oSerConstants.ReadUnknown; return res; }; Binary_CommonReader.prototype.ReadColorTheme = function(type, length, color) { var res = c_oSerConstants.ReadOk; if ( c_oSer_ColorThemeType.Auto == type ) color.Auto = true; else if ( c_oSer_ColorThemeType.Color == type ) color.Color = this.stream.GetByte(); else if ( c_oSer_ColorThemeType.Tint == type ) color.Tint = this.stream.GetByte(); else if ( c_oSer_ColorThemeType.Shade == type ) color.Shade = this.stream.GetByte(); else res = c_oSerConstants.ReadUnknown; return res; }; Binary_CommonReader.prototype.ReadBookmark = function(type, length, bookmark) { var res = c_oSerConstants.ReadOk; if (c_oSerBookmark.Id === type) { bookmark.BookmarkId = this.stream.GetULongLE(); } else if (c_oSerBookmark.Name === type) { bookmark.BookmarkName = this.stream.GetString2LE(length); } else { res = c_oSerConstants.ReadUnknown; } return res; }; /** @constructor */ function FT_Stream2(data, size) { this.obj = null; this.data = data; this.size = size; this.pos = 0; this.cur = 0; this.bLast = false; } FT_Stream2.prototype.Seek = function(_pos) { if (_pos > this.size) return c_oSerConstants.ErrorStream; this.pos = _pos; return c_oSerConstants.ReadOk; }; FT_Stream2.prototype.Seek2 = function(_cur) { if (_cur > this.size) return c_oSerConstants.ErrorStream; this.cur = _cur; return c_oSerConstants.ReadOk; }; FT_Stream2.prototype.Skip = function(_skip) { if (_skip < 0) return c_oSerConstants.ErrorStream; return this.Seek(this.pos + _skip); }; FT_Stream2.prototype.Skip2 = function(_skip) { if (_skip < 0) return c_oSerConstants.ErrorStream; return this.Seek2(this.cur + _skip); }; // 1 bytes FT_Stream2.prototype.GetUChar = function() { if (this.cur >= this.size) return 0; return this.data[this.cur++]; }; FT_Stream2.prototype.GetChar = function() { if (this.cur >= this.size) return 0; var m = this.data[this.cur++]; if (m > 127) m -= 256; return m; }; FT_Stream2.prototype.GetByte = function() { return this.GetUChar(); }; FT_Stream2.prototype.GetBool = function() { var Value = this.GetUChar(); return ( Value == 0 ? false : true ); }; // 2 byte FT_Stream2.prototype.GetUShortLE = function() { if (this.cur + 1 >= this.size) return 0; return (this.data[this.cur++] | this.data[this.cur++] << 8); }; // 4 byte FT_Stream2.prototype.GetULongLE = function() { if (this.cur + 3 >= this.size) return 0; return (this.data[this.cur++] | this.data[this.cur++] << 8 | this.data[this.cur++] << 16 | this.data[this.cur++] << 24); }; FT_Stream2.prototype.GetLongLE = function() { return this.GetULongLE(); }; FT_Stream2.prototype.GetLong = function() { return this.GetULongLE(); }; var tempHelp = new ArrayBuffer(8); var tempHelpUnit = new Uint8Array(tempHelp); var tempHelpFloat = new Float64Array(tempHelp); FT_Stream2.prototype.GetDoubleLE = function() { if (this.cur + 7 >= this.size) return 0; tempHelpUnit[0] = this.GetUChar(); tempHelpUnit[1] = this.GetUChar(); tempHelpUnit[2] = this.GetUChar(); tempHelpUnit[3] = this.GetUChar(); tempHelpUnit[4] = this.GetUChar(); tempHelpUnit[5] = this.GetUChar(); tempHelpUnit[6] = this.GetUChar(); tempHelpUnit[7] = this.GetUChar(); return tempHelpFloat[0]; var arr = []; for(var i = 0; i < 8; ++i) arr.push(this.GetUChar()); return this.doubleDecodeLE754(arr); }; FT_Stream2.prototype.doubleDecodeLE754 = function(a) { var s, e, m, i, d, nBits, mLen, eLen, eBias, eMax; var el = {len:8, mLen:52, rt:0}; mLen = el.mLen, eLen = el.len*8-el.mLen-1, eMax = (1<>1; i = (el.len-1); d = -1; s = a[i]; i+=d; nBits = -7; for (e = s&((1<<(-nBits))-1), s>>=(-nBits), nBits += eLen; nBits > 0; e=e*256+a[i], i+=d, nBits-=8); for (m = e&((1<<(-nBits))-1), e>>=(-nBits), nBits += mLen; nBits > 0; m=m*256+a[i], i+=d, nBits-=8); switch (e) { case 0: // Zero, or denormalized number e = 1-eBias; break; case eMax: // NaN, or +/-Infinity return m?NaN:((s?-1:1)*Infinity); default: // Normalized number m = m + Math.pow(2, mLen); e = e - eBias; break; } return (s?-1:1) * m * Math.pow(2, e-mLen); }; // 3 byte FT_Stream2.prototype.GetUOffsetLE = function() { if (this.cur + 2 >= this.size) return c_oSerConstants.ReadOk; return (this.data[this.cur++] | this.data[this.cur++] << 8 | this.data[this.cur++] << 16); }; FT_Stream2.prototype.GetString2 = function() { var Len = this.GetLong(); return this.GetString2LE(Len); }; //String FT_Stream2.prototype.GetString2LE = function(len) { if (this.cur + len > this.size) return ""; var a = []; for (var i = 0; i + 1 < len; i+=2) a.push(String.fromCharCode(this.data[this.cur + i] | this.data[this.cur + i + 1] << 8)); this.cur += len; return a.join(""); }; FT_Stream2.prototype.GetString = function() { var Len = this.GetLong(); if (this.cur + 2 * Len > this.size) return ""; var t = ""; for (var i = 0; i + 1 < 2 * Len; i+=2) { var uni = this.data[this.cur + i]; uni |= this.data[this.cur + i + 1] << 8; t += String.fromCharCode(uni); } this.cur += 2 * Len; return t; }; FT_Stream2.prototype.GetCurPos = function() { return this.cur; }; FT_Stream2.prototype.GetSize = function() { return this.size; }; FT_Stream2.prototype.EnterFrame = function(count) { if (this.size - this.pos < count) return c_oSerConstants.ErrorStream; this.cur = this.pos; this.pos += count; return c_oSerConstants.ReadOk; }; FT_Stream2.prototype.GetDouble = function() { var dRes = 0.0; dRes |= this.GetUChar(); dRes |= this.GetUChar() << 8; dRes |= this.GetUChar() << 16; dRes |= this.GetUChar() << 24; dRes /= 100000; return dRes; }; FT_Stream2.prototype.GetBuffer = function(length) { var res = new Array(length); for(var i = 0 ; i < length ;++i){ res[i] = this.data[this.cur++] } return res; }; var gc_nMaxRow = 1048576; var gc_nMaxCol = 16384; var gc_nMaxRow0 = gc_nMaxRow - 1; var gc_nMaxCol0 = gc_nMaxCol - 1; /** * @constructor */ function CellAddressUtils(){ this._oCodeA = 'A'.charCodeAt(0); this._aColnumToColstr = []; this.oCellAddressCache = {}; this.colnumToColstrFromWsView = function (col) { var sResult = this._aColnumToColstr[col]; if (null != sResult) return sResult; if(col == 0) return ""; var col0 = col - 1; var text = String.fromCharCode(65 + (col0 % 26)); return (this._aColnumToColstr[col] = (col0 < 26 ? text : this.colnumToColstrFromWsView(Math.floor(col0 / 26)) + text)); }; this.colnumToColstr = function(num){ var sResult = this._aColnumToColstr[num]; if(!sResult){ // convert 1 to A, 2 to B, ..., 27 to AA etc. sResult = ""; if(num > 0){ var columnNumber = num; var currentLetterNumber; while(columnNumber > 0){ currentLetterNumber = (columnNumber - 1) % 26; sResult = String.fromCharCode(currentLetterNumber + 65) + sResult; columnNumber = (columnNumber - (currentLetterNumber + 1)) / 26; } } this._aColnumToColstr[num] = sResult; } return sResult; }; this.colstrToColnum = function(col_str) { //convert A to 1; AA to 27 var col_num = 0; for (var i = 0; i < col_str.length; ++i) col_num = 26 * col_num + (col_str.charCodeAt(i) - this._oCodeA + 1); return col_num; }; this.getCellId = function(row, col){ return g_oCellAddressUtils.colnumToColstr(col + 1) + (row + 1); }; this.getCellAddress = function(sId) { var oRes = this.oCellAddressCache[sId]; if(null == oRes) { oRes = new CellAddress(sId); this.oCellAddressCache[sId] = oRes; } return oRes; }; } var g_oCellAddressUtils = new CellAddressUtils(); function CellBase(r, c) { this.row = r; this.col = c; } CellBase.prototype.clean = function() { this.row = 0; this.col = 0; }; CellBase.prototype.clone = function() { return new CellBase(this.row, this.col); }; CellBase.prototype.isEqual = function(cell) { return this.row === cell.row && this.col === cell.col; }; CellBase.prototype.isEmpty = function() { return 0 === this.row && 0 === this.col; }; CellBase.prototype.getName = function() { return g_oCellAddressUtils.colnumToColstr(this.col + 1) + (this.row + 1); }; /** * @constructor */ function CellAddress(){ var argc = arguments.length; this._valid = true; this._invalidId = false; this._invalidCoord = false; this.id = null; this.row = null; this.col = null; this.bRowAbs = false; this.bColAbs = false; this.bIsCol = false; this.bIsRow = false; this.colLetter = null; if(1 == argc){ //Сразу пришло ID вида "A1" this.id = arguments[0].toUpperCase(); this._invalidCoord = true; this._checkId(); } else if(2 == argc){ //адрес вида (1,1) = "A1". Внутренний формат начинается с 1 this.row = arguments[0]; this.col = arguments[1]; this._checkCoord(); this._invalidId = true; } else if(3 == argc){ //тоже самое что и 2 аргумента, только 0-based this.row = arguments[0] + 1; this.col = arguments[1] + 1; this._checkCoord(); this._invalidId = true; } } CellAddress.prototype = Object.create(CellBase.prototype); CellAddress.prototype.constructor = CellAddress; CellAddress.prototype._isDigit=function(symbol){ return '0' <= symbol && symbol <= '9'; }; CellAddress.prototype._isAlpha=function(symbol){ return 'A' <= symbol && symbol <= 'Z'; }; CellAddress.prototype._checkId=function(){ this._invalidCoord = true; this._recalculate(true, false); this._checkCoord(); }; CellAddress.prototype._checkCoord=function(){ if( !(this.row >= 1 && this.row <= gc_nMaxRow) ) this._valid = false; else if( !(this.col >= 1 && this.col <= gc_nMaxCol) ) this._valid = false; else this._valid = true; }; CellAddress.prototype._recalculate=function(bCoord, bId){ if(bCoord && this._invalidCoord){ this._invalidCoord = false; var sId = this.id; this.row = this.col = 0;//выставляем невалидные значения, чтобы не присваивать их при каждом else var indexes = {}, i = -1, indexesCount = 0; while ((i = sId.indexOf("$", i + 1)) != -1) { indexes[i - indexesCount++] = 1;//отнимаем количество, чтобы индексы указывали на следующий после них символ после удаления $ } if (indexesCount <= 2) { if (indexesCount > 0) sId = sId.replace(/\$/g, ""); var nIdLength = sId.length; if (nIdLength > 0) { var nIndex = 0; while (this._isAlpha(sId.charAt(nIndex)) && nIndex < nIdLength) nIndex++; if (0 == nIndex) { // (1,Infinity) this.bIsRow = true; this.col = 1; this.colLetter = g_oCellAddressUtils.colnumToColstr(this.col); this.row = sId.substring(nIndex) - 0; //this.id = this.colLetter + this.row; if (null != indexes[0]) { this.bRowAbs = true; indexesCount--; } } else if (nIndex == nIdLength) { // (Infinity,1) this.bIsCol = true; this.colLetter = sId; this.col = g_oCellAddressUtils.colstrToColnum(this.colLetter); this.row = 1; //this.id = this.colLetter + this.row; if (null != indexes[0]) { this.bColAbs = true; indexesCount--; } } else { this.colLetter = sId.substring(0, nIndex); this.col = g_oCellAddressUtils.colstrToColnum(this.colLetter); this.row = sId.substring(nIndex) - 0; if (null != indexes[0]) { this.bColAbs = true; indexesCount--; } if (null != indexes[nIndex]) { this.bRowAbs = true; indexesCount--; } } if (indexesCount > 0) { this.row = this.col = 0; } } } } else if(bId && this._invalidId){ this._invalidId = false; this.colLetter = g_oCellAddressUtils.colnumToColstr(this.col); if(this.bIsCol) this.id = this.colLetter; else if(this.bIsRow) this.id = this.row; else this.id = this.colLetter + this.row; } }; CellAddress.prototype.isValid=function(){ return this._valid; }; CellAddress.prototype.getID=function(){ this._recalculate(false, true); return this.id; }; CellAddress.prototype.getIDAbsolute=function(){ this._recalculate(true, false); return "$" + this.getColLetter() + "$" + this.getRow(); }; CellAddress.prototype.getRow=function(){ this._recalculate(true, false); return this.row; }; CellAddress.prototype.getRow0=function(){ //0 - based this._recalculate(true, false); return this.row - 1; }; CellAddress.prototype.getRowAbs=function(){ this._recalculate(true, false); return this.bRowAbs; }; CellAddress.prototype.getIsRow=function(){ this._recalculate(true, false); return this.bIsRow; }; CellAddress.prototype.getCol=function(){ this._recalculate(true, false); return this.col; }; CellAddress.prototype.getCol0=function(){ //0 - based this._recalculate(true, false); return this.col - 1; }; CellAddress.prototype.getColAbs=function(){ this._recalculate(true, false); return this.bColAbs; }; CellAddress.prototype.getIsCol=function(){ this._recalculate(true, false); return this.bIsCol; }; CellAddress.prototype.getColLetter=function(){ this._recalculate(false, true); return this.colLetter; }; CellAddress.prototype.setRow=function(val){ if( !(this.row >= 0 && this.row <= gc_nMaxRow) ) this._valid = false; this._invalidId = true; this.row = val; }; CellAddress.prototype.setCol=function(val){ if( !(val >= 0 && val <= gc_nMaxCol) ) return; this._invalidId = true; this.col = val; }; CellAddress.prototype.setId=function(val){ this._invalidCoord = true; this.id = val; this._checkId(); }; CellAddress.prototype.moveRow=function(diff){ var val = this.row + diff; if( !(val >= 0 && val <= gc_nMaxRow) ) return; this._invalidId = true; this.row = val; }; CellAddress.prototype.moveCol=function(diff){ var val = this.col + diff; if( !( val >= 0 && val <= gc_nMaxCol) ) return; this._invalidId = true; this.col = val; }; function isRealObject(obj) { return obj !== null && typeof obj === "object"; } function FileStream(data, size) { this.obj = null; this.data = data; this.size = size; this.pos = 0; this.cur = 0; this.Seek = function(_pos) { if (_pos > this.size) return 1; this.pos = _pos; return 0; } this.Seek2 = function(_cur) { if (_cur > this.size) return 1; this.cur = _cur; return 0; } this.Skip = function(_skip) { if (_skip < 0) return 1; return this.Seek(this.pos + _skip); } this.Skip2 = function(_skip) { if (_skip < 0) return 1; return this.Seek2(this.cur + _skip); } // 1 bytes this.GetUChar = function() { if (this.cur >= this.size) return 0; return this.data[this.cur++]; } this.GetBool = function() { if (this.cur >= this.size) return 0; return (this.data[this.cur++] == 1) ? true : false; } // 2 byte this.GetUShort = function() { if (this.cur + 1 >= this.size) return 0; return (this.data[this.cur++] | this.data[this.cur++] << 8); } // 4 byte this.GetULong = function() { if (this.cur + 3 >= this.size) return 0; var r = (this.data[this.cur++] | this.data[this.cur++] << 8 | this.data[this.cur++] << 16 | this.data[this.cur++] << 24); if (r < 0) r += (0xFFFFFFFF + 1); return r; } this.GetLong = function() { if (this.cur + 3 >= this.size) return 0; return (this.data[this.cur++] | this.data[this.cur++] << 8 | this.data[this.cur++] << 16 | this.data[this.cur++] << 24); } //String this.GetString = function(len) { len *= 2; if (this.cur + len > this.size) return ""; var t = ""; for (var i = 0; i < len; i+=2) { var _c = this.data[this.cur + i + 1] << 8 | this.data[this.cur + i]; if (_c == 0) break; t += String.fromCharCode(_c); } this.cur += len; return t; } this.GetString1 = function(len) { if (this.cur + len > this.size) return ""; var t = ""; for (var i = 0; i < len; i++) { var _c = this.data[this.cur + i]; if (_c == 0) break; t += String.fromCharCode(_c); } this.cur += len; return t; } this.GetString2 = function() { var len = this.GetULong(); return this.GetString(len); } this.GetString2A = function() { var len = this.GetULong(); return this.GetString1(len); } this.EnterFrame = function(count) { if (this.pos >= this.size || this.size - this.pos < count) return 1; this.cur = this.pos; this.pos += count; return 0; } this.SkipRecord = function() { var _len = this.GetULong(); this.Skip2(_len); } this.GetPercentage = function() { var s = this.GetString2(); var _len = s.length; if (_len == 0) return null; var _ret = null; if ((_len - 1) == s.indexOf("%")) { s.substring(0, _len - 1); _ret = parseFloat(s); if (isNaN(_ret)) _ret = null; } else { _ret = parseFloat(s); if (isNaN(_ret)) _ret = null; else _ret /= 1000; } return _ret; } } function GetUTF16_fromUnicodeChar(code) { if (code < 0x10000) { return String.fromCharCode(code); } else { code -= 0x10000; return String.fromCharCode(0xD800 | ((code >> 10) & 0x03FF)) + String.fromCharCode(0xDC00 | (code & 0x03FF)); } }; function GetStringUtf8(reader, len) { if (reader.cur + len > reader.size) { return ""; } var _res = ""; var end = reader.cur + len; var val = 0; while (reader.cur < end) { var byteMain = reader.data[reader.cur]; if (0x00 == (byteMain & 0x80)) { // 1 byte _res += GetUTF16_fromUnicodeChar(byteMain); ++reader.cur; } else if (0x00 == (byteMain & 0x20)) { // 2 byte val = (((byteMain & 0x1F) << 6) | (reader.data[reader.cur + 1] & 0x3F)); _res += GetUTF16_fromUnicodeChar(val); reader.cur += 2; } else if (0x00 == (byteMain & 0x10)) { // 3 byte val = (((byteMain & 0x0F) << 12) | ((reader.data[reader.cur + 1] & 0x3F) << 6) | (reader.data[reader.cur + 2] & 0x3F)); _res += GetUTF16_fromUnicodeChar(val); reader.cur += 3; } else if (0x00 == (byteMain & 0x08)) { // 4 byte val = (((byteMain & 0x07) << 18) | ((reader.data[reader.cur + 1] & 0x3F) << 12) | ((reader.data[reader.cur + 2] & 0x3F) << 6) | (reader.data[reader.cur + 3] & 0x3F)); _res += GetUTF16_fromUnicodeChar(val); reader.cur += 4; } else if (0x00 == (byteMain & 0x04)) { // 5 byte val = (((byteMain & 0x03) << 24) | ((reader.data[reader.cur + 1] & 0x3F) << 18) | ((reader.data[reader.cur + 2] & 0x3F) << 12) | ((reader.data[reader.cur + 3] & 0x3F) << 6) | (reader.data[reader.cur + 4] & 0x3F)); _res += GetUTF16_fromUnicodeChar(val); reader.cur += 5; } else { // 6 byte val = (((byteMain & 0x01) << 30) | ((reader.data[reader.cur + 1] & 0x3F) << 24) | ((reader.data[reader.cur + 2] & 0x3F) << 18) | ((reader.data[reader.cur + 3] & 0x3F) << 12) | ((reader.data[reader.cur + 4] & 0x3F) << 6) | (reader.data[reader.cur + 5] & 0x3F)); _res += GetUTF16_fromUnicodeChar(val); reader.cur += 6; } } return _res; }; //----------------------------------------------------------export---------------------------------------------------- window['AscCommon'] = window['AscCommon'] || {}; window['AscCommon'].c_oSerConstants = c_oSerConstants; window['AscCommon'].c_oSerPropLenType = c_oSerPropLenType; window['AscCommon'].c_oSer_ColorType = c_oSer_ColorType; window['AscCommon'].c_oSerBorderType = c_oSerBorderType; window['AscCommon'].c_oSerBordersType = c_oSerBordersType; window['AscCommon'].c_oSerPaddingType = c_oSerPaddingType; window['AscCommon'].g_tabtype_left = 0; window['AscCommon'].g_tabtype_right = 1; window['AscCommon'].g_tabtype_center = 2; window['AscCommon'].g_tabtype_clear = 3; window['AscCommon'].BinaryCommonWriter = BinaryCommonWriter; window['AscCommon'].Binary_CommonReader = Binary_CommonReader; window['AscCommon'].FT_Stream2 = FT_Stream2; window['AscCommon'].gc_nMaxRow = gc_nMaxRow; window['AscCommon'].gc_nMaxCol = gc_nMaxCol; window['AscCommon'].gc_nMaxRow0 = gc_nMaxRow0; window['AscCommon'].gc_nMaxCol0 = gc_nMaxCol0; window['AscCommon'].g_oCellAddressUtils = g_oCellAddressUtils; window['AscCommon'].CellBase = CellBase; window['AscCommon'].CellAddress = CellAddress; window['AscCommon'].isRealObject = isRealObject; window['AscCommon'].FileStream = FileStream; window['AscCommon'].GetStringUtf8 = GetStringUtf8; window['AscCommon'].g_nodeAttributeStart = 0xFA; window['AscCommon'].g_nodeAttributeEnd = 0xFB; })(window); /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; (/** * @param {Window} window * @param {undefined} undefined */ function (window, undefined) { // Import var AscBrowser = AscCommon.AscBrowser; var locktype_None = AscCommon.locktype_None; var locktype_Mine = AscCommon.locktype_Mine; var locktype_Other = AscCommon.locktype_Other; var locktype_Other2 = AscCommon.locktype_Other2; var locktype_Other3 = AscCommon.locktype_Other3; var contentchanges_Add = AscCommon.contentchanges_Add; var CColor = AscCommon.CColor; var g_oCellAddressUtils = AscCommon.g_oCellAddressUtils; var c_oAscFileType = Asc.c_oAscFileType; if (typeof String.prototype.startsWith !== 'function') { String.prototype.startsWith = function (str) { return this.indexOf(str) === 0; }; String.prototype['startsWith'] = String.prototype.startsWith; } if (typeof String.prototype.endsWith !== 'function') { String.prototype.endsWith = function (suffix) { return this.indexOf(suffix, this.length - suffix.length) !== -1; }; String.prototype['endsWith'] = String.prototype.endsWith; } if (typeof String.prototype.repeat !== 'function') { String.prototype.repeat = function (count) { 'use strict'; if (this == null) { throw new TypeError('can\'t convert ' + this + ' to object'); } var str = '' + this; count = +count; if (count != count) { count = 0; } if (count < 0) { throw new RangeError('repeat count must be non-negative'); } if (count == Infinity) { throw new RangeError('repeat count must be less than infinity'); } count = Math.floor(count); if (str.length == 0 || count == 0) { return ''; } // Обеспечение того, что count является 31-битным целым числом, позволяет нам значительно // соптимизировать главную часть функции. Впрочем, большинство современных (на август // 2014 года) браузеров не обрабатывают строки, длиннее 1 << 28 символов, так что: if (str.length * count >= 1 << 28) { throw new RangeError('repeat count must not overflow maximum string size'); } var rpt = ''; for (; ;) { if ((count & 1) == 1) { rpt += str; } count >>>= 1; if (count == 0) { break; } str += str; } return rpt; }; String.prototype['repeat'] = String.prototype.repeat; } // Extend javascript String type String.prototype.strongMatch = function (regExp) { if (regExp && regExp instanceof RegExp) { var arr = this.toString().match(regExp); return !!(arr && arr.length > 0 && arr[0].length == this.length); } return false; }; if (typeof require === 'function' && !window['XRegExp']) { window['XRegExp'] = require('xregexp'); } var oZipImages = null; var sDownloadServiceLocalUrl = "../../../../downloadas"; var sUploadServiceLocalUrl = "../../../../upload"; var sUploadServiceLocalUrlOld = "../../../../uploadold"; var sSaveFileLocalUrl = "../../../../savefile"; var nMaxRequestLength = 5242880;//5mb default 30mb function getSockJs() { return window['SockJS'] || require('sockjs'); } function getJSZipUtils() { return window['JSZipUtils'] || require('jsziputils'); } function getJSZip() { return window['JSZip'] || require('jszip'); } function JSZipWrapper() { this.files = {}; } JSZipWrapper.prototype.loadAsync = function(data, options) { var t = this; if (window["native"]) { return new Promise(function(resolve, reject) { var retFiles = null; if (options && options["base64"] === true) retFiles = window["native"]["ZipOpenBase64"](data); else retFiles = window["native"]["ZipOpen"](data); if (null != retFiles) { for (var id in retFiles) { t.files[id] = new JSZipObjectWrapper(retFiles[id]); } resolve(t); } else { reject(new Error("Failed archive")); } }); } return AscCommon.getJSZip().loadAsync(data, options).then(function(zip){ for (var id in zip.files) { t.files[id] = new JSZipObjectWrapper(zip.files[id]); } return t; }); }; JSZipWrapper.prototype.close = function() { if (window["native"]) window["native"]["ZipClose"](); }; function JSZipObjectWrapper(data) { this.data = data; } JSZipObjectWrapper.prototype.async = function(type) { if (window["native"]) { var t = this; return new Promise(function(resolve, reject) { var ret = window["native"]["ZipFileAsString"](t.data); if (null != ret) { resolve(ret); } else { reject(new Error("Failed file in archive")); } }); } return this.data.async(type); }; function getBaseUrl() { var indexHtml = window["location"]["href"]; var questInd = indexHtml.indexOf("?"); if (questInd > 0) { indexHtml = indexHtml.substring(0, questInd); } return indexHtml.substring(0, indexHtml.lastIndexOf("/") + 1); } function getEncodingParams() { var res = []; for (var i = 0; i < AscCommon.c_oAscEncodings.length; ++i) { var encoding = AscCommon.c_oAscEncodings[i]; var newElem = {'codepage': encoding[0], 'lcid': encoding[1], 'name': encoding[3]}; res.push(newElem); } return res; } function getEncodingByBOM(data) { var res = {encoding: AscCommon.c_oAscCodePageNone, size: 0}; if (data.length >= 2) { res.size = 2; if (0xFF == data[0] && 0xFE == data[1]) { res.encoding = AscCommon.c_oAscCodePageUtf16; } else if (0xFE == data[0] && 0xFF == data[1]) { res.encoding = AscCommon.c_oAscCodePageUtf16BE; } else if (data.length >= 3) { res.size = 3; if (0xEF == data[0] && 0xBB == data[1] && 0xBF == data[2]) { res.encoding = AscCommon.c_oAscCodePageUtf8; } else if (data.length >= 4) { res.size = 4; if (0xFF == data[0] && 0xFE == data[1] && 0x00 == data[2] && 0x00 == data[3]) { res.encoding = AscCommon.c_oAscCodePageUtf32; } else if (0x00 == data[0] && 0x00 == data[1] && 0xFE == data[2] && 0xFF == data[3]) { res.encoding = AscCommon.c_oAscCodePageUtf32BE; } else if (0x2B == data[0] && 0x2F == data[1] && 0x76 == data[2] && 0x38 == data[3]) { res.encoding = AscCommon.c_oAscCodePageUtf7; } else if (0x2B == data[0] && 0x2F == data[1] && 0x76 == data[2] && 0x39 == data[3]) { res.encoding = AscCommon.c_oAscCodePageUtf7; } else if (0x2B == data[0] && 0x2F == data[1] && 0x76 == data[2] && 0x2B == data[3]) { res.encoding = AscCommon.c_oAscCodePageUtf7; } else if (0x2B == data[0] && 0x2F == data[1] && 0x76 == data[2] && 0x2F == data[3]) { res.encoding = AscCommon.c_oAscCodePageUtf7; } } } } return res; } function DocumentUrls() { this.urls = {}; this.urlsReverse = {}; this.documentUrl = ""; this.imageCount = 0; } DocumentUrls.prototype = { mediaPrefix: 'media/', init: function (urls) { this.addUrls(urls); }, getUrls: function () { return this.urls; }, addUrls: function (urls) { for (var i in urls) { var url = urls[i]; this.urls[i] = url; this.urlsReverse[url] = i; this.imageCount++; } if (window["IS_NATIVE_EDITOR"]) { window["native"]["setUrlsCount"](this.imageCount); } }, addImageUrl: function (strPath, url) { var urls = {}; urls[this.mediaPrefix + strPath] = url; this.addUrls(urls); }, getImageUrl: function (strPath) { return this.getUrl(this.mediaPrefix + strPath); }, getImageLocal: function (url) { if(url && 0 === url.indexOf('data:image')) { return null; } var imageLocal = this.getLocal(url); if (imageLocal && this.mediaPrefix == imageLocal.substring(0, this.mediaPrefix.length)) imageLocal = imageLocal.substring(this.mediaPrefix.length); return imageLocal; }, imagePath2Local: function (imageLocal) { if (imageLocal && this.mediaPrefix == imageLocal.substring(0, this.mediaPrefix.length)) imageLocal = imageLocal.substring(this.mediaPrefix.length); return imageLocal; }, getUrl: function (strPath) { if (this.urls) { return this.urls[strPath]; } return null; }, getLocal: function (url) { if (this.urlsReverse) { var res = this.urlsReverse[url]; if (!res && typeof editor !== 'undefined' && editor.ThemeLoader && 0 == url.indexOf(editor.ThemeLoader.ThemesUrlAbs)) { res = url.substring(editor.ThemeLoader.ThemesUrlAbs.length); } return res; } return null; }, getMaxIndex: function (url) { return this.imageCount; }, getImageUrlsWithOtherExtention: function(imageLocal) { var res = []; var filename = GetFileName(imageLocal); for (var i in this.urls) { if (0 == i.indexOf(this.mediaPrefix + filename + '.') && this.mediaPrefix + imageLocal !== i) { res.push(this.urls[i]); } } return res; } }; var g_oDocumentUrls = new DocumentUrls(); function CHTMLCursor() { this.map = {}; this.mapRetina = {}; this.value = function(param) { var _map = this.map; if ((window["AscDesktopEditor"] && !AscCommon.AscBrowser.isMacOs) && AscCommon.AscBrowser.isRetina) _map = this.mapRetina; return _map[param] ? _map[param] : param; }; this.register = function(type, url_ie, url_main, default_css_value) { if (AscBrowser.isIE) { var isTestRetinaNeed = (url_ie.lastIndexOf(".cur") == (url_ie.length - 4)) ? false : true; if (isTestRetinaNeed) this.map[type] = ("url(../../../../sdkjs/common/Images/" + url_ie + (AscBrowser.isRetina ? "_2x" : "") + ".cur), " + default_css_value); else this.map[type] = ("url(../../../../sdkjs/common/Images/" + url_ie + "), " + default_css_value); } else if (window.opera) { this.map[type] = default_css_value; } else { this.map[type] = ("url('../../../../sdkjs/common/Images/" + url_main[0] + ".png') " + url_main[1] + " " + url_main[2] + ", " + default_css_value); this.mapRetina[type] = ("url('../../../../sdkjs/common/Images/" + url_main[0] + "_2x.png') " + (url_main[1] << 1) + " " + (url_main[2] << 1) + ", " + default_css_value); } }; } function OpenFileResult() { this.bSerFormat = false; this.data = null; this.url = null; this.changes = null; } function saveWithParts(fSendCommand, fCallback, fCallbackRequest, oAdditionalData, dataContainer) { var index = dataContainer.index; if (null == dataContainer.part && (!dataContainer.data || dataContainer.data.length <= nMaxRequestLength)) { oAdditionalData["savetype"] = AscCommon.c_oAscSaveTypes.CompleteAll; } else { if (0 == index) { oAdditionalData["savetype"] = AscCommon.c_oAscSaveTypes.PartStart; dataContainer.count = Math.ceil(dataContainer.data.length / nMaxRequestLength); } else if (index != dataContainer.count - 1) { oAdditionalData["savetype"] = AscCommon.c_oAscSaveTypes.Part; } else { oAdditionalData["savetype"] = AscCommon.c_oAscSaveTypes.Complete; } if(typeof dataContainer.data === 'string') { dataContainer.part = dataContainer.data.substring(index * nMaxRequestLength, (index + 1) * nMaxRequestLength); } else { dataContainer.part = dataContainer.data.subarray(index * nMaxRequestLength, (index + 1) * nMaxRequestLength); } } dataContainer.index++; oAdditionalData["saveindex"] = dataContainer.index; fSendCommand(function (incomeObject) { if (null != incomeObject && "ok" == incomeObject["status"]) { if (dataContainer.index < dataContainer.count) { oAdditionalData["savekey"] = incomeObject["data"]; saveWithParts(fSendCommand, fCallback, fCallbackRequest, oAdditionalData, dataContainer); } else if (fCallbackRequest) { fCallbackRequest(incomeObject); } } else { fCallbackRequest ? fCallbackRequest(incomeObject) : fCallback(incomeObject); } }, oAdditionalData, dataContainer); } function loadFileContent(url, callback, opt_responseType) { asc_ajax({ url: url, dataType: "text", responseType: opt_responseType, success: callback, error: function () { callback(null); } }); } function getImageFromChanges(name) { var content; var ext = GetFileExtension(name); if (null !== ext && oZipImages && (content = oZipImages[name])) { return 'data:image/' + ext + ';base64,' + AscCommon.Base64Encode(content, content.length, 0); } return null; } function initStreamFromResponse(httpRequest) { var stream; if (typeof ArrayBuffer !== 'undefined') { stream = new Uint8Array(httpRequest.response); } else if (AscCommon.AscBrowser.isIE) { var _response = new VBArray(httpRequest["responseBody"]).toArray(); var srcLen = _response.length; var pointer = g_memory.Alloc(srcLen); var tempStream = new AscCommon.FT_Stream2(pointer.data, srcLen); tempStream.obj = pointer.obj; stream = tempStream.data; var index = 0; while (index < srcLen) { stream[index] = _response[index]; index++; } } return stream; } function checkStreamSignature(stream, Signature) { if (stream.length > Signature.length) { for(var i = 0 ; i < Signature.length; ++i){ if(stream[i] !== Signature.charCodeAt(i)){ return false; } } return true; } return false; } function openFileCommand(binUrl, changesUrl, Signature, callback) { var bError = false, oResult = new OpenFileResult(), bEndLoadFile = false, bEndLoadChanges = false; var onEndOpen = function () { if (bEndLoadFile && bEndLoadChanges) { if (callback) { callback(bError, oResult); } } }; var sFileUrl = binUrl; sFileUrl = sFileUrl.replace(/\\/g, "/"); if (!window['IS_NATIVE_EDITOR']) { loadFileContent(sFileUrl, function (httpRequest) { //получаем url к папке с файлом var url; var nIndex = sFileUrl.lastIndexOf("/"); url = (-1 !== nIndex) ? sFileUrl.substring(0, nIndex + 1) : sFileUrl; if (httpRequest) { var stream = initStreamFromResponse(httpRequest); if (stream) { oResult.bSerFormat = checkStreamSignature(stream, Signature); oResult.data = stream; } else { bError = true; } } else { bError = true; } bEndLoadFile = true; onEndOpen(); }, "arraybuffer"); } if (changesUrl) { oZipImages = {}; getJSZipUtils().getBinaryContent(changesUrl, function (err, data) { if (err) { bEndLoadChanges = true; bError = true; onEndOpen(); return; } oResult.changes = []; getJSZip().loadAsync(data).then(function (zipChanges) { var relativePaths = []; var promises = []; zipChanges.forEach(function (relativePath, file) { relativePaths.push(relativePath); promises.push(file.async(relativePath.endsWith('.json') ? 'string' : 'uint8array')); }); Promise.all(promises).then(function (values) { var relativePath; for (var i = 0; i < values.length; ++i) { if ((relativePath = relativePaths[i]).endsWith('.json')) { oResult.changes[parseInt(relativePath.slice('changes'.length))] = JSON.parse(values[i]); } else { oZipImages[relativePath] = values[i]; } } bEndLoadChanges = true; onEndOpen(); }); }); }); } else { oZipImages = null; bEndLoadChanges = true; } if (window['IS_NATIVE_EDITOR']) { var stream = window["native"]["openFileCommand"](sFileUrl, changesUrl, Signature); //получаем url к папке с файлом var url; var nIndex = sFileUrl.lastIndexOf("/"); url = (-1 !== nIndex) ? sFileUrl.substring(0, nIndex + 1) : sFileUrl; if (stream) { oResult.bSerFormat = checkStreamSignature(stream, Signature); oResult.data = stream; } else { bError = true; } bEndLoadFile = true; onEndOpen(); } } function sendCommand(editor, fCallback, rdata, dataContainer) { //json не должен превышать размера 2097152, иначе при его чтении будет exception var docConnectionId = editor.CoAuthoringApi.getDocId(); if (docConnectionId && docConnectionId !== rdata["id"]) { //на случай если поменялся documentId в Version History rdata['docconnectionid'] = docConnectionId; } if (null == rdata["savetype"]) { editor.CoAuthoringApi.openDocument(rdata); return; } rdata["userconnectionid"] = editor.CoAuthoringApi.getUserConnectionId(); asc_ajax({ type: 'POST', url: sDownloadServiceLocalUrl + '/' + rdata["id"] + '?cmd=' + encodeURIComponent(JSON.stringify(rdata)), data: dataContainer.part || dataContainer.data, contentType: "application/octet-stream", error: function () { if (fCallback) { fCallback(null, true); } }, success: function (httpRequest) { if (fCallback) { fCallback(JSON.parse(httpRequest.responseText), true); } } }); } function sendSaveFile(docId, userId, title, jwt, data, fError, fsuccess) { var cmd = {'id': docId, "userid": userId, "jwt": jwt, 'outputpath': title}; asc_ajax({ type: 'POST', url: sSaveFileLocalUrl + '/' + docId + '?cmd=' + encodeURIComponent(JSON.stringify(cmd)), data: data, contentType: "application/octet-stream", error: fError, success: fsuccess }); } function mapAscServerErrorToAscError(nServerError, nAction) { var nRes = Asc.c_oAscError.ID.Unknown; switch (nServerError) { case c_oAscServerError.NoError : nRes = Asc.c_oAscError.ID.No; break; case c_oAscServerError.TaskQueue : case c_oAscServerError.TaskResult : nRes = Asc.c_oAscError.ID.Database; break; case c_oAscServerError.ConvertDownload : nRes = Asc.c_oAscError.ID.DownloadError; break; case c_oAscServerError.ConvertTimeout : case c_oAscServerError.ConvertDeadLetter : nRes = Asc.c_oAscError.ID.ConvertationTimeout; break; case c_oAscServerError.ConvertDRM : case c_oAscServerError.ConvertPASSWORD : nRes = Asc.c_oAscError.ID.ConvertationPassword; break; case c_oAscServerError.ConvertLIMITS : case c_oAscServerError.ConvertCONVERT_CORRUPTED : case c_oAscServerError.ConvertLIBREOFFICE : case c_oAscServerError.ConvertPARAMS : case c_oAscServerError.ConvertNEED_PARAMS : case c_oAscServerError.ConvertUnknownFormat : case c_oAscServerError.ConvertReadFile : case c_oAscServerError.Convert : nRes = AscCommon.c_oAscAdvancedOptionsAction.Save === nAction ? Asc.c_oAscError.ID.ConvertationSaveError : Asc.c_oAscError.ID.ConvertationOpenError; break; case c_oAscServerError.UploadContentLength : nRes = Asc.c_oAscError.ID.UplImageSize; break; case c_oAscServerError.UploadExtension : nRes = Asc.c_oAscError.ID.UplImageExt; break; case c_oAscServerError.UploadCountFiles : nRes = Asc.c_oAscError.ID.UplImageFileCount; break; case c_oAscServerError.UploadURL : nRes = Asc.c_oAscError.ID.UplImageUrl; break; case c_oAscServerError.VKey : nRes = Asc.c_oAscError.ID.FileVKey; break; case c_oAscServerError.VKeyEncrypt : nRes = Asc.c_oAscError.ID.VKeyEncrypt; break; case c_oAscServerError.VKeyKeyExpire : nRes = Asc.c_oAscError.ID.KeyExpire; break; case c_oAscServerError.VKeyUserCountExceed : nRes = Asc.c_oAscError.ID.UserCountExceed; break; case c_oAscServerError.Storage : case c_oAscServerError.StorageFileNoFound : case c_oAscServerError.StorageRead : case c_oAscServerError.StorageWrite : case c_oAscServerError.StorageRemoveDir : case c_oAscServerError.StorageCreateDir : case c_oAscServerError.StorageGetInfo : case c_oAscServerError.Upload : case c_oAscServerError.ReadRequestStream : case c_oAscServerError.Unknown : nRes = Asc.c_oAscError.ID.Unknown; break; } return nRes; } function joinUrls(base, relative) { //http://stackoverflow.com/questions/14780350/convert-relative-path-to-absolute-using-javascript var stack = base.split("/"), parts = relative.split("/"); stack.pop(); // remove current file name (or empty string) // (omit if "base" is the current folder without trailing slash) for (var i = 0; i < parts.length; i++) { if (parts[i] == ".") continue; if (parts[i] == "..") stack.pop(); else stack.push(parts[i]); } return stack.join("/"); } function getFullImageSrc2(src) { if (window["NATIVE_EDITOR_ENJINE"]) return src; var start = src.slice(0, 6); if (0 === start.indexOf('theme') && editor.ThemeLoader) { return editor.ThemeLoader.ThemesUrlAbs + src; } if (0 !== start.indexOf('http:') && 0 !== start.indexOf('data:') && 0 !== start.indexOf('https:') && 0 !== start.indexOf('file:') && 0 !== start.indexOf('ftp:')) { var srcFull = g_oDocumentUrls.getImageUrl(src); if (srcFull) { return srcFull; } } return src; } function fSortAscending(a, b) { return a - b; } function fSortDescending(a, b) { return b - a; } function isLeadingSurrogateChar(nCharCode) { return (nCharCode >= 0xD800 && nCharCode <= 0xDFFF); } function decodeSurrogateChar(nLeadingChar, nTrailingChar) { if (nLeadingChar < 0xDC00 && nTrailingChar >= 0xDC00 && nTrailingChar <= 0xDFFF) return 0x10000 + ((nLeadingChar & 0x3FF) << 10) | (nTrailingChar & 0x3FF); else return null; } function encodeSurrogateChar(nUnicode) { if (nUnicode < 0x10000) { return String.fromCharCode(nUnicode); } else { nUnicode = nUnicode - 0x10000; var nLeadingChar = 0xD800 | (nUnicode >> 10); var nTrailingChar = 0xDC00 | (nUnicode & 0x3FF); return String.fromCharCode(nLeadingChar) + String.fromCharCode(nTrailingChar); } } function convertUnicodeToUTF16(sUnicode) { var sUTF16 = ""; var nLength = sUnicode.length; for (var nPos = 0; nPos < nLength; nPos++) { sUTF16 += encodeSurrogateChar(sUnicode[nPos]); } return sUTF16; } function convertUTF16toUnicode(sUTF16) { var sUnicode = []; var nLength = sUTF16.length; for (var nPos = 0; nPos < nLength; nPos++) { var nUnicode = null; var nCharCode = sUTF16.charCodeAt(nPos); if (isLeadingSurrogateChar(nCharCode)) { if (nPos + 1 < nLength) { nPos++; var nTrailingChar = sUTF16.charCodeAt(nPos); nUnicode = decodeSurrogateChar(nCharCode, nTrailingChar); } } else nUnicode = nCharCode; if (null !== nUnicode) sUnicode.push(nUnicode); } return sUnicode; } function CUnicodeIterator(str) { this._position = 0; this._index = 0; this._str = str; } CUnicodeIterator.prototype = { isOutside : function() { return (this._index >= this._str.length); }, isInside : function() { return (this._index < this._str.length); }, value : function() { if (this._index >= this._str.length) return 0; var nCharCode = this._str.charCodeAt(this._index); if (!AscCommon.isLeadingSurrogateChar(nCharCode)) return nCharCode; if ((this._str.length - 1) == this._index) return nCharCode; // error var nTrailingChar = this._str.charCodeAt(this._index + 1); return AscCommon.decodeSurrogateChar(nCharCode, nTrailingChar); }, next : function() { if (this._index >= this._str.length) return; this._position++; if (!AscCommon.isLeadingSurrogateChar(this._str.charCodeAt(this._index))) { ++this._index; return; } if (this._index == (this._str.length - 1)) { ++this._index; return; } this._index += 2; }, position : function() { return this._position; } }; CUnicodeIterator.prototype.check = CUnicodeIterator.prototype.isInside; /** * @returns {CUnicodeIterator} */ String.prototype.getUnicodeIterator = function() { return new CUnicodeIterator(this); }; function test_ws_name2() { var str_namedRanges = "[A-Z\u005F\u0080-\u0081\u0083\u0085-\u0087\u0089-\u008A\u008C-\u0091\u0093-\u0094\u0096-\u0097\u0099-\u009A\u009C-\u009F\u00A1-\u00A5\u00A7-\u00A8\u00AA\u00AD\u00AF-\u00BA\u00BC-\u02B8\u02BB-\u02C1\u02C7\u02C9-\u02CB\u02CD\u02D0-\u02D1\u02D8-\u02DB\u02DD\u02E0-\u02E4\u02EE\u0370-\u0373\u0376-\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0523\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0621-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06E5-\u06E6\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4-\u07F5\u07FA\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0972\u097B-\u097F\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58-\u0C59\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D3D\u0D60-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E3A\u0E40-\u0E4E\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDD\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8B\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10D0-\u10FA\u10FC\u1100-\u1159\u115F-\u11A2\u11A8-\u11F9\u1200-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u1676\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19A9\u19C1-\u19C7\u1A00-\u1A16\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2010\u2013-\u2016\u2018\u201C-\u201D\u2020-\u2021\u2025-\u2027\u2030\u2032-\u2033\u2035\u203B\u2071\u2074\u207F\u2081-\u2084\u2090-\u2094\u2102-\u2103\u2105\u2107\u2109-\u2113\u2115-\u2116\u2119-\u211D\u2121-\u2122\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2153-\u2154\u215B-\u215E\u2160-\u2188\u2190-\u2199\u21D2\u21D4\u2200\u2202-\u2203\u2207-\u2208\u220B\u220F\u2211\u2215\u221A\u221D-\u2220\u2223\u2225\u2227-\u222C\u222E\u2234-\u2237\u223C-\u223D\u2248\u224C\u2252\u2260-\u2261\u2264-\u2267\u226A-\u226B\u226E-\u226F\u2282-\u2283\u2286-\u2287\u2295\u2299\u22A5\u22BF\u2312\u2460-\u24B5\u24D0-\u24E9\u2500-\u254B\u2550-\u2574\u2581-\u258F\u2592-\u2595\u25A0-\u25A1\u25A3-\u25A9\u25B2-\u25B3\u25B6-\u25B7\u25BC-\u25BD\u25C0-\u25C1\u25C6-\u25C8\u25CB\u25CE-\u25D1\u25E2-\u25E5\u25EF\u2605-\u2606\u2609\u260E-\u260F\u261C\u261E\u2640\u2642\u2660-\u2661\u2663-\u2665\u2667-\u266A\u266C-\u266D\u266F\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2C6F\u2C71-\u2C7D\u2C80-\u2CE4\u2D00-\u2D25\u2D30-\u2D65\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3000-\u3003\u3005-\u3017\u301D-\u301F\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31B7\u31F0-\u321C\u3220-\u3229\u3231-\u3232\u3239\u3260-\u327B\u327F\u32A3-\u32A8\u3303\u330D\u3314\u3318\u3322-\u3323\u3326-\u3327\u332B\u3336\u333B\u3349-\u334A\u334D\u3351\u3357\u337B-\u337E\u3380-\u3384\u3388-\u33CA\u33CD-\u33D3\u33D5-\u33D6\u33D8\u33DB-\u33DD\u3400-\u4DB5\u4E00-\u9FC3\uA000-\uA48C\uA500-\uA60C\uA610-\uA61F\uA62A-\uA62B\uA640-\uA65F\uA662-\uA66E\uA680-\uA697\uA722-\uA787\uA78B-\uA78C\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA90A-\uA925\uA930-\uA946\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAC00-\uD7A3\uE000-\uF848\uF900-\uFA2D\uFA30-\uFA6A\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE30-\uFE31\uFE33-\uFE44\uFE49-\uFE52\uFE54-\uFE57\uFE59-\uFE66\uFE68-\uFE6B\uFE70-\uFE74\uFE76-\uFEFC\uFF01-\uFF5E\uFF61-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\uFFE0-\uFFE6]", str_namedSheetsRange = "\u0001-\u0026\u0028-\u0029\u002B-\u002D\u003B-\u003E\u0040\u005E\u0060\u007B-\u007F\u0082\u0084\u008B\u0092\u0095\u0098\u009B\u00A0\u00A6\u00A9\u00AB-\u00AC\u00AE\u00BB\u0378-\u0379\u037E-\u0383\u0387\u038B\u038D\u03A2\u0524-\u0530\u0557-\u0558\u055A-\u0560\u0588-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EF\u05F3-\u05FF\u0604-\u0605\u0609-\u060A\u060C-\u060D\u061B-\u061E\u0620\u065F\u066A-\u066D\u06D4\u0700-\u070E\u074B-\u074C\u07B2-\u07BF\u07F7-\u07F9\u07FB-\u0900\u093A-\u093B\u094E-\u094F\u0955-\u0957\u0964-\u0965\u0970\u0973-\u097A\u0980\u0984\u098D-\u098E\u0991-\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA-\u09BB\u09C5-\u09C6\u09C9-\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4-\u09E5\u09FB-\u0A00\u0A04\u0A0B-\u0A0E\u0A11-\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A-\u0A3B\u0A3D\u0A43-\u0A46\u0A49-\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA-\u0ABB\u0AC6\u0ACA\u0ACE-\u0ACF\u0AD1-\u0ADF\u0AE4-\u0AE5\u0AF0\u0AF2-\u0B00\u0B04\u0B0D-\u0B0E\u0B11-\u0B12\u0B29\u0B31\u0B34\u0B3A-\u0B3B\u0B45-\u0B46\u0B49-\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64-\u0B65\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE-\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0C00\u0C04\u0C0D\u0C11\u0C29\u0C34\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5A-\u0C5F\u0C64-\u0C65\u0C70-\u0C77\u0C80-\u0C81\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA-\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4-\u0CE5\u0CF0\u0CF3-\u0D01\u0D04\u0D0D\u0D11\u0D29\u0D3A-\u0D3C\u0D45\u0D49\u0D4E-\u0D56\u0D58-\u0D5F\u0D64-\u0D65\u0D76-\u0D78\u0D80-\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE-\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3E\u0E4F\u0E5A-\u0E80\u0E83\u0E85-\u0E86\u0E89\u0E8B-\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8-\u0EA9\u0EAC\u0EBA\u0EBE-\u0EBF\u0EC5\u0EC7\u0ECE-\u0ECF\u0EDA-\u0EDB\u0EDE-\u0EFF\u0F04-\u0F12\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F8C-\u0F8F\u0F98\u0FBD\u0FCD\u0FD0-\u0FFF\u104A-\u104F\u109A-\u109D\u10C6-\u10CF\u10FB\u10FD-\u10FF\u115A-\u115E\u11A3-\u11A7\u11FA-\u11FF\u1249\u124E-\u124F\u1257\u1259\u125E-\u125F\u1289\u128E-\u128F\u12B1\u12B6-\u12B7\u12BF\u12C1\u12C6-\u12C7\u12D7\u1311\u1316-\u1317\u135B-\u135E\u1361-\u1368\u137D-\u137F\u139A-\u139F\u13F5-\u1400\u166D-\u166E\u1677-\u167F\u169B-\u169F\u16EB-\u16ED\u16F1-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DA\u17DE-\u17DF\u17EA-\u17EF\u17FA-\u180A\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18FF\u191D-\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1945\u196E-\u196F\u1975-\u197F\u19AA-\u19AF\u19CA-\u19CF\u19DA-\u19DF\u1A1C-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B60\u1B7D-\u1B7F\u1BAB-\u1BAD\u1BBA-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E-\u1CFF\u1DE7-\u1DFD\u1F16-\u1F17\u1F1E-\u1F1F\u1F46-\u1F47\u1F4E-\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E-\u1F7F\u1FB5\u1FC5\u1FD4-\u1FD5\u1FDC\u1FF0-\u1FF1\u1FF5\u1FFF\u2011-\u2012\u2017\u2019-\u201B\u201E-\u201F\u2022-\u2024\u2031\u2034\u2036-\u203A\u203C-\u2043\u2045-\u2051\u2053-\u205E\u2065-\u2069\u2072-\u2073\u207D-\u207E\u208D-\u208F\u2095-\u209F\u20B6-\u20CF\u20F1-\u20FF\u2150-\u2152\u2189-\u218F\u2329-\u232A\u23E8-\u23FF\u2427-\u243F\u244B-\u245F\u269E-\u269F\u26BD-\u26BF\u26C4-\u2700\u2705\u270A-\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u275F-\u2760\u2768-\u2775\u2795-\u2797\u27B0\u27BF\u27C5-\u27C6\u27CB\u27CD-\u27CF\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC-\u29FD\u2B4D-\u2B4F\u2B55-\u2BFF\u2C2F\u2C5F\u2C70\u2C7E-\u2C7F\u2CEB-\u2CFC\u2CFE-\u2CFF\u2D26-\u2D2F\u2D66-\u2D6E\u2D70-\u2D7F\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3018-\u301C\u3030\u303D\u3040\u3097-\u3098\u30A0\u3100-\u3104\u312E-\u3130\u318F\u31B8-\u31BF\u31E4-\u31EF\u321F\u3244-\u324F\u32FF\u4DB6-\u4DBF\u9FC4-\u9FFF\uA48D-\uA48F\uA4C7-\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA660-\uA661\uA673-\uA67B\uA67E\uA698-\uA6FF\uA78D-\uA7FA\uA82C-\uA83F\uA874-\uA87F\uA8C5-\uA8CF\uA8DA-\uA8FF\uA92F\uA954-\uA9FF\uAA37-\uAA3F\uAA4E-\uAA4F\uAA5A-\uABFF\uD7A4-\uD7FF\uFA2E-\uFA2F\uFA6B-\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90-\uFD91\uFDC8-\uFDEF\uFDFE-\uFDFF\uFE10-\uFE1F\uFE27-\uFE2F\uFE32\uFE45-\uFE48\uFE53\uFE58\uFE67\uFE6C-\uFE6F\uFE75\uFEFD-\uFEFE\uFF00\uFF5F-\uFF60\uFFBF-\uFFC1\uFFC8-\uFFC9\uFFD0-\uFFD1\uFFD8-\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFF8\uFFFE-\uFFFF", str_operator = ",\\s-+/^&%<=>", str_excludeCharts = "'*\\[\\]\\:/?"; this.regExp_namedRanges = new RegExp(str_namedRanges, "i"); this.regExp_namedSheetsRange = new RegExp("[" + str_namedSheetsRange + "]", "ig"); // /[-+*\/^&%<=>:]/, this.regExp_strOperator = new RegExp("[" + str_operator + "]", "ig"); this.regExp_strExcludeCharts = new RegExp("[" + str_excludeCharts + "]", "ig"); this.test = function (str) { var ch1 = str.substr(0, 1); this.regExp_strExcludeCharts.lastIndex = 0; this.regExp_namedRanges.lastIndex = 0; this.regExp_namedSheetsRange.lastIndex = 0; this.regExp_strOperator.lastIndex = 0; if (this.regExp_strExcludeCharts.test(str)) {//если содержутся недопустимые символы. return undefined; } if (!this.regExp_namedRanges.test(ch1)) {//если первый символ находится не в str_namedRanges, то однозначно надо экранировать return false; } else { if (this.regExp_namedSheetsRange.test(str) || this.regExp_strOperator.test(str)) {//первый символ допустимый. проверяем всю строку на наличие символов, с которыми необходимо экранировать return false; } //проверка на то, что название листа не совпадает с допустимым адресом ячейки, как в A1 так и RC стилях. var match = str.match(rx_ref); if (match != null) { var m1 = match[1], m2 = match[2]; if (match.length >= 3 && g_oCellAddressUtils.colstrToColnum(m1.substr(0, (m1.length - m2.length))) <= AscCommon.gc_nMaxCol && parseInt(m2) <= AscCommon.gc_nMaxRow) { return false; } } return true; } }; return this; } function test_defName() { var nameRangeRE = new RegExp("(^([" + str_namedRanges + "_])([" + str_namedRanges + "_0-9]*)$)", "i"); this.test = function (str) { var match, m1, m2; if (!nameRangeRE.test(str)) { return false; } match = str.match(rx_ref); if (match != null) { m1 = match[1]; m2 = match[2]; if (match.length >= 3 && g_oCellAddressUtils.colstrToColnum(m1.substr(0, (m1.length - m2.length))) <= AscCommon.gc_nMaxCol && parseInt(m2) <= AscCommon.gc_nMaxRow) { return false; } } return true; }; return this; } var cStrucTableReservedWords = { all: "#All", data: "#Data", headers: "#Headers", totals: "#Totals", thisrow: "#This Row", at: "@" }; var FormulaTablePartInfo = { all: 1, data: 2, headers: 3, totals: 4, thisRow: 5, columns: 6 }; var cStrucTableLocalColumns = null; var cBoolOrigin = {'t': 'TRUE', 'f': 'FALSE'}; var cBoolLocal = {}; var cErrorOrigin = { "nil": "#NULL!", "div": "#DIV\/0!", "value": "#VALUE!", "ref": "#REF!", "name": "#NAME?", "num": "#NUM!", "na": "#N\/A", "getdata": "#GETTING_DATA", "uf": "#UNSUPPORTED_FUNCTION!" }; var cErrorLocal = {}; function build_local_rx(data) { rx_table_local = build_rx_table(data ? data["StructureTables"] : null); rx_bool_local = build_rx_bool((data && data["CONST_TRUE_FALSE"]) || cBoolOrigin); rx_error_local = build_rx_error(data ? data["CONST_ERROR"] : null); } function build_rx_table(local) { cStrucTableLocalColumns = ( local ? local : { "h": "Headers", "d": "Data", "a": "All", "tr": "This Row", "t": "Totals" } ); return build_rx_table_cur(); } function build_rx_table_cur() { var loc_all = cStrucTableLocalColumns['a'], loc_headers = cStrucTableLocalColumns['h'], loc_data = cStrucTableLocalColumns['d'], loc_totals = cStrucTableLocalColumns['t'], loc_this_row = cStrucTableLocalColumns['tr'], structured_tables_headata = new XRegExp('(?:\\[\\#' + loc_headers + '\\]\\' + FormulaSeparators.functionArgumentSeparator + '\\[\\#' + loc_data + '\\])'), structured_tables_datals = new XRegExp('(?:\\[\\#' + loc_data + '\\]\\' + FormulaSeparators.functionArgumentSeparator + '\\[\\#' + loc_totals + '\\])'), structured_tables_userColumn = new XRegExp('(?:\'\\[|\'\\]|[^[\\]])+'), structured_tables_reservedColumn = new XRegExp('\\#(?:' + loc_all + '|' + loc_headers + '|' + loc_totals + '|' + loc_data + '|' + loc_this_row + ')|@'); return XRegExp.build('^(?{{tableName}})\\[(?{{columnName}})?\\]', { "tableName": new XRegExp("^(:?[" + str_namedRanges + "][" + str_namedRanges + "\\d.]*)"), "columnName": XRegExp.build('(?{{reservedColumn}})|(?{{userColumn}})|(?{{userColumnRange}})|(?{{hdtcc}})', { "userColumn": structured_tables_userColumn, "reservedColumn": structured_tables_reservedColumn, "userColumnRange": XRegExp.build('\\[(?{{uc}})\\]\\:\\[(?{{uc}})\\]', { "uc": structured_tables_userColumn }), "hdtcc": XRegExp.build('(?\\[{{rc}}\\]|{{hd}}|{{dt}})(?:\\' + FormulaSeparators.functionArgumentSeparator + '(?:\\[(?{{uc}})\\])(?:\\:(?:\\[(?{{uc}})\\]))?)?', { "rc": structured_tables_reservedColumn, "hd": structured_tables_headata, "dt": structured_tables_datals, "uc": structured_tables_userColumn }) }) }, 'i'); } function build_rx_bool(local) { var t = cBoolLocal.t = local['t'].toUpperCase(); var f = cBoolLocal.f = local['f'].toUpperCase(); return new RegExp("^(" + t + "|" + f + ")([-+*\\/^&%<=>: ;),}]|$)", "i"); } function build_rx_error(local) { // ToDo переделать на более правильную реализацию. Не особо правильное копирование local = local ? local : { "nil": "#NULL!", "div": "#DIV\/0!", "value": "#VALUE!", "ref": "#REF!", "name": "#NAME\\?", "num": "#NUM!", "na": "#N\/A", "getdata": "#GETTING_DATA", "uf": "#UNSUPPORTED_FUNCTION!" }; cErrorLocal['nil'] = local['nil']; cErrorLocal['div'] = local['div']; cErrorLocal['value'] = local['value']; cErrorLocal['ref'] = local['ref']; cErrorLocal['name'] = local['name']; cErrorLocal['num'] = local['num']; cErrorLocal['na'] = local['na']; cErrorLocal['getdata'] = local['getdata']; cErrorLocal['uf'] = local['uf']; return new RegExp("^(" + cErrorLocal["nil"] + "|" + cErrorLocal["div"] + "|" + cErrorLocal["value"] + "|" + cErrorLocal["ref"] + "|" + cErrorLocal["name"] + "|" + cErrorLocal["num"] + "|" + cErrorLocal["na"] + "|" + cErrorLocal["getdata"] + "|" + cErrorLocal["uf"] + ")", "i"); } var PostMessageType = { UploadImage: 0, ExtensionExist: 1 }; var c_oAscServerError = { NoError: 0, Unknown: -1, ReadRequestStream: -3, TaskQueue: -20, TaskResult: -40, Storage: -60, StorageFileNoFound: -61, StorageRead: -62, StorageWrite: -63, StorageRemoveDir: -64, StorageCreateDir: -65, StorageGetInfo: -66, Convert: -80, ConvertDownload: -81, ConvertUnknownFormat: -82, ConvertTimeout: -83, ConvertReadFile: -84, ConvertCONVERT_CORRUPTED: -86, ConvertLIBREOFFICE: -87, ConvertPARAMS: -88, ConvertNEED_PARAMS: -89, ConvertDRM: -90, ConvertPASSWORD: -91, ConvertICU: -92, ConvertLIMITS: -93, ConvertDeadLetter: -99, Upload: -100, UploadContentLength: -101, UploadExtension: -102, UploadCountFiles: -103, UploadURL: -104, VKey: -120, VKeyEncrypt: -121, VKeyKeyExpire: -122, VKeyUserCountExceed: -123 }; var c_oAscImageUploadProp = {//Не все браузеры позволяют получить информацию о файле до загрузки(например ie9), меняя параметры здесь надо поменять аналогичные параметры в web.common MaxFileSize: 25000000, //25 mb SupportedFormats: ["jpg", "jpeg", "jpe", "png", "gif", "bmp"] }; /** * * @param sName * @returns {*} * @constructor */ function GetFileExtension(sName) { var nIndex = sName ? sName.lastIndexOf(".") : -1; if (-1 != nIndex) return sName.substring(nIndex + 1).toLowerCase(); return null; } function GetFileName(sName) { var nIndex = sName ? sName.lastIndexOf(".") : -1; if (-1 != nIndex) return sName.substring(0, nIndex); return null; } function changeFileExtention(sName, sNewExt, opt_lengthLimit) { var sOldExt = GetFileExtension(sName); var nIndexEnd = sOldExt ? sName.length - sOldExt.length - 1 : sName.length; if (opt_lengthLimit && nIndexEnd + sNewExt.length + 1 > opt_lengthLimit) { nIndexEnd = opt_lengthLimit - sNewExt.length - 1; } if (nIndexEnd < sName.length) { return sName.substring(0, nIndexEnd) + '.' + sNewExt; } else { return sName + '.' + sNewExt; } } function getExtentionByFormat(format) { switch (format) { case c_oAscFileType.PDF: case c_oAscFileType.PDFA: return 'pdf'; break; case c_oAscFileType.HTML: return 'html'; break; // Word case c_oAscFileType.DOCX: return 'docx'; break; case c_oAscFileType.DOC: return 'doc'; break; case c_oAscFileType.ODT: return 'odt'; break; case c_oAscFileType.RTF: return 'rtf'; break; case c_oAscFileType.TXT: return 'txt'; break; case c_oAscFileType.MHT: return 'mht'; break; case c_oAscFileType.EPUB: return 'epub'; break; case c_oAscFileType.FB2: return 'fb2'; break; case c_oAscFileType.MOBI: return 'mobi'; break; case c_oAscFileType.DOCY: return 'doct'; break; case c_oAscFileType.CANVAS_WORD: return 'bin'; break; case c_oAscFileType.JSON: return 'json'; break; // Excel case c_oAscFileType.XLSX: return 'xlsx'; break; case c_oAscFileType.XLS: return 'xls'; break; case c_oAscFileType.ODS: return 'ods'; break; case c_oAscFileType.CSV: return 'csv'; break; case c_oAscFileType.XLSY: return 'xlst'; break; // PowerPoint case c_oAscFileType.PPTX: return 'pptx'; break; case c_oAscFileType.PPT: return 'ppt'; break; case c_oAscFileType.ODP: return 'odp'; break; } return ''; } function InitOnMessage(callback) { if (window.addEventListener) { window.addEventListener("message", function (event) { if (null != event && null != event.data) { try { var data = JSON.parse(event.data); if (null != data && null != data["type"] && PostMessageType.UploadImage == data["type"]) { if (c_oAscServerError.NoError == data["error"]) { var urls = data["urls"]; if (urls) { g_oDocumentUrls.addUrls(urls); var firstUrl; for (var i in urls) { if (urls.hasOwnProperty(i)) { firstUrl = urls[i]; break; } } callback(Asc.c_oAscError.ID.No, firstUrl); } } else callback(mapAscServerErrorToAscError(data["error"])); } else if (data.type === "onExternalPluginMessage") { if (window.g_asc_plugins) window.g_asc_plugins.sendToAllPlugins(event.data); } } catch (err) { } } }, false); } } function ShowImageFileDialog(documentId, documentUserId, jwt, callback, callbackOld) { if (AscCommon.EncryptionWorker && AscCommon.EncryptionWorker.isCryptoImages()) { AscCommon.EncryptionWorker.addCryproImagesFromDialog(callback); return; } var fileName; if ("undefined" != typeof(FileReader)) { fileName = GetUploadInput(function (e) { if (e && e.target && e.target.files) { var nError = ValidateUploadImage(e.target.files); callback(mapAscServerErrorToAscError(nError), e.target.files); } else { callback(Asc.c_oAscError.ID.Unknown); } }); } else { var frameWindow = GetUploadIFrame(); var url = sUploadServiceLocalUrlOld + '/' + documentId + '/' + documentUserId + '/' + g_oDocumentUrls.getMaxIndex(); if (jwt) { url += '?token=' + encodeURIComponent(jwt); } var content = '
'; frameWindow.document.open(); frameWindow.document.write(content); frameWindow.document.close(); fileName = frameWindow.document.getElementById("apiiuFile"); var fileSubmit = frameWindow.document.getElementById("apiiuSubmit"); fileName.onchange = function (e) { if (e && e.target && e.target.files) { var nError = ValidateUploadImage(e.target.files); if (c_oAscServerError.NoError != nError) { callbackOld(mapAscServerErrorToAscError(nError)); return; } } callbackOld(Asc.c_oAscError.ID.No); fileSubmit.click(); }; } //todo пересмотреть opera if (AscBrowser.isOpera) setTimeout(function () { fileName.click(); }, 0); else fileName.click(); } function InitDragAndDrop(oHtmlElement, callback) { if ("undefined" != typeof(FileReader) && null != oHtmlElement) { oHtmlElement["ondragover"] = function (e) { e.preventDefault(); e.dataTransfer.dropEffect = CanDropFiles(e) ? 'copy' : 'none'; if (e.dataTransfer.dropEffect == "copy") { var editor = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor; editor.beginInlineDropTarget(e); } return false; }; oHtmlElement["ondrop"] = function (e) { e.preventDefault(); var files = e.dataTransfer.files; var nError = ValidateUploadImage(files); var editor = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor; editor.endInlineDropTarget(e); if (nError == c_oAscServerError.UploadCountFiles) { try { // test html var htmlValue = e.dataTransfer.getData("text/html"); if (htmlValue && !AscCommon.AscBrowser.isIE) { // text html! var index = htmlValue.indexOf("StartHTML"); var indexHtml = htmlValue.indexOf(" 0 && indexHtml > 0 && index < indexHtml) htmlValue = htmlValue.substr(indexHtml); editor["pluginMethod_PasteHtml"](htmlValue); return; } } catch(err) { } try { var textValue = e.dataTransfer.getData("text/plain"); if (textValue) { editor["pluginMethod_PasteText"](textValue); return; } } catch(err) { } try { var textValue = e.dataTransfer.getData("Text"); if (textValue) { editor["pluginMethod_PasteText"](textValue); return; } } catch(err) { } } callback(mapAscServerErrorToAscError(nError), files); }; } } function UploadImageFiles(files, documentId, documentUserId, jwt, callback) { // CryptPad: we need to take control of the upload window.parent.APP.UploadImageFiles(files, documentId, documentUserId, jwt, callback); return; if (files.length > 0) { var url = sUploadServiceLocalUrl + '/' + documentId + '/' + documentUserId + '/' + g_oDocumentUrls.getMaxIndex(); if (jwt) { url += '?token=' + encodeURIComponent(jwt); } var aFiles = []; for(var i = files.length - 1; i > - 1; --i){ aFiles.push(files[i]); } var file = aFiles.pop(); var aResultUrls = []; var fOnReadyChnageState = function(){ if (4 == this.readyState){ if ((this.status == 200 || this.status == 1223)){ var urls = JSON.parse(this.responseText); g_oDocumentUrls.addUrls(urls); for (var i in urls) { if (urls.hasOwnProperty(i)) { aResultUrls.push(urls[i]); break; } } if(aFiles.length === 0){ callback(Asc.c_oAscError.ID.No, aResultUrls); } else{ file = aFiles.pop(); var xhr = new XMLHttpRequest(); url = sUploadServiceLocalUrl + '/' + documentId + '/' + documentUserId + '/' + g_oDocumentUrls.getMaxIndex(); if (jwt) { url += '?token=' + encodeURIComponent(jwt); } xhr.open('POST', url, true); xhr.setRequestHeader('Content-Type', file.type || 'application/octet-stream'); xhr.onreadystatechange = fOnReadyChnageState; xhr.send(file); } } else callback(Asc.c_oAscError.ID.UplImageFileCount); } }; var xhr = new XMLHttpRequest(); xhr.open('POST', url, true); xhr.setRequestHeader('Content-Type', file.type || 'application/octet-stream'); xhr.onreadystatechange = fOnReadyChnageState; xhr.send(file); } else { callback(Asc.c_oAscError.ID.UplImageFileCount); } } function UploadImageUrls(files, documentId, documentUserId, jwt, callback) { if (files.length > 0) { var url = sUploadServiceLocalUrl + '/' + documentId + '/' + documentUserId + '/' + g_oDocumentUrls.getMaxIndex(); if (jwt) { url += '?token=' + encodeURIComponent(jwt); } var aFiles = []; for(var i = files.length - 1; i > - 1; --i){ aFiles.push(files[i]); } var file = aFiles.pop(); var aResultUrls = []; var fOnReadyChnageState = function() { if (4 == this.readyState) { if ((this.status == 200 || this.status == 1223)) { var urls = JSON.parse(this.responseText); g_oDocumentUrls.addUrls(urls); for (var i in urls) { if (urls.hasOwnProperty(i)) { aResultUrls.push({ path: i, url: urls[i] }); break; } } if (aFiles.length === 0) { callback(aResultUrls); } else { file = aFiles.pop(); var xhr = new XMLHttpRequest(); url = sUploadServiceLocalUrl + '/' + documentId + '/' + documentUserId + '/' + g_oDocumentUrls.getMaxIndex(); if (jwt) { url += '?token=' + encodeURIComponent(jwt); } xhr.open('POST', url, true); xhr.setRequestHeader('Content-Type', file.type || 'application/octet-stream'); xhr.onreadystatechange = fOnReadyChnageState; xhr.send(file); } } else callback([]); } }; var xhr = new XMLHttpRequest(); xhr.open('POST', url, true); xhr.setRequestHeader('Content-Type', file.type || 'application/octet-stream'); xhr.onreadystatechange = fOnReadyChnageState; xhr.send(file); } else { callback(Asc.c_oAscError.ID.UplImageFileCount); } } function ValidateUploadImage(files) { var nRes = c_oAscServerError.NoError; if (files.length > 0) { for (var i = 0, length = files.length; i < length; i++) { var file = files[i]; //проверяем расширение файла var sName = file.fileName || file.name; if (sName) { var bSupported = false; var ext = GetFileExtension(sName); if (null !== ext) { for (var j = 0, length2 = c_oAscImageUploadProp.SupportedFormats.length; j < length2; j++) { if (c_oAscImageUploadProp.SupportedFormats[j] == ext) { bSupported = true; break; } } } if (false == bSupported) nRes = c_oAscServerError.UploadExtension; } if (Asc.c_oAscError.ID.No == nRes) { var nSize = file.fileSize || file.size; if (nSize && c_oAscImageUploadProp.MaxFileSize < nSize) nRes = c_oAscServerError.UploadContentLength; } if (c_oAscServerError.NoError != nRes) break; } } else nRes = c_oAscServerError.UploadCountFiles; return nRes; } function CanDropFiles(event) { var editor = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor; if (!editor.isEnabledDropTarget()) return false; var bRes = false; if (event.dataTransfer.types) { for (var i = 0, length = event.dataTransfer.types.length; i < length; ++i) { var type = event.dataTransfer.types[i].toLowerCase(); if (type == "files") { if (event.dataTransfer.items) { for (var j = 0, length2 = event.dataTransfer.items.length; j < length2; j++) { var item = event.dataTransfer.items[j]; if (item.type && item.kind && "file" == item.kind.toLowerCase()) { bRes = false; for (var k = 0, length3 = c_oAscImageUploadProp.SupportedFormats.length; k < length3; k++) { if (-1 != item.type.indexOf(c_oAscImageUploadProp.SupportedFormats[k])) { bRes = true; break; } } if (false == bRes) break; } } } else bRes = true; break; } else if (type == "text" || type == "text/plain" || type == "text/html") { bRes = true; break; } } } return bRes; } function GetUploadIFrame() { var sIFrameName = "apiImageUpload"; var oImageUploader = document.getElementById(sIFrameName); if (!oImageUploader) { var frame = document.createElement("iframe"); frame.name = sIFrameName; frame.id = sIFrameName; frame.setAttribute("style", "position:absolute;left:-2px;top:-2px;width:1px;height:1px;z-index:-1000;"); document.body.appendChild(frame); } return window.frames[sIFrameName]; } function GetUploadInput(onchange) { var inputName = 'apiiuFile'; var input = document.getElementById(inputName); //удаляем чтобы очистить input от предыдущего ввода if (input) { document.body.removeChild(input); } input = document.createElement("input"); input.setAttribute('id', inputName); input.setAttribute('name', inputName); input.setAttribute('type', 'file'); input.setAttribute('accept', 'image/*'); input.setAttribute('style', 'position:absolute;left:-2px;top:-2px;width:1px;height:1px;z-index:-1000;cursor:pointer;'); input.onchange = onchange; document.body.appendChild(input); return input; } var FormulaSeparators = { arrayRowSeparatorDef: ';', arrayColSeparatorDef: ',', digitSeparatorDef: '.', functionArgumentSeparatorDef: ',', arrayRowSeparator: ';', arrayColSeparator: ',', digitSeparator: '.', functionArgumentSeparator: ',' }; var g_oCodeSpace = 32; // Code of space var g_oCodeLineFeed = 10; // Code of line feed var g_arrCodeOperators = [37, 38, 42, 43, 45, 47, 58, 94]; // Code of operators [%, &, *, +, -, /, :, ^] var g_oStartCodeOperatorsCompare = 60; // Start code of operators <=> var g_oEndCodeOperatorsCompare = 62; // End code of operators <=> var g_oCodeLeftParentheses = 40; // Code of ( var g_oCodeRightParentheses = 41; // Code of ) var g_oCodeLeftBrace = 123; // Code of { var g_oCodeRightBrace = 125; // Code of } /*Functions that checks of an element in formula*/ var str_namedRanges = "A-Za-z\u005F\u0080-\u0081\u0083\u0085-\u0087\u0089-\u008A\u008C-\u0091\u0093-\u0094\u0096-\u0097\u0099-\u009A\u009C-\u009F\u00A1-\u00A5\u00A7-\u00A8\u00AA\u00AD\u00AF-\u00BA\u00BC-\u02B8\u02BB-\u02C1\u02C7\u02C9-\u02CB\u02CD\u02D0-\u02D1\u02D8-\u02DB\u02DD\u02E0-\u02E4\u02EE\u0370-\u0373\u0376-\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0523\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0621-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06E5-\u06E6\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4-\u07F5\u07FA\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0972\u097B-\u097F\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58-\u0C59\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D3D\u0D60-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E3A\u0E40-\u0E4E\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDD\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8B\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10D0-\u10FA\u10FC\u1100-\u1159\u115F-\u11A2\u11A8-\u11F9\u1200-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u1676\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19A9\u19C1-\u19C7\u1A00-\u1A16\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200e\u2010\u2013-\u2016\u2018\u201C-\u201D\u2020-\u2021\u2025-\u2027\u2030\u2032-\u2033\u2035\u203B\u2071\u2074\u207F\u2081-\u2084\u2090-\u2094\u2102-\u2103\u2105\u2107\u2109-\u2113\u2115-\u2116\u2119-\u211D\u2121-\u2122\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2153-\u2154\u215B-\u215E\u2160-\u2188\u2190-\u2199\u21D2\u21D4\u2200\u2202-\u2203\u2207-\u2208\u220B\u220F\u2211\u2215\u221A\u221D-\u2220\u2223\u2225\u2227-\u222C\u222E\u2234-\u2237\u223C-\u223D\u2248\u224C\u2252\u2260-\u2261\u2264-\u2267\u226A-\u226B\u226E-\u226F\u2282-\u2283\u2286-\u2287\u2295\u2299\u22A5\u22BF\u2312\u2460-\u24B5\u24D0-\u24E9\u2500-\u254B\u2550-\u2574\u2581-\u258F\u2592-\u2595\u25A0-\u25A1\u25A3-\u25A9\u25B2-\u25B3\u25B6-\u25B7\u25BC-\u25BD\u25C0-\u25C1\u25C6-\u25C8\u25CB\u25CE-\u25D1\u25E2-\u25E5\u25EF\u2605-\u2606\u2609\u260E-\u260F\u261C\u261E\u2640\u2642\u2660-\u2661\u2663-\u2665\u2667-\u266A\u266C-\u266D\u266F\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2C6F\u2C71-\u2C7D\u2C80-\u2CE4\u2D00-\u2D25\u2D30-\u2D65\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3000-\u3003\u3005-\u3017\u301D-\u301F\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31B7\u31F0-\u321C\u3220-\u3229\u3231-\u3232\u3239\u3260-\u327B\u327F\u32A3-\u32A8\u3303\u330D\u3314\u3318\u3322-\u3323\u3326-\u3327\u332B\u3336\u333B\u3349-\u334A\u334D\u3351\u3357\u337B-\u337E\u3380-\u3384\u3388-\u33CA\u33CD-\u33D3\u33D5-\u33D6\u33D8\u33DB-\u33DD\u3400-\u4DB5\u4E00-\u9FC3\uA000-\uA48C\uA500-\uA60C\uA610-\uA61F\uA62A-\uA62B\uA640-\uA65F\uA662-\uA66E\uA680-\uA697\uA722-\uA787\uA78B-\uA78C\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA90A-\uA925\uA930-\uA946\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAC00-\uD7A3\uE000-\uF848\uF900-\uFA2D\uFA30-\uFA6A\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE30-\uFE31\uFE33-\uFE44\uFE49-\uFE52\uFE54-\uFE57\uFE59-\uFE66\uFE68-\uFE6B\uFE70-\uFE74\uFE76-\uFEFC\uFF01-\uFF5E\uFF61-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\uFFE0-\uFFE6", str_namedSheetsRange = "\u0001-\u0026\u0028-\u0029\u002B-\u002D\u003B-\u003E\u0040\u005E\u0060\u007B-\u007F\u0082\u0084\u008B\u0092\u0095\u0098\u009B\u00A0\u00A6\u00A9\u00AB-\u00AC\u00AE\u00BB\u0378-\u0379\u037E-\u0383\u0387\u038B\u038D\u03A2\u0524-\u0530\u0557-\u0558\u055A-\u0560\u0588-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EF\u05F3-\u05FF\u0604-\u0605\u0609-\u060A\u060C-\u060D\u061B-\u061E\u0620\u065F\u066A-\u066D\u06D4\u0700-\u070E\u074B-\u074C\u07B2-\u07BF\u07F7-\u07F9\u07FB-\u0900\u093A-\u093B\u094E-\u094F\u0955-\u0957\u0964-\u0965\u0970\u0973-\u097A\u0980\u0984\u098D-\u098E\u0991-\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA-\u09BB\u09C5-\u09C6\u09C9-\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4-\u09E5\u09FB-\u0A00\u0A04\u0A0B-\u0A0E\u0A11-\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A-\u0A3B\u0A3D\u0A43-\u0A46\u0A49-\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA-\u0ABB\u0AC6\u0ACA\u0ACE-\u0ACF\u0AD1-\u0ADF\u0AE4-\u0AE5\u0AF0\u0AF2-\u0B00\u0B04\u0B0D-\u0B0E\u0B11-\u0B12\u0B29\u0B31\u0B34\u0B3A-\u0B3B\u0B45-\u0B46\u0B49-\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64-\u0B65\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE-\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0C00\u0C04\u0C0D\u0C11\u0C29\u0C34\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5A-\u0C5F\u0C64-\u0C65\u0C70-\u0C77\u0C80-\u0C81\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA-\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4-\u0CE5\u0CF0\u0CF3-\u0D01\u0D04\u0D0D\u0D11\u0D29\u0D3A-\u0D3C\u0D45\u0D49\u0D4E-\u0D56\u0D58-\u0D5F\u0D64-\u0D65\u0D76-\u0D78\u0D80-\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE-\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3E\u0E4F\u0E5A-\u0E80\u0E83\u0E85-\u0E86\u0E89\u0E8B-\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8-\u0EA9\u0EAC\u0EBA\u0EBE-\u0EBF\u0EC5\u0EC7\u0ECE-\u0ECF\u0EDA-\u0EDB\u0EDE-\u0EFF\u0F04-\u0F12\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F8C-\u0F8F\u0F98\u0FBD\u0FCD\u0FD0-\u0FFF\u104A-\u104F\u109A-\u109D\u10C6-\u10CF\u10FB\u10FD-\u10FF\u115A-\u115E\u11A3-\u11A7\u11FA-\u11FF\u1249\u124E-\u124F\u1257\u1259\u125E-\u125F\u1289\u128E-\u128F\u12B1\u12B6-\u12B7\u12BF\u12C1\u12C6-\u12C7\u12D7\u1311\u1316-\u1317\u135B-\u135E\u1361-\u1368\u137D-\u137F\u139A-\u139F\u13F5-\u1400\u166D-\u166E\u1677-\u167F\u169B-\u169F\u16EB-\u16ED\u16F1-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DA\u17DE-\u17DF\u17EA-\u17EF\u17FA-\u180A\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18FF\u191D-\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1945\u196E-\u196F\u1975-\u197F\u19AA-\u19AF\u19CA-\u19CF\u19DA-\u19DF\u1A1C-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B60\u1B7D-\u1B7F\u1BAB-\u1BAD\u1BBA-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E-\u1CFF\u1DE7-\u1DFD\u1F16-\u1F17\u1F1E-\u1F1F\u1F46-\u1F47\u1F4E-\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E-\u1F7F\u1FB5\u1FC5\u1FD4-\u1FD5\u1FDC\u1FF0-\u1FF1\u1FF5\u1FFF\u200e\u2011-\u2012\u2017\u2019-\u201B\u201E-\u201F\u2022-\u2024\u2031\u2034\u2036-\u203A\u203C-\u2043\u2045-\u2051\u2053-\u205E\u2065-\u2069\u2072-\u2073\u207D-\u207E\u208D-\u208F\u2095-\u209F\u20B6-\u20CF\u20F1-\u20FF\u2150-\u2152\u2189-\u218F\u2329-\u232A\u23E8-\u23FF\u2427-\u243F\u244B-\u245F\u269E-\u269F\u26BD-\u26BF\u26C4-\u2700\u2705\u270A-\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u275F-\u2760\u2768-\u2775\u2795-\u2797\u27B0\u27BF\u27C5-\u27C6\u27CB\u27CD-\u27CF\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC-\u29FD\u2B4D-\u2B4F\u2B55-\u2BFF\u2C2F\u2C5F\u2C70\u2C7E-\u2C7F\u2CEB-\u2CFC\u2CFE-\u2CFF\u2D26-\u2D2F\u2D66-\u2D6E\u2D70-\u2D7F\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3018-\u301C\u3030\u303D\u3040\u3097-\u3098\u30A0\u3100-\u3104\u312E-\u3130\u318F\u31B8-\u31BF\u31E4-\u31EF\u321F\u3244-\u324F\u32FF\u4DB6-\u4DBF\u9FC4-\u9FFF\uA48D-\uA48F\uA4C7-\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA660-\uA661\uA673-\uA67B\uA67E\uA698-\uA6FF\uA78D-\uA7FA\uA82C-\uA83F\uA874-\uA87F\uA8C5-\uA8CF\uA8DA-\uA8FF\uA92F\uA954-\uA9FF\uAA37-\uAA3F\uAA4E-\uAA4F\uAA5A-\uABFF\uD7A4-\uD7FF\uFA2E-\uFA2F\uFA6B-\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90-\uFD91\uFDC8-\uFDEF\uFDFE-\uFDFF\uFE10-\uFE1F\uFE27-\uFE2F\uFE32\uFE45-\uFE48\uFE53\uFE58\uFE67\uFE6C-\uFE6F\uFE75\uFEFD-\uFEFE\uFF00\uFF5F-\uFF60\uFFBF-\uFFC1\uFFC8-\uFFC9\uFFD0-\uFFD1\uFFD8-\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFF8\uFFFE-\uFFFF", rx_operators = /^ *[-+*\/^&%<=>:] */, rg = new XRegExp("^((?:_xlfn.)?[\\p{L}\\d.]+ *)[-+*/^&%<=>:;\\(\\)]"), rgRange = /^(\$?[A-Za-z]+\$?\d+:\$?[A-Za-z]+\$?\d+)(?:[-+*\/^&%<=>: ;),]|$)/, rgRangeR1C1 = /^(([Rr]{1}(\[)?(-?\d*)(\])?)([Cc]{1}(\[)?(-?\d*)(\])?):([Rr]{1}(\[)?(-?\d*)(\])?)([Cc]{1}(\[)?(-?\d*)(\])?))([-+*\/^&%<=>: ;),]|$)/, rgCols = /^(\$?[A-Za-z]+:\$?[A-Za-z]+)(?:[-+*\/^&%<=>: ;),]|$)/, rgColsR1C1 = /^(([Cc]{1}(\[)?(-?\d*)(\])?(:)?)([Cc]?(\[)?(-?\d*)(\])?))([-+*\/^&%<=>: ;),]|$)/, rgRows = /^(\$?\d+:\$?\d+)(?:[-+*\/^&%<=>: ;),]|$)/, rgRowsR1C1 = /^(([Rr]{1}(\[)?(-?\d*)(\])?(:)?)([Rr]?(\[)?(-?\d*)(\])?))([-+*\/^&%<=>: ;),]|$)/, rx_ref = /^ *(\$?[A-Za-z]{1,3}\$?(\d{1,7}))([-+*\/^&%<=>: ;),]|$)/, rx_refAll = /^(\$?[A-Za-z]+\$?(\d+))([-+*\/^&%<=>: ;),]|$)/, rx_refR1C1 = /^(([Rr]{1}(\[)?(-?\d*)(\])?)([Cc]{1}(\[)?(-?\d*)(\])?))([-+*\/^&%<=>: ;),]|$)/, rx_ref3D_non_quoted = new XRegExp("^(?[" + str_namedRanges + "][" + str_namedRanges + "\\d.]*)(:(?[" + str_namedRanges + "][" + str_namedRanges + "\\d.]*))?!", "i"), rx_ref3D_quoted = new XRegExp("^'(?(?:''|[^\\[\\]'\\/*?:])*)(?::(?(?:''|[^\\[\\]'\\/*?:])*))?'!"), rx_ref3D = new XRegExp("^(?[^:]+)(:(?[^:]+))?!"), rx_number = /^ *[+-]?\d*(\d|\.)\d*([eE][+-]?\d+)?/, rx_RightParentheses = /^ *\)/, rx_Comma = /^ *[,;] */, rx_arraySeparators = /^ *[,;] */, rx_error = build_rx_error(null), rx_error_local = build_rx_error(null), rx_bool = build_rx_bool(cBoolOrigin), rx_bool_local = rx_bool, rx_string = /^\"((\"\"|[^\"])*)\"/, rx_test_ws_name = new test_ws_name2(), rx_space_g = /\s/g, rx_space = /\s/, rx_intersect = /^ +/, rg_str_allLang = /[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0345\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05B0-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0657\u0659-\u065F\u066E-\u06D3\u06D5-\u06DC\u06E1-\u06E8\u06ED-\u06EF\u06FA-\u06FC\u06FF\u0710-\u073F\u074D-\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0817\u081A-\u082C\u0840-\u0858\u08A0\u08A2-\u08AC\u08E4-\u08E9\u08F0-\u08FE\u0900-\u093B\u093D-\u094C\u094E-\u0950\u0955-\u0963\u0971-\u0977\u0979-\u097F\u0981-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD-\u09C4\u09C7\u09C8\u09CB\u09CC\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09F0\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3E-\u0A42\u0A47\u0A48\u0A4B\u0A4C\u0A51\u0A59-\u0A5C\u0A5E\u0A70-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD-\u0AC5\u0AC7-\u0AC9\u0ACB\u0ACC\u0AD0\u0AE0-\u0AE3\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D-\u0B44\u0B47\u0B48\u0B4B\u0B4C\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD0\u0BD7\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4C\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C82\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCC\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CF1\u0CF2\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4C\u0D4E\u0D57\u0D60-\u0D63\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E46\u0E4D\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0ECD\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F71-\u0F81\u0F88-\u0F97\u0F99-\u0FBC\u1000-\u1036\u1038\u103B-\u103F\u1050-\u1062\u1065-\u1068\u106E-\u1086\u108E\u109C\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1713\u1720-\u1733\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17B3\u17B6-\u17C8\u17D7\u17DC\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191C\u1920-\u192B\u1930-\u1938\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A1B\u1A20-\u1A5E\u1A61-\u1A74\u1AA7\u1B00-\u1B33\u1B35-\u1B43\u1B45-\u1B4B\u1B80-\u1BA9\u1BAC-\u1BAF\u1BBA-\u1BE5\u1BE7-\u1BF1\u1C00-\u1C35\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u24B6-\u24E9\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA674-\uA67B\uA67F-\uA697\uA69F-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA827\uA840-\uA873\uA880-\uA8C3\uA8F2-\uA8F7\uA8FB\uA90A-\uA92A\uA930-\uA952\uA960-\uA97C\uA980-\uA9B2\uA9B4-\uA9BF\uA9CF\uAA00-\uAA36\uAA40-\uAA4D\uAA60-\uAA76\uAA7A\uAA80-\uAABE\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF5\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABEA\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/, rx_name = new XRegExp("^(?" + "[" + str_namedRanges + "][" + str_namedRanges + "\\d.]*)([-+*\\/^&%<=>: ;/\n/),]|$)"), rx_defName = new test_defName(), rx_arraySeparatorsDef = /^ *[,;] */, rx_numberDef = /^ *[+-]?\d*(\d|\.)\d*([eE][+-]?\d+)?/, rx_CommaDef = /^ *[,;] */, rx_ControlSymbols = /^ *[\u0000-\u001F\u007F-\u009F] */, emailRe = /^(mailto:)?([a-z0-9'\._-]+@[a-z0-9\.-]+\.[a-z0-9]{2,4})([a-яё0-9\._%+-=\? :&]*)/i, ipRe = /^(((https?)|(ftps?)):\/\/)?([\-\wа-яё]*:?[\-\wа-яё]*@)?(((1[0-9]{2}|2[0-4][0-9]|25[0-5]|[1-9][0-9]|[0-9])\.){3}(1[0-9]{2}|2[0-4][0-9]|25[0-5]|[1-9][0-9]|[0-9]))(:\d+)?(\/[%\-\wа-яё]*(\.[\wа-яё]{2,})?(([\wа-яё\-\.\?\\\/+@&#;:`~=%!,\(\)]*)(\.[\wа-яё]{2,})?)*)*\/?/i, hostnameRe = /^(((https?)|(ftps?)):\/\/)?([\-\wа-яё]*:?[\-\wа-яё]*@)?(([\-\wа-яё]+\.)+[\wа-яё\-]{2,}(:\d+)?(\/[%\-\wа-яё]*(\.[\wа-яё]{2,})?(([\wа-яё\-\.\?\\\/+@&#;:`'~=%!,\(\)]*)(\.[\wа-яё]{2,})?)*)*\/?)/i, localRe = /^(((https?)|(ftps?)):\/\/)([\-\wа-яё]*:?[\-\wа-яё]*@)?(([\-\wа-яё]+)(:\d+)?(\/[%\-\wа-яё]*(\.[\wа-яё]{2,})?(([\wа-яё\-\.\?\\\/+@&#;:`'~=%!,\(\)]*)(\.[\wа-яё]{2,})?)*)*\/?)/i, rx_table = build_rx_table(null), rx_table_local = build_rx_table(null); function getUrlType(url) { var checkvalue = url.replace(new RegExp(' ', 'g'), '%20'); var isEmail; var isvalid = checkvalue.strongMatch(hostnameRe); !isvalid && (isvalid = checkvalue.strongMatch(ipRe)); !isvalid && (isvalid = checkvalue.strongMatch(localRe)); isEmail = checkvalue.strongMatch(emailRe); !isvalid && (isvalid = isEmail); return isvalid ? (isEmail ? AscCommon.c_oAscUrlType.Email : AscCommon.c_oAscUrlType.Http) : AscCommon.c_oAscUrlType.Invalid; } function prepareUrl(url, type) { if (!/(((^https?)|(^ftp)):\/\/)|(^mailto:)/i.test(url)) { url = ( (AscCommon.c_oAscUrlType.Email == type) ? 'mailto:' : 'http://' ) + url; } return url.replace(new RegExp("%20", 'g'), " "); } /** * вспомогательный объект для парсинга формул и проверки строки по регуляркам указанным выше. * @constructor */ function parserHelper() { this.operand_str = null; this.pCurrPos = null; } parserHelper.prototype._reset = function () { this.operand_str = null; this.pCurrPos = null; }; parserHelper.prototype.isControlSymbols = function (formula, start_pos, digitDelim) { if (this instanceof parserHelper) { this._reset(); } var match = (formula.substring(start_pos)).match(rx_ControlSymbols); if (match != null) { this.operand_str = match[0]; this.pCurrPos += match[0].length; return true; } return false; }; parserHelper.prototype.isOperator = function (formula, start_pos) { // ToDo нужно ли это? if (this instanceof parserHelper) { this._reset(); } var code, find = false, length = formula.length; while (start_pos !== length) { code = formula.charCodeAt(start_pos); if (-1 !== g_arrCodeOperators.indexOf(code)) { this.operand_str = formula[start_pos]; ++start_pos; find = true; break; } else if (g_oStartCodeOperatorsCompare <= code && code <= g_oEndCodeOperatorsCompare) { this.operand_str = formula[start_pos]; ++start_pos; while (start_pos !== length) { code = formula.charCodeAt(start_pos); if (g_oStartCodeOperatorsCompare > code || code > g_oEndCodeOperatorsCompare) { break; } this.operand_str += formula[start_pos]; ++start_pos; } find = true; break; } else if (code === g_oCodeSpace || code === g_oCodeLineFeed) { ++start_pos; } else { break; } } if (find) { while (start_pos !== length) { code = formula.charCodeAt(start_pos); if (code !== g_oCodeSpace && code !== g_oCodeLineFeed) { break; } ++start_pos; } this.pCurrPos = start_pos; return true; } return false; }; parserHelper.prototype.isFunc = function (formula, start_pos) { if (this instanceof parserHelper) { this._reset(); } var frml = formula.substring(start_pos); var match = (frml).match(rg); if (match != null) { if (match.length == 2) { this.pCurrPos += match[1].length; this.operand_str = match[1]; return true; } } return false; }; parserHelper.prototype.convertFromR1C1 = function (r, c, isAbsRow, isAbsCol) { var activeCell = AscCommonExcel.g_ActiveCell; var colStr, rowStr, res = ""; if(r !== null && c !== null) { if(isNaN(r)) { r = 0; isAbsRow = false; } if(isNaN(c)) { c = 0; isAbsCol = false; } colStr = g_oCellAddressUtils.colnumToColstrFromWsView(!isAbsCol && activeCell ? activeCell.c1 + 1 + c : c); rowStr = !isAbsRow && activeCell ? activeCell.r1 + 1 + r : r; if(isAbsCol) { colStr = "$" + colStr; } if(isAbsRow) { rowStr = "$" + rowStr; } res = colStr + rowStr; } else if(c !== null) { if(isNaN(c)) { c = 0; isAbsCol = false; } colStr = g_oCellAddressUtils.colnumToColstrFromWsView(!isAbsCol && activeCell ? activeCell.c1 + 1 + c : c); if(isAbsCol) { colStr = "$" + colStr; } res = colStr; } else if(r !== null) { if(isNaN(r)) { r = 0; isAbsRow = false; } rowStr = !isAbsRow && activeCell ? activeCell.r1 + 1 + r + "" : r + ""; if(isAbsRow) { rowStr = "$" + rowStr; } res = rowStr; } return res; }; parserHelper.prototype.isArea = function (formula, start_pos) { if (this instanceof parserHelper) { this._reset(); } var checkAbs = function(val1, val2) { var res = null; if(val1 === val2 && val1 === undefined) { res = true; } else if(val1 === "[" && val2 === "]") { res = false; } return res; }; var checkMatchRowCol = function(tempMatch) { var res = true; if(tempMatch[9] !== "" && tempMatch[9] !== undefined && !(tempMatch[6] === ":" && tempMatch[7] !== "" && tempMatch[7] !== undefined)) { res = false; } else if(tempMatch[7] !== "" && tempMatch[7] !== undefined && tempMatch[6] !== ":") { res = false; } else if((tempMatch[7] === "" || tempMatch[7] === undefined) && tempMatch[6] === ":") { res = false; } return res; }; var R1C1Mode = AscCommonExcel.g_R1C1Mode; var subSTR = formula.substring(start_pos); var match; if(!R1C1Mode) { match = subSTR.match(rgRange) || subSTR.match(rgCols) || subSTR.match(rgRows); if (match != null) { var m0 = match[1].split(":"); if (g_oCellAddressUtils.getCellAddress(m0[0]).isValid() && g_oCellAddressUtils.getCellAddress(m0[1]).isValid()) { this.pCurrPos += match[1].length; this.operand_str = match[1]; return true; } } } else { var abs1Val, abs2Val, abs3Val, abs4Val, ref1, ref2; if((match = subSTR.match(rgRangeR1C1)) !== null) { abs1Val = checkAbs(match[3], match[5]); abs2Val = checkAbs(match[7], match[9]); abs3Val = checkAbs(match[11], match[13]); abs4Val = checkAbs(match[15], match[17]); if(abs1Val !== null && abs2Val !== null && abs3Val !== null && abs4Val !== null) { ref1 = AscCommon.parserHelp.convertFromR1C1(parseInt(match[4]), parseInt(match[8]), abs1Val, abs2Val); ref2 = AscCommon.parserHelp.convertFromR1C1(parseInt(match[12]), parseInt(match[16]), abs3Val, abs4Val); if (g_oCellAddressUtils.getCellAddress(ref1).isValid() && g_oCellAddressUtils.getCellAddress(ref2).isValid()) { this.pCurrPos += match[1].length; this.operand_str = match[1]; this.real_str = ref1 + ":" + ref2; return true; } } } else if(null != (match = subSTR.match(rgColsR1C1))) { if(checkMatchRowCol(match)) { abs1Val = checkAbs(match[3], match[5]); abs2Val = checkAbs(match[8], match[10]); if(abs1Val !== null && abs2Val !== null) { ref1 = AscCommon.parserHelp.convertFromR1C1(null, parseInt(match[4]), null, abs1Val); ref2 = "" !== match[7] ? AscCommon.parserHelp.convertFromR1C1(null, parseInt(match[9]), null, abs2Val) : ref1; if (g_oCellAddressUtils.getCellAddress(ref1).isValid() && g_oCellAddressUtils.getCellAddress(ref2).isValid()) { this.pCurrPos += match[1].length; this.operand_str = match[1]; this.real_str = ref1 + ":" + ref2; return true; } } } } else if(null != (match = subSTR.match(rgRowsR1C1))) { if(checkMatchRowCol(match)) { abs1Val = checkAbs(match[3], match[5]); abs2Val = checkAbs(match[8], match[10]); if(abs1Val !== null && abs2Val !== null) { ref1 = AscCommon.parserHelp.convertFromR1C1(parseInt(match[4]), null, abs1Val); ref2 = "" !== match[7] ? AscCommon.parserHelp.convertFromR1C1(parseInt(match[9]), null, abs2Val) : ref1; if (g_oCellAddressUtils.getCellAddress(ref1).isValid() && g_oCellAddressUtils.getCellAddress(ref2).isValid()) { this.pCurrPos += match[1].length; this.operand_str = match[1]; this.real_str = ref1 + ":" + ref2; return true; } } } } } return false; }; parserHelper.prototype.isRef = function (formula, start_pos, allRef) { if (this instanceof parserHelper) { this._reset(); } var R1C1Mode = AscCommonExcel.g_R1C1Mode; var substr = formula.substring(start_pos), match; var m0, m1; if(!R1C1Mode) { match = substr.match(rx_ref); if (match != null) { m0 = match[0]; m1 = match[1]; if (g_oCellAddressUtils.getCellAddress(m1).isValid()) { this.pCurrPos += m0.indexOf(" ") > -1 ? m0.length - 1 : m1.length; this.operand_str = m1; return true; } else if (allRef) { match = substr.match(rx_refAll); if ((match != null || match != undefined) && match.length >= 3) { m1 = match[1]; this.pCurrPos += m1.length; this.operand_str = m1; return true; } } } } else { match = substr.match(rx_refR1C1); if (match != null && (match[3] === match[5] || (match[3] === "[" && match[5] === "]")) && (match[7] === match[9] || (match[7] === "[" && match[9] === "]"))) { m0 = match[0]; m1 = match[1]; var ref = AscCommon.parserHelp.convertFromR1C1(parseInt(match[4]), parseInt(match[8]), !match[3], !match[7]); if (g_oCellAddressUtils.getCellAddress(ref).isValid()) { this.pCurrPos += m0.indexOf(" ") > -1 ? m0.length - 1 : m1.length; this.operand_str = m1; this.real_str = ref; return true; } } } return false; }; parserHelper.prototype.is3DRef = function (formula, start_pos) { if (this instanceof parserHelper) { this._reset(); } var subSTR = formula.substring(start_pos), match = XRegExp.exec(subSTR, rx_ref3D_quoted) || XRegExp.exec(subSTR, rx_ref3D_non_quoted); if (match != null) { this.pCurrPos += match[0].length; this.operand_str = match[1]; return [true, match["name_from"] ? match["name_from"].replace(/''/g, "'") : null, match["name_to"] ? match["name_to"].replace(/''/g, "'") : null]; } return [false, null, null]; }; parserHelper.prototype.isNextPtg = function (formula, start_pos, digitDelim) { if (this instanceof parserHelper) { this._reset(); } var subSTR = formula.substring(start_pos), match; if (subSTR.match(rx_RightParentheses) == null && subSTR.match(digitDelim ? rx_Comma : rx_CommaDef) == null && subSTR.match(rx_operators) == null && (match = subSTR.match(rx_intersect)) != null) { this.pCurrPos += match[0].length; this.operand_str = match[0][0]; return true; } return false; }; parserHelper.prototype.isNumber = function (formula, start_pos, digitDelim) { if (this instanceof parserHelper) { this._reset(); } var match = (formula.substring(start_pos)).match(digitDelim ? rx_number : rx_numberDef); if (match != null) { this.operand_str = match[0].replace(FormulaSeparators.digitSeparator, FormulaSeparators.digitSeparatorDef); this.pCurrPos += match[0].length; return true; } return false; }; parserHelper.prototype.isLeftParentheses = function (formula, start_pos) { if (this instanceof parserHelper) { this._reset(); } var code, find = false, length = formula.length; while (start_pos !== length) { code = formula.charCodeAt(start_pos); if (code === g_oCodeLeftParentheses) { this.operand_str = formula[start_pos]; ++start_pos; find = true; break; } else if (code === g_oCodeSpace) { ++start_pos; } else { break; } } if (find) { while (start_pos !== length) { code = formula.charCodeAt(start_pos); if (code !== g_oCodeSpace) { break; } ++start_pos; } this.pCurrPos = start_pos; return true; } return false; }; parserHelper.prototype.isRightParentheses = function (formula, start_pos) { if (this instanceof parserHelper) { this._reset(); } var code, find = false, length = formula.length; while (start_pos !== length) { code = formula.charCodeAt(start_pos); if (code === g_oCodeRightParentheses) { this.operand_str = formula[start_pos]; ++start_pos; find = true; break; } else if (code === g_oCodeSpace) { ++start_pos; } else { break; } } if (find) { while (start_pos !== length) { code = formula.charCodeAt(start_pos); if (code !== g_oCodeSpace) { break; } ++start_pos; } this.pCurrPos = start_pos; return true; } }; parserHelper.prototype.isComma = function (formula, start_pos, digitDelim) { if (this instanceof parserHelper) { this._reset(); } var match = (formula.substring(start_pos)).match(digitDelim ? rx_Comma : rx_CommaDef); if (match != null) { this.operand_str = match[0]; this.pCurrPos += match[0].length; return true; } return false; }; parserHelper.prototype.isArraySeparator = function (formula, start_pos, digitDelim) { if (this instanceof parserHelper) { this._reset(); } var match = (formula.substring(start_pos)).match(digitDelim ? rx_arraySeparators : rx_arraySeparatorsDef); if (match != null) { this.operand_str = match[0]; this.pCurrPos += match[0].length; return true; } return false; }; parserHelper.prototype.isError = function (formula, start_pos, local) { if (this instanceof parserHelper) { this._reset(); } var match = (formula.substring(start_pos)).match(local ? rx_error_local : rx_error); if (match != null) { this.operand_str = match[0]; this.pCurrPos += match[0].length; return true; } return false; }; parserHelper.prototype.isBoolean = function (formula, start_pos, local) { if (this instanceof parserHelper) { this._reset(); } var match = (formula.substring(start_pos)).match(local ? rx_bool_local : rx_bool); if (match != null) { this.operand_str = match[1]; this.pCurrPos += match[1].length; return true; } return false; }; parserHelper.prototype.isString = function (formula, start_pos) { if (this instanceof parserHelper) { this._reset(); } var match = (formula.substring(start_pos)).match(rx_string); if (match != null) { this.operand_str = match[1].replace("\"\"", "\""); this.pCurrPos += match[0].length; return true; } return false; }; parserHelper.prototype.isName = function (formula, start_pos, wb, ws) { if (this instanceof parserHelper) { this._reset(); } var subSTR = formula.substring(start_pos), match = XRegExp.exec(subSTR, rx_name); if (match != null) { var name = match["name"]; if (name && 0 !== name.length && name.toUpperCase() !== cBoolLocal.t && name.toUpperCase() !== cBoolLocal.f/*&& wb.DefinedNames && wb.isDefinedNamesExists( name, ws ? ws.getId() : null )*/) { this.pCurrPos += name.length; this.operand_str = name; return [true, name]; } this.operand_str = name; } return [false]; }; parserHelper.prototype.isLeftBrace = function (formula, start_pos) { if (this instanceof parserHelper) { this._reset(); } var code, find = false, length = formula.length; while (start_pos !== length) { code = formula.charCodeAt(start_pos); if (code === g_oCodeLeftBrace) { this.operand_str = formula[start_pos]; ++start_pos; find = true; break; } else if (code === g_oCodeSpace) { ++start_pos; } else { break; } } if (find) { while (start_pos !== length) { code = formula.charCodeAt(start_pos); if (code !== g_oCodeSpace) { break; } ++start_pos; } this.pCurrPos = start_pos; return true; } }; parserHelper.prototype.isRightBrace = function (formula, start_pos) { if (this instanceof parserHelper) { this._reset(); } var code, find = false, length = formula.length; while (start_pos !== length) { code = formula.charCodeAt(start_pos); if (code === g_oCodeRightBrace) { this.operand_str = formula[start_pos]; ++start_pos; find = true; break; } else if (code === g_oCodeSpace) { ++start_pos; } else { break; } } if (find) { while (start_pos !== length) { code = formula.charCodeAt(start_pos); if (code !== g_oCodeSpace) { break; } ++start_pos; } this.pCurrPos = start_pos; return true; } }; parserHelper.prototype.isTable = function (formula, start_pos, local) { if (this instanceof parserHelper) { this._reset(); } var subSTR = formula.substring(start_pos), match = XRegExp.exec(subSTR, local ? rx_table_local : rx_table); if (match != null && match["tableName"]) { this.operand_str = match[0]; this.pCurrPos += match[0].length; return match; } return false; }; // Парсим ссылку на диапазон в листе parserHelper.prototype.parse3DRef = function (formula) { // Сначала получаем лист var is3DRefResult = this.is3DRef(formula, 0); if (is3DRefResult && true === is3DRefResult[0]) { // Имя листа в ссылке var sheetName = is3DRefResult[1]; // Ищем начало range var indexStartRange = null !== this.pCurrPos ? this.pCurrPos : formula.indexOf("!") + 1; if (this.isArea(formula, indexStartRange) || this.isRef(formula, indexStartRange)) { if (this.operand_str.length == formula.substring(indexStartRange).length) return {sheet: sheetName, sheet2: is3DRefResult[2], range: this.operand_str}; else return null; } } // Возвращаем ошибку return null; }; // Возвращает ссылку на диапазон с листом (название листа экранируется) parserHelper.prototype.get3DRef = function (sheet, range) { sheet = sheet.split(":"); var wsFrom = sheet[0], wsTo = sheet[1] === undefined ? wsFrom : sheet[1]; if (rx_test_ws_name.test(wsFrom) && rx_test_ws_name.test(wsTo)) { return (wsFrom !== wsTo ? wsFrom + ":" + wsTo : wsFrom) + "!" + range; } else { wsFrom = wsFrom.replace(/'/g, "''"); wsTo = wsTo.replace(/'/g, "''"); return "'" + (wsFrom !== wsTo ? wsFrom + ":" + wsTo : wsFrom) + "'!" + range; } }; // Возвращает экранируемое название листа parserHelper.prototype.getEscapeSheetName = function (sheet) { return rx_test_ws_name.test(sheet) ? sheet : "'" + sheet.replace(/'/g, "''") + "'"; }; /** * Проверяем ссылку на валидность для диаграммы или автофильтра * @param {AscCommonExcel.Workbook} model * @param {AscCommonExcel.WorkbookView} wb * @param {Asc.c_oAscSelectionDialogType} dialogType * @param {string} dataRange * @param {boolean} fullCheck * @param {boolean} isRows * @param {Asc.c_oAscChartTypeSettings} chartType * @returns {*} */ parserHelper.prototype.checkDataRange = function (model, wb, dialogType, dataRange, fullCheck, isRows, chartType) { var result, range, sheetModel; if (Asc.c_oAscSelectionDialogType.Chart === dialogType) { result = parserHelp.parse3DRef(dataRange); if (result) { sheetModel = model.getWorksheetByName(result.sheet); if (sheetModel) { range = AscCommonExcel.g_oRangeCache.getAscRange(result.range); } } } else range = AscCommonExcel.g_oRangeCache.getAscRange(dataRange); if (!range) return Asc.c_oAscError.ID.DataRangeError; if (fullCheck) { if (Asc.c_oAscSelectionDialogType.Chart === dialogType) { // Проверка максимального дипазона var maxSeries = 255; var minStockVal = 4; var maxValues = 4096; var intervalValues, intervalSeries; if (isRows) { intervalSeries = range.r2 - range.r1 + 1; intervalValues = range.c2 - range.c1 + 1; } else { intervalSeries = range.c2 - range.c1 + 1; intervalValues = range.r2 - range.r1 + 1; } if (Asc.c_oAscChartTypeSettings.stock === chartType) { var chartSettings = new Asc.asc_ChartSettings(); chartSettings.putType(Asc.c_oAscChartTypeSettings.stock); chartSettings.putRange(dataRange); chartSettings.putInColumns(!isRows); var chartSeries = AscFormat.getChartSeries(sheetModel, chartSettings).series; if (minStockVal !== chartSeries.length || !chartSeries[0].Val || !chartSeries[0].Val.NumCache || chartSeries[0].Val.NumCache.length < minStockVal) return Asc.c_oAscError.ID.StockChartError; } else if (intervalSeries > maxSeries) return Asc.c_oAscError.ID.MaxDataSeriesError; else if(intervalValues > maxValues){ return Asc.c_oAscError.ID.MaxDataPointsError; } } else if (Asc.c_oAscSelectionDialogType.FormatTable === dialogType) { // ToDo убрать эту проверку, заменить на более грамотную после правки функции _searchFilters if (true === wb.getWorksheet().model.autoFilters.isRangeIntersectionTableOrFilter(range)) return Asc.c_oAscError.ID.AutoFilterDataRangeError; } else if (Asc.c_oAscSelectionDialogType.FormatTableChangeRange === dialogType) { // ToDo убрать эту проверку, заменить на более грамотную после правки функции _searchFilters var checkChangeRange = wb.getWorksheet().af_checkChangeRange(range); if (null !== checkChangeRange) return checkChangeRange; } } return Asc.c_oAscError.ID.No; }; parserHelper.prototype.setDigitSeparator = function (sep) { if (sep != FormulaSeparators.digitSeparatorDef) { FormulaSeparators.digitSeparator = sep; FormulaSeparators.arrayRowSeparator = ";"; FormulaSeparators.arrayColSeparator = "\\"; FormulaSeparators.functionArgumentSeparator = ";"; rx_number = new RegExp("^ *[+-]?\\d*(\\d|\\" + FormulaSeparators.digitSeparator + ")\\d*([eE][+-]?\\d+)?"); rx_Comma = new RegExp("^ *[" + FormulaSeparators.functionArgumentSeparator + "] *"); rx_arraySeparators = new RegExp("^ *[" + FormulaSeparators.arrayRowSeparator + "\\" + FormulaSeparators.arrayColSeparator + "] *"); } else { FormulaSeparators.arrayRowSeparator = FormulaSeparators.arrayRowSeparatorDef; FormulaSeparators.arrayColSeparator = FormulaSeparators.arrayColSeparatorDef; FormulaSeparators.digitSeparator = FormulaSeparators.digitSeparatorDef; FormulaSeparators.functionArgumentSeparator = FormulaSeparators.functionArgumentSeparatorDef; rx_number = new RegExp("^ *[+-]?\\d*(\\d|\\" + FormulaSeparators.digitSeparatorDef + ")\\d*([eE][+-]?\\d+)?"); rx_Comma = new RegExp("^ *[" + FormulaSeparators.functionArgumentSeparatorDef + "] *"); rx_arraySeparators = new RegExp("^ *[" + FormulaSeparators.arrayRowSeparatorDef + "\\" + FormulaSeparators.arrayColSeparatorDef + "] *"); } rx_table_local = build_rx_table_cur(); }; parserHelper.prototype.getColumnTypeByName = function (value) { var res; switch (value.toLowerCase()) { case "#" + cStrucTableLocalColumns['a'].toLocaleLowerCase(): case cStrucTableReservedWords.all.toLocaleLowerCase(): res = FormulaTablePartInfo.all; break; case "#" + cStrucTableLocalColumns['d'].toLocaleLowerCase(): case cStrucTableReservedWords.data.toLocaleLowerCase(): res = FormulaTablePartInfo.data; break; case "#" + cStrucTableLocalColumns['h'].toLocaleLowerCase(): case cStrucTableReservedWords.headers.toLocaleLowerCase(): res = FormulaTablePartInfo.headers; break; case "#" + cStrucTableLocalColumns['t'].toLocaleLowerCase(): case cStrucTableReservedWords.totals.toLocaleLowerCase(): res = FormulaTablePartInfo.totals; break; case "#" + cStrucTableLocalColumns['tr'].toLocaleLowerCase(): case cStrucTableReservedWords.at.toLocaleLowerCase(): case cStrucTableReservedWords.thisrow.toLocaleLowerCase(): res = FormulaTablePartInfo.thisRow; break; default: res = FormulaTablePartInfo.data; break; } return res; }; parserHelper.prototype.getColumnNameByType = function (value, local) { switch (value) { case FormulaTablePartInfo.all: { if (local) { return "#" + cStrucTableLocalColumns['a']; } return cStrucTableReservedWords.all; } case FormulaTablePartInfo.data: { if (local) { return "#" + cStrucTableLocalColumns['d']; } return cStrucTableReservedWords.data; } case FormulaTablePartInfo.headers: { if (local) { return "#" + cStrucTableLocalColumns['h']; } return cStrucTableReservedWords.headers; } case FormulaTablePartInfo.totals: { if (local) { return "#" + cStrucTableLocalColumns['t']; } return cStrucTableReservedWords.totals; } case FormulaTablePartInfo.thisRow: { if (local) { return "#" + cStrucTableLocalColumns['tr']; } return cStrucTableReservedWords.thisrow; } } return null; }; var parserHelp = new parserHelper(); var g_oHtmlCursor = new CHTMLCursor(); var kCurFormatPainterWord = 'de-formatpainter'; g_oHtmlCursor.register(kCurFormatPainterWord, "text_copy", ["text_copy", 2, 11], "pointer"); function asc_ajax(obj) { var url = "", type = "GET", async = true, data = null, dataType, error = null, success = null, httpRequest = null, contentType = "application/x-www-form-urlencoded", responseType = '', init = function (obj) { if (typeof obj.url !== 'undefined') { url = obj.url; } if (typeof obj.type !== 'undefined') { type = obj.type; } if (typeof obj.async !== 'undefined') { async = obj.async; } if (typeof obj.data !== 'undefined') { data = obj.data; } if (typeof obj.dataType !== 'undefined') { dataType = obj.dataType; } if (typeof obj.error !== 'undefined') { error = obj.error; } if (typeof obj.success !== 'undefined') { success = obj.success; } if (typeof (obj.contentType) !== 'undefined') { contentType = obj.contentType; } if (typeof (obj.responseType) !== 'undefined') { responseType = obj.responseType; } if (window.XMLHttpRequest) { // Mozilla, Safari, ... httpRequest = new XMLHttpRequest(); if (httpRequest.overrideMimeType && dataType) { httpRequest.overrideMimeType(dataType); } } else if (window.ActiveXObject) { // IE try { httpRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { } } } httpRequest.onreadystatechange = function () { respons(this); }; send(); }, send = function () { httpRequest.open(type, url, async); if (type === "POST") httpRequest.setRequestHeader("Content-Type", contentType); if (responseType) httpRequest.responseType = responseType; httpRequest.send(data); }, respons = function (httpRequest) { switch (httpRequest.readyState) { case 0: // The object has been created, but not initialized (the open method has not been called). break; case 1: // A request has been opened, but the send method has not been called. break; case 2: // The send method has been called. No data is available yet. break; case 3: // Some data has been received; however, neither responseText nor responseBody is available. break; case 4: if (httpRequest.status === 200 || httpRequest.status === 1223) { if (typeof success === "function") success(httpRequest); } else { if (typeof error === "function") error(httpRequest, httpRequest.statusText, httpRequest.status); } break; } }; init(obj); } function CIdCounter() { this.m_sUserId = null; this.m_bLoad = true; this.m_bRead = false; this.m_nIdCounterLoad = 0; // Счетчик Id для загрузки this.m_nIdCounterEdit = 0; // Счетчик Id для работы } CIdCounter.prototype.Get_NewId = function () { if (true === this.m_bLoad || null === this.m_sUserId) { this.m_nIdCounterLoad++; return ("" + this.m_nIdCounterLoad); } else { this.m_nIdCounterEdit++; return ("" + this.m_sUserId + "_" + this.m_nIdCounterEdit); } }; CIdCounter.prototype.Set_UserId = function (sUserId) { this.m_sUserId = sUserId; }; CIdCounter.prototype.Set_Load = function (bValue) { this.m_bLoad = bValue; }; CIdCounter.prototype.Clear = function () { this.m_sUserId = null; this.m_bLoad = true; this.m_nIdCounterLoad = 0; // Счетчик Id для загрузки this.m_nIdCounterEdit = 0; // Счетчик Id для работы }; function CLock() { this.Type = locktype_None; this.UserId = null; } CLock.prototype.Get_Type = function () { return this.Type; }; CLock.prototype.Set_Type = function (NewType, Redraw) { if (NewType === locktype_None) this.UserId = null; this.Type = NewType; var oApi = editor; var oLogicDocument = oApi.WordControl.m_oLogicDocument; if (false != Redraw && oLogicDocument) { // TODO: переделать перерисовку тут var oDrawingDocument = oLogicDocument.DrawingDocument; oDrawingDocument.ClearCachePages(); oDrawingDocument.FirePaint(); if(oApi.editorId === AscCommon.c_oEditorId.Presentation) { var oCurSlide = oLogicDocument.Slides[oLogicDocument.CurPage]; if(oCurSlide && oCurSlide.notesShape && oCurSlide.notesShape.Lock === this) { oDrawingDocument.Notes_OnRecalculate(oLogicDocument.CurPage, oCurSlide.NotesWidth, oCurSlide.getNotesHeight()); } } // TODO: Обновлять интерфейс нужно, потому что мы можем стоять изначально в незалоченном объекте, а тут он // может быть залочен. var oRevisionsStack = oApi.asc_GetRevisionsChangesStack(); var arrParagraphs = []; for (var nIndex = 0, nCount = oRevisionsStack.length; nIndex < nCount; ++nIndex) { arrParagraphs.push(oRevisionsStack[nIndex].get_Paragraph()) } var bNeedUpdate = false; for (var nIndex = 0, nCount = arrParagraphs.length; nIndex < nCount; ++nIndex) { if (arrParagraphs[nIndex].Get_Lock() === this) { bNeedUpdate = true; break; } } if (bNeedUpdate) { oLogicDocument.TrackRevisionsManager.Clear_VisibleChanges(); oLogicDocument.Document_UpdateInterfaceState(false); } } }; CLock.prototype.Check = function (Id) { if (this.Type === locktype_Mine) AscCommon.CollaborativeEditing.Add_CheckLock(false); else if (this.Type === locktype_Other || this.Type === locktype_Other2 || this.Type === locktype_Other3) AscCommon.CollaborativeEditing.Add_CheckLock(true); else AscCommon.CollaborativeEditing.Add_CheckLock(Id); }; CLock.prototype.Lock = function (bMine) { if (locktype_None === this.Type) { if (true === bMine) this.Type = locktype_Mine; else true.Type = locktype_Other; } }; CLock.prototype.Is_Locked = function () { if (locktype_None != this.Type && locktype_Mine != this.Type) return true; return false; }; CLock.prototype.Set_UserId = function (UserId) { this.UserId = UserId; }; CLock.prototype.Get_UserId = function () { return this.UserId; }; CLock.prototype.Have_Changes = function () { if (locktype_Other2 === this.Type || locktype_Other3 === this.Type) return true; return false; }; function CContentChanges() { this.m_aChanges = []; } CContentChanges.prototype.Add = function (Changes) { this.m_aChanges.push(Changes); }; CContentChanges.prototype.RemoveByHistoryItem = function (Item) { for (var nIndex = 0, nCount = this.m_aChanges.length; nIndex < nCount; ++nIndex) { if (this.m_aChanges[nIndex].m_pData === Item) { this.m_aChanges.splice(nIndex, 1); return; } } }; CContentChanges.prototype.Clear = function () { this.m_aChanges.length = 0; }; CContentChanges.prototype.Check = function (Type, Pos) { var CurPos = Pos; var Count = this.m_aChanges.length; for (var Index = 0; Index < Count; Index++) { var NewPos = this.m_aChanges[Index].Check_Changes(Type, CurPos); if (false === NewPos) return false; CurPos = NewPos; } return CurPos; }; CContentChanges.prototype.Refresh = function () { var Count = this.m_aChanges.length; for (var Index = 0; Index < Count; Index++) { this.m_aChanges[Index].Refresh_BinaryData(); } }; function CContentChangesElement(Type, Pos, Count, Data) { this.m_nType = Type; // Тип изменений (удаление или добавление) this.m_nCount = Count; // Количество добавленных/удаленных элементов this.m_pData = Data; // Связанные с данным изменением данные из истории // Разбиваем сложное действие на простейшие this.m_aPositions = this.Make_ArrayOfSimpleActions(Type, Pos, Count); } CContentChangesElement.prototype.Refresh_BinaryData = function () { var Binary_Writer = AscCommon.History.BinaryWriter; var Binary_Pos = Binary_Writer.GetCurPosition(); this.m_pData.Data.UseArray = true; this.m_pData.Data.PosArray = this.m_aPositions; Binary_Writer.WriteString2(this.m_pData.Class.Get_Id()); Binary_Writer.WriteLong(this.m_pData.Data.Type); this.m_pData.Data.WriteToBinary(Binary_Writer); var Binary_Len = Binary_Writer.GetCurPosition() - Binary_Pos; this.m_pData.Binary.Pos = Binary_Pos; this.m_pData.Binary.Len = Binary_Len; }; CContentChangesElement.prototype.Check_Changes = function (Type, Pos) { var CurPos = Pos; if (contentchanges_Add === Type) { for (var Index = 0; Index < this.m_nCount; Index++) { if (false !== this.m_aPositions[Index]) { if (CurPos <= this.m_aPositions[Index]) this.m_aPositions[Index]++; else { if (contentchanges_Add === this.m_nType) CurPos++; else //if ( contentchanges_Remove === this.m_nType ) CurPos--; } } } } else //if ( contentchanges_Remove === Type ) { for (var Index = 0; Index < this.m_nCount; Index++) { if (false !== this.m_aPositions[Index]) { if (CurPos < this.m_aPositions[Index]) this.m_aPositions[Index]--; else if (CurPos > this.m_aPositions[Index]) { if (contentchanges_Add === this.m_nType) CurPos++; else //if ( contentchanges_Remove === this.m_nType ) CurPos--; } else //if ( CurPos === this.m_aPositions[Index] ) { if (AscCommon.contentchanges_Remove === this.m_nType) { // Отмечаем, что действия совпали this.m_aPositions[Index] = false; return false; } else { CurPos++; } } } } } return CurPos; }; CContentChangesElement.prototype.Make_ArrayOfSimpleActions = function (Type, Pos, Count) { // Разбиваем действие на простейшие var Positions = []; if (contentchanges_Add === Type) { for (var Index = 0; Index < Count; Index++) Positions[Index] = Pos + Index; } else //if ( contentchanges_Remove === Type ) { for (var Index = 0; Index < Count; Index++) Positions[Index] = Pos; } return Positions; }; /** * Корректируем заданное значение в миллиметрах к ближайшему целому значению в твипсах * @param mm - заданное значение в миллиметрах * @returns {number} - получаем новое значение в миллиметрах, являющееся целым значением в твипсах */ function CorrectMMToTwips(mm) { return (((mm * 20 * 72 / 25.4) + 0.5) | 0) * 25.4 / 20 / 72; } /** * Получаем значение в миллиметрах заданного количества твипсов * @param nTwips[=1] - значение в твипсах * @returns {number} */ function TwipsToMM(nTwips) { return (null !== nTwips && undefined !== nTwips ? nTwips : 1) * 25.4 / 20 / 72; } /** * Конвертируем миллиметры в ближайшее целое значение твипсов * @param mm - значение в миллиметрах * @returns {number} */ function MMToTwips(mm) { return (((mm * 20 * 72 / 25.4) + 0.5) | 0); } /** * Конвертируем число из римской системы исчисления в обычное десятичное число * @param sRoman {string} * @returns {number} */ function RomanToInt(sRoman) { sRoman = sRoman.toUpperCase(); if (sRoman < 1) { return 0; } else if (!/^M*(?:D?C{0,3}|C[MD])(?:L?X{0,3}|X[CL])(?:V?I{0,3}|I[XV])$/i.test(sRoman)) { return NaN; } var chars = { "M" : 1000, "CM" : 900, "D" : 500, "CD" : 400, "C" : 100, "XC" : 90, "L" : 50, "XL" : 40, "X" : 10, "IX" : 9, "V" : 5, "IV" : 4, "I" : 1 }; var arabic = 0; sRoman.replace(/[MDLV]|C[MD]?|X[CL]?|I[XV]?/g, function(i) { arabic += chars[i]; }); return arabic; } /** * Конвертируем нумерацию {a b ... z aa bb ... zz aaa bbb ... zzz ...} в число * @param sLetters * @constructor */ function LatinNumberingToInt(sLetters) { sLetters = sLetters.toUpperCase(); if (sLetters.length <= 0) return NaN; var nLen = sLetters.length; var nFirstCharCode = sLetters.charCodeAt(0); if (65 > nFirstCharCode || nFirstCharCode > 90) return NaN; for (var nPos = 1; nPos < nLen; ++nPos) { if (sLetters.charCodeAt(nPos) !== nFirstCharCode) return NaN; } return (nFirstCharCode - 64) + 26 * (nLen - 1); } var g_oUserColorById = {}, g_oUserNextColorIndex = 0; function getUserColorById(userId, userName, isDark, isNumericValue) { if ((!userId || "" === userId) && (!userName || "" === userName)) return new CColor(0, 0, 0, 255); var res; if (g_oUserColorById.hasOwnProperty(userId)) { res = g_oUserColorById[userId]; } else if (g_oUserColorById.hasOwnProperty(userName)) { res = g_oUserColorById[userName]; } else { var nColor = Asc.c_oAscArrUserColors[g_oUserNextColorIndex % Asc.c_oAscArrUserColors.length]; ++g_oUserNextColorIndex; res = g_oUserColorById[userId || userName] = new CUserCacheColor(nColor); } if (!res) return new CColor(0, 0, 0, 255); var oColor = true === isDark ? res.Dark : res.Light; return true === isNumericValue ? ((oColor.r << 16) & 0xFF0000) | ((oColor.g << 8) & 0xFF00) | (oColor.b & 0xFF) : oColor; } function isNullOrEmptyString(str) { return (str == undefined) || (str == null) || (str == ""); } function unleakString(s) { //todo remove in the future //https://bugs.chromium.org/p/v8/issues/detail?id=2869 return (' ' + s).substr(1); } function CUserCacheColor(nColor) { this.Light = null; this.Dark = null; this.init(nColor); } CUserCacheColor.prototype.init = function (nColor) { var r = (nColor >> 16) & 0xFF; var g = (nColor >> 8) & 0xFF; var b = nColor & 0xFF; var Y = Math.max(0, Math.min(255, 0.299 * r + 0.587 * g + 0.114 * b)); var Cb = Math.max(0, Math.min(255, 128 - 0.168736 * r - 0.331264 * g + 0.5 * b)); var Cr = Math.max(0, Math.min(255, 128 + 0.5 * r - 0.418688 * g - 0.081312 * b)); if (Y > 63) Y = 63; var R = Math.max(0, Math.min(255, Y + 1.402 * (Cr - 128))) | 0; var G = Math.max(0, Math.min(255, Y - 0.34414 * (Cb - 128) - 0.71414 * (Cr - 128))) | 0; var B = Math.max(0, Math.min(255, Y + 1.772 * (Cb - 128))) | 0; this.Light = new CColor(r, g, b, 255); this.Dark = new CColor(R, G, B, 255); }; function loadScript(url, onSuccess, onError) { if (window["NATIVE_EDITOR_ENJINE"] === true || window["Native"] !== undefined) { onSuccess(); return; } if (window["AscDesktopEditor"] && window["local_load_add"]) { var _context = { "completeLoad": function () { return onSuccess(); } }; window["local_load_add"](_context, "sdk-all-from-min", url); var _ret_param = window["AscDesktopEditor"]["LoadJS"](url); if (2 != _ret_param) window["local_load_remove"](url); if (_ret_param == 1) { setTimeout(onSuccess, 1); return; } else if (_ret_param == 2) return; } var script = document.createElement('script'); script.type = 'text/javascript'; script.src = url; script.onload = onSuccess; script.onerror = onError; // Fire the loading document.head.appendChild(script); } function loadSdk(sdkName, onSuccess, onError) { if (window['AscNotLoadAllScript']) { onSuccess(); } else { loadScript('./../../../../sdkjs/' + sdkName + '/sdk-all.js', onSuccess, onError); } } function getAltGr(e) { var ctrlKey = e.metaKey || e.ctrlKey; var altKey = e.altKey; return (altKey && (AscBrowser.isMacOs ? !ctrlKey : ctrlKey)); } function getColorThemeByIndex(index) { var _c, scheme = null; var oColorScheme = AscCommon.g_oUserColorScheme; if (index >= oColorScheme.length) { return scheme; } scheme = new AscFormat.ClrScheme(); var tmp = oColorScheme[index]; scheme.name = tmp.name; _c = tmp.get_dk1(); scheme.colors[8] = AscFormat.CreateUniColorRGB(_c.r, _c.g, _c.b); _c = tmp.get_lt1(); scheme.colors[12] = AscFormat.CreateUniColorRGB(_c.r, _c.g, _c.b); _c = tmp.get_dk2(); scheme.colors[9] = AscFormat.CreateUniColorRGB(_c.r, _c.g, _c.b); _c = tmp.get_lt2(); scheme.colors[13] = AscFormat.CreateUniColorRGB(_c.r, _c.g, _c.b); _c = tmp.get_accent1(); scheme.colors[0] = AscFormat.CreateUniColorRGB(_c.r, _c.g, _c.b); _c = tmp.get_accent2(); scheme.colors[1] = AscFormat.CreateUniColorRGB(_c.r, _c.g, _c.b); _c = tmp.get_accent3(); scheme.colors[2] = AscFormat.CreateUniColorRGB(_c.r, _c.g, _c.b); _c = tmp.get_accent4(); scheme.colors[3] = AscFormat.CreateUniColorRGB(_c.r, _c.g, _c.b); _c = tmp.get_accent5(); scheme.colors[4] = AscFormat.CreateUniColorRGB(_c.r, _c.g, _c.b); _c = tmp.get_accent6(); scheme.colors[5] = AscFormat.CreateUniColorRGB(_c.r, _c.g, _c.b); _c = tmp.get_hlink(); scheme.colors[11] = AscFormat.CreateUniColorRGB(_c.r, _c.g, _c.b); _c = tmp.get_folHlink(); scheme.colors[10] = AscFormat.CreateUniColorRGB(_c.r, _c.g, _c.b); return scheme; } function isEastAsianScript(value) { // Bopomofo (3100–312F) // Bopomofo Extended (31A0–31BF) // CJK Unified Ideographs (4E00–9FEA) // CJK Unified Ideographs Extension A (3400–4DB5) // CJK Unified Ideographs Extension B (20000–2A6D6) // CJK Unified Ideographs Extension C (2A700–2B734) // CJK Unified Ideographs Extension D (2B740–2B81D) // CJK Unified Ideographs Extension E (2B820–2CEA1) // CJK Unified Ideographs Extension F (2CEB0–2EBE0) // CJK Compatibility Ideographs (F900–FAFF) // CJK Compatibility Ideographs Supplement (2F800–2FA1F) // Kangxi Radicals (2F00–2FDF) // CJK Radicals Supplement (2E80–2EFF) // CJK Strokes (31C0–31EF) // Ideographic Description Characters (2FF0–2FFF) // Hangul Jamo (1100–11FF) // Hangul Jamo Extended-A (A960–A97F) // Hangul Jamo Extended-B (D7B0–D7FF) // Hangul Compatibility Jamo (3130–318F) // Halfwidth and Fullwidth Forms (FF00–FFEF) // Hangul Syllables (AC00–D7AF) // Hiragana (3040–309F) // Kana Extended-A (1B100–1B12F) // Kana Supplement (1B000–1B0FF) // Kanbun (3190–319F) // Katakana (30A0–30FF) // Katakana Phonetic Extensions (31F0–31FF) // Lisu (A4D0–A4FF) // Miao (16F00–16F9F) // Nushu (1B170–1B2FF) // Tangut (17000–187EC) // Tangut Components (18800–18AFF) // Yi Syllables (A000–A48F) // Yi Radicals (A490–A4CF) return ((0x3100 <= value && value <= 0x312F) || (0x31A0 <= value && value <= 0x31BF) || (0x4E00 <= value && value <= 0x9FEA) || (0x3400 <= value && value <= 0x4DB5) || (0x20000 <= value && value <= 0x2A6D6) || (0x2A700 <= value && value <= 0x2B734) || (0x2B740 <= value && value <= 0x2B81D) || (0x2B820 <= value && value <= 0x2CEA1) || (0x2CEB0 <= value && value <= 0x2EBE0) || (0xF900 <= value && value <= 0xFAFF) || (0x2F800 <= value && value <= 0x2FA1F) || (0x2F00 <= value && value <= 0x2FDF) || (0x2E80 <= value && value <= 0x2EFF) || (0x31C0 <= value && value <= 0x31EF) || (0x2FF0 <= value && value <= 0x2FFF) || (0x1100 <= value && value <= 0x11FF) || (0xA960 <= value && value <= 0xA97F) || (0xD7B0 <= value && value <= 0xD7FF) || (0x3130 <= value && value <= 0x318F) || (0xFF00 <= value && value <= 0xFFEF) || (0xAC00 <= value && value <= 0xD7AF) || (0x3040 <= value && value <= 0x309F) || (0x1B100 <= value && value <= 0x1B12F) || (0x1B000 <= value && value <= 0x1B0FF) || (0x3190 <= value && value <= 0x319F) || (0x30A0 <= value && value <= 0x30FF) || (0x31F0 <= value && value <= 0x31FF) || (0xA4D0 <= value && value <= 0xA4FF) || (0x16F00 <= value && value <= 0x16F9F) || (0x1B170 <= value && value <= 0x1B2FF) || (0x17000 <= value && value <= 0x187EC) || (0x18800 <= value && value <= 0x18AFF) || (0xA000 <= value && value <= 0xA48F) || (0xA490 <= value && value <= 0xA4CF)); } var g_oIdCounter = new CIdCounter(); window["SetDoctRendererParams"] = function (_params) { if (_params["retina"] === true) AscBrowser.isRetina = true; }; window.Asc.g_signature_drawer = null; function CSignatureDrawer(id, api, w, h) { window.Asc.g_signature_drawer = this; this.Api = api; this.CanvasParent = document.getElementById(id); this.Canvas = document.createElement('canvas'); this.Canvas.style.position = "absolute"; this.Canvas.style.left = "0px"; this.Canvas.style.top = "0px"; var _width = parseInt(this.CanvasParent.offsetWidth); var _height = parseInt(this.CanvasParent.offsetHeight); if (0 == _width) _width = 300; if (0 == _height) _height = 80; this.Canvas.width = _width; this.Canvas.height = _height; this.CanvasParent.appendChild(this.Canvas); this.Image = ""; this.ImageHtml = null; this.Text = ""; this.Font = "Arial"; this.Size = 10; this.Italic = true; this.Bold = false; this.Width = w; this.Height = h; this.CanvasReturn = null; this.IsAsync = false; } CSignatureDrawer.prototype.getCanvas = function() { return (this.CanvasReturn == null) ? this.Canvas : this.CanvasReturn; }; CSignatureDrawer.prototype.getImages = function() { if (!this.isValid()) return ["", ""]; this.CanvasReturn = document.createElement("canvas"); this.CanvasReturn.width = (this.Width * AscCommon.g_dKoef_mm_to_pix); this.CanvasReturn.height = (this.Height * AscCommon.g_dKoef_mm_to_pix); if (this.Text != "") this.drawText(); else this.drawImage(); var _ret = []; _ret.push(this.CanvasReturn.toDataURL("image/png")); var _ctx = this.CanvasReturn.getContext("2d"); _ctx.strokeStyle = "#FF0000"; _ctx.lineWidth = 2; _ctx.moveTo(0, 0); _ctx.lineTo(this.CanvasReturn.width, this.CanvasReturn.height); _ctx.moveTo(0, this.CanvasReturn.height); _ctx.lineTo(this.CanvasReturn.width, 0); _ctx.stroke(); _ret.push(this.CanvasReturn.toDataURL("image/png")); this.CanvasReturn = null; return _ret; }; CSignatureDrawer.prototype.setText = function(text, font, size, isItalic, isBold) { if (this.IsAsync) { this.Text = text; return; } this.Image = ""; this.ImageHtml = null; this.Text = text; this.Font = font; this.Size = size; this.Italic = isItalic; this.Bold = isBold; this.IsAsync = true; AscFonts.FontPickerByCharacter.checkText(this.Text, this, function() { this.IsAsync = false; var loader = AscCommon.g_font_loader; var fontinfo = AscFonts.g_fontApplication.GetFontInfo(font); var isasync = loader.LoadFont(fontinfo, function() { window.Asc.g_signature_drawer.Api.sync_EndAction(Asc.c_oAscAsyncActionType.Information, Asc.c_oAscAsyncAction.LoadFont); window.Asc.g_signature_drawer.drawText(); }); if (false === isasync) { this.drawText(); } }); }; CSignatureDrawer.prototype.drawText = function() { var _oldTurn = this.Api.isViewMode; var _oldMarks = this.Api.ShowParaMarks; this.Api.isViewMode = true; this.Api.ShowParaMarks = false; AscFormat.ExecuteNoHistory(AscCommon.DrawTextByCenter, this, []); this.Api.isViewMode = _oldTurn; this.Api.ShowParaMarks = _oldMarks; }; CSignatureDrawer.prototype.drawImage = function() { var _canvas = this.getCanvas(); var w = _canvas.width; var h = _canvas.height; var _ctx = _canvas.getContext("2d"); _ctx.clearRect(0, 0, w, h); var im_w = this.ImageHtml.width; var im_h = this.ImageHtml.height; var _x = 0; var _y = 0; var _w = 0; var _h = 0; var koef1 = w / h; var koef2 = im_w / im_h; if (koef1 > koef2) { _h = h; _w = (koef2 * _h) >> 0; _y = 0; _x = (w - _w) >> 1; } else { _w = w; _h = (_w / koef2) >> 0; _x = 0; _y = (h - _h) >> 1; } _ctx.drawImage(this.ImageHtml, _x, _y, _w, _h); }; CSignatureDrawer.prototype.selectImage = CSignatureDrawer.prototype["selectImage"] = function() { this.Text = ""; window["AscDesktopEditor"]["OpenFilenameDialog"]("images", false, function(_file) { var file = _file; if (Array.isArray(file)) file = file[0]; if (file == "") return; var _drawer = window.Asc.g_signature_drawer; _drawer.Image = window["AscDesktopEditor"]["GetImageBase64"](file); _drawer.ImageHtml = new Image(); _drawer.ImageHtml.onload = function() { window.Asc.g_signature_drawer.drawImage(); }; _drawer.ImageHtml.src = _drawer.Image; _drawer = null; }); }; CSignatureDrawer.prototype.isValid = function() { return (this.Image != "" || this.Text != ""); }; CSignatureDrawer.prototype.destroy = function() { window.Asc.g_signature_drawer.CanvasParent.removeChild(this.Canvas); delete window.Asc.g_signature_drawer; }; function CSignatureImage() { this.ImageValidBase64 = ""; this.ImageInvalidBase64 = ""; this.ImageValid = null; this.ImageInvalid = null; this.Valid = false; this.Loading = 0; this.Remove = function() { this.ImageValidBase64 = ""; this.ImageInvalidBase64 = ""; this.ImageValid = null; this.ImageInvalid = null; this.Valid = false; this.Loading = 0; }; this.Register = function(_api, _guid) { if (_api.ImageLoader.map_image_index[_guid]) return; var _obj = { Image : (this.Valid ? this.ImageValid : this.ImageInvalid), Status : ImageLoadStatus.Complete, src : _guid }; _api.ImageLoader.map_image_index[_guid] = _obj; }; this.Unregister = function(api, _guid) { if (_api.ImageLoader.map_image_index[_guid]) delete _api.ImageLoader.map_image_index[_guid]; }; } ///////////////////////////////////////////////////////// /////////////// CRYPT //////////////////////// ///////////////////////////////////////////////////////// AscCommon.EncryptionMessageType = { Encrypt : 0, Decrypt : 1 }; function CEncryptionData() { this._init = false; this.arrData = []; this.arrImages = []; this.handleChangesCallback = null; this.isChangesHandled = false; this.cryptoMode = 0; // start crypto mode this.isChartEditor = false; this.isExistDecryptedChanges = false; // был ли хоть один запрос на расшифровку данных (были ли чужие изменения) this.cryptoPrefix = (window["AscDesktopEditor"] && window["AscDesktopEditor"]["GetEncryptedHeader"]) ? window["AscDesktopEditor"]["GetEncryptedHeader"]() : "ENCRYPTED;"; this.cryptoPrefixLen = this.cryptoPrefix.length; this.editorId = null; this.nextChangesTimeoutId = -1; this.isPasswordCryptoPresent = false; this.init = function() { this._init = true; }; this.isInit = function() { return this._init; }; this.isNeedCrypt = function() { if (!window.g_asc_plugins) return false; if (!window.g_asc_plugins.isRunnedEncryption()) return false; if (!window["AscDesktopEditor"]) return false; if (this.isChartEditor) return false; if (2 == this.cryptoMode) return true; if (0 === window["AscDesktopEditor"]["CryptoMode"]) return false; return true; }; this.isCryptoImages = function() { return (this.isNeedCrypt() && this.isPasswordCryptoPresent); }; this.addCryproImagesFromDialog = function(callback) { var _this = this; window["AscDesktopEditor"]["OpenFilenameDialog"]("images", true, function(files) { var _files = []; var _options = { isImageCrypt: true, callback: callback, ext : [] }; for (var i = 0; i < files.length; i++) { _files.push(window["AscDesktopEditor"]["GetImageBase64"](files[i], true)); _options.ext.push(AscCommon.GetFileExtension(files[i])); } _this.sendChanges(this, _files, AscCommon.EncryptionMessageType.Encrypt, _options); }); }; this.addCryproImagesFromUrls = function(urls, callback) { var _editor = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor; _editor.sync_StartAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.LoadImage); var _this = this; window["AscDesktopEditor"]["DownloadFiles"](urls, [], function(files) { _editor.sync_EndAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.LoadImage); _editor.sync_StartAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.UploadImage); var _files = []; var _options = { isImageCrypt: true, isUrls: true, callback: callback, ext : [], api: _editor }; for (var elem in files) { _files.push(window["AscDesktopEditor"]["GetImageBase64"](files[elem], true)); _options.ext.push(window["AscDesktopEditor"]["GetImageFormat"](files[elem])); window["AscDesktopEditor"]["RemoveFile"](files[elem]); } _this.sendChanges(this, _files, AscCommon.EncryptionMessageType.Encrypt, _options); }); }; this.onDecodeError = function() { var _editor = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor; _editor.sendEvent("asc_onError", Asc.c_oAscError.ID.DataEncrypted, Asc.c_oAscError.Level.Critical); }; this.checkEditorId = function() { if (null == this.editorId) { var _editor = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor; this.editorId = _editor.editorId; } }; this.decryptImage = function(src, img, data) { this.sendChanges(this, [data], AscCommon.EncryptionMessageType.Decrypt, { isImageDecrypt: true, src: src, img : img }); }; this.nextChanges = function() { this.nextChangesTimeoutId = setTimeout(function() { AscCommon.EncryptionWorker.sendChanges(undefined, undefined); this.nextChangesTimeoutId = -1; }, 10); }; this.sendChanges = function(sender, data, type, options) { if (!this.isNeedCrypt()) { if (AscCommon.EncryptionMessageType.Encrypt == type) { sender._send(data, true); } else if (AscCommon.EncryptionMessageType.Decrypt == type) { if (this.isExistEncryptedChanges(data["changes"])) { this.onDecodeError(); return; } sender._onSaveChanges(data, true); } return; } if (undefined !== type) this.arrData.push({ sender: sender, type: type, data: data, options: options }); if (this.arrData.length == 0) return; if (undefined !== type && ((1 != this.arrData.length) || !this.isChangesHandled)) return; // вызовется на коллбэке if (undefined !== type && -1 != this.nextChangesTimeoutId) { // вызвали send, когда данные на receiveChanges были удалены - и запустился nextChanges // но так как он сделан на таймере - то просто он не успел отработать. // тут запускаем единственное изменение - это и есть как бы next. // убиваем таймер clearTimeout(this.nextChangesTimeoutId); this.nextChangesTimeoutId = -1; } if (AscCommon.EncryptionMessageType.Encrypt == this.arrData[0].type) { //console.log("encrypt: " + data["changes"]); if (this.arrData[0].options && this.arrData[0].options.isImageCrypt) window.g_asc_plugins.sendToEncryption({ "type" : "encryptData", "data" : this.arrData[0].data }); else window.g_asc_plugins.sendToEncryption({ "type" : "encryptData", "data" : JSON.parse(this.arrData[0].data["changes"]) }); } else if (AscCommon.EncryptionMessageType.Decrypt == this.arrData[0].type) { //console.log("decrypt: " + data["changes"]); if (this.arrData[0].options && this.arrData[0].options.isImageDecrypt) window.g_asc_plugins.sendToEncryption({ "type" : "decryptData", "data" : this.arrData[0].data }); else window.g_asc_plugins.sendToEncryption({ "type" : "decryptData", "data" : this.arrData[0].data["changes"] }); } }; this.receiveChanges = function(obj) { var data = obj["data"]; var check = obj["check"]; if (!check) { this.onDecodeError(); return; } if (this.handleChangesCallback) { this.isExistDecryptedChanges = true; this.checkEditorId(); if (this.editorId == AscCommon.c_oEditorId.Spreadsheet) { for (var i = data.length - 1; i >= 0; i--) { this.handleChangesCallback.changesBase[i] = data[i]; } } else { for (var i = data.length - 1; i >= 0; i--) { this.handleChangesCallback.changesBase[i].m_pData = data[i]; } } this.isChangesHandled = true; this.handleChangesCallback.callback.call(this.handleChangesCallback.sender); this.handleChangesCallback = null; this.nextChanges(); return; } var obj = this.arrData[0]; this.arrData.splice(0, 1); if (AscCommon.EncryptionMessageType.Encrypt == obj.type) { if (obj.options && obj.options.isImageCrypt) { for (var i = 0; i < data.length; i++) { if (this.cryptoPrefix == data[i].substr(0, this.cryptoPrefixLen)) { // дописываем extension data[i] = this.cryptoPrefix + obj.options.ext[i] + ";" + data[i].substr(this.cryptoPrefixLen); } } if (!obj.options.isUrls) obj.options.callback(Asc.c_oAscError.ID.No, data); else { AscCommon.UploadImageUrls(data, obj.options.api.documentId, obj.options.api.documentUserId, obj.options.api.CoAuthoringApi.get_jwt(), function(urls) { obj.options.api.sync_EndAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.UploadImage); obj.options.callback(urls); }); } } else { obj.data["changes"] = JSON.stringify(data); obj.sender._send(obj.data, true); } } else if (AscCommon.EncryptionMessageType.Decrypt == obj.type) { if (obj.options && obj.options.isImageDecrypt) { window["AscDesktopEditor"]["ResaveFile"](obj.options.src, data[0]); obj.options.img["onload_crypto"](obj.options.src); } else { this.isExistDecryptedChanges = true; obj.data["changes"] = data; obj.sender._onSaveChanges(obj.data, true); } } this.nextChanges(); }; this.isExistEncryptedChanges = function(_array) { if (0 == _array.length) return false; this.checkEditorId(); var isChangesMode = (_array[0]["change"]) ? true : false; var _prefix = ""; var _checkPrefixLen = this.cryptoPrefixLen + 1; // "ENCRYPTED; && ""ENCRYPTED; if (isChangesMode) { for (var i = _array.length - 1; i >= 0; i--) { if (_array[i]["change"].length > _checkPrefixLen) { _prefix = _array[i]["change"].substr(0, _checkPrefixLen); if (-1 != _prefix.indexOf(this.cryptoPrefix)) { isCrypted = true; break; } } } return isCrypted; } var isCrypted = false; if (this.editorId == AscCommon.c_oEditorId.Spreadsheet) { for (var i = _array.length - 1; i >= 0; i--) { if (_array[i].length > _checkPrefixLen) { _prefix = _array[i].substr(0, _checkPrefixLen); if (-1 != _prefix.indexOf(this.cryptoPrefix)) { isCrypted = true; break; } } } } else { for (var i = _array.length - 1; i >= 0; i--) { if (_array[i].m_pData.length > _checkPrefixLen) { _prefix = _array[i].m_pData.substr(0, _checkPrefixLen); if (-1 != _prefix.indexOf(this.cryptoPrefix)) { isCrypted = true; break; } } } } return isCrypted; }; this.handleChanges = function(_array, _sender, _callback) { if (0 == _array.length || !this.isNeedCrypt()) { if (this.isExistEncryptedChanges(_array)) { this.onDecodeError(); return; } this.isChangesHandled = true; _callback.call(_sender); return; } this.handleChangesCallback = { changesBase : _array, changes : [], sender : _sender, callback : _callback }; this.checkEditorId(); if (this.editorId == AscCommon.c_oEditorId.Spreadsheet) { for (var i = _array.length - 1; i >= 0; i--) { this.handleChangesCallback.changes[i] = _array[i]; } } else { for (var i = _array.length - 1; i >= 0; i--) { this.handleChangesCallback.changes[i] = _array[i].m_pData; } } window.g_asc_plugins.sendToEncryption({ "type" : "decryptData", "data" : this.handleChangesCallback.changes }); }; this.asc_setAdvancedOptions = function(api, idOption, option) { if (window.isNativeOpenPassword) { window["AscDesktopEditor"]["NativeViewerOpen"](option.asc_getPassword()); return; } if (window.isCloudCryptoDownloadAs) return false; if (!this.isNeedCrypt()) return false; window.checkPasswordFromPlugin = true; if (window["Asc"].c_oAscAdvancedOptionsID.TXT === idOption) { var _param = ("" + option.asc_getCodePage() + ""); window["AscDesktopEditor"]["SetAdvancedOptions"](_param); } else if (window["Asc"].c_oAscAdvancedOptionsID.CSV === idOption) { var delimiter = option.asc_getDelimiter(); var delimiterChar = option.asc_getDelimiterChar(); var _param = ""; _param += ("" + option.asc_getCodePage() + ""); if (null != delimiter) { _param += ("" + delimiter + ""); } if (null != delimiterChar) { _param += ("" + delimiterChar + ""); } window["AscDesktopEditor"]["SetAdvancedOptions"](_param); } else if (window["Asc"].c_oAscAdvancedOptionsID.DRM === idOption) { var _param = ("" + AscCommon.CopyPasteCorrectString(option.asc_getPassword()) + ""); api.currentPassword = option.asc_getPassword(); window["AscDesktopEditor"]["SetAdvancedOptions"](_param); } return true; }; } AscCommon.EncryptionWorker = new CEncryptionData(); /** @constructor */ function CTranslateManager() { this.mapTranslate = {}; } CTranslateManager.prototype.init = function(map) { this.mapTranslate = map || {}; }; CTranslateManager.prototype.getValue = function(key) { return this.mapTranslate.hasOwnProperty(key) ? this.mapTranslate[key] : key; }; //------------------------------------------------------------fill polyfill-------------------------------------------- if (!Array.prototype.fill) { Object.defineProperty(Array.prototype, 'fill', { value: function(value) { // Steps 1-2. if (this == null) { throw new TypeError('this is null or not defined'); } var O = Object(this); // Steps 3-5. var len = O.length >>> 0; // Steps 6-7. var start = arguments[1]; var relativeStart = start >> 0; // Step 8. var k = relativeStart < 0 ? Math.max(len + relativeStart, 0) : Math.min(relativeStart, len); // Steps 9-10. var end = arguments[2]; var relativeEnd = end === undefined ? len : end >> 0; // Step 11. var final = relativeEnd < 0 ? Math.max(len + relativeEnd, 0) : Math.min(relativeEnd, len); // Step 12. while (k < final) { O[k] = value; k++; } // Step 13. return O; } }); } if (typeof Int8Array !== 'undefined' && !Int8Array.prototype.fill) { Int8Array.prototype.fill = Array.prototype.fill; } if (typeof Uint8Array !== 'undefined' && !Uint8Array.prototype.fill) { Uint8Array.prototype.fill = Array.prototype.fill; } if (typeof Uint8ClampedArray !== 'undefined' && !Uint8ClampedArray.prototype.fill) { Uint8ClampedArray.prototype.fill = Array.prototype.fill; } if (typeof Int16Array !== 'undefined' && !Int16Array.prototype.fill) { Int16Array.prototype.fill = Array.prototype.fill; } if (typeof Uint16Array !== 'undefined' && !Uint16Array.prototype.fill) { Uint16Array.prototype.fill = Array.prototype.fill; } if (typeof Int32Array !== 'undefined' && !Int32Array.prototype.fill) { Int32Array.prototype.fill = Array.prototype.fill; } if (typeof Uint32Array !== 'undefined' && !Uint32Array.prototype.fill) { Uint32Array.prototype.fill = Array.prototype.fill; } if (typeof Float32Array !== 'undefined' && !Float32Array.prototype.fill) { Float32Array.prototype.fill = Array.prototype.fill; } if (typeof Float64Array !== 'undefined' && !Float64Array.prototype.fill) { Float64Array.prototype.fill = Array.prototype.fill; } //------------------------------------------------------------export--------------------------------------------------- window['AscCommon'] = window['AscCommon'] || {}; window["AscCommon"].getSockJs = getSockJs; window["AscCommon"].getJSZipUtils = getJSZipUtils; window["AscCommon"].getJSZip = getJSZip; window["AscCommon"].getBaseUrl = getBaseUrl; window["AscCommon"].getEncodingParams = getEncodingParams; window["AscCommon"].getEncodingByBOM = getEncodingByBOM; window["AscCommon"].saveWithParts = saveWithParts; window["AscCommon"].loadFileContent = loadFileContent; window["AscCommon"].getImageFromChanges = getImageFromChanges; window["AscCommon"].openFileCommand = openFileCommand; window["AscCommon"].sendCommand = sendCommand; window["AscCommon"].sendSaveFile = sendSaveFile; window["AscCommon"].mapAscServerErrorToAscError = mapAscServerErrorToAscError; window["AscCommon"].joinUrls = joinUrls; window["AscCommon"].getFullImageSrc2 = getFullImageSrc2; window["AscCommon"].fSortAscending = fSortAscending; window["AscCommon"].fSortDescending = fSortDescending; window["AscCommon"].isLeadingSurrogateChar = isLeadingSurrogateChar; window["AscCommon"].decodeSurrogateChar = decodeSurrogateChar; window["AscCommon"].encodeSurrogateChar = encodeSurrogateChar; window["AscCommon"].convertUnicodeToUTF16 = convertUnicodeToUTF16; window["AscCommon"].convertUTF16toUnicode = convertUTF16toUnicode; window["AscCommon"].build_local_rx = build_local_rx; window["AscCommon"].GetFileName = GetFileName; window["AscCommon"].GetFileExtension = GetFileExtension; window["AscCommon"].changeFileExtention = changeFileExtention; window["AscCommon"].getExtentionByFormat = getExtentionByFormat; window["AscCommon"].InitOnMessage = InitOnMessage; window["AscCommon"].ShowImageFileDialog = ShowImageFileDialog; window["AscCommon"].InitDragAndDrop = InitDragAndDrop; window["AscCommon"].UploadImageFiles = UploadImageFiles; window["AscCommon"].UploadImageUrls = UploadImageUrls; window["AscCommon"].CanDropFiles = CanDropFiles; window["AscCommon"].getUrlType = getUrlType; window["AscCommon"].prepareUrl = prepareUrl; window["AscCommon"].getUserColorById = getUserColorById; window["AscCommon"].isNullOrEmptyString = isNullOrEmptyString; window["AscCommon"].unleakString = unleakString; window["AscCommon"].initStreamFromResponse = initStreamFromResponse; window["AscCommon"].DocumentUrls = DocumentUrls; window["AscCommon"].CLock = CLock; window["AscCommon"].CContentChanges = CContentChanges; window["AscCommon"].CContentChangesElement = CContentChangesElement; window["AscCommon"].CorrectMMToTwips = CorrectMMToTwips; window["AscCommon"].TwipsToMM = TwipsToMM; window["AscCommon"].MMToTwips = MMToTwips; window["AscCommon"].RomanToInt = RomanToInt; window["AscCommon"].LatinNumberingToInt = LatinNumberingToInt; window["AscCommon"].loadSdk = loadSdk; window["AscCommon"].getAltGr = getAltGr; window["AscCommon"].getColorThemeByIndex = getColorThemeByIndex; window["AscCommon"].isEastAsianScript = isEastAsianScript; window["AscCommon"].JSZipWrapper = JSZipWrapper; window["AscCommon"].g_oDocumentUrls = g_oDocumentUrls; window["AscCommon"].FormulaTablePartInfo = FormulaTablePartInfo; window["AscCommon"].cBoolLocal = cBoolLocal; window["AscCommon"].cErrorOrigin = cErrorOrigin; window["AscCommon"].cErrorLocal = cErrorLocal; window["AscCommon"].FormulaSeparators = FormulaSeparators; window["AscCommon"].rx_space_g = rx_space_g; window["AscCommon"].rx_space = rx_space; window["AscCommon"].rx_defName = rx_defName; window["AscCommon"].kCurFormatPainterWord = kCurFormatPainterWord; window["AscCommon"].parserHelp = parserHelp; window["AscCommon"].g_oIdCounter = g_oIdCounter; window["AscCommon"].g_oHtmlCursor = g_oHtmlCursor; window["AscCommon"].CSignatureDrawer = window["AscCommon"]["CSignatureDrawer"] = CSignatureDrawer; var prot = CSignatureDrawer.prototype; prot["getImages"] = prot.getImages; prot["setText"] = prot.setText; prot["selectImage"] = prot.selectImage; prot["isValid"] = prot.isValid; prot["destroy"] = prot.destroy; window["AscCommon"].translateManager = new CTranslateManager(); })(window); window["asc_initAdvancedOptions"] = function(_code, _file_hash, _docInfo) { if (window.isNativeOpenPassword) { return window["NativeFileOpen_error"](window.isNativeOpenPassword, _file_hash, _docInfo); } var _editor = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor; if (_code == 90 || _code == 91) { if (window["AscDesktopEditor"] && (0 !== window["AscDesktopEditor"]["CryptoMode"]) && !_editor.isLoadFullApi) { // ждем инициализации _editor.asc_initAdvancedOptions_params = []; _editor.asc_initAdvancedOptions_params.push(_code); _editor.asc_initAdvancedOptions_params.push(_file_hash); _editor.asc_initAdvancedOptions_params.push(_docInfo); return; } if (AscCommon.EncryptionWorker.isNeedCrypt() && !window.checkPasswordFromPlugin) { window.checkPasswordFromPlugin = true; window.g_asc_plugins.sendToEncryption({ "type": "getPasswordByFile", "hash": _file_hash, "docinfo": _docInfo }); return; } } window.checkPasswordFromPlugin = false; _editor._onNeedParams(undefined, (_code == 90 || _code == 91) ? true : undefined); }; window.openFileCryptCallback = function(_binary) { var _editor = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor; if (!_editor.isLoadFullApi) { _editor.openFileCryptBinary = _binary; return; } if (_binary == null) { _editor.sendEvent("asc_onError", c_oAscError.ID.ConvertationOpenError, c_oAscError.Level.Critical); return; } if ("DOCY" == AscCommon.c_oSerFormat.Signature) { var isEditor = true; if (_binary.length > 4) { var _signature = (String.fromCharCode(_binary[0]) + String.fromCharCode(_binary[1]) + String.fromCharCode(_binary[2]) + String.fromCharCode(_binary[3])); if (_signature != AscCommon.c_oSerFormat.Signature) isEditor = false; } if (!isEditor) _editor.OpenDocument("", _binary); else _editor.OpenDocument2("", _binary); } else if ("PPTY" == AscCommon.c_oSerFormat.Signature) { _editor.OpenDocument2("", _binary); } else { _editor.openDocument(_binary); } _editor.sendEvent("asc_onDocumentPassword", ("" != _editor.currentPassword) ? true : false); }; window["asc_IsNeedBuildCryptedFile"] = function() { if (!window["AscDesktopEditor"]) return false; var _api = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor; var _returnValue = false; var _users = null; if (_api.CoAuthoringApi && _api.CoAuthoringApi._CoAuthoringApi && _api.CoAuthoringApi._CoAuthoringApi._participants) _users = _api.CoAuthoringApi._CoAuthoringApi._participants; var _usersCount = 0; for (var _user in _users) _usersCount++; var isOne = (1 >= _usersCount) ? true : false; if (!isOne) { //console.log("asc_IsNeedBuildCryptedFile: no one"); _returnValue = false; } else if (null != AscCommon.History.SavedIndex && -1 != AscCommon.History.SavedIndex) { //console.log("asc_IsNeedBuildCryptedFile: one1"); _returnValue = true; } else { //console.log("asc_IsNeedBuildCryptedFile: one2"); if (_api.editorId == AscCommon.c_oEditorId.Spreadsheet) { if (AscCommon.EncryptionWorker.isExistDecryptedChanges) _returnValue = true; } else { if (0 != AscCommon.CollaborativeEditing.m_aAllChanges.length) _returnValue = true; } } window["AscDesktopEditor"]["execCommand"]("encrypt:isneedbuild", "" + _returnValue); return _returnValue; }; window["UpdateSystemPlugins"] = function() { var _plugins = JSON.parse(window["AscDesktopEditor"]["GetInstallPlugins"]()); _plugins[0]["url"] = _plugins[0]["url"].replace(" ", "%20"); _plugins[1]["url"] = _plugins[1]["url"].replace(" ", "%20"); for (var k = 0; k < 2; k++) { var _pluginsCur = _plugins[k]; var _len = _pluginsCur["pluginsData"].length; for (var i = 0; i < _len; i++) { _pluginsCur["pluginsData"][i]["baseUrl"] = _pluginsCur["url"] + _pluginsCur["pluginsData"][i]["guid"].substring(4) + "/"; if (!window["AscDesktopEditor"]["IsLocalFile"]()) { _pluginsCur["pluginsData"][i]["baseUrl"] = "ascdesktop://plugin_content/" + _pluginsCur["pluginsData"][i]["baseUrl"]; } } } var _array = []; for (var k = 0; k < 2; k++) { var _pluginsCur = _plugins[k]; var _len = _pluginsCur["pluginsData"].length; for (var i = 0; i < _len; i++) { var _plugin = _pluginsCur["pluginsData"][i]; for (var j = 0; j < _plugin["variations"].length; j++) { var _variation = _plugin["variations"][j]; if (_variation["initDataType"] == "desktop") { if (_variation["initData"] == "encryption") { var _mode = _variation["cryptoMode"]; if (!_mode) _mode = "1"; AscCommon.EncryptionWorker.cryptoMode = parseInt(_mode); _array.push(_plugin); break; } _array.push(_plugin); break; } } } } var _arraySystem = []; for (var i = 0; i < _array.length; i++) { var plugin = new Asc.CPlugin(); plugin["deserialize"](_array[i]); _arraySystem.push(plugin); } window.g_asc_plugins.registerSystem("", _arraySystem); window.g_asc_plugins.runAllSystem(); }; window["buildCryptoFile_Start"] = function() { var _editor = window.Asc.editor ? window.Asc.editor : window.editor; _editor.sync_StartAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.Save); window.g_asc_plugins.sendToEncryption({ "type" : "generatePassword" }); }; window["buildCryptoFile_End"] = function(url, error, hash, password) { var _editor = window.Asc.editor ? window.Asc.editor : window.editor; _editor.sync_EndAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.Save); if (0 != error) { _editor.sendEvent("asc_onError", Asc.c_oAscError.ID.ConvertationSaveError, Asc.c_oAscError.Level.NoCritical); return; } // send password _editor._callbackPluginEndAction = function() { this._callbackPluginEndAction = null; _editor.sync_StartAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.Save); // file upload var xhr = new XMLHttpRequest(); xhr.open('GET', "ascdesktop://fonts/" + url, true); xhr.responseType = 'arraybuffer'; if (xhr.overrideMimeType) xhr.overrideMimeType('text/plain; charset=x-user-defined'); else xhr.setRequestHeader('Accept-Charset', 'x-user-defined'); xhr.onload = function() { if (this.status != 200) { // error return; } var fileData = new Uint8Array(this.response); var ext = ".docx"; switch (_editor.editorId) { case AscCommon.c_oEditorId.Presentation: ext = ".pptx"; break; case AscCommon.c_oEditorId.Spreadsheet: ext = ".xlsx"; break; default: break; } AscCommon.sendSaveFile(_editor.documentId, _editor.documentUserId, "output" + ext, _editor.asc_getSessionToken(), fileData, function(err) { _editor.sync_EndAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.Save); _editor.sendEvent("asc_onError", Asc.c_oAscError.ID.ConvertationOpenError, Asc.c_oAscError.Level.Critical); window["AscDesktopEditor"]["buildCryptedEnd"](false); }, function(httpRequest) { //console.log(httpRequest.responseText); try { var data = { "accounts": httpRequest.responseText ? JSON.parse(httpRequest.responseText) : undefined, "hash": hash, "password" : password, "type": "share" }; window["AscDesktopEditor"]["sendSystemMessage"](data); window["AscDesktopEditor"]["CallInAllWindows"]("function(){ if (window.DesktopUpdateFile) { window.DesktopUpdateFile(undefined); } }"); _editor.sync_EndAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.Save); setTimeout(function() { window["AscDesktopEditor"]["buildCryptedEnd"](true); }, 1000); } catch (err) { } }); }; xhr.send(null); }; window.g_asc_plugins.sendToEncryption({"type": "setPasswordByFile", "hash": hash, "password": password}); }; window["NativeFileOpen_error"] = function(error, _file_hash, _docInfo) { var _api = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor; if ("password" == error) { window.isNativeOpenPassword = error; if (window["AscDesktopEditor"] && (0 !== window["AscDesktopEditor"]["CryptoMode"]) && !_api.isLoadFullApi) { // ждем инициализации _api.asc_initAdvancedOptions_params = []; _api.asc_initAdvancedOptions_params.push(90); _api.asc_initAdvancedOptions_params.push(_file_hash); _api.asc_initAdvancedOptions_params.push(_docInfo); return; } if (AscCommon.EncryptionWorker.isNeedCrypt() && !window.checkPasswordFromPlugin) { window.checkPasswordFromPlugin = true; window.g_asc_plugins.sendToEncryption({ "type": "getPasswordByFile", "hash": _file_hash, "docinfo": _docInfo }); return; } window.checkPasswordFromPlugin = false; _api._onNeedParams(undefined, true); } else if ("error" == error) { _api.sendEvent("asc_onError", c_oAscError.ID.ConvertationOpenError, c_oAscError.Level.Critical); return; } }; window["CryptoDownloadAsEnd"] = function() { var _editor = window.Asc.editor ? window.Asc.editor : window.editor; _editor.sync_EndAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.DownloadAs); window.isCloudCryptoDownloadAs = undefined; }; window["AscDesktopEditor_Save"] = function() { var _editor = window.Asc.editor ? window.Asc.editor : window.editor; if (!_editor.asc_Save(false)) { // сейва не будет. сами посылаем callback window["AscDesktopEditor"]["OnSave"](); } }; /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; /** * User: Ilja.Kirillov * Date: 27.10.2016 * Time: 12:11 */ (/** * @param {Window} window * @param {undefined} undefined */ function(window, undefined) { function GetHistoryPointStringDescription(nDescription) { var sString = "Unknown"; switch (nDescription) { case AscDFH.historydescription_Cut : sString = "Cut"; break; case AscDFH.historydescription_PasteButtonIE : sString = "PasteButtonIE"; break; case AscDFH.historydescription_PasteButtonNotIE : sString = "PasteButtonNotIE"; break; case AscDFH.historydescription_ChartDrawingObjects : sString = "ChartDrawingObjects"; break; case AscDFH.historydescription_CommonControllerCheckChartText : sString = "CommonControllerCheckChartText"; break; case AscDFH.historydescription_CommonControllerUnGroup : sString = "CommonControllerUnGroup"; break; case AscDFH.historydescription_CommonControllerCheckSelected : sString = "CommonControllerCheckSelected"; break; case AscDFH.historydescription_CommonControllerSetGraphicObject : sString = "CommonControllerSetGraphicObject"; break; case AscDFH.historydescription_CommonStatesAddNewShape : sString = "CommonStatesAddNewShape"; break; case AscDFH.historydescription_CommonStatesRotate : sString = "CommonStatesRotate"; break; case AscDFH.historydescription_PasteNative : sString = "PasteNative"; break; case AscDFH.historydescription_Document_GroupUnGroup : sString = "Document_GroupUnGroup"; break; case AscDFH.historydescription_Document_SetDefaultLanguage : sString = "Document_SetDefaultLanguage"; break; case AscDFH.historydescription_Document_ChangeColorScheme : sString = "Document_ChangeColorScheme"; break; case AscDFH.historydescription_Document_AddChart : sString = "Document_AddChart"; break; case AscDFH.historydescription_Document_EditChart : sString = "Document_EditChart"; break; case AscDFH.historydescription_Document_DragText : sString = "Document_DragText"; break; case AscDFH.historydescription_Document_DocumentContentExtendToPos : sString = "Document_DocumentContentExtendToPos"; break; case AscDFH.historydescription_Document_AddHeader : sString = "Document_AddHeader"; break; case AscDFH.historydescription_Document_AddFooter : sString = "Document_AddFooter"; break; case AscDFH.historydescription_Document_ParagraphExtendToPos : sString = "Document_ParagraphExtendToPos"; break; case AscDFH.historydescription_Document_ParagraphChangeFrame : sString = "Document_ParagraphChangeFrame"; break; case AscDFH.historydescription_Document_ReplaceAll : sString = "Document_ReplaceAll"; break; case AscDFH.historydescription_Document_ReplaceSingle : sString = "Document_ReplaceSingle"; break; case AscDFH.historydescription_Document_TableAddNewRowByTab : sString = "Document_TableAddNewRowByTab"; break; case AscDFH.historydescription_Document_AddNewShape : sString = "Document_AddNewShape"; break; case AscDFH.historydescription_Document_EditWrapPolygon : sString = "Document_EditWrapPolygon"; break; case AscDFH.historydescription_Document_MoveInlineObject : sString = "Document_MoveInlineObject"; break; case AscDFH.historydescription_Document_CopyAndMoveInlineObject : sString = "Document_CopyAndMoveInlineObject"; break; case AscDFH.historydescription_Document_RotateInlineDrawing : sString = "Document_RotateInlineDrawing"; break; case AscDFH.historydescription_Document_RotateFlowDrawingCtrl : sString = "Document_RotateFlowDrawingCtrl"; break; case AscDFH.historydescription_Document_RotateFlowDrawingNoCtrl : sString = "Document_RotateFlowDrawingNoCtrl"; break; case AscDFH.historydescription_Document_MoveInGroup : sString = "Document_MoveInGroup"; break; case AscDFH.historydescription_Document_ChangeWrapContour : sString = "Document_ChangeWrapContour"; break; case AscDFH.historydescription_Document_ChangeWrapContourAddPoint : sString = "Document_ChangeWrapContourAddPoint"; break; case AscDFH.historydescription_Document_GrObjectsBringToFront : sString = "Document_GrObjectsBringToFront"; break; case AscDFH.historydescription_Document_GrObjectsBringForwardGroup : sString = "Document_GrObjectsBringForwardGroup"; break; case AscDFH.historydescription_Document_GrObjectsBringForward : sString = "Document_GrObjectsBringForward"; break; case AscDFH.historydescription_Document_GrObjectsSendToBackGroup : sString = "Document_GrObjectsSendToBackGroup"; break; case AscDFH.historydescription_Document_GrObjectsSendToBack : sString = "Document_GrObjectsSendToBack"; break; case AscDFH.historydescription_Document_GrObjectsBringBackwardGroup : sString = "Document_GrObjectsBringBackwardGroup"; break; case AscDFH.historydescription_Document_GrObjectsBringBackward : sString = "Document_GrObjectsBringBackward"; break; case AscDFH.historydescription_Document_GrObjectsChangeWrapPolygon : sString = "Document_GrObjectsChangeWrapPolygon"; break; case AscDFH.historydescription_Document_MathAutoCorrect : sString = "Document_MathAutoCorrect"; break; case AscDFH.historydescription_Document_SetFramePrWithFontFamily : sString = "Document_SetFramePrWithFontFamily"; break; case AscDFH.historydescription_Document_SetFramePr : sString = "Document_SetFramePr"; break; case AscDFH.historydescription_Document_SetFramePrWithFontFamilyLong : sString = "Document_SetFramePrWithFontFamilyLong"; break; case AscDFH.historydescription_Document_SetTextFontName : sString = "Document_SetTextFontName"; break; case AscDFH.historydescription_Document_SetTextFontSize : sString = "Document_SetTextFontSize"; break; case AscDFH.historydescription_Document_SetTextBold : sString = "Document_SetTextBold"; break; case AscDFH.historydescription_Document_SetTextItalic : sString = "Document_SetTextItalic"; break; case AscDFH.historydescription_Document_SetTextUnderline : sString = "Document_SetTextUnderline"; break; case AscDFH.historydescription_Document_SetTextStrikeout : sString = "Document_SetTextStrikeout"; break; case AscDFH.historydescription_Document_SetTextDStrikeout : sString = "Document_SetTextDStrikeout"; break; case AscDFH.historydescription_Document_SetTextSpacing : sString = "Document_SetTextSpacing"; break; case AscDFH.historydescription_Document_SetTextCaps : sString = "Document_SetTextCaps"; break; case AscDFH.historydescription_Document_SetTextSmallCaps : sString = "Document_SetTextSmallCaps"; break; case AscDFH.historydescription_Document_SetTextPosition : sString = "Document_SetTextPosition"; break; case AscDFH.historydescription_Document_SetTextLang : sString = "Document_SetTextLang"; break; case AscDFH.historydescription_Document_SetParagraphLineSpacing : sString = "Document_SetParagraphLineSpacing"; break; case AscDFH.historydescription_Document_SetParagraphLineSpacingBeforeAfter : sString = "Document_SetParagraphLineSpacingBeforeAfter"; break; case AscDFH.historydescription_Document_IncFontSize : sString = "Document_IncFontSize"; break; case AscDFH.historydescription_Document_DecFontSize : sString = "Document_DecFontSize"; break; case AscDFH.historydescription_Document_SetParagraphBorders : sString = "Document_SetParagraphBorders"; break; case AscDFH.historydescription_Document_SetParagraphPr : sString = "Document_SetParagraphPr"; break; case AscDFH.historydescription_Document_SetParagraphAlign : sString = "Document_SetParagraphAlign"; break; case AscDFH.historydescription_Document_SetTextVertAlign : sString = "Document_SetTextVertAlign"; break; case AscDFH.historydescription_Document_SetParagraphNumbering : sString = "Document_SetParagraphNumbering"; break; case AscDFH.historydescription_Document_SetParagraphStyle : sString = "Document_SetParagraphStyle"; break; case AscDFH.historydescription_Document_SetParagraphPageBreakBefore : sString = "Document_SetParagraphPageBreakBefore"; break; case AscDFH.historydescription_Document_SetParagraphWidowControl : sString = "Document_SetParagraphWidowControl"; break; case AscDFH.historydescription_Document_SetParagraphKeepLines : sString = "Document_SetParagraphKeepLines"; break; case AscDFH.historydescription_Document_SetParagraphKeepNext : sString = "Document_SetParagraphKeepNext"; break; case AscDFH.historydescription_Document_SetParagraphContextualSpacing : sString = "Document_SetParagraphContextualSpacing"; break; case AscDFH.historydescription_Document_SetTextHighlightNone : sString = "Document_SetTextHighlightNone"; break; case AscDFH.historydescription_Document_SetTextHighlightColor : sString = "Document_SetTextHighlightColor"; break; case AscDFH.historydescription_Document_SetTextColor : sString = "Document_SetTextColor"; break; case AscDFH.historydescription_Document_SetParagraphShd : sString = "Document_SetParagraphShd"; break; case AscDFH.historydescription_Document_SetParagraphIndent : sString = "Document_SetParagraphIndent"; break; case AscDFH.historydescription_Document_IncParagraphIndent : sString = "Document_IncParagraphIndent"; break; case AscDFH.historydescription_Document_DecParagraphIndent : sString = "Document_DecParagraphIndent"; break; case AscDFH.historydescription_Document_SetParagraphIndentRight : sString = "Document_SetParagraphIndentRight"; break; case AscDFH.historydescription_Document_SetParagraphIndentFirstLine : sString = "Document_SetParagraphIndentFirstLine"; break; case AscDFH.historydescription_Document_SetPageOrientation : sString = "Document_SetPageOrientation"; break; case AscDFH.historydescription_Document_SetPageSize : sString = "Document_SetPageSize"; break; case AscDFH.historydescription_Document_AddPageBreak : sString = "Document_AddPageBreak"; break; case AscDFH.historydescription_Document_AddPageNumToHdrFtr : sString = "Document_AddPageNumToHdrFtr"; break; case AscDFH.historydescription_Document_AddPageNumToCurrentPos : sString = "Document_AddPageNumToCurrentPos"; break; case AscDFH.historydescription_Document_SetHdrFtrDistance : sString = "Document_SetHdrFtrDistance"; break; case AscDFH.historydescription_Document_SetHdrFtrFirstPage : sString = "Document_SetHdrFtrFirstPage"; break; case AscDFH.historydescription_Document_SetHdrFtrEvenAndOdd : sString = "Document_SetHdrFtrEvenAndOdd"; break; case AscDFH.historydescription_Document_SetHdrFtrLink : sString = "Document_SetHdrFtrLink"; break; case AscDFH.historydescription_Document_AddTable : sString = "Document_AddTable"; break; case AscDFH.historydescription_Document_TableAddRowAbove : sString = "Document_TableAddRowAbove"; break; case AscDFH.historydescription_Document_TableAddRowBelow : sString = "Document_TableAddRowBelow"; break; case AscDFH.historydescription_Document_TableAddColumnLeft : sString = "Document_TableAddColumnLeft"; break; case AscDFH.historydescription_Document_TableAddColumnRight : sString = "Document_TableAddColumnRight"; break; case AscDFH.historydescription_Document_TableRemoveRow : sString = "Document_TableRemoveRow"; break; case AscDFH.historydescription_Document_TableRemoveColumn : sString = "Document_TableRemoveColumn"; break; case AscDFH.historydescription_Document_RemoveTable : sString = "Document_RemoveTable"; break; case AscDFH.historydescription_Document_MergeTableCells : sString = "Document_MergeTableCells"; break; case AscDFH.historydescription_Document_SplitTableCells : sString = "Document_SplitTableCells"; break; case AscDFH.historydescription_Document_ApplyTablePr : sString = "Document_ApplyTablePr"; break; case AscDFH.historydescription_Document_AddImageUrl : sString = "Document_AddImageUrl"; break; case AscDFH.historydescription_Document_AddImageUrlLong : sString = "Document_AddImageUrlLong"; break; case AscDFH.historydescription_Document_AddImageToPage : sString = "Document_AddImageToPage"; break; case AscDFH.historydescription_Document_ApplyImagePrWithUrl : sString = "Document_ApplyImagePrWithUrl"; break; case AscDFH.historydescription_Document_ApplyImagePrWithUrlLong : sString = "Document_ApplyImagePrWithUrlLong"; break; case AscDFH.historydescription_Document_ApplyImagePrWithFillUrl : sString = "Document_ApplyImagePrWithFillUrl"; break; case AscDFH.historydescription_Document_ApplyImagePrWithFillUrlLong : sString = "Document_ApplyImagePrWithFillUrlLong"; break; case AscDFH.historydescription_Document_ApplyImagePr : sString = "Document_ApplyImagePr"; break; case AscDFH.historydescription_Document_AddHyperlink : sString = "Document_AddHyperlink"; break; case AscDFH.historydescription_Document_ChangeHyperlink : sString = "Document_ChangeHyperlink"; break; case AscDFH.historydescription_Document_RemoveHyperlink : sString = "Document_RemoveHyperlink"; break; case AscDFH.historydescription_Document_ReplaceMisspelledWord : sString = "Document_ReplaceMisspelledWord"; break; case AscDFH.historydescription_Document_AddComment : sString = "Document_AddComment"; break; case AscDFH.historydescription_Document_RemoveComment : sString = "Document_RemoveComment"; break; case AscDFH.historydescription_Document_ChangeComment : sString = "Document_ChangeComment"; break; case AscDFH.historydescription_Document_SetTextFontNameLong : sString = "Document_SetTextFontNameLong"; break; case AscDFH.historydescription_Document_AddImage : sString = "Document_AddImage"; break; case AscDFH.historydescription_Document_ClearFormatting : sString = "Document_ClearFormatting"; break; case AscDFH.historydescription_Document_AddSectionBreak : sString = "Document_AddSectionBreak"; break; case AscDFH.historydescription_Document_AddMath : sString = "Document_AddMath"; break; case AscDFH.historydescription_Document_SetParagraphTabs : sString = "Document_SetParagraphTabs"; break; case AscDFH.historydescription_Document_SetParagraphIndentFromRulers : sString = "Document_SetParagraphIndentFromRulers"; break; case AscDFH.historydescription_Document_SetDocumentMargin_Hor : sString = "Document_SetDocumentMargin_Hor"; break; case AscDFH.historydescription_Document_SetTableMarkup_Hor : sString = "Document_SetTableMarkup_Hor"; break; case AscDFH.historydescription_Document_SetDocumentMargin_Ver : sString = "Document_SetDocumentMargin_Ver"; break; case AscDFH.historydescription_Document_SetHdrFtrBounds : sString = "Document_SetHdrFtrBounds"; break; case AscDFH.historydescription_Document_SetTableMarkup_Ver : sString = "Document_SetTableMarkup_Ver"; break; case AscDFH.historydescription_Document_DocumentExtendToPos : sString = "Document_DocumentExtendToPos"; break; case AscDFH.historydescription_Document_AddDropCap : sString = "Document_AddDropCap"; break; case AscDFH.historydescription_Document_RemoveDropCap : sString = "Document_RemoveDropCap"; break; case AscDFH.historydescription_Document_SetTextHighlight : sString = "Document_SetTextHighlight"; break; case AscDFH.historydescription_Document_BackSpaceButton : sString = "Document_BackSpaceButton"; break; case AscDFH.historydescription_Document_MoveParagraphByTab : sString = "Document_MoveParagraphByTab"; break; case AscDFH.historydescription_Document_AddTab : sString = "Document_AddTab"; break; case AscDFH.historydescription_Document_EnterButton : sString = "Document_EnterButton"; break; case AscDFH.historydescription_Document_SpaceButton : sString = "Document_SpaceButton"; break; case AscDFH.historydescription_Document_ShiftInsert : sString = "Document_ShiftInsert"; break; case AscDFH.historydescription_Document_ShiftInsertSafari : sString = "Document_ShiftInsertSafari"; break; case AscDFH.historydescription_Document_DeleteButton : sString = "Document_DeleteButton"; break; case AscDFH.historydescription_Document_ShiftDeleteButton : sString = "Document_ShiftDeleteButton"; break; case AscDFH.historydescription_Document_SetStyleHeading1 : sString = "Document_SetStyleHeading1"; break; case AscDFH.historydescription_Document_SetStyleHeading2 : sString = "Document_SetStyleHeading2"; break; case AscDFH.historydescription_Document_SetStyleHeading3 : sString = "Document_SetStyleHeading3"; break; case AscDFH.historydescription_Document_SetTextStrikeoutHotKey : sString = "Document_SetTextStrikeoutHotKey"; break; case AscDFH.historydescription_Document_SetTextBoldHotKey : sString = "Document_SetTextBoldHotKey"; break; case AscDFH.historydescription_Document_SetParagraphAlignHotKey : sString = "Document_SetParagraphAlignHotKey"; break; case AscDFH.historydescription_Document_AddEuroLetter : sString = "Document_AddEuroLetter"; break; case AscDFH.historydescription_Document_SetTextItalicHotKey : sString = "Document_SetTextItalicHotKey"; break; case AscDFH.historydescription_Document_SetParagraphAlignHotKey2 : sString = "Document_SetParagraphAlignHotKey2"; break; case AscDFH.historydescription_Document_SetParagraphNumberingHotKey : sString = "Document_SetParagraphNumberingHotKey"; break; case AscDFH.historydescription_Document_SetParagraphAlignHotKey3 : sString = "Document_SetParagraphAlignHotKey3"; break; case AscDFH.historydescription_Document_AddPageNumHotKey : sString = "Document_AddPageNumHotKey"; break; case AscDFH.historydescription_Document_SetParagraphAlignHotKey4 : sString = "Document_SetParagraphAlignHotKey4"; break; case AscDFH.historydescription_Document_SetTextUnderlineHotKey : sString = "Document_SetTextUnderlineHotKey"; break; case AscDFH.historydescription_Document_FormatPasteHotKey : sString = "Document_FormatPasteHotKey"; break; case AscDFH.historydescription_Document_PasteHotKey : sString = "Document_PasteHotKey"; break; case AscDFH.historydescription_Document_PasteSafariHotKey : sString = "Document_PasteSafariHotKey"; break; case AscDFH.historydescription_Document_CutHotKey : sString = "Document_CutHotKey"; break; case AscDFH.historydescription_Document_SetTextVertAlignHotKey : sString = "Document_SetTextVertAlignHotKey"; break; case AscDFH.historydescription_Document_AddMathHotKey : sString = "Document_AddMathHotKey"; break; case AscDFH.historydescription_Document_SetTextVertAlignHotKey2 : sString = "Document_SetTextVertAlignHotKey2"; break; case AscDFH.historydescription_Document_MinusButton : sString = "Document_MinusButton"; break; case AscDFH.historydescription_Document_SetTextVertAlignHotKey3 : sString = "Document_SetTextVertAlignHotKey3"; break; case AscDFH.historydescription_Document_AddLetter : sString = "Document_AddLetter"; break; case AscDFH.historydescription_Document_MoveTableBorder : sString = "Document_MoveTableBorder"; break; case AscDFH.historydescription_Document_FormatPasteHotKey2 : sString = "Document_FormatPasteHotKey2"; break; case AscDFH.historydescription_Document_SetTextHighlight2 : sString = "Document_SetTextHighlight2"; break; case AscDFH.historydescription_Document_AddTextFromTextBox : sString = "Document_AddTextFromTextBox"; break; case AscDFH.historydescription_Document_AddMailMergeField : sString = "Document_AddMailMergeField"; break; case AscDFH.historydescription_Document_MoveInlineTable : sString = "Document_MoveInlineTable"; break; case AscDFH.historydescription_Document_MoveFlowTable : sString = "Document_MoveFlowTable"; break; case AscDFH.historydescription_Document_RestoreFieldTemplateText : sString = "Document_RestoreFieldTemplateText"; break; case AscDFH.historydescription_Spreadsheet_SetCellFontName : sString = "Spreadsheet_SetCellFontName"; break; case AscDFH.historydescription_Spreadsheet_SetCellFontSize : sString = "Spreadsheet_SetCellFontSize"; break; case AscDFH.historydescription_Spreadsheet_SetCellBold : sString = "Spreadsheet_SetCellBold"; break; case AscDFH.historydescription_Spreadsheet_SetCellItalic : sString = "Spreadsheet_SetCellItalic"; break; case AscDFH.historydescription_Spreadsheet_SetCellUnderline : sString = "Spreadsheet_SetCellUnderline"; break; case AscDFH.historydescription_Spreadsheet_SetCellStrikeout : sString = "Spreadsheet_SetCellStrikeout"; break; case AscDFH.historydescription_Spreadsheet_SetCellSubscript : sString = "Spreadsheet_SetCellSubscript"; break; case AscDFH.historydescription_Spreadsheet_SetCellSuperscript : sString = "Spreadsheet_SetCellSuperscript"; break; case AscDFH.historydescription_Spreadsheet_SetCellAlign : sString = "Spreadsheet_SetCellAlign"; break; case AscDFH.historydescription_Spreadsheet_SetCellVertAlign : sString = "Spreadsheet_SetCellVertAlign"; break; case AscDFH.historydescription_Spreadsheet_SetCellTextColor : sString = "Spreadsheet_SetCellTextColor"; break; case AscDFH.historydescription_Spreadsheet_SetCellBackgroundColor : sString = "Spreadsheet_SetCellBackgroundColor"; break; case AscDFH.historydescription_Spreadsheet_SetCellIncreaseFontSize : sString = "Spreadsheet_SetCellIncreaseFontSize"; break; case AscDFH.historydescription_Spreadsheet_SetCellDecreaseFontSize : sString = "Spreadsheet_SetCellDecreaseFontSize"; break; case AscDFH.historydescription_Spreadsheet_SetCellHyperlinkAdd : sString = "Spreadsheet_SetCellHyperlinkAdd"; break; case AscDFH.historydescription_Spreadsheet_SetCellHyperlinkModify : sString = "Spreadsheet_SetCellHyperlinkModify"; break; case AscDFH.historydescription_Spreadsheet_SetCellHyperlinkRemove : sString = "Spreadsheet_SetCellHyperlinkRemove"; break; case AscDFH.historydescription_Spreadsheet_EditChart : sString = "Spreadsheet_EditChart"; break; case AscDFH.historydescription_Spreadsheet_Remove : sString = "Spreadsheet_Remove"; break; case AscDFH.historydescription_Spreadsheet_AddTab : sString = "Spreadsheet_AddTab"; break; case AscDFH.historydescription_Spreadsheet_AddNewParagraph : sString = "Spreadsheet_AddNewParagraph"; break; case AscDFH.historydescription_Spreadsheet_AddSpace : sString = "Spreadsheet_AddSpace"; break; case AscDFH.historydescription_Spreadsheet_AddItem : sString = "Spreadsheet_AddItem"; break; case AscDFH.historydescription_Spreadsheet_PutPrLineSpacing : sString = "Spreadsheet_PutPrLineSpacing"; break; case AscDFH.historydescription_Spreadsheet_SetParagraphSpacing : sString = "Spreadsheet_SetParagraphSpacing"; break; case AscDFH.historydescription_Spreadsheet_SetGraphicObjectsProps : sString = "Spreadsheet_SetGraphicObjectsProps"; break; case AscDFH.historydescription_Spreadsheet_ParaApply : sString = "Spreadsheet_ParaApply"; break; case AscDFH.historydescription_Spreadsheet_GraphicObjectLayer : sString = "Spreadsheet_GraphicObjectLayer"; break; case AscDFH.historydescription_Spreadsheet_ParagraphAdd : sString = "Spreadsheet_ParagraphAdd"; break; case AscDFH.historydescription_Spreadsheet_CreateGroup : sString = "Spreadsheet_CreateGroup"; break; case AscDFH.historydescription_CommonDrawings_ChangeAdj : sString = "CommonDrawings_ChangeAdj"; break; case AscDFH.historydescription_CommonDrawings_EndTrack : sString = "CommonDrawings_EndTrack"; break; case AscDFH.historydescription_CommonDrawings_CopyCtrl : sString = "CommonDrawings_CopyCtrl"; break; case AscDFH.historydescription_Presentation_ParaApply : sString = "Presentation_ParaApply"; break; case AscDFH.historydescription_Presentation_ParaFormatPaste : sString = "Presentation_ParaFormatPaste"; break; case AscDFH.historydescription_Presentation_AddNewParagraph : sString = "Presentation_AddNewParagraph"; break; case AscDFH.historydescription_Presentation_CreateGroup : sString = "Presentation_CreateGroup"; break; case AscDFH.historydescription_Presentation_UnGroup : sString = "Presentation_UnGroup"; break; case AscDFH.historydescription_Presentation_AddChart : sString = "Presentation_AddChart"; break; case AscDFH.historydescription_Presentation_EditChart : sString = "Presentation_EditChart"; break; case AscDFH.historydescription_Presentation_ParagraphAdd : sString = "Presentation_ParagraphAdd"; break; case AscDFH.historydescription_Presentation_ParagraphClearFormatting : sString = "Presentation_ParagraphClearFormatting"; break; case AscDFH.historydescription_Presentation_SetParagraphAlign : sString = "Presentation_SetParagraphAlign"; break; case AscDFH.historydescription_Presentation_SetParagraphSpacing : sString = "Presentation_SetParagraphSpacing"; break; case AscDFH.historydescription_Presentation_SetParagraphTabs : sString = "Presentation_SetParagraphTabs"; break; case AscDFH.historydescription_Presentation_SetParagraphIndent : sString = "Presentation_SetParagraphIndent"; break; case AscDFH.historydescription_Presentation_SetParagraphNumbering : sString = "Presentation_SetParagraphNumbering"; break; case AscDFH.historydescription_Presentation_ParagraphIncDecFontSize : sString = "Presentation_ParagraphIncDecFontSize"; break; case AscDFH.historydescription_Presentation_ParagraphIncDecIndent : sString = "Presentation_ParagraphIncDecIndent"; break; case AscDFH.historydescription_Presentation_SetImageProps : sString = "Presentation_SetImageProps"; break; case AscDFH.historydescription_Presentation_SetShapeProps : sString = "Presentation_SetShapeProps"; break; case AscDFH.historydescription_Presentation_ChartApply : sString = "Presentation_ChartApply"; break; case AscDFH.historydescription_Presentation_ChangeShapeType : sString = "Presentation_ChangeShapeType"; break; case AscDFH.historydescription_Presentation_SetVerticalAlign : sString = "Presentation_SetVerticalAlign"; break; case AscDFH.historydescription_Presentation_HyperlinkAdd : sString = "Presentation_HyperlinkAdd"; break; case AscDFH.historydescription_Presentation_HyperlinkModify : sString = "Presentation_HyperlinkModify"; break; case AscDFH.historydescription_Presentation_HyperlinkRemove : sString = "Presentation_HyperlinkRemove"; break; case AscDFH.historydescription_Presentation_DistHor : sString = "Presentation_DistHor"; break; case AscDFH.historydescription_Presentation_DistVer : sString = "Presentation_DistVer"; break; case AscDFH.historydescription_Presentation_BringToFront : sString = "Presentation_BringToFront"; break; case AscDFH.historydescription_Presentation_BringForward : sString = "Presentation_BringForward"; break; case AscDFH.historydescription_Presentation_SendToBack : sString = "Presentation_SendToBack"; break; case AscDFH.historydescription_Presentation_BringBackward : sString = "Presentation_BringBackward"; break; case AscDFH.historydescription_Presentation_ApplyTiming : sString = "Presentation_ApplyTiming"; break; case AscDFH.historydescription_Presentation_MoveSlidesToEnd : sString = "Presentation_MoveSlidesToEnd"; break; case AscDFH.historydescription_Presentation_MoveSlidesNextPos : sString = "Presentation_MoveSlidesNextPos"; break; case AscDFH.historydescription_Presentation_MoveSlidesPrevPos : sString = "Presentation_MoveSlidesPrevPos"; break; case AscDFH.historydescription_Presentation_MoveSlidesToStart : sString = "Presentation_MoveSlidesToStart"; break; case AscDFH.historydescription_Presentation_MoveComments : sString = "Presentation_MoveComments"; break; case AscDFH.historydescription_Presentation_TableBorder : sString = "Presentation_TableBorder"; break; case AscDFH.historydescription_Presentation_AddFlowImage : sString = "Presentation_AddFlowImage"; break; case AscDFH.historydescription_Presentation_AddFlowTable : sString = "Presentation_AddFlowTable"; break; case AscDFH.historydescription_Presentation_ChangeBackground : sString = "Presentation_ChangeBackground"; break; case AscDFH.historydescription_Presentation_AddNextSlide : sString = "Presentation_AddNextSlide"; break; case AscDFH.historydescription_Presentation_ShiftSlides : sString = "Presentation_ShiftSlides"; break; case AscDFH.historydescription_Presentation_DeleteSlides : sString = "Presentation_DeleteSlides"; break; case AscDFH.historydescription_Presentation_ChangeLayout : sString = "Presentation_ChangeLayout"; break; case AscDFH.historydescription_Presentation_ChangeSlideSize : sString = "Presentation_ChangeSlideSize"; break; case AscDFH.historydescription_Presentation_ChangeColorScheme : sString = "Presentation_ChangeColorScheme"; break; case AscDFH.historydescription_Presentation_AddComment : sString = "Presentation_AddComment"; break; case AscDFH.historydescription_Presentation_ChangeComment : sString = "Presentation_ChangeComment"; break; case AscDFH.historydescription_Presentation_PutTextPrFontName : sString = "Presentation_PutTextPrFontName"; break; case AscDFH.historydescription_Presentation_PutTextPrFontSize : sString = "Presentation_PutTextPrFontSize"; break; case AscDFH.historydescription_Presentation_PutTextPrBold : sString = "Presentation_PutTextPrBold"; break; case AscDFH.historydescription_Presentation_PutTextPrItalic : sString = "Presentation_PutTextPrItalic"; break; case AscDFH.historydescription_Presentation_PutTextPrUnderline : sString = "Presentation_PutTextPrUnderline"; break; case AscDFH.historydescription_Presentation_PutTextPrStrikeout : sString = "Presentation_PutTextPrStrikeout"; break; case AscDFH.historydescription_Presentation_PutTextPrLineSpacing : sString = "Presentation_PutTextPrLineSpacing"; break; case AscDFH.historydescription_Presentation_PutTextPrSpacingBeforeAfter : sString = "Presentation_PutTextPrSpacingBeforeAfter"; break; case AscDFH.historydescription_Presentation_PutTextPrIncreaseFontSize : sString = "Presentation_PutTextPrIncreaseFontSize"; break; case AscDFH.historydescription_Presentation_PutTextPrDecreaseFontSize : sString = "Presentation_PutTextPrDecreaseFontSize"; break; case AscDFH.historydescription_Presentation_PutTextPrAlign : sString = "Presentation_PutTextPrAlign"; break; case AscDFH.historydescription_Presentation_PutTextPrBaseline : sString = "Presentation_PutTextPrBaseline"; break; case AscDFH.historydescription_Presentation_PutTextPrListType : sString = "Presentation_PutTextPrListType"; break; case AscDFH.historydescription_Presentation_PutTextColor : sString = "Presentation_PutTextColor"; break; case AscDFH.historydescription_Presentation_PutTextColor2 : sString = "Presentation_PutTextColor2"; break; case AscDFH.historydescription_Presentation_PutPrIndent : sString = "Presentation_PutPrIndent"; break; case AscDFH.historydescription_Presentation_PutPrIndentRight : sString = "Presentation_PutPrIndentRight"; break; case AscDFH.historydescription_Presentation_PutPrFirstLineIndent : sString = "Presentation_PutPrFirstLineIndent"; break; case AscDFH.historydescription_Presentation_AddPageBreak : sString = "Presentation_AddPageBreak"; break; case AscDFH.historydescription_Presentation_AddRowAbove : sString = "Presentation_AddRowAbove"; break; case AscDFH.historydescription_Presentation_AddRowBelow : sString = "Presentation_AddRowBelow"; break; case AscDFH.historydescription_Presentation_AddColLeft : sString = "Presentation_AddColLeft"; break; case AscDFH.historydescription_Presentation_AddColRight : sString = "Presentation_AddColRight"; break; case AscDFH.historydescription_Presentation_RemoveRow : sString = "Presentation_RemoveRow"; break; case AscDFH.historydescription_Presentation_RemoveCol : sString = "Presentation_RemoveCol"; break; case AscDFH.historydescription_Presentation_RemoveTable : sString = "Presentation_RemoveTable"; break; case AscDFH.historydescription_Presentation_MergeCells : sString = "Presentation_MergeCells"; break; case AscDFH.historydescription_Presentation_SplitCells : sString = "Presentation_SplitCells"; break; case AscDFH.historydescription_Presentation_TblApply : sString = "Presentation_TblApply"; break; case AscDFH.historydescription_Presentation_RemoveComment : sString = "Presentation_RemoveComment"; break; case AscDFH.historydescription_Presentation_EndFontLoad : sString = "Presentation_EndFontLoad"; break; case AscDFH.historydescription_Presentation_ChangeTheme : sString = "Presentation_ChangeTheme"; break; case AscDFH.historydescription_Presentation_TableMoveFromRulers : sString = "Presentation_TableMoveFromRulers"; break; case AscDFH.historydescription_Presentation_TableMoveFromRulersInline : sString = "Presentation_TableMoveFromRulersInline"; break; case AscDFH.historydescription_Presentation_PasteOnThumbnails : sString = "Presentation_PasteOnThumbnails"; break; case AscDFH.historydescription_Presentation_PasteOnThumbnailsSafari : sString = "Presentation_PasteOnThumbnailsSafari"; break; case AscDFH.historydescription_Document_ConvertOldEquation : sString = "Document_ConvertOldEquation"; break; case AscDFH.historydescription_Document_AddNewStyle : sString = "Document_AddNewStyle"; break; case AscDFH.historydescription_Document_RemoveStyle : sString = "Document_RemoveStyle"; break; case AscDFH.historydescription_Document_AddTextArt : sString = "Document_AddTextArt"; break; case AscDFH.historydescription_Document_RemoveAllCustomStyles : sString = "Document_RemoveAllCustomStyles"; break; case AscDFH.historydescription_Document_AcceptAllRevisionChanges : sString = "Document_AcceptAllRevisionChanges"; break; case AscDFH.historydescription_Document_RejectAllRevisionChanges : sString = "Document_RejectAllRevisionChanges"; break; case AscDFH.historydescription_Document_AcceptRevisionChange : sString = "Document_AcceptRevisionChange"; break; case AscDFH.historydescription_Document_RejectRevisionChange : sString = "Document_RejectRevisionChange"; break; case AscDFH.historydescription_Document_AcceptRevisionChangesBySelection : sString = "Document_AcceptRevisionChangesBySelection"; break; case AscDFH.historydescription_Document_RejectRevisionChangesBySelection : sString = "Document_RejectRevisionChangesBySelection"; break; case AscDFH.historydescription_Document_AddLetterUnion : sString = "Document_AddLetterUnion"; break; case AscDFH.historydescription_Document_SetColumnsFromRuler : sString = "Document_SetColumnsFromRuler"; break; case AscDFH.historydescription_Document_SetColumnsProps : sString = "Document_SetColumnsProps"; break; case AscDFH.historydescription_Document_AddColumnBreak : sString = "Document_AddColumnBreak"; break; case AscDFH.historydescription_Document_AddTabToMath : sString = "Document_AddTabToMath"; break; case AscDFH.historydescription_Document_ApplyPrToMath: sString = "Document_ApplyPrToMath"; break; case AscDFH.historydescription_Document_SetMathProps: sString = "Document_SetMathProps"; break; case AscDFH.historydescription_Document_SetSectionProps: sString = "Document_SetColumnsProps"; break; case AscDFH.historydescription_Document_ApiBuilder: sString = "Document_ApiBuilder"; break; case AscDFH.historydescription_Document_AddOleObject: sString = "Document_AddOleObject"; break; case AscDFH.historydescription_Document_EditOleObject: sString = "Document_EditOleObject"; break; case AscDFH.historydescription_Document_CompositeInput: sString = "Document_CompositeInput"; break; case AscDFH.historydescription_Document_CompositeInputReplace: sString = "Document_CompositeInputReplace"; break; case AscDFH.historydescription_Document_AddPageCount: sString = "Document_AddPageCount"; break; case AscDFH.historydescription_Document_AddFootnote: sString = "Document_AddFootnote"; break; case AscDFH.historydescription_Document_SetFootnotePr: sString = "Document_SetFootnotePr"; break; case AscDFH.historydescription_Document_RemoveAllFootnotes: sString = "Document_RemoveAllFootnotes"; break; case AscDFH.historydescription_Document_InsertDocumentsByUrls: sString = "Document_InsertDocumentsByUrls"; break; case AscDFH.historydescription_Document_AddBlockLevelContentControl: sString = "Document_AddBlockLevelContentControl"; break; case AscDFH.historydescription_Document_AddInlineLevelContentControl: sString = "Document_AddInlineLevelContentControl"; break; case AscDFH.historydescription_Document_RemoveContentControl: sString = "Document_RemoveContentControl"; break; case AscDFH.historydescription_Document_RemoveContentControlWrapper: sString = "Document_RemoveContentControlWrapper"; break; case AscDFH.historydescription_Document_ChangeContentControlProperties: sString = "Document_ChangeContentControlProperties"; break; case AscDFH.historydescription_DocumentMacros_Data: sString = "DocumentMacros_Data"; break; case AscDFH.historydescription_Document_AddBookmark: sString = "Document_AddBookmark"; break; case AscDFH.historydescription_Document_AddTableOfContents: sString = "Document_AddTableOfContents"; break; case AscDFH.historydescription_Document_ChangeOutlineLevel: sString = "Document_ChangeOutlineLevel"; break; case AscDFH.historydescription_Document_AddElementToOutline: sString = "Document_AddElementToOutline"; break; case AscDFH.historydescription_Document_ResizeTable: sString = "Document_ResizeTable"; break; case AscDFH.historydescription_Document_RemoveComplexField: sString = "Document_RemoveComplexField"; break; case AscDFH.historydescription_Document_SetComplexFieldPr: sString = "Document_SetComplexFieldPr"; break; case AscDFH.historydescription_Document_UpdateTableOfContents: sString = "Document_UpdateTableOfContents"; break; case AscDFH.historydescription_Document_SectionStartPage: sString = "Document_SectionStartPage"; break; case AscDFH.historydescription_Document_DistributeTableCells: sString = "Document_DistributeTableCells"; break; case AscDFH.historydescription_Document_RemoveBookmark: sString = "Document_RemoveBookmark"; break; case AscDFH.historydescription_Document_ContinueNumbering: sString = "Document_ContinueNumbering"; break; case AscDFH.historydescription_Document_RestartNumbering: sString = "Document_RestartNumbering"; break; case AscDFH.historydescription_Document_AutomaticListAsType: sString = "Document_AutomaticListAsType"; break; case AscDFH.historydescription_Document_CreateNum: sString = "Document_CreateNum"; break; case AscDFH.historydescription_Document_ChangeNumLvl: sString = "Document_ChangeNumLvl"; break; case AscDFH.historydescription_Document_AutoCorrectSmartQuotes: sString = "Document_AutoCorrectSmartQuotes"; break; case AscDFH.historydescription_Document_AutoCorrectHyphensWithDash: sString = "Document_AutoCorrectHyphensWithDash"; break; case AscDFH.historydescription_Document_SetGlobalSdtHighlightColor: sString = "Document_SetGlobalSdtHighlightColor"; break; case AscDFH.historydescription_Document_SetGlobalSdtShowHighlight: sString = "Document_SetGlobalSdtShowHighlight"; break; } return sString; } function GetHistoryClassTypeByChangeType(nChangeType) { return (nChangeType >> 16) & 0x0000FFFF; } //------------------------------------------------------------export-------------------------------------------------- window['AscDFH'] = window['AscDFH'] || {}; window['AscDFH'].GetHistoryPointStringDescription = GetHistoryPointStringDescription; window['AscDFH'].GetHistoryClassTypeByChangeType = GetHistoryClassTypeByChangeType; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Типы произошедших изменений // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// window['AscDFH'].historyitem_recalctype_Inline = 0; // Изменения произошли в обычном тексте (с верхним классом CDocument) window['AscDFH'].historyitem_recalctype_Flow = 1; // Изменения произошли в "плавающем" объекте window['AscDFH'].historyitem_recalctype_HdrFtr = 2; // Изменения произошли в колонтитуле window['AscDFH'].historyitem_recalctype_Drawing = 3; // Изменения произошли в drawing'е window['AscDFH'].historyitem_recalctype_NotesEnd = 4; // Изменение произошли в сносках, которые идут в конце документа //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Типы классов, в которых происходили изменения (типы нужны для совместного редактирования) // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// window['AscDFH'].historyitem_type_Unknown = 0 << 16; window['AscDFH'].historyitem_type_TableId = 1 << 16; window['AscDFH'].historyitem_type_Document = 2 << 16; window['AscDFH'].historyitem_type_Paragraph = 3 << 16; window['AscDFH'].historyitem_type_TextPr = 4 << 16; window['AscDFH'].historyitem_type_Drawing = 5 << 16; window['AscDFH'].historyitem_type_DrawingObjects = 6 << 16; // obsolete window['AscDFH'].historyitem_type_FlowObjects = 7 << 16; // obsolete window['AscDFH'].historyitem_type_FlowImage = 8 << 16; // obsolete window['AscDFH'].historyitem_type_Table = 9 << 16; window['AscDFH'].historyitem_type_TableRow = 10 << 16; window['AscDFH'].historyitem_type_TableCell = 11 << 16; window['AscDFH'].historyitem_type_DocumentContent = 12 << 16; window['AscDFH'].historyitem_type_FlowTable = 13 << 16; // obsolete window['AscDFH'].historyitem_type_HdrFtrController = 14 << 16; // obsolete window['AscDFH'].historyitem_type_HdrFtr = 15 << 16; window['AscDFH'].historyitem_type_AbstractNum = 16 << 16; window['AscDFH'].historyitem_type_Comment = 17 << 16; window['AscDFH'].historyitem_type_Comments = 18 << 16; window['AscDFH'].historyitem_type_Image = 19 << 16; window['AscDFH'].historyitem_type_GrObjects = 20 << 16; window['AscDFH'].historyitem_type_Hyperlink = 21 << 16; window['AscDFH'].historyitem_type_Style = 23 << 16; window['AscDFH'].historyitem_type_Styles = 24 << 16; window['AscDFH'].historyitem_type_ChartTitle = 25 << 16; window['AscDFH'].historyitem_type_Math = 26 << 16; window['AscDFH'].historyitem_type_CommentMark = 27 << 16; window['AscDFH'].historyitem_type_ParaRun = 28 << 16; window['AscDFH'].historyitem_type_MathContent = 29 << 16; window['AscDFH'].historyitem_type_Section = 30 << 16; window['AscDFH'].historyitem_type_acc = 31 << 16; window['AscDFH'].historyitem_type_bar = 32 << 16; window['AscDFH'].historyitem_type_borderBox = 33 << 16; window['AscDFH'].historyitem_type_box = 34 << 16; window['AscDFH'].historyitem_type_delimiter = 35 << 16; window['AscDFH'].historyitem_type_eqArr = 36 << 16; window['AscDFH'].historyitem_type_frac = 37 << 16; window['AscDFH'].historyitem_type_mathFunc = 38 << 16; window['AscDFH'].historyitem_type_groupChr = 39 << 16; window['AscDFH'].historyitem_type_lim = 40 << 16; window['AscDFH'].historyitem_type_matrix = 41 << 16; window['AscDFH'].historyitem_type_nary = 42 << 16; window['AscDFH'].historyitem_type_integral = 43 << 16; window['AscDFH'].historyitem_type_double_integral = 44 << 16; window['AscDFH'].historyitem_type_triple_integral = 45 << 16; window['AscDFH'].historyitem_type_contour_integral = 46 << 16; window['AscDFH'].historyitem_type_surface_integral = 47 << 16; window['AscDFH'].historyitem_type_volume_integral = 48 << 16; window['AscDFH'].historyitem_type_phant = 49 << 16; window['AscDFH'].historyitem_type_rad = 50 << 16; window['AscDFH'].historyitem_type_deg_subsup = 51 << 16; window['AscDFH'].historyitem_type_iterators = 52 << 16; window['AscDFH'].historyitem_type_deg = 53 << 16; window['AscDFH'].historyitem_type_ParaComment = 54 << 16; window['AscDFH'].historyitem_type_Field = 55 << 16; window['AscDFH'].historyitem_type_Footnotes = 56 << 16; window['AscDFH'].historyitem_type_FootEndNote = 57 << 16; window['AscDFH'].historyitem_type_Presentation = 58 << 16; window['AscDFH'].historyitem_type_BlockLevelSdt = 59 << 16; window['AscDFH'].historyitem_type_SdtPr = 60 << 16; window['AscDFH'].historyitem_type_InlineLevelSdt = 61 << 16; window['AscDFH'].historyitem_type_ParaBookmark = 62 << 16; window['AscDFH'].historyitem_type_Num = 63 << 16; window['AscDFH'].historyitem_type_CommonShape = 1000 << 16; // Этот класс добавлен для элементов, у которых нет конкретного класса window['AscDFH'].historyitem_type_ColorMod = 1001 << 16; window['AscDFH'].historyitem_type_ColorModifiers = 1002 << 16; window['AscDFH'].historyitem_type_SysColor = 1003 << 16; window['AscDFH'].historyitem_type_PrstColor = 1004 << 16; window['AscDFH'].historyitem_type_RGBColor = 1005 << 16; window['AscDFH'].historyitem_type_SchemeColor = 1006 << 16; window['AscDFH'].historyitem_type_UniColor = 1007 << 16; window['AscDFH'].historyitem_type_SrcRect = 1008 << 16; window['AscDFH'].historyitem_type_BlipFill = 1009 << 16; window['AscDFH'].historyitem_type_SolidFill = 1010 << 16; window['AscDFH'].historyitem_type_Gs = 1011 << 16; window['AscDFH'].historyitem_type_GradLin = 1012 << 16; window['AscDFH'].historyitem_type_GradPath = 1013 << 16; window['AscDFH'].historyitem_type_GradFill = 1014 << 16; window['AscDFH'].historyitem_type_PathFill = 1015 << 16; window['AscDFH'].historyitem_type_NoFill = 1016 << 16; window['AscDFH'].historyitem_type_UniFill = 1017 << 16; window['AscDFH'].historyitem_type_EndArrow = 1018 << 16; window['AscDFH'].historyitem_type_LineJoin = 1019 << 16; window['AscDFH'].historyitem_type_Ln = 1020 << 16; window['AscDFH'].historyitem_type_DefaultShapeDefinition = 1021 << 16; window['AscDFH'].historyitem_type_CNvPr = 1022 << 16; window['AscDFH'].historyitem_type_NvPr = 1023 << 16; window['AscDFH'].historyitem_type_Ph = 1024 << 16; window['AscDFH'].historyitem_type_UniNvPr = 1025 << 16; window['AscDFH'].historyitem_type_StyleRef = 1026 << 16; window['AscDFH'].historyitem_type_FontRef = 1027 << 16; window['AscDFH'].historyitem_type_Chart = 1028 << 16; window['AscDFH'].historyitem_type_ChartSpace = 1029 << 16; window['AscDFH'].historyitem_type_Legend = 1030 << 16; window['AscDFH'].historyitem_type_Layout = 1031 << 16; window['AscDFH'].historyitem_type_LegendEntry = 1032 << 16; window['AscDFH'].historyitem_type_PivotFmt = 1033 << 16; window['AscDFH'].historyitem_type_DLbl = 1034 << 16; window['AscDFH'].historyitem_type_Marker = 1035 << 16; window['AscDFH'].historyitem_type_PlotArea = 1036 << 16; window['AscDFH'].historyitem_type_Axis = 1037 << 16; window['AscDFH'].historyitem_type_NumFmt = 1038 << 16; window['AscDFH'].historyitem_type_Scaling = 1039 << 16; window['AscDFH'].historyitem_type_DTable = 1040 << 16; window['AscDFH'].historyitem_type_LineChart = 1041 << 16; window['AscDFH'].historyitem_type_DLbls = 1042 << 16; window['AscDFH'].historyitem_type_UpDownBars = 1043 << 16; window['AscDFH'].historyitem_type_BarChart = 1044 << 16; window['AscDFH'].historyitem_type_BubbleChart = 1045 << 16; window['AscDFH'].historyitem_type_DoughnutChart = 1046 << 16; window['AscDFH'].historyitem_type_OfPieChart = 1047 << 16; window['AscDFH'].historyitem_type_PieChart = 1048 << 16; window['AscDFH'].historyitem_type_RadarChart = 1049 << 16; window['AscDFH'].historyitem_type_ScatterChart = 1050 << 16; window['AscDFH'].historyitem_type_StockChart = 1051 << 16; window['AscDFH'].historyitem_type_SurfaceChart = 1052 << 16; window['AscDFH'].historyitem_type_BandFmt = 1053 << 16; window['AscDFH'].historyitem_type_AreaChart = 1054 << 16; window['AscDFH'].historyitem_type_ScatterSer = 1055 << 16; window['AscDFH'].historyitem_type_DPt = 1056 << 16; window['AscDFH'].historyitem_type_ErrBars = 1057 << 16; window['AscDFH'].historyitem_type_MinusPlus = 1058 << 16; window['AscDFH'].historyitem_type_NumLit = 1059 << 16; window['AscDFH'].historyitem_type_NumericPoint = 1060 << 16; window['AscDFH'].historyitem_type_NumRef = 1061 << 16; window['AscDFH'].historyitem_type_TrendLine = 1062 << 16; window['AscDFH'].historyitem_type_Tx = 1063 << 16; window['AscDFH'].historyitem_type_StrRef = 1064 << 16; window['AscDFH'].historyitem_type_StrCache = 1065 << 16; window['AscDFH'].historyitem_type_StrPoint = 1066 << 16; window['AscDFH'].historyitem_type_XVal = 1067 << 16; window['AscDFH'].historyitem_type_MultiLvlStrRef = 1068 << 16; window['AscDFH'].historyitem_type_MultiLvlStrCache = 1069 << 16; window['AscDFH'].historyitem_type_StringLiteral = 1070 << 16; window['AscDFH'].historyitem_type_YVal = 1071 << 16; window['AscDFH'].historyitem_type_AreaSeries = 1072 << 16; window['AscDFH'].historyitem_type_Cat = 1073 << 16; window['AscDFH'].historyitem_type_PictureOptions = 1074 << 16; window['AscDFH'].historyitem_type_RadarSeries = 1075 << 16; window['AscDFH'].historyitem_type_BarSeries = 1076 << 16; window['AscDFH'].historyitem_type_LineSeries = 1077 << 16; window['AscDFH'].historyitem_type_PieSeries = 1078 << 16; window['AscDFH'].historyitem_type_SurfaceSeries = 1079 << 16; window['AscDFH'].historyitem_type_BubbleSeries = 1080 << 16; window['AscDFH'].historyitem_type_ExternalData = 1081 << 16; window['AscDFH'].historyitem_type_PivotSource = 1082 << 16; window['AscDFH'].historyitem_type_Protection = 1083 << 16; window['AscDFH'].historyitem_type_ChartWall = 1084 << 16; window['AscDFH'].historyitem_type_View3d = 1085 << 16; window['AscDFH'].historyitem_type_ChartText = 1086 << 16; window['AscDFH'].historyitem_type_ShapeStyle = 1087 << 16; window['AscDFH'].historyitem_type_Xfrm = 1088 << 16; window['AscDFH'].historyitem_type_SpPr = 1089 << 16; window['AscDFH'].historyitem_type_ClrScheme = 1090 << 16; window['AscDFH'].historyitem_type_ClrMap = 1091 << 16; window['AscDFH'].historyitem_type_ExtraClrScheme = 1092 << 16; window['AscDFH'].historyitem_type_FontCollection = 1093 << 16; window['AscDFH'].historyitem_type_FontScheme = 1094 << 16; window['AscDFH'].historyitem_type_FormatScheme = 1095 << 16; window['AscDFH'].historyitem_type_ThemeElements = 1096 << 16; window['AscDFH'].historyitem_type_HF = 1097 << 16; window['AscDFH'].historyitem_type_BgPr = 1098 << 16; window['AscDFH'].historyitem_type_Bg = 1099 << 16; window['AscDFH'].historyitem_type_PrintSettings = 1100 << 16; window['AscDFH'].historyitem_type_HeaderFooterChart = 1101 << 16; window['AscDFH'].historyitem_type_PageMarginsChart = 1102 << 16; window['AscDFH'].historyitem_type_PageSetup = 1103 << 16; window['AscDFH'].historyitem_type_Shape = 1104 << 16; window['AscDFH'].historyitem_type_DispUnits = 1105 << 16; window['AscDFH'].historyitem_type_GroupShape = 1106 << 16; window['AscDFH'].historyitem_type_ImageShape = 1107 << 16; window['AscDFH'].historyitem_type_Geometry = 1108 << 16; window['AscDFH'].historyitem_type_Path = 1109 << 16; window['AscDFH'].historyitem_type_TextBody = 1110 << 16; window['AscDFH'].historyitem_type_CatAx = 1111 << 16; window['AscDFH'].historyitem_type_ValAx = 1112 << 16; window['AscDFH'].historyitem_type_WrapPolygon = 1113 << 16; window['AscDFH'].historyitem_type_DateAx = 1114 << 16; window['AscDFH'].historyitem_type_SerAx = 1115 << 16; window['AscDFH'].historyitem_type_Title = 1116 << 16; window['AscDFH'].historyitem_type_Slide = 1117 << 16; window['AscDFH'].historyitem_type_SlideLayout = 1118 << 16; window['AscDFH'].historyitem_type_SlideMaster = 1119 << 16; window['AscDFH'].historyitem_type_SlideComments = 1120 << 16; window['AscDFH'].historyitem_type_PropLocker = 1121 << 16; window['AscDFH'].historyitem_type_Theme = 1122 << 16; window['AscDFH'].historyitem_type_GraphicFrame = 1123 << 16; window['AscDFH'].historyitem_type_GrpFill = 1124 << 16; window['AscDFH'].historyitem_type_OleObject = 1125 << 16; window['AscDFH'].historyitem_type_DrawingContent = 1126 << 16; window['AscDFH'].historyitem_type_Sparkline = 1127 << 16; window['AscDFH'].historyitem_type_NotesMaster = 1128 << 16; window['AscDFH'].historyitem_type_Notes = 1129 << 16; window['AscDFH'].historyitem_type_Cnx = 1130 << 16; window['AscDFH'].historyitem_type_PresentationSection = 1131 << 16; window['AscDFH'].historyitem_type_PivotTableDefinition = 1132 << 16; window['AscDFH'].historyitem_type_DocumentMacros = 2000 << 16; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Типы изменений, разбитые по классам // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// window['AscDFH'].historyitem_Unknown_Unknown = window['AscDFH'].historyitem_type_Unknown | 0; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе CTableId //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_TableId_Add = window['AscDFH'].historyitem_type_TableId | 1; window['AscDFH'].historyitem_TableId_Description = window['AscDFH'].historyitem_type_TableId | 0xFFFF; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе CDocument //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_Document_AddItem = window['AscDFH'].historyitem_type_Document | 1; window['AscDFH'].historyitem_Document_RemoveItem = window['AscDFH'].historyitem_type_Document | 2; window['AscDFH'].historyitem_Document_DefaultTab = window['AscDFH'].historyitem_type_Document | 3; window['AscDFH'].historyitem_Document_EvenAndOddHeaders = window['AscDFH'].historyitem_type_Document | 4; window['AscDFH'].historyitem_Document_DefaultLanguage = window['AscDFH'].historyitem_type_Document | 5; window['AscDFH'].historyitem_Document_MathSettings = window['AscDFH'].historyitem_type_Document | 6; window['AscDFH'].historyitem_Document_SdtGlobalSettings = window['AscDFH'].historyitem_type_Document | 7; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе Paragraph //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_Paragraph_AddItem = window['AscDFH'].historyitem_type_Paragraph | 1; window['AscDFH'].historyitem_Paragraph_RemoveItem = window['AscDFH'].historyitem_type_Paragraph | 2; window['AscDFH'].historyitem_Paragraph_Numbering = window['AscDFH'].historyitem_type_Paragraph | 3; window['AscDFH'].historyitem_Paragraph_Align = window['AscDFH'].historyitem_type_Paragraph | 4; window['AscDFH'].historyitem_Paragraph_Ind_First = window['AscDFH'].historyitem_type_Paragraph | 5; window['AscDFH'].historyitem_Paragraph_Ind_Right = window['AscDFH'].historyitem_type_Paragraph | 6; window['AscDFH'].historyitem_Paragraph_Ind_Left = window['AscDFH'].historyitem_type_Paragraph | 7; window['AscDFH'].historyitem_Paragraph_ContextualSpacing = window['AscDFH'].historyitem_type_Paragraph | 8; window['AscDFH'].historyitem_Paragraph_KeepLines = window['AscDFH'].historyitem_type_Paragraph | 9; window['AscDFH'].historyitem_Paragraph_KeepNext = window['AscDFH'].historyitem_type_Paragraph | 10; window['AscDFH'].historyitem_Paragraph_PageBreakBefore = window['AscDFH'].historyitem_type_Paragraph | 11; window['AscDFH'].historyitem_Paragraph_Spacing_Line = window['AscDFH'].historyitem_type_Paragraph | 12; window['AscDFH'].historyitem_Paragraph_Spacing_LineRule = window['AscDFH'].historyitem_type_Paragraph | 13; window['AscDFH'].historyitem_Paragraph_Spacing_Before = window['AscDFH'].historyitem_type_Paragraph | 14; window['AscDFH'].historyitem_Paragraph_Spacing_After = window['AscDFH'].historyitem_type_Paragraph | 15; window['AscDFH'].historyitem_Paragraph_Spacing_AfterAutoSpacing = window['AscDFH'].historyitem_type_Paragraph | 16; window['AscDFH'].historyitem_Paragraph_Spacing_BeforeAutoSpacing = window['AscDFH'].historyitem_type_Paragraph | 17; window['AscDFH'].historyitem_Paragraph_Shd_Value = window['AscDFH'].historyitem_type_Paragraph | 18; window['AscDFH'].historyitem_Paragraph_Shd_Color = window['AscDFH'].historyitem_type_Paragraph | 19; window['AscDFH'].historyitem_Paragraph_Shd_Unifill = window['AscDFH'].historyitem_type_Paragraph | 20; window['AscDFH'].historyitem_Paragraph_Shd = window['AscDFH'].historyitem_type_Paragraph | 21; window['AscDFH'].historyitem_Paragraph_WidowControl = window['AscDFH'].historyitem_type_Paragraph | 22; window['AscDFH'].historyitem_Paragraph_Tabs = window['AscDFH'].historyitem_type_Paragraph | 23; window['AscDFH'].historyitem_Paragraph_PStyle = window['AscDFH'].historyitem_type_Paragraph | 24; window['AscDFH'].historyitem_Paragraph_Borders_Between = window['AscDFH'].historyitem_type_Paragraph | 25; window['AscDFH'].historyitem_Paragraph_Borders_Bottom = window['AscDFH'].historyitem_type_Paragraph | 26; window['AscDFH'].historyitem_Paragraph_Borders_Left = window['AscDFH'].historyitem_type_Paragraph | 27; window['AscDFH'].historyitem_Paragraph_Borders_Right = window['AscDFH'].historyitem_type_Paragraph | 28; window['AscDFH'].historyitem_Paragraph_Borders_Top = window['AscDFH'].historyitem_type_Paragraph | 29; window['AscDFH'].historyitem_Paragraph_Pr = window['AscDFH'].historyitem_type_Paragraph | 30; window['AscDFH'].historyitem_Paragraph_PresentationPr_Bullet = window['AscDFH'].historyitem_type_Paragraph | 31; window['AscDFH'].historyitem_Paragraph_PresentationPr_Level = window['AscDFH'].historyitem_type_Paragraph | 32; window['AscDFH'].historyitem_Paragraph_FramePr = window['AscDFH'].historyitem_type_Paragraph | 33; window['AscDFH'].historyitem_Paragraph_SectionPr = window['AscDFH'].historyitem_type_Paragraph | 34; window['AscDFH'].historyitem_Paragraph_PrChange = window['AscDFH'].historyitem_type_Paragraph | 35; window['AscDFH'].historyitem_Paragraph_PrReviewInfo = window['AscDFH'].historyitem_type_Paragraph | 36; window['AscDFH'].historyitem_Paragraph_OutlineLvl = window['AscDFH'].historyitem_type_Paragraph | 37; window['AscDFH'].historyitem_Paragraph_DefaultTabSize = window['AscDFH'].historyitem_type_Paragraph | 38; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе ParaTextPr //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_TextPr_Bold = window['AscDFH'].historyitem_type_TextPr | 1; window['AscDFH'].historyitem_TextPr_Italic = window['AscDFH'].historyitem_type_TextPr | 2; window['AscDFH'].historyitem_TextPr_Strikeout = window['AscDFH'].historyitem_type_TextPr | 3; window['AscDFH'].historyitem_TextPr_Underline = window['AscDFH'].historyitem_type_TextPr | 4; window['AscDFH'].historyitem_TextPr_FontSize = window['AscDFH'].historyitem_type_TextPr | 5; window['AscDFH'].historyitem_TextPr_Color = window['AscDFH'].historyitem_type_TextPr | 6; window['AscDFH'].historyitem_TextPr_VertAlign = window['AscDFH'].historyitem_type_TextPr | 7; window['AscDFH'].historyitem_TextPr_HighLight = window['AscDFH'].historyitem_type_TextPr | 8; window['AscDFH'].historyitem_TextPr_RStyle = window['AscDFH'].historyitem_type_TextPr | 9; window['AscDFH'].historyitem_TextPr_Spacing = window['AscDFH'].historyitem_type_TextPr | 10; window['AscDFH'].historyitem_TextPr_DStrikeout = window['AscDFH'].historyitem_type_TextPr | 11; window['AscDFH'].historyitem_TextPr_Caps = window['AscDFH'].historyitem_type_TextPr | 12; window['AscDFH'].historyitem_TextPr_SmallCaps = window['AscDFH'].historyitem_type_TextPr | 13; window['AscDFH'].historyitem_TextPr_Position = window['AscDFH'].historyitem_type_TextPr | 14; window['AscDFH'].historyitem_TextPr_Value = window['AscDFH'].historyitem_type_TextPr | 15; window['AscDFH'].historyitem_TextPr_RFonts = window['AscDFH'].historyitem_type_TextPr | 16; window['AscDFH'].historyitem_TextPr_RFonts_Ascii = window['AscDFH'].historyitem_type_TextPr | 17; window['AscDFH'].historyitem_TextPr_RFonts_HAnsi = window['AscDFH'].historyitem_type_TextPr | 18; window['AscDFH'].historyitem_TextPr_RFonts_CS = window['AscDFH'].historyitem_type_TextPr | 19; window['AscDFH'].historyitem_TextPr_RFonts_EastAsia = window['AscDFH'].historyitem_type_TextPr | 20; window['AscDFH'].historyitem_TextPr_RFonts_Hint = window['AscDFH'].historyitem_type_TextPr | 21; window['AscDFH'].historyitem_TextPr_Lang = window['AscDFH'].historyitem_type_TextPr | 22; window['AscDFH'].historyitem_TextPr_Lang_Bidi = window['AscDFH'].historyitem_type_TextPr | 23; window['AscDFH'].historyitem_TextPr_Lang_EastAsia = window['AscDFH'].historyitem_type_TextPr | 24; window['AscDFH'].historyitem_TextPr_Lang_Val = window['AscDFH'].historyitem_type_TextPr | 25; window['AscDFH'].historyitem_TextPr_Unifill = window['AscDFH'].historyitem_type_TextPr | 26; window['AscDFH'].historyitem_TextPr_FontSizeCS = window['AscDFH'].historyitem_type_TextPr | 27; window['AscDFH'].historyitem_TextPr_Outline = window['AscDFH'].historyitem_type_TextPr | 28; window['AscDFH'].historyitem_TextPr_Fill = window['AscDFH'].historyitem_type_TextPr | 29; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе ParaDrawing //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_Drawing_DrawingType = window['AscDFH'].historyitem_type_Drawing | 1; window['AscDFH'].historyitem_Drawing_WrappingType = window['AscDFH'].historyitem_type_Drawing | 2; window['AscDFH'].historyitem_Drawing_Distance = window['AscDFH'].historyitem_type_Drawing | 3; window['AscDFH'].historyitem_Drawing_AllowOverlap = window['AscDFH'].historyitem_type_Drawing | 4; window['AscDFH'].historyitem_Drawing_PositionH = window['AscDFH'].historyitem_type_Drawing | 5; window['AscDFH'].historyitem_Drawing_PositionV = window['AscDFH'].historyitem_type_Drawing | 6; window['AscDFH'].historyitem_Drawing_BehindDoc = window['AscDFH'].historyitem_type_Drawing | 7; window['AscDFH'].historyitem_Drawing_SetGraphicObject = window['AscDFH'].historyitem_type_Drawing | 8; window['AscDFH'].historyitem_Drawing_SetSimplePos = window['AscDFH'].historyitem_type_Drawing | 9; window['AscDFH'].historyitem_Drawing_SetExtent = window['AscDFH'].historyitem_type_Drawing | 10; window['AscDFH'].historyitem_Drawing_SetWrapPolygon = window['AscDFH'].historyitem_type_Drawing | 11; window['AscDFH'].historyitem_Drawing_SetLocked = window['AscDFH'].historyitem_type_Drawing | 12; window['AscDFH'].historyitem_Drawing_SetRelativeHeight = window['AscDFH'].historyitem_type_Drawing | 13; window['AscDFH'].historyitem_Drawing_SetEffectExtent = window['AscDFH'].historyitem_type_Drawing | 14; window['AscDFH'].historyitem_Drawing_SetParent = window['AscDFH'].historyitem_type_Drawing | 15; window['AscDFH'].historyitem_Drawing_SetParaMath = window['AscDFH'].historyitem_type_Drawing | 16; window['AscDFH'].historyitem_Drawing_LayoutInCell = window['AscDFH'].historyitem_type_Drawing | 17; window['AscDFH'].historyitem_Drawing_SetSizeRelH = window['AscDFH'].historyitem_type_Drawing | 18; window['AscDFH'].historyitem_Drawing_SetSizeRelV = window['AscDFH'].historyitem_type_Drawing | 19; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе CTable //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_Table_TableW = window['AscDFH'].historyitem_type_Table | 1; window['AscDFH'].historyitem_Table_TableCellMar = window['AscDFH'].historyitem_type_Table | 2; window['AscDFH'].historyitem_Table_TableAlign = window['AscDFH'].historyitem_type_Table | 3; window['AscDFH'].historyitem_Table_TableInd = window['AscDFH'].historyitem_type_Table | 4; window['AscDFH'].historyitem_Table_TableBorder_Left = window['AscDFH'].historyitem_type_Table | 5; window['AscDFH'].historyitem_Table_TableBorder_Top = window['AscDFH'].historyitem_type_Table | 6; window['AscDFH'].historyitem_Table_TableBorder_Right = window['AscDFH'].historyitem_type_Table | 7; window['AscDFH'].historyitem_Table_TableBorder_Bottom = window['AscDFH'].historyitem_type_Table | 8; window['AscDFH'].historyitem_Table_TableBorder_InsideH = window['AscDFH'].historyitem_type_Table | 9; window['AscDFH'].historyitem_Table_TableBorder_InsideV = window['AscDFH'].historyitem_type_Table | 10; window['AscDFH'].historyitem_Table_TableShd = window['AscDFH'].historyitem_type_Table | 11; window['AscDFH'].historyitem_Table_Inline = window['AscDFH'].historyitem_type_Table | 12; window['AscDFH'].historyitem_Table_AddRow = window['AscDFH'].historyitem_type_Table | 13; window['AscDFH'].historyitem_Table_RemoveRow = window['AscDFH'].historyitem_type_Table | 14; window['AscDFH'].historyitem_Table_TableGrid = window['AscDFH'].historyitem_type_Table | 15; window['AscDFH'].historyitem_Table_TableLook = window['AscDFH'].historyitem_type_Table | 16; window['AscDFH'].historyitem_Table_TableStyleRowBandSize = window['AscDFH'].historyitem_type_Table | 17; window['AscDFH'].historyitem_Table_TableStyleColBandSize = window['AscDFH'].historyitem_type_Table | 18; window['AscDFH'].historyitem_Table_TableStyle = window['AscDFH'].historyitem_type_Table | 19; window['AscDFH'].historyitem_Table_AllowOverlap = window['AscDFH'].historyitem_type_Table | 20; window['AscDFH'].historyitem_Table_PositionH = window['AscDFH'].historyitem_type_Table | 21; window['AscDFH'].historyitem_Table_PositionV = window['AscDFH'].historyitem_type_Table | 22; window['AscDFH'].historyitem_Table_Distance = window['AscDFH'].historyitem_type_Table | 23; window['AscDFH'].historyitem_Table_Pr = window['AscDFH'].historyitem_type_Table | 24; window['AscDFH'].historyitem_Table_TableLayout = window['AscDFH'].historyitem_type_Table | 25; window['AscDFH'].historyitem_Table_TableDescription = window['AscDFH'].historyitem_type_Table | 26; window['AscDFH'].historyitem_Table_TableCaption = window['AscDFH'].historyitem_type_Table | 27; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе CTableRow //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_TableRow_Before = window['AscDFH'].historyitem_type_TableRow | 1; window['AscDFH'].historyitem_TableRow_After = window['AscDFH'].historyitem_type_TableRow | 2; window['AscDFH'].historyitem_TableRow_CellSpacing = window['AscDFH'].historyitem_type_TableRow | 3; window['AscDFH'].historyitem_TableRow_Height = window['AscDFH'].historyitem_type_TableRow | 4; window['AscDFH'].historyitem_TableRow_AddCell = window['AscDFH'].historyitem_type_TableRow | 5; window['AscDFH'].historyitem_TableRow_RemoveCell = window['AscDFH'].historyitem_type_TableRow | 6; window['AscDFH'].historyitem_TableRow_TableHeader = window['AscDFH'].historyitem_type_TableRow | 7; window['AscDFH'].historyitem_TableRow_Pr = window['AscDFH'].historyitem_type_TableRow | 8; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе CTableCell //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_TableCell_GridSpan = window['AscDFH'].historyitem_type_TableCell | 1; window['AscDFH'].historyitem_TableCell_Margins = window['AscDFH'].historyitem_type_TableCell | 2; window['AscDFH'].historyitem_TableCell_Shd = window['AscDFH'].historyitem_type_TableCell | 3; window['AscDFH'].historyitem_TableCell_VMerge = window['AscDFH'].historyitem_type_TableCell | 4; window['AscDFH'].historyitem_TableCell_Border_Left = window['AscDFH'].historyitem_type_TableCell | 5; window['AscDFH'].historyitem_TableCell_Border_Right = window['AscDFH'].historyitem_type_TableCell | 6; window['AscDFH'].historyitem_TableCell_Border_Top = window['AscDFH'].historyitem_type_TableCell | 7; window['AscDFH'].historyitem_TableCell_Border_Bottom = window['AscDFH'].historyitem_type_TableCell | 8; window['AscDFH'].historyitem_TableCell_VAlign = window['AscDFH'].historyitem_type_TableCell | 9; window['AscDFH'].historyitem_TableCell_W = window['AscDFH'].historyitem_type_TableCell | 10; window['AscDFH'].historyitem_TableCell_Pr = window['AscDFH'].historyitem_type_TableCell | 11; window['AscDFH'].historyitem_TableCell_TextDirection = window['AscDFH'].historyitem_type_TableCell | 12; window['AscDFH'].historyitem_TableCell_NoWrap = window['AscDFH'].historyitem_type_TableCell | 13; window['AscDFH'].historyitem_TableCell_HMerge = window['AscDFH'].historyitem_type_TableCell | 14; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе CDocumentContent //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_DocumentContent_AddItem = window['AscDFH'].historyitem_type_DocumentContent | 1; window['AscDFH'].historyitem_DocumentContent_RemoveItem = window['AscDFH'].historyitem_type_DocumentContent | 2; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе CAbstractNum //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_AbstractNum_LvlChange = window['AscDFH'].historyitem_type_AbstractNum | 1; window['AscDFH'].historyitem_AbstractNum_TextPrChange = window['AscDFH'].historyitem_type_AbstractNum | 2; window['AscDFH'].historyitem_AbstractNum_ParaPrChange = window['AscDFH'].historyitem_type_AbstractNum | 3; window['AscDFH'].historyitem_AbstractNum_StyleLink = window['AscDFH'].historyitem_type_AbstractNum | 4; window['AscDFH'].historyitem_AbstractNum_NumStyleLink = window['AscDFH'].historyitem_type_AbstractNum | 5; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе CNum //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_Num_LvlOverrideChange = window['AscDFH'].historyitem_type_Num | 1; window['AscDFH'].historyitem_Num_AbstractNum = window['AscDFH'].historyitem_type_Num | 2; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе СComment //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_Comment_Change = window['AscDFH'].historyitem_type_Comment | 1; window['AscDFH'].historyitem_Comment_TypeInfo = window['AscDFH'].historyitem_type_Comment | 2; window['AscDFH'].historyitem_Comment_Position = window['AscDFH'].historyitem_type_Comment | 3; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе CComments //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_Comments_Add = window['AscDFH'].historyitem_type_Comments | 1; window['AscDFH'].historyitem_Comments_Remove = window['AscDFH'].historyitem_type_Comments | 2; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе ParaHyperlink //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_Hyperlink_Value = window['AscDFH'].historyitem_type_Hyperlink | 1; window['AscDFH'].historyitem_Hyperlink_ToolTip = window['AscDFH'].historyitem_type_Hyperlink | 2; window['AscDFH'].historyitem_Hyperlink_AddItem = window['AscDFH'].historyitem_type_Hyperlink | 3; window['AscDFH'].historyitem_Hyperlink_RemoveItem = window['AscDFH'].historyitem_type_Hyperlink | 4; window['AscDFH'].historyitem_Hyperlink_Anchor = window['AscDFH'].historyitem_type_Hyperlink | 5; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе CStyle //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_Style_TextPr = window['AscDFH'].historyitem_type_Style | 1; window['AscDFH'].historyitem_Style_ParaPr = window['AscDFH'].historyitem_type_Style | 2; window['AscDFH'].historyitem_Style_TablePr = window['AscDFH'].historyitem_type_Style | 3; window['AscDFH'].historyitem_Style_TableRowPr = window['AscDFH'].historyitem_type_Style | 4; window['AscDFH'].historyitem_Style_TableCellPr = window['AscDFH'].historyitem_type_Style | 5; window['AscDFH'].historyitem_Style_TableBand1Horz = window['AscDFH'].historyitem_type_Style | 6; window['AscDFH'].historyitem_Style_TableBand1Vert = window['AscDFH'].historyitem_type_Style | 7; window['AscDFH'].historyitem_Style_TableBand2Horz = window['AscDFH'].historyitem_type_Style | 8; window['AscDFH'].historyitem_Style_TableBand2Vert = window['AscDFH'].historyitem_type_Style | 9; window['AscDFH'].historyitem_Style_TableFirstCol = window['AscDFH'].historyitem_type_Style | 10; window['AscDFH'].historyitem_Style_TableFirstRow = window['AscDFH'].historyitem_type_Style | 11; window['AscDFH'].historyitem_Style_TableLastCol = window['AscDFH'].historyitem_type_Style | 12; window['AscDFH'].historyitem_Style_TableLastRow = window['AscDFH'].historyitem_type_Style | 13; window['AscDFH'].historyitem_Style_TableTLCell = window['AscDFH'].historyitem_type_Style | 14; window['AscDFH'].historyitem_Style_TableTRCell = window['AscDFH'].historyitem_type_Style | 15; window['AscDFH'].historyitem_Style_TableBLCell = window['AscDFH'].historyitem_type_Style | 16; window['AscDFH'].historyitem_Style_TableBRCell = window['AscDFH'].historyitem_type_Style | 17; window['AscDFH'].historyitem_Style_TableWholeTable = window['AscDFH'].historyitem_type_Style | 18; window['AscDFH'].historyitem_Style_Name = window['AscDFH'].historyitem_type_Style | 101; window['AscDFH'].historyitem_Style_BasedOn = window['AscDFH'].historyitem_type_Style | 102; window['AscDFH'].historyitem_Style_Next = window['AscDFH'].historyitem_type_Style | 103; window['AscDFH'].historyitem_Style_Type = window['AscDFH'].historyitem_type_Style | 104; window['AscDFH'].historyitem_Style_QFormat = window['AscDFH'].historyitem_type_Style | 105; window['AscDFH'].historyitem_Style_UiPriority = window['AscDFH'].historyitem_type_Style | 106; window['AscDFH'].historyitem_Style_Hidden = window['AscDFH'].historyitem_type_Style | 107; window['AscDFH'].historyitem_Style_SemiHidden = window['AscDFH'].historyitem_type_Style | 108; window['AscDFH'].historyitem_Style_UnhideWhenUsed = window['AscDFH'].historyitem_type_Style | 109; window['AscDFH'].historyitem_Style_Link = window['AscDFH'].historyitem_type_Style | 110; window['AscDFH'].historyitem_Style_Custom = window['AscDFH'].historyitem_type_Style | 111; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе CStyles //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_Styles_Add = window['AscDFH'].historyitem_type_Styles | 1; window['AscDFH'].historyitem_Styles_Remove = window['AscDFH'].historyitem_type_Styles | 2; window['AscDFH'].historyitem_Styles_ChangeDefaultTextPr = window['AscDFH'].historyitem_type_Styles | 3; window['AscDFH'].historyitem_Styles_ChangeDefaultParaPr = window['AscDFH'].historyitem_type_Styles | 4; window['AscDFH'].historyitem_Styles_ChangeDefaultParagraphId = window['AscDFH'].historyitem_type_Styles | 5; window['AscDFH'].historyitem_Styles_ChangeDefaultCharacterId = window['AscDFH'].historyitem_type_Styles | 6; window['AscDFH'].historyitem_Styles_ChangeDefaultNumberingId = window['AscDFH'].historyitem_type_Styles | 7; window['AscDFH'].historyitem_Styles_ChangeDefaultTableId = window['AscDFH'].historyitem_type_Styles | 8; window['AscDFH'].historyitem_Styles_ChangeDefaultTableGridId = window['AscDFH'].historyitem_type_Styles | 9; window['AscDFH'].historyitem_Styles_ChangeDefaultHeadingsId = window['AscDFH'].historyitem_type_Styles | 10; window['AscDFH'].historyitem_Styles_ChangeDefaultParaListId = window['AscDFH'].historyitem_type_Styles | 11; window['AscDFH'].historyitem_Styles_ChangeDefaultHeaderId = window['AscDFH'].historyitem_type_Styles | 12; window['AscDFH'].historyitem_Styles_ChangeDefaultFooterId = window['AscDFH'].historyitem_type_Styles | 13; window['AscDFH'].historyitem_Styles_ChangeDefaultHyperlinkId = window['AscDFH'].historyitem_type_Styles | 14; window['AscDFH'].historyitem_Styles_ChangeDefaultFootnoteTextId = window['AscDFH'].historyitem_type_Styles | 15; window['AscDFH'].historyitem_Styles_ChangeDefaultFootnoteTextCharId = window['AscDFH'].historyitem_type_Styles | 16; window['AscDFH'].historyitem_Styles_ChangeDefaultFootnoteReferenceId = window['AscDFH'].historyitem_type_Styles | 17; window['AscDFH'].historyitem_Styles_ChangeDefaultNoSpacingId = window['AscDFH'].historyitem_type_Styles | 18; window['AscDFH'].historyitem_Styles_ChangeDefaultTitleId = window['AscDFH'].historyitem_type_Styles | 19; window['AscDFH'].historyitem_Styles_ChangeDefaultSubtitleId = window['AscDFH'].historyitem_type_Styles | 20; window['AscDFH'].historyitem_Styles_ChangeDefaultQuoteId = window['AscDFH'].historyitem_type_Styles | 21; window['AscDFH'].historyitem_Styles_ChangeDefaultIntenseQuoteId = window['AscDFH'].historyitem_type_Styles | 22; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе ParaMath //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_MathContent_AddItem = window['AscDFH'].historyitem_type_Math | 101; window['AscDFH'].historyitem_MathContent_RemoveItem = window['AscDFH'].historyitem_type_Math | 102; window['AscDFH'].historyitem_MathContent_ArgSize = window['AscDFH'].historyitem_type_Math | 103; window['AscDFH'].historyitem_MathPara_Jc = window['AscDFH'].historyitem_type_Math | 201; window['AscDFH'].historyitem_MathBase_AddItems = window['AscDFH'].historyitem_type_Math | 301; window['AscDFH'].historyitem_MathBase_RemoveItems = window['AscDFH'].historyitem_type_Math | 302; window['AscDFH'].historyitem_MathBase_FontSize = window['AscDFH'].historyitem_type_Math | 303; window['AscDFH'].historyitem_MathBase_Shd = window['AscDFH'].historyitem_type_Math | 304; window['AscDFH'].historyitem_MathBase_Color = window['AscDFH'].historyitem_type_Math | 305; window['AscDFH'].historyitem_MathBase_Unifill = window['AscDFH'].historyitem_type_Math | 306; window['AscDFH'].historyitem_MathBase_Underline = window['AscDFH'].historyitem_type_Math | 307; window['AscDFH'].historyitem_MathBase_Strikeout = window['AscDFH'].historyitem_type_Math | 308; window['AscDFH'].historyitem_MathBase_DoubleStrikeout = window['AscDFH'].historyitem_type_Math | 309; window['AscDFH'].historyitem_MathBase_Italic = window['AscDFH'].historyitem_type_Math | 310; window['AscDFH'].historyitem_MathBase_Bold = window['AscDFH'].historyitem_type_Math | 311; window['AscDFH'].historyitem_MathBase_RFontsAscii = window['AscDFH'].historyitem_type_Math | 312; window['AscDFH'].historyitem_MathBase_RFontsHAnsi = window['AscDFH'].historyitem_type_Math | 313; window['AscDFH'].historyitem_MathBase_RFontsCS = window['AscDFH'].historyitem_type_Math | 314; window['AscDFH'].historyitem_MathBase_RFontsEastAsia = window['AscDFH'].historyitem_type_Math | 315; window['AscDFH'].historyitem_MathBase_RFontsHint = window['AscDFH'].historyitem_type_Math | 316; window['AscDFH'].historyitem_MathBase_HighLight = window['AscDFH'].historyitem_type_Math | 317; window['AscDFH'].historyitem_MathBase_ReviewType = window['AscDFH'].historyitem_type_Math | 318; window['AscDFH'].historyitem_MathBase_TextFill = window['AscDFH'].historyitem_type_Math | 319; window['AscDFH'].historyitem_MathBase_TextOutline = window['AscDFH'].historyitem_type_Math | 320; window['AscDFH'].historyitem_MathBox_AlnAt = window['AscDFH'].historyitem_type_Math | 401; window['AscDFH'].historyitem_MathBox_ForcedBreak = window['AscDFH'].historyitem_type_Math | 402; window['AscDFH'].historyitem_MathFraction_Type = window['AscDFH'].historyitem_type_Math | 501; window['AscDFH'].historyitem_MathRadical_HideDegree = window['AscDFH'].historyitem_type_Math | 601; window['AscDFH'].historyitem_MathNary_LimLoc = window['AscDFH'].historyitem_type_Math | 701; window['AscDFH'].historyitem_MathNary_UpperLimit = window['AscDFH'].historyitem_type_Math | 702; window['AscDFH'].historyitem_MathNary_LowerLimit = window['AscDFH'].historyitem_type_Math | 703; window['AscDFH'].historyitem_MathDelimiter_BegOper = window['AscDFH'].historyitem_type_Math | 801; window['AscDFH'].historyitem_MathDelimiter_EndOper = window['AscDFH'].historyitem_type_Math | 802; window['AscDFH'].historyitem_MathDelimiter_Grow = window['AscDFH'].historyitem_type_Math | 803; window['AscDFH'].historyitem_MathDelimiter_Shape = window['AscDFH'].historyitem_type_Math | 804; window['AscDFH'].historyitem_MathDelimiter_SetColumn = window['AscDFH'].historyitem_type_Math | 805; window['AscDFH'].historyitem_MathGroupChar_Pr = window['AscDFH'].historyitem_type_Math | 901; window['AscDFH'].historyitem_MathLimit_Type = window['AscDFH'].historyitem_type_Math | 1001; window['AscDFH'].historyitem_MathBorderBox_Top = window['AscDFH'].historyitem_type_Math | 1101; window['AscDFH'].historyitem_MathBorderBox_Bot = window['AscDFH'].historyitem_type_Math | 1102; window['AscDFH'].historyitem_MathBorderBox_Left = window['AscDFH'].historyitem_type_Math | 1103; window['AscDFH'].historyitem_MathBorderBox_Right = window['AscDFH'].historyitem_type_Math | 1104; window['AscDFH'].historyitem_MathBorderBox_Hor = window['AscDFH'].historyitem_type_Math | 1105; window['AscDFH'].historyitem_MathBorderBox_Ver = window['AscDFH'].historyitem_type_Math | 1106; window['AscDFH'].historyitem_MathBorderBox_TopLTR = window['AscDFH'].historyitem_type_Math | 1107; window['AscDFH'].historyitem_MathBorderBox_TopRTL = window['AscDFH'].historyitem_type_Math | 1108; window['AscDFH'].historyitem_MathBar_LinePos = window['AscDFH'].historyitem_type_Math | 1201; window['AscDFH'].historyitem_MathMatrix_AddRow = window['AscDFH'].historyitem_type_Math | 1301; window['AscDFH'].historyitem_MathMatrix_RemoveRow = window['AscDFH'].historyitem_type_Math | 1302; window['AscDFH'].historyitem_MathMatrix_AddColumn = window['AscDFH'].historyitem_type_Math | 1303; window['AscDFH'].historyitem_MathMatrix_RemoveColumn = window['AscDFH'].historyitem_type_Math | 1304; window['AscDFH'].historyitem_MathMatrix_BaseJc = window['AscDFH'].historyitem_type_Math | 1305; window['AscDFH'].historyitem_MathMatrix_ColumnJc = window['AscDFH'].historyitem_type_Math | 1306; window['AscDFH'].historyitem_MathMatrix_Interval = window['AscDFH'].historyitem_type_Math | 1307; window['AscDFH'].historyitem_MathMatrix_Plh = window['AscDFH'].historyitem_type_Math | 1308; window['AscDFH'].historyitem_MathDegree_SubSupType = window['AscDFH'].historyitem_type_Math | 1401; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе ParaRun //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_ParaRun_AddItem = window['AscDFH'].historyitem_type_ParaRun | 1; window['AscDFH'].historyitem_ParaRun_RemoveItem = window['AscDFH'].historyitem_type_ParaRun | 2; window['AscDFH'].historyitem_ParaRun_Bold = window['AscDFH'].historyitem_type_ParaRun | 3; window['AscDFH'].historyitem_ParaRun_Italic = window['AscDFH'].historyitem_type_ParaRun | 4; window['AscDFH'].historyitem_ParaRun_Strikeout = window['AscDFH'].historyitem_type_ParaRun | 5; window['AscDFH'].historyitem_ParaRun_Underline = window['AscDFH'].historyitem_type_ParaRun | 6; window['AscDFH'].historyitem_ParaRun_FontFamily = window['AscDFH'].historyitem_type_ParaRun | 7; // obsolete window['AscDFH'].historyitem_ParaRun_FontSize = window['AscDFH'].historyitem_type_ParaRun | 8; window['AscDFH'].historyitem_ParaRun_Color = window['AscDFH'].historyitem_type_ParaRun | 9; window['AscDFH'].historyitem_ParaRun_VertAlign = window['AscDFH'].historyitem_type_ParaRun | 10; window['AscDFH'].historyitem_ParaRun_HighLight = window['AscDFH'].historyitem_type_ParaRun | 11; window['AscDFH'].historyitem_ParaRun_RStyle = window['AscDFH'].historyitem_type_ParaRun | 12; window['AscDFH'].historyitem_ParaRun_Spacing = window['AscDFH'].historyitem_type_ParaRun | 13; window['AscDFH'].historyitem_ParaRun_DStrikeout = window['AscDFH'].historyitem_type_ParaRun | 14; window['AscDFH'].historyitem_ParaRun_Caps = window['AscDFH'].historyitem_type_ParaRun | 15; window['AscDFH'].historyitem_ParaRun_SmallCaps = window['AscDFH'].historyitem_type_ParaRun | 16; window['AscDFH'].historyitem_ParaRun_Position = window['AscDFH'].historyitem_type_ParaRun | 17; window['AscDFH'].historyitem_ParaRun_Value = window['AscDFH'].historyitem_type_ParaRun | 18; // obsolete window['AscDFH'].historyitem_ParaRun_RFonts = window['AscDFH'].historyitem_type_ParaRun | 19; window['AscDFH'].historyitem_ParaRun_Lang = window['AscDFH'].historyitem_type_ParaRun | 20; window['AscDFH'].historyitem_ParaRun_RFonts_Ascii = window['AscDFH'].historyitem_type_ParaRun | 21; window['AscDFH'].historyitem_ParaRun_RFonts_HAnsi = window['AscDFH'].historyitem_type_ParaRun | 22; window['AscDFH'].historyitem_ParaRun_RFonts_CS = window['AscDFH'].historyitem_type_ParaRun | 23; window['AscDFH'].historyitem_ParaRun_RFonts_EastAsia = window['AscDFH'].historyitem_type_ParaRun | 24; window['AscDFH'].historyitem_ParaRun_RFonts_Hint = window['AscDFH'].historyitem_type_ParaRun | 25; window['AscDFH'].historyitem_ParaRun_Lang_Bidi = window['AscDFH'].historyitem_type_ParaRun | 26; window['AscDFH'].historyitem_ParaRun_Lang_EastAsia = window['AscDFH'].historyitem_type_ParaRun | 27; window['AscDFH'].historyitem_ParaRun_Lang_Val = window['AscDFH'].historyitem_type_ParaRun | 28; window['AscDFH'].historyitem_ParaRun_TextPr = window['AscDFH'].historyitem_type_ParaRun | 29; window['AscDFH'].historyitem_ParaRun_Unifill = window['AscDFH'].historyitem_type_ParaRun | 30; window['AscDFH'].historyitem_ParaRun_Shd = window['AscDFH'].historyitem_type_ParaRun | 31; window['AscDFH'].historyitem_ParaRun_MathStyle = window['AscDFH'].historyitem_type_ParaRun | 32; window['AscDFH'].historyitem_ParaRun_MathPrp = window['AscDFH'].historyitem_type_ParaRun | 33; window['AscDFH'].historyitem_ParaRun_ReviewType = window['AscDFH'].historyitem_type_ParaRun | 34; window['AscDFH'].historyitem_ParaRun_PrChange = window['AscDFH'].historyitem_type_ParaRun | 35; window['AscDFH'].historyitem_ParaRun_TextFill = window['AscDFH'].historyitem_type_ParaRun | 36; window['AscDFH'].historyitem_ParaRun_TextOutline = window['AscDFH'].historyitem_type_ParaRun | 37; window['AscDFH'].historyitem_ParaRun_PrReviewInfo = window['AscDFH'].historyitem_type_ParaRun | 38; window['AscDFH'].historyitem_ParaRun_ContentReviewInfo = window['AscDFH'].historyitem_type_ParaRun | 39; window['AscDFH'].historyitem_ParaRun_OnStartSplit = window['AscDFH'].historyitem_type_ParaRun | 40; window['AscDFH'].historyitem_ParaRun_OnEndSplit = window['AscDFH'].historyitem_type_ParaRun | 41; window['AscDFH'].historyitem_ParaRun_MathAlnAt = window['AscDFH'].historyitem_type_ParaRun | 42; window['AscDFH'].historyitem_ParaRun_MathForcedBreak = window['AscDFH'].historyitem_type_ParaRun | 43; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе CSectionPr //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_Section_PageSize_Orient = window['AscDFH'].historyitem_type_Section | 1; window['AscDFH'].historyitem_Section_PageSize_Size = window['AscDFH'].historyitem_type_Section | 2; window['AscDFH'].historyitem_Section_PageMargins = window['AscDFH'].historyitem_type_Section | 3; window['AscDFH'].historyitem_Section_Type = window['AscDFH'].historyitem_type_Section | 4; window['AscDFH'].historyitem_Section_Borders_Left = window['AscDFH'].historyitem_type_Section | 5; window['AscDFH'].historyitem_Section_Borders_Top = window['AscDFH'].historyitem_type_Section | 6; window['AscDFH'].historyitem_Section_Borders_Right = window['AscDFH'].historyitem_type_Section | 7; window['AscDFH'].historyitem_Section_Borders_Bottom = window['AscDFH'].historyitem_type_Section | 8; window['AscDFH'].historyitem_Section_Borders_Display = window['AscDFH'].historyitem_type_Section | 9; window['AscDFH'].historyitem_Section_Borders_OffsetFrom = window['AscDFH'].historyitem_type_Section | 10; window['AscDFH'].historyitem_Section_Borders_ZOrder = window['AscDFH'].historyitem_type_Section | 11; window['AscDFH'].historyitem_Section_Header_First = window['AscDFH'].historyitem_type_Section | 12; window['AscDFH'].historyitem_Section_Header_Even = window['AscDFH'].historyitem_type_Section | 13; window['AscDFH'].historyitem_Section_Header_Default = window['AscDFH'].historyitem_type_Section | 14; window['AscDFH'].historyitem_Section_Footer_First = window['AscDFH'].historyitem_type_Section | 15; window['AscDFH'].historyitem_Section_Footer_Even = window['AscDFH'].historyitem_type_Section | 16; window['AscDFH'].historyitem_Section_Footer_Default = window['AscDFH'].historyitem_type_Section | 17; window['AscDFH'].historyitem_Section_TitlePage = window['AscDFH'].historyitem_type_Section | 18; window['AscDFH'].historyitem_Section_PageMargins_Header = window['AscDFH'].historyitem_type_Section | 19; window['AscDFH'].historyitem_Section_PageMargins_Footer = window['AscDFH'].historyitem_type_Section | 20; window['AscDFH'].historyitem_Section_PageNumType_Start = window['AscDFH'].historyitem_type_Section | 21; window['AscDFH'].historyitem_Section_Columns_EqualWidth = window['AscDFH'].historyitem_type_Section | 22; window['AscDFH'].historyitem_Section_Columns_Space = window['AscDFH'].historyitem_type_Section | 23; window['AscDFH'].historyitem_Section_Columns_Num = window['AscDFH'].historyitem_type_Section | 24; window['AscDFH'].historyitem_Section_Columns_Sep = window['AscDFH'].historyitem_type_Section | 25; window['AscDFH'].historyitem_Section_Columns_Col = window['AscDFH'].historyitem_type_Section | 26; window['AscDFH'].historyitem_Section_Columns_SetCols = window['AscDFH'].historyitem_type_Section | 27; window['AscDFH'].historyitem_Section_Footnote_Pos = window['AscDFH'].historyitem_type_Section | 28; window['AscDFH'].historyitem_Section_Footnote_NumStart = window['AscDFH'].historyitem_type_Section | 29; window['AscDFH'].historyitem_Section_Footnote_NumRestart = window['AscDFH'].historyitem_type_Section | 30; window['AscDFH'].historyitem_Section_Footnote_NumFormat = window['AscDFH'].historyitem_type_Section | 31; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе ParaComment //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_ParaComment_CommentId = window['AscDFH'].historyitem_type_ParaComment | 1; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе ParaField //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_Field_AddItem = window['AscDFH'].historyitem_type_Field | 1; window['AscDFH'].historyitem_Field_RemoveItem = window['AscDFH'].historyitem_type_Field | 2; window['AscDFH'].historyitem_Field_FormFieldName = window['AscDFH'].historyitem_type_Field | 3; window['AscDFH'].historyitem_Field_FormFieldDefaultText = window['AscDFH'].historyitem_type_Field | 4; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе Footnotes //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_Footnotes_AddFootnote = window['AscDFH'].historyitem_type_Footnotes | 1; window['AscDFH'].historyitem_Footnotes_SetSeparator = window['AscDFH'].historyitem_type_Footnotes | 2; window['AscDFH'].historyitem_Footnotes_SetContinuationSeparator = window['AscDFH'].historyitem_type_Footnotes | 3; window['AscDFH'].historyitem_Footnotes_SetContinuationNotice = window['AscDFH'].historyitem_type_Footnotes | 4; window['AscDFH'].historyitem_Footnotes_SetFootnotePrPos = window['AscDFH'].historyitem_type_Footnotes | 5; window['AscDFH'].historyitem_Footnotes_SetFootnotePrNumStart = window['AscDFH'].historyitem_type_Footnotes | 6; window['AscDFH'].historyitem_Footnotes_SetFootnotePrNumRestart = window['AscDFH'].historyitem_type_Footnotes | 7; window['AscDFH'].historyitem_Footnotes_SetFootnotePrNumFormat = window['AscDFH'].historyitem_type_Footnotes | 8; //------------------------------------------------------------------------------------------------------------------ // Типы изменений в классе CSdtPr //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_SdtPr_Alias = window['AscDFH'].historyitem_type_SdtPr | 1; window['AscDFH'].historyitem_SdtPr_Id = window['AscDFH'].historyitem_type_SdtPr | 2; window['AscDFH'].historyitem_SdtPr_Tag = window['AscDFH'].historyitem_type_SdtPr | 3; window['AscDFH'].historyitem_SdtPr_Label = window['AscDFH'].historyitem_type_SdtPr | 4; window['AscDFH'].historyitem_SdtPr_Lock = window['AscDFH'].historyitem_type_SdtPr | 5; window['AscDFH'].historyitem_SdtPr_DocPartObj = window['AscDFH'].historyitem_type_SdtPr | 6; window['AscDFH'].historyitem_SdtPr_Appearance = window['AscDFH'].historyitem_type_SdtPr | 7; window['AscDFH'].historyitem_SdtPr_Color = window['AscDFH'].historyitem_type_SdtPr | 8; //------------------------------------------------------------------------------------------------------------------ // Графические классы общего назначение (без привязки к конкретному классу) //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_AutoShapes_SetDrawingBaseCoors = window['AscDFH'].historyitem_type_CommonShape | 101; window['AscDFH'].historyitem_AutoShapes_SetWorksheet = window['AscDFH'].historyitem_type_CommonShape | 102; window['AscDFH'].historyitem_AutoShapes_AddToDrawingObjects = window['AscDFH'].historyitem_type_CommonShape | 103; window['AscDFH'].historyitem_AutoShapes_RemoveFromDrawingObjects = window['AscDFH'].historyitem_type_CommonShape | 104; window['AscDFH'].historyitem_AutoShapes_SetBFromSerialize = window['AscDFH'].historyitem_type_CommonShape | 105; window['AscDFH'].historyitem_AutoShapes_SetLocks = window['AscDFH'].historyitem_type_CommonShape | 106; window['AscDFH'].historyitem_AutoShapes_SetDrawingBaseType = window['AscDFH'].historyitem_type_CommonShape | 107; window['AscDFH'].historyitem_AutoShapes_SetDrawingBaseExt = window['AscDFH'].historyitem_type_CommonShape | 108; window['AscDFH'].historyitem_AutoShapes_SetDrawingBasePos = window['AscDFH'].historyitem_type_CommonShape | 109; window['AscDFH'].historyitem_ChartFormatSetChart = window['AscDFH'].historyitem_type_CommonShape | 201; window['AscDFH'].historyitem_CommonChart_RemoveSeries = window['AscDFH'].historyitem_type_CommonShape | 301; window['AscDFH'].historyitem_CommonSeries_RemoveDPt = window['AscDFH'].historyitem_type_CommonShape | 302; window['AscDFH'].historyitem_CommonLit_RemoveDPt = window['AscDFH'].historyitem_type_CommonShape | 303; window['AscDFH'].historyitem_CommonChartFormat_SetParent = window['AscDFH'].historyitem_type_CommonShape | 304; window['AscDFH'].historyitem_Common_AddWatermark = window['AscDFH'].historyitem_type_CommonShape | 401; //------------------------------------------------------------------------------------------------------------------ // Графические классы //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_Presentation_AddSlide = window['AscDFH'].historyitem_type_Presentation | 1; window['AscDFH'].historyitem_Presentation_RemoveSlide = window['AscDFH'].historyitem_type_Presentation | 2; window['AscDFH'].historyitem_Presentation_SlideSize = window['AscDFH'].historyitem_type_Presentation | 3; window['AscDFH'].historyitem_Presentation_AddSlideMaster = window['AscDFH'].historyitem_type_Presentation | 4; window['AscDFH'].historyitem_Presentation_ChangeTheme = window['AscDFH'].historyitem_type_Presentation | 5; window['AscDFH'].historyitem_Presentation_ChangeColorScheme = window['AscDFH'].historyitem_type_Presentation | 6; window['AscDFH'].historyitem_Presentation_SetShowPr = window['AscDFH'].historyitem_type_Presentation | 7; window['AscDFH'].historyitem_Presentation_SetDefaultTextStyle = window['AscDFH'].historyitem_type_Presentation | 8; window['AscDFH'].historyitem_Presentation_AddSection = window['AscDFH'].historyitem_type_Presentation | 9; window['AscDFH'].historyitem_Presentation_RemoveSection = window['AscDFH'].historyitem_type_Presentation | 10; window['AscDFH'].historyitem_ColorMod_SetName = window['AscDFH'].historyitem_type_ColorMod | 1; window['AscDFH'].historyitem_ColorMod_SetVal = window['AscDFH'].historyitem_type_ColorMod | 2; window['AscDFH'].historyitem_ColorModifiers_AddColorMod = window['AscDFH'].historyitem_type_ColorModifiers | 1; window['AscDFH'].historyitem_ColorModifiers_RemoveColorMod = window['AscDFH'].historyitem_type_ColorModifiers | 2; window['AscDFH'].historyitem_SysColor_SetId = window['AscDFH'].historyitem_type_SysColor | 1; window['AscDFH'].historyitem_SysColor_SetR = window['AscDFH'].historyitem_type_SysColor | 2; window['AscDFH'].historyitem_SysColor_SetG = window['AscDFH'].historyitem_type_SysColor | 3; window['AscDFH'].historyitem_SysColor_SetB = window['AscDFH'].historyitem_type_SysColor | 4; window['AscDFH'].historyitem_PrstColor_SetId = window['AscDFH'].historyitem_type_PrstColor | 1; window['AscDFH'].historyitem_RGBColor_SetColor = window['AscDFH'].historyitem_type_RGBColor | 1; window['AscDFH'].historyitem_SchemeColor_SetId = window['AscDFH'].historyitem_type_SchemeColor | 1; window['AscDFH'].historyitem_UniColor_SetColor = window['AscDFH'].historyitem_type_UniColor | 1; window['AscDFH'].historyitem_UniColor_SetMods = window['AscDFH'].historyitem_type_UniColor | 2; window['AscDFH'].historyitem_SrcRect_SetLTRB = window['AscDFH'].historyitem_type_SrcRect | 1; window['AscDFH'].historyitem_BlipFill_SetRasterImageId = window['AscDFH'].historyitem_type_BlipFill | 1; window['AscDFH'].historyitem_BlipFill_SetVectorImageBin = window['AscDFH'].historyitem_type_BlipFill | 2; window['AscDFH'].historyitem_BlipFill_SetSrcRect = window['AscDFH'].historyitem_type_BlipFill | 3; window['AscDFH'].historyitem_BlipFill_SetStretch = window['AscDFH'].historyitem_type_BlipFill | 4; window['AscDFH'].historyitem_BlipFill_SetTile = window['AscDFH'].historyitem_type_BlipFill | 5; window['AscDFH'].historyitem_BlipFill_SetRotWithShape = window['AscDFH'].historyitem_type_BlipFill | 6; window['AscDFH'].historyitem_SolidFill_SetColor = window['AscDFH'].historyitem_type_SolidFill | 1; window['AscDFH'].historyitem_Gs_SetColor = window['AscDFH'].historyitem_type_Gs | 1; window['AscDFH'].historyitem_Gs_SetPos = window['AscDFH'].historyitem_type_Gs | 2; window['AscDFH'].historyitem_GradLin_SetAngle = window['AscDFH'].historyitem_type_GradLin | 1; window['AscDFH'].historyitem_GradLin_SetScale = window['AscDFH'].historyitem_type_GradLin | 2; window['AscDFH'].historyitem_GradPath_SetPath = window['AscDFH'].historyitem_type_GradPath | 1; window['AscDFH'].historyitem_GradPath_SetRect = window['AscDFH'].historyitem_type_GradPath | 2; window['AscDFH'].historyitem_GradFill_AddColor = window['AscDFH'].historyitem_type_GradFill | 1; window['AscDFH'].historyitem_GradFill_SetLin = window['AscDFH'].historyitem_type_GradFill | 2; window['AscDFH'].historyitem_GradFill_SetPath = window['AscDFH'].historyitem_type_GradFill | 3; window['AscDFH'].historyitem_PathFill_SetFType = window['AscDFH'].historyitem_type_PathFill | 1; window['AscDFH'].historyitem_PathFill_SetFgClr = window['AscDFH'].historyitem_type_PathFill | 2; window['AscDFH'].historyitem_PathFill_SetBgClr = window['AscDFH'].historyitem_type_PathFill | 3; window['AscDFH'].historyitem_UniFill_SetFill = window['AscDFH'].historyitem_type_UniFill | 1; window['AscDFH'].historyitem_UniFill_SetTransparent = window['AscDFH'].historyitem_type_UniFill | 2; window['AscDFH'].historyitem_EndArrow_SetType = window['AscDFH'].historyitem_type_EndArrow | 1; window['AscDFH'].historyitem_EndArrow_SetLen = window['AscDFH'].historyitem_type_EndArrow | 2; window['AscDFH'].historyitem_EndArrow_SetW = window['AscDFH'].historyitem_type_EndArrow | 3; window['AscDFH'].historyitem_LineJoin_SetType = window['AscDFH'].historyitem_type_LineJoin | 1; window['AscDFH'].historyitem_LineJoin_SetLimit = window['AscDFH'].historyitem_type_LineJoin | 2; window['AscDFH'].historyitem_Ln_SetFill = window['AscDFH'].historyitem_type_Ln | 1; window['AscDFH'].historyitem_Ln_SetPrstDash = window['AscDFH'].historyitem_type_Ln | 2; window['AscDFH'].historyitem_Ln_SetJoin = window['AscDFH'].historyitem_type_Ln | 3; window['AscDFH'].historyitem_Ln_SetHeadEnd = window['AscDFH'].historyitem_type_Ln | 4; window['AscDFH'].historyitem_Ln_SetTailEnd = window['AscDFH'].historyitem_type_Ln | 5; window['AscDFH'].historyitem_Ln_SetAlgn = window['AscDFH'].historyitem_type_Ln | 6; window['AscDFH'].historyitem_Ln_SetCap = window['AscDFH'].historyitem_type_Ln | 7; window['AscDFH'].historyitem_Ln_SetCmpd = window['AscDFH'].historyitem_type_Ln | 8; window['AscDFH'].historyitem_Ln_SetW = window['AscDFH'].historyitem_type_Ln | 9; window['AscDFH'].historyitem_DefaultShapeDefinition_SetSpPr = window['AscDFH'].historyitem_type_DefaultShapeDefinition | 1; window['AscDFH'].historyitem_DefaultShapeDefinition_SetBodyPr = window['AscDFH'].historyitem_type_DefaultShapeDefinition | 2; window['AscDFH'].historyitem_DefaultShapeDefinition_SetLstStyle = window['AscDFH'].historyitem_type_DefaultShapeDefinition | 3; window['AscDFH'].historyitem_DefaultShapeDefinition_SetStyle = window['AscDFH'].historyitem_type_DefaultShapeDefinition | 4; window['AscDFH'].historyitem_CNvPr_SetId = window['AscDFH'].historyitem_type_CNvPr | 1; window['AscDFH'].historyitem_CNvPr_SetName = window['AscDFH'].historyitem_type_CNvPr | 2; window['AscDFH'].historyitem_CNvPr_SetIsHidden = window['AscDFH'].historyitem_type_CNvPr | 3; window['AscDFH'].historyitem_CNvPr_SetDescr = window['AscDFH'].historyitem_type_CNvPr | 4; window['AscDFH'].historyitem_CNvPr_SetTitle = window['AscDFH'].historyitem_type_CNvPr | 5; window['AscDFH'].historyitem_CNvPr_SetHlinkClick = window['AscDFH'].historyitem_type_CNvPr | 6; window['AscDFH'].historyitem_CNvPr_SetHlinkHover = window['AscDFH'].historyitem_type_CNvPr | 7; window['AscDFH'].historyitem_NvPr_SetIsPhoto = window['AscDFH'].historyitem_type_NvPr | 1; window['AscDFH'].historyitem_NvPr_SetUserDrawn = window['AscDFH'].historyitem_type_NvPr | 2; window['AscDFH'].historyitem_NvPr_SetPh = window['AscDFH'].historyitem_type_NvPr | 3; window['AscDFH'].historyitem_NvPr_SetUniMedia = window['AscDFH'].historyitem_type_NvPr | 4; window['AscDFH'].historyitem_Ph_SetHasCustomPrompt = window['AscDFH'].historyitem_type_Ph | 1; window['AscDFH'].historyitem_Ph_SetIdx = window['AscDFH'].historyitem_type_Ph | 2; window['AscDFH'].historyitem_Ph_SetOrient = window['AscDFH'].historyitem_type_Ph | 3; window['AscDFH'].historyitem_Ph_SetSz = window['AscDFH'].historyitem_type_Ph | 4; window['AscDFH'].historyitem_Ph_SetType = window['AscDFH'].historyitem_type_Ph | 5; window['AscDFH'].historyitem_UniNvPr_SetCNvPr = window['AscDFH'].historyitem_type_UniNvPr | 1; window['AscDFH'].historyitem_UniNvPr_SetUniPr = window['AscDFH'].historyitem_type_UniNvPr | 2; window['AscDFH'].historyitem_UniNvPr_SetNvPr = window['AscDFH'].historyitem_type_UniNvPr | 3; window['AscDFH'].historyitem_UniNvPr_SetUniSpPr = window['AscDFH'].historyitem_type_UniNvPr | 4; window['AscDFH'].historyitem_StyleRef_SetIdx = window['AscDFH'].historyitem_type_StyleRef | 1; window['AscDFH'].historyitem_StyleRef_SetColor = window['AscDFH'].historyitem_type_StyleRef | 2; window['AscDFH'].historyitem_FontRef_SetIdx = window['AscDFH'].historyitem_type_FontRef | 1; window['AscDFH'].historyitem_FontRef_SetColor = window['AscDFH'].historyitem_type_FontRef | 2; window['AscDFH'].historyitem_Chart_SetAutoTitleDeleted = window['AscDFH'].historyitem_type_Chart | 1; window['AscDFH'].historyitem_Chart_SetBackWall = window['AscDFH'].historyitem_type_Chart | 2; window['AscDFH'].historyitem_Chart_SetDispBlanksAs = window['AscDFH'].historyitem_type_Chart | 3; window['AscDFH'].historyitem_Chart_SetFloor = window['AscDFH'].historyitem_type_Chart | 4; window['AscDFH'].historyitem_Chart_SetLegend = window['AscDFH'].historyitem_type_Chart | 5; window['AscDFH'].historyitem_Chart_AddPivotFmt = window['AscDFH'].historyitem_type_Chart | 6; window['AscDFH'].historyitem_Chart_SetPlotArea = window['AscDFH'].historyitem_type_Chart | 7; window['AscDFH'].historyitem_Chart_SetPlotVisOnly = window['AscDFH'].historyitem_type_Chart | 8; window['AscDFH'].historyitem_Chart_SetShowDLblsOverMax = window['AscDFH'].historyitem_type_Chart | 9; window['AscDFH'].historyitem_Chart_SetSideWall = window['AscDFH'].historyitem_type_Chart | 10; window['AscDFH'].historyitem_Chart_SetTitle = window['AscDFH'].historyitem_type_Chart | 11; window['AscDFH'].historyitem_Chart_SetView3D = window['AscDFH'].historyitem_type_Chart | 12; window['AscDFH'].historyitem_ChartSpace_SetChart = window['AscDFH'].historyitem_type_ChartSpace | 1; window['AscDFH'].historyitem_ChartSpace_SetClrMapOvr = window['AscDFH'].historyitem_type_ChartSpace | 2; window['AscDFH'].historyitem_ChartSpace_SetDate1904 = window['AscDFH'].historyitem_type_ChartSpace | 3; window['AscDFH'].historyitem_ChartSpace_SetExternalData = window['AscDFH'].historyitem_type_ChartSpace | 4; window['AscDFH'].historyitem_ChartSpace_SetLang = window['AscDFH'].historyitem_type_ChartSpace | 5; window['AscDFH'].historyitem_ChartSpace_SetPivotSource = window['AscDFH'].historyitem_type_ChartSpace | 6; window['AscDFH'].historyitem_ChartSpace_SetPrintSettings = window['AscDFH'].historyitem_type_ChartSpace | 7; window['AscDFH'].historyitem_ChartSpace_SetProtection = window['AscDFH'].historyitem_type_ChartSpace | 8; window['AscDFH'].historyitem_ChartSpace_SetRoundedCorners = window['AscDFH'].historyitem_type_ChartSpace | 9; window['AscDFH'].historyitem_ChartSpace_SetSpPr = window['AscDFH'].historyitem_type_ChartSpace | 10; window['AscDFH'].historyitem_ChartSpace_SetStyle = window['AscDFH'].historyitem_type_ChartSpace | 11; window['AscDFH'].historyitem_ChartSpace_SetTxPr = window['AscDFH'].historyitem_type_ChartSpace | 12; window['AscDFH'].historyitem_ChartSpace_SetUserShapes = window['AscDFH'].historyitem_type_ChartSpace | 13; window['AscDFH'].historyitem_ChartSpace_SetThemeOverride = window['AscDFH'].historyitem_type_ChartSpace | 14; window['AscDFH'].historyitem_ChartSpace_SetGroup = window['AscDFH'].historyitem_type_ChartSpace | 15; window['AscDFH'].historyitem_ChartSpace_SetParent = window['AscDFH'].historyitem_type_ChartSpace | 16; window['AscDFH'].historyitem_ChartSpace_SetNvGrFrProps = window['AscDFH'].historyitem_type_ChartSpace | 17; window['AscDFH'].historyitem_Legend_SetLayout = window['AscDFH'].historyitem_type_Legend | 1; window['AscDFH'].historyitem_Legend_AddLegendEntry = window['AscDFH'].historyitem_type_Legend | 2; window['AscDFH'].historyitem_Legend_SetLegendPos = window['AscDFH'].historyitem_type_Legend | 3; window['AscDFH'].historyitem_Legend_SetOverlay = window['AscDFH'].historyitem_type_Legend | 4; window['AscDFH'].historyitem_Legend_SetSpPr = window['AscDFH'].historyitem_type_Legend | 5; window['AscDFH'].historyitem_Legend_SetTxPr = window['AscDFH'].historyitem_type_Legend | 6; window['AscDFH'].historyitem_Layout_SetH = window['AscDFH'].historyitem_type_Layout | 1; window['AscDFH'].historyitem_Layout_SetHMode = window['AscDFH'].historyitem_type_Layout | 2; window['AscDFH'].historyitem_Layout_SetLayoutTarget = window['AscDFH'].historyitem_type_Layout | 3; window['AscDFH'].historyitem_Layout_SetW = window['AscDFH'].historyitem_type_Layout | 4; window['AscDFH'].historyitem_Layout_SetWMode = window['AscDFH'].historyitem_type_Layout | 5; window['AscDFH'].historyitem_Layout_SetX = window['AscDFH'].historyitem_type_Layout | 6; window['AscDFH'].historyitem_Layout_SetXMode = window['AscDFH'].historyitem_type_Layout | 7; window['AscDFH'].historyitem_Layout_SetY = window['AscDFH'].historyitem_type_Layout | 8; window['AscDFH'].historyitem_Layout_SetYMode = window['AscDFH'].historyitem_type_Layout | 9; window['AscDFH'].historyitem_LegendEntry_SetDelete = window['AscDFH'].historyitem_type_LegendEntry | 1; window['AscDFH'].historyitem_LegendEntry_SetIdx = window['AscDFH'].historyitem_type_LegendEntry | 2; window['AscDFH'].historyitem_LegendEntry_SetTxPr = window['AscDFH'].historyitem_type_LegendEntry | 3; window['AscDFH'].historyitem_PivotFmt_SetDLbl = window['AscDFH'].historyitem_type_PivotFmt | 1; window['AscDFH'].historyitem_PivotFmt_SetIdx = window['AscDFH'].historyitem_type_PivotFmt | 2; window['AscDFH'].historyitem_PivotFmt_SetMarker = window['AscDFH'].historyitem_type_PivotFmt | 3; window['AscDFH'].historyitem_PivotFmt_SetSpPr = window['AscDFH'].historyitem_type_PivotFmt | 4; window['AscDFH'].historyitem_PivotFmt_SetTxPr = window['AscDFH'].historyitem_type_PivotFmt | 5; window['AscDFH'].historyitem_DLbl_SetDelete = window['AscDFH'].historyitem_type_DLbl | 1; window['AscDFH'].historyitem_DLbl_SetDLblPos = window['AscDFH'].historyitem_type_DLbl | 2; window['AscDFH'].historyitem_DLbl_SetIdx = window['AscDFH'].historyitem_type_DLbl | 3; window['AscDFH'].historyitem_DLbl_SetLayout = window['AscDFH'].historyitem_type_DLbl | 4; window['AscDFH'].historyitem_DLbl_SetNumFmt = window['AscDFH'].historyitem_type_DLbl | 5; window['AscDFH'].historyitem_DLbl_SetSeparator = window['AscDFH'].historyitem_type_DLbl | 6; window['AscDFH'].historyitem_DLbl_SetShowBubbleSize = window['AscDFH'].historyitem_type_DLbl | 7; window['AscDFH'].historyitem_DLbl_SetShowCatName = window['AscDFH'].historyitem_type_DLbl | 8; window['AscDFH'].historyitem_DLbl_SetShowLegendKey = window['AscDFH'].historyitem_type_DLbl | 9; window['AscDFH'].historyitem_DLbl_SetShowPercent = window['AscDFH'].historyitem_type_DLbl | 10; window['AscDFH'].historyitem_DLbl_SetShowSerName = window['AscDFH'].historyitem_type_DLbl | 11; window['AscDFH'].historyitem_DLbl_SetShowVal = window['AscDFH'].historyitem_type_DLbl | 12; window['AscDFH'].historyitem_DLbl_SetSpPr = window['AscDFH'].historyitem_type_DLbl | 13; window['AscDFH'].historyitem_DLbl_SetTx = window['AscDFH'].historyitem_type_DLbl | 14; window['AscDFH'].historyitem_DLbl_SetTxPr = window['AscDFH'].historyitem_type_DLbl | 15; window['AscDFH'].historyitem_Marker_SetSize = window['AscDFH'].historyitem_type_Marker | 1; window['AscDFH'].historyitem_Marker_SetSpPr = window['AscDFH'].historyitem_type_Marker | 2; window['AscDFH'].historyitem_Marker_SetSymbol = window['AscDFH'].historyitem_type_Marker | 3; window['AscDFH'].historyitem_PlotArea_AddChart = window['AscDFH'].historyitem_type_PlotArea | 1; window['AscDFH'].historyitem_PlotArea_SetCatAx = window['AscDFH'].historyitem_type_PlotArea | 2; window['AscDFH'].historyitem_PlotArea_SetDateAx = window['AscDFH'].historyitem_type_PlotArea | 3; window['AscDFH'].historyitem_PlotArea_SetDTable = window['AscDFH'].historyitem_type_PlotArea | 4; window['AscDFH'].historyitem_PlotArea_SetLayout = window['AscDFH'].historyitem_type_PlotArea | 5; window['AscDFH'].historyitem_PlotArea_SetSerAx = window['AscDFH'].historyitem_type_PlotArea | 6; window['AscDFH'].historyitem_PlotArea_SetSpPr = window['AscDFH'].historyitem_type_PlotArea | 7; window['AscDFH'].historyitem_PlotArea_SetValAx = window['AscDFH'].historyitem_type_PlotArea | 8; window['AscDFH'].historyitem_PlotArea_AddAxis = window['AscDFH'].historyitem_type_PlotArea | 9; window['AscDFH'].historyitem_PlotArea_RemoveChart = window['AscDFH'].historyitem_type_PlotArea | 10; window['AscDFH'].historyitem_PlotArea_RemoveAxis = window['AscDFH'].historyitem_type_PlotArea | 11; window['AscDFH'].historyitem_NumFmt_SetFormatCode = window['AscDFH'].historyitem_type_NumFmt | 1; window['AscDFH'].historyitem_NumFmt_SetSourceLinked = window['AscDFH'].historyitem_type_NumFmt | 2; window['AscDFH'].historyitem_Scaling_SetLogBase = window['AscDFH'].historyitem_type_Scaling | 1; window['AscDFH'].historyitem_Scaling_SetMax = window['AscDFH'].historyitem_type_Scaling | 2; window['AscDFH'].historyitem_Scaling_SetMin = window['AscDFH'].historyitem_type_Scaling | 3; window['AscDFH'].historyitem_Scaling_SetOrientation = window['AscDFH'].historyitem_type_Scaling | 4; window['AscDFH'].historyitem_Scaling_SetParent = window['AscDFH'].historyitem_type_Scaling | 5; window['AscDFH'].historyitem_DTable_SetShowHorzBorder = window['AscDFH'].historyitem_type_DTable | 1; window['AscDFH'].historyitem_DTable_SetShowKeys = window['AscDFH'].historyitem_type_DTable | 2; window['AscDFH'].historyitem_DTable_SetShowOutline = window['AscDFH'].historyitem_type_DTable | 3; window['AscDFH'].historyitem_DTable_SetShowVertBorder = window['AscDFH'].historyitem_type_DTable | 4; window['AscDFH'].historyitem_DTable_SetSpPr = window['AscDFH'].historyitem_type_DTable | 5; window['AscDFH'].historyitem_DTable_SetTxPr = window['AscDFH'].historyitem_type_DTable | 6; window['AscDFH'].historyitem_LineChart_AddAxId = window['AscDFH'].historyitem_type_LineChart | 1; window['AscDFH'].historyitem_LineChart_SetDLbls = window['AscDFH'].historyitem_type_LineChart | 2; window['AscDFH'].historyitem_LineChart_SetDropLines = window['AscDFH'].historyitem_type_LineChart | 3; window['AscDFH'].historyitem_LineChart_SetGrouping = window['AscDFH'].historyitem_type_LineChart | 4; window['AscDFH'].historyitem_LineChart_SetHiLowLines = window['AscDFH'].historyitem_type_LineChart | 5; window['AscDFH'].historyitem_LineChart_SetMarker = window['AscDFH'].historyitem_type_LineChart | 6; window['AscDFH'].historyitem_LineChart_AddSer = window['AscDFH'].historyitem_type_LineChart | 7; window['AscDFH'].historyitem_LineChart_SetSmooth = window['AscDFH'].historyitem_type_LineChart | 8; window['AscDFH'].historyitem_LineChart_SetUpDownBars = window['AscDFH'].historyitem_type_LineChart | 9; window['AscDFH'].historyitem_LineChart_SetVaryColors = window['AscDFH'].historyitem_type_LineChart | 10; window['AscDFH'].historyitem_DLbls_SetDelete = window['AscDFH'].historyitem_type_DLbls | 1; window['AscDFH'].historyitem_DLbls_SetDLbl = window['AscDFH'].historyitem_type_DLbls | 2; window['AscDFH'].historyitem_DLbls_SetDLblPos = window['AscDFH'].historyitem_type_DLbls | 3; window['AscDFH'].historyitem_DLbls_SetLeaderLines = window['AscDFH'].historyitem_type_DLbls | 4; window['AscDFH'].historyitem_DLbls_SetNumFmt = window['AscDFH'].historyitem_type_DLbls | 5; window['AscDFH'].historyitem_DLbls_SetSeparator = window['AscDFH'].historyitem_type_DLbls | 6; window['AscDFH'].historyitem_DLbls_SetShowBubbleSize = window['AscDFH'].historyitem_type_DLbls | 7; window['AscDFH'].historyitem_DLbls_SetShowCatName = window['AscDFH'].historyitem_type_DLbls | 8; window['AscDFH'].historyitem_DLbls_SetShowLeaderLines = window['AscDFH'].historyitem_type_DLbls | 9; window['AscDFH'].historyitem_DLbls_SetShowLegendKey = window['AscDFH'].historyitem_type_DLbls | 10; window['AscDFH'].historyitem_DLbls_SetShowPercent = window['AscDFH'].historyitem_type_DLbls | 11; window['AscDFH'].historyitem_DLbls_SetShowSerName = window['AscDFH'].historyitem_type_DLbls | 12; window['AscDFH'].historyitem_DLbls_SetShowVal = window['AscDFH'].historyitem_type_DLbls | 13; window['AscDFH'].historyitem_DLbls_SetSpPr = window['AscDFH'].historyitem_type_DLbls | 14; window['AscDFH'].historyitem_DLbls_SetTxPr = window['AscDFH'].historyitem_type_DLbls | 15; window['AscDFH'].historyitem_UpDownBars_SetDownBars = window['AscDFH'].historyitem_type_UpDownBars | 1; window['AscDFH'].historyitem_UpDownBars_SetGapWidth = window['AscDFH'].historyitem_type_UpDownBars | 2; window['AscDFH'].historyitem_UpDownBars_SetUpBars = window['AscDFH'].historyitem_type_UpDownBars | 3; window['AscDFH'].historyitem_BarChart_AddAxId = window['AscDFH'].historyitem_type_BarChart | 1; window['AscDFH'].historyitem_BarChart_SetBarDir = window['AscDFH'].historyitem_type_BarChart | 2; window['AscDFH'].historyitem_BarChart_SetDLbls = window['AscDFH'].historyitem_type_BarChart | 3; window['AscDFH'].historyitem_BarChart_SetGapWidth = window['AscDFH'].historyitem_type_BarChart | 4; window['AscDFH'].historyitem_BarChart_SetGrouping = window['AscDFH'].historyitem_type_BarChart | 5; window['AscDFH'].historyitem_BarChart_SetOverlap = window['AscDFH'].historyitem_type_BarChart | 6; window['AscDFH'].historyitem_BarChart_AddSer = window['AscDFH'].historyitem_type_BarChart | 7; window['AscDFH'].historyitem_BarChart_SetSerLines = window['AscDFH'].historyitem_type_BarChart | 8; window['AscDFH'].historyitem_BarChart_SetVaryColors = window['AscDFH'].historyitem_type_BarChart | 9; window['AscDFH'].historyitem_BarChart_Set3D = window['AscDFH'].historyitem_type_BarChart | 10; window['AscDFH'].historyitem_BarChart_SetGapDepth = window['AscDFH'].historyitem_type_BarChart | 11; window['AscDFH'].historyitem_BarChart_SetShape = window['AscDFH'].historyitem_type_BarChart | 12; window['AscDFH'].historyitem_BubbleChart_AddAxId = window['AscDFH'].historyitem_type_BubbleChart | 1; window['AscDFH'].historyitem_BubbleChart_SetBubble3D = window['AscDFH'].historyitem_type_BubbleChart | 2; window['AscDFH'].historyitem_BubbleChart_SetBubbleScale = window['AscDFH'].historyitem_type_BubbleChart | 3; window['AscDFH'].historyitem_BubbleChart_SetDLbls = window['AscDFH'].historyitem_type_BubbleChart | 4; window['AscDFH'].historyitem_BubbleChart_AddSerie = window['AscDFH'].historyitem_type_BubbleChart | 5; window['AscDFH'].historyitem_BubbleChart_SetShowNegBubbles = window['AscDFH'].historyitem_type_BubbleChart | 6; window['AscDFH'].historyitem_BubbleChart_SetSizeRepresents = window['AscDFH'].historyitem_type_BubbleChart | 7; window['AscDFH'].historyitem_BubbleChart_SetVaryColors = window['AscDFH'].historyitem_type_BubbleChart | 8; window['AscDFH'].historyitem_DoughnutChart_SetDLbls = window['AscDFH'].historyitem_type_DoughnutChart | 1; window['AscDFH'].historyitem_DoughnutChart_SetFirstSliceAng = window['AscDFH'].historyitem_type_DoughnutChart | 2; window['AscDFH'].historyitem_DoughnutChart_SetHoleSize = window['AscDFH'].historyitem_type_DoughnutChart | 3; window['AscDFH'].historyitem_DoughnutChart_AddSer = window['AscDFH'].historyitem_type_DoughnutChart | 4; window['AscDFH'].historyitem_DoughnutChart_SetVaryColor = window['AscDFH'].historyitem_type_DoughnutChart | 5; window['AscDFH'].historyitem_OfPieChart_AddCustSplit = window['AscDFH'].historyitem_type_OfPieChart | 1; window['AscDFH'].historyitem_OfPieChart_SetDLbls = window['AscDFH'].historyitem_type_OfPieChart | 2; window['AscDFH'].historyitem_OfPieChart_SetGapWidth = window['AscDFH'].historyitem_type_OfPieChart | 3; window['AscDFH'].historyitem_OfPieChart_SetOfPieType = window['AscDFH'].historyitem_type_OfPieChart | 4; window['AscDFH'].historyitem_OfPieChart_SetSecondPieSize = window['AscDFH'].historyitem_type_OfPieChart | 5; window['AscDFH'].historyitem_OfPieChart_AddSer = window['AscDFH'].historyitem_type_OfPieChart | 6; window['AscDFH'].historyitem_OfPieChart_SetSerLines = window['AscDFH'].historyitem_type_OfPieChart | 7; window['AscDFH'].historyitem_OfPieChart_SetSplitPos = window['AscDFH'].historyitem_type_OfPieChart | 8; window['AscDFH'].historyitem_OfPieChart_SetSplitType = window['AscDFH'].historyitem_type_OfPieChart | 9; window['AscDFH'].historyitem_OfPieChart_SetVaryColors = window['AscDFH'].historyitem_type_OfPieChart | 10; window['AscDFH'].historyitem_PieChart_SetDLbls = window['AscDFH'].historyitem_type_PieChart | 1; window['AscDFH'].historyitem_PieChart_SetFirstSliceAng = window['AscDFH'].historyitem_type_PieChart | 2; window['AscDFH'].historyitem_PieChart_AddSer = window['AscDFH'].historyitem_type_PieChart | 3; window['AscDFH'].historyitem_PieChart_SetVaryColors = window['AscDFH'].historyitem_type_PieChart | 4; window['AscDFH'].historyitem_RadarChart_AddAxId = window['AscDFH'].historyitem_type_RadarChart | 1; window['AscDFH'].historyitem_RadarChart_SetDLbls = window['AscDFH'].historyitem_type_RadarChart | 2; window['AscDFH'].historyitem_RadarChart_SetRadarStyle = window['AscDFH'].historyitem_type_RadarChart | 3; window['AscDFH'].historyitem_RadarChart_AddSer = window['AscDFH'].historyitem_type_RadarChart | 4; window['AscDFH'].historyitem_RadarChart_SetVaryColors = window['AscDFH'].historyitem_type_RadarChart | 5; window['AscDFH'].historyitem_ScatterChart_AddAxId = window['AscDFH'].historyitem_type_ScatterChart | 1; window['AscDFH'].historyitem_ScatterChart_SetDLbls = window['AscDFH'].historyitem_type_ScatterChart | 2; window['AscDFH'].historyitem_ScatterChart_SetScatterStyle = window['AscDFH'].historyitem_type_ScatterChart | 3; window['AscDFH'].historyitem_ScatterChart_AddSer = window['AscDFH'].historyitem_type_ScatterChart | 4; window['AscDFH'].historyitem_ScatterChart_SetVaryColors = window['AscDFH'].historyitem_type_ScatterChart | 5; window['AscDFH'].historyitem_StockChart_AddAxId = window['AscDFH'].historyitem_type_StockChart | 1; window['AscDFH'].historyitem_StockChart_SetDLbls = window['AscDFH'].historyitem_type_StockChart | 2; window['AscDFH'].historyitem_StockChart_SetDropLines = window['AscDFH'].historyitem_type_StockChart | 3; window['AscDFH'].historyitem_StockChart_SetHiLowLines = window['AscDFH'].historyitem_type_StockChart | 4; window['AscDFH'].historyitem_StockChart_AddSer = window['AscDFH'].historyitem_type_StockChart | 5; window['AscDFH'].historyitem_StockChart_SetUpDownBars = window['AscDFH'].historyitem_type_StockChart | 6; window['AscDFH'].historyitem_SurfaceChart_AddAxId = window['AscDFH'].historyitem_type_SurfaceChart | 1; window['AscDFH'].historyitem_SurfaceChart_AddBandFmt = window['AscDFH'].historyitem_type_SurfaceChart | 2; window['AscDFH'].historyitem_SurfaceChart_AddSer = window['AscDFH'].historyitem_type_SurfaceChart | 3; window['AscDFH'].historyitem_SurfaceChart_SetWireframe = window['AscDFH'].historyitem_type_SurfaceChart | 4; window['AscDFH'].historyitem_BandFmt_SetIdx = window['AscDFH'].historyitem_type_BandFmt | 1; window['AscDFH'].historyitem_BandFmt_SetSpPr = window['AscDFH'].historyitem_type_BandFmt | 2; window['AscDFH'].historyitem_AreaChart_AddAxId = window['AscDFH'].historyitem_type_AreaChart | 1; window['AscDFH'].historyitem_AreaChart_SetDLbls = window['AscDFH'].historyitem_type_AreaChart | 2; window['AscDFH'].historyitem_AreaChart_SetDropLines = window['AscDFH'].historyitem_type_AreaChart | 3; window['AscDFH'].historyitem_AreaChart_SetGrouping = window['AscDFH'].historyitem_type_AreaChart | 4; window['AscDFH'].historyitem_AreaChart_AddSer = window['AscDFH'].historyitem_type_AreaChart | 5; window['AscDFH'].historyitem_AreaChart_SetVaryColors = window['AscDFH'].historyitem_type_AreaChart | 6; window['AscDFH'].historyitem_ScatterSer_SetDLbls = window['AscDFH'].historyitem_type_ScatterSer | 1; window['AscDFH'].historyitem_ScatterSer_SetDPt = window['AscDFH'].historyitem_type_ScatterSer | 2; window['AscDFH'].historyitem_ScatterSer_SetErrBars = window['AscDFH'].historyitem_type_ScatterSer | 3; window['AscDFH'].historyitem_ScatterSer_SetIdx = window['AscDFH'].historyitem_type_ScatterSer | 4; window['AscDFH'].historyitem_ScatterSer_SetMarker = window['AscDFH'].historyitem_type_ScatterSer | 5; window['AscDFH'].historyitem_ScatterSer_SetOrder = window['AscDFH'].historyitem_type_ScatterSer | 6; window['AscDFH'].historyitem_ScatterSer_SetSmooth = window['AscDFH'].historyitem_type_ScatterSer | 7; window['AscDFH'].historyitem_ScatterSer_SetSpPr = window['AscDFH'].historyitem_type_ScatterSer | 8; window['AscDFH'].historyitem_ScatterSer_SetTrendline = window['AscDFH'].historyitem_type_ScatterSer | 9; window['AscDFH'].historyitem_ScatterSer_SetTx = window['AscDFH'].historyitem_type_ScatterSer | 10; window['AscDFH'].historyitem_ScatterSer_SetXVal = window['AscDFH'].historyitem_type_ScatterSer | 11; window['AscDFH'].historyitem_ScatterSer_SetYVal = window['AscDFH'].historyitem_type_ScatterSer | 12; window['AscDFH'].historyitem_DPt_SetBubble3D = window['AscDFH'].historyitem_type_DPt | 1; window['AscDFH'].historyitem_DPt_SetExplosion = window['AscDFH'].historyitem_type_DPt | 2; window['AscDFH'].historyitem_DPt_SetIdx = window['AscDFH'].historyitem_type_DPt | 3; window['AscDFH'].historyitem_DPt_SetInvertIfNegative = window['AscDFH'].historyitem_type_DPt | 4; window['AscDFH'].historyitem_DPt_SetMarker = window['AscDFH'].historyitem_type_DPt | 5; window['AscDFH'].historyitem_DPt_SetPictureOptions = window['AscDFH'].historyitem_type_DPt | 6; window['AscDFH'].historyitem_DPt_SetSpPr = window['AscDFH'].historyitem_type_DPt | 7; window['AscDFH'].historyitem_ErrBars_SetErrBarType = window['AscDFH'].historyitem_type_ErrBars | 1; window['AscDFH'].historyitem_ErrBars_SetErrDir = window['AscDFH'].historyitem_type_ErrBars | 2; window['AscDFH'].historyitem_ErrBars_SetErrValType = window['AscDFH'].historyitem_type_ErrBars | 3; window['AscDFH'].historyitem_ErrBars_SetMinus = window['AscDFH'].historyitem_type_ErrBars | 4; window['AscDFH'].historyitem_ErrBars_SetNoEndCap = window['AscDFH'].historyitem_type_ErrBars | 5; window['AscDFH'].historyitem_ErrBars_SetPlus = window['AscDFH'].historyitem_type_ErrBars | 6; window['AscDFH'].historyitem_ErrBars_SetSpPr = window['AscDFH'].historyitem_type_ErrBars | 7; window['AscDFH'].historyitem_ErrBars_SetVal = window['AscDFH'].historyitem_type_ErrBars | 8; window['AscDFH'].historyitem_MinusPlus_SetnNumLit = window['AscDFH'].historyitem_type_MinusPlus | 1; window['AscDFH'].historyitem_MinusPlus_SetnNumRef = window['AscDFH'].historyitem_type_MinusPlus | 2; window['AscDFH'].historyitem_NumLit_SetFormatCode = window['AscDFH'].historyitem_type_NumLit | 1; window['AscDFH'].historyitem_NumLit_AddPt = window['AscDFH'].historyitem_type_NumLit | 2; window['AscDFH'].historyitem_NumLit_SetPtCount = window['AscDFH'].historyitem_type_NumLit | 3; window['AscDFH'].historyitem_NumericPoint_SetFormatCode = window['AscDFH'].historyitem_type_NumericPoint | 1; window['AscDFH'].historyitem_NumericPoint_SetIdx = window['AscDFH'].historyitem_type_NumericPoint | 2; window['AscDFH'].historyitem_NumericPoint_SetVal = window['AscDFH'].historyitem_type_NumericPoint | 3; window['AscDFH'].historyitem_NumRef_SetF = window['AscDFH'].historyitem_type_NumRef | 1; window['AscDFH'].historyitem_NumRef_SetNumCache = window['AscDFH'].historyitem_type_NumRef | 2; window['AscDFH'].historyitem_Trendline_SetBackward = window['AscDFH'].historyitem_type_TrendLine | 1; window['AscDFH'].historyitem_Trendline_SetDispEq = window['AscDFH'].historyitem_type_TrendLine | 2; window['AscDFH'].historyitem_Trendline_SetDispRSqr = window['AscDFH'].historyitem_type_TrendLine | 3; window['AscDFH'].historyitem_Trendline_SetForward = window['AscDFH'].historyitem_type_TrendLine | 4; window['AscDFH'].historyitem_Trendline_SetIntercept = window['AscDFH'].historyitem_type_TrendLine | 5; window['AscDFH'].historyitem_Trendline_SetName = window['AscDFH'].historyitem_type_TrendLine | 6; window['AscDFH'].historyitem_Trendline_SetOrder = window['AscDFH'].historyitem_type_TrendLine | 7; window['AscDFH'].historyitem_Trendline_SetPeriod = window['AscDFH'].historyitem_type_TrendLine | 8; window['AscDFH'].historyitem_Trendline_SetSpPr = window['AscDFH'].historyitem_type_TrendLine | 9; window['AscDFH'].historyitem_Trendline_SetTrendlineLbl = window['AscDFH'].historyitem_type_TrendLine | 10; window['AscDFH'].historyitem_Trendline_SetTrendlineType = window['AscDFH'].historyitem_type_TrendLine | 11; window['AscDFH'].historyitem_Tx_SetStrRef = window['AscDFH'].historyitem_type_Tx | 1; window['AscDFH'].historyitem_Tx_SetVal = window['AscDFH'].historyitem_type_Tx | 2; window['AscDFH'].historyitem_StrRef_SetF = window['AscDFH'].historyitem_type_StrRef | 1; window['AscDFH'].historyitem_StrRef_SetStrCache = window['AscDFH'].historyitem_type_StrRef | 2; window['AscDFH'].historyitem_StrCache_AddPt = window['AscDFH'].historyitem_type_StrCache | 1; window['AscDFH'].historyitem_StrCache_SetPtCount = window['AscDFH'].historyitem_type_StrCache | 2; window['AscDFH'].historyitem_StrPoint_SetIdx = window['AscDFH'].historyitem_type_StrPoint | 1; window['AscDFH'].historyitem_StrPoint_SetVal = window['AscDFH'].historyitem_type_StrPoint | 2; window['AscDFH'].historyitem_XVal_SetMultiLvlStrRef = window['AscDFH'].historyitem_type_XVal | 1; window['AscDFH'].historyitem_XVal_SetNumLit = window['AscDFH'].historyitem_type_XVal | 2; window['AscDFH'].historyitem_XVal_SetNumRef = window['AscDFH'].historyitem_type_XVal | 3; window['AscDFH'].historyitem_XVal_SetStrLit = window['AscDFH'].historyitem_type_XVal | 4; window['AscDFH'].historyitem_XVal_SetStrRef = window['AscDFH'].historyitem_type_XVal | 5; window['AscDFH'].historyitem_MultiLvlStrRef_SetF = window['AscDFH'].historyitem_type_MultiLvlStrRef | 1; window['AscDFH'].historyitem_MultiLvlStrRef_SetMultiLvlStrCache = window['AscDFH'].historyitem_type_MultiLvlStrRef | 2; window['AscDFH'].historyitem_MultiLvlStrCache_SetLvl = window['AscDFH'].historyitem_type_MultiLvlStrCache | 1; window['AscDFH'].historyitem_MultiLvlStrCache_SetPtCount = window['AscDFH'].historyitem_type_MultiLvlStrCache | 2; window['AscDFH'].historyitem_StringLiteral_SetPt = window['AscDFH'].historyitem_type_StringLiteral | 1; window['AscDFH'].historyitem_StringLiteral_SetPtCount = window['AscDFH'].historyitem_type_StringLiteral | 2; window['AscDFH'].historyitem_YVal_SetNumLit = window['AscDFH'].historyitem_type_YVal | 1; window['AscDFH'].historyitem_YVal_SetNumRef = window['AscDFH'].historyitem_type_YVal | 2; window['AscDFH'].historyitem_AreaSeries_SetCat = window['AscDFH'].historyitem_type_AreaSeries | 1; window['AscDFH'].historyitem_AreaSeries_SetDLbls = window['AscDFH'].historyitem_type_AreaSeries | 2; window['AscDFH'].historyitem_AreaSeries_SetDPt = window['AscDFH'].historyitem_type_AreaSeries | 3; window['AscDFH'].historyitem_AreaSeries_SetErrBars = window['AscDFH'].historyitem_type_AreaSeries | 4; window['AscDFH'].historyitem_AreaSeries_SetIdx = window['AscDFH'].historyitem_type_AreaSeries | 5; window['AscDFH'].historyitem_AreaSeries_SetOrder = window['AscDFH'].historyitem_type_AreaSeries | 6; window['AscDFH'].historyitem_AreaSeries_SetPictureOptions = window['AscDFH'].historyitem_type_AreaSeries | 7; window['AscDFH'].historyitem_AreaSeries_SetSpPr = window['AscDFH'].historyitem_type_AreaSeries | 8; window['AscDFH'].historyitem_AreaSeries_SetTrendline = window['AscDFH'].historyitem_type_AreaSeries | 9; window['AscDFH'].historyitem_AreaSeries_SetTx = window['AscDFH'].historyitem_type_AreaSeries | 10; window['AscDFH'].historyitem_AreaSeries_SetVal = window['AscDFH'].historyitem_type_AreaSeries | 11; window['AscDFH'].historyitem_Cat_SetMultiLvlStrRef = window['AscDFH'].historyitem_type_Cat | 1; window['AscDFH'].historyitem_Cat_SetNumLit = window['AscDFH'].historyitem_type_Cat | 2; window['AscDFH'].historyitem_Cat_SetNumRef = window['AscDFH'].historyitem_type_Cat | 3; window['AscDFH'].historyitem_Cat_SetStrLit = window['AscDFH'].historyitem_type_Cat | 4; window['AscDFH'].historyitem_Cat_SetStrRef = window['AscDFH'].historyitem_type_Cat | 5; window['AscDFH'].historyitem_PictureOptions_SetApplyToEnd = window['AscDFH'].historyitem_type_PictureOptions | 1; window['AscDFH'].historyitem_PictureOptions_SetApplyToFront = window['AscDFH'].historyitem_type_PictureOptions | 2; window['AscDFH'].historyitem_PictureOptions_SetApplyToSides = window['AscDFH'].historyitem_type_PictureOptions | 3; window['AscDFH'].historyitem_PictureOptions_SetPictureFormat = window['AscDFH'].historyitem_type_PictureOptions | 4; window['AscDFH'].historyitem_PictureOptions_SetPictureStackUnit = window['AscDFH'].historyitem_type_PictureOptions | 5; window['AscDFH'].historyitem_RadarSeries_SetCat = window['AscDFH'].historyitem_type_RadarSeries | 1; window['AscDFH'].historyitem_RadarSeries_SetDLbls = window['AscDFH'].historyitem_type_RadarSeries | 2; window['AscDFH'].historyitem_RadarSeries_SetDPt = window['AscDFH'].historyitem_type_RadarSeries | 3; window['AscDFH'].historyitem_RadarSeries_SetIdx = window['AscDFH'].historyitem_type_RadarSeries | 4; window['AscDFH'].historyitem_RadarSeries_SetMarker = window['AscDFH'].historyitem_type_RadarSeries | 5; window['AscDFH'].historyitem_RadarSeries_SetOrder = window['AscDFH'].historyitem_type_RadarSeries | 6; window['AscDFH'].historyitem_RadarSeries_SetSpPr = window['AscDFH'].historyitem_type_RadarSeries | 7; window['AscDFH'].historyitem_RadarSeries_SetTx = window['AscDFH'].historyitem_type_RadarSeries | 8; window['AscDFH'].historyitem_RadarSeries_SetVal = window['AscDFH'].historyitem_type_RadarSeries | 9; window['AscDFH'].historyitem_BarSeries_SetCat = window['AscDFH'].historyitem_type_BarSeries | 1; window['AscDFH'].historyitem_BarSeries_SetDLbls = window['AscDFH'].historyitem_type_BarSeries | 2; window['AscDFH'].historyitem_BarSeries_SetDPt = window['AscDFH'].historyitem_type_BarSeries | 3; window['AscDFH'].historyitem_BarSeries_SetErrBars = window['AscDFH'].historyitem_type_BarSeries | 4; window['AscDFH'].historyitem_BarSeries_SetIdx = window['AscDFH'].historyitem_type_BarSeries | 5; window['AscDFH'].historyitem_BarSeries_SetInvertIfNegative = window['AscDFH'].historyitem_type_BarSeries | 6; window['AscDFH'].historyitem_BarSeries_SetOrder = window['AscDFH'].historyitem_type_BarSeries | 7; window['AscDFH'].historyitem_BarSeries_SetPictureOptions = window['AscDFH'].historyitem_type_BarSeries | 8; window['AscDFH'].historyitem_BarSeries_SetShape = window['AscDFH'].historyitem_type_BarSeries | 9; window['AscDFH'].historyitem_BarSeries_SetSpPr = window['AscDFH'].historyitem_type_BarSeries | 10; window['AscDFH'].historyitem_BarSeries_SetTrendline = window['AscDFH'].historyitem_type_BarSeries | 11; window['AscDFH'].historyitem_BarSeries_SetTx = window['AscDFH'].historyitem_type_BarSeries | 12; window['AscDFH'].historyitem_BarSeries_SetVal = window['AscDFH'].historyitem_type_BarSeries | 13; window['AscDFH'].historyitem_LineSeries_SetCat = window['AscDFH'].historyitem_type_LineSeries | 1; window['AscDFH'].historyitem_LineSeries_SetDLbls = window['AscDFH'].historyitem_type_LineSeries | 2; window['AscDFH'].historyitem_LineSeries_SetDPt = window['AscDFH'].historyitem_type_LineSeries | 3; window['AscDFH'].historyitem_LineSeries_SetErrBars = window['AscDFH'].historyitem_type_LineSeries | 4; window['AscDFH'].historyitem_LineSeries_SetIdx = window['AscDFH'].historyitem_type_LineSeries | 5; window['AscDFH'].historyitem_LineSeries_SetMarker = window['AscDFH'].historyitem_type_LineSeries | 6; window['AscDFH'].historyitem_LineSeries_SetOrder = window['AscDFH'].historyitem_type_LineSeries | 7; window['AscDFH'].historyitem_LineSeries_SetSmooth = window['AscDFH'].historyitem_type_LineSeries | 8; window['AscDFH'].historyitem_LineSeries_SetSpPr = window['AscDFH'].historyitem_type_LineSeries | 9; window['AscDFH'].historyitem_LineSeries_SetTrendline = window['AscDFH'].historyitem_type_LineSeries | 10; window['AscDFH'].historyitem_LineSeries_SetTx = window['AscDFH'].historyitem_type_LineSeries | 11; window['AscDFH'].historyitem_LineSeries_SetVal = window['AscDFH'].historyitem_type_LineSeries | 12; window['AscDFH'].historyitem_PieSeries_SetCat = window['AscDFH'].historyitem_type_PieSeries | 1; window['AscDFH'].historyitem_PieSeries_SetDLbls = window['AscDFH'].historyitem_type_PieSeries | 2; window['AscDFH'].historyitem_PieSeries_SetDPt = window['AscDFH'].historyitem_type_PieSeries | 3; window['AscDFH'].historyitem_PieSeries_SetExplosion = window['AscDFH'].historyitem_type_PieSeries | 4; window['AscDFH'].historyitem_PieSeries_SetIdx = window['AscDFH'].historyitem_type_PieSeries | 5; window['AscDFH'].historyitem_PieSeries_SetOrder = window['AscDFH'].historyitem_type_PieSeries | 6; window['AscDFH'].historyitem_PieSeries_SetSpPr = window['AscDFH'].historyitem_type_PieSeries | 7; window['AscDFH'].historyitem_PieSeries_SetTx = window['AscDFH'].historyitem_type_PieSeries | 8; window['AscDFH'].historyitem_PieSeries_SetVal = window['AscDFH'].historyitem_type_PieSeries | 9; window['AscDFH'].historyitem_SurfaceSeries_SetCat = window['AscDFH'].historyitem_type_SurfaceSeries | 1; window['AscDFH'].historyitem_SurfaceSeries_SetIdx = window['AscDFH'].historyitem_type_SurfaceSeries | 2; window['AscDFH'].historyitem_SurfaceSeries_SetOrder = window['AscDFH'].historyitem_type_SurfaceSeries | 3; window['AscDFH'].historyitem_SurfaceSeries_SetSpPr = window['AscDFH'].historyitem_type_SurfaceSeries | 4; window['AscDFH'].historyitem_SurfaceSeries_SetTx = window['AscDFH'].historyitem_type_SurfaceSeries | 5; window['AscDFH'].historyitem_SurfaceSeries_SetVal = window['AscDFH'].historyitem_type_SurfaceSeries | 6; window['AscDFH'].historyitem_BubbleSeries_SetBubble3D = window['AscDFH'].historyitem_type_BubbleSeries | 1; window['AscDFH'].historyitem_BubbleSeries_SetBubbleSize = window['AscDFH'].historyitem_type_BubbleSeries | 2; window['AscDFH'].historyitem_BubbleSeries_SetDLbls = window['AscDFH'].historyitem_type_BubbleSeries | 3; window['AscDFH'].historyitem_BubbleSeries_SetDPt = window['AscDFH'].historyitem_type_BubbleSeries | 4; window['AscDFH'].historyitem_BubbleSeries_SetErrBars = window['AscDFH'].historyitem_type_BubbleSeries | 5; window['AscDFH'].historyitem_BubbleSeries_SetIdx = window['AscDFH'].historyitem_type_BubbleSeries | 6; window['AscDFH'].historyitem_BubbleSeries_SetInvertIfNegative = window['AscDFH'].historyitem_type_BubbleSeries | 7; window['AscDFH'].historyitem_BubbleSeries_SetOrder = window['AscDFH'].historyitem_type_BubbleSeries | 8; window['AscDFH'].historyitem_BubbleSeries_SetSpPr = window['AscDFH'].historyitem_type_BubbleSeries | 9; window['AscDFH'].historyitem_BubbleSeries_SetTrendline = window['AscDFH'].historyitem_type_BubbleSeries | 10; window['AscDFH'].historyitem_BubbleSeries_SetTx = window['AscDFH'].historyitem_type_BubbleSeries | 11; window['AscDFH'].historyitem_BubbleSeries_SetXVal = window['AscDFH'].historyitem_type_BubbleSeries | 12; window['AscDFH'].historyitem_BubbleSeries_SetYVal = window['AscDFH'].historyitem_type_BubbleSeries | 13; window['AscDFH'].historyitem_ExternalData_SetAutoUpdate = window['AscDFH'].historyitem_type_ExternalData | 1; window['AscDFH'].historyitem_ExternalData_SetId = window['AscDFH'].historyitem_type_ExternalData | 2; window['AscDFH'].historyitem_PivotSource_SetFmtId = window['AscDFH'].historyitem_type_PivotSource | 1; window['AscDFH'].historyitem_PivotSource_SetName = window['AscDFH'].historyitem_type_PivotSource | 2; window['AscDFH'].historyitem_Protection_SetChartObject = window['AscDFH'].historyitem_type_Protection | 1; window['AscDFH'].historyitem_Protection_SetData = window['AscDFH'].historyitem_type_Protection | 2; window['AscDFH'].historyitem_Protection_SetFormatting = window['AscDFH'].historyitem_type_Protection | 3; window['AscDFH'].historyitem_Protection_SetSelection = window['AscDFH'].historyitem_type_Protection | 4; window['AscDFH'].historyitem_Protection_SetUserInterface = window['AscDFH'].historyitem_type_Protection | 5; window['AscDFH'].historyitem_ChartWall_SetPictureOptions = window['AscDFH'].historyitem_type_ChartWall | 1; window['AscDFH'].historyitem_ChartWall_SetSpPr = window['AscDFH'].historyitem_type_ChartWall | 2; window['AscDFH'].historyitem_ChartWall_SetThickness = window['AscDFH'].historyitem_type_ChartWall | 3; window['AscDFH'].historyitem_View3d_SetDepthPercent = window['AscDFH'].historyitem_type_View3d | 1; window['AscDFH'].historyitem_View3d_SetHPercent = window['AscDFH'].historyitem_type_View3d | 2; window['AscDFH'].historyitem_View3d_SetPerspective = window['AscDFH'].historyitem_type_View3d | 3; window['AscDFH'].historyitem_View3d_SetRAngAx = window['AscDFH'].historyitem_type_View3d | 4; window['AscDFH'].historyitem_View3d_SetRotX = window['AscDFH'].historyitem_type_View3d | 5; window['AscDFH'].historyitem_View3d_SetRotY = window['AscDFH'].historyitem_type_View3d | 6; window['AscDFH'].historyitem_ChartText_SetRich = window['AscDFH'].historyitem_type_ChartText | 1; window['AscDFH'].historyitem_ChartText_SetStrRef = window['AscDFH'].historyitem_type_ChartText | 2; window['AscDFH'].historyitem_ShapeStyle_SetLnRef = window['AscDFH'].historyitem_type_ShapeStyle | 1; window['AscDFH'].historyitem_ShapeStyle_SetFillRef = window['AscDFH'].historyitem_type_ShapeStyle | 2; window['AscDFH'].historyitem_ShapeStyle_SetFontRef = window['AscDFH'].historyitem_type_ShapeStyle | 3; window['AscDFH'].historyitem_ShapeStyle_SetEffectRef = window['AscDFH'].historyitem_type_ShapeStyle | 4; window['AscDFH'].historyitem_Xfrm_SetOffX = window['AscDFH'].historyitem_type_Xfrm | 1; window['AscDFH'].historyitem_Xfrm_SetOffY = window['AscDFH'].historyitem_type_Xfrm | 2; window['AscDFH'].historyitem_Xfrm_SetExtX = window['AscDFH'].historyitem_type_Xfrm | 3; window['AscDFH'].historyitem_Xfrm_SetExtY = window['AscDFH'].historyitem_type_Xfrm | 4; window['AscDFH'].historyitem_Xfrm_SetChOffX = window['AscDFH'].historyitem_type_Xfrm | 5; window['AscDFH'].historyitem_Xfrm_SetChOffY = window['AscDFH'].historyitem_type_Xfrm | 6; window['AscDFH'].historyitem_Xfrm_SetChExtX = window['AscDFH'].historyitem_type_Xfrm | 7; window['AscDFH'].historyitem_Xfrm_SetChExtY = window['AscDFH'].historyitem_type_Xfrm | 8; window['AscDFH'].historyitem_Xfrm_SetFlipH = window['AscDFH'].historyitem_type_Xfrm | 9; window['AscDFH'].historyitem_Xfrm_SetFlipV = window['AscDFH'].historyitem_type_Xfrm | 10; window['AscDFH'].historyitem_Xfrm_SetRot = window['AscDFH'].historyitem_type_Xfrm | 11; window['AscDFH'].historyitem_Xfrm_SetParent = window['AscDFH'].historyitem_type_Xfrm | 12; window['AscDFH'].historyitem_SpPr_SetBwMode = window['AscDFH'].historyitem_type_SpPr | 1; window['AscDFH'].historyitem_SpPr_SetXfrm = window['AscDFH'].historyitem_type_SpPr | 2; window['AscDFH'].historyitem_SpPr_SetGeometry = window['AscDFH'].historyitem_type_SpPr | 3; window['AscDFH'].historyitem_SpPr_SetFill = window['AscDFH'].historyitem_type_SpPr | 4; window['AscDFH'].historyitem_SpPr_SetLn = window['AscDFH'].historyitem_type_SpPr | 5; window['AscDFH'].historyitem_SpPr_SetParent = window['AscDFH'].historyitem_type_SpPr | 6; window['AscDFH'].historyitem_ClrScheme_AddClr = window['AscDFH'].historyitem_type_ClrScheme | 1; window['AscDFH'].historyitem_ClrScheme_SetName = window['AscDFH'].historyitem_type_ClrScheme | 2; window['AscDFH'].historyitem_ClrMap_SetClr = window['AscDFH'].historyitem_type_ClrMap | 1; window['AscDFH'].historyitem_ExtraClrScheme_SetClrScheme = window['AscDFH'].historyitem_type_ExtraClrScheme | 1; window['AscDFH'].historyitem_ExtraClrScheme_SetClrMap = window['AscDFH'].historyitem_type_ExtraClrScheme | 2; window['AscDFH'].historyitem_FontCollection_SetFontScheme = window['AscDFH'].historyitem_type_FontCollection | 1; window['AscDFH'].historyitem_FontCollection_SetLatin = window['AscDFH'].historyitem_type_FontCollection | 2; window['AscDFH'].historyitem_FontCollection_SetEA = window['AscDFH'].historyitem_type_FontCollection | 3; window['AscDFH'].historyitem_FontCollection_SetCS = window['AscDFH'].historyitem_type_FontCollection | 4; window['AscDFH'].historyitem_FontScheme_SetName = window['AscDFH'].historyitem_type_FontScheme | 1; window['AscDFH'].historyitem_FontScheme_SetMajorFont = window['AscDFH'].historyitem_type_FontScheme | 2; window['AscDFH'].historyitem_FontScheme_SetMinorFont = window['AscDFH'].historyitem_type_FontScheme | 3; window['AscDFH'].historyitem_FormatScheme_SetName = window['AscDFH'].historyitem_type_FormatScheme | 1; window['AscDFH'].historyitem_FormatScheme_AddFillToStyleLst = window['AscDFH'].historyitem_type_FormatScheme | 2; window['AscDFH'].historyitem_FormatScheme_AddLnToStyleLst = window['AscDFH'].historyitem_type_FormatScheme | 3; window['AscDFH'].historyitem_FormatScheme_AddEffectToStyleLst = window['AscDFH'].historyitem_type_FormatScheme | 4; window['AscDFH'].historyitem_FormatScheme_AddBgFillToStyleLst = window['AscDFH'].historyitem_type_FormatScheme | 5; window['AscDFH'].historyitem_ThemeElements_SetClrScheme = window['AscDFH'].historyitem_type_ThemeElements | 1; window['AscDFH'].historyitem_ThemeElements_SetFontScheme = window['AscDFH'].historyitem_type_ThemeElements | 2; window['AscDFH'].historyitem_ThemeElements_SetFmtScheme = window['AscDFH'].historyitem_type_ThemeElements | 3; window['AscDFH'].historyitem_HF_SetDt = window['AscDFH'].historyitem_type_HF | 1; window['AscDFH'].historyitem_HF_SetFtr = window['AscDFH'].historyitem_type_HF | 2; window['AscDFH'].historyitem_HF_SetHdr = window['AscDFH'].historyitem_type_HF | 3; window['AscDFH'].historyitem_HF_SetSldNum = window['AscDFH'].historyitem_type_HF | 4; window['AscDFH'].historyitem_BgPr_SetFill = window['AscDFH'].historyitem_type_BgPr | 1; window['AscDFH'].historyitem_BgPr_SetShadeToTitle = window['AscDFH'].historyitem_type_BgPr | 2; window['AscDFH'].historyitem_BgSetBwMode = window['AscDFH'].historyitem_type_Bg | 1; window['AscDFH'].historyitem_BgSetBgPr = window['AscDFH'].historyitem_type_Bg | 2; window['AscDFH'].historyitem_BgSetBgRef = window['AscDFH'].historyitem_type_Bg | 3; window['AscDFH'].historyitem_PrintSettingsSetHeaderFooter = window['AscDFH'].historyitem_type_PrintSettings | 1; window['AscDFH'].historyitem_PrintSettingsSetPageMargins = window['AscDFH'].historyitem_type_PrintSettings | 2; window['AscDFH'].historyitem_PrintSettingsSetPageSetup = window['AscDFH'].historyitem_type_PrintSettings | 3; window['AscDFH'].historyitem_HeaderFooterChartSetAlignWithMargins = window['AscDFH'].historyitem_type_HeaderFooterChart | 1; window['AscDFH'].historyitem_HeaderFooterChartSetDifferentFirst = window['AscDFH'].historyitem_type_HeaderFooterChart | 2; window['AscDFH'].historyitem_HeaderFooterChartSetDifferentOddEven = window['AscDFH'].historyitem_type_HeaderFooterChart | 3; window['AscDFH'].historyitem_HeaderFooterChartSetEvenFooter = window['AscDFH'].historyitem_type_HeaderFooterChart | 4; window['AscDFH'].historyitem_HeaderFooterChartSetEvenHeader = window['AscDFH'].historyitem_type_HeaderFooterChart | 5; window['AscDFH'].historyitem_HeaderFooterChartSetFirstFooter = window['AscDFH'].historyitem_type_HeaderFooterChart | 6; window['AscDFH'].historyitem_HeaderFooterChartSetFirstHeader = window['AscDFH'].historyitem_type_HeaderFooterChart | 7; window['AscDFH'].historyitem_HeaderFooterChartSetOddFooter = window['AscDFH'].historyitem_type_HeaderFooterChart | 8; window['AscDFH'].historyitem_HeaderFooterChartSetOddHeader = window['AscDFH'].historyitem_type_HeaderFooterChart | 9; window['AscDFH'].historyitem_PageMarginsSetB = window['AscDFH'].historyitem_type_PageMarginsChart | 1; window['AscDFH'].historyitem_PageMarginsSetFooter = window['AscDFH'].historyitem_type_PageMarginsChart | 2; window['AscDFH'].historyitem_PageMarginsSetHeader = window['AscDFH'].historyitem_type_PageMarginsChart | 3; window['AscDFH'].historyitem_PageMarginsSetL = window['AscDFH'].historyitem_type_PageMarginsChart | 4; window['AscDFH'].historyitem_PageMarginsSetR = window['AscDFH'].historyitem_type_PageMarginsChart | 5; window['AscDFH'].historyitem_PageMarginsSetT = window['AscDFH'].historyitem_type_PageMarginsChart | 6; window['AscDFH'].historyitem_PageSetupSetBlackAndWhite = window['AscDFH'].historyitem_type_PageSetup | 1; window['AscDFH'].historyitem_PageSetupSetCopies = window['AscDFH'].historyitem_type_PageSetup | 2; window['AscDFH'].historyitem_PageSetupSetDraft = window['AscDFH'].historyitem_type_PageSetup | 3; window['AscDFH'].historyitem_PageSetupSetFirstPageNumber = window['AscDFH'].historyitem_type_PageSetup | 4; window['AscDFH'].historyitem_PageSetupSetHorizontalDpi = window['AscDFH'].historyitem_type_PageSetup | 5; window['AscDFH'].historyitem_PageSetupSetOrientation = window['AscDFH'].historyitem_type_PageSetup | 6; window['AscDFH'].historyitem_PageSetupSetPaperHeight = window['AscDFH'].historyitem_type_PageSetup | 7; window['AscDFH'].historyitem_PageSetupSetPaperSize = window['AscDFH'].historyitem_type_PageSetup | 8; window['AscDFH'].historyitem_PageSetupSetPaperWidth = window['AscDFH'].historyitem_type_PageSetup | 9; window['AscDFH'].historyitem_PageSetupSetUseFirstPageNumb = window['AscDFH'].historyitem_type_PageSetup | 10; window['AscDFH'].historyitem_PageSetupSetVerticalDpi = window['AscDFH'].historyitem_type_PageSetup | 11; window['AscDFH'].historyitem_ShapeSetBDeleted = window['AscDFH'].historyitem_type_Shape | 1; window['AscDFH'].historyitem_ShapeSetNvSpPr = window['AscDFH'].historyitem_type_Shape | 2; window['AscDFH'].historyitem_ShapeSetSpPr = window['AscDFH'].historyitem_type_Shape | 3; window['AscDFH'].historyitem_ShapeSetStyle = window['AscDFH'].historyitem_type_Shape | 4; window['AscDFH'].historyitem_ShapeSetTxBody = window['AscDFH'].historyitem_type_Shape | 5; window['AscDFH'].historyitem_ShapeSetTextBoxContent = window['AscDFH'].historyitem_type_Shape | 6; window['AscDFH'].historyitem_ShapeSetParent = window['AscDFH'].historyitem_type_Shape | 7; window['AscDFH'].historyitem_ShapeSetGroup = window['AscDFH'].historyitem_type_Shape | 8; window['AscDFH'].historyitem_ShapeSetBodyPr = window['AscDFH'].historyitem_type_Shape | 9; window['AscDFH'].historyitem_ShapeSetWordShape = window['AscDFH'].historyitem_type_Shape | 10; window['AscDFH'].historyitem_ShapeSetSignature = window['AscDFH'].historyitem_type_Shape | 11; window['AscDFH'].historyitem_DispUnitsSetBuiltInUnit = window['AscDFH'].historyitem_type_DispUnits | 1; window['AscDFH'].historyitem_DispUnitsSetCustUnit = window['AscDFH'].historyitem_type_DispUnits | 2; window['AscDFH'].historyitem_DispUnitsSetDispUnitsLbl = window['AscDFH'].historyitem_type_DispUnits | 3; window['AscDFH'].historyitem_DispUnitsSetParent = window['AscDFH'].historyitem_type_DispUnits | 4; window['AscDFH'].historyitem_GroupShapeSetNvGrpSpPr = window['AscDFH'].historyitem_type_GroupShape | 1; window['AscDFH'].historyitem_GroupShapeSetSpPr = window['AscDFH'].historyitem_type_GroupShape | 2; window['AscDFH'].historyitem_GroupShapeAddToSpTree = window['AscDFH'].historyitem_type_GroupShape | 3; window['AscDFH'].historyitem_GroupShapeSetParent = window['AscDFH'].historyitem_type_GroupShape | 4; window['AscDFH'].historyitem_GroupShapeSetGroup = window['AscDFH'].historyitem_type_GroupShape | 5; window['AscDFH'].historyitem_GroupShapeRemoveFromSpTree = window['AscDFH'].historyitem_type_GroupShape | 6; window['AscDFH'].historyitem_ImageShapeSetNvPicPr = window['AscDFH'].historyitem_type_ImageShape | 1; window['AscDFH'].historyitem_ImageShapeSetSpPr = window['AscDFH'].historyitem_type_ImageShape | 2; window['AscDFH'].historyitem_ImageShapeSetBlipFill = window['AscDFH'].historyitem_type_ImageShape | 3; window['AscDFH'].historyitem_ImageShapeSetParent = window['AscDFH'].historyitem_type_ImageShape | 4; window['AscDFH'].historyitem_ImageShapeSetGroup = window['AscDFH'].historyitem_type_ImageShape | 5; window['AscDFH'].historyitem_ImageShapeSetStyle = window['AscDFH'].historyitem_type_ImageShape | 6; window['AscDFH'].historyitem_ImageShapeSetData = window['AscDFH'].historyitem_type_ImageShape | 7; window['AscDFH'].historyitem_ImageShapeSetApplicationId = window['AscDFH'].historyitem_type_ImageShape | 8; window['AscDFH'].historyitem_ImageShapeSetPixSizes = window['AscDFH'].historyitem_type_ImageShape | 9; window['AscDFH'].historyitem_ImageShapeSetObjectFile = window['AscDFH'].historyitem_type_ImageShape | 10; window['AscDFH'].historyitem_GeometrySetParent = window['AscDFH'].historyitem_type_Geometry | 1; window['AscDFH'].historyitem_GeometryAddAdj = window['AscDFH'].historyitem_type_Geometry | 2; window['AscDFH'].historyitem_GeometryAddGuide = window['AscDFH'].historyitem_type_Geometry | 3; window['AscDFH'].historyitem_GeometryAddCnx = window['AscDFH'].historyitem_type_Geometry | 4; window['AscDFH'].historyitem_GeometryAddHandleXY = window['AscDFH'].historyitem_type_Geometry | 5; window['AscDFH'].historyitem_GeometryAddHandlePolar = window['AscDFH'].historyitem_type_Geometry | 6; window['AscDFH'].historyitem_GeometryAddPath = window['AscDFH'].historyitem_type_Geometry | 7; window['AscDFH'].historyitem_GeometryAddRect = window['AscDFH'].historyitem_type_Geometry | 8; window['AscDFH'].historyitem_GeometrySetPreset = window['AscDFH'].historyitem_type_Geometry | 9; window['AscDFH'].historyitem_PathSetStroke = window['AscDFH'].historyitem_type_Path | 1; window['AscDFH'].historyitem_PathSetExtrusionOk = window['AscDFH'].historyitem_type_Path | 2; window['AscDFH'].historyitem_PathSetFill = window['AscDFH'].historyitem_type_Path | 3; window['AscDFH'].historyitem_PathSetPathH = window['AscDFH'].historyitem_type_Path | 4; window['AscDFH'].historyitem_PathSetPathW = window['AscDFH'].historyitem_type_Path | 5; window['AscDFH'].historyitem_PathAddPathCommand = window['AscDFH'].historyitem_type_Path | 6; window['AscDFH'].historyitem_TextBodySetBodyPr = window['AscDFH'].historyitem_type_TextBody | 1; window['AscDFH'].historyitem_TextBodySetLstStyle = window['AscDFH'].historyitem_type_TextBody | 2; window['AscDFH'].historyitem_TextBodySetContent = window['AscDFH'].historyitem_type_TextBody | 3; window['AscDFH'].historyitem_TextBodySetParent = window['AscDFH'].historyitem_type_TextBody | 4; window['AscDFH'].historyitem_CatAxSetAuto = window['AscDFH'].historyitem_type_CatAx | 1; window['AscDFH'].historyitem_CatAxSetAxId = window['AscDFH'].historyitem_type_CatAx | 2; window['AscDFH'].historyitem_CatAxSetAxPos = window['AscDFH'].historyitem_type_CatAx | 3; window['AscDFH'].historyitem_CatAxSetCrossAx = window['AscDFH'].historyitem_type_CatAx | 4; window['AscDFH'].historyitem_CatAxSetCrosses = window['AscDFH'].historyitem_type_CatAx | 5; window['AscDFH'].historyitem_CatAxSetCrossesAt = window['AscDFH'].historyitem_type_CatAx | 6; window['AscDFH'].historyitem_CatAxSetDelete = window['AscDFH'].historyitem_type_CatAx | 7; window['AscDFH'].historyitem_CatAxSetLblAlgn = window['AscDFH'].historyitem_type_CatAx | 8; window['AscDFH'].historyitem_CatAxSetLblOffset = window['AscDFH'].historyitem_type_CatAx | 9; window['AscDFH'].historyitem_CatAxSetMajorGridlines = window['AscDFH'].historyitem_type_CatAx | 10; window['AscDFH'].historyitem_CatAxSetMajorTickMark = window['AscDFH'].historyitem_type_CatAx | 11; window['AscDFH'].historyitem_CatAxSetMinorGridlines = window['AscDFH'].historyitem_type_CatAx | 12; window['AscDFH'].historyitem_CatAxSetMinorTickMark = window['AscDFH'].historyitem_type_CatAx | 13; window['AscDFH'].historyitem_CatAxSetNoMultiLvlLbl = window['AscDFH'].historyitem_type_CatAx | 14; window['AscDFH'].historyitem_CatAxSetNumFmt = window['AscDFH'].historyitem_type_CatAx | 15; window['AscDFH'].historyitem_CatAxSetScaling = window['AscDFH'].historyitem_type_CatAx | 16; window['AscDFH'].historyitem_CatAxSetSpPr = window['AscDFH'].historyitem_type_CatAx | 17; window['AscDFH'].historyitem_CatAxSetTickLblPos = window['AscDFH'].historyitem_type_CatAx | 18; window['AscDFH'].historyitem_CatAxSetTickLblSkip = window['AscDFH'].historyitem_type_CatAx | 19; window['AscDFH'].historyitem_CatAxSetTickMarkSkip = window['AscDFH'].historyitem_type_CatAx | 20; window['AscDFH'].historyitem_CatAxSetTitle = window['AscDFH'].historyitem_type_CatAx | 21; window['AscDFH'].historyitem_CatAxSetTxPr = window['AscDFH'].historyitem_type_CatAx | 22; window['AscDFH'].historyitem_ValAxSetAxId = window['AscDFH'].historyitem_type_ValAx | 1; window['AscDFH'].historyitem_ValAxSetAxPos = window['AscDFH'].historyitem_type_ValAx | 2; window['AscDFH'].historyitem_ValAxSetCrossAx = window['AscDFH'].historyitem_type_ValAx | 3; window['AscDFH'].historyitem_ValAxSetCrossBetween = window['AscDFH'].historyitem_type_ValAx | 4; window['AscDFH'].historyitem_ValAxSetCrosses = window['AscDFH'].historyitem_type_ValAx | 5; window['AscDFH'].historyitem_ValAxSetCrossesAt = window['AscDFH'].historyitem_type_ValAx | 6; window['AscDFH'].historyitem_ValAxSetDelete = window['AscDFH'].historyitem_type_ValAx | 7; window['AscDFH'].historyitem_ValAxSetDispUnits = window['AscDFH'].historyitem_type_ValAx | 8; window['AscDFH'].historyitem_ValAxSetMajorGridlines = window['AscDFH'].historyitem_type_ValAx | 9; window['AscDFH'].historyitem_ValAxSetMajorTickMark = window['AscDFH'].historyitem_type_ValAx | 10; window['AscDFH'].historyitem_ValAxSetMajorUnit = window['AscDFH'].historyitem_type_ValAx | 11; window['AscDFH'].historyitem_ValAxSetMinorGridlines = window['AscDFH'].historyitem_type_ValAx | 12; window['AscDFH'].historyitem_ValAxSetMinorTickMark = window['AscDFH'].historyitem_type_ValAx | 13; window['AscDFH'].historyitem_ValAxSetMinorUnit = window['AscDFH'].historyitem_type_ValAx | 14; window['AscDFH'].historyitem_ValAxSetNumFmt = window['AscDFH'].historyitem_type_ValAx | 15; window['AscDFH'].historyitem_ValAxSetScaling = window['AscDFH'].historyitem_type_ValAx | 16; window['AscDFH'].historyitem_ValAxSetSpPr = window['AscDFH'].historyitem_type_ValAx | 17; window['AscDFH'].historyitem_ValAxSetTickLblPos = window['AscDFH'].historyitem_type_ValAx | 18; window['AscDFH'].historyitem_ValAxSetTitle = window['AscDFH'].historyitem_type_ValAx | 19; window['AscDFH'].historyitem_ValAxSetTxPr = window['AscDFH'].historyitem_type_ValAx | 20; window['AscDFH'].historyitem_WrapPolygonSetEdited = window['AscDFH'].historyitem_type_WrapPolygon | 1; window['AscDFH'].historyitem_WrapPolygonSetRelPoints = window['AscDFH'].historyitem_type_WrapPolygon | 2; window['AscDFH'].historyitem_WrapPolygonSetWrapSide = window['AscDFH'].historyitem_type_WrapPolygon | 3; window['AscDFH'].historyitem_DateAxAuto = window['AscDFH'].historyitem_type_DateAx | 1; window['AscDFH'].historyitem_DateAxAxId = window['AscDFH'].historyitem_type_DateAx | 2; window['AscDFH'].historyitem_DateAxAxPos = window['AscDFH'].historyitem_type_DateAx | 3; window['AscDFH'].historyitem_DateAxBaseTimeUnit = window['AscDFH'].historyitem_type_DateAx | 4; window['AscDFH'].historyitem_DateAxCrossAx = window['AscDFH'].historyitem_type_DateAx | 5; window['AscDFH'].historyitem_DateAxCrosses = window['AscDFH'].historyitem_type_DateAx | 6; window['AscDFH'].historyitem_DateAxCrossesAt = window['AscDFH'].historyitem_type_DateAx | 7; window['AscDFH'].historyitem_DateAxDelete = window['AscDFH'].historyitem_type_DateAx | 8; window['AscDFH'].historyitem_DateAxLblOffset = window['AscDFH'].historyitem_type_DateAx | 9; window['AscDFH'].historyitem_DateAxMajorGridlines = window['AscDFH'].historyitem_type_DateAx | 10; window['AscDFH'].historyitem_DateAxMajorTickMark = window['AscDFH'].historyitem_type_DateAx | 11; window['AscDFH'].historyitem_DateAxMajorTimeUnit = window['AscDFH'].historyitem_type_DateAx | 12; window['AscDFH'].historyitem_DateAxMajorUnit = window['AscDFH'].historyitem_type_DateAx | 13; window['AscDFH'].historyitem_DateAxMinorGridlines = window['AscDFH'].historyitem_type_DateAx | 14; window['AscDFH'].historyitem_DateAxMinorTickMark = window['AscDFH'].historyitem_type_DateAx | 15; window['AscDFH'].historyitem_DateAxMinorTimeUnit = window['AscDFH'].historyitem_type_DateAx | 16; window['AscDFH'].historyitem_DateAxMinorUnit = window['AscDFH'].historyitem_type_DateAx | 17; window['AscDFH'].historyitem_DateAxNumFmt = window['AscDFH'].historyitem_type_DateAx | 18; window['AscDFH'].historyitem_DateAxScaling = window['AscDFH'].historyitem_type_DateAx | 19; window['AscDFH'].historyitem_DateAxSpPr = window['AscDFH'].historyitem_type_DateAx | 20; window['AscDFH'].historyitem_DateAxTickLblPos = window['AscDFH'].historyitem_type_DateAx | 21; window['AscDFH'].historyitem_DateAxTitle = window['AscDFH'].historyitem_type_DateAx | 22; window['AscDFH'].historyitem_DateAxTxPr = window['AscDFH'].historyitem_type_DateAx | 23; window['AscDFH'].historyitem_SerAxSetAxId = window['AscDFH'].historyitem_type_SerAx | 1; window['AscDFH'].historyitem_SerAxSetAxPos = window['AscDFH'].historyitem_type_SerAx | 2; window['AscDFH'].historyitem_SerAxSetCrossAx = window['AscDFH'].historyitem_type_SerAx | 3; window['AscDFH'].historyitem_SerAxSetCrosses = window['AscDFH'].historyitem_type_SerAx | 4; window['AscDFH'].historyitem_SerAxSetCrossesAt = window['AscDFH'].historyitem_type_SerAx | 5; window['AscDFH'].historyitem_SerAxSetDelete = window['AscDFH'].historyitem_type_SerAx | 6; window['AscDFH'].historyitem_SerAxSetMajorGridlines = window['AscDFH'].historyitem_type_SerAx | 7; window['AscDFH'].historyitem_SerAxSetMajorTickMark = window['AscDFH'].historyitem_type_SerAx | 8; window['AscDFH'].historyitem_SerAxSetMinorGridlines = window['AscDFH'].historyitem_type_SerAx | 9; window['AscDFH'].historyitem_SerAxSetMinorTickMark = window['AscDFH'].historyitem_type_SerAx | 10; window['AscDFH'].historyitem_SerAxSetNumFmt = window['AscDFH'].historyitem_type_SerAx | 11; window['AscDFH'].historyitem_SerAxSetScaling = window['AscDFH'].historyitem_type_SerAx | 12; window['AscDFH'].historyitem_SerAxSetSpPr = window['AscDFH'].historyitem_type_SerAx | 13; window['AscDFH'].historyitem_SerAxSetTickLblPos = window['AscDFH'].historyitem_type_SerAx | 14; window['AscDFH'].historyitem_SerAxSetTickLblSkip = window['AscDFH'].historyitem_type_SerAx | 15; window['AscDFH'].historyitem_SerAxSetTickMarkSkip = window['AscDFH'].historyitem_type_SerAx | 16; window['AscDFH'].historyitem_SerAxSetTitle = window['AscDFH'].historyitem_type_SerAx | 17; window['AscDFH'].historyitem_SerAxSetTxPr = window['AscDFH'].historyitem_type_SerAx | 18; window['AscDFH'].historyitem_Title_SetLayout = window['AscDFH'].historyitem_type_Title | 1; window['AscDFH'].historyitem_Title_SetOverlay = window['AscDFH'].historyitem_type_Title | 2; window['AscDFH'].historyitem_Title_SetSpPr = window['AscDFH'].historyitem_type_Title | 3; window['AscDFH'].historyitem_Title_SetTx = window['AscDFH'].historyitem_type_Title | 4; window['AscDFH'].historyitem_Title_SetTxPr = window['AscDFH'].historyitem_type_Title | 5; window['AscDFH'].historyitem_SlideSetComments = window['AscDFH'].historyitem_type_Slide | 1; window['AscDFH'].historyitem_SlideSetShow = window['AscDFH'].historyitem_type_Slide | 2; window['AscDFH'].historyitem_SlideSetShowPhAnim = window['AscDFH'].historyitem_type_Slide | 3; window['AscDFH'].historyitem_SlideSetShowMasterSp = window['AscDFH'].historyitem_type_Slide | 4; window['AscDFH'].historyitem_SlideSetLayout = window['AscDFH'].historyitem_type_Slide | 5; window['AscDFH'].historyitem_SlideSetNum = window['AscDFH'].historyitem_type_Slide | 6; window['AscDFH'].historyitem_SlideSetTiming = window['AscDFH'].historyitem_type_Slide | 7; window['AscDFH'].historyitem_SlideSetSize = window['AscDFH'].historyitem_type_Slide | 8; window['AscDFH'].historyitem_SlideSetBg = window['AscDFH'].historyitem_type_Slide | 9; window['AscDFH'].historyitem_SlideSetLocks = window['AscDFH'].historyitem_type_Slide | 10; window['AscDFH'].historyitem_SlideRemoveFromSpTree = window['AscDFH'].historyitem_type_Slide | 11; window['AscDFH'].historyitem_SlideAddToSpTree = window['AscDFH'].historyitem_type_Slide | 12; window['AscDFH'].historyitem_SlideSetCSldName = window['AscDFH'].historyitem_type_Slide | 13; window['AscDFH'].historyitem_SlideSetClrMapOverride = window['AscDFH'].historyitem_type_Slide | 14; window['AscDFH'].historyitem_SlideSetNotes = window['AscDFH'].historyitem_type_Slide | 15; window['AscDFH'].historyitem_SlideLayoutSetMaster = window['AscDFH'].historyitem_type_SlideLayout | 1; window['AscDFH'].historyitem_SlideLayoutSetMatchingName = window['AscDFH'].historyitem_type_SlideLayout | 2; window['AscDFH'].historyitem_SlideLayoutSetType = window['AscDFH'].historyitem_type_SlideLayout | 3; window['AscDFH'].historyitem_SlideLayoutSetBg = window['AscDFH'].historyitem_type_SlideLayout | 4; window['AscDFH'].historyitem_SlideLayoutSetCSldName = window['AscDFH'].historyitem_type_SlideLayout | 5; window['AscDFH'].historyitem_SlideLayoutSetShow = window['AscDFH'].historyitem_type_SlideLayout | 6; window['AscDFH'].historyitem_SlideLayoutSetShowPhAnim = window['AscDFH'].historyitem_type_SlideLayout | 7; window['AscDFH'].historyitem_SlideLayoutSetShowMasterSp = window['AscDFH'].historyitem_type_SlideLayout | 8; window['AscDFH'].historyitem_SlideLayoutSetClrMapOverride = window['AscDFH'].historyitem_type_SlideLayout | 9; window['AscDFH'].historyitem_SlideLayoutAddToSpTree = window['AscDFH'].historyitem_type_SlideLayout | 10; window['AscDFH'].historyitem_SlideLayoutSetSize = window['AscDFH'].historyitem_type_SlideLayout | 11; window['AscDFH'].historyitem_SlideMasterAddToSpTree = window['AscDFH'].historyitem_type_SlideMaster | 1; window['AscDFH'].historyitem_SlideMasterSetTheme = window['AscDFH'].historyitem_type_SlideMaster | 2; window['AscDFH'].historyitem_SlideMasterSetBg = window['AscDFH'].historyitem_type_SlideMaster | 3; window['AscDFH'].historyitem_SlideMasterSetTxStyles = window['AscDFH'].historyitem_type_SlideMaster | 4; window['AscDFH'].historyitem_SlideMasterSetCSldName = window['AscDFH'].historyitem_type_SlideMaster | 5; window['AscDFH'].historyitem_SlideMasterSetClrMapOverride = window['AscDFH'].historyitem_type_SlideMaster | 6; window['AscDFH'].historyitem_SlideMasterAddLayout = window['AscDFH'].historyitem_type_SlideMaster | 7; window['AscDFH'].historyitem_SlideMasterSetThemeIndex = window['AscDFH'].historyitem_type_SlideMaster | 8; window['AscDFH'].historyitem_SlideMasterSetSize = window['AscDFH'].historyitem_type_SlideMaster | 9; window['AscDFH'].historyitem_SlideCommentsAddComment = window['AscDFH'].historyitem_type_SlideComments | 1; window['AscDFH'].historyitem_SlideCommentsRemoveComment = window['AscDFH'].historyitem_type_SlideComments | 2; window['AscDFH'].historyitem_PropLockerSetId = window['AscDFH'].historyitem_type_PropLocker | 1; window['AscDFH'].historyitem_ThemeSetColorScheme = window['AscDFH'].historyitem_type_Theme | 1; window['AscDFH'].historyitem_ThemeSetFontScheme = window['AscDFH'].historyitem_type_Theme | 2; window['AscDFH'].historyitem_ThemeSetFmtScheme = window['AscDFH'].historyitem_type_Theme | 3; window['AscDFH'].historyitem_ThemeSetName = window['AscDFH'].historyitem_type_Theme | 4; window['AscDFH'].historyitem_ThemeSetIsThemeOverride = window['AscDFH'].historyitem_type_Theme | 5; window['AscDFH'].historyitem_ThemeSetSpDef = window['AscDFH'].historyitem_type_Theme | 6; window['AscDFH'].historyitem_ThemeSetLnDef = window['AscDFH'].historyitem_type_Theme | 7; window['AscDFH'].historyitem_ThemeSetTxDef = window['AscDFH'].historyitem_type_Theme | 8; window['AscDFH'].historyitem_ThemeAddExtraClrScheme = window['AscDFH'].historyitem_type_Theme | 9; window['AscDFH'].historyitem_GraphicFrameSetSpPr = window['AscDFH'].historyitem_type_GraphicFrame | 1; window['AscDFH'].historyitem_GraphicFrameSetGraphicObject = window['AscDFH'].historyitem_type_GraphicFrame | 2; window['AscDFH'].historyitem_GraphicFrameSetSetNvSpPr = window['AscDFH'].historyitem_type_GraphicFrame | 3; window['AscDFH'].historyitem_GraphicFrameSetSetParent = window['AscDFH'].historyitem_type_GraphicFrame | 4; window['AscDFH'].historyitem_GraphicFrameSetSetGroup = window['AscDFH'].historyitem_type_GraphicFrame | 5; window['AscDFH'].historyitem_Sparkline_Type = window['AscDFH'].historyitem_type_Sparkline | 1; window['AscDFH'].historyitem_Sparkline_LineWeight = window['AscDFH'].historyitem_type_Sparkline | 2; window['AscDFH'].historyitem_Sparkline_DisplayEmptyCellsAs = window['AscDFH'].historyitem_type_Sparkline | 3; window['AscDFH'].historyitem_Sparkline_Markers = window['AscDFH'].historyitem_type_Sparkline | 4; window['AscDFH'].historyitem_Sparkline_High = window['AscDFH'].historyitem_type_Sparkline | 5; window['AscDFH'].historyitem_Sparkline_Low = window['AscDFH'].historyitem_type_Sparkline | 6; window['AscDFH'].historyitem_Sparkline_First = window['AscDFH'].historyitem_type_Sparkline | 7; window['AscDFH'].historyitem_Sparkline_Last = window['AscDFH'].historyitem_type_Sparkline | 8; window['AscDFH'].historyitem_Sparkline_Negative = window['AscDFH'].historyitem_type_Sparkline | 9; window['AscDFH'].historyitem_Sparkline_DisplayXAxis = window['AscDFH'].historyitem_type_Sparkline | 10; window['AscDFH'].historyitem_Sparkline_DisplayHidden = window['AscDFH'].historyitem_type_Sparkline | 11; window['AscDFH'].historyitem_Sparkline_MinAxisType = window['AscDFH'].historyitem_type_Sparkline | 12; window['AscDFH'].historyitem_Sparkline_MaxAxisType = window['AscDFH'].historyitem_type_Sparkline | 13; window['AscDFH'].historyitem_Sparkline_RightToLeft = window['AscDFH'].historyitem_type_Sparkline | 14; window['AscDFH'].historyitem_Sparkline_ManualMax = window['AscDFH'].historyitem_type_Sparkline | 15; window['AscDFH'].historyitem_Sparkline_ManualMin = window['AscDFH'].historyitem_type_Sparkline | 16; window['AscDFH'].historyitem_Sparkline_DateAxis = window['AscDFH'].historyitem_type_Sparkline | 17; window['AscDFH'].historyitem_Sparkline_ColorSeries = window['AscDFH'].historyitem_type_Sparkline | 18; window['AscDFH'].historyitem_Sparkline_ColorNegative = window['AscDFH'].historyitem_type_Sparkline | 19; window['AscDFH'].historyitem_Sparkline_ColorAxis = window['AscDFH'].historyitem_type_Sparkline | 20; window['AscDFH'].historyitem_Sparkline_ColorMarkers = window['AscDFH'].historyitem_type_Sparkline | 21; window['AscDFH'].historyitem_Sparkline_ColorFirst = window['AscDFH'].historyitem_type_Sparkline | 22; window['AscDFH'].historyitem_Sparkline_colorLast = window['AscDFH'].historyitem_type_Sparkline | 23; window['AscDFH'].historyitem_Sparkline_ColorHigh = window['AscDFH'].historyitem_type_Sparkline | 24; window['AscDFH'].historyitem_Sparkline_ColorLow = window['AscDFH'].historyitem_type_Sparkline | 25; window['AscDFH'].historyitem_Sparkline_F = window['AscDFH'].historyitem_type_Sparkline | 26; window['AscDFH'].historyitem_Sparkline_ChangeData = window['AscDFH'].historyitem_type_Sparkline | 27; window['AscDFH'].historyitem_Sparkline_RemoveData = window['AscDFH'].historyitem_type_Sparkline | 28; window['AscDFH'].historyitem_Sparkline_RemoveSparkline = window['AscDFH'].historyitem_type_Sparkline | 29; window['AscDFH'].historyitem_PivotTableDefinitionDelete = window['AscDFH'].historyitem_type_PivotTableDefinition | 1; window['AscDFH'].historyitem_NotesMasterSetHF = window['AscDFH'].historyitem_type_NotesMaster | 1; window['AscDFH'].historyitem_NotesMasterSetNotesStyle = window['AscDFH'].historyitem_type_NotesMaster | 2; window['AscDFH'].historyitem_NotesMasterSetNotesTheme = window['AscDFH'].historyitem_type_NotesMaster | 3; window['AscDFH'].historyitem_NotesMasterAddToSpTree = window['AscDFH'].historyitem_type_NotesMaster | 4; window['AscDFH'].historyitem_NotesMasterRemoveFromTree = window['AscDFH'].historyitem_type_NotesMaster | 5; window['AscDFH'].historyitem_NotesMasterSetBg = window['AscDFH'].historyitem_type_NotesMaster | 6; window['AscDFH'].historyitem_NotesMasterAddToNotesLst = window['AscDFH'].historyitem_type_NotesMaster | 7; window['AscDFH'].historyitem_NotesMasterSetName = window['AscDFH'].historyitem_type_NotesMaster | 8; window['AscDFH'].historyitem_NotesSetClrMap = window['AscDFH'].historyitem_type_Notes | 1; window['AscDFH'].historyitem_NotesSetShowMasterPhAnim = window['AscDFH'].historyitem_type_Notes | 2; window['AscDFH'].historyitem_NotesSetShowMasterSp = window['AscDFH'].historyitem_type_Notes | 3; window['AscDFH'].historyitem_NotesAddToSpTree = window['AscDFH'].historyitem_type_Notes | 4; window['AscDFH'].historyitem_NotesRemoveFromTree = window['AscDFH'].historyitem_type_Notes | 5; window['AscDFH'].historyitem_NotesSetBg = window['AscDFH'].historyitem_type_Notes | 6; window['AscDFH'].historyitem_NotesSetName = window['AscDFH'].historyitem_type_Notes | 7; window['AscDFH'].historyitem_NotesSetSlide = window['AscDFH'].historyitem_type_Notes | 8; window['AscDFH'].historyitem_NotesSetNotesMaster = window['AscDFH'].historyitem_type_Notes | 9; window['AscDFH'].historyitem_PresentationSectionSetName = window['AscDFH'].historyitem_type_PresentationSection | 1; window['AscDFH'].historyitem_PresentationSectionSetGuid = window['AscDFH'].historyitem_type_PresentationSection | 2; window['AscDFH'].historyitem_PresentationSectionSetStartIndex = window['AscDFH'].historyitem_type_PresentationSection | 3; //------------------------------------------------------------------------------------------------------------------ // Типы изменений класса CDocumentMacros //------------------------------------------------------------------------------------------------------------------ window['AscDFH'].historyitem_DocumentMacros_Data = window['Asc'].historyitem_type_DocumentMacros | 1; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Типы действий, который может совершить пользователь // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// window['AscDFH'].historydescription_Cut = 0x0001; window['AscDFH'].historydescription_PasteButtonIE = 0x0002; window['AscDFH'].historydescription_PasteButtonNotIE = 0x0003; window['AscDFH'].historydescription_ChartDrawingObjects = 0x0004; window['AscDFH'].historydescription_CommonControllerCheckChartText = 0x0005; window['AscDFH'].historydescription_CommonControllerUnGroup = 0x0006; window['AscDFH'].historydescription_CommonControllerCheckSelected = 0x0007; window['AscDFH'].historydescription_CommonControllerSetGraphicObject = 0x0008; window['AscDFH'].historydescription_CommonStatesAddNewShape = 0x0009; window['AscDFH'].historydescription_CommonStatesRotate = 0x000a; window['AscDFH'].historydescription_PasteNative = 0x000b; window['AscDFH'].historydescription_Document_GroupUnGroup = 0x000c; window['AscDFH'].historydescription_Document_SetDefaultLanguage = 0x000d; window['AscDFH'].historydescription_Document_ChangeColorScheme = 0x000e; window['AscDFH'].historydescription_Document_AddChart = 0x000f; window['AscDFH'].historydescription_Document_EditChart = 0x0010; window['AscDFH'].historydescription_Document_DragText = 0x0011; window['AscDFH'].historydescription_Document_DocumentContentExtendToPos = 0x0012; window['AscDFH'].historydescription_Document_AddHeader = 0x0013; window['AscDFH'].historydescription_Document_AddFooter = 0x0014; window['AscDFH'].historydescription_Document_ParagraphExtendToPos = 0x0015; window['AscDFH'].historydescription_Document_ParagraphChangeFrame = 0x0016; window['AscDFH'].historydescription_Document_ReplaceAll = 0x0017; window['AscDFH'].historydescription_Document_ReplaceSingle = 0x0018; window['AscDFH'].historydescription_Document_TableAddNewRowByTab = 0x0019; window['AscDFH'].historydescription_Document_AddNewShape = 0x001a; window['AscDFH'].historydescription_Document_EditWrapPolygon = 0x001b; window['AscDFH'].historydescription_Document_MoveInlineObject = 0x001c; window['AscDFH'].historydescription_Document_CopyAndMoveInlineObject = 0x001d; window['AscDFH'].historydescription_Document_RotateInlineDrawing = 0x001e; window['AscDFH'].historydescription_Document_RotateFlowDrawingCtrl = 0x001f; window['AscDFH'].historydescription_Document_RotateFlowDrawingNoCtrl = 0x0020; window['AscDFH'].historydescription_Document_MoveInGroup = 0x0021; window['AscDFH'].historydescription_Document_ChangeWrapContour = 0x0022; window['AscDFH'].historydescription_Document_ChangeWrapContourAddPoint = 0x0023; window['AscDFH'].historydescription_Document_GrObjectsBringToFront = 0x0024; window['AscDFH'].historydescription_Document_GrObjectsBringForwardGroup = 0x0025; window['AscDFH'].historydescription_Document_GrObjectsBringForward = 0x0026; window['AscDFH'].historydescription_Document_GrObjectsSendToBackGroup = 0x0027; window['AscDFH'].historydescription_Document_GrObjectsSendToBack = 0x0028; window['AscDFH'].historydescription_Document_GrObjectsBringBackwardGroup = 0x0029; window['AscDFH'].historydescription_Document_GrObjectsBringBackward = 0x002a; window['AscDFH'].historydescription_Document_GrObjectsChangeWrapPolygon = 0x002b; window['AscDFH'].historydescription_Document_MathAutoCorrect = 0x002c; window['AscDFH'].historydescription_Document_SetFramePrWithFontFamily = 0x002d; window['AscDFH'].historydescription_Document_SetFramePr = 0x002e; window['AscDFH'].historydescription_Document_SetFramePrWithFontFamilyLong = 0x002f; window['AscDFH'].historydescription_Document_SetTextFontName = 0x0030; window['AscDFH'].historydescription_Document_SetTextFontSize = 0x0031; window['AscDFH'].historydescription_Document_SetTextBold = 0x0032; window['AscDFH'].historydescription_Document_SetTextItalic = 0x0033; window['AscDFH'].historydescription_Document_SetTextUnderline = 0x0034; window['AscDFH'].historydescription_Document_SetTextStrikeout = 0x0035; window['AscDFH'].historydescription_Document_SetTextDStrikeout = 0x0036; window['AscDFH'].historydescription_Document_SetTextSpacing = 0x0037; window['AscDFH'].historydescription_Document_SetTextCaps = 0x0038; window['AscDFH'].historydescription_Document_SetTextSmallCaps = 0x0039; window['AscDFH'].historydescription_Document_SetTextPosition = 0x003a; window['AscDFH'].historydescription_Document_SetTextLang = 0x003b; window['AscDFH'].historydescription_Document_SetParagraphLineSpacing = 0x003c; window['AscDFH'].historydescription_Document_SetParagraphLineSpacingBeforeAfter = 0x003d; window['AscDFH'].historydescription_Document_IncFontSize = 0x003e; window['AscDFH'].historydescription_Document_DecFontSize = 0x003f; window['AscDFH'].historydescription_Document_SetParagraphBorders = 0x0040; window['AscDFH'].historydescription_Document_SetParagraphPr = 0x0041; window['AscDFH'].historydescription_Document_SetParagraphAlign = 0x0042; window['AscDFH'].historydescription_Document_SetTextVertAlign = 0x0043; window['AscDFH'].historydescription_Document_SetParagraphNumbering = 0x0044; window['AscDFH'].historydescription_Document_SetParagraphStyle = 0x0045; window['AscDFH'].historydescription_Document_SetParagraphPageBreakBefore = 0x0046; window['AscDFH'].historydescription_Document_SetParagraphWidowControl = 0x0047; window['AscDFH'].historydescription_Document_SetParagraphKeepLines = 0x0048; window['AscDFH'].historydescription_Document_SetParagraphKeepNext = 0x0049; window['AscDFH'].historydescription_Document_SetParagraphContextualSpacing = 0x004a; window['AscDFH'].historydescription_Document_SetTextHighlightNone = 0x004b; window['AscDFH'].historydescription_Document_SetTextHighlightColor = 0x004c; window['AscDFH'].historydescription_Document_SetTextColor = 0x004d; window['AscDFH'].historydescription_Document_SetParagraphShd = 0x004e; window['AscDFH'].historydescription_Document_SetParagraphIndent = 0x004f; window['AscDFH'].historydescription_Document_IncParagraphIndent = 0x0050; window['AscDFH'].historydescription_Document_DecParagraphIndent = 0x0051; window['AscDFH'].historydescription_Document_SetParagraphIndentRight = 0x0052; window['AscDFH'].historydescription_Document_SetParagraphIndentFirstLine = 0x0053; window['AscDFH'].historydescription_Document_SetPageOrientation = 0x0054; window['AscDFH'].historydescription_Document_SetPageSize = 0x0055; window['AscDFH'].historydescription_Document_AddPageBreak = 0x0056; window['AscDFH'].historydescription_Document_AddPageNumToHdrFtr = 0x0057; window['AscDFH'].historydescription_Document_AddPageNumToCurrentPos = 0x0058; window['AscDFH'].historydescription_Document_SetHdrFtrDistance = 0x0059; window['AscDFH'].historydescription_Document_SetHdrFtrFirstPage = 0x005a; window['AscDFH'].historydescription_Document_SetHdrFtrEvenAndOdd = 0x005b; window['AscDFH'].historydescription_Document_SetHdrFtrLink = 0x005c; window['AscDFH'].historydescription_Document_AddTable = 0x005d; window['AscDFH'].historydescription_Document_TableAddRowAbove = 0x005e; window['AscDFH'].historydescription_Document_TableAddRowBelow = 0x005f; window['AscDFH'].historydescription_Document_TableAddColumnLeft = 0x0060; window['AscDFH'].historydescription_Document_TableAddColumnRight = 0x0061; window['AscDFH'].historydescription_Document_TableRemoveRow = 0x0062; window['AscDFH'].historydescription_Document_TableRemoveColumn = 0x0063; window['AscDFH'].historydescription_Document_RemoveTable = 0x0064; window['AscDFH'].historydescription_Document_MergeTableCells = 0x0065; window['AscDFH'].historydescription_Document_SplitTableCells = 0x0066; window['AscDFH'].historydescription_Document_ApplyTablePr = 0x0067; window['AscDFH'].historydescription_Document_AddImageUrl = 0x0068; window['AscDFH'].historydescription_Document_AddImageUrlLong = 0x0069; window['AscDFH'].historydescription_Document_AddImageToPage = 0x006a; window['AscDFH'].historydescription_Document_ApplyImagePrWithUrl = 0x006b; window['AscDFH'].historydescription_Document_ApplyImagePrWithUrlLong = 0x006c; window['AscDFH'].historydescription_Document_ApplyImagePrWithFillUrl = 0x006d; window['AscDFH'].historydescription_Document_ApplyImagePrWithFillUrlLong = 0x006e; window['AscDFH'].historydescription_Document_ApplyImagePr = 0x006f; window['AscDFH'].historydescription_Document_AddHyperlink = 0x0070; window['AscDFH'].historydescription_Document_ChangeHyperlink = 0x0071; window['AscDFH'].historydescription_Document_RemoveHyperlink = 0x0072; window['AscDFH'].historydescription_Document_ReplaceMisspelledWord = 0x0073; window['AscDFH'].historydescription_Document_AddComment = 0x0074; window['AscDFH'].historydescription_Document_RemoveComment = 0x0075; window['AscDFH'].historydescription_Document_ChangeComment = 0x0076; window['AscDFH'].historydescription_Document_SetTextFontNameLong = 0x0077; window['AscDFH'].historydescription_Document_AddImage = 0x0078; window['AscDFH'].historydescription_Document_ClearFormatting = 0x0079; window['AscDFH'].historydescription_Document_AddSectionBreak = 0x007a; window['AscDFH'].historydescription_Document_AddMath = 0x007b; window['AscDFH'].historydescription_Document_SetParagraphTabs = 0x007c; window['AscDFH'].historydescription_Document_SetParagraphIndentFromRulers = 0x007d; window['AscDFH'].historydescription_Document_SetDocumentMargin_Hor = 0x007e; window['AscDFH'].historydescription_Document_SetTableMarkup_Hor = 0x007f; window['AscDFH'].historydescription_Document_SetDocumentMargin_Ver = 0x0080; window['AscDFH'].historydescription_Document_SetHdrFtrBounds = 0x0081; window['AscDFH'].historydescription_Document_SetTableMarkup_Ver = 0x0082; window['AscDFH'].historydescription_Document_DocumentExtendToPos = 0x0083; window['AscDFH'].historydescription_Document_AddDropCap = 0x0084; window['AscDFH'].historydescription_Document_RemoveDropCap = 0x0085; window['AscDFH'].historydescription_Document_SetTextHighlight = 0x0086; window['AscDFH'].historydescription_Document_BackSpaceButton = 0x0087; window['AscDFH'].historydescription_Document_MoveParagraphByTab = 0x0088; window['AscDFH'].historydescription_Document_AddTab = 0x0089; window['AscDFH'].historydescription_Document_EnterButton = 0x008a; window['AscDFH'].historydescription_Document_SpaceButton = 0x008b; window['AscDFH'].historydescription_Document_ShiftInsert = 0x008c; window['AscDFH'].historydescription_Document_ShiftInsertSafari = 0x008d; window['AscDFH'].historydescription_Document_DeleteButton = 0x008e; window['AscDFH'].historydescription_Document_ShiftDeleteButton = 0x008f; window['AscDFH'].historydescription_Document_SetStyleHeading1 = 0x0090; window['AscDFH'].historydescription_Document_SetStyleHeading2 = 0x0091; window['AscDFH'].historydescription_Document_SetStyleHeading3 = 0x0092; window['AscDFH'].historydescription_Document_SetTextStrikeoutHotKey = 0x0093; window['AscDFH'].historydescription_Document_SetTextBoldHotKey = 0x0094; window['AscDFH'].historydescription_Document_SetParagraphAlignHotKey = 0x0095; window['AscDFH'].historydescription_Document_AddEuroLetter = 0x0096; window['AscDFH'].historydescription_Document_SetTextItalicHotKey = 0x0097; window['AscDFH'].historydescription_Document_SetParagraphAlignHotKey2 = 0x0098; window['AscDFH'].historydescription_Document_SetParagraphNumberingHotKey = 0x0099; window['AscDFH'].historydescription_Document_SetParagraphAlignHotKey3 = 0x009a; window['AscDFH'].historydescription_Document_AddPageNumHotKey = 0x009b; window['AscDFH'].historydescription_Document_SetParagraphAlignHotKey4 = 0x009c; window['AscDFH'].historydescription_Document_SetTextUnderlineHotKey = 0x009d; window['AscDFH'].historydescription_Document_FormatPasteHotKey = 0x009e; window['AscDFH'].historydescription_Document_PasteHotKey = 0x009f; window['AscDFH'].historydescription_Document_PasteSafariHotKey = 0x00a0; window['AscDFH'].historydescription_Document_CutHotKey = 0x00a1; window['AscDFH'].historydescription_Document_SetTextVertAlignHotKey = 0x00a2; window['AscDFH'].historydescription_Document_AddMathHotKey = 0x00a3; window['AscDFH'].historydescription_Document_SetTextVertAlignHotKey2 = 0x00a4; window['AscDFH'].historydescription_Document_MinusButton = 0x00a5; window['AscDFH'].historydescription_Document_SetTextVertAlignHotKey3 = 0x00a6; window['AscDFH'].historydescription_Document_AddLetter = 0x00a7; window['AscDFH'].historydescription_Document_MoveTableBorder = 0x00a8; window['AscDFH'].historydescription_Document_FormatPasteHotKey2 = 0x00a9; window['AscDFH'].historydescription_Document_SetTextHighlight2 = 0x00aa; window['AscDFH'].historydescription_Document_AddTextFromTextBox = 0x00ab; window['AscDFH'].historydescription_Document_AddMailMergeField = 0x00ac; window['AscDFH'].historydescription_Document_MoveInlineTable = 0x00ad; window['AscDFH'].historydescription_Document_MoveFlowTable = 0x00ae; window['AscDFH'].historydescription_Document_RestoreFieldTemplateText = 0x00af; window['AscDFH'].historydescription_Spreadsheet_SetCellFontName = 0x00b0; window['AscDFH'].historydescription_Spreadsheet_SetCellFontSize = 0x00b1; window['AscDFH'].historydescription_Spreadsheet_SetCellBold = 0x00b2; window['AscDFH'].historydescription_Spreadsheet_SetCellItalic = 0x00b3; window['AscDFH'].historydescription_Spreadsheet_SetCellUnderline = 0x00b4; window['AscDFH'].historydescription_Spreadsheet_SetCellStrikeout = 0x00b5; window['AscDFH'].historydescription_Spreadsheet_SetCellSubscript = 0x00b6; window['AscDFH'].historydescription_Spreadsheet_SetCellSuperscript = 0x00b7; window['AscDFH'].historydescription_Spreadsheet_SetCellAlign = 0x00b8; window['AscDFH'].historydescription_Spreadsheet_SetCellVertAlign = 0x00b9; window['AscDFH'].historydescription_Spreadsheet_SetCellTextColor = 0x00ba; window['AscDFH'].historydescription_Spreadsheet_SetCellBackgroundColor = 0x00bb; window['AscDFH'].historydescription_Spreadsheet_SetCellIncreaseFontSize = 0x00bc; window['AscDFH'].historydescription_Spreadsheet_SetCellDecreaseFontSize = 0x00bd; window['AscDFH'].historydescription_Spreadsheet_SetCellHyperlinkAdd = 0x00be; window['AscDFH'].historydescription_Spreadsheet_SetCellHyperlinkModify = 0x00bf; window['AscDFH'].historydescription_Spreadsheet_SetCellHyperlinkRemove = 0x00c0; window['AscDFH'].historydescription_Spreadsheet_EditChart = 0x00c1; window['AscDFH'].historydescription_Spreadsheet_Remove = 0x00c2; window['AscDFH'].historydescription_Spreadsheet_AddTab = 0x00c3; window['AscDFH'].historydescription_Spreadsheet_AddNewParagraph = 0x00c4; window['AscDFH'].historydescription_Spreadsheet_AddSpace = 0x00c5; window['AscDFH'].historydescription_Spreadsheet_AddItem = 0x00c6; window['AscDFH'].historydescription_Spreadsheet_PutPrLineSpacing = 0x00c7; window['AscDFH'].historydescription_Spreadsheet_SetParagraphSpacing = 0x00c8; window['AscDFH'].historydescription_Spreadsheet_SetGraphicObjectsProps = 0x00c9; window['AscDFH'].historydescription_Spreadsheet_ParaApply = 0x00ca; window['AscDFH'].historydescription_Spreadsheet_GraphicObjectLayer = 0x00cb; window['AscDFH'].historydescription_Spreadsheet_ParagraphAdd = 0x00cc; window['AscDFH'].historydescription_Spreadsheet_CreateGroup = 0x00cd; window['AscDFH'].historydescription_CommonDrawings_ChangeAdj = 0x00ce; window['AscDFH'].historydescription_CommonDrawings_EndTrack = 0x00cf; window['AscDFH'].historydescription_CommonDrawings_CopyCtrl = 0x00d0; window['AscDFH'].historydescription_Presentation_ParaApply = 0x00d1; window['AscDFH'].historydescription_Presentation_ParaFormatPaste = 0x00d2; window['AscDFH'].historydescription_Presentation_AddNewParagraph = 0x00d3; window['AscDFH'].historydescription_Presentation_CreateGroup = 0x00d4; window['AscDFH'].historydescription_Presentation_UnGroup = 0x00d5; window['AscDFH'].historydescription_Presentation_AddChart = 0x00d6; window['AscDFH'].historydescription_Presentation_EditChart = 0x00d7; window['AscDFH'].historydescription_Presentation_ParagraphAdd = 0x00d8; window['AscDFH'].historydescription_Presentation_ParagraphClearFormatting = 0x00d9; window['AscDFH'].historydescription_Presentation_SetParagraphAlign = 0x00da; window['AscDFH'].historydescription_Presentation_SetParagraphSpacing = 0x00db; window['AscDFH'].historydescription_Presentation_SetParagraphTabs = 0x00dc; window['AscDFH'].historydescription_Presentation_SetParagraphIndent = 0x00dd; window['AscDFH'].historydescription_Presentation_SetParagraphNumbering = 0x00de; window['AscDFH'].historydescription_Presentation_ParagraphIncDecFontSize = 0x00df; window['AscDFH'].historydescription_Presentation_ParagraphIncDecIndent = 0x00e0; window['AscDFH'].historydescription_Presentation_SetImageProps = 0x00e1; window['AscDFH'].historydescription_Presentation_SetShapeProps = 0x00e2; window['AscDFH'].historydescription_Presentation_ChartApply = 0x00e3; window['AscDFH'].historydescription_Presentation_ChangeShapeType = 0x00e4; window['AscDFH'].historydescription_Presentation_SetVerticalAlign = 0x00e5; window['AscDFH'].historydescription_Presentation_HyperlinkAdd = 0x00e6; window['AscDFH'].historydescription_Presentation_HyperlinkModify = 0x00e7; window['AscDFH'].historydescription_Presentation_HyperlinkRemove = 0x00e8; window['AscDFH'].historydescription_Presentation_DistHor = 0x00e9; window['AscDFH'].historydescription_Presentation_DistVer = 0x00ea; window['AscDFH'].historydescription_Presentation_BringToFront = 0x00eb; window['AscDFH'].historydescription_Presentation_BringForward = 0x00ec; window['AscDFH'].historydescription_Presentation_SendToBack = 0x00ed; window['AscDFH'].historydescription_Presentation_BringBackward = 0x00ef; window['AscDFH'].historydescription_Presentation_ApplyTiming = 0x00f0; window['AscDFH'].historydescription_Presentation_MoveSlidesToEnd = 0x00f1; window['AscDFH'].historydescription_Presentation_MoveSlidesNextPos = 0x00f2; window['AscDFH'].historydescription_Presentation_MoveSlidesPrevPos = 0x00f3; window['AscDFH'].historydescription_Presentation_MoveSlidesToStart = 0x00f4; window['AscDFH'].historydescription_Presentation_MoveComments = 0x00f5; window['AscDFH'].historydescription_Presentation_TableBorder = 0x00f6; window['AscDFH'].historydescription_Presentation_AddFlowImage = 0x00f7; window['AscDFH'].historydescription_Presentation_AddFlowTable = 0x00f8; window['AscDFH'].historydescription_Presentation_ChangeBackground = 0x00f9; window['AscDFH'].historydescription_Presentation_AddNextSlide = 0x00fa; window['AscDFH'].historydescription_Presentation_ShiftSlides = 0x00fb; window['AscDFH'].historydescription_Presentation_DeleteSlides = 0x00fc; window['AscDFH'].historydescription_Presentation_ChangeLayout = 0x00fd; window['AscDFH'].historydescription_Presentation_ChangeSlideSize = 0x00fe; window['AscDFH'].historydescription_Presentation_ChangeColorScheme = 0x00ff; window['AscDFH'].historydescription_Presentation_AddComment = 0x0100; window['AscDFH'].historydescription_Presentation_ChangeComment = 0x0101; window['AscDFH'].historydescription_Presentation_PutTextPrFontName = 0x0102; window['AscDFH'].historydescription_Presentation_PutTextPrFontSize = 0x0103; window['AscDFH'].historydescription_Presentation_PutTextPrBold = 0x0104; window['AscDFH'].historydescription_Presentation_PutTextPrItalic = 0x0105; window['AscDFH'].historydescription_Presentation_PutTextPrUnderline = 0x0106; window['AscDFH'].historydescription_Presentation_PutTextPrStrikeout = 0x0107; window['AscDFH'].historydescription_Presentation_PutTextPrLineSpacing = 0x0108; window['AscDFH'].historydescription_Presentation_PutTextPrSpacingBeforeAfter = 0x0109; window['AscDFH'].historydescription_Presentation_PutTextPrIncreaseFontSize = 0x010a; window['AscDFH'].historydescription_Presentation_PutTextPrDecreaseFontSize = 0x010b; window['AscDFH'].historydescription_Presentation_PutTextPrAlign = 0x010c; window['AscDFH'].historydescription_Presentation_PutTextPrBaseline = 0x010d; window['AscDFH'].historydescription_Presentation_PutTextPrListType = 0x010e; window['AscDFH'].historydescription_Presentation_PutTextColor = 0x010f; window['AscDFH'].historydescription_Presentation_PutTextColor2 = 0x010f; window['AscDFH'].historydescription_Presentation_PutPrIndent = 0x010f; window['AscDFH'].historydescription_Presentation_PutPrIndentRight = 0x010f; window['AscDFH'].historydescription_Presentation_PutPrFirstLineIndent = 0x010f; window['AscDFH'].historydescription_Presentation_AddPageBreak = 0x010f; window['AscDFH'].historydescription_Presentation_AddRowAbove = 0x0110; window['AscDFH'].historydescription_Presentation_AddRowBelow = 0x0111; window['AscDFH'].historydescription_Presentation_AddColLeft = 0x0112; window['AscDFH'].historydescription_Presentation_AddColRight = 0x0113; window['AscDFH'].historydescription_Presentation_RemoveRow = 0x0114; window['AscDFH'].historydescription_Presentation_RemoveCol = 0x0115; window['AscDFH'].historydescription_Presentation_RemoveTable = 0x0116; window['AscDFH'].historydescription_Presentation_MergeCells = 0x0117; window['AscDFH'].historydescription_Presentation_SplitCells = 0x0118; window['AscDFH'].historydescription_Presentation_TblApply = 0x0119; window['AscDFH'].historydescription_Presentation_RemoveComment = 0x011a; window['AscDFH'].historydescription_Presentation_EndFontLoad = 0x011b; window['AscDFH'].historydescription_Presentation_ChangeTheme = 0x011c; window['AscDFH'].historydescription_Presentation_TableMoveFromRulers = 0x011d; window['AscDFH'].historydescription_Presentation_TableMoveFromRulersInline = 0x011e; window['AscDFH'].historydescription_Presentation_PasteOnThumbnails = 0x011f; window['AscDFH'].historydescription_Presentation_PasteOnThumbnailsSafari = 0x0120; window['AscDFH'].historydescription_Document_ConvertOldEquation = 0x0121; window['AscDFH'].historydescription_Presentation_SetVert = 0x0122; window['AscDFH'].historydescription_Document_AddNewStyle = 0x0123; window['AscDFH'].historydescription_Document_RemoveStyle = 0x0124; window['AscDFH'].historydescription_Document_AddTextArt = 0x0125; window['AscDFH'].historydescription_Document_RemoveAllCustomStyles = 0x0126; window['AscDFH'].historydescription_Document_AcceptAllRevisionChanges = 0x0127; window['AscDFH'].historydescription_Document_RejectAllRevisionChanges = 0x0128; window['AscDFH'].historydescription_Document_AcceptRevisionChange = 0x0129; window['AscDFH'].historydescription_Document_RejectRevisionChange = 0x012a; window['AscDFH'].historydescription_Document_AcceptRevisionChangesBySelection = 0x012b; window['AscDFH'].historydescription_Document_RejectRevisionChangesBySelection = 0x012c; window['AscDFH'].historydescription_Document_AddLetterUnion = 0x012d; window['AscDFH'].historydescription_Presentation_ApplyTimingToAll = 0x012e; window['AscDFH'].historydescription_Document_SetColumnsFromRuler = 0x012f; window['AscDFH'].historydescription_Document_SetColumnsProps = 0x0130; window['AscDFH'].historydescription_Document_AddColumnBreak = 0x0131; window['AscDFH'].historydescription_Document_SetSectionProps = 0x0132; window['AscDFH'].historydescription_Document_AddTabToMath = 0x0133; window['AscDFH'].historydescription_Document_SetMathProps = 0x0134; window['AscDFH'].historydescription_Document_ApplyPrToMath = 0x0135; window['AscDFH'].historydescription_Document_ApiBuilder = 0x0136; window['AscDFH'].historydescription_Document_AddOleObject = 0x0137; window['AscDFH'].historydescription_Document_EditOleObject = 0x0138; window['AscDFH'].historydescription_Document_CompositeInput = 0x0139; window['AscDFH'].historydescription_Document_CompositeInputReplace = 0x013a; window['AscDFH'].historydescription_Document_AddPageCount = 0x013b; window['AscDFH'].historydescription_Document_AddFootnote = 0x013c; window['AscDFH'].historydescription_Document_SetFootnotePr = 0x013d; window['AscDFH'].historydescription_Document_RemoveAllFootnotes = 0x013e; window['AscDFH'].historydescription_Document_InsertDocumentsByUrls = 0x013f; window['AscDFH'].historydescription_Document_InsertSignatureLine = 0x0140; window['AscDFH'].historydescription_Document_AddBlockLevelContentControl = 0x0141; window['AscDFH'].historydescription_Document_AddInlineLevelContentControl = 0x0142; window['AscDFH'].historydescription_Document_RemoveContentControl = 0x0143; window['AscDFH'].historydescription_Document_RemoveContentControlWrapper = 0x0144; window['AscDFH'].historydescription_Document_ChangeContentControlProperties = 0x0145; window['AscDFH'].historydescription_Presentation_HideSlides = 0x0146; window['AscDFH'].historydescription_DocumentMacros_Data = 0x0147; window['AscDFH'].historydescription_Document_AddBookmark = 0x0148; window['AscDFH'].historydescription_Document_AddTableOfContents = 0x0149; window['AscDFH'].historydescription_Document_ChangeOutlineLevel = 0x014a; window['AscDFH'].historydescription_Document_AddElementToOutline = 0x014b; window['AscDFH'].historydescription_Document_ResizeTable = 0x014c; window['AscDFH'].historydescription_Document_RemoveComplexField = 0x014d; window['AscDFH'].historydescription_Document_SetComplexFieldPr = 0x014e; window['AscDFH'].historydescription_Document_UpdateTableOfContents = 0x014f; window['AscDFH'].historydescription_Document_SectionStartPage = 0x0150; window['AscDFH'].historydescription_Document_DistributeTableCells = 0x0151; window['AscDFH'].historydescription_Document_RemoveBookmark = 0x0152; window['AscDFH'].historydescription_Document_ContinueNumbering = 0x0153; window['AscDFH'].historydescription_Document_RestartNumbering = 0x0154; window['AscDFH'].historydescription_Document_AutomaticListAsType = 0x0155; window['AscDFH'].historydescription_Document_CreateNum = 0x0156; window['AscDFH'].historydescription_Document_ChangeNumLvl = 0x0157; window['AscDFH'].historydescription_Document_AutoCorrectSmartQuotes = 0x0158; window['AscDFH'].historydescription_Document_AutoCorrectHyphensWithDash = 0x0159; window['AscDFH'].historydescription_Document_SetGlobalSdtHighlightColor = 0x015a; window['AscDFH'].historydescription_Document_SetGlobalSdtShowHighlight = 0x015b; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Фабрика изменений (заполняется там же, где и определяются классы изменений) // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// window['AscDFH'].changesFactory = {}; window['AscDFH'].changesFactory[window['AscDFH'].historyitem_Unknown_Unknown] = CChangesBase; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Карта зависимости изменений. Изменения зависят только от изменений для того же класса, но вот типы могут быть // разными. В основном изменения зависят только от изменений такого же типа. // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// window['AscDFH'].changesRelationMap = {}; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Базовые классы для изменений // // Разница между классами Property и Value в том, что Property могут быть undefined, а Value всегда значение // заданного типа. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** * Базовый класс для всех изменений совместного редактирования. * @constructor */ function CChangesBase(Class) { this.Class = Class; this.Reverted = false; } CChangesBase.prototype.Type = window['AscDFH'].historyitem_Unknown_Unknown; CChangesBase.prototype.Undo = function() { if (this.Class && this.Class.Undo) this.Class.Undo(this); }; CChangesBase.prototype.Redo = function() { if (this.Class && this.Class.Redo) this.Class.Redo(this); }; CChangesBase.prototype.WriteToBinary = function(Writer) { if (this.Class && this.Class.Save_Changes) this.Class.Save_Changes(this, Writer); }; CChangesBase.prototype.ReadFromBinary = function(Reader) { }; CChangesBase.prototype.Load = function() { // В большинстве случаев загрузка чужого изменения работает как простое Redo this.Redo(); }; CChangesBase.prototype.GetClass = function() { return this.Class; }; CChangesBase.prototype.RefreshRecalcData = function() { if (this.Class && this.Class.Refresh_RecalcData) this.Class.Refresh_RecalcData(this); }; CChangesBase.prototype.IsContentChange = function() { return false; }; CChangesBase.prototype.CreateReverseChange = function() { return null; }; CChangesBase.prototype.Merge = function(oChange) { return true; }; CChangesBase.prototype.IsPosExtChange = function(oChange) { return false; }; CChangesBase.prototype.IsReverted = function() { return this.Reverted; }; CChangesBase.prototype.SetReverted = function(isReverted) { this.Reverted = isReverted; }; CChangesBase.prototype.IsParagraphSimpleChanges = function() { return false; }; window['AscDFH'].CChangesBase = CChangesBase; /** * Базовый класс для изменений, которые меняют содержимое родительского класса.* * @constructor * @extends {AscDFH.CChangesBase} */ function CChangesBaseContentChange(Class, Pos, Items, isAdd) { CChangesBase.call(this, Class); this.Pos = Pos; this.Items = Items; this.UseArray = false; this.PosArray = []; this.Add = isAdd; this.Reverted = false; } CChangesBaseContentChange.prototype = Object.create(CChangesBase.prototype); CChangesBaseContentChange.prototype.constructor = CChangesBaseContentChange; CChangesBaseContentChange.prototype.IsContentChange = function() { return true; }; CChangesBaseContentChange.prototype.IsAdd = function() { return this.Add; }; CChangesBaseContentChange.prototype.Copy = function() { var oChanges = new this.constructor(this.Class, this.Pos, this.Items, this.Add); oChanges.UseArray = this.UseArray; for (var nIndex = 0, nCount = this.PosArray.length; nIndex < nCount; ++nIndex) oChanges.PosArray[nIndex] = this.PosArray[nIndex]; return oChanges; }; CChangesBaseContentChange.prototype.GetItemsCount = function() { return this.Items.length; }; CChangesBaseContentChange.prototype.WriteToBinary = function(Writer) { // Long : Количество элементов // Array of // { // Long : позиции элементов // Variable : Item // } // Long : Поле Color var bArray = this.UseArray; var nCount = this.Items.length; var nStartPos = Writer.GetCurPosition(); Writer.Skip(4); var nRealCount = nCount; for (var nIndex = 0; nIndex < nCount; ++nIndex) { if (true === bArray) { if (false === this.PosArray[nIndex]) { nRealCount--; } else { Writer.WriteLong(this.PosArray[nIndex]); this.private_WriteItem(Writer, this.Items[nIndex]); } } else { Writer.WriteLong(this.Pos); this.private_WriteItem(Writer, this.Items[nIndex]); } } var nEndPos = Writer.GetCurPosition(); Writer.Seek(nStartPos); Writer.WriteLong(nRealCount); Writer.Seek(nEndPos); var nColor = 0; if (undefined !== this.Color) { nColor |= 1; if (true === this.Color) nColor |= 2; } Writer.WriteLong(nColor); }; CChangesBaseContentChange.prototype.ReadFromBinary = function(Reader) { // Long : Количество элементов // Array of // { // Long : позиции элементов // Variable : Item // } // Long : поле Color this.UseArray = true; this.Items = []; this.PosArray = []; var nCount = Reader.GetLong(); for (var nIndex = 0; nIndex < nCount; ++nIndex) { this.PosArray[nIndex] = Reader.GetLong(); this.Items[nIndex] = this.private_ReadItem(Reader); } var nColor = Reader.GetLong(); if (nColor & 1) this.Color = (nColor & 2) ? true : false; }; CChangesBaseContentChange.prototype.private_WriteItem = function(Writer, Item) { }; CChangesBaseContentChange.prototype.private_ReadItem = function(Reader) { return null; }; CChangesBaseContentChange.prototype.ConvertToSimpleActions = function() { var arrActions = []; if (this.UseArray) { for (var nIndex = 0, nCount = this.Items.length; nIndex < nCount; ++nIndex) { arrActions.push({ Item : this.Items[nIndex], Pos : this.PosArray[nIndex], Add : this.Add }); } } else { var Pos = this.Pos; for (var nIndex = 0, nCount = this.Items.length; nIndex < nCount; ++nIndex) { arrActions.push({ Item : this.Items[nIndex], Pos : Pos + nIndex, Add : this.Add }); } } return arrActions; }; CChangesBaseContentChange.prototype.ConvertFromSimpleActions = function(arrActions) { this.UseArray = true; this.Pos = 0; this.Items = []; this.PosArray = []; for (var nIndex = 0, nCount = arrActions.length; nIndex < nCount; ++nIndex) { this.PosArray[nIndex] = arrActions[nIndex].Pos; this.Items[nIndex] = arrActions[nIndex].Item; } }; CChangesBaseContentChange.prototype.IsRelated = function(oChanges) { if (this.Class !== oChanges.GetClass() || this.Type !== oChanges.Type) return false; return true; }; CChangesBaseContentChange.prototype.private_CreateReverseChange = function(fConstructor) { var oChange = new fConstructor(); oChange.Class = this.Class; oChange.Pos = this.Pos; oChange.Items = this.Items; oChange.Add = !this.Add; oChange.UseArray = this.UseArray; oChange.PosArray = []; for (var nIndex = 0, nCount = this.PosArray.length; nIndex < nCount; ++nIndex) oChange.PosArray[nIndex] = this.PosArray[nIndex]; return oChange; }; CChangesBaseContentChange.prototype.Merge = function(oChange) { // TODO: Сюда надо бы перенести работу с ContentChanges return true; }; CChangesBaseContentChange.prototype.GetMinPos = function() { var nPos = null; if (this.UseArray) { for (var nIndex = 0, nCount = this.PosArray.length; nIndex < nCount; ++nIndex) { if (null === nPos || nPos > this.PosArray[nIndex]) nPos = this.PosArray[nIndex]; } if (null === nPos) nPos = 0; } else { nPos = this.Pos; } return nPos; }; window['AscDFH'].CChangesBaseContentChange = CChangesBaseContentChange; /** * Базовый класс для изменения свойств. * @constructor * @extends {AscDFH.CChangesBase} */ function CChangesBaseProperty(Class, Old, New, Color) { CChangesBase.call(this, Class); this.Color = true === Color ? true : false; this.Old = Old; this.New = New; } CChangesBaseProperty.prototype = Object.create(CChangesBase.prototype); CChangesBaseProperty.prototype.constructor = CChangesBaseProperty; CChangesBaseProperty.prototype.Undo = function() { this.private_SetValue(this.Old); }; CChangesBaseProperty.prototype.Redo = function() { this.private_SetValue(this.New); }; CChangesBaseProperty.prototype.private_SetValue = function(Value) { // Эту функцию нужно переопределить в дочернем классе }; CChangesBaseProperty.prototype.CreateReverseChange = function() { return new this.constructor(this.Class, this.New, this.Old, this.Color); }; CChangesBaseProperty.prototype.Merge = function(oChange) { if (oChange.Class === this.Class && oChange.Type === this.Type) { this.New = oChange.New; return false; } return true; }; window['AscDFH'].CChangesBaseProperty = CChangesBaseProperty; /** * Базовый класс для изменения булевых свойств. * @constructor * @extends {AscDFH.CChangesBaseProperty} */ function CChangesBaseBoolProperty(Class, Old, New, Color) { CChangesBaseProperty.call(this, Class, Old, New, Color); } CChangesBaseBoolProperty.prototype = Object.create(CChangesBaseProperty.prototype); CChangesBaseBoolProperty.prototype.constructor = CChangesBaseBoolProperty; CChangesBaseBoolProperty.prototype.WriteToBinary = function(Writer) { // Long : Flag // 1-bit : Подсвечивать ли данные изменения // 2-bit : IsUndefined New // 3-bit : New value // 4-bit : IsUndefined Old // 5-bit : Old value var nFlags = 0; if (false !== this.Color) nFlags |= 1; if (undefined === this.New) nFlags |= 2; else if (true === this.New) nFlags |= 4; if (undefined === this.Old) nFlags |= 8; else if (true === this.Old) nFlags |= 16; Writer.WriteLong(nFlags); }; CChangesBaseBoolProperty.prototype.ReadFromBinary = function(Reader) { // Long : Flag // 1-bit : Подсвечивать ли данные изменения // 2-bit : IsUndefined New // 3-bit : New value // 4-bit : IsUndefined Old // 5-bit : Old value var nFlags = Reader.GetLong(); if (nFlags & 1) this.Color = true; else this.Color = false; if (nFlags & 2) this.New = undefined; else if (nFlags & 4) this.New = true; else this.New = false; if (nFlags & 8) this.Old = undefined; else if (nFlags & 16) this.Old = true; else this.Old = false; }; window['AscDFH'].CChangesBaseBoolProperty = CChangesBaseBoolProperty; /** * Базовый класс для изменения числовых (double) свойств. * @constructor * @extends {AscDFH.CChangesBaseProperty} */ function CChangesBaseDoubleProperty(Class, Old, New, Color) { CChangesBaseProperty.call(this, Class, Old, New, Color); } CChangesBaseDoubleProperty.prototype = Object.create(CChangesBaseProperty.prototype); CChangesBaseDoubleProperty.prototype.constructor = CChangesBaseDoubleProperty; CChangesBaseDoubleProperty.prototype.WriteToBinary = function(Writer) { // Long : Flag // 1-bit : Подсвечивать ли данные изменения // 2-bit : IsUndefined New // 3-bit : IsUndefined Old // double : New // double : Old var nFlags = 0; if (false !== this.Color) nFlags |= 1; if (undefined === this.New) nFlags |= 2; if (undefined === this.Old) nFlags |= 4; Writer.WriteLong(nFlags); if (undefined !== this.New) Writer.WriteDouble(this.New); if (undefined !== this.Old) Writer.WriteDouble(this.Old); }; CChangesBaseDoubleProperty.prototype.ReadFromBinary = function(Reader) { // Long : Flag // 1-bit : Подсвечивать ли данные изменения // 2-bit : IsUndefined New // 3-bit : IsUndefined Old // double : New // double : Old var nFlags = Reader.GetLong(); if (nFlags & 1) this.Color = true; else this.Color = false; if (nFlags & 2) this.New = undefined; else this.New = Reader.GetDouble(); if (nFlags & 4) this.Old = undefined; else this.Old = Reader.GetDouble(); }; window['AscDFH'].CChangesBaseDoubleProperty = CChangesBaseDoubleProperty; /** * Базовый класс для изменения объектных свойств, т.е. если свойство задано объектом. * @constructor * @extends {AscDFH.CChangesBaseProperty} */ function CChangesBaseObjectProperty(Class, Old, New, Color) { CChangesBaseProperty.call(this, Class, Old, New, Color); } CChangesBaseObjectProperty.prototype = Object.create(CChangesBaseProperty.prototype); CChangesBaseObjectProperty.prototype.constructor = CChangesBaseObjectProperty; CChangesBaseObjectProperty.prototype.WriteToBinary = function(Writer) { // Long : Flag // 1-bit : Подсвечивать ли данные изменения // 2-bit : IsUndefined New // 3-bit : IsUndefined Old // Variable : New // Variable : Old var nFlags = 0; if (false !== this.Color) nFlags |= 1; if (undefined === this.New) nFlags |= 2; if (undefined === this.Old) nFlags |= 4; Writer.WriteLong(nFlags); if (undefined !== this.New && this.New.Write_ToBinary) this.New.Write_ToBinary(Writer); if (undefined !== this.Old && this.Old.Write_ToBinary) this.Old.Write_ToBinary(Writer); }; CChangesBaseObjectProperty.prototype.ReadFromBinary = function(Reader) { // Long : Flag // 1-bit : Подсвечивать ли данные изменения // 2-bit : IsUndefined New // 3-bit : IsUndefined Old // Variable : New // Variable : Old var nFlags = Reader.GetLong(); if (nFlags & 1) this.Color = true; else this.Color = false; if (nFlags & 2) { if (true === this.private_IsCreateEmptyObject()) this.New = this.private_CreateObject(); else this.New = undefined; } else { this.New = this.private_CreateObject(); if (this.New && this.New.Read_FromBinary) this.New.Read_FromBinary(Reader); } if (nFlags & 4) { if (true === this.private_IsCreateEmptyObject()) this.Old = this.private_CreateObject(); else this.Old = undefined; } else { this.Old = this.private_CreateObject(); if (this.Old && this.Old.Read_FromBinary) this.Old.Read_FromBinary(Reader); } }; CChangesBaseObjectProperty.prototype.private_CreateObject = function() { // Эту функцию нужно переопределить в дочернем классе return null; }; CChangesBaseObjectProperty.prototype.private_IsCreateEmptyObject = function() { return false; }; window['AscDFH'].CChangesBaseObjectProperty = CChangesBaseObjectProperty; /** * Базовый класс для изменения числовых (long) свойств. * @constructor * @extends {AscDFH.CChangesBaseProperty} */ function CChangesBaseLongProperty(Class, Old, New, Color) { CChangesBaseProperty.call(this, Class, Old, New, Color); } CChangesBaseLongProperty.prototype = Object.create(CChangesBaseProperty.prototype); CChangesBaseLongProperty.prototype.constructor = CChangesBaseLongProperty; CChangesBaseLongProperty.prototype.WriteToBinary = function(Writer) { // Long : Flag // 1-bit : Подсвечивать ли данные изменения // 2-bit : IsUndefined New // 3-bit : IsUndefined Old // long : New // long : Old var nFlags = 0; if (false !== this.Color) nFlags |= 1; if (undefined === this.New) nFlags |= 2; if (undefined === this.Old) nFlags |= 4; Writer.WriteLong(nFlags); if (undefined !== this.New) Writer.WriteLong(this.New); if (undefined !== this.Old) Writer.WriteLong(this.Old); }; CChangesBaseLongProperty.prototype.ReadFromBinary = function(Reader) { // Long : Flag // 1-bit : Подсвечивать ли данные изменения // 2-bit : IsUndefined New // 3-bit : IsUndefined Old // long : New // long : Old var nFlags = Reader.GetLong(); if (nFlags & 1) this.Color = true; else this.Color = false; if (nFlags & 2) this.New = undefined; else this.New = Reader.GetLong(); if (nFlags & 4) this.Old = undefined; else this.Old = Reader.GetLong(); }; window['AscDFH'].CChangesBaseLongProperty = CChangesBaseLongProperty; /** * Базовый класс для изменения строковых свойств. * @constructor * @extends {AscDFH.CChangesBaseProperty} */ function CChangesBaseStringProperty(Class, Old, New, Color) { CChangesBaseProperty.call(this, Class, Old, New, Color); } CChangesBaseStringProperty.prototype = Object.create(CChangesBaseProperty.prototype); CChangesBaseStringProperty.prototype.constructor = CChangesBaseStringProperty; CChangesBaseStringProperty.prototype.WriteToBinary = function(Writer) { // Long : Flag // 1-bit : Подсвечивать ли данные изменения // 2-bit : IsUndefined New // 3-bit : IsUndefined Old // string : New // string : Old var nFlags = 0; if (false !== this.Color) nFlags |= 1; if (undefined === this.New) nFlags |= 2; if (undefined === this.Old) nFlags |= 4; Writer.WriteLong(nFlags); if (undefined !== this.New) Writer.WriteString2(this.New); if (undefined !== this.Old) Writer.WriteString2(this.Old); }; CChangesBaseStringProperty.prototype.ReadFromBinary = function(Reader) { // Long : Flag // 1-bit : Подсвечивать ли данные изменения // 2-bit : IsUndefined New // 3-bit : IsUndefined Old // string : New // string : Old var nFlags = Reader.GetLong(); if (nFlags & 1) this.Color = true; else this.Color = false; if (nFlags & 2) this.New = undefined; else this.New = Reader.GetString2(); if (nFlags & 4) this.Old = undefined; else this.Old = Reader.GetString2(); }; window['AscDFH'].CChangesBaseStringProperty = CChangesBaseStringProperty; /** * Базовый класс для изменения числовых (byte) свойств. * @constructor * @extends {AscDFH.CChangesBaseProperty} */ function CChangesBaseByteProperty(Class, Old, New, Color) { CChangesBaseProperty.call(this, Class, Old, New, Color); } CChangesBaseByteProperty.prototype = Object.create(CChangesBaseProperty.prototype); CChangesBaseByteProperty.prototype.constructor = CChangesBaseByteProperty; CChangesBaseByteProperty.prototype.WriteToBinary = function(Writer) { // Long : Flag // 1-bit : Подсвечивать ли данные изменения // 2-bit : IsUndefined New // 3-bit : IsUndefined Old // byte : New // byte : Old var nFlags = 0; if (false !== this.Color) nFlags |= 1; if (undefined === this.New) nFlags |= 2; if (undefined === this.Old) nFlags |= 4; Writer.WriteLong(nFlags); if (undefined !== this.New) Writer.WriteByte(this.New); if (undefined !== this.Old) Writer.WriteByte(this.Old); }; CChangesBaseByteProperty.prototype.ReadFromBinary = function(Reader) { // Long : Flag // 1-bit : Подсвечивать ли данные изменения // 2-bit : IsUndefined New // 3-bit : IsUndefined Old // byte : New // byte : Old var nFlags = Reader.GetLong(); if (nFlags & 1) this.Color = true; else this.Color = false; if (nFlags & 2) this.New = undefined; else this.New = Reader.GetByte(); if (nFlags & 4) this.Old = undefined; else this.Old = Reader.GetByte(); }; window['AscDFH'].CChangesBaseByteProperty = CChangesBaseByteProperty; /** * Базовый класс для изменения числовых(long) значений. * @constructor * @extends {AscDFH.CChangesBaseProperty} */ function CChangesBaseLongValue(Class, Old, New, Color) { CChangesBaseProperty.call(this, Class, Old, New, Color); } CChangesBaseLongValue.prototype = Object.create(CChangesBaseProperty.prototype); CChangesBaseLongValue.prototype.constructor = CChangesBaseLongValue; CChangesBaseLongValue.prototype.WriteToBinary = function(Writer) { // Long : New // Long : Old Writer.WriteLong(this.New); Writer.WriteLong(this.Old); }; CChangesBaseLongValue.prototype.ReadFromBinary = function(Reader) { // Long : New // Long : Old this.New = Reader.GetLong(); this.Old = Reader.GetLong(); }; window['AscDFH'].CChangesBaseLongValue = CChangesBaseLongValue; /** * Базовый класс для изменения булевых значений. * @constructor * @extends {AscDFH.CChangesBaseProperty} */ function CChangesBaseBoolValue(Class, Old, New, Color) { CChangesBaseProperty.call(this, Class, Old, New, Color); } CChangesBaseBoolValue.prototype = Object.create(CChangesBaseProperty.prototype); CChangesBaseBoolValue.prototype.constructor = CChangesBaseBoolValue; CChangesBaseBoolValue.prototype.WriteToBinary = function(Writer) { // Bool : New // Bool : Old Writer.WriteBool(this.New); Writer.WriteBool(this.Old); }; CChangesBaseBoolValue.prototype.ReadFromBinary = function(Reader) { // Bool : New // Bool : Old this.New = Reader.GetBool(); this.Old = Reader.GetBool(); }; window['AscDFH'].CChangesBaseBoolValue = CChangesBaseBoolValue; /** * Базовый класс для изменения объектных значений. * @constructor * @extends {AscDFH.CChangesBaseObjectProperty} */ function CChangesBaseObjectValue(Class, Old, New, Color) { CChangesBaseObjectProperty.call(this, Class, Old, New, Color); } CChangesBaseObjectValue.prototype = Object.create(CChangesBaseObjectProperty.prototype); CChangesBaseObjectValue.prototype.constructor = CChangesBaseObjectValue; CChangesBaseObjectValue.prototype.private_IsCreateEmptyObject = function() { return true; }; window['AscDFH'].CChangesBaseObjectValue = CChangesBaseObjectValue; /** * Базовый класс для изменения строковых значений. * @constructor * @extends {AscDFH.CChangesBaseProperty} */ function CChangesBaseStringValue(Class, Old, New, Color) { CChangesBaseProperty.call(this, Class, Old, New, Color); } CChangesBaseStringValue.prototype = Object.create(CChangesBaseProperty.prototype); CChangesBaseStringValue.prototype.constructor = CChangesBaseStringValue; CChangesBaseStringValue.prototype.WriteToBinary = function(Writer) { // String : New // String : Old Writer.WriteString2(this.New); Writer.WriteString2(this.Old); }; CChangesBaseStringValue.prototype.ReadFromBinary = function(Reader) { // String : New // String : Old this.New = Reader.GetString2(); this.Old = Reader.GetString2(); }; window['AscDFH'].CChangesBaseStringValue = CChangesBaseStringValue; /** * Базовый класс для изменения числовых(byte) значений. * @constructor * @extends {AscDFH.CChangesBaseProperty} */ function CChangesBaseByteValue(Class, Old, New, Color) { CChangesBaseProperty.call(this, Class, Old, New, Color); } CChangesBaseByteValue.prototype = Object.create(CChangesBaseProperty.prototype); CChangesBaseByteValue.prototype.constructor = CChangesBaseByteValue; CChangesBaseByteValue.prototype.WriteToBinary = function(Writer) { // Byte : New // Byte : Old Writer.WriteByte(this.New); Writer.WriteByte(this.Old); }; CChangesBaseByteValue.prototype.ReadFromBinary = function(Reader) { // Byte : New // Byte : Old this.New = Reader.GetByte(); this.Old = Reader.GetByte(); }; window['AscDFH'].CChangesBaseByteValue = CChangesBaseByteValue; /** * Базовый класс для изменения числовых(double) значений. * @constructor * @extends {AscDFH.CChangesBaseProperty} */ function CChangesBaseDoubleValue(Class, Old, New, Color) { CChangesBaseProperty.call(this, Class, Old, New, Color); } CChangesBaseDoubleValue.prototype = Object.create(CChangesBaseProperty.prototype); CChangesBaseDoubleValue.prototype.constructor = CChangesBaseDoubleValue; CChangesBaseDoubleValue.prototype.WriteToBinary = function(Writer) { // Double : New // Double : Old Writer.WriteDouble(this.New); Writer.WriteDouble(this.Old); }; CChangesBaseDoubleValue.prototype.ReadFromBinary = function(Reader) { // Double : New // Double : Old this.New = Reader.GetDouble(); this.Old = Reader.GetDouble(); }; window['AscDFH'].CChangesBaseDoubleValue = CChangesBaseDoubleValue; })(window); /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; /** * User: Ilja.Kirillov * Date: 26.10.2016 * Time: 18:45 */ (/** * @param {Window} window * @param {undefined} undefined */ function(window, undefined) { function CTableId() { this.m_aPairs = null; this.m_bTurnOff = false; this.m_oFactoryClass = {}; this.Id = null; this.isInit = false; } CTableId.prototype.checkInit = function() { return this.isInit; }; CTableId.prototype.init = function() { this.m_aPairs = {}; this.m_bTurnOff = false; this.m_oFactoryClass = {}; this.Id = AscCommon.g_oIdCounter.Get_NewId(); this.Add(this, this.Id); this.private_InitFactoryClass(); this.isInit = true; }; CTableId.prototype.Add = function(Class, Id) { if (false === this.m_bTurnOff) { Class.Id = Id; this.m_aPairs[Id] = Class; AscCommon.History.Add(new AscCommon.CChangesTableIdAdd(this, Id, Class)); } }; CTableId.prototype.TurnOff = function() { this.m_bTurnOff = true; }; CTableId.prototype.TurnOn = function() { this.m_bTurnOff = false; }; /** * Получаем указатель на класс по Id * @param Id * @returns {*} */ CTableId.prototype.Get_ById = function(Id) { if ("" === Id) return null; if (this.m_aPairs[Id]) return this.m_aPairs[Id]; return null; }; /** * Получаем Id, по классу (вообще, данную функцию лучше не использовать) * @param Class * @returns {*} */ CTableId.prototype.Get_ByClass = function(Class) { if (Class.Get_Id) return Class.Get_Id(); if (Class.GetId()) return Class.GetId(); return null; }; CTableId.prototype.Get_Id = function() { return this.Id; }; CTableId.prototype.Clear = function() { this.m_aPairs = {}; this.m_bTurnOff = false; this.Id = AscCommon.g_oIdCounter.Get_NewId(); this.Add(this, this.Id); }; CTableId.prototype.private_InitFactoryClass = function() { this.m_oFactoryClass[AscDFH.historyitem_type_Paragraph] = AscCommonWord.Paragraph; this.m_oFactoryClass[AscDFH.historyitem_type_TextPr] = AscCommonWord.ParaTextPr; this.m_oFactoryClass[AscDFH.historyitem_type_Hyperlink] = AscCommonWord.ParaHyperlink; this.m_oFactoryClass[AscDFH.historyitem_type_Drawing] = AscCommonWord.ParaDrawing; this.m_oFactoryClass[AscDFH.historyitem_type_Table] = AscCommonWord.CTable; this.m_oFactoryClass[AscDFH.historyitem_type_TableRow] = AscCommonWord.CTableRow; this.m_oFactoryClass[AscDFH.historyitem_type_TableCell] = AscCommonWord.CTableCell; this.m_oFactoryClass[AscDFH.historyitem_type_DocumentContent] = AscCommonWord.CDocumentContent; this.m_oFactoryClass[AscDFH.historyitem_type_HdrFtr] = AscCommonWord.CHeaderFooter; this.m_oFactoryClass[AscDFH.historyitem_type_AbstractNum] = AscCommonWord.CAbstractNum; this.m_oFactoryClass[AscDFH.historyitem_type_Comment] = AscCommon.CComment; this.m_oFactoryClass[AscDFH.historyitem_type_Style] = AscCommonWord.CStyle; this.m_oFactoryClass[AscDFH.historyitem_type_CommentMark] = AscCommon.ParaComment; this.m_oFactoryClass[AscDFH.historyitem_type_ParaRun] = AscCommonWord.ParaRun; this.m_oFactoryClass[AscDFH.historyitem_type_Section] = AscCommonWord.CSectionPr; this.m_oFactoryClass[AscDFH.historyitem_type_Field] = AscCommonWord.ParaField; this.m_oFactoryClass[AscDFH.historyitem_type_FootEndNote] = AscCommonWord.CFootEndnote; this.m_oFactoryClass[AscDFH.historyitem_type_DefaultShapeDefinition] = AscFormat.DefaultShapeDefinition; this.m_oFactoryClass[AscDFH.historyitem_type_CNvPr] = AscFormat.CNvPr; this.m_oFactoryClass[AscDFH.historyitem_type_NvPr] = AscFormat.NvPr; this.m_oFactoryClass[AscDFH.historyitem_type_Ph] = AscFormat.Ph; this.m_oFactoryClass[AscDFH.historyitem_type_UniNvPr] = AscFormat.UniNvPr; this.m_oFactoryClass[AscDFH.historyitem_type_StyleRef] = AscFormat.StyleRef; this.m_oFactoryClass[AscDFH.historyitem_type_FontRef] = AscFormat.FontRef; this.m_oFactoryClass[AscDFH.historyitem_type_Chart] = AscFormat.CChart; this.m_oFactoryClass[AscDFH.historyitem_type_ChartSpace] = AscFormat.CChartSpace; this.m_oFactoryClass[AscDFH.historyitem_type_Legend] = AscFormat.CLegend; this.m_oFactoryClass[AscDFH.historyitem_type_Layout] = AscFormat.CLayout; this.m_oFactoryClass[AscDFH.historyitem_type_LegendEntry] = AscFormat.CLegendEntry; this.m_oFactoryClass[AscDFH.historyitem_type_PivotFmt] = AscFormat.CPivotFmt; this.m_oFactoryClass[AscDFH.historyitem_type_DLbl] = AscFormat.CDLbl; this.m_oFactoryClass[AscDFH.historyitem_type_Marker] = AscFormat.CMarker; this.m_oFactoryClass[AscDFH.historyitem_type_PlotArea] = AscFormat.CPlotArea; this.m_oFactoryClass[AscDFH.historyitem_type_NumFmt] = AscFormat.CNumFmt; this.m_oFactoryClass[AscDFH.historyitem_type_Scaling] = AscFormat.CScaling; this.m_oFactoryClass[AscDFH.historyitem_type_DTable] = AscFormat.CDTable; this.m_oFactoryClass[AscDFH.historyitem_type_LineChart] = AscFormat.CLineChart; this.m_oFactoryClass[AscDFH.historyitem_type_DLbls] = AscFormat.CDLbls; this.m_oFactoryClass[AscDFH.historyitem_type_UpDownBars] = AscFormat.CUpDownBars; this.m_oFactoryClass[AscDFH.historyitem_type_BarChart] = AscFormat.CBarChart; this.m_oFactoryClass[AscDFH.historyitem_type_BubbleChart] = AscFormat.CBubbleChart; this.m_oFactoryClass[AscDFH.historyitem_type_DoughnutChart] = AscFormat.CDoughnutChart; this.m_oFactoryClass[AscDFH.historyitem_type_OfPieChart] = AscFormat.COfPieChart; this.m_oFactoryClass[AscDFH.historyitem_type_PieChart] = AscFormat.CPieChart; this.m_oFactoryClass[AscDFH.historyitem_type_RadarChart] = AscFormat.CRadarChart; this.m_oFactoryClass[AscDFH.historyitem_type_ScatterChart] = AscFormat.CScatterChart; this.m_oFactoryClass[AscDFH.historyitem_type_StockChart] = AscFormat.CStockChart; this.m_oFactoryClass[AscDFH.historyitem_type_SurfaceChart] = AscFormat.CSurfaceChart; this.m_oFactoryClass[AscDFH.historyitem_type_BandFmt] = AscFormat.CBandFmt; this.m_oFactoryClass[AscDFH.historyitem_type_AreaChart] = AscFormat.CAreaChart; this.m_oFactoryClass[AscDFH.historyitem_type_ScatterSer] = AscFormat.CScatterSeries; this.m_oFactoryClass[AscDFH.historyitem_type_DPt] = AscFormat.CDPt; this.m_oFactoryClass[AscDFH.historyitem_type_ErrBars] = AscFormat.CErrBars; this.m_oFactoryClass[AscDFH.historyitem_type_MinusPlus] = AscFormat.CMinusPlus; this.m_oFactoryClass[AscDFH.historyitem_type_NumLit] = AscFormat.CNumLit; this.m_oFactoryClass[AscDFH.historyitem_type_NumericPoint] = AscFormat.CNumericPoint; this.m_oFactoryClass[AscDFH.historyitem_type_NumRef] = AscFormat.CNumRef; this.m_oFactoryClass[AscDFH.historyitem_type_TrendLine] = AscFormat.CTrendLine; this.m_oFactoryClass[AscDFH.historyitem_type_Tx] = AscFormat.CTx; this.m_oFactoryClass[AscDFH.historyitem_type_StrRef] = AscFormat.CStrRef; this.m_oFactoryClass[AscDFH.historyitem_type_StrCache] = AscFormat.CStrCache; this.m_oFactoryClass[AscDFH.historyitem_type_StrPoint] = AscFormat.CStringPoint; this.m_oFactoryClass[AscDFH.historyitem_type_XVal] = AscFormat.CXVal; this.m_oFactoryClass[AscDFH.historyitem_type_MultiLvlStrRef] = AscFormat.CMultiLvlStrRef; this.m_oFactoryClass[AscDFH.historyitem_type_MultiLvlStrCache] = AscFormat.CMultiLvlStrCache; this.m_oFactoryClass[AscDFH.historyitem_type_StringLiteral] = AscFormat.CStringLiteral; this.m_oFactoryClass[AscDFH.historyitem_type_YVal] = AscFormat.CYVal; this.m_oFactoryClass[AscDFH.historyitem_type_AreaSeries] = AscFormat.CAreaSeries; this.m_oFactoryClass[AscDFH.historyitem_type_Cat] = AscFormat.CCat; this.m_oFactoryClass[AscDFH.historyitem_type_PictureOptions] = AscFormat.CPictureOptions; this.m_oFactoryClass[AscDFH.historyitem_type_RadarSeries] = AscFormat.CRadarSeries; this.m_oFactoryClass[AscDFH.historyitem_type_BarSeries] = AscFormat.CBarSeries; this.m_oFactoryClass[AscDFH.historyitem_type_LineSeries] = AscFormat.CLineSeries; this.m_oFactoryClass[AscDFH.historyitem_type_PieSeries] = AscFormat.CPieSeries; this.m_oFactoryClass[AscDFH.historyitem_type_SurfaceSeries] = AscFormat.CSurfaceSeries; this.m_oFactoryClass[AscDFH.historyitem_type_BubbleSeries] = AscFormat.CBubbleSeries; this.m_oFactoryClass[AscDFH.historyitem_type_ExternalData] = AscFormat.CExternalData; this.m_oFactoryClass[AscDFH.historyitem_type_PivotSource] = AscFormat.CPivotSource; this.m_oFactoryClass[AscDFH.historyitem_type_Protection] = AscFormat.CProtection; this.m_oFactoryClass[AscDFH.historyitem_type_ChartWall] = AscFormat.CChartWall; this.m_oFactoryClass[AscDFH.historyitem_type_View3d] = AscFormat.CView3d; this.m_oFactoryClass[AscDFH.historyitem_type_ChartText] = AscFormat.CChartText; this.m_oFactoryClass[AscDFH.historyitem_type_ShapeStyle] = AscFormat.CShapeStyle; this.m_oFactoryClass[AscDFH.historyitem_type_Xfrm] = AscFormat.CXfrm; this.m_oFactoryClass[AscDFH.historyitem_type_SpPr] = AscFormat.CSpPr; this.m_oFactoryClass[AscDFH.historyitem_type_ClrScheme] = AscFormat.ClrScheme; this.m_oFactoryClass[AscDFH.historyitem_type_ClrMap] = AscFormat.ClrMap; this.m_oFactoryClass[AscDFH.historyitem_type_ExtraClrScheme] = AscFormat.ExtraClrScheme; this.m_oFactoryClass[AscDFH.historyitem_type_FontCollection] = AscFormat.FontCollection; this.m_oFactoryClass[AscDFH.historyitem_type_FontScheme] = AscFormat.FontScheme; this.m_oFactoryClass[AscDFH.historyitem_type_FormatScheme] = AscFormat.FmtScheme; this.m_oFactoryClass[AscDFH.historyitem_type_ThemeElements] = AscFormat.ThemeElements; this.m_oFactoryClass[AscDFH.historyitem_type_HF] = AscFormat.HF; this.m_oFactoryClass[AscDFH.historyitem_type_BgPr] = AscFormat.CBgPr; this.m_oFactoryClass[AscDFH.historyitem_type_Bg] = AscFormat.CBg; this.m_oFactoryClass[AscDFH.historyitem_type_PrintSettings] = AscFormat.CPrintSettings; this.m_oFactoryClass[AscDFH.historyitem_type_HeaderFooterChart] = AscFormat.CHeaderFooterChart; this.m_oFactoryClass[AscDFH.historyitem_type_PageMarginsChart] = AscFormat.CPageMarginsChart; this.m_oFactoryClass[AscDFH.historyitem_type_PageSetup] = AscFormat.CPageSetup; this.m_oFactoryClass[AscDFH.historyitem_type_Shape] = AscFormat.CShape; this.m_oFactoryClass[AscDFH.historyitem_type_DispUnits] = AscFormat.CDispUnits; this.m_oFactoryClass[AscDFH.historyitem_type_GroupShape] = AscFormat.CGroupShape; this.m_oFactoryClass[AscDFH.historyitem_type_ImageShape] = AscFormat.CImageShape; this.m_oFactoryClass[AscDFH.historyitem_type_Geometry] = AscFormat.Geometry; this.m_oFactoryClass[AscDFH.historyitem_type_Path] = AscFormat.Path; this.m_oFactoryClass[AscDFH.historyitem_type_TextBody] = AscFormat.CTextBody; this.m_oFactoryClass[AscDFH.historyitem_type_CatAx] = AscFormat.CCatAx; this.m_oFactoryClass[AscDFH.historyitem_type_ValAx] = AscFormat.CValAx; this.m_oFactoryClass[AscDFH.historyitem_type_WrapPolygon] = AscCommonWord.CWrapPolygon; this.m_oFactoryClass[AscDFH.historyitem_type_DateAx] = AscFormat.CDateAx; this.m_oFactoryClass[AscDFH.historyitem_type_SerAx] = AscFormat.CSerAx; this.m_oFactoryClass[AscDFH.historyitem_type_Title] = AscFormat.CTitle; this.m_oFactoryClass[AscDFH.historyitem_type_OleObject] = AscFormat.COleObject; this.m_oFactoryClass[AscDFH.historyitem_type_Cnx] = AscFormat.CConnectionShape; this.m_oFactoryClass[AscDFH.historyitem_type_DrawingContent] = AscFormat.CDrawingDocContent; this.m_oFactoryClass[AscDFH.historyitem_type_Math] = AscCommonWord.ParaMath; this.m_oFactoryClass[AscDFH.historyitem_type_MathContent] = AscCommonWord.CMathContent; this.m_oFactoryClass[AscDFH.historyitem_type_acc] = AscCommonWord.CAccent; this.m_oFactoryClass[AscDFH.historyitem_type_bar] = AscCommonWord.CBar; this.m_oFactoryClass[AscDFH.historyitem_type_box] = AscCommonWord.CBox; this.m_oFactoryClass[AscDFH.historyitem_type_borderBox] = AscCommonWord.CBorderBox; this.m_oFactoryClass[AscDFH.historyitem_type_delimiter] = AscCommonWord.CDelimiter; this.m_oFactoryClass[AscDFH.historyitem_type_eqArr] = AscCommonWord.CEqArray; this.m_oFactoryClass[AscDFH.historyitem_type_frac] = AscCommonWord.CFraction; this.m_oFactoryClass[AscDFH.historyitem_type_mathFunc] = AscCommonWord.CMathFunc; this.m_oFactoryClass[AscDFH.historyitem_type_groupChr] = AscCommonWord.CGroupCharacter; this.m_oFactoryClass[AscDFH.historyitem_type_lim] = AscCommonWord.CLimit; this.m_oFactoryClass[AscDFH.historyitem_type_matrix] = AscCommonWord.CMathMatrix; this.m_oFactoryClass[AscDFH.historyitem_type_nary] = AscCommonWord.CNary; this.m_oFactoryClass[AscDFH.historyitem_type_phant] = AscCommonWord.CPhantom; this.m_oFactoryClass[AscDFH.historyitem_type_rad] = AscCommonWord.CRadical; this.m_oFactoryClass[AscDFH.historyitem_type_deg_subsup] = AscCommonWord.CDegreeSubSup; this.m_oFactoryClass[AscDFH.historyitem_type_deg] = AscCommonWord.CDegree; this.m_oFactoryClass[AscDFH.historyitem_type_BlockLevelSdt] = AscCommonWord.CBlockLevelSdt; this.m_oFactoryClass[AscDFH.historyitem_type_InlineLevelSdt] = AscCommonWord.CInlineLevelSdt; this.m_oFactoryClass[AscDFH.historyitem_type_ParaBookmark] = AscCommonWord.CParagraphBookmark; this.m_oFactoryClass[AscDFH.historyitem_type_Num] = AscCommonWord.CNum; if (window['AscCommonSlide']) { this.m_oFactoryClass[AscDFH.historyitem_type_Slide] = AscCommonSlide.Slide; this.m_oFactoryClass[AscDFH.historyitem_type_SlideLayout] = AscCommonSlide.SlideLayout; this.m_oFactoryClass[AscDFH.historyitem_type_SlideMaster] = AscCommonSlide.MasterSlide; this.m_oFactoryClass[AscDFH.historyitem_type_SlideComments] = AscCommonSlide.SlideComments; this.m_oFactoryClass[AscDFH.historyitem_type_PropLocker] = AscCommonSlide.PropLocker; this.m_oFactoryClass[AscDFH.historyitem_type_NotesMaster] = AscCommonSlide.CNotesMaster; this.m_oFactoryClass[AscDFH.historyitem_type_Notes] = AscCommonSlide.CNotes; this.m_oFactoryClass[AscDFH.historyitem_type_PresentationSection] = AscCommonSlide.CPrSection; } this.m_oFactoryClass[AscDFH.historyitem_type_Theme] = AscFormat.CTheme; this.m_oFactoryClass[AscDFH.historyitem_type_GraphicFrame] = AscFormat.CGraphicFrame; if (window['AscCommonExcel']) { this.m_oFactoryClass[AscDFH.historyitem_type_Sparkline] = AscCommonExcel.sparklineGroup; this.m_oFactoryClass[AscDFH.historyitem_type_PivotTableDefinition] = Asc.CT_pivotTableDefinition; } this.m_oFactoryClass[AscDFH.historyitem_type_DocumentMacros] = AscCommon.CDocumentMacros; }; CTableId.prototype.GetClassFromFactory = function(nType) { if (this.m_oFactoryClass[nType]) return new this.m_oFactoryClass[nType](); return null; }; CTableId.prototype.Refresh_RecalcData = function(Data) { }; //----------------------------------------------------------------------------------- // Функции для работы с совместным редактирования //----------------------------------------------------------------------------------- CTableId.prototype.Unlock = function(Data) { // Ничего не делаем }; window["AscCommon"].g_oTableId = new CTableId(); window["AscCommon"].CTableId = CTableId; })(window); /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; /** * User: Ilja.Kirillov * Date: 26.10.2016 * Time: 18:53 */ (/** * @param {Window} window * @param {undefined} undefined */ function(window, undefined) { /** * @constructor * @extends {AscDFH.CChangesBase} */ function CChangesTableIdAdd(Class, Id, NewClass) { AscDFH.CChangesBase.call(this, Class); this.Id = Id; this.NewClass = NewClass; } CChangesTableIdAdd.prototype = Object.create(AscDFH.CChangesBase.prototype); CChangesTableIdAdd.prototype.constructor = CChangesTableIdAdd; CChangesTableIdAdd.prototype.Type = AscDFH.historyitem_TableId_Add; CChangesTableIdAdd.prototype.Undo = function() { }; CChangesTableIdAdd.prototype.Redo = function() { }; CChangesTableIdAdd.prototype.WriteToBinary = function(Writer) { // String : Id элемента // Varibale : сам элемент Writer.WriteString2(this.Id); this.NewClass.Write_ToBinary2(Writer); }; CChangesTableIdAdd.prototype.ReadFromBinary = function(Reader) { // String : Id элемента // Varibale : сам элемент this.Id = Reader.GetString2(); this.NewClass = this.private_ReadClassFromBinary(Reader); }; CChangesTableIdAdd.prototype.Load = function(Color) { this.Class.m_aPairs[this.Id] = this.NewClass; }; CChangesTableIdAdd.prototype.RefreshRecalcData = function() { }; CChangesTableIdAdd.prototype.private_ReadClassFromBinary = function(Reader) { var oTableId = this.Class; var ElementType = Reader.GetLong(); oTableId.TurnOff(); var Element = oTableId.GetClassFromFactory(ElementType); if (null !== Element) Element.Read_FromBinary2(Reader); oTableId.TurnOn(); return Element; }; CChangesTableIdAdd.prototype.CreateReverseChange = function() { return null; }; window["AscCommon"].CChangesTableIdAdd = CChangesTableIdAdd; /** * @constructor * @extends {AscDFH.CChangesBase} */ function CChangesTableIdDescription(Class, FileCheckSum, FileSize, Description, ItemsCount, PointIndex, StartPoint, LastPoint, SumIndex, DeletedIndex) { AscDFH.CChangesBase.call(this, Class); this.FileCheckSum = FileCheckSum; this.FileSize = FileSize; this.Description = Description; this.ItemsCount = ItemsCount; this.PointIndex = PointIndex; this.StartPoint = StartPoint; this.LastPoint = LastPoint; this.SumIndex = SumIndex; this.DeletedIndex = DeletedIndex; this.VersionString = "0.0.0.0.@@Rev"; } CChangesTableIdDescription.prototype = Object.create(AscDFH.CChangesBase.prototype); CChangesTableIdDescription.prototype.constructor = CChangesTableIdDescription; CChangesTableIdDescription.prototype.Type = AscDFH.historyitem_TableId_Description; CChangesTableIdDescription.prototype.Undo = function() { }; CChangesTableIdDescription.prototype.Redo = function() { }; CChangesTableIdDescription.prototype.WriteToBinary = function(Writer) { // Long : FileCheckSum // Long : FileSize // Long : Description // Long : ItemsCount // Long : PointIndex // Long : StartPoint // Long : LastPoint // Long : SumIndex // Long : DeletedIndex // String : Версия SDK Writer.WriteLong(this.FileCheckSum); Writer.WriteLong(this.FileSize); Writer.WriteLong(this.Description); Writer.WriteLong(this.ItemsCount); Writer.WriteLong(this.PointIndex); Writer.WriteLong(this.StartPoint); Writer.WriteLong(this.LastPoint); Writer.WriteLong(this.SumIndex); Writer.WriteLong(null === this.DeletedIndex ? -10 : this.DeletedIndex); Writer.WriteString2(this.VersionString); }; CChangesTableIdDescription.prototype.ReadFromBinary = function(Reader) { // Long : FileCheckSum // Long : FileSize // Long : Description // Long : ItemsCount // Long : PointIndex // Long : StartPoint // Long : LastPoint // Long : SumIndex // Long : DeletedIndex // String : Версия SDK this.FileCheckSum = Reader.GetLong(); this.FileSize = Reader.GetLong(); this.Description = Reader.GetLong(); this.ItemsCount = Reader.GetLong(); this.PointIndex = Reader.GetLong(); this.StartPoint = Reader.GetLong(); this.LastPoint = Reader.GetLong(); this.SumIndex = Reader.GetLong(); this.DeletedIndex = Reader.GetLong(); this.VersionString = Reader.GetString2(); }; CChangesTableIdDescription.prototype.Load = function(Color) { // var CollaborativeEditing = AscCommon.CollaborativeEditing; // // CollaborativeEditing LOG // console.log("ItemsCount2 " + CollaborativeEditing.m_nErrorLog_PointChangesCount); // if (CollaborativeEditing.m_nErrorLog_PointChangesCount !== CollaborativeEditing.m_nErrorLog_SavedPCC) // console.log("========================= BAD Changes Count in Point ============================="); // if (CollaborativeEditing.m_nErrorLog_CurPointIndex + 1 !== this.PointIndex && 0 !== this.PointIndex) // console.log("========================= BAD Point index ========================================"); // var bBadSumIndex = false; // if (0 === this.PointIndex) // { // CollaborativeEditing.m_nErrorLog_SumIndex = 0; // } // else // { // // Потому что мы не учитываем данное изменение // CollaborativeEditing.m_nErrorLog_SumIndex += CollaborativeEditing.m_nErrorLog_SavedPCC + 1; // if (this.PointIndex === this.StartPoint) // { // if (CollaborativeEditing.m_nErrorLog_SumIndex !== this.SumIndex) // bBadSumIndex = true; // // console.log("SumIndex2 " + CollaborativeEditing.m_nErrorLog_SumIndex); // CollaborativeEditing.m_nErrorLog_SumIndex = this.SumIndex; // } // } // // console.log("----------------------------"); // console.log("FileCheckSum " + this.FileCheckSum); // console.log("FileSize " + this.FileSize); // console.log("Description " + this.Description + " " + // AscDFH.GetHistoryPointStringDescription(this.Description)); // console.log("PointIndex " + this.PointIndex); // console.log("StartPoint " + this.StartPoint); // console.log("LastPoint " + this.LastPoint); // console.log("ItemsCount " + this.ItemsCount); // console.log("SumIndex " + this.SumIndex); // console.log("DeletedIndex " + (-10 === this.DeletedIndex ? null : this.DeletedIndex)); // // -1 Чтобы не учитывалось данное изменение // CollaborativeEditing.m_nErrorLog_SavedPCC = this.ItemsCount; // CollaborativeEditing.m_nErrorLog_PointChangesCount = -1; // CollaborativeEditing.m_nErrorLog_CurPointIndex = this.PointIndex; // if (bBadSumIndex) // console.log("========================= BAD Sum index =========================================="); }; CChangesTableIdDescription.prototype.RefreshRecalcData = function() { }; CChangesTableIdDescription.prototype.CreateReverseChange = function() { return null; }; window["AscCommon"].CChangesTableIdDescription = CChangesTableIdDescription; /** * @constructor * @extends {AscDFH.CChangesBase} */ function CChangesCommonAddWaterMark(Class, Url) { AscDFH.CChangesBase.call(this, Class); this.Url = Url ? Url : ""; } CChangesCommonAddWaterMark.prototype = Object.create(AscDFH.CChangesBase.prototype); CChangesCommonAddWaterMark.prototype.constructor = CChangesCommonAddWaterMark; CChangesCommonAddWaterMark.prototype.Type = AscDFH.historyitem_Common_AddWatermark; CChangesCommonAddWaterMark.prototype.Undo = function() { }; CChangesCommonAddWaterMark.prototype.Redo = function() { }; CChangesCommonAddWaterMark.prototype.WriteToBinary = function(Writer) { Writer.WriteString2(this.Url); }; CChangesCommonAddWaterMark.prototype.ReadFromBinary = function(Reader) { this.Url = Reader.GetString2(); }; CChangesCommonAddWaterMark.prototype.Load = function(Color) { var sUrl = this.Url; if (editor && editor.WordControl && editor.WordControl.m_oLogicDocument) { var oLogicDocument = editor.WordControl.m_oLogicDocument; if (oLogicDocument instanceof AscCommonWord.CDocument) { var oParaDrawing = oLogicDocument.DrawingObjects.getTrialImage(sUrl); var oFirstParagraph = oLogicDocument.Get_FirstParagraph(); AscFormat.ExecuteNoHistory(function() { var oRun = new AscCommonWord.ParaRun(); oRun.Content.splice(0, 0, oParaDrawing); oFirstParagraph.Content.splice(0, 0, oRun); oLogicDocument.DrawingObjects.addGraphicObject(oParaDrawing); }, this, []); } else if (oLogicDocument instanceof AscCommonSlide.CPresentation) { if (oLogicDocument.Slides[0]) { var oDrawing = oLogicDocument.Slides[0].graphicObjects.createWatermarkImage(sUrl); oDrawing.spPr.xfrm.offX = (oLogicDocument.Width - oDrawing.spPr.xfrm.extX) / 2; oDrawing.spPr.xfrm.offY = (oLogicDocument.Height - oDrawing.spPr.xfrm.extY) / 2; oDrawing.parent = oLogicDocument.Slides[0]; oLogicDocument.Slides[0].cSld.spTree.push(oDrawing); } } } else { var oWsModel = window["Asc"]["editor"].wbModel.aWorksheets[0]; if (oWsModel) { var objectRender = new AscFormat.DrawingObjects(); var oNewDrawing = objectRender.createDrawingObject(AscCommon.c_oAscCellAnchorType.cellanchorAbsolute); var oImage = AscFormat.DrawingObjectsController.prototype.createWatermarkImage(sUrl); oNewDrawing.ext.cx = oImage.spPr.xfrm.extX; oNewDrawing.ext.cy = oImage.spPr.xfrm.extY; oNewDrawing.graphicObject = oImage; oWsModel.Drawings.push(oNewDrawing); } } }; CChangesCommonAddWaterMark.prototype.RefreshRecalcData = function() { }; CChangesCommonAddWaterMark.prototype.CreateReverseChange = function() { return null; }; window["AscCommon"].CChangesCommonAddWaterMark = CChangesCommonAddWaterMark; })(window); AscDFH.changesFactory[AscDFH.historyitem_TableId_Add] = AscCommon.CChangesTableIdAdd; AscDFH.changesFactory[AscDFH.historyitem_TableId_Description] = AscCommon.CChangesTableIdDescription; AscDFH.changesFactory[AscDFH.historyitem_Common_AddWatermark] = AscCommon.CChangesCommonAddWaterMark; //---------------------------------------------------------------------------------------------------------------------- // Карта зависимости изменений //---------------------------------------------------------------------------------------------------------------------- AscDFH.changesRelationMap[AscDFH.historyitem_TableId_Add] = [AscDFH.historyitem_TableId_Add]; AscDFH.changesRelationMap[AscDFH.historyitem_TableId_Reset] = [AscDFH.historyitem_TableId_Reset]; AscDFH.changesRelationMap[AscDFH.historyitem_TableId_Description] = [AscDFH.historyitem_TableId_Description]; AscDFH.changesRelationMap[AscDFH.historyitem_Common_AddWatermark] = [AscDFH.historyitem_Common_AddWatermark]; //---------------------------------------------------------------------------------------------------------------------- /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; ( /** * @param {Window} window * @param {undefined} undefined */ function ( window, undefined) { /** @constructor */ function asc_CAdvancedOptions(id,opt){ this.optionId = null; this.options = null; switch(id){ case Asc.c_oAscAdvancedOptionsID.CSV: this.optionId = id; this.options = new asc_CCSVOptions(opt); break; case Asc.c_oAscAdvancedOptionsID.TXT: this.optionId = id; this.options = new asc_CTXTOptions(opt); break; case Asc.c_oAscAdvancedOptionsID.DRM: this.optionId = id; break; } } asc_CAdvancedOptions.prototype.asc_getOptionId = function(){ return this.optionId; }; asc_CAdvancedOptions.prototype.asc_getOptions = function(){ return this.options; }; /** @constructor */ function asc_CCSVOptions(opt){ this.codePages = function(){ var arr = [], c, encodings = opt["encodings"]; for(var i = 0; i < encodings.length; i++ ){ c = new asc_CCodePage(); c.init(encodings[i]); arr.push(c); } return arr; }(); this.recommendedSettings = new asc_CCSVAdvancedOptions (opt["codepage"], opt["delimiter"]); this.data = opt["data"]; } asc_CCSVOptions.prototype.asc_getCodePages = function(){ return this.codePages;}; asc_CCSVOptions.prototype.asc_getRecommendedSettings = function () { return this.recommendedSettings; }; asc_CCSVOptions.prototype.asc_getData = function () { return this.data; }; /** @constructor */ function asc_CTXTOptions(opt){ this.codePages = function(){ var arr = [], c, encodings = opt["encodings"]; for(var i = 0; i < encodings.length; i++ ){ c = new asc_CCodePage(); c.init(encodings[i]); arr.push(c); } return arr; }(); this.recommendedSettings = new asc_CTXTAdvancedOptions (opt["codepage"]); this.data = opt["data"]; } asc_CTXTOptions.prototype.asc_getCodePages = function(){ return this.codePages;}; asc_CTXTOptions.prototype.asc_getRecommendedSettings = function () { return this.recommendedSettings; }; asc_CTXTOptions.prototype.asc_getData = function () { return this.data; }; /** @constructor */ function asc_CCSVAdvancedOptions(codepage, delimiter, delimiterChar){ this.codePage = codepage; this.delimiter = delimiter; this.delimiterChar = delimiterChar; } asc_CCSVAdvancedOptions.prototype.asc_getDelimiter = function(){return this.delimiter;}; asc_CCSVAdvancedOptions.prototype.asc_setDelimiter = function(v){this.delimiter = v;}; asc_CCSVAdvancedOptions.prototype.asc_getDelimiterChar = function(){return this.delimiterChar;}; asc_CCSVAdvancedOptions.prototype.asc_setDelimiterChar = function(v){this.delimiterChar = v;}; asc_CCSVAdvancedOptions.prototype.asc_getCodePage = function(){return this.codePage;}; asc_CCSVAdvancedOptions.prototype.asc_setCodePage = function(v){this.codePage = v;}; /** @constructor */ function asc_CTXTAdvancedOptions(codepage){ this.codePage = codepage; } asc_CTXTAdvancedOptions.prototype.asc_getCodePage = function(){return this.codePage;}; asc_CTXTAdvancedOptions.prototype.asc_setCodePage = function(v){this.codePage = v;}; /** @constructor */ function asc_CDRMAdvancedOptions(password){ this.password = password; } asc_CDRMAdvancedOptions.prototype.asc_getPassword = function(){return this.password;}; asc_CDRMAdvancedOptions.prototype.asc_setPassword = function(v){this.password = v;}; /** @constructor */ function asc_CCodePage(){ this.codePageName = null; this.codePage = null; this.text = null; this.lcid = null; } asc_CCodePage.prototype.init = function (encoding) { this.codePageName = encoding["name"]; this.codePage = encoding["codepage"]; this.text = encoding["text"]; this.lcid = encoding["lcid"]; }; asc_CCodePage.prototype.asc_getCodePageName = function(){return this.codePageName;}; asc_CCodePage.prototype.asc_setCodePageName = function(v){this.codePageName = v;}; asc_CCodePage.prototype.asc_getCodePage = function(){return this.codePage;}; asc_CCodePage.prototype.asc_setCodePage = function(v){this.codePage = v;}; asc_CCodePage.prototype.asc_getText = function(){return this.text;}; asc_CCodePage.prototype.asc_setText = function(v){this.text = v;}; asc_CCodePage.prototype.asc_getLcid = function(){return this.lcid;}; asc_CCodePage.prototype.asc_setLcid = function(v){this.lcid = v;}; /** @constructor */ function asc_CDelimiter(delimiter){ this.delimiterName = delimiter; } asc_CDelimiter.prototype.asc_getDelimiterName = function(){return this.delimiterName;}; asc_CDelimiter.prototype.asc_setDelimiterName = function(v){ this.delimiterName = v;}; /** @constructor */ function asc_CFormulaGroup(name){ this.groupName = name; this.formulasArray = []; } asc_CFormulaGroup.prototype.asc_getGroupName = function() { return this.groupName; }; asc_CFormulaGroup.prototype.asc_getFormulasArray = function() { return this.formulasArray; }; asc_CFormulaGroup.prototype.asc_addFormulaElement = function(o) { return this.formulasArray.push(o); }; /** @constructor */ function asc_CFormula(o){ this.name = o.name; } asc_CFormula.prototype.asc_getName = function () { return this.name; }; asc_CFormula.prototype.asc_getLocaleName = function () { return AscCommonExcel.cFormulaFunctionToLocale ? AscCommonExcel.cFormulaFunctionToLocale[this.name] : this.name; }; //----------------------------------------------------------export---------------------------------------------------- var prot; window['Asc'] = window['Asc'] || {}; window['AscCommon'] = window['AscCommon'] || {}; window["AscCommon"].asc_CAdvancedOptions = asc_CAdvancedOptions; prot = asc_CAdvancedOptions.prototype; prot["asc_getOptionId"] = prot.asc_getOptionId; prot["asc_getOptions"] = prot.asc_getOptions; prot = asc_CCSVOptions.prototype; prot["asc_getCodePages"] = prot.asc_getCodePages; prot["asc_getRecommendedSettings"] = prot.asc_getRecommendedSettings; prot["asc_getData"] = prot.asc_getData; prot = asc_CTXTOptions.prototype; prot["asc_getCodePages"] = prot.asc_getCodePages; prot["asc_getRecommendedSettings"] = prot.asc_getRecommendedSettings; prot["asc_getData"] = prot.asc_getData; window["Asc"].asc_CCSVAdvancedOptions = window["Asc"]["asc_CCSVAdvancedOptions"] = asc_CCSVAdvancedOptions; prot = asc_CCSVAdvancedOptions.prototype; prot["asc_getDelimiter"] = prot.asc_getDelimiter; prot["asc_setDelimiter"] = prot.asc_setDelimiter; prot["asc_getDelimiterChar"] = prot.asc_getDelimiterChar; prot["asc_setDelimiterChar"] = prot.asc_setDelimiterChar; prot["asc_getCodePage"] = prot.asc_getCodePage; prot["asc_setCodePage"] = prot.asc_setCodePage; window["Asc"].asc_CTXTAdvancedOptions = window["Asc"]["asc_CTXTAdvancedOptions"] = asc_CTXTAdvancedOptions; prot = asc_CTXTAdvancedOptions.prototype; prot["asc_getCodePage"] = prot.asc_getCodePage; prot["asc_setCodePage"] = prot.asc_setCodePage; window["Asc"].asc_CDRMAdvancedOptions = window["Asc"]["asc_CDRMAdvancedOptions"] = asc_CDRMAdvancedOptions; prot = asc_CDRMAdvancedOptions.prototype; prot["asc_getPassword"] = prot.asc_getPassword; prot["asc_setPassword"] = prot.asc_setPassword; prot = asc_CCodePage.prototype; prot["asc_getCodePageName"] = prot.asc_getCodePageName; prot["asc_setCodePageName"] = prot.asc_setCodePageName; prot["asc_getCodePage"] = prot.asc_getCodePage; prot["asc_setCodePage"] = prot.asc_setCodePage; prot["asc_getText"] = prot.asc_getText; prot["asc_setText"] = prot.asc_setText; prot["asc_getLcid"] = prot.asc_getLcid; prot["asc_setLcid"] = prot.asc_setLcid; prot = asc_CDelimiter.prototype; prot["asc_getDelimiterName"] = prot.asc_getDelimiterName; prot["asc_setDelimiterName"] = prot.asc_setDelimiterName; window["AscCommon"].asc_CFormulaGroup = asc_CFormulaGroup; prot = asc_CFormulaGroup.prototype; prot["asc_getGroupName"] = prot.asc_getGroupName; prot["asc_getFormulasArray"] = prot.asc_getFormulasArray; prot["asc_addFormulaElement"] = prot.asc_addFormulaElement; window["AscCommon"].asc_CFormula = asc_CFormula; prot = asc_CFormula.prototype; prot["asc_getName"] = prot.asc_getName; prot["asc_getLocaleName"] = prot.asc_getLocaleName; } )(window); /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; /** @enum {number} */ var c_oAscZoomType = { Current : 0, FitWidth : 1, FitPage : 2 }; /** @enum {number} */ var c_oAscAlignType = { LEFT : 0, CENTER : 1, RIGHT : 2, JUSTIFY : 3, TOP : 4, MIDDLE : 5, BOTTOM : 6 }; /** @enum {number} */ var c_oAscWrapStyle2 = { Inline : 0, Square : 1, Tight : 2, Through : 3, TopAndBottom : 4, Behind : 5, InFront : 6 }; /** @enum {number} */ var c_oAscTableSelectionType = { Cell : 0, Row : 1, Column : 2, Table : 3 }; /** @enum {number} */ var c_oAscContextMenuTypes = { Common : 0, // Обычное контекстное меню ChangeHdrFtr : 1 // Специальное контестное меню для попадания в колонтитул }; /** @enum {number} */ var c_oAscMouseMoveLockedObjectType = { Common : 0, Header : 1, Footer : 2 }; /** @enum {number} */ var c_oAscCollaborativeMarksShowType = { None : -1, All : 0, LastChanges : 1 }; /** * Типы горизонтального прилегания для автофигур. * @type {{Center: number, Inside: number, Left: number, Outside: number, Right: number}} * @enum {number} */ var c_oAscAlignH = { Center : 0x00, Inside : 0x01, Left : 0x02, Outside : 0x03, Right : 0x04 }; /** @enum {number} */ var c_oAscChangeLevel = { BringToFront : 0x00, BringForward : 0x01, SendToBack : 0x02, BringBackward : 0x03 }; /** * Типы вертикального прилегания для автофигур. * @type {{Bottom: number, Center: number, Inside: number, Outside: number, Top: number}} * @enum {number} */ var c_oAscAlignV = { Bottom : 0x00, Center : 0x01, Inside : 0x02, Outside : 0x03, Top : 0x04 }; /** @enum {number} */ var c_oAscVertAlignJc = { Top : 0x00, // var vertalignjc_Top = 0x00; Center : 0x01, // var vertalignjc_Center = 0x01; Bottom : 0x02 // var vertalignjc_Bottom = 0x02 }; /** @enum {number} */ var c_oAscTableLayout = { AutoFit : 0x00, Fixed : 0x01 }; /** @enum {number} */ var c_oAscAlignShapeType = { ALIGN_LEFT : 0, ALIGN_RIGHT : 1, ALIGN_TOP : 2, ALIGN_BOTTOM : 3, ALIGN_CENTER : 4, ALIGN_MIDDLE : 5 }; var TABLE_STYLE_WIDTH_PIX = 70; var TABLE_STYLE_HEIGHT_PIX = 50; /** @enum {number} */ var c_oAscSectionBreakType = { NextPage : 0x00, OddPage : 0x01, EvenPage : 0x02, Continuous : 0x03, Column : 0x04 }; /** @enum {number} */ var c_oAscRevisionsChangeType = { Unknown : 0x00, TextAdd : 0x01, TextRem : 0x02, ParaAdd : 0x03, ParaRem : 0x04, TextPr : 0x05, ParaPr : 0x06 }; /** @enum {number} */ var c_oAscRevisionsObjectType = { Image : 0, Shape : 1, Chart : 2, MathEquation : 3 }; var c_oSerFormat = { Version : 5, //1.0.0.5 Signature : "DOCY" }; var c_oAscFootnotePos = { BeneathText : 0x00, //section_footnote_PosBeneathText DocEnd : 0x01, //section_footnote_PosDocEnd PageBottom : 0x02, //section_footnote_PosPageBottom, SectEnd : 0x03 //section_footnote_PosSectEnd }; var c_oAscFootnoteRestart = { Continuous : 0x00, //section_footnote_RestartContinuous, EachSect : 0x01, //section_footnote_RestartEachSect, EachPage : 0x02 //section_footnote_RestartEachPage }; var c_oAscSdtLockType = { ContentLocked : 0x00, SdtContentLocked : 0x01, SdtLocked : 0x02, Unlocked : 0x03 }; var c_oAscSdtLevelType = { Block : 0x01, Inline : 0x02, Row : 0x03, Cell : 0x04 }; var c_oAscTOCStylesType = { Current : 0, Simple : 1, Standard : 2, Modern : 3, Classic : 4 }; var c_oAscStyleType = { Paragraph : 1, Numbering : 2, Table : 3, Character : 4 }; var c_oAscHyperlinkAnchor = { Heading : 1, Bookmark : 2 }; window["flat_desine"] = false; //------------------------------------------------------------export--------------------------------------------------- var prot; window['Asc'] = window['Asc'] || {}; prot = window['Asc']['c_oAscWrapStyle2'] = c_oAscWrapStyle2; prot['Inline'] = c_oAscWrapStyle2.Inline; prot['Square'] = c_oAscWrapStyle2.Square; prot['Tight'] = c_oAscWrapStyle2.Tight; prot['Through'] = c_oAscWrapStyle2.Through; prot['TopAndBottom'] = c_oAscWrapStyle2.TopAndBottom; prot['Behind'] = c_oAscWrapStyle2.Behind; prot['InFront'] = c_oAscWrapStyle2.InFront; prot = window['Asc']['c_oAscContextMenuTypes'] = window['Asc'].c_oAscContextMenuTypes = c_oAscContextMenuTypes; prot['Common'] = c_oAscContextMenuTypes.Common; prot['ChangeHdrFtr'] = c_oAscContextMenuTypes.ChangeHdrFtr; prot = window['Asc']['c_oAscCollaborativeMarksShowType'] = c_oAscCollaborativeMarksShowType; prot['None'] = c_oAscCollaborativeMarksShowType.None; prot['All'] = c_oAscCollaborativeMarksShowType.All; prot['LastChanges'] = c_oAscCollaborativeMarksShowType.LastChanges; prot = window['Asc']['c_oAscAlignH'] = c_oAscAlignH; prot['Center'] = c_oAscAlignH.Center; prot['Inside'] = c_oAscAlignH.Inside; prot['Left'] = c_oAscAlignH.Left; prot['Outside'] = c_oAscAlignH.Outside; prot['Right'] = c_oAscAlignH.Right; prot = window['Asc']['c_oAscAlignV'] = c_oAscAlignV; prot['Bottom'] = c_oAscAlignV.Bottom; prot['Center'] = c_oAscAlignV.Center; prot['Inside'] = c_oAscAlignV.Inside; prot['Outside'] = c_oAscAlignV.Outside; prot['Top'] = c_oAscAlignV.Top; prot = window['Asc']['c_oAscChangeLevel'] = c_oAscChangeLevel; prot['BringToFront'] = c_oAscChangeLevel.BringToFront; prot['BringForward'] = c_oAscChangeLevel.BringForward; prot['SendToBack'] = c_oAscChangeLevel.SendToBack; prot['BringBackward'] = c_oAscChangeLevel.BringBackward; prot = window['Asc']['c_oAscVertAlignJc'] = c_oAscVertAlignJc; prot['Top'] = c_oAscVertAlignJc.Top; prot['Center'] = c_oAscVertAlignJc.Center; prot['Bottom'] = c_oAscVertAlignJc.Bottom; prot = window['Asc']['c_oAscTableLayout'] = c_oAscTableLayout; prot['AutoFit'] = c_oAscTableLayout.AutoFit; prot['Fixed'] = c_oAscTableLayout.Fixed; prot = window['Asc']['c_oAscAlignShapeType'] = c_oAscAlignShapeType; prot['ALIGN_LEFT'] = c_oAscAlignShapeType.ALIGN_LEFT; prot['ALIGN_RIGHT'] = c_oAscAlignShapeType.ALIGN_RIGHT; prot['ALIGN_TOP'] = c_oAscAlignShapeType.ALIGN_TOP; prot['ALIGN_BOTTOM'] = c_oAscAlignShapeType.ALIGN_BOTTOM; prot['ALIGN_CENTER'] = c_oAscAlignShapeType.ALIGN_CENTER; prot['ALIGN_MIDDLE'] = c_oAscAlignShapeType.ALIGN_MIDDLE; prot = window['Asc']['c_oAscSectionBreakType'] = c_oAscSectionBreakType; prot['NextPage'] = c_oAscSectionBreakType.NextPage; prot['OddPage'] = c_oAscSectionBreakType.OddPage; prot['EvenPage'] = c_oAscSectionBreakType.EvenPage; prot['Continuous'] = c_oAscSectionBreakType.Continuous; prot['Column'] = c_oAscSectionBreakType.Column; prot = window['Asc']['c_oAscRevisionsChangeType'] = c_oAscRevisionsChangeType; prot['Unknown'] = c_oAscRevisionsChangeType.Unknown; prot['TextAdd'] = c_oAscRevisionsChangeType.TextAdd; prot['TextRem'] = c_oAscRevisionsChangeType.TextRem; prot['ParaAdd'] = c_oAscRevisionsChangeType.ParaAdd; prot['ParaRem'] = c_oAscRevisionsChangeType.ParaRem; prot['TextPr'] = c_oAscRevisionsChangeType.TextPr; prot['ParaPr'] = c_oAscRevisionsChangeType.ParaPr; prot = window['Asc']['c_oAscFootnotePos'] = c_oAscFootnotePos; prot['BeneathText'] = c_oAscFootnotePos.BeneathText; prot['DocEnd'] = c_oAscFootnotePos.DocEnd; prot['PageBottom'] = c_oAscFootnotePos.PageBottom; prot['SectEnd'] = c_oAscFootnotePos.SectEnd; prot = window['Asc']['c_oAscFootnoteRestart'] = c_oAscFootnoteRestart; prot['Continuous'] = c_oAscFootnoteRestart.Continuous; prot['EachSect'] = c_oAscFootnoteRestart.EachSect; prot['EachPage'] = c_oAscFootnoteRestart.EachPage; prot = window['Asc']['c_oAscSdtLockType'] = c_oAscSdtLockType; prot['ContentLocked'] = c_oAscSdtLockType.ContentLocked; prot['SdtContentLocked'] = c_oAscSdtLockType.SdtContentLocked; prot['SdtLocked'] = c_oAscSdtLockType.SdtLocked; prot['Unlocked'] = c_oAscSdtLockType.Unlocked; prot = window['Asc']['c_oAscSdtLevelType'] = window['Asc'].c_oAscSdtLevelType = c_oAscSdtLevelType; prot['Block'] = c_oAscSdtLevelType.Block; prot['Inline'] = c_oAscSdtLevelType.Inline; prot['Row'] = c_oAscSdtLevelType.Row; prot['Cell'] = c_oAscSdtLevelType.Cell; prot = window['Asc']['c_oAscTOCStylesType'] = window['Asc'].c_oAscTOCStylesType = c_oAscTOCStylesType; prot['Current'] = c_oAscTOCStylesType.Current; prot['Simple'] = c_oAscTOCStylesType.Simple; prot['Standard'] = c_oAscTOCStylesType.Standard; prot['Modern'] = c_oAscTOCStylesType.Modern; prot['Classic'] = c_oAscTOCStylesType.Classic; prot = window['Asc']['c_oAscStyleType'] = window['Asc'].c_oAscStyleType = c_oAscStyleType; prot['Paragraph'] = c_oAscStyleType.Paragraph; prot['Numbering'] = c_oAscStyleType.Numbering; prot['Table'] = c_oAscStyleType.Table; prot['Character'] = c_oAscStyleType.Character; prot = window['Asc']['c_oAscHyperlinkAnchor'] = window['Asc'].c_oAscHyperlinkAnchor = c_oAscHyperlinkAnchor; prot['Heading'] = c_oAscHyperlinkAnchor.Heading; prot['Bookmark'] = c_oAscHyperlinkAnchor.Bookmark; window['AscCommon'] = window['AscCommon'] || {}; window['AscCommon'].c_oSerFormat = c_oSerFormat; window['AscCommon'].CurFileVersion = c_oSerFormat.Version; /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; (function(window, undefined){ var FOREIGN_CURSOR_LABEL_HIDETIME = 1500; function CCollaborativeChanges() { this.m_pData = null; this.m_oColor = null; } CCollaborativeChanges.prototype.Set_Data = function(pData) { this.m_pData = pData; }; CCollaborativeChanges.prototype.Set_Color = function(oColor) { this.m_oColor = oColor; }; CCollaborativeChanges.prototype.Set_FromUndoRedo = function(Class, Data, Binary) { if (!Class.Get_Id) return false; this.m_pData = this.private_SaveData(Binary); return true; }; CCollaborativeChanges.prototype.Apply_Data = function() { var CollaborativeEditing = AscCommon.CollaborativeEditing; var Reader = this.private_LoadData(this.m_pData); var ClassId = Reader.GetString2(); var Class = AscCommon.g_oTableId.Get_ById(ClassId); if (!Class) return false; //------------------------------------------------------------------------------------------------------------------ // Новая схема var nReaderPos = Reader.GetCurPos(); var nChangesType = Reader.GetLong(); var fChangesClass = AscDFH.changesFactory[nChangesType]; if (fChangesClass) { var oChange = new fChangesClass(Class); oChange.ReadFromBinary(Reader); if (true === CollaborativeEditing.private_AddOverallChange(oChange)) oChange.Load(this.m_oColor); return true; } else { CollaborativeEditing.private_AddOverallChange(this.m_pData); // Сюда мы попадаем, когда у данного изменения нет класса и он все еще работает по старой схеме через объект Reader.Seek2(nReaderPos); //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ // Старая схема if (!Class.Load_Changes) return false; return Class.Load_Changes(Reader, null, this.m_oColor); } }; CCollaborativeChanges.prototype.private_LoadData = function(szSrc) { return this.GetStream(szSrc, 0, szSrc.length); }; CCollaborativeChanges.prototype.GetStream = function(szSrc, offset, srcLen) { var nWritten = 0; var index = -1 + offset; var dst_len = ""; while (true) { index++; var _c = szSrc.charCodeAt(index); if (_c == ";".charCodeAt(0)) { index++; break; } dst_len += String.fromCharCode(_c); } var dstLen = parseInt(dst_len); var pointer = AscFonts.g_memory.Alloc(dstLen); var stream = new AscCommon.FT_Stream2(pointer.data, dstLen); stream.obj = pointer.obj; var dstPx = stream.data; if (window.chrome) { while (index < srcLen) { var dwCurr = 0; var i; var nBits = 0; for (i = 0; i < 4; i++) { if (index >= srcLen) break; var nCh = AscFonts.DecodeBase64Char(szSrc.charCodeAt(index++)); if (nCh == -1) { i--; continue; } dwCurr <<= 6; dwCurr |= nCh; nBits += 6; } dwCurr <<= 24 - nBits; for (i = 0; i < nBits / 8; i++) { dstPx[nWritten++] = ((dwCurr & 0x00ff0000) >>> 16); dwCurr <<= 8; } } } else { var p = AscFonts.b64_decode; while (index < srcLen) { var dwCurr = 0; var i; var nBits = 0; for (i = 0; i < 4; i++) { if (index >= srcLen) break; var nCh = p[szSrc.charCodeAt(index++)]; if (nCh == undefined) { i--; continue; } dwCurr <<= 6; dwCurr |= nCh; nBits += 6; } dwCurr <<= 24 - nBits; for (i = 0; i < nBits / 8; i++) { dstPx[nWritten++] = ((dwCurr & 0x00ff0000) >>> 16); dwCurr <<= 8; } } } return stream; }; CCollaborativeChanges.prototype.private_SaveData = function(Binary) { var Writer = AscCommon.History.BinaryWriter; var Pos = Binary.Pos; var Len = Binary.Len; return Len + ";" + Writer.GetBase64Memory2(Pos, Len); }; function CCollaborativeEditingBase() { this.m_nUseType = 1; // 1 - 1 клиент и мы сохраняем историю, -1 - несколько клиентов, 0 - переход из -1 в 1 this.m_aUsers = []; // Список текущих пользователей, редактирующих данный документ this.m_aChanges = []; // Массив с изменениями других пользователей this.m_aNeedUnlock = []; // Массив со списком залоченных объектов(которые были залочены другими пользователями) this.m_aNeedUnlock2 = []; // Массив со списком залоченных объектов(которые были залочены на данном клиенте) this.m_aNeedLock = []; // Массив со списком залоченных объектов(которые были залочены, но еще не были добавлены на данном клиенте) this.m_aLinkData = []; // Массив, указателей, которые нам надо выставить при загрузке чужих изменений this.m_aEndActions = []; // Массив действий, которые надо выполнить после принятия чужих изменений this.m_bGlobalLock = 0; // Запрещаем производить любые "редактирующие" действия (т.е. то, что в историю запишется) this.m_bGlobalLockSelection = 0; // Запрещаем изменять селект и курсор this.m_aCheckLocks = []; // Массив для проверки залоченности объектов, которые мы собираемся изменять this.m_aNewObjects = []; // Массив со списком чужих новых объектов this.m_aNewImages = []; // Массив со списком картинок, которые нужно будет загрузить на сервере this.m_aDC = {}; // Массив(ассоциативный) классов DocumentContent this.m_aChangedClasses = {}; // Массив(ассоциативный) классов, в которых есть изменения выделенные цветом this.m_oMemory = null; // Глобальные класс для сохранения (создадим позднее, когда понадобится) this.m_aCursorsToUpdate = {}; // Курсоры, которые нужно обновить после принятия изменений this.m_aCursorsToUpdateShortId = {}; // // CollaborativeEditing LOG // this.m_nErrorLog_PointChangesCount = 0; // this.m_nErrorLog_SavedPCC = 0; // this.m_nErrorLog_CurPointIndex = -1; // this.m_nErrorLog_SumIndex = 0; this.m_bFast = false; this.m_oLogicDocument = null; this.m_aDocumentPositions = new CDocumentPositionsManager(); this.m_aForeignCursorsPos = new CDocumentPositionsManager(); this.m_aForeignCursors = {}; this.m_aForeignCursorsId = {}; this.m_nAllChangesSavedIndex = 0; this.m_aAllChanges = []; // Список всех изменений this.m_aOwnChangesIndexes = []; // Список номеров своих изменений в общем списке, которые мы можем откатить this.m_oOwnChanges = []; } CCollaborativeEditingBase.prototype.Clear = function() { this.m_nUseType = 1; this.m_aUsers = []; this.m_aChanges = []; this.m_aNeedUnlock = []; this.m_aNeedUnlock2 = []; this.m_aNeedLock = []; this.m_aLinkData = []; this.m_aEndActions = []; this.m_aCheckLocks = []; this.m_aNewObjects = []; this.m_aNewImages = []; }; CCollaborativeEditingBase.prototype.Set_Fast = function(bFast) { this.m_bFast = bFast; if (false === bFast) { this.Remove_AllForeignCursors(); this.RemoveMyCursorFromOthers(); } }; CCollaborativeEditingBase.prototype.Is_Fast = function() { return this.m_bFast; }; CCollaborativeEditingBase.prototype.Is_SingleUser = function() { return (1 === this.m_nUseType); }; CCollaborativeEditingBase.prototype.getCollaborativeEditing = function() { return !this.Is_SingleUser(); }; CCollaborativeEditingBase.prototype.Start_CollaborationEditing = function() { this.m_nUseType = -1; }; CCollaborativeEditingBase.prototype.End_CollaborationEditing = function() { if (this.m_nUseType <= 0) this.m_nUseType = 0; }; CCollaborativeEditingBase.prototype.Add_User = function(UserId) { if (-1 === this.Find_User(UserId)) this.m_aUsers.push(UserId); }; CCollaborativeEditingBase.prototype.Find_User = function(UserId) { var Len = this.m_aUsers.length; for (var Index = 0; Index < Len; Index++) { if (this.m_aUsers[Index] === UserId) return Index; } return -1; }; CCollaborativeEditingBase.prototype.Remove_User = function(UserId) { var Pos = this.Find_User( UserId ); if ( -1 != Pos ) this.m_aUsers.splice( Pos, 1 ); }; CCollaborativeEditingBase.prototype.Add_Changes = function(Changes) { this.m_aChanges.push(Changes); }; CCollaborativeEditingBase.prototype.Add_Unlock = function(LockClass) { this.m_aNeedUnlock.push( LockClass ); }; CCollaborativeEditingBase.prototype.Add_Unlock2 = function(Lock) { this.m_aNeedUnlock2.push(Lock); editor._onUpdateDocumentCanSave(); }; CCollaborativeEditingBase.prototype.Have_OtherChanges = function() { return (0 < this.m_aChanges.length); }; CCollaborativeEditingBase.prototype.Apply_Changes = function() { var OtherChanges = (this.m_aChanges.length > 0); // Если нет чужих изменений, тогда и делать ничего не надо if (true === OtherChanges) { AscFonts.IsCheckSymbols = true; editor.WordControl.m_oLogicDocument.Stop_Recalculate(); editor.WordControl.m_oLogicDocument.EndPreview_MailMergeResult(); editor.sync_StartAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.ApplyChanges); var DocState = this.private_SaveDocumentState(); this.Clear_NewImages(); this.Apply_OtherChanges(); // После того как мы приняли чужие изменения, мы должны залочить новые объекты, которые были залочены this.Lock_NeedLock(); this.private_RestoreDocumentState(DocState); this.OnStart_Load_Objects(); AscFonts.IsCheckSymbols = false; } }; CCollaborativeEditingBase.prototype.Apply_OtherChanges = function() { // Чтобы заново созданные параграфы не отображались залоченными AscCommon.g_oIdCounter.Set_Load( true ); if (this.m_aChanges.length > 0) this.private_CollectOwnChanges(); // Применяем изменения, пока они есть var _count = this.m_aChanges.length; for (var i = 0; i < _count; i++) { if (window["NATIVE_EDITOR_ENJINE"] === true && window["native"]["CheckNextChange"]) { if (!window["native"]["CheckNextChange"]()) break; } var Changes = this.m_aChanges[i]; Changes.Apply_Data(); // // CollaborativeEditing LOG // this.m_nErrorLog_PointChangesCount++; } this.private_ClearChanges(); // У новых элементов выставляем указатели на другие классы this.Apply_LinkData(); // Делаем проверки корректности новых изменений this.Check_MergeData(); this.OnEnd_ReadForeignChanges(); AscCommon.g_oIdCounter.Set_Load( false ); }; CCollaborativeEditingBase.prototype.getOwnLocksLength = function() { return this.m_aNeedUnlock2.length; }; CCollaborativeEditingBase.prototype.Send_Changes = function() { }; CCollaborativeEditingBase.prototype.Release_Locks = function() { }; CCollaborativeEditingBase.prototype.CheckWaitingImages = function (aImages) { }; CCollaborativeEditingBase.prototype.SendImagesUrlsFromChanges = function (aImages) { var rData = {}, oApi = editor || Asc['editor'], i; if(!oApi){ return; } rData['id'] = oApi.documentId; rData['c'] = 'pathurls'; rData['data'] = []; for(i = 0; i < aImages.length; ++i) { rData['data'].push(aImages[i]); } var aImagesToLoad = [].concat(AscCommon.CollaborativeEditing.m_aNewImages); this.CheckWaitingImages(aImagesToLoad); AscCommon.CollaborativeEditing.m_aNewImages.length = 0; if(false === oApi.isSaveFonts_Images){ oApi.isSaveFonts_Images = true; } // CryptPad - bypassing image loading which is breaking AscCommon.CollaborativeEditing.SendImagesCallback(aImagesToLoad); /* oApi.fCurCallback = function (oRes) { var aData, i, oUrls; if(oRes['status'] === 'ok') { aData = oRes['data']; oUrls= {}; for(i = 0; i < aData.length; ++i) { oUrls[aImages[i]] = aData[i]; } AscCommon.g_oDocumentUrls.addUrls(oUrls); } AscCommon.CollaborativeEditing.SendImagesCallback(aImagesToLoad); }; AscCommon.sendCommand(oApi, null, rData); */ }; CCollaborativeEditingBase.prototype.SendImagesCallback = function (aImages) { var oApi = editor || Asc['editor']; oApi.pre_Save(aImages); }; CCollaborativeEditingBase.prototype.CollectImagesFromChanges = function () { var oApi = editor || Asc['editor']; var aImages = [], sImagePath, i, sImageFromChanges, oThemeUrls = {}; var aNewImages = this.m_aNewImages; var oMap = {}; for(i = 0; i < aNewImages.length; ++i) { sImageFromChanges = aNewImages[i]; if(oMap[sImageFromChanges]) { continue; } oMap[sImageFromChanges] = 1; if(sImageFromChanges.indexOf('theme') === 0 && oApi.ThemeLoader) { oThemeUrls[sImageFromChanges] = oApi.ThemeLoader.ThemesUrlAbs + sImageFromChanges; } else if (0 === sImageFromChanges.indexOf('http:') || 0 === sImageFromChanges.indexOf('data:') || 0 === sImageFromChanges.indexOf('https:') || 0 === sImageFromChanges.indexOf('file:') || 0 === sImageFromChanges.indexOf('ftp:')) { } else { sImagePath = AscCommon.g_oDocumentUrls.mediaPrefix + sImageFromChanges; if(!AscCommon.g_oDocumentUrls.getUrl(sImagePath)) { aImages.push(sImagePath); } } } AscCommon.g_oDocumentUrls.addUrls(oThemeUrls); return aImages; }; CCollaborativeEditingBase.prototype.OnStart_Load_Objects = function() { this.Set_GlobalLock(true); this.Set_GlobalLockSelection(true); // Вызываем функцию для загрузки необходимых элементов (новые картинки и шрифты) var aImages = this.CollectImagesFromChanges(); if(aImages.length > 0) { this.SendImagesUrlsFromChanges(aImages); } else { this.SendImagesCallback([].concat(this.m_aNewImages)); this.m_aNewImages.length = 0; } }; CCollaborativeEditingBase.prototype.OnEnd_Load_Objects = function() { }; //----------------------------------------------------------------------------------- // Функции для работы с ссылками, у новых объектов //----------------------------------------------------------------------------------- CCollaborativeEditingBase.prototype.Clear_LinkData = function() { this.m_aLinkData.length = 0; }; CCollaborativeEditingBase.prototype.Add_LinkData = function(Class, LinkData) { this.m_aLinkData.push( { Class : Class, LinkData : LinkData } ); }; CCollaborativeEditingBase.prototype.Apply_LinkData = function() { var Count = this.m_aLinkData.length; for ( var Index = 0; Index < Count; Index++ ) { var Item = this.m_aLinkData[Index]; Item.Class.Load_LinkData( Item.LinkData ); } this.Clear_LinkData(); }; //----------------------------------------------------------------------------------- // Функции для проверки корректности новых изменений //----------------------------------------------------------------------------------- CCollaborativeEditingBase.prototype.Check_MergeData = function() { }; //----------------------------------------------------------------------------------- // Функции для проверки залоченности объектов //----------------------------------------------------------------------------------- CCollaborativeEditingBase.prototype.Get_GlobalLock = function() { return (0 === this.m_bGlobalLock ? false : true); }; CCollaborativeEditingBase.prototype.Set_GlobalLock = function(isLock) { if (isLock) this.m_bGlobalLock++; else this.m_bGlobalLock = Math.max(0, this.m_bGlobalLock - 1); }; CCollaborativeEditingBase.prototype.Set_GlobalLockSelection = function(isLock) { if (isLock) this.m_bGlobalLockSelection++; else this.m_bGlobalLockSelection = Math.max(0, this.m_bGlobalLockSelection - 1); }; CCollaborativeEditingBase.prototype.Get_GlobalLockSelection = function() { return (0 === this.m_bGlobalLockSelection ? false : true); }; CCollaborativeEditingBase.prototype.OnStart_CheckLock = function() { this.m_aCheckLocks.length = 0; }; CCollaborativeEditingBase.prototype.Add_CheckLock = function(oItem) { this.m_aCheckLocks.push(oItem); }; CCollaborativeEditingBase.prototype.OnEnd_CheckLock = function() { }; CCollaborativeEditingBase.prototype.OnCallback_AskLock = function(result) { }; //----------------------------------------------------------------------------------- // Функции для работы с залоченными объектами, которые еще не были добавлены //----------------------------------------------------------------------------------- CCollaborativeEditingBase.prototype.Reset_NeedLock = function() { this.m_aNeedLock = {}; }; CCollaborativeEditingBase.prototype.Add_NeedLock = function(Id, sUser) { this.m_aNeedLock[Id] = sUser; }; CCollaborativeEditingBase.prototype.Remove_NeedLock = function(Id) { delete this.m_aNeedLock[Id]; }; CCollaborativeEditingBase.prototype.Lock_NeedLock = function() { for ( var Id in this.m_aNeedLock ) { var Class = AscCommon.g_oTableId.Get_ById( Id ); if ( null != Class ) { var Lock = Class.Lock; Lock.Set_Type( AscCommon.locktype_Other, false ); if(Class.getObjectType && Class.getObjectType() === AscDFH.historyitem_type_Slide) { editor.WordControl.m_oLogicDocument.DrawingDocument.UnLockSlide && editor.WordControl.m_oLogicDocument.DrawingDocument.UnLockSlide(Class.num); } Lock.Set_UserId( this.m_aNeedLock[Id] ); } } this.Reset_NeedLock(); }; //----------------------------------------------------------------------------------- // Функции для работы с новыми объектами, созданными на других клиентах //----------------------------------------------------------------------------------- CCollaborativeEditingBase.prototype.Clear_NewObjects = function() { this.m_aNewObjects.length = 0; }; CCollaborativeEditingBase.prototype.Add_NewObject = function(Class) { this.m_aNewObjects.push(Class); Class.FromBinary = true; }; CCollaborativeEditingBase.prototype.Clear_EndActions = function() { this.m_aEndActions.length = 0; }; CCollaborativeEditingBase.prototype.Add_EndActions = function(Class, Data) { this.m_aEndActions.push({Class : Class, Data : Data}); }; CCollaborativeEditingBase.prototype.OnEnd_ReadForeignChanges = function() { var Count = this.m_aNewObjects.length; for (var Index = 0; Index < Count; Index++) { var Class = this.m_aNewObjects[Index]; Class.FromBinary = false; } Count = this.m_aEndActions.length; for (var Index = 0; Index < Count; Index++) { var Item = this.m_aEndActions[Index]; Item.Class.Process_EndLoad(Item.Data); } this.Clear_EndActions(); this.Clear_NewObjects(); }; //----------------------------------------------------------------------------------- // Функции для работы с новыми объектами, созданными на других клиентах //----------------------------------------------------------------------------------- CCollaborativeEditingBase.prototype.Clear_NewImages = function() { this.m_aNewImages.length = 0; }; CCollaborativeEditingBase.prototype.Add_NewImage = function(Url) { this.m_aNewImages.push( Url ); }; //----------------------------------------------------------------------------------- // Функции для работы с массивом m_aDC //----------------------------------------------------------------------------------- CCollaborativeEditingBase.prototype.Add_NewDC = function(Class) { var Id = Class.Get_Id(); this.m_aDC[Id] = Class; }; CCollaborativeEditingBase.prototype.Clear_DCChanges = function() { for (var Id in this.m_aDC) { this.m_aDC[Id].Clear_ContentChanges(); } // Очищаем массив this.m_aDC = {}; }; CCollaborativeEditingBase.prototype.Refresh_DCChanges = function() { for (var Id in this.m_aDC) { this.m_aDC[Id].Refresh_ContentChanges(); } this.Clear_DCChanges(); }; //----------------------------------------------------------------------------------- // Функции для работы с массивами PosExtChangesX, PosExtChangesY //----------------------------------------------------------------------------------- CCollaborativeEditingBase.prototype.AddPosExtChanges = function(Item, ChangeObject){ }; CCollaborativeEditingBase.prototype.RefreshPosExtChanges = function(){ }; CCollaborativeEditingBase.prototype.RewritePosExtChanges = function(changesArr, scale, Binary_Writer) { }; CCollaborativeEditingBase.prototype.RefreshPosExtChanges = function() { }; //----------------------------------------------------------------------------------- // Функции для работы с отметками изменений //----------------------------------------------------------------------------------- CCollaborativeEditingBase.prototype.Add_ChangedClass = function(Class) { var Id = Class.Get_Id(); this.m_aChangedClasses[Id] = Class; }; CCollaborativeEditingBase.prototype.Clear_CollaborativeMarks = function(bRepaint) { for ( var Id in this.m_aChangedClasses ) { this.m_aChangedClasses[Id].Clear_CollaborativeMarks(); } // Очищаем массив this.m_aChangedClasses = {}; if (true === bRepaint) { editor.WordControl.m_oLogicDocument.DrawingDocument.ClearCachePages(); editor.WordControl.m_oLogicDocument.DrawingDocument.FirePaint(); } }; //---------------------------------------------------------------------------------------------------------------------- // Функции для работы с обновлением курсоров после принятия изменений //---------------------------------------------------------------------------------------------------------------------- CCollaborativeEditingBase.prototype.Add_ForeignCursorToUpdate = function(UserId, CursorInfo, UserShortId) { this.m_aCursorsToUpdate[UserId] = CursorInfo; this.m_aCursorsToUpdateShortId[UserId] = UserShortId; }; CCollaborativeEditingBase.prototype.Refresh_ForeignCursors = function() { if (!this.m_oLogicDocument) return; for (var UserId in this.m_aCursorsToUpdate) { var CursorInfo = this.m_aCursorsToUpdate[UserId]; this.m_oLogicDocument.Update_ForeignCursor(CursorInfo, UserId, false, this.m_aCursorsToUpdateShortId[UserId]); if (this.Add_ForeignCursorToShow) this.Add_ForeignCursorToShow(UserId); } this.m_aCursorsToUpdate = {}; this.m_aCursorsToUpdateShortId = {}; }; //---------------------------------------------------------------------------------------------------------------------- // Функции для работы с сохраненными позициями в Word-документах. Они объявлены в базовом классе, потому что вызываются // из общих классов Paragraph, Run, Table. Вообщем, для совместимости. //---------------------------------------------------------------------------------------------------------------------- CCollaborativeEditingBase.prototype.Clear_DocumentPositions = function(){ this.m_aDocumentPositions.Clear_DocumentPositions(); }; CCollaborativeEditingBase.prototype.Add_DocumentPosition = function(DocumentPos){ this.m_aDocumentPositions.Add_DocumentPosition(DocumentPos); }; CCollaborativeEditingBase.prototype.Add_ForeignCursor = function(UserId, DocumentPos, UserShortId){ this.m_aForeignCursorsPos.Remove_DocumentPosition(this.m_aCursorsToUpdate[UserId]); this.m_aForeignCursors[UserId] = DocumentPos; this.m_aForeignCursorsPos.Add_DocumentPosition(DocumentPos); this.m_aForeignCursorsId[UserId] = UserShortId; }; CCollaborativeEditingBase.prototype.Remove_ForeignCursor = function(UserId){ this.m_aForeignCursorsPos.Remove_DocumentPosition(this.m_aCursorsToUpdate[UserId]); delete this.m_aForeignCursors[UserId]; }; CCollaborativeEditingBase.prototype.Remove_AllForeignCursors = function(){}; CCollaborativeEditingBase.prototype.RemoveMyCursorFromOthers = function(){}; CCollaborativeEditingBase.prototype.Update_DocumentPositionsOnAdd = function(Class, Pos){ this.m_aDocumentPositions.Update_DocumentPositionsOnAdd(Class, Pos); this.m_aForeignCursorsPos.Update_DocumentPositionsOnAdd(Class, Pos); }; CCollaborativeEditingBase.prototype.Update_DocumentPositionsOnRemove = function(Class, Pos, Count){ this.m_aDocumentPositions.Update_DocumentPositionsOnRemove(Class, Pos, Count); this.m_aForeignCursorsPos.Update_DocumentPositionsOnRemove(Class, Pos, Count); }; CCollaborativeEditingBase.prototype.OnStart_SplitRun = function(SplitRun, SplitPos){ this.m_aDocumentPositions.OnStart_SplitRun(SplitRun, SplitPos); this.m_aForeignCursorsPos.OnStart_SplitRun(SplitRun, SplitPos); }; CCollaborativeEditingBase.prototype.OnEnd_SplitRun = function(NewRun){ this.m_aDocumentPositions.OnEnd_SplitRun(NewRun); this.m_aForeignCursorsPos.OnEnd_SplitRun(NewRun); }; CCollaborativeEditingBase.prototype.Update_DocumentPosition = function(DocPos){ this.m_aDocumentPositions.Update_DocumentPosition(DocPos); }; CCollaborativeEditingBase.prototype.Update_ForeignCursorsPositions = function(){ }; CCollaborativeEditingBase.prototype.InitMemory = function() { if (!this.m_oMemory) { this.m_oMemory = new AscCommon.CMemory(); } }; CCollaborativeEditingBase.prototype.private_SaveDocumentState = function() { var LogicDocument = editor.WordControl.m_oLogicDocument; var DocState; if (true !== this.Is_Fast()) { DocState = LogicDocument.Get_SelectionState2(); this.m_aCursorsToUpdate = {}; } else { DocState = LogicDocument.Save_DocumentStateBeforeLoadChanges(); this.Clear_DocumentPositions(); if (DocState.Pos) this.Add_DocumentPosition(DocState.Pos); if (DocState.StartPos) this.Add_DocumentPosition(DocState.StartPos); if (DocState.EndPos) this.Add_DocumentPosition(DocState.EndPos); if (DocState.FootnotesStart && DocState.FootnotesStart.Pos) this.Add_DocumentPosition(DocState.FootnotesStart.Pos); if (DocState.FootnotesStart && DocState.FootnotesStart.StartPos) this.Add_DocumentPosition(DocState.FootnotesStart.StartPos); if (DocState.FootnotesStart && DocState.FootnotesStart.EndPos) this.Add_DocumentPosition(DocState.FootnotesStart.EndPos); if (DocState.FootnotesEnd && DocState.FootnotesEnd.Pos) this.Add_DocumentPosition(DocState.FootnotesEnd.Pos); if (DocState.FootnotesEnd && DocState.FootnotesEnd.StartPos) this.Add_DocumentPosition(DocState.FootnotesEnd.StartPos); if (DocState.FootnotesEnd && DocState.FootnotesEnd.EndPos) this.Add_DocumentPosition(DocState.FootnotesEnd.EndPos); } return DocState; }; CCollaborativeEditingBase.prototype.private_RestoreDocumentState = function(DocState) { var LogicDocument = editor.WordControl.m_oLogicDocument; if (true !== this.Is_Fast()) { LogicDocument.Set_SelectionState2(DocState); } else { if (DocState.Pos) this.Update_DocumentPosition(DocState.Pos); if (DocState.StartPos) this.Update_DocumentPosition(DocState.StartPos); if (DocState.EndPos) this.Update_DocumentPosition(DocState.EndPos); if (DocState.FootnotesStart && DocState.FootnotesStart.Pos) this.Update_DocumentPosition(DocState.FootnotesStart.Pos); if (DocState.FootnotesStart && DocState.FootnotesStart.StartPos) this.Update_DocumentPosition(DocState.FootnotesStart.StartPos); if (DocState.FootnotesStart && DocState.FootnotesStart.EndPos) this.Update_DocumentPosition(DocState.FootnotesStart.EndPos); if (DocState.FootnotesEnd && DocState.FootnotesEnd.Pos) this.Update_DocumentPosition(DocState.FootnotesEnd.Pos); if (DocState.FootnotesEnd && DocState.FootnotesEnd.StartPos) this.Update_DocumentPosition(DocState.FootnotesEnd.StartPos); if (DocState.FootnotesEnd && DocState.FootnotesEnd.EndPos) this.Update_DocumentPosition(DocState.FootnotesEnd.EndPos); LogicDocument.Load_DocumentStateAfterLoadChanges(DocState); this.Refresh_ForeignCursors(); } }; //---------------------------------------------------------------------------------------------------------------------- // Private area //---------------------------------------------------------------------------------------------------------------------- CCollaborativeEditingBase.prototype.private_ClearChanges = function() { this.m_aChanges = []; }; CCollaborativeEditingBase.prototype.private_CollectOwnChanges = function() { }; CCollaborativeEditingBase.prototype.private_AddOverallChange = function(oChange) { return true; }; //------------------------------------- /// /////---------------------------------------- //---------------------------------------------------------------------------------------------------------------------- // //---------------------------------------------------------------------------------------------------------------------- CCollaborativeEditingBase.prototype.private_ClearChanges = function() { this.m_aChanges = []; this.m_oOwnChanges = []; }; CCollaborativeEditingBase.prototype.private_CollectOwnChanges = function() { var StartPoint = ( null === AscCommon.History.SavedIndex ? 0 : AscCommon.History.SavedIndex + 1 ); var LastPoint = -1; if (this.m_nUseType <= 0) LastPoint = AscCommon.History.Points.length - 1; else LastPoint = AscCommon.History.Index; for (var PointIndex = StartPoint; PointIndex <= LastPoint; PointIndex++) { var Point = AscCommon.History.Points[PointIndex]; for (var Index = 0; Index < Point.Items.length; Index++) { var Item = Point.Items[Index]; this.m_oOwnChanges.push(Item.Data); } } }; CCollaborativeEditingBase.prototype.private_AddOverallChange = function(oChange, isSave) { // Здесь мы должны смержить пришедшее изменение с одним из наших изменений for (var nIndex = 0, nCount = this.m_oOwnChanges.length; nIndex < nCount; ++nIndex) { if (oChange && oChange.Merge && false === oChange.Merge(this.m_oOwnChanges[nIndex])) return false; } if (false !== isSave) this.m_aAllChanges.push(oChange); return true; }; CCollaborativeEditingBase.prototype.private_OnSendOwnChanges = function(arrChanges, nDeleteIndex) { if (null !== nDeleteIndex) { this.m_aAllChanges.length = this.m_nAllChangesSavedIndex + nDeleteIndex; } else { this.m_nAllChangesSavedIndex = this.m_aAllChanges.length; } // TODO: Пока мы делаем это как одну точку, которую надо откатить. Надо пробежаться по массиву и разбить его // по отдельным действиям. В принципе, данная схема срабатывает в быстром совместном редактировании, // так что как правило две точки не успевают попасть в одно сохранение. if (arrChanges.length > 0) { this.m_aOwnChangesIndexes.push({ Position : this.m_aAllChanges.length, Count : arrChanges.length }); this.m_aAllChanges = this.m_aAllChanges.concat(arrChanges); } }; CCollaborativeEditingBase.prototype.Undo = function() { if (true === this.Get_GlobalLock()) return; if (this.m_aOwnChangesIndexes.length <= 0) return false; // Формируем новую пачку действий, которые будут откатывать нужные нам действия. // На первом шаге мы заданнуюю пачку изменений коммутируем с последними измениями. Смотрим на то какой набор // изменений у нас получается. // Объектная модель у нас простая: класс, в котором возможно есть массив элементов(тоже классов), у которого воможно // есть набор свойств. Поэтому у нас ровно 2 типа изменений: изменения внутри массива элементов, либо изменения // свойств. Изменения этих двух типов коммутируют между собой, изменения разных классов тоже коммутируют. var arrChanges = []; var oIndexes = this.m_aOwnChangesIndexes[this.m_aOwnChangesIndexes.length - 1]; var nPosition = oIndexes.Position; var nCount = oIndexes.Count; for (var nIndex = nCount - 1; nIndex >= 0; --nIndex) { var oChange = this.m_aAllChanges[nPosition + nIndex]; if (!oChange) continue; var oClass = oChange.GetClass(); if (oChange.IsContentChange()) { var _oChange = oChange.Copy(); if (this.private_CommutateContentChanges(_oChange, nPosition + nCount)) arrChanges.push(_oChange); oChange.SetReverted(true); } else { var _oChange = oChange; // TODO: Тут надо бы сделать копирование if (this.private_CommutatePropertyChanges(oClass, _oChange, nPosition + nCount)) arrChanges.push(_oChange); } } // Удаляем запись о последнем изменении this.m_aOwnChangesIndexes.length = this.m_aOwnChangesIndexes.length - 1; var arrReverseChanges = []; for (var nIndex = 0, nCount = arrChanges.length; nIndex < nCount; ++nIndex) { var oReverseChange = arrChanges[nIndex].CreateReverseChange(); if (oReverseChange) { arrReverseChanges.push(oReverseChange); oReverseChange.SetReverted(true); } } // Накатываем изменения в данном клиенте var oLogicDocument = this.m_oLogicDocument; oLogicDocument.DrawingDocument.EndTrackTable(null, true); oLogicDocument.TurnOffCheckChartSelection(); var DocState = this.private_SaveDocumentState(); var mapDrawings = {}; for (var nIndex = 0, nCount = arrReverseChanges.length; nIndex < nCount; ++nIndex) { var oClass = arrReverseChanges[nIndex].GetClass(); if(oClass && oClass.parent && oClass.parent instanceof AscCommonWord.ParaDrawing){ mapDrawings[oClass.parent.Get_Id()] = oClass.parent; } arrReverseChanges[nIndex].Load(); this.m_aAllChanges.push(arrReverseChanges[nIndex]); } // Может так случиться, что в каких-то классах DocumentContent удалились все элементы, либо // в классе Paragraph удалился знак конца параграфа. Нам необходимо проверить все классы на корректность, и если // нужно, добавить дополнительные изменения. var mapDocumentContents = {}; var mapParagraphs = {}; var mapRuns = {}; var mapTables = {}; var mapGrObjects = {}; var mapSlides = {}; var mapLayouts = {}; var bChangedLayout = false; var bAddSlides = false; var mapAddedSlides = {}; for (var nIndex = 0, nCount = arrReverseChanges.length; nIndex < nCount; ++nIndex) { var oChange = arrReverseChanges[nIndex]; var oClass = oChange.GetClass(); if (oClass instanceof AscCommonWord.CDocument || oClass instanceof AscCommonWord.CDocumentContent) mapDocumentContents[oClass.Get_Id()] = oClass; else if (oClass instanceof AscCommonWord.Paragraph) mapParagraphs[oClass.Get_Id()] = oClass; else if (oClass.IsParagraphContentElement && true === oClass.IsParagraphContentElement() && true === oChange.IsContentChange() && oClass.GetParagraph()) { mapParagraphs[oClass.GetParagraph().Get_Id()] = oClass.GetParagraph(); if (oClass instanceof AscCommonWord.ParaRun) mapRuns[oClass.Get_Id()] = oClass; } else if (oClass instanceof AscCommonWord.ParaDrawing) mapDrawings[oClass.Get_Id()] = oClass; else if (oClass instanceof AscCommonWord.ParaRun) mapRuns[oClass.Get_Id()] = oClass; else if (oClass instanceof AscCommonWord.CTable) mapTables[oClass.Get_Id()] = oClass; else if(oClass instanceof AscFormat.CShape || oClass instanceof AscFormat.CImageShape || oClass instanceof AscFormat.CChartSpace || oClass instanceof AscFormat.CGroupShape || oClass instanceof AscFormat.CGraphicFrame) mapGrObjects[oClass.Get_Id()] = oClass; else if(typeof AscCommonSlide !== "undefined") { if (AscCommonSlide.Slide && oClass instanceof AscCommonSlide.Slide) { mapSlides[oClass.Get_Id()] = oClass; } else if(AscCommonSlide.SlideLayout && oClass instanceof AscCommonSlide.SlideLayout){ mapLayouts[oClass.Get_Id()] = oClass; bChangedLayout = true; } else if(AscCommonSlide.CPresentation && oClass instanceof AscCommonSlide.CPresentation){ if(oChange.Type === AscDFH.historyitem_Presentation_RemoveSlide || oChange.Type === AscDFH.historyitem_Presentation_AddSlide){ bAddSlides = true; for(var i = 0; i < oChange.Items.length; ++i){ mapAddedSlides[oChange.Items[i].Get_Id()] = oChange.Items[i]; } } } } } // Создаем точку в истории. Делаем действия через обычные функции (с отключенным пересчетом), которые пишут в // историю. Сохраняем список изменений в новой точке, удаляем данную точку. var oHistory = AscCommon.History; oHistory.CreateNewPointForCollectChanges(); if(bAddSlides){ for(var i = oLogicDocument.Slides.length - 1; i > -1; --i){ if(mapAddedSlides[oLogicDocument.Slides[i].Get_Id()] && !oLogicDocument.Slides[i].Layout){ oLogicDocument.removeSlide(i); } } } for(var sId in mapSlides){ if(mapSlides.hasOwnProperty(sId)){ mapSlides[sId].correctContent(); } } if(bChangedLayout){ for(var i = oLogicDocument.Slides.length - 1; i > -1 ; --i){ var Layout = oLogicDocument.Slides[i].Layout; if(!Layout || mapLayouts[Layout.Get_Id()]){ if(!oLogicDocument.Slides[i].CheckLayout()){ oLogicDocument.removeSlide(i); } } } } for(var sId in mapGrObjects){ var oShape = mapGrObjects[sId]; if(!oShape.checkCorrect()){ oShape.setBDeleted(true); if(oShape.group){ oShape.group.removeFromSpTree(oShape.Get_Id()); } else if(AscFormat.Slide && (oShape.parent instanceof AscFormat.Slide)){ oShape.parent.removeFromSpTreeById(oShape.Get_Id()); } else if(AscCommonWord.ParaDrawing && (oShape.parent instanceof AscCommonWord.ParaDrawing)){ mapDrawings[oShape.parent.Get_Id()] = oShape.parent; } } else{ if(oShape.resetGroups){ oShape.resetGroups(); } } } var oDrawing; for (var sId in mapDrawings) { if (mapDrawings.hasOwnProperty(sId)) { oDrawing = mapDrawings[sId]; if (!oDrawing.CheckCorrect()) { var oParentParagraph = oDrawing.Get_ParentParagraph(); oDrawing.Remove_FromDocument(false); if (oParentParagraph) { mapParagraphs[oParentParagraph.Get_Id()] = oParentParagraph; } } } } for(var sId in mapRuns){ if (mapRuns.hasOwnProperty(sId)) { var oRun = mapRuns[sId]; for(var nIndex = oRun.Content.length - 1; nIndex > - 1; --nIndex){ if(oRun.Content[nIndex] instanceof AscCommonWord.ParaDrawing){ if(!oRun.Content[nIndex].CheckCorrect()){ oRun.Remove_FromContent(nIndex, 1, false); if(oRun.Paragraph){ mapParagraphs[oRun.Paragraph.Get_Id()] = oRun.Paragraph; } } } } } } for (var sId in mapTables) { var oTable = mapTables[sId]; for (var nCurRow = oTable.Content.length - 1; nCurRow >= 0; --nCurRow) { var oRow = oTable.Get_Row(nCurRow); if (oRow.Get_CellsCount() <= 0) oTable.Internal_Remove_Row(nCurRow); } if (oTable.Parent instanceof AscCommonWord.CDocument || oTable.Parent instanceof AscCommonWord.CDocumentContent) mapDocumentContents[oTable.Parent.Get_Id()] = oTable.Parent; } for (var sId in mapDocumentContents) { var oDocumentContent = mapDocumentContents[sId]; var nContentLen = oDocumentContent.Content.length; for (var nIndex = nContentLen - 1; nIndex >= 0; --nIndex) { var oElement = oDocumentContent.Content[nIndex]; if ((AscCommonWord.type_Paragraph === oElement.GetType() || AscCommonWord.type_Table === oElement.GetType()) && oElement.Content.length <= 0) { oDocumentContent.Remove_FromContent(nIndex, 1); } } nContentLen = oDocumentContent.Content.length; if (nContentLen <= 0 || AscCommonWord.type_Paragraph !== oDocumentContent.Content[nContentLen - 1].GetType()) { var oNewParagraph = new AscCommonWord.Paragraph(oLogicDocument.Get_DrawingDocument(), oDocumentContent, 0, 0, 0, 0, 0, false); oDocumentContent.Add_ToContent(nContentLen, oNewParagraph); } } for (var sId in mapParagraphs) { var oParagraph = mapParagraphs[sId]; oParagraph.CheckParaEnd(); oParagraph.Correct_Content(null, null, true); } var oBinaryWriter = AscCommon.History.BinaryWriter; var aSendingChanges = []; for (var nIndex = 0, nCount = arrReverseChanges.length; nIndex < nCount; ++nIndex) { var oReverseChange = arrReverseChanges[nIndex]; var oChangeClass = oReverseChange.GetClass(); var nBinaryPos = oBinaryWriter.GetCurPosition(); oBinaryWriter.WriteString2(oChangeClass.Get_Id()); oBinaryWriter.WriteLong(oReverseChange.Type); oReverseChange.WriteToBinary(oBinaryWriter); var nBinaryLen = oBinaryWriter.GetCurPosition() - nBinaryPos; var oChange = new AscCommon.CCollaborativeChanges(); oChange.Set_FromUndoRedo(oChangeClass, oReverseChange, {Pos : nBinaryPos, Len : nBinaryLen}); aSendingChanges.push(oChange.m_pData); } var oHistoryPoint = oHistory.Points[oHistory.Points.length - 1]; for (var nIndex = 0, nCount = oHistoryPoint.Items.length; nIndex < nCount; ++nIndex) { var oReverseChange = oHistoryPoint.Items[nIndex].Data; var oChangeClass = oReverseChange.GetClass(); var oChange = new AscCommon.CCollaborativeChanges(); oChange.Set_FromUndoRedo(oChangeClass, oReverseChange, {Pos : oHistoryPoint.Items[nIndex].Binary.Pos, Len : oHistoryPoint.Items[nIndex].Binary.Len}); aSendingChanges.push(oChange.m_pData); arrReverseChanges.push(oHistoryPoint.Items[nIndex].Data); } oHistory.Remove_LastPoint(); this.Clear_DCChanges(); editor.CoAuthoringApi.saveChanges(aSendingChanges, null, null, false, this.getCollaborativeEditing()); this.private_RestoreDocumentState(DocState); oLogicDocument.TurnOnCheckChartSelection(); this.private_RecalculateDocument(AscCommon.History.Get_RecalcData(null, arrReverseChanges)); oLogicDocument.Document_UpdateSelectionState(); oLogicDocument.Document_UpdateInterfaceState(); oLogicDocument.Document_UpdateRulersState(); }; CCollaborativeEditingBase.prototype.CanUndo = function() { return this.m_aOwnChangesIndexes.length <= 0 ? false : true; }; CCollaborativeEditingBase.prototype.private_CommutateContentChanges = function(oChange, nStartPosition) { var arrActions = oChange.ConvertToSimpleActions(); var arrCommutateActions = []; for (var nActionIndex = arrActions.length - 1; nActionIndex >= 0; --nActionIndex) { var oAction = arrActions[nActionIndex]; var oResult = oAction; for (var nIndex = nStartPosition, nOverallCount = this.m_aAllChanges.length; nIndex < nOverallCount; ++nIndex) { var oTempChange = this.m_aAllChanges[nIndex]; if (!oTempChange) continue; if (oChange.IsRelated(oTempChange) && true !== oTempChange.IsReverted()) { var arrOtherActions = oTempChange.ConvertToSimpleActions(); for (var nIndex2 = 0, nOtherActionsCount2 = arrOtherActions.length; nIndex2 < nOtherActionsCount2; ++nIndex2) { var oOtherAction = arrOtherActions[nIndex2]; if (false === this.private_Commutate(oAction, oOtherAction)) { arrOtherActions.splice(nIndex2, 1); oResult = null; break; } } oTempChange.ConvertFromSimpleActions(arrOtherActions); } if (!oResult) break; } if (null !== oResult) arrCommutateActions.push(oResult); } if (arrCommutateActions.length > 0) oChange.ConvertFromSimpleActions(arrCommutateActions); else return false; return true; }; CCollaborativeEditingBase.prototype.private_Commutate = function(oActionL, oActionR) { if (oActionL.Add) { if (oActionR.Add) { if (oActionL.Pos >= oActionR.Pos) oActionL.Pos++; else oActionR.Pos--; } else { if (oActionL.Pos > oActionR.Pos) oActionL.Pos--; else if (oActionL.Pos === oActionR.Pos) return false; else oActionR.Pos--; } } else { if (oActionR.Add) { if (oActionL.Pos >= oActionR.Pos) oActionL.Pos++; else oActionR.Pos++; } else { if (oActionL.Pos > oActionR.Pos) oActionL.Pos--; else oActionR.Pos++; } } return true; }; CCollaborativeEditingBase.prototype.private_CommutatePropertyChanges = function(oClass, oChange, nStartPosition) { // В GoogleDocs если 2 пользователя исправляют одно и тоже свойство у одного и того же класса, тогда Undo работает // у обоих. Например, первый выставляет параграф по центру (изначально по левому), второй после этого по правому // краю. Тогда на Undo первого пользователя возвращает параграф по левому краю, а у второго по центру, неважно в // какой последовательности они вызывают Undo. // Далем как у них: т.е. изменения свойств мы всегда откатываем, даже если данное свойсво менялось в последующих // изменениях. // Здесь вариант: свойство не откатываем, если оно менялось в одном из последующих действий. (для работы этого // варианта нужно реализовать функцию IsRelated у всех изменений). // // Значит это изменение свойства. Пробегаемся по всем следующим изменениям и смотрим, менялось ли такое // // свойство у данного класса, если да, тогда данное изменение невозможно скоммутировать. // for (var nIndex = nStartPosition, nOverallCount = this.m_aAllChanges.length; nIndex < nOverallCount; ++nIndex) // { // var oTempChange = this.m_aAllChanges[nIndex]; // if (!oTempChange || !oTempChange.IsChangesClass || !oTempChangeIsChangesClass()) // continue; // // if (oChange.IsRelated(oTempChange)) // return false; // } if(oChange.CheckCorrect && !oChange.CheckCorrect()) { return false; } return true; }; CCollaborativeEditingBase.prototype.private_RecalculateDocument = function(oRecalcData){ }; //---------------------------------------------------------------------------------------------------------------------- // Класс для работы с сохраненными позициями документа. //---------------------------------------------------------------------------------------------------------------------- // Принцип следующий. Заданная позиция - это Run + Позиция внутри данного Run. // Если заданный ран был разбит (операция Split), тогда отслеживаем куда перешла // заданная позиция, в новый ран или осталась в старом? Если в новый, тогда сохраняем // новый ран как отдельную позицию в массив m_aDocumentPositions, и добавляем мап // старой позиции в новую m_aDocumentPositionsMap. В конце действия, когда нам нужно // определить где же находистся наша позиция, мы сначала проверяем Map, если в нем есть // конечная позиция, проверяем является ли заданная позиция валидной в документе. // Если да, тогда выставляем ее, если нет, тогда берем Run исходной позиции, и // пытаемся сформировать полную позицию по данному Run. Если и это не получается, // тогда восстанавливаем позицию по измененной полной исходной позиции. //---------------------------------------------------------------------------------------------------------------------- function CDocumentPositionsManager() { this.m_aDocumentPositions = []; this.m_aDocumentPositionsSplit = []; this.m_aDocumentPositionsMap = []; } CDocumentPositionsManager.prototype.Clear_DocumentPositions = function() { this.m_aDocumentPositions = []; this.m_aDocumentPositionsSplit = []; this.m_aDocumentPositionsMap = []; }; CDocumentPositionsManager.prototype.Add_DocumentPosition = function(Position) { this.m_aDocumentPositions.push(Position); }; CDocumentPositionsManager.prototype.Update_DocumentPositionsOnAdd = function(Class, Pos) { for (var PosIndex = 0, PosCount = this.m_aDocumentPositions.length; PosIndex < PosCount; ++PosIndex) { var DocPos = this.m_aDocumentPositions[PosIndex]; for (var ClassPos = 0, ClassLen = DocPos.length; ClassPos < ClassLen; ++ClassPos) { var _Pos = DocPos[ClassPos]; if (Class === _Pos.Class && undefined !== _Pos.Position && (_Pos.Position > Pos || (_Pos.Position === Pos && !(Class instanceof AscCommonWord.ParaRun)))) { _Pos.Position++; break; } } } }; CDocumentPositionsManager.prototype.Update_DocumentPositionsOnRemove = function(Class, Pos, Count) { for (var PosIndex = 0, PosCount = this.m_aDocumentPositions.length; PosIndex < PosCount; ++PosIndex) { var DocPos = this.m_aDocumentPositions[PosIndex]; for (var ClassPos = 0, ClassLen = DocPos.length; ClassPos < ClassLen; ++ClassPos) { var _Pos = DocPos[ClassPos]; if (Class === _Pos.Class && undefined !== _Pos.Position) { if (_Pos.Position > Pos + Count) { _Pos.Position -= Count; } else if (_Pos.Position >= Pos) { if (Class instanceof AscCommonWord.CTable) { _Pos.Position = Pos; if (DocPos[ClassPos + 1] && DocPos[ClassPos + 1].Class instanceof AscCommonWord.CTableRow && undefined !== DocPos[ClassPos + 1].Position && Class.Content[Pos]) { DocPos[ClassPos + 1].Position = Math.max(0, Math.min(DocPos[ClassPos + 1].Position, Class.Content.length - 1)); } } else { // Элемент, в котором находится наша позиция, удаляется. Ставим специальную отметку об этом. _Pos.Position = Pos; _Pos.Deleted = true; } } break; } } } }; CDocumentPositionsManager.prototype.OnStart_SplitRun = function(SplitRun, SplitPos) { this.m_aDocumentPositionsSplit = []; for (var PosIndex = 0, PosCount = this.m_aDocumentPositions.length; PosIndex < PosCount; ++PosIndex) { var DocPos = this.m_aDocumentPositions[PosIndex]; for (var ClassPos = 0, ClassLen = DocPos.length; ClassPos < ClassLen; ++ClassPos) { var _Pos = DocPos[ClassPos]; if (SplitRun === _Pos.Class && _Pos.Position && _Pos.Position >= SplitPos) { this.m_aDocumentPositionsSplit.push({DocPos : DocPos, NewRunPos : _Pos.Position - SplitPos}); } } } }; CDocumentPositionsManager.prototype.OnEnd_SplitRun = function(NewRun) { if (!NewRun) return; for (var PosIndex = 0, PosCount = this.m_aDocumentPositionsSplit.length; PosIndex < PosCount; ++PosIndex) { var NewDocPos = []; NewDocPos.push({Class : NewRun, Position : this.m_aDocumentPositionsSplit[PosIndex].NewRunPos}); this.m_aDocumentPositions.push(NewDocPos); this.m_aDocumentPositionsMap.push({StartPos : this.m_aDocumentPositionsSplit[PosIndex].DocPos, EndPos : NewDocPos}); } }; CDocumentPositionsManager.prototype.Update_DocumentPosition = function(DocPos) { // Смотрим куда мапится заданная позиция var NewDocPos = DocPos; for (var PosIndex = 0, PosCount = this.m_aDocumentPositionsMap.length; PosIndex < PosCount; ++PosIndex) { if (this.m_aDocumentPositionsMap[PosIndex].StartPos === NewDocPos) NewDocPos = this.m_aDocumentPositionsMap[PosIndex].EndPos; } // Нашли результирующую позицию. Проверим является ли она валидной для документа. if (NewDocPos !== DocPos && NewDocPos.length === 1 && NewDocPos[0].Class instanceof AscCommonWord.ParaRun) { var Run = NewDocPos[0].Class; var Para = Run.GetParagraph(); if (AscCommonWord.CanUpdatePosition(Para, Run)) { DocPos.length = 0; DocPos.push({Class : Run, Position : NewDocPos[0].Position}); Run.GetDocumentPositionFromObject(DocPos); } } // Возможно ран с позицией переместился в другой класс else if (DocPos.length > 0 && DocPos[DocPos.length - 1].Class instanceof AscCommonWord.ParaRun) { var Run = DocPos[DocPos.length - 1].Class; var RunPos = DocPos[DocPos.length - 1].Position; var Para = Run.GetParagraph(); if (AscCommonWord.CanUpdatePosition(Para, Run)) { DocPos.length = 0; DocPos.push({Class : Run, Position : RunPos}); Run.GetDocumentPositionFromObject(DocPos); } } }; CDocumentPositionsManager.prototype.Remove_DocumentPosition = function(DocPos) { for (var Pos = 0, Count = this.m_aDocumentPositions.length; Pos < Count; ++Pos) { if (this.m_aDocumentPositions[Pos] === DocPos) { this.m_aDocumentPositions.splice(Pos, 1); return; } } }; //--------------------------------------------------------export---------------------------------------------------- window['AscCommon'] = window['AscCommon'] || {}; window['AscCommon'].FOREIGN_CURSOR_LABEL_HIDETIME = FOREIGN_CURSOR_LABEL_HIDETIME; window['AscCommon'].CCollaborativeChanges = CCollaborativeChanges; window['AscCommon'].CCollaborativeEditingBase = CCollaborativeEditingBase; window['AscCommon'].CDocumentPositionsManager = CDocumentPositionsManager; })(window); /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; /** * * @constructor * @extends {AscCommon.CCollaborativeEditingBase} */ function CWordCollaborativeEditing() { AscCommon.CCollaborativeEditingBase.call(this); this.m_oLogicDocument = null; this.m_aDocumentPositions = new AscCommon.CDocumentPositionsManager(); this.m_aForeignCursorsPos = new AscCommon.CDocumentPositionsManager(); this.m_aForeignCursors = {}; this.m_aForeignCursorsXY = {}; this.m_aForeignCursorsToShow = {}; this.m_aSkipContentControlsOnCheckEditingLock = {}; } CWordCollaborativeEditing.prototype = Object.create(AscCommon.CCollaborativeEditingBase.prototype); CWordCollaborativeEditing.prototype.constructor = CWordCollaborativeEditing; CWordCollaborativeEditing.prototype.Clear = function() { AscCommon.CCollaborativeEditingBase.prototype.Clear.apply(this, arguments); this.Remove_AllForeignCursors(); }; CWordCollaborativeEditing.prototype.Send_Changes = function(IsUserSave, AdditionalInfo, IsUpdateInterface, isAfterAskSave) { // Пересчитываем позиции this.Refresh_DCChanges(); // Генерируем свои изменения var StartPoint = ( null === AscCommon.History.SavedIndex ? 0 : AscCommon.History.SavedIndex + 1 ); var LastPoint = -1; if (this.m_nUseType <= 0) { // (ненужные точки предварительно удаляем) AscCommon.History.Clear_Redo(); LastPoint = AscCommon.History.Points.length - 1; } else { LastPoint = AscCommon.History.Index; } // Просчитаем сколько изменений на сервер пересылать не надо var SumIndex = 0; var StartPoint2 = Math.min(StartPoint, LastPoint + 1); for (var PointIndex = 0; PointIndex < StartPoint2; PointIndex++) { var Point = AscCommon.History.Points[PointIndex]; SumIndex += Point.Items.length; } var deleteIndex = ( null === AscCommon.History.SavedIndex ? null : SumIndex ); var aChanges = [], aChanges2 = []; for (var PointIndex = StartPoint; PointIndex <= LastPoint; PointIndex++) { var Point = AscCommon.History.Points[PointIndex]; AscCommon.History.Update_PointInfoItem(PointIndex, StartPoint, LastPoint, SumIndex, deleteIndex); for (var Index = 0; Index < Point.Items.length; Index++) { var Item = Point.Items[Index]; var oChanges = new AscCommon.CCollaborativeChanges(); oChanges.Set_FromUndoRedo(Item.Class, Item.Data, Item.Binary); aChanges2.push(Item.Data); aChanges.push(oChanges.m_pData); } } var UnlockCount = 0; // Пока пользователь сидит один, мы не чистим его локи до тех пор пока не зайдет второй var bCollaborative = this.getCollaborativeEditing(); if (bCollaborative) { UnlockCount = this.m_aNeedUnlock.length; this.Release_Locks(); var UnlockCount2 = this.m_aNeedUnlock2.length; for (var Index = 0; Index < UnlockCount2; Index++) { var Class = this.m_aNeedUnlock2[Index]; Class.Lock.Set_Type(AscCommon.locktype_None, false); editor.CoAuthoringApi.releaseLocks(Class.Get_Id()); } this.m_aNeedUnlock.length = 0; this.m_aNeedUnlock2.length = 0; } var deleteIndex = ( null === AscCommon.History.SavedIndex ? null : SumIndex ); if (0 < aChanges.length || null !== deleteIndex) { this.private_OnSendOwnChanges(aChanges2, deleteIndex); editor.CoAuthoringApi.saveChanges(aChanges, deleteIndex, AdditionalInfo, editor.canUnlockDocument2, bCollaborative); AscCommon.History.CanNotAddChanges = true; } else { editor.CoAuthoringApi.unLockDocument(!!isAfterAskSave, editor.canUnlockDocument2, null, bCollaborative); } editor.canUnlockDocument2 = false; if (-1 === this.m_nUseType) { // Чистим Undo/Redo только во время совместного редактирования AscCommon.History.Clear(); AscCommon.History.SavedIndex = null; } else if (0 === this.m_nUseType) { // Чистим Undo/Redo только во время совместного редактирования AscCommon.History.Clear(); AscCommon.History.SavedIndex = null; this.m_nUseType = 1; } else { // Обновляем точку последнего сохранения в истории AscCommon.History.Reset_SavedIndex(IsUserSave); } if (false !== IsUpdateInterface) { // Обновляем интерфейс editor.WordControl.m_oLogicDocument.Document_UpdateInterfaceState(); } // TODO: Пока у нас обнуляется история на сохранении нужно обновлять Undo/Redo editor.WordControl.m_oLogicDocument.Document_UpdateUndoRedoState(); // Свои локи не проверяем. Когда все пользователи выходят, происходит перерисовка и свои локи уже не рисуются. if (0 !== UnlockCount || 1 !== this.m_nUseType) { // Перерисовываем документ (для обновления локов) editor.WordControl.m_oLogicDocument.DrawingDocument.ClearCachePages(); editor.WordControl.m_oLogicDocument.DrawingDocument.FirePaint(); } editor.WordControl.m_oLogicDocument.Check_CompositeInputRun(); }; CWordCollaborativeEditing.prototype.Release_Locks = function() { var UnlockCount = this.m_aNeedUnlock.length; for (var Index = 0; Index < UnlockCount; Index++) { var CurLockType = this.m_aNeedUnlock[Index].Lock.Get_Type(); if (AscCommon.locktype_Other3 != CurLockType && AscCommon.locktype_Other != CurLockType) { this.m_aNeedUnlock[Index].Lock.Set_Type(AscCommon.locktype_None, false); if (this.m_aNeedUnlock[Index] instanceof AscCommonWord.CHeaderFooterController) editor.sync_UnLockHeaderFooters(); else if (this.m_aNeedUnlock[Index] instanceof AscCommonWord.CDocument) editor.sync_UnLockDocumentProps(); else if (this.m_aNeedUnlock[Index] instanceof AscCommon.CComment) editor.sync_UnLockComment(this.m_aNeedUnlock[Index].Get_Id()); else if (this.m_aNeedUnlock[Index] instanceof AscCommonWord.CGraphicObjects) editor.sync_UnLockDocumentSchema(); } else if (AscCommon.locktype_Other3 === CurLockType) { this.m_aNeedUnlock[Index].Lock.Set_Type(AscCommon.locktype_Other, false); } } }; CWordCollaborativeEditing.prototype.OnEnd_Load_Objects = function() { // Данная функция вызывается, когда загрузились внешние объекты (картинки и шрифты) // Снимаем лок AscCommon.CollaborativeEditing.Set_GlobalLock(false); AscCommon.CollaborativeEditing.Set_GlobalLockSelection(false); // Запускаем полный пересчет документа var LogicDocument = editor.WordControl.m_oLogicDocument; var RecalculateData = { Inline : { Pos : 0, PageNum : 0 }, Flow : [], HdrFtr : [], Drawings : { All : true, Map : {} } }; LogicDocument.Reset_RecalculateCache(); LogicDocument.Recalculate(false, false, RecalculateData); LogicDocument.Document_UpdateSelectionState(); LogicDocument.Document_UpdateInterfaceState(); editor.sync_EndAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.ApplyChanges); }; CWordCollaborativeEditing.prototype.Check_MergeData = function() { var LogicDocument = editor.WordControl.m_oLogicDocument; LogicDocument.Comments.Check_MergeData(); }; CWordCollaborativeEditing.prototype.OnStart_CheckLock = function() { this.m_aCheckLocks.length = 0; }; CWordCollaborativeEditing.prototype.Add_CheckLock = function(oItem) { this.m_aCheckLocks.push(oItem); }; CWordCollaborativeEditing.prototype.OnEnd_CheckLock = function(DontLockInFastMode) { var aIds = []; var Count = this.m_aCheckLocks.length; for (var Index = 0; Index < Count; Index++) { var oItem = this.m_aCheckLocks[Index]; if (true === oItem) // сравниваем по значению и типу обязательно return true; else if (false !== oItem) aIds.push(oItem); } if (true === DontLockInFastMode && true === this.Is_Fast()) return false; if (aIds.length > 0) { // Отправляем запрос на сервер со списком Id editor.CoAuthoringApi.askLock(aIds, this.OnCallback_AskLock); // Ставим глобальный лок, только во время совместного редактирования if (-1 === this.m_nUseType) { this.Set_GlobalLock(true); } else { // Пробегаемся по массиву и проставляем, что залочено нами var Count = this.m_aCheckLocks.length; for (var Index = 0; Index < Count; Index++) { var oItem = this.m_aCheckLocks[Index]; if (true !== oItem && false !== oItem) // сравниваем по значению и типу обязательно { var Class = AscCommon.g_oTableId.Get_ById(oItem); if (null != Class) { Class.Lock.Set_Type(AscCommon.locktype_Mine, false); this.Add_Unlock2(Class); } } } this.m_aCheckLocks.length = 0; } } return false; }; CWordCollaborativeEditing.prototype.OnCallback_AskLock = function(result) { var oThis = AscCommon.CollaborativeEditing; var oEditor = editor; if (true === oThis.Get_GlobalLock()) { // Здесь проверяем есть ли длинная операция, если она есть, то до ее окончания нельзя делать // Undo, иначе точка истории уберется, а изменения допишутся в предыдущую. if (false == oEditor.checkLongActionCallback(oThis.OnCallback_AskLock, result)) return; // Снимаем глобальный лок oThis.Set_GlobalLock(false); if (result["lock"]) { // Пробегаемся по массиву и проставляем, что залочено нами var Count = oThis.m_aCheckLocks.length; for (var Index = 0; Index < Count; Index++) { var oItem = oThis.m_aCheckLocks[Index]; if (true !== oItem && false !== oItem) // сравниваем по значению и типу обязательно { var Class = AscCommon.g_oTableId.Get_ById(oItem); if (null != Class) { Class.Lock.Set_Type(AscCommon.locktype_Mine); oThis.Add_Unlock2(Class); } } } } else if (result["error"]) { // Если у нас началось редактирование диаграммы, а вернулось, что ее редактировать нельзя, // посылаем сообщение о закрытии редактора диаграмм. if (true === oEditor.isChartEditor) oEditor.sync_closeChartEditor(); // Делаем откат на 1 шаг назад и удаляем из Undo/Redo эту последнюю точку oEditor.WordControl.m_oLogicDocument.Document_Undo(); AscCommon.History.Clear_Redo(); } oEditor.isChartEditor = false; } }; CWordCollaborativeEditing.prototype.AddContentControlForSkippingOnCheckEditingLock = function(oContentControl) { this.m_aSkipContentControlsOnCheckEditingLock[oContentControl.GetId()] = oContentControl; }; CWordCollaborativeEditing.prototype.RemoveContentControlForSkippingOnCheckEditingLock = function(oContentControl) { delete this.m_aSkipContentControlsOnCheckEditingLock[oContentControl.GetId()]; }; CWordCollaborativeEditing.prototype.IsNeedToSkipContentControlOnCheckEditingLock = function(oContentControl) { if (this.m_aSkipContentControlsOnCheckEditingLock[oContentControl.GetId()] === oContentControl) return true; return false; }; //---------------------------------------------------------------------------------------------------------------------- // Функции для работы с сохраненными позициями документа. //---------------------------------------------------------------------------------------------------------------------- CWordCollaborativeEditing.prototype.Clear_DocumentPositions = function() { this.m_aDocumentPositions.Clear_DocumentPositions(); }; CWordCollaborativeEditing.prototype.Add_DocumentPosition = function(DocumentPos) { this.m_aDocumentPositions.Add_DocumentPosition(DocumentPos); }; CWordCollaborativeEditing.prototype.Add_ForeignCursor = function(UserId, DocumentPos, UserShortId) { this.m_aForeignCursorsPos.Remove_DocumentPosition(this.m_aCursorsToUpdate[UserId]); this.m_aForeignCursors[UserId] = DocumentPos; this.m_aForeignCursorsPos.Add_DocumentPosition(DocumentPos); this.m_aForeignCursorsId[UserId] = UserShortId; }; CWordCollaborativeEditing.prototype.Remove_ForeignCursor = function(UserId) { this.m_aForeignCursorsPos.Remove_DocumentPosition(this.m_aCursorsToUpdate[UserId]); delete this.m_aForeignCursors[UserId]; var DrawingDocument = this.m_oLogicDocument.DrawingDocument; DrawingDocument.Collaborative_RemoveTarget(UserId); this.Remove_ForeignCursorXY(UserId); this.Remove_ForeignCursorToShow(UserId); }; CWordCollaborativeEditing.prototype.Remove_AllForeignCursors = function() { for (var UserId in this.m_aForeignCursors) { this.Remove_ForeignCursor(UserId); } }; CWordCollaborativeEditing.prototype.RemoveMyCursorFromOthers = function() { // Удаляем свой курсор у других пользователей this.m_oLogicDocument.Api.CoAuthoringApi.sendCursor(""); }; CWordCollaborativeEditing.prototype.Update_DocumentPositionsOnAdd = function(Class, Pos) { this.m_aDocumentPositions.Update_DocumentPositionsOnAdd(Class, Pos); this.m_aForeignCursorsPos.Update_DocumentPositionsOnAdd(Class, Pos); }; CWordCollaborativeEditing.prototype.Update_DocumentPositionsOnRemove = function(Class, Pos, Count) { this.m_aDocumentPositions.Update_DocumentPositionsOnRemove(Class, Pos, Count); this.m_aForeignCursorsPos.Update_DocumentPositionsOnRemove(Class, Pos, Count); }; CWordCollaborativeEditing.prototype.OnStart_SplitRun = function(SplitRun, SplitPos) { this.m_aDocumentPositions.OnStart_SplitRun(SplitRun, SplitPos); this.m_aForeignCursorsPos.OnStart_SplitRun(SplitRun, SplitPos); }; CWordCollaborativeEditing.prototype.OnEnd_SplitRun = function(NewRun) { this.m_aDocumentPositions.OnEnd_SplitRun(NewRun); this.m_aForeignCursorsPos.OnEnd_SplitRun(NewRun); }; CWordCollaborativeEditing.prototype.Update_DocumentPosition = function(DocPos) { this.m_aDocumentPositions.Update_DocumentPosition(DocPos); }; CWordCollaborativeEditing.prototype.Update_ForeignCursorsPositions = function() { for (var UserId in this.m_aForeignCursors) { var DocPos = this.m_aForeignCursors[UserId]; if (!DocPos || DocPos.length <= 0) continue; this.m_aForeignCursorsPos.Update_DocumentPosition(DocPos); var Run = DocPos[DocPos.length - 1].Class; var InRunPos = DocPos[DocPos.length - 1].Position; this.Update_ForeignCursorPosition(UserId, Run, InRunPos, false); } }; CWordCollaborativeEditing.prototype.Update_ForeignCursorPosition = function(UserId, Run, InRunPos, isRemoveLabel) { var DrawingDocument = this.m_oLogicDocument.DrawingDocument; if (!(Run instanceof AscCommonWord.ParaRun)) return; var Paragraph = Run.GetParagraph(); if (!Paragraph) { DrawingDocument.Collaborative_RemoveTarget(UserId); return; } var ParaContentPos = Paragraph.Get_PosByElement(Run); if (!ParaContentPos) { DrawingDocument.Collaborative_RemoveTarget(UserId); return; } ParaContentPos.Update(InRunPos, ParaContentPos.Get_Depth() + 1); var XY = Paragraph.Get_XYByContentPos(ParaContentPos); if (XY && XY.Height > 0.001) { var ShortId = this.m_aForeignCursorsId[UserId] ? this.m_aForeignCursorsId[UserId] : UserId; DrawingDocument.Collaborative_UpdateTarget(UserId, ShortId, XY.X, XY.Y, XY.Height, XY.PageNum, Paragraph.Get_ParentTextTransform()); this.Add_ForeignCursorXY(UserId, XY.X, XY.Y, XY.PageNum, XY.Height, Paragraph, isRemoveLabel); if (true === this.m_aForeignCursorsToShow[UserId]) { this.Show_ForeignCursorLabel(UserId); this.Remove_ForeignCursorToShow(UserId); } } else { DrawingDocument.Collaborative_RemoveTarget(UserId); this.Remove_ForeignCursorXY(UserId); this.Remove_ForeignCursorToShow(UserId); } }; CWordCollaborativeEditing.prototype.Check_ForeignCursorsLabels = function(X, Y, PageIndex) { if (!this.m_oLogicDocument) return; var DrawingDocument = this.m_oLogicDocument.Get_DrawingDocument(); var Px7 = DrawingDocument.GetMMPerDot(7); var Px3 = DrawingDocument.GetMMPerDot(3); for (var UserId in this.m_aForeignCursorsXY) { var Cursor = this.m_aForeignCursorsXY[UserId]; if ((true === Cursor.Transform && Cursor.PageIndex === PageIndex && Cursor.X0 - Px3 < X && X < Cursor.X1 + Px3 && Cursor.Y0 - Px3 < Y && Y < Cursor.Y1 + Px3) || (Math.abs(X - Cursor.X) < Px7 && Cursor.Y - Px3 < Y && Y < Cursor.Y + Cursor.H + Px3 && Cursor.PageIndex === PageIndex)) { this.Show_ForeignCursorLabel(UserId); } } }; CWordCollaborativeEditing.prototype.Show_ForeignCursorLabel = function(UserId) { if (!this.m_oLogicDocument) return; var Api = this.m_oLogicDocument.Get_Api(); var DrawingDocument = this.m_oLogicDocument.Get_DrawingDocument(); if (!this.m_aForeignCursorsXY[UserId]) return; var Cursor = this.m_aForeignCursorsXY[UserId]; if (Cursor.ShowId) clearTimeout(Cursor.ShowId); Cursor.ShowId = setTimeout(function() { Cursor.ShowId = null; Api.sync_HideForeignCursorLabel(UserId); }, AscCommon.FOREIGN_CURSOR_LABEL_HIDETIME); var UserShortId = this.m_aForeignCursorsId[UserId] ? this.m_aForeignCursorsId[UserId] : UserId; var Color = AscCommon.getUserColorById(UserShortId, null, true); var Coords = DrawingDocument.Collaborative_GetTargetPosition(UserId); if (!Color || !Coords) return; this.Update_ForeignCursorLabelPosition(UserId, Coords.X, Coords.Y, Color); }; CWordCollaborativeEditing.prototype.Add_ForeignCursorToShow = function(UserId) { this.m_aForeignCursorsToShow[UserId] = true; }; CWordCollaborativeEditing.prototype.Remove_ForeignCursorToShow = function(UserId) { delete this.m_aForeignCursorsToShow[UserId]; }; CWordCollaborativeEditing.prototype.Add_ForeignCursorXY = function(UserId, X, Y, PageIndex, H, Paragraph, isRemoveLabel) { var Cursor; if (!this.m_aForeignCursorsXY[UserId]) { Cursor = {X: X, Y: Y, H: H, PageIndex: PageIndex, Transform: false, ShowId: null}; this.m_aForeignCursorsXY[UserId] = Cursor; } else { Cursor = this.m_aForeignCursorsXY[UserId]; if (Cursor.ShowId) { if (true === isRemoveLabel) { var Api = this.m_oLogicDocument.Get_Api(); clearTimeout(Cursor.ShowId); Cursor.ShowId = null; Api.sync_HideForeignCursorLabel(UserId); } } else { Cursor.ShowId = null; } Cursor.X = X; Cursor.Y = Y; Cursor.PageIndex = PageIndex; Cursor.H = H; } var Transform = Paragraph.Get_ParentTextTransform(); if (Transform) { Cursor.Transform = true; var X0 = Transform.TransformPointX(Cursor.X, Cursor.Y); var Y0 = Transform.TransformPointY(Cursor.X, Cursor.Y); var X1 = Transform.TransformPointX(Cursor.X, Cursor.Y + Cursor.H); var Y1 = Transform.TransformPointY(Cursor.X, Cursor.Y + Cursor.H); Cursor.X0 = Math.min(X0, X1); Cursor.Y0 = Math.min(Y0, Y1); Cursor.X1 = Math.max(X0, X1); Cursor.Y1 = Math.max(Y0, Y1); } else { Cursor.Transform = false; } }; CWordCollaborativeEditing.prototype.Remove_ForeignCursorXY = function(UserId) { if (this.m_aForeignCursorsXY[UserId]) { if (this.m_aForeignCursorsXY[UserId].ShowId) { var Api = this.m_oLogicDocument.Get_Api(); Api.sync_HideForeignCursorLabel(UserId); clearTimeout(this.m_aForeignCursorsXY[UserId].ShowId); } delete this.m_aForeignCursorsXY[UserId]; } }; CWordCollaborativeEditing.prototype.Update_ForeignCursorLabelPosition = function(UserId, X, Y, Color) { if (!this.m_oLogicDocument) return; var Cursor = this.m_aForeignCursorsXY[UserId]; if (!Cursor || !Cursor.ShowId) return; var Api = this.m_oLogicDocument.Get_Api(); Api.sync_ShowForeignCursorLabel(UserId, X, Y, Color); }; CWordCollaborativeEditing.prototype.private_RecalculateDocument = function(oRecalcData){ this.m_oLogicDocument.Recalculate(false, false, oRecalcData); }; //--------------------------------------------------------export---------------------------------------------------- window['AscCommon'] = window['AscCommon'] || {}; window['AscCommon'].CWordCollaborativeEditing = CWordCollaborativeEditing; window['AscCommon'].CollaborativeEditing = new CWordCollaborativeEditing(); /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; (/** * @param {Window} window * @param {undefined} undefined */ function (window, undefined) { /** @constructor */ function CDocumentMacros() { this.Id = "_macrosGlobalId";//AscCommon.g_oIdCounter.Get_NewId(); this.Lock = new AscCommon.CLock(); this.Data = ""; AscCommon.g_oTableId.Add(this, this.Id); } CDocumentMacros.prototype.SetData = function(sData) { AscCommon.History.Add(new CChangesDocumentMacrosData(this, this.Data, sData)); this.Data = sData; }; CDocumentMacros.prototype.GetData = function() { return this.Data; }; CDocumentMacros.prototype.Get_Id = function() { return this.Id; }; CDocumentMacros.prototype.CheckLock = function() { this.Lock.Check(this.Id); }; CDocumentMacros.prototype.Write_ToBinary2 = function(Writer) { Writer.WriteLong(AscDFH.historyitem_type_DocumentMacros); // String2 : Id // String2 : Data Writer.WriteString2("" + this.Id); Writer.WriteString2(this.Data); }; CDocumentMacros.prototype.Read_FromBinary2 = function(Reader) { // String2 : Id // String2 : Data this.Id = Reader.GetString2(); this.Data = Reader.GetString2(); }; CDocumentMacros.prototype.Refresh_RecalcData = function() { }; AscDFH.changesFactory[AscDFH.historyitem_DocumentMacros_Data] = CChangesDocumentMacrosData; AscDFH.changesRelationMap[AscDFH.historyitem_DocumentMacros_Data] = [AscDFH.historyitem_DocumentMacros_Data]; /** * @constructor * @extends {AscDFH.CChangesBaseStringProperty} */ function CChangesDocumentMacrosData(Class, Old, New) { AscDFH.CChangesBaseStringProperty.call(this, Class, Old, New); } CChangesDocumentMacrosData.prototype = Object.create(AscDFH.CChangesBaseStringProperty.prototype); CChangesDocumentMacrosData.prototype.constructor = CChangesDocumentMacrosData; CChangesDocumentMacrosData.prototype.Type = AscDFH.historyitem_DocumentMacros_Data; CChangesDocumentMacrosData.prototype.private_SetValue = function(Value) { this.Class.Data = Value; }; window['AscCommon'] = window['AscCommon'] || {}; window["AscCommon"].CDocumentMacros = CDocumentMacros; })(window); /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; (function(window, undefined) { var prot; // Import var c_oEditorId = AscCommon.c_oEditorId; var c_oCloseCode = AscCommon.c_oCloseCode; var c_oAscError = Asc.c_oAscError; var c_oAscAsyncAction = Asc.c_oAscAsyncAction; var c_oAscAsyncActionType = Asc.c_oAscAsyncActionType; /** @constructor */ function baseEditorsApi(config, editorId) { if (window["AscDesktopEditor"]) window["AscDesktopEditor"]["CreateEditorApi"](); this.editorId = editorId; this.isLoadFullApi = false; this.openResult = null; this.HtmlElementName = config['id-view'] || ''; this.HtmlElement = null; this.isMobileVersion = (config['mobile'] === true); this.isEmbedVersion = (config['embedded'] === true); this.isViewMode = false; this.restrictions = Asc.c_oAscRestrictionType.None; this.FontLoader = null; this.ImageLoader = null; this.LoadedObject = null; this.DocumentType = 0; // 0 - empty, 1 - test, 2 - document (from json) this.DocInfo = null; this.documentId = undefined; this.documentUserId = undefined; this.documentUrl = "null"; this.documentUrlChanges = null; this.documentCallbackUrl = undefined; // Ссылка для отправления информации о документе this.documentFormat = "null"; this.documentTitle = "null"; this.documentFormatSave = Asc.c_oAscFileType.UNKNOWN; this.documentOpenOptions = undefined; // Опции при открытии (пока только опции для CSV) // Тип состояния на данный момент (сохранение, открытие или никакое) this.advancedOptionsAction = AscCommon.c_oAscAdvancedOptionsAction.None; // Тип скачивания файлы(download или event).нужен для txt, csv. запоминаем на asc_DownloadAs используем asc_setAdvancedOptions this.downloadType = AscCommon.DownloadType.None; this.OpenDocumentProgress = new AscCommon.COpenProgress(); var sProtocol = window.location.protocol; this.documentOrigin = ((sProtocol && '' !== sProtocol) ? sProtocol + '//' : '') + window.location.host; // for presentation theme url this.documentPathname = window.location.pathname; // for presentation theme url // Переменная отвечает, получили ли мы ответ с сервера совместного редактирования this.ServerIdWaitComplete = false; // Long action this.IsLongActionCurrent = 0; this.LongActionCallbacks = []; this.LongActionCallbacksParams = []; // AutoSave this.autoSaveGap = 0; // Интервал автосохранения (0 - означает, что автосохранения нет) в милесекундах this.lastSaveTime = null; // Время последнего сохранения this.autoSaveGapFast = 2000; // Интервал быстрого автосохранения (когда человек один) - 2 сек. this.autoSaveGapSlow = 10 * 60 * 1000; // Интервал медленного автосохранения (когда совместно) - 10 минут this.intervalWaitAutoSave = 1000; // Unlock document this.canUnlockDocument = false; this.canUnlockDocument2 = false; // Дублирующий флаг, только для saveChanges или unLockDocument this.canStartCoAuthoring = false; this.isDocumentCanSave = false; // Флаг, говорит о возможности сохранять документ (активна кнопка save или нет) // translate manager this.translateManager = AscCommon.translateManager.init(config['translate']); // Chart this.chartPreviewManager = null; this.textArtPreviewManager = null; this.shapeElementId = null; // Режим вставки диаграмм в редакторе документов this.isChartEditor = false; this.isOpenedChartFrame = false; this.MathMenuLoad = false; // CoAuthoring and Chat this.User = undefined; this.CoAuthoringApi = new AscCommon.CDocsCoApi(); this.isCoAuthoringEnable = true; // Массив lock-ов, которые были на открытии документа this.arrPreOpenLocksObjects = []; // Spell Checking this.SpellCheckUrl = ''; // Ссылка сервиса для проверки орфографии // Результат получения лицензии this.licenseResult = null; // Подключились ли уже к серверу this.isOnFirstConnectEnd = false; // Получили ли лицензию this.isOnLoadLicense = false; // Переменная, которая отвечает, послали ли мы окончание открытия документа this.isDocumentLoadComplete = false; // Переменная, которая отвечает, послали ли мы окончание открытия документа this.isPreOpenLocks = true; this.isApplyChangesOnOpenEnabled = true; this.canSave = true; // Флаг нужен чтобы не происходило сохранение пока не завершится предыдущее сохранение this.IsUserSave = false; // Флаг, контролирующий сохранение было сделано пользователем или нет (по умолчанию - нет) this.isForceSaveOnUserSave = false; this.forceSaveButtonTimeout = null; this.forceSaveButtonContinue = false; this.forceSaveTimeoutTimeout = null; this.disconnectOnSave = null; this.forceSaveUndoRequest = false; // Флаг нужен, чтобы мы знали, что данное сохранение пришло по запросу Undo в совместке // Version History this.VersionHistory = null; // Объект, который отвечает за точку в списке версий //Флаги для применения свойств через слайдеры this.noCreatePoint = false; this.exucuteHistory = false; this.exucuteHistoryEnd = false; this.selectSearchingResults = false; this.isSendStandartTextures = false; this.tmpFocus = null; this.fCurCallback = null; this.pluginsManager = null; this.isLockTargetUpdate = false; this.lastWorkTime = 0; this.signatures = []; this.currentPassword = ""; this.macros = null; this.openFileCryptBinary = null; this.copyOutEnabled = (config['copyoutenabled'] !== false); //config['watermark_on_draw'] = window.TEST_WATERMARK_STRING; this.watermarkDraw = config['watermark_on_draw'] ? new AscCommon.CWatermarkOnDraw(config['watermark_on_draw']) : null; return this; } baseEditorsApi.prototype._init = function() { var t = this; //Asc.editor = Asc['editor'] = AscCommon['editor'] = AscCommon.editor = this; // ToDo сделать это! this.HtmlElement = document.getElementById(this.HtmlElementName); // init OnMessage AscCommon.InitOnMessage(function(error, url) { if (c_oAscError.ID.No !== error) { t.sendEvent("asc_onError", error, c_oAscError.Level.NoCritical); } else { t._addImageUrl([url]); } t.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.UploadImage); }); AscCommon.loadSdk(this._editorNameById(), function() { t.isLoadFullApi = true; t._onEndLoadSdk(); t.onEndLoadDocInfo(); }, function(err) { t.sendEvent("asc_onError", Asc.c_oAscError.ID.LoadingScriptError, c_oAscError.Level.Critical); }); var oldOnError = window.onerror; window.onerror = function(errorMsg, url, lineNumber, column, errorObj) { var msg = 'Error: ' + errorMsg + ' Script: ' + url + ' Line: ' + lineNumber + ':' + column + ' userAgent: ' + (navigator.userAgent || navigator.vendor || window.opera) + ' platform: ' + navigator.platform + ' isLoadFullApi: ' + t.isLoadFullApi + ' isDocumentLoadComplete: ' + t.isDocumentLoadComplete + ' StackTrace: ' + (errorObj ? errorObj.stack : ""); t.CoAuthoringApi.sendChangesError(msg); //send only first error to reduce number of requests. also following error may be consequences of first window.onerror = oldOnError; if (oldOnError) { return oldOnError.apply(this, arguments); } else { return false; } } }; baseEditorsApi.prototype._editorNameById = function() { var res = ''; switch (this.editorId) { case c_oEditorId.Word: res = 'word'; break; case c_oEditorId.Spreadsheet: res = 'cell'; break; case c_oEditorId.Presentation: res = 'slide'; break; } return res; }; baseEditorsApi.prototype.getEditorId = function() { return this.editorId; }; baseEditorsApi.prototype.asc_GetFontThumbnailsPath = function() { return '../Common/Images/'; }; baseEditorsApi.prototype.asc_getDocumentName = function() { return this.documentTitle; }; baseEditorsApi.prototype.asc_setDocInfo = function(oDocInfo) { var oldInfo = this.DocInfo; if (oDocInfo) { this.DocInfo = oDocInfo; } if (this.DocInfo) { this.documentId = this.DocInfo.get_Id(); this.documentUserId = this.DocInfo.get_UserId(); this.documentUrl = this.DocInfo.get_Url(); this.documentTitle = this.DocInfo.get_Title(); this.documentFormat = this.DocInfo.get_Format(); this.documentCallbackUrl = this.DocInfo.get_CallbackUrl(); this.documentOpenOptions = this.DocInfo.asc_getOptions(); this.User = new AscCommon.asc_CUser(); this.User.setId(this.DocInfo.get_UserId()); this.User.setUserName(this.DocInfo.get_UserName()); this.User.setFirstName(this.DocInfo.get_FirstName()); this.User.setLastName(this.DocInfo.get_LastName()); //чтобы в versionHistory был один documentId для auth и open this.CoAuthoringApi.setDocId(this.documentId); if (this.watermarkDraw) { this.watermarkDraw.CheckParams(this); } } if (AscCommon.chartMode === this.documentUrl) { this.isChartEditor = true; AscCommon.EncryptionWorker.isChartEditor = true; this.DocInfo.put_OfflineApp(true); } else if (AscCommon.offlineMode === this.documentUrl) { this.DocInfo.put_OfflineApp(true); } if (undefined !== window["AscDesktopEditor"] && !(this.DocInfo && this.DocInfo.get_OfflineApp())) { window["AscDesktopEditor"]["SetDocumentName"](this.documentTitle); } if (!this.isChartEditor && undefined !== window["AscDesktopEditor"] && undefined !== window["AscDesktopEditor"]["CryptoMode"]) { this.DocInfo.put_Encrypted(0 < window["AscDesktopEditor"]["CryptoMode"]); } if (!oldInfo) { this.onEndLoadDocInfo(); } }; baseEditorsApi.prototype.asc_enableKeyEvents = function(isEnabled, isFromInput) { }; // Copy/Past/Cut baseEditorsApi.prototype.asc_IsFocus = function(bIsNaturalFocus) { var _ret = false; if (this.WordControl.IsFocus) _ret = true; if (_ret && bIsNaturalFocus && this.WordControl.TextBoxInputFocus) _ret = false; return _ret; }; baseEditorsApi.prototype.isCopyOutEnabled = function() { return this.copyOutEnabled; }; // target pos baseEditorsApi.prototype.asc_LockTargetUpdate = function(isLock) { this.isLockTargetUpdate = isLock; }; // Просмотр PDF baseEditorsApi.prototype.isPdfViewer = function() { return false; }; // Events baseEditorsApi.prototype.sendEvent = function() { }; baseEditorsApi.prototype.SendOpenProgress = function() { this.sendEvent("asc_onOpenDocumentProgress", this.OpenDocumentProgress); }; baseEditorsApi.prototype.sync_InitEditorFonts = function(gui_fonts) { if (!this.isViewMode) { this.sendEvent("asc_onInitEditorFonts", gui_fonts); } }; baseEditorsApi.prototype.sync_StartAction = function(type, id) { this.sendEvent('asc_onStartAction', type, id); //console.log("asc_onStartAction: type = " + type + " id = " + id); if (c_oAscAsyncActionType.BlockInteraction === type) { this.incrementCounterLongAction(); } }; baseEditorsApi.prototype.sync_EndAction = function(type, id) { this.sendEvent('asc_onEndAction', type, id); //console.log("asc_onEndAction: type = " + type + " id = " + id); if (c_oAscAsyncActionType.BlockInteraction === type) { this.decrementCounterLongAction(); } }; baseEditorsApi.prototype.sync_TryUndoInFastCollaborative = function() { this.sendEvent("asc_OnTryUndoInFastCollaborative"); }; baseEditorsApi.prototype.asc_setViewMode = function() { }; baseEditorsApi.prototype.asc_setRestriction = function(val) { this.restrictions = val; }; baseEditorsApi.prototype.getViewMode = function() { return this.isViewMode; }; baseEditorsApi.prototype.canEdit = function() { return !this.isViewMode && this.restrictions === Asc.c_oAscRestrictionType.None; }; baseEditorsApi.prototype.isRestrictionForms = function() { return (this.restrictions === Asc.c_oAscRestrictionType.OnlyForms); }; baseEditorsApi.prototype.isRestrictionComments = function() { return (this.restrictions === Asc.c_oAscRestrictionType.OnlyComments); }; baseEditorsApi.prototype.isRestrictionSignatures = function() { return (this.restrictions === Asc.c_oAscRestrictionType.OnlySignatures); }; baseEditorsApi.prototype.isRestrictionView = function() { return (this.restrictions === Asc.c_oAscRestrictionType.View); }; baseEditorsApi.prototype.isLongAction = function() { return (0 !== this.IsLongActionCurrent); }; baseEditorsApi.prototype.incrementCounterLongAction = function() { ++this.IsLongActionCurrent; }; baseEditorsApi.prototype.decrementCounterLongAction = function() { this.IsLongActionCurrent--; if (this.IsLongActionCurrent < 0) { this.IsLongActionCurrent = 0; } if (!this.isLongAction()) { var _length = this.LongActionCallbacks.length; for (var i = 0; i < _length; i++) { this.LongActionCallbacks[i](this.LongActionCallbacksParams[i]); } this.LongActionCallbacks.splice(0, _length); this.LongActionCallbacksParams.splice(0, _length); } }; baseEditorsApi.prototype.checkLongActionCallback = function(_callback, _param) { if (this.isLongAction()) { this.LongActionCallbacks[this.LongActionCallbacks.length] = _callback; this.LongActionCallbacksParams[this.LongActionCallbacksParams.length] = _param; return false; } else { return true; } }; /** * Функция для загрузчика шрифтов (нужно ли грузить default шрифты). Для Excel всегда возвращаем false * @returns {boolean} */ baseEditorsApi.prototype.IsNeedDefaultFonts = function() { var res = false; switch (this.editorId) { case c_oEditorId.Word: res = !this.isPdfViewer(); break; case c_oEditorId.Presentation: res = true; break; } return res; }; baseEditorsApi.prototype.onPrint = function() { this.sendEvent("asc_onPrint"); }; // Open baseEditorsApi.prototype.asc_LoadDocument = function(versionHistory, isRepeat) { // Меняем тип состояния (на открытие) this.advancedOptionsAction = AscCommon.c_oAscAdvancedOptionsAction.Open; var rData = null; if (!(this.DocInfo && this.DocInfo.get_OfflineApp())) { rData = { "c" : 'open', "id" : this.documentId, "userid" : this.documentUserId, "format" : this.documentFormat, "url" : this.documentUrl, "title" : this.documentTitle, "nobase64" : true }; if (versionHistory) { rData["serverVersion"] = versionHistory.serverVersion; rData["closeonerror"] = versionHistory.isRequested; rData["jwt"] = versionHistory.token; //чтобы результат пришел только этому соединению, а не всем кто в документе rData["userconnectionid"] = this.CoAuthoringApi.getUserConnectionId(); } } if (versionHistory) { this.CoAuthoringApi.versionHistory(rData); } else { this.CoAuthoringApi.auth(this.getViewMode(), rData); } if (!isRepeat) { this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.Open); } if (this.DocInfo.get_Encrypted() && window["AscDesktopEditor"] && !window["AscDesktopEditor"]["IsLocalFile"](true)) { window["AscDesktopEditor"]["OpenFileCrypt"](this.DocInfo.get_Title(), this.DocInfo.get_Url(), window.openFileCryptCallback); } }; baseEditorsApi.prototype._OfflineAppDocumentStartLoad = function() { this._OfflineAppDocumentEndLoad(); }; baseEditorsApi.prototype._OfflineAppDocumentEndLoad = function() { }; baseEditorsApi.prototype._onOpenCommand = function(data) { }; baseEditorsApi.prototype._onNeedParams = function(data, opt_isPassword) { }; baseEditorsApi.prototype.asyncServerIdEndLoaded = function() { }; baseEditorsApi.prototype.asyncFontStartLoaded = function() { // здесь прокинуть евент о заморозке меню this.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.LoadFont); }; baseEditorsApi.prototype.asyncImageStartLoaded = function() { // здесь прокинуть евент о заморозке меню }; baseEditorsApi.prototype.asyncImagesDocumentStartLoaded = function() { // евент о заморозке не нужен... оно и так заморожено // просто нужно вывести информацию в статус бар (что началась загрузка картинок) }; baseEditorsApi.prototype.onDocumentContentReady = function() { var t = this; this.isDocumentLoadComplete = true; if (!window['IS_NATIVE_EDITOR']) { setInterval(function() {t._autoSave();}, 40); } this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.Open); this.sendEvent('asc_onDocumentContentReady'); if (this.editorId == c_oEditorId.Spreadsheet) this.onUpdateDocumentModified(this.asc_isDocumentModified()); }; // Save baseEditorsApi.prototype.processSavedFile = function(url, downloadType) { if (AscCommon.DownloadType.None !== downloadType) { this.sendEvent(downloadType, url, function(hasError) { }); } else { AscCommon.getFile(url); } }; baseEditorsApi.prototype.forceSave = function() { return this.CoAuthoringApi.forceSave(); }; baseEditorsApi.prototype.asc_setIsForceSaveOnUserSave = function(val) { this.isForceSaveOnUserSave = val; }; baseEditorsApi.prototype._onUpdateDocumentCanSave = function () { }; baseEditorsApi.prototype._onUpdateDocumentCanUndoRedo = function () { }; baseEditorsApi.prototype._saveCheck = function () { return false; }; // Переопределяется во всех редакторах baseEditorsApi.prototype._haveOtherChanges = function () { return false; }; baseEditorsApi.prototype._onSaveCallback = function (e) { var t = this; var nState; if (false == e["saveLock"]) { if (this.isLongAction()) { // Мы не можем в этот момент сохранять, т.к. попали в ситуацию, когда мы залочили сохранение и успели нажать вставку до ответа // Нужно снять lock с сохранения this.CoAuthoringApi.onUnSaveLock = function () { t.canSave = true; t.IsUserSave = false; t.lastSaveTime = null; if (t.canUnlockDocument) { t._unlockDocument(); } }; this.CoAuthoringApi.unSaveLock(); return; } this.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); this.canUnlockDocument2 = this.canUnlockDocument; if (this.canUnlockDocument && this.canStartCoAuthoring) { this.CoAuthoringApi.onStartCoAuthoring(true); } this.canStartCoAuthoring = false; this.canUnlockDocument = false; this._onSaveCallbackInner(); } else { nState = this.CoAuthoringApi.get_state(); if (AscCommon.ConnectionState.ClosedCoAuth === nState || AscCommon.ConnectionState.ClosedAll === nState) { // Отключаемся от сохранения, соединение потеряно this.IsUserSave = false; this.canSave = true; } else { // Если автосохранение, то не будем ждать ответа, а просто перезапустим таймер на немного if (!this.IsUserSave) { this.canSave = true; if (this.canUnlockDocument) { this._unlockDocument(); } return; } setTimeout(function() { t.CoAuthoringApi.askSaveChanges(function(event) { t._onSaveCallback(event); }); }, 1000); } } }; // Функция сохранения. Переопределяется во всех редакторах baseEditorsApi.prototype._onSaveCallbackInner = function () { }; baseEditorsApi.prototype._autoSave = function () { if (this.canSave && !this.isViewMode && (this.canUnlockDocument || 0 !== this.autoSaveGap)) { if (this.canUnlockDocument) { this.lastSaveTime = new Date(); // Check edit mode after unlock document http://bugzilla.onlyoffice.com/show_bug.cgi?id=35971 // Close cell edit without errors (isIdle = true) this.asc_Save(true, true); } else { this._autoSaveInner(); } } }; // Функция автосохранения. Переопределяется во всех редакторах baseEditorsApi.prototype._autoSaveInner = function () { }; baseEditorsApi.prototype._prepareSave = function (isIdle) { return true; }; // Unlock document when start co-authoring baseEditorsApi.prototype._unlockDocument = function () { if (this.isDocumentLoadComplete) { // Document is load this.canUnlockDocument = true; this.canStartCoAuthoring = true; if (this.canSave) { // We can only unlock with delete index this.CoAuthoringApi.unLockDocument(false, true, AscCommon.History.GetDeleteIndex()); this.startCollaborationEditing(); AscCommon.History.RemovePointsByDeleteIndex(); this._onUpdateDocumentCanSave(); this._onUpdateDocumentCanUndoRedo(); this.canStartCoAuthoring = false; this.canUnlockDocument = false; } else { // ToDo !!!! } } else { // Когда документ еще не загружен, нужно отпустить lock (при быстром открытии 2-мя пользователями) this.startCollaborationEditing(); this.CoAuthoringApi.unLockDocument(false, true); } }; // Выставление интервала автосохранения (0 - означает, что автосохранения нет) baseEditorsApi.prototype.asc_setAutoSaveGap = function(autoSaveGap) { if (typeof autoSaveGap === "number") { this.autoSaveGap = autoSaveGap * 1000; // Нам выставляют в секундах } }; // send chart message baseEditorsApi.prototype.asc_coAuthoringChatSendMessage = function(message) { this.CoAuthoringApi.sendMessage(message); }; // get chart messages baseEditorsApi.prototype.asc_coAuthoringChatGetMessages = function() { this.CoAuthoringApi.getMessages(); }; // get users, возвращается массив users baseEditorsApi.prototype.asc_coAuthoringGetUsers = function() { this.CoAuthoringApi.getUsers(); }; // get permissions baseEditorsApi.prototype.asc_getEditorPermissions = function() { this._coAuthoringInit(); }; baseEditorsApi.prototype._onEndPermissions = function() { if (this.isOnFirstConnectEnd && this.isOnLoadLicense) { this.sendEvent('asc_onGetEditorPermissions', new AscCommon.asc_CAscEditorPermissions()); } }; // CoAuthoring baseEditorsApi.prototype._coAuthoringInit = function() { var t = this; //Если User не задан, отключаем коавторинг. if (null == this.User || null == this.User.asc_getId()) { this.User = new AscCommon.asc_CUser(); this.User.setId("Unknown"); this.User.setUserName("Unknown"); } //в обычном серверном режиме портим ссылку, потому что CoAuthoring теперь имеет встроенный адрес //todo надо использовать проверку get_OfflineApp if (!(window['NATIVE_EDITOR_ENJINE'] || (this.DocInfo && this.DocInfo.get_OfflineApp())) || window['IS_NATIVE_EDITOR']) { this.CoAuthoringApi.set_url(null); } this.CoAuthoringApi.onMessage = function(e, clear) { t.sendEvent('asc_onCoAuthoringChatReceiveMessage', e, clear); }; this.CoAuthoringApi.onServerVersion = function (buildVersion, buildNumber) { t.sendEvent('asc_onServerVersion', buildVersion, buildNumber); }; this.CoAuthoringApi.onAuthParticipantsChanged = function(users, userId) { t.sendEvent("asc_onAuthParticipantsChanged", users, userId); }; this.CoAuthoringApi.onParticipantsChanged = function(users) { t.sendEvent("asc_onParticipantsChanged", users); }; this.CoAuthoringApi.onSpellCheckInit = function(e) { t.SpellCheckUrl = e; t._coSpellCheckInit(); }; this.CoAuthoringApi.onSetIndexUser = function(e) { AscCommon.g_oIdCounter.Set_UserId('' + e); }; this.CoAuthoringApi.onFirstLoadChangesEnd = function() { t.asyncServerIdEndLoaded(); }; this.CoAuthoringApi.onFirstConnect = function() { if (t.isOnFirstConnectEnd) { if (t.CoAuthoringApi.get_isAuth()) { t.CoAuthoringApi.auth(t.getViewMode(), undefined, t.isIdle()); } else { //первый запрос или ответ не дошел надо повторить открытие t.asc_LoadDocument(undefined, true); } } else { t.isOnFirstConnectEnd = true; t._onEndPermissions(); } }; this.CoAuthoringApi.onLicense = function(res) { t.licenseResult = res; t.isOnLoadLicense = true; t._onEndPermissions(); }; this.CoAuthoringApi.onLicenseChanged = function(res) { t.licenseResult = res; t.isOnLoadLicense = true; var oResult = new AscCommon.asc_CAscEditorPermissions(); oResult.setLicenseType(res); t.sendEvent('asc_onLicenseChanged', oResult); }; this.CoAuthoringApi.onWarning = function(code) { t.sendEvent('asc_onError', code || c_oAscError.ID.Warning, c_oAscError.Level.NoCritical); }; this.CoAuthoringApi.onMeta = function(data) { var newDocumentTitle = data["title"]; if (newDocumentTitle) { t.documentTitle = newDocumentTitle; if (t.DocInfo) { t.DocInfo.asc_putTitle(newDocumentTitle); } } t.sendEvent('asc_onMeta', data); }; this.CoAuthoringApi.onSession = function(data) { var code = data["code"]; var reason = data["reason"]; var interval = data["interval"]; var extendSession = true; if (c_oCloseCode.sessionIdle == code) { var idleTime = t.isIdle(); if (idleTime > interval) { extendSession = false; } else { t.CoAuthoringApi.extendSession(idleTime); } } else if (c_oCloseCode.sessionAbsolute == code) { extendSession = false; } if (!extendSession) { if (t.asc_Save(false, true)) { //enter view mode because save async t.setViewModeDisconnect(); t.disconnectOnSave = {code: code, reason: reason}; } else { t.CoAuthoringApi.disconnect(code, reason); } } }; this.CoAuthoringApi.onForceSave = function(data) { if (AscCommon.c_oAscForceSaveTypes.Button === data.type) { if (data.start) { if (null === t.forceSaveButtonTimeout && !t.forceSaveButtonContinue) { t.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.ForceSaveButton); } else { clearInterval(t.forceSaveButtonTimeout); } t.forceSaveButtonTimeout = setTimeout(function() { t.forceSaveButtonTimeout = null; if (t.forceSaveButtonContinue) { t.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); } else { t.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.ForceSaveButton); } t.forceSaveButtonContinue = false; t.sendEvent('asc_onError', Asc.c_oAscError.ID.ForceSaveButton, c_oAscError.Level.NoCritical); }, Asc.c_nMaxConversionTime); } else if (data.refuse) { if (t.forceSaveButtonContinue) { t.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); } t.forceSaveButtonContinue = false; } else { if (null !== t.forceSaveButtonTimeout) { clearInterval(t.forceSaveButtonTimeout); t.forceSaveButtonTimeout = null; if (t.forceSaveButtonContinue) { t.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); } else { t.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.ForceSaveButton); } t.forceSaveButtonContinue = false; if (!data.success) { t.sendEvent('asc_onError', Asc.c_oAscError.ID.ForceSaveButton, c_oAscError.Level.NoCritical); } } } } else { if (AscCommon.CollaborativeEditing.Is_Fast() || null !== t.forceSaveTimeoutTimeout) { if (data.start) { if (null === t.forceSaveTimeoutTimeout) { t.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.ForceSaveTimeout); } else { clearInterval(t.forceSaveTimeoutTimeout); } t.forceSaveTimeoutTimeout = setTimeout(function() { t.forceSaveTimeoutTimeout = null; t.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.ForceSaveTimeout); t.sendEvent('asc_onError', Asc.c_oAscError.ID.ForceSaveTimeout, c_oAscError.Level.NoCritical); }, Asc.c_nMaxConversionTime); } else { if (null !== t.forceSaveTimeoutTimeout) { clearInterval(t.forceSaveTimeoutTimeout); t.forceSaveTimeoutTimeout = null; t.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.ForceSaveTimeout); if (!data.success) { t.sendEvent('asc_onError', Asc.c_oAscError.ID.ForceSaveTimeout, c_oAscError.Level.NoCritical); } } } } } }; this.CoAuthoringApi.onExpiredToken = function() { t.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.Open); t.VersionHistory = null; t.sendEvent('asc_onExpiredToken'); }; this.CoAuthoringApi.onHasForgotten = function() { //todo very bad way, need rewrite var isDocumentCanSaveOld = t.isDocumentCanSave; var canSaveOld = t.canSave; t.isDocumentCanSave = true; t.canSave = false; t.sendEvent("asc_onDocumentModifiedChanged"); t.isDocumentCanSave = isDocumentCanSaveOld; t.canSave = canSaveOld; t.sendEvent("asc_onDocumentModifiedChanged"); }; /** * Event об отсоединении от сервера * @param {jQuery} e event об отсоединении с причиной * @param {Bool} isDisconnectAtAll окончательно ли отсоединяемся(true) или будем пробовать сделать reconnect(false) + сами отключились * @param {Bool} isCloseCoAuthoring */ this.CoAuthoringApi.onDisconnect = function(e, error) { if (AscCommon.ConnectionState.None === t.CoAuthoringApi.get_state()) { t.asyncServerIdEndLoaded(); } if (null != error) { t.setViewModeDisconnect(); t.sendEvent('asc_onError', error.code, error.level); } }; this.CoAuthoringApi.onDocumentOpen = function (inputWrap) { if (AscCommon.EncryptionWorker.isNeedCrypt()) { if (t.fCurCallback) { t.fCurCallback(inputWrap ? inputWrap["data"] : undefined); t.fCurCallback = null; } return; } if (inputWrap["data"]) { var input = inputWrap["data"]; switch (input["type"]) { case 'reopen': case 'open': switch (input["status"]) { case "updateversion": case "ok": var urls = input["data"]; AscCommon.g_oDocumentUrls.init(urls); if (null != urls['Editor.bin']) { if ('ok' === input["status"] || t.getViewMode()) { t._onOpenCommand(urls['Editor.bin']); } else { t.sendEvent("asc_onDocumentUpdateVersion", function () { if (t.isCoAuthoringEnable) { t.asc_coAuthoringDisconnect(); } t._onOpenCommand(urls['Editor.bin']); }) } } else { t.sendEvent("asc_onError", c_oAscError.ID.ConvertationOpenError, c_oAscError.Level.Critical); } break; case "needparams": t._onNeedParams(input["data"]); break; case "needpassword": t._onNeedParams(null, true); break; case "err": t.sendEvent("asc_onError", AscCommon.mapAscServerErrorToAscError(parseInt(input["data"]), Asc.c_oAscError.ID.ConvertationOpenError), c_oAscError.Level.Critical); break; } break; default: if (t.fCurCallback) { t.fCurCallback(input); t.fCurCallback = null; } else { t.sendEvent("asc_onError", c_oAscError.ID.Unknown, c_oAscError.Level.NoCritical); } break; } } }; this.CoAuthoringApi.onStartCoAuthoring = function (isStartEvent) { if (t.isViewMode) { return; } // На старте не нужно ничего делать if (isStartEvent) { t.startCollaborationEditing(); } else { t._unlockDocument(); } }; this.CoAuthoringApi.onEndCoAuthoring = function (isStartEvent) { if (t.canUnlockDocument) { t.canStartCoAuthoring = false; } else { t.endCollaborationEditing(); } }; this._coAuthoringInitEnd(); this.CoAuthoringApi.init(this.User, this.documentId, this.documentCallbackUrl, 'fghhfgsjdgfjs', this.editorId, this.documentFormatSave, this.DocInfo); }; baseEditorsApi.prototype._coAuthoringInitEnd = function() { }; baseEditorsApi.prototype.startCollaborationEditing = function() { }; baseEditorsApi.prototype.endCollaborationEditing = function() { }; baseEditorsApi.prototype._coAuthoringCheckEndOpenDocument = function(f) { if (this.isPreOpenLocks) { var context = this.CoAuthoringApi; var args = Array.prototype.slice.call(arguments, 1); // Пока документ еще не загружен, будем сохранять функцию и аргументы this.arrPreOpenLocksObjects.push(function() { f.apply(context, args); }); return true; } return false; }; baseEditorsApi.prototype._applyPreOpenLocks = function() { this.isPreOpenLocks = false; // Применяем все lock-и (ToDo возможно стоит пересмотреть вообще Lock-и) for (var i = 0; i < this.arrPreOpenLocksObjects.length; ++i) { this.arrPreOpenLocksObjects[i](); } this.arrPreOpenLocksObjects = []; }; // server disconnect baseEditorsApi.prototype.asc_coAuthoringDisconnect = function() { this.CoAuthoringApi.disconnect(); this.isCoAuthoringEnable = false; // Выставляем view-режим this.asc_setViewMode(true); }; baseEditorsApi.prototype.asc_stopSaving = function() { this.incrementCounterLongAction(); }; baseEditorsApi.prototype.asc_continueSaving = function() { this.decrementCounterLongAction(); }; // SpellCheck baseEditorsApi.prototype._coSpellCheckInit = function() { }; // Images & Charts & TextArts baseEditorsApi.prototype.asc_getChartPreviews = function(chartType) { return this.chartPreviewManager.getChartPreviews(chartType); }; baseEditorsApi.prototype.asc_getTextArtPreviews = function() { return this.textArtPreviewManager.getWordArtStyles(); }; baseEditorsApi.prototype.asc_onOpenChartFrame = function() { if(this.isMobileVersion){ return; } this.isOpenedChartFrame = true; }; baseEditorsApi.prototype.asc_onCloseChartFrame = function() { this.isOpenedChartFrame = false; }; baseEditorsApi.prototype.asc_setInterfaceDrawImagePlaceShape = function(elementId) { this.shapeElementId = elementId; }; baseEditorsApi.prototype.asc_getPropertyEditorShapes = function() { return [AscCommon.g_oAutoShapesGroups, AscCommon.g_oAutoShapesTypes]; }; baseEditorsApi.prototype.asc_getPropertyEditorTextArts = function() { return [AscCommon.g_oPresetTxWarpGroups, AscCommon.g_PresetTxWarpTypes]; }; // Add image baseEditorsApi.prototype._addImageUrl = function() { }; // CRYPTPAD // This method is necessary to add the loaded images to the list of loaded images // The code is in slide/api.js baseEditorsApi.prototype.asc_addImageCallback = function(res) { }; baseEditorsApi.prototype.asc_addImage = function() { var t = this; // CryptPad: we need to take control of the upload // t.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.UploadImage); // This method calls back to the cryptpad onlyoffice inner.js to load the cryptad file dialog window.parent.APP.AddImage(function(res) { // This method adds the loaded image to the list of loaded images console.log("AddImageCallback"); t.asc_addImageCallback(res); // This method activats the image t._addImageUrl([res.url]); // t.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.UploadImage); }, function() { // t.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.UploadImage); t.sendEvent("asc_onError", error, c_oAscError.Level.NoCritical); }); return; // Cryptpad end AscCommon.ShowImageFileDialog(this.documentId, this.documentUserId, this.CoAuthoringApi.get_jwt(), function(error, files) { t._uploadCallback(error, files); }, function(error) { if (c_oAscError.ID.No !== error) { t.sendEvent("asc_onError", error, c_oAscError.Level.NoCritical); } t.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.UploadImage); }); }; baseEditorsApi.prototype._uploadCallback = function(error, files) { var t = this; if (c_oAscError.ID.No !== error) { this.sendEvent("asc_onError", error, c_oAscError.Level.NoCritical); } else { this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.UploadImage); AscCommon.UploadImageFiles(files, this.documentId, this.documentUserId, this.CoAuthoringApi.get_jwt(), function(error, urls) { if (c_oAscError.ID.No !== error) { t.sendEvent("asc_onError", error, c_oAscError.Level.NoCritical); } else { t._addImageUrl(urls); } t.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.UploadImage); }); } }; //метод, который подменяет callback загрузки в каждом редакторе, TODO: переделать, сделать одинаково в о всех редакторах baseEditorsApi.prototype.asc_replaceLoadImageCallback = function(fCallback) { }; baseEditorsApi.prototype.asc_loadLocalImageAndAction = function(sLocalImage, fCallback) { var _loadedUrl = this.ImageLoader.LoadImage(AscCommon.getFullImageSrc2(sLocalImage), 1); if (_loadedUrl != null) fCallback(_loadedUrl); else this.asc_replaceLoadImageCallback(fCallback); }; baseEditorsApi.prototype.asc_checkImageUrlAndAction = function(sImageUrl, fCallback) { var oThis = this; this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.UploadImage); var fCallback2 = function() { oThis.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.UploadImage); fCallback.apply(oThis, arguments); }; var sLocalImage = AscCommon.g_oDocumentUrls.getImageLocal(sImageUrl); if (sLocalImage) { this.asc_loadLocalImageAndAction(sLocalImage, fCallback2); return; } AscCommon.sendImgUrls(oThis, [sImageUrl], function(data) { if (data[0] && data[0].path != null) { oThis.asc_loadLocalImageAndAction(AscCommon.g_oDocumentUrls.imagePath2Local(data[0].path), fCallback2); } }, this.editorId === c_oEditorId.Spreadsheet); }; baseEditorsApi.prototype.asc_addOleObject = function(oPluginData) { if(this.isViewMode){ return; } Asc.CPluginData_wrap(oPluginData); var oThis = this; var sImgSrc = oPluginData.getAttribute("imgSrc"); var nWidthPix = oPluginData.getAttribute("widthPix"); var nHeightPix = oPluginData.getAttribute("heightPix"); var fWidth = oPluginData.getAttribute("width"); var fHeight = oPluginData.getAttribute("height"); var sData = oPluginData.getAttribute("data"); var sGuid = oPluginData.getAttribute("guid"); if (typeof sImgSrc === "string" && sImgSrc.length > 0 && typeof sData === "string" && typeof sGuid === "string" && sGuid.length > 0 && AscFormat.isRealNumber(nWidthPix) && AscFormat.isRealNumber(nHeightPix) && AscFormat.isRealNumber(fWidth) && AscFormat.isRealNumber(fHeight) ) this.asc_checkImageUrlAndAction(sImgSrc, function(oImage) { oThis.asc_addOleObjectAction(AscCommon.g_oDocumentUrls.getImageLocal(oImage.src), sData, sGuid, fWidth, fHeight, nWidthPix, nHeightPix); }); }; baseEditorsApi.prototype.asc_editOleObject = function(oPluginData) { if(this.isViewMode){ return; } Asc.CPluginData_wrap(oPluginData); var oThis = this; var bResize = oPluginData.getAttribute("resize"); var sImgSrc = oPluginData.getAttribute("imgSrc"); var oOleObject = AscCommon.g_oTableId.Get_ById(oPluginData.getAttribute("objectId")); var nWidthPix = oPluginData.getAttribute("widthPix"); var nHeightPix = oPluginData.getAttribute("heightPix"); var sData = oPluginData.getAttribute("data"); if (typeof sImgSrc === "string" && sImgSrc.length > 0 && typeof sData === "string" && oOleObject && AscFormat.isRealNumber(nWidthPix) && AscFormat.isRealNumber(nHeightPix)) { this.asc_checkImageUrlAndAction(sImgSrc, function(oImage) { oThis.asc_editOleObjectAction(bResize, oOleObject, AscCommon.g_oDocumentUrls.getImageLocal(oImage.src), sData, nWidthPix, nHeightPix); }); } }; baseEditorsApi.prototype.asc_addOleObjectAction = function(sLocalUrl, sData, sApplicationId, fWidth, fHeight) { }; baseEditorsApi.prototype.asc_editOleObjectAction = function(bResize, oOleObject, sImageUrl, sData, nPixWidth, nPixHeight) { }; baseEditorsApi.prototype.asc_selectSearchingResults = function(value) { if (this.selectSearchingResults === value) { return; } this.selectSearchingResults = value; this._selectSearchingResults(value); }; baseEditorsApi.prototype.asc_startEditCurrentOleObject = function(){ }; // Version History baseEditorsApi.prototype.asc_showRevision = function(newObj) { }; baseEditorsApi.prototype.asc_undoAllChanges = function() { }; baseEditorsApi.prototype.asc_Save = function (isAutoSave, isIdle) { var t = this; var res = false; if (this.canSave && this._saveCheck()) { this.IsUserSave = !isAutoSave; if (this.asc_isDocumentCanSave() || AscCommon.History.Have_Changes() || this._haveOtherChanges() || this.canUnlockDocument || this.forceSaveUndoRequest) { if (this._prepareSave(isIdle)) { // Не даем пользователю сохранять, пока не закончится сохранение (если оно началось) this.canSave = false; this.CoAuthoringApi.askSaveChanges(function (e) { t._onSaveCallback(e); }); res = true; } } else if (this.isForceSaveOnUserSave && this.IsUserSave) { this.forceSave(); } } return res; }; /** * Эта функция возвращает true, если есть изменения или есть lock-и в документе */ baseEditorsApi.prototype.asc_isDocumentCanSave = function() { return this.isDocumentCanSave; }; baseEditorsApi.prototype.asc_getCanUndo = function() { return AscCommon.History.Can_Undo(); }; baseEditorsApi.prototype.asc_getCanRedo = function() { return AscCommon.History.Can_Redo(); }; // Offline mode baseEditorsApi.prototype.asc_isOffline = function() { return (window.location.protocol.indexOf("file") == 0) ? true : false; }; baseEditorsApi.prototype.asc_getUrlType = function(url) { return AscCommon.getUrlType(url); }; baseEditorsApi.prototype.openDocument = function() { }; baseEditorsApi.prototype.openDocumentFromZip = function() { }; baseEditorsApi.prototype.onEndLoadDocInfo = function() { if (this.isLoadFullApi && this.DocInfo) { if (this.DocInfo.get_OfflineApp()) { if (this.editorId === c_oEditorId.Spreadsheet && this.isChartEditor) { this.onEndLoadFile(AscCommonExcel.getEmptyWorkbook()); } else { this._OfflineAppDocumentStartLoad(); } } this.onEndLoadFile(null); } }; baseEditorsApi.prototype.onEndLoadFile = function(result) { if (result) { this.openResult = result; } if (this.isLoadFullApi && this.DocInfo && this.openResult) { this.openDocument(this.openResult); this.openResult = null; } }; baseEditorsApi.prototype._onEndLoadSdk = function() { AscCommon.g_oTableId.init(); // init drag&drop var t = this; AscCommon.InitDragAndDrop(this.HtmlElement, function(error, files) { t._uploadCallback(error, files); }); AscFonts.g_fontApplication.Init(); this.FontLoader = AscCommon.g_font_loader; this.ImageLoader = AscCommon.g_image_loader; this.FontLoader.put_Api(this); this.ImageLoader.put_Api(this); this.FontLoader.SetStandartFonts(); this.chartPreviewManager = new AscCommon.ChartPreviewManager(); this.textArtPreviewManager = new AscCommon.TextArtPreviewManager(); AscFormat.initStyleManager(); if (null !== this.tmpFocus) { this.asc_enableKeyEvents(this.tmpFocus); } this.pluginsManager = Asc.createPluginsManager(this); this.macros = new AscCommon.CDocumentMacros(); }; baseEditorsApi.prototype.sendStandartTextures = function() { if (this.isSendStandartTextures) return; this.isSendStandartTextures = true; var _count = AscCommon.g_oUserTexturePresets.length; var arr = new Array(_count); for (var i = 0; i < _count; ++i) { arr[i] = new AscCommon.asc_CTexture(); arr[i].Id = i; arr[i].Image = AscCommon.g_oUserTexturePresets[i]; this.ImageLoader.LoadImage(AscCommon.g_oUserTexturePresets[i], 1); } this.sendEvent('asc_onInitStandartTextures', arr); }; baseEditorsApi.prototype.sendMathToMenu = function () { if (this.MathMenuLoad) return; // GENERATE_IMAGES //var _MathPainter = new CMathPainter(this.m_oWordControl.m_oApi); //_MathPainter.StartLoad(); //return; var _MathPainter = new AscFormat.CMathPainter(this); _MathPainter.Generate(); this.MathMenuLoad = true; }; baseEditorsApi.prototype.sendMathTypesToMenu = function(_math) { this.sendEvent("asc_onMathTypes", _math); }; baseEditorsApi.prototype.asyncFontEndLoaded_MathDraw = function(Obj) { this.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.LoadFont); Obj.Generate2(); }; baseEditorsApi.prototype.sendColorThemes = function (theme) { var result = AscCommon.g_oUserColorScheme.slice(); // theme colors var elem, _c; var _extra = theme.extraClrSchemeLst; var _count = _extra.length; var _rgba = {R: 0, G: 0, B: 0, A: 255}; for (var i = 0; i < _count; ++i) { var _scheme = _extra[i].clrScheme; elem = new AscCommon.CAscColorScheme(); elem.name = _scheme.name; _scheme.colors[8].Calculate(theme, null, null, null, _rgba); _c = _scheme.colors[8].RGBA; elem.colors.push(new AscCommon.CColor(_c.R, _c.G, _c.B)); _scheme.colors[12].Calculate(theme, null, null, null, _rgba); _c = _scheme.colors[12].RGBA; elem.colors.push(new AscCommon.CColor(_c.R, _c.G, _c.B)); _scheme.colors[9].Calculate(theme, null, null, null, _rgba); _c = _scheme.colors[9].RGBA; elem.colors.push(new AscCommon.CColor(_c.R, _c.G, _c.B)); _scheme.colors[13].Calculate(theme, null, null, null, _rgba); _c = _scheme.colors[13].RGBA; elem.colors.push(new AscCommon.CColor(_c.R, _c.G, _c.B)); _scheme.colors[0].Calculate(theme, null, null, null, _rgba); _c = _scheme.colors[0].RGBA; elem.colors.push(new AscCommon.CColor(_c.R, _c.G, _c.B)); _scheme.colors[1].Calculate(theme, null, null, null, _rgba); _c = _scheme.colors[1].RGBA; elem.colors.push(new AscCommon.CColor(_c.R, _c.G, _c.B)); _scheme.colors[2].Calculate(theme, null, null, null, _rgba); _c = _scheme.colors[2].RGBA; elem.colors.push(new AscCommon.CColor(_c.R, _c.G, _c.B)); _scheme.colors[3].Calculate(theme, null, null, null, _rgba); _c = _scheme.colors[3].RGBA; elem.colors.push(new AscCommon.CColor(_c.R, _c.G, _c.B)); _scheme.colors[4].Calculate(theme, null, null, null, _rgba); _c = _scheme.colors[4].RGBA; elem.colors.push(new AscCommon.CColor(_c.R, _c.G, _c.B)); _scheme.colors[5].Calculate(theme, null, null, null, _rgba); _c = _scheme.colors[5].RGBA; elem.colors.push(new AscCommon.CColor(_c.R, _c.G, _c.B)); _scheme.colors[11].Calculate(theme, null, null, null, _rgba); _c = _scheme.colors[11].RGBA; elem.colors.push(new AscCommon.CColor(_c.R, _c.G, _c.B)); _scheme.colors[10].Calculate(theme, null, null, null, _rgba); _c = _scheme.colors[10].RGBA; elem.colors.push(new AscCommon.CColor(_c.R, _c.G, _c.B)); result.push(elem) } this.sendEvent("asc_onSendThemeColorSchemes", result); return result; }; // plugins baseEditorsApi.prototype._checkLicenseApiFunctions = function() { return this.licenseResult && true === this.licenseResult['plugins']; }; baseEditorsApi.prototype.asc_pluginsRegister = function(basePath, plugins) { if (null != this.pluginsManager) this.pluginsManager.register(basePath, plugins); }; baseEditorsApi.prototype.asc_pluginRun = function(guid, variation, pluginData) { if (null != this.pluginsManager) this.pluginsManager.run(guid, variation, pluginData); }; baseEditorsApi.prototype.asc_pluginResize = function(pluginData) { if (null != this.pluginsManager) this.pluginsManager.runResize(pluginData); }; baseEditorsApi.prototype.asc_pluginButtonClick = function(id) { if (null != this.pluginsManager) this.pluginsManager.buttonClick(id); }; baseEditorsApi.prototype.asc_pluginEnableMouseEvents = function(isEnable) { if (!this.pluginsManager) return; this.pluginsManager.onEnableMouseEvents(isEnable); }; baseEditorsApi.prototype.isEnabledDropTarget = function() { return true; }; baseEditorsApi.prototype.beginInlineDropTarget = function(e) { }; baseEditorsApi.prototype.endInlineDropTarget = function(e) { }; baseEditorsApi.prototype["pluginMethod_GetFontList"] = function() { return AscFonts.g_fontApplication.g_fontSelections.SerializeList(); }; baseEditorsApi.prototype["pluginMethod_PasteHtml"] = function(htmlText) { if (!AscCommon.g_clipboardBase) return null; var _elem = document.createElement("div"); if (this.editorId == c_oEditorId.Word || this.editorId == c_oEditorId.Presentation) { var textPr = this.get_TextProps(); if (textPr) { if (undefined !== textPr.TextPr.FontSize) _elem.style.fontSize = textPr.TextPr.FontSize + "pt"; _elem.style.fontWeight = (true === textPr.TextPr.Bold) ? "bold" : "normal"; _elem.style.fontStyle = (true === textPr.TextPr.Italic) ? "italic" : "normal"; var _color = textPr.TextPr.Color; if (_color) _elem.style.color = "rgb(" + _color.r + "," + _color.g + "," + _color.b + ")"; else _elem.style.color = "rgb(0,0,0)"; } } else if (this.editorId == c_oEditorId.Spreadsheet) { var props = this.asc_getCellInfo(); if (props && props.font) { if (undefined != props.font.size) _elem.style.fontSize = props.font.size + "pt"; _elem.style.fontWeight = (true === props.font.bold) ? "bold" : "normal"; _elem.style.fontStyle = (true === props.font.italic) ? "italic" : "normal"; } } _elem.innerHTML = htmlText; document.body.appendChild(_elem); this.incrementCounterLongAction(); var b_old_save_format = AscCommon.g_clipboardBase.bSaveFormat; AscCommon.g_clipboardBase.bSaveFormat = true; this.asc_PasteData(AscCommon.c_oAscClipboardDataFormat.HtmlElement, _elem, null, null, null, true); this.decrementCounterLongAction(); if (true) { var fCallback = function () { document.body.removeChild(_elem); _elem = null; AscCommon.g_clipboardBase.bSaveFormat = b_old_save_format; }; if(this.checkLongActionCallback(fCallback, null)){ fCallback(); } } else { document.body.removeChild(_elem); _elem = null; AscCommon.g_clipboardBase.bSaveFormat = b_old_save_format; } }; baseEditorsApi.prototype["pluginMethod_PasteText"] = function(text) { if (!AscCommon.g_clipboardBase) return null; this.asc_PasteData(AscCommon.c_oAscClipboardDataFormat.Text, text); }; baseEditorsApi.prototype["pluginMethod_GetMacros"] = function() { return this.asc_getMacros(); }; baseEditorsApi.prototype["pluginMethod_SetMacros"] = function(data) { return this.asc_setMacros(data); }; baseEditorsApi.prototype["pluginMethod_StartAction"] = function(type, description) { this.sync_StartAction((type == "Block") ? c_oAscAsyncActionType.BlockInteraction : c_oAscAsyncActionType.Information, description); }; baseEditorsApi.prototype["pluginMethod_EndAction"] = function(type, description) { this.sync_EndAction((type == "Block") ? c_oAscAsyncActionType.BlockInteraction : c_oAscAsyncActionType.Information, description); if (this._callbackPluginEndAction) { this._callbackPluginEndAction.call(this); } }; baseEditorsApi.prototype["pluginMethod_OnEncryption"] = function(obj) { var _editor = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor; switch (obj.type) { case "generatePassword": { if ("" == obj["password"]) { _editor.sendEvent("asc_onError", "There is no connection with the blockchain", c_oAscError.Level.Critical); return; } var _ret = _editor.asc_nativeGetFile3(); AscCommon.EncryptionWorker.isPasswordCryptoPresent = true; window["AscDesktopEditor"]["buildCryptedStart"](_ret.data, _ret.header, obj["password"], obj["docinfo"] ? obj["docinfo"] : ""); break; } case "getPasswordByFile": { if ("" != obj["password"]) { var _param = ("" + AscCommon.CopyPasteCorrectString(obj["password"]) + ""); _editor.currentPassword = obj["password"]; _editor.currentDocumentHash = obj["hash"]; _editor.currentDocumentInfo = obj["docinfo"]; AscCommon.EncryptionWorker.isPasswordCryptoPresent = true; if (window.isNativeOpenPassword) { window["AscDesktopEditor"]["NativeViewerOpen"](obj["password"]); } else { window["AscDesktopEditor"]["SetAdvancedOptions"](_param); } } else { this._onNeedParams(undefined, true); } break; } case "encryptData": case "decryptData": { AscCommon.EncryptionWorker.receiveChanges(obj); break; } } }; // Builder baseEditorsApi.prototype.asc_nativeInitBuilder = function() { this.asc_setDocInfo(new Asc.asc_CDocInfo()); }; baseEditorsApi.prototype.asc_SetSilentMode = function() { }; baseEditorsApi.prototype.asc_canPaste = function() { return false; }; baseEditorsApi.prototype.asc_Recalculate = function() { }; // Native baseEditorsApi.prototype['asc_nativeCheckPdfRenderer'] = function (_memory1, _memory2) { if (true) { // pos не должен минимизироваться!!! _memory1.Copy = _memory1["Copy"]; _memory1.ClearNoAttack = _memory1["ClearNoAttack"]; _memory1.WriteByte = _memory1["WriteByte"]; _memory1.WriteBool = _memory1["WriteBool"]; _memory1.WriteLong = _memory1["WriteLong"]; _memory1.WriteDouble = _memory1["WriteDouble"]; _memory1.WriteString = _memory1["WriteString"]; _memory1.WriteString2 = _memory1["WriteString2"]; _memory2.Copy = _memory1["Copy"]; _memory2.ClearNoAttack = _memory1["ClearNoAttack"]; _memory2.WriteByte = _memory1["WriteByte"]; _memory2.WriteBool = _memory1["WriteBool"]; _memory2.WriteLong = _memory1["WriteLong"]; _memory2.WriteDouble = _memory1["WriteDouble"]; _memory2.WriteString = _memory1["WriteString"]; _memory2.WriteString2 = _memory1["WriteString2"]; } var _printer = new AscCommon.CDocumentRenderer(); _printer.Memory = _memory1; _printer.VectorMemoryForPrint = _memory2; return _printer; }; // input baseEditorsApi.prototype.Begin_CompositeInput = function() { }; baseEditorsApi.prototype.Add_CompositeText = function(nCharCode) { }; baseEditorsApi.prototype.Remove_CompositeText = function(nCount) { }; baseEditorsApi.prototype.Replace_CompositeText = function(arrCharCodes) { }; baseEditorsApi.prototype.Set_CursorPosInCompositeText = function(nPos) { }; baseEditorsApi.prototype.Get_CursorPosInCompositeText = function() { }; baseEditorsApi.prototype.End_CompositeInput = function() { }; baseEditorsApi.prototype.Get_MaxCursorPosInCompositeText = function() { }; baseEditorsApi.prototype.Input_UpdatePos = function() { }; baseEditorsApi.prototype["setInputParams"] = function(_obj) { window["AscInputMethod"] = window["AscInputMethod"] || {}; for (var _prop in _obj) { window["AscInputMethod"][_prop] = _obj[_prop]; } }; baseEditorsApi.prototype.asc_addSignatureLine = function (sGuid, sSigner, sSigner2, sEmail, Width, Height, sImgUrl) { }; baseEditorsApi.prototype.asc_getAllSignatures = function () { return []; }; baseEditorsApi.prototype.asc_CallSignatureDblClickEvent = function(sGuid){ }; // signatures baseEditorsApi.prototype.asc_AddSignatureLine2 = function(_obj) { var _w = 50; var _h = 50; var _w_pix = (_w * AscCommon.g_dKoef_mm_to_pix) >> 0; var _h_pix = (_h * AscCommon.g_dKoef_mm_to_pix) >> 0; var _canvas = document.createElement("canvas"); _canvas.width = _w_pix; _canvas.height = _h_pix; var _ctx = _canvas.getContext("2d"); _ctx.fillStyle = "#000000"; _ctx.strokeStyle = "#000000"; _ctx.font = "10pt 'Courier New'"; _ctx.lineWidth = 3; _ctx.beginPath(); var _y_line = (_h_pix >> 1) + 0.5; _ctx.moveTo(0, _y_line); _ctx.lineTo(_w_pix, _y_line); _ctx.stroke(); _ctx.beginPath(); _ctx.lineWidth = 2; _y_line -= 10; _ctx.moveTo(10, _y_line); _ctx.lineTo(25, _y_line - 10); _ctx.lineTo(10, _y_line - 20); _ctx.stroke(); _ctx.beginPath(); _ctx.fillText(_obj.asc_getSigner1(), 10, _y_line + 25); _ctx.fillText(_obj.asc_getSigner2(), 10, _y_line + 40); _ctx.fillText(_obj.asc_getEmail(), 10, _y_line + 55); var _url = _canvas.toDataURL("image/png"); _canvas = null; var _args = [AscCommon.CreateGUID(), _obj.asc_getSigner1(), _obj.asc_getSigner2(), _obj.asc_getEmail(), _w, _h, _url]; this.ImageLoader.LoadImagesWithCallback([_url], function(_args) { this.asc_addSignatureLine(_args[0], _args[1], _args[2], _args[3], _args[4], _args[5], _args[6]); }, _args); }; baseEditorsApi.prototype.asc_getRequestSignatures = function() { var _sigs = this.asc_getAllSignatures(); var _sigs_ret = []; var _found; for (var i = _sigs.length - 1; i >= 0; i--) { var _sig = _sigs[i]; _found = false; for (var j = this.signatures.length - 1; j >= 0; j--) { if (this.signatures[j].guid == _sig.id) { _found = true; break; } } if (!_found) { var _add_sig = new AscCommon.asc_CSignatureLine(); _add_sig.guid = _sig.id; _add_sig.signer1 = _sig.signer; _add_sig.signer2 = _sig.signer2; _add_sig.email = _sig.email; _sigs_ret.push(_add_sig); } } return _sigs_ret; }; baseEditorsApi.prototype.asc_Sign = function(id, guid, url1, url2) { if (window["AscDesktopEditor"]) window["AscDesktopEditor"]["Sign"](id, guid, url1, url2); }; baseEditorsApi.prototype.asc_RequestSign = function(guid) { var signGuid = (guid == "unvisibleAdd") ? AscCommon.CreateGUID() : guid; if (window["asc_LocalRequestSign"]) window["asc_LocalRequestSign"](signGuid); }; baseEditorsApi.prototype.asc_ViewCertificate = function(id) { if (window["AscDesktopEditor"]) window["AscDesktopEditor"]["ViewCertificate"](parseInt("" + id)); // integer or string! }; baseEditorsApi.prototype.asc_SelectCertificate = function() { if (window["AscDesktopEditor"]) window["AscDesktopEditor"]["SelectCertificate"](); }; baseEditorsApi.prototype.asc_GetDefaultCertificate = function() { if (window["AscDesktopEditor"]) window["AscDesktopEditor"]["GetDefaultCertificate"](); }; baseEditorsApi.prototype.asc_getSignatures = function() { return this.signatures; }; baseEditorsApi.prototype.asc_RemoveSignature = function(guid) { if (window["AscDesktopEditor"]) window["AscDesktopEditor"]["RemoveSignature"](guid); }; baseEditorsApi.prototype.asc_RemoveAllSignatures = function() { if (window["AscDesktopEditor"]) window["AscDesktopEditor"]["RemoveAllSignatures"](); }; baseEditorsApi.prototype.asc_isSignaturesSupport = function() { if (window["AscDesktopEditor"] && window["AscDesktopEditor"]["IsSignaturesSupport"]) return window["AscDesktopEditor"]["IsSignaturesSupport"](); return false; }; baseEditorsApi.prototype.asc_isProtectionSupport = function() { if (window["AscDesktopEditor"] && window["AscDesktopEditor"]["IsProtectionSupport"]) return window["AscDesktopEditor"]["IsProtectionSupport"](); return false; }; baseEditorsApi.prototype.asc_gotoSignature = function(guid) { if (window["AscDesktopEditor"] && window["asc_IsVisibleSign"] && window["asc_IsVisibleSign"](guid)) { if (this.asc_MoveCursorToSignature) this.asc_MoveCursorToSignature(guid); } }; baseEditorsApi.prototype.asc_getSignatureSetup = function(guid) { var _sigs = this.asc_getAllSignatures(); for (var i = _sigs.length - 1; i >= 0; i--) { var _sig = _sigs[i]; if (_sig.id == guid) { var _add_sig = new AscCommon.asc_CSignatureLine(); _add_sig.guid = _sig.id; _add_sig.signer1 = _sig.signer; _add_sig.signer2 = _sig.signer2; _add_sig.email = _sig.email; _add_sig.isrequested = true; for (var j = 0; j < this.signatures.length; j++) { var signDoc = this.signatures[j]; if (signDoc.guid == _add_sig.guid) { _add_sig.valid = signDoc.valid; _add_sig.isrequested = false; break; } } return _add_sig; } } return null; }; baseEditorsApi.prototype.asc_getSignatureImage = function (sGuid) { var count = this.signatures.length; for (var i = 0; i < count; i++) { if (this.signatures[i].guid == sGuid) return this.signatures[i].image; } return ""; }; baseEditorsApi.prototype.asc_getSessionToken = function () { return this.CoAuthoringApi.get_jwt() }; baseEditorsApi.prototype.asc_InputClearKeyboardElement = function() { if (AscCommon.g_inputContext) AscCommon.g_inputContext.nativeFocusElement = null; }; baseEditorsApi.prototype.onKeyDown = function(e) { }; baseEditorsApi.prototype.onKeyPress = function(e) { }; baseEditorsApi.prototype.onKeyUp = function(e) { }; /** * Получаем текст (в виде массива юникодных значений), который будет добавлен на ивенте KeyDown * @param e * @returns {Number[]} */ baseEditorsApi.prototype.getAddedTextOnKeyDown = function(e) { return []; }; baseEditorsApi.prototype.pre_Paste = function(_fonts, _images, callback) { }; baseEditorsApi.prototype.asc_Remove = function() { if (AscCommon.g_inputContext) AscCommon.g_inputContext.emulateKeyDownApi(46); }; // System input baseEditorsApi.prototype.SetTextBoxInputMode = function(bIsEnable) { AscCommon.TextBoxInputMode = bIsEnable; if (AscCommon.g_inputContext) AscCommon.g_inputContext.systemInputEnable(AscCommon.TextBoxInputMode); }; baseEditorsApi.prototype.GetTextBoxInputMode = function() { return AscCommon.TextBoxInputMode; }; baseEditorsApi.prototype.asc_OnHideContextMenu = function() { }; baseEditorsApi.prototype.asc_OnShowContextMenu = function() { }; baseEditorsApi.prototype.isIdle = function() { // пока не стартовали - считаем работаем if (0 == this.lastWorkTime) return 0; // если плагин работает - то и мы тоже if (this.pluginsManager && this.pluginsManager.isWorked()) return 0; if (this.isEmbedVersion) return 0; if (!this.canSave || !this._saveCheck()) return 0; return new Date().getTime() - this.lastWorkTime; }; baseEditorsApi.prototype.checkLastWork = function() { this.lastWorkTime = new Date().getTime(); }; baseEditorsApi.prototype.setViewModeDisconnect = function() { // Посылаем наверх эвент об отключении от сервера this.sendEvent('asc_onCoAuthoringDisconnect'); // И переходим в режим просмотра т.к. мы не можем сохранить файл this.asc_setViewMode(true); }; baseEditorsApi.prototype.asc_setCurrentPassword = function(password) { this.currentPassword = password; this.asc_Save(false, undefined, true); }; baseEditorsApi.prototype.asc_resetPassword = function() { this.currentPassword = ""; this.asc_Save(false, undefined, true); }; baseEditorsApi.prototype.asc_setMacros = function(sData) { if (!this.macros) return true; if (true === AscCommon.CollaborativeEditing.Get_GlobalLock()) return true; AscCommon.CollaborativeEditing.OnStart_CheckLock(); this.macros.CheckLock(); if (this.editorId == AscCommon.c_oEditorId.Spreadsheet) { var locker = Asc.editor.wb.getWorksheet().objectRender.objectLocker; locker.addObjectId(this.macros.Get_Id()); var _this = this; locker.checkObjects(function(bNoLock) { if (bNoLock) { AscCommon.History.Create_NewPoint(AscDFH.historydescription_DocumentMacros_Data); _this.macros.SetData(sData); } }); } else { if (false === AscCommon.CollaborativeEditing.OnEnd_CheckLock(false)) { AscCommon.History.Create_NewPoint(AscDFH.historydescription_DocumentMacros_Data); this.macros.SetData(sData); } } }; baseEditorsApi.prototype.asc_getMacros = function() { return this.macros.GetData(); }; function parseCSV(text, options) { var delimiterChar; if (options.asc_getDelimiterChar()) { delimiterChar = options.asc_getDelimiterChar(); } else { switch (options.asc_getDelimiter()) { case AscCommon.c_oAscCsvDelimiter.None: delimiterChar = undefined; break; case AscCommon.c_oAscCsvDelimiter.Tab: delimiterChar = "\t"; break; case AscCommon.c_oAscCsvDelimiter.Semicolon: delimiterChar = ";"; break; case AscCommon.c_oAscCsvDelimiter.Colon: delimiterChar = ":"; break; case AscCommon.c_oAscCsvDelimiter.Comma: delimiterChar = ","; break; case AscCommon.c_oAscCsvDelimiter.Space: delimiterChar = " "; break; } } var matrix = []; var rows = text.match(/[^\r\n]+/g); for (var i = 0; i < rows.length; ++i) { var row = rows[i]; //todo quotes matrix.push(row.split(delimiterChar)); } return matrix; } baseEditorsApi.prototype.asc_decodeBuffer = function(buffer, options, callback) { var reader = new FileReader(); //todo onerror reader.onload = reader.onerror = function(e) { var text = e.target.result ? e.target.result : ""; if (options instanceof Asc.asc_CCSVAdvancedOptions) { callback(parseCSV(text, options)); } else { callback(text.match(/[^\r\n]+/g)); } }; reader.readAsText(new Blob([buffer]), AscCommon.c_oAscEncodings[options.asc_getCodePage()][2]); }; //----------------------------------------------------------export---------------------------------------------------- window['AscCommon'] = window['AscCommon'] || {}; window['AscCommon'].baseEditorsApi = baseEditorsApi; prot = baseEditorsApi.prototype; prot['asc_selectSearchingResults'] = prot.asc_selectSearchingResults; })(window); /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; AscCommon.baseEditorsApi.prototype._onEndPermissions = function () { if (this.isOnFirstConnectEnd && this.isOnLoadLicense) { var oResult = new AscCommon.asc_CAscEditorPermissions(); if (null !== this.licenseResult) { var type = this.licenseResult['type']; oResult.setLicenseType(type); oResult.setCanBranding(this.licenseResult['branding']); oResult.setIsLight(this.licenseResult['light']); oResult.setLicenseMode(this.licenseResult['mode']); oResult.setRights(this.licenseResult['rights']); oResult.setBuildVersion(this.licenseResult['buildVersion']); oResult.setBuildNumber(this.licenseResult['buildNumber']); } this.sendEvent('asc_onGetEditorPermissions', oResult); } }; /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; (function (window, undefined) { window['Asc'] = window['Asc'] || {}; // --------------------------------------------------------------- function CAscTableStyle() { this.Id = ""; this.Type = 0; this.Image = ""; } CAscTableStyle.prototype.get_Id = function () { return this.Id; }; CAscTableStyle.prototype.get_Image = function () { return this.Image; }; CAscTableStyle.prototype.get_Type = function () { return this.Type; }; window['Asc']['CAscTableStyle'] = window['Asc'].CAscTableStyle = CAscTableStyle; CAscTableStyle.prototype['get_Id'] = CAscTableStyle.prototype.get_Id; CAscTableStyle.prototype['get_Image'] = CAscTableStyle.prototype.get_Image; CAscTableStyle.prototype['get_Type'] = CAscTableStyle.prototype.get_Type; // --------------------------------------------------------------- // CBackground // Value : тип заливки(прозрачная или нет), // Color : { r : 0, g : 0, b : 0 } function CBackground(obj) { if (obj) { if (obj.Unifill && obj.Unifill.fill && obj.Unifill.fill.type === window['Asc'].c_oAscFill.FILL_TYPE_SOLID && obj.Unifill.fill.color) { this.Color = AscCommon.CreateAscColor(obj.Unifill.fill.color); } else { this.Color = (undefined != obj.Color && null != obj.Color) ? AscCommon.CreateAscColorCustom(obj.Color.r, obj.Color.g, obj.Color.b) : null; } this.Value = (undefined != obj.Value) ? obj.Value : null; } else { this.Color = AscCommon.CreateAscColorCustom(0, 0, 0); this.Value = 1; } } CBackground.prototype.get_Color = function () { return this.Color; }; CBackground.prototype.put_Color = function (v) { this.Color = (v) ? v : null; }; CBackground.prototype.get_Value = function () { return this.Value; }; CBackground.prototype.put_Value = function (v) { this.Value = v; }; window['Asc']['CBackground'] = window['Asc'].CBackground = CBackground; CBackground.prototype['get_Color'] = CBackground.prototype.get_Color; CBackground.prototype['put_Color'] = CBackground.prototype.put_Color; CBackground.prototype['get_Value'] = CBackground.prototype.get_Value; CBackground.prototype['put_Value'] = CBackground.prototype.put_Value; // --------------------------------------------------------------- function CTablePositionH(obj) { if (obj) { this.RelativeFrom = ( undefined === obj.RelativeFrom ) ? Asc.c_oAscHAnchor.Margin : obj.RelativeFrom; this.UseAlign = ( undefined === obj.UseAlign ) ? false : obj.UseAlign; this.Align = ( undefined === obj.Align ) ? undefined : obj.Align; this.Value = ( undefined === obj.Value ) ? 0 : obj.Value; } else { this.RelativeFrom = Asc.c_oAscHAnchor.Column; this.UseAlign = false; this.Align = undefined; this.Value = 0; } } CTablePositionH.prototype.get_RelativeFrom = function () { return this.RelativeFrom; }; CTablePositionH.prototype.put_RelativeFrom = function (v) { this.RelativeFrom = v; }; CTablePositionH.prototype.get_UseAlign = function () { return this.UseAlign; }; CTablePositionH.prototype.put_UseAlign = function (v) { this.UseAlign = v; }; CTablePositionH.prototype.get_Align = function () { return this.Align; }; CTablePositionH.prototype.put_Align = function (v) { this.Align = v; }; CTablePositionH.prototype.get_Value = function () { return this.Value; }; CTablePositionH.prototype.put_Value = function (v) { this.Value = v; }; function CTablePositionV(obj) { if (obj) { this.RelativeFrom = ( undefined === obj.RelativeFrom ) ? Asc.c_oAscVAnchor.Text : obj.RelativeFrom; this.UseAlign = ( undefined === obj.UseAlign ) ? false : obj.UseAlign; this.Align = ( undefined === obj.Align ) ? undefined : obj.Align; this.Value = ( undefined === obj.Value ) ? 0 : obj.Value; } else { this.RelativeFrom = Asc.c_oAscVAnchor.Text; this.UseAlign = false; this.Align = undefined; this.Value = 0; } } CTablePositionV.prototype.get_RelativeFrom = function () { return this.RelativeFrom; }; CTablePositionV.prototype.put_RelativeFrom = function (v) { this.RelativeFrom = v; }; CTablePositionV.prototype.get_UseAlign = function () { return this.UseAlign; }; CTablePositionV.prototype.put_UseAlign = function (v) { this.UseAlign = v; }; CTablePositionV.prototype.get_Align = function () { return this.Align; }; CTablePositionV.prototype.put_Align = function (v) { this.Align = v; }; CTablePositionV.prototype.get_Value = function () { return this.Value; }; CTablePositionV.prototype.put_Value = function (v) { this.Value = v; }; window['Asc']['CTablePositionH'] = CTablePositionH; CTablePositionH.prototype['get_RelativeFrom'] = CTablePositionH.prototype.get_RelativeFrom; CTablePositionH.prototype['put_RelativeFrom'] = CTablePositionH.prototype.put_RelativeFrom; CTablePositionH.prototype['get_UseAlign'] = CTablePositionH.prototype.get_UseAlign; CTablePositionH.prototype['put_UseAlign'] = CTablePositionH.prototype.put_UseAlign; CTablePositionH.prototype['get_Align'] = CTablePositionH.prototype.get_Align; CTablePositionH.prototype['put_Align'] = CTablePositionH.prototype.put_Align; CTablePositionH.prototype['get_Value'] = CTablePositionH.prototype.get_Value; CTablePositionH.prototype['put_Value'] = CTablePositionH.prototype.put_Value; window['Asc']['CTablePositionV'] = CTablePositionV; CTablePositionV.prototype['get_RelativeFrom'] = CTablePositionV.prototype.get_RelativeFrom; CTablePositionV.prototype['put_RelativeFrom'] = CTablePositionV.prototype.put_RelativeFrom; CTablePositionV.prototype['get_UseAlign'] = CTablePositionV.prototype.get_UseAlign; CTablePositionV.prototype['put_UseAlign'] = CTablePositionV.prototype.put_UseAlign; CTablePositionV.prototype['get_Align'] = CTablePositionV.prototype.get_Align; CTablePositionV.prototype['put_Align'] = CTablePositionV.prototype.put_Align; CTablePositionV.prototype['get_Value'] = CTablePositionV.prototype.get_Value; CTablePositionV.prototype['put_Value'] = CTablePositionV.prototype.put_Value; // --------------------------------------------------------------- function CTablePropLook(obj) { this.FirstCol = false; this.FirstRow = false; this.LastCol = false; this.LastRow = false; this.BandHor = false; this.BandVer = false; if (obj) { this.FirstCol = ( undefined === obj.m_bFirst_Col ? false : obj.m_bFirst_Col ); this.FirstRow = ( undefined === obj.m_bFirst_Row ? false : obj.m_bFirst_Row ); this.LastCol = ( undefined === obj.m_bLast_Col ? false : obj.m_bLast_Col ); this.LastRow = ( undefined === obj.m_bLast_Row ? false : obj.m_bLast_Row ); this.BandHor = ( undefined === obj.m_bBand_Hor ? false : obj.m_bBand_Hor ); this.BandVer = ( undefined === obj.m_bBand_Ver ? false : obj.m_bBand_Ver ); } } CTablePropLook.prototype.get_FirstCol = function () { return this.FirstCol; }; CTablePropLook.prototype.put_FirstCol = function (v) { this.FirstCol = v; }; CTablePropLook.prototype.get_FirstRow = function () { return this.FirstRow; }; CTablePropLook.prototype.put_FirstRow = function (v) { this.FirstRow = v; }; CTablePropLook.prototype.get_LastCol = function () { return this.LastCol; }; CTablePropLook.prototype.put_LastCol = function (v) { this.LastCol = v; }; CTablePropLook.prototype.get_LastRow = function () { return this.LastRow; }; CTablePropLook.prototype.put_LastRow = function (v) { this.LastRow = v; }; CTablePropLook.prototype.get_BandHor = function () { return this.BandHor; }; CTablePropLook.prototype.put_BandHor = function (v) { this.BandHor = v; }; CTablePropLook.prototype.get_BandVer = function () { return this.BandVer; }; CTablePropLook.prototype.put_BandVer = function (v) { this.BandVer = v; }; window['Asc']['CTablePropLook'] = window['Asc'].CTablePropLook = CTablePropLook; CTablePropLook.prototype['get_FirstCol'] = CTablePropLook.prototype.get_FirstCol; CTablePropLook.prototype['put_FirstCol'] = CTablePropLook.prototype.put_FirstCol; CTablePropLook.prototype['get_FirstRow'] = CTablePropLook.prototype.get_FirstRow; CTablePropLook.prototype['put_FirstRow'] = CTablePropLook.prototype.put_FirstRow; CTablePropLook.prototype['get_LastCol'] = CTablePropLook.prototype.get_LastCol; CTablePropLook.prototype['put_LastCol'] = CTablePropLook.prototype.put_LastCol; CTablePropLook.prototype['get_LastRow'] = CTablePropLook.prototype.get_LastRow; CTablePropLook.prototype['put_LastRow'] = CTablePropLook.prototype.put_LastRow; CTablePropLook.prototype['get_BandHor'] = CTablePropLook.prototype.get_BandHor; CTablePropLook.prototype['put_BandHor'] = CTablePropLook.prototype.put_BandHor; CTablePropLook.prototype['get_BandVer'] = CTablePropLook.prototype.get_BandVer; CTablePropLook.prototype['put_BandVer'] = CTablePropLook.prototype.put_BandVer; /* { TableWidth : null - галочка убрана, либо заданное значение в мм TableSpacing : null - галочка убрана, либо заданное значение в мм TableDefaultMargins : // маргины для всей таблицы(значение по умолчанию) { Left : 1.9, Right : 1.9, Top : 0, Bottom : 0 } CellMargins : { Left : 1.9, (null - неопределенное значение) Right : 1.9, (null - неопределенное значение) Top : 0, (null - неопределенное значение) Bottom : 0, (null - неопределенное значение) Flag : 0 - У всех выделенных ячеек значение берется из TableDefaultMargins 1 - У выделенных ячеек есть ячейки с дефолтовыми значениями, и есть со своими собственными 2 - У всех ячеек свои собственные значения } TableAlignment : 0, 1, 2 (слева, по центру, справа) TableIndent : значение в мм, TableWrappingStyle : 0, 1 (inline, flow) TablePaddings: { Left : 3.2, Right : 3.2, Top : 0, Bottom : 0 } TableBorders : // границы таблицы { Bottom : { Color : { r : 0, g : 0, b : 0 }, Value : border_Single, Size : 0.5 * g_dKoef_pt_to_mm Space : }, Left : { Color : { r : 0, g : 0, b : 0 }, Value : border_Single, Size : 0.5 * g_dKoef_pt_to_mm Space : }, Right : { Color : { r : 0, g : 0, b : 0 }, Value : border_Single, Size : 0.5 * g_dKoef_pt_to_mm Space : }, Top : { Color : { r : 0, g : 0, b : 0 }, Value : border_Single, Size : 0.5 * g_dKoef_pt_to_mm Space : }, InsideH : { Color : { r : 0, g : 0, b : 0 }, Value : border_Single, Size : 0.5 * g_dKoef_pt_to_mm Space : }, InsideV : { Color : { r : 0, g : 0, b : 0 }, Value : border_Single, Size : 0.5 * g_dKoef_pt_to_mm Space : } } CellBorders : // границы выделенных ячеек { ForSelectedCells : true, Bottom : { Color : { r : 0, g : 0, b : 0 }, Value : border_Single, Size : 0.5 * g_dKoef_pt_to_mm Space : }, Left : { Color : { r : 0, g : 0, b : 0 }, Value : border_Single, Size : 0.5 * g_dKoef_pt_to_mm Space : }, Right : { Color : { r : 0, g : 0, b : 0 }, Value : border_Single, Size : 0.5 * g_dKoef_pt_to_mm Space : }, Top : { Color : { r : 0, g : 0, b : 0 }, Value : border_Single, Size : 0.5 * g_dKoef_pt_to_mm Space : }, InsideH : // данного элемента может не быть, если у выделенных ячеек // нет горизонтальных внутренних границ { Color : { r : 0, g : 0, b : 0 }, Value : border_Single, Size : 0.5 * g_dKoef_pt_to_mm Space : }, InsideV : // данного элемента может не быть, если у выделенных ячеек // нет вертикальных внутренних границ { Color : { r : 0, g : 0, b : 0 }, Value : border_Single, Size : 0.5 * g_dKoef_pt_to_mm Space : } } TableBackground : { Value : тип заливки(прозрачная или нет), Color : { r : 0, g : 0, b : 0 } } CellsBackground : null если заливка не определена для выделенных ячеек { Value : тип заливки(прозрачная или нет), Color : { r : 0, g : 0, b : 0 } } Position: { X:0, Y:0 } } */ function CTableProp(tblProp) { if (tblProp) { this.CanBeFlow = (undefined != tblProp.CanBeFlow ? tblProp.CanBeFlow : false ); this.CellSelect = (undefined != tblProp.CellSelect ? tblProp.CellSelect : false ); this.CellSelect = (undefined != tblProp.CellSelect) ? tblProp.CellSelect : false; this.TableWidth = (undefined != tblProp.TableWidth) ? tblProp.TableWidth : null; this.TableSpacing = (undefined != tblProp.TableSpacing) ? tblProp.TableSpacing : null; this.TableDefaultMargins = (undefined != tblProp.TableDefaultMargins && null != tblProp.TableDefaultMargins) ? new Asc.asc_CPaddings(tblProp.TableDefaultMargins) : null; this.CellMargins = (undefined != tblProp.CellMargins && null != tblProp.CellMargins) ? new CMargins(tblProp.CellMargins) : null; this.TableAlignment = (undefined != tblProp.TableAlignment) ? tblProp.TableAlignment : null; this.TableIndent = (undefined != tblProp.TableIndent) ? tblProp.TableIndent : null; this.TableWrappingStyle = (undefined != tblProp.TableWrappingStyle) ? tblProp.TableWrappingStyle : null; this.TablePaddings = (undefined != tblProp.TablePaddings && null != tblProp.TablePaddings) ? new Asc.asc_CPaddings(tblProp.TablePaddings) : null; this.TableBorders = (undefined != tblProp.TableBorders && null != tblProp.TableBorders) ? new CBorders(tblProp.TableBorders) : null; this.CellBorders = (undefined != tblProp.CellBorders && null != tblProp.CellBorders) ? new CBorders(tblProp.CellBorders) : null; this.TableBackground = (undefined != tblProp.TableBackground && null != tblProp.TableBackground) ? new CBackground(tblProp.TableBackground) : null; this.CellsBackground = (undefined != tblProp.CellsBackground && null != tblProp.CellsBackground) ? new CBackground(tblProp.CellsBackground) : null; this.Position = (undefined != tblProp.Position && null != tblProp.Position) ? new Asc.CPosition(tblProp.Position) : null; this.PositionH = ( undefined != tblProp.PositionH && null != tblProp.PositionH ) ? new CTablePositionH(tblProp.PositionH) : undefined; this.PositionV = ( undefined != tblProp.PositionV && null != tblProp.PositionV ) ? new CTablePositionV(tblProp.PositionV) : undefined; this.Internal_Position = ( undefined != tblProp.Internal_Position ) ? tblProp.Internal_Position : undefined; this.ForSelectedCells = (undefined != tblProp.ForSelectedCells) ? tblProp.ForSelectedCells : true; this.TableStyle = (undefined != tblProp.TableStyle) ? tblProp.TableStyle : null; this.TableLook = (undefined != tblProp.TableLook) ? new CTablePropLook(tblProp.TableLook) : null; this.RowsInHeader = (undefined !== tblProp.RowsInHeader) ? tblProp.RowsInHeader : false; this.CellsVAlign = (undefined != tblProp.CellsVAlign) ? tblProp.CellsVAlign : c_oAscVertAlignJc.Top; this.AllowOverlap = (undefined != tblProp.AllowOverlap) ? tblProp.AllowOverlap : undefined; this.TableLayout = tblProp.TableLayout; this.CellsTextDirection = tblProp.CellsTextDirection; this.CellsNoWrap = tblProp.CellsNoWrap; this.CellsWidth = tblProp.CellsWidth; this.CellsWidthNotEqual = tblProp.CellsWidthNotEqual; this.Locked = (undefined != tblProp.Locked) ? tblProp.Locked : false; this.PercentFullWidth = tblProp.PercentFullWidth; this.TableDescription = tblProp.TableDescription; this.TableCaption = tblProp.TableCaption; this.ColumnWidth = tblProp.ColumnWidth; this.RowHeight = tblProp.RowHeight; } else { //Все свойства класса CTableProp должны быть undefined если они не изменялись //this.CanBeFlow = false; this.CellSelect = false; //обязательное свойство /*this.TableWidth = null; this.TableSpacing = null; this.TableDefaultMargins = new Asc.asc_CPaddings (); this.CellMargins = new CMargins (); this.TableAlignment = 0; this.TableIndent = 0; this.TableWrappingStyle = c_oAscWrapStyle.Inline; this.TablePaddings = new Asc.asc_CPaddings (); this.TableBorders = new CBorders (); this.CellBorders = new CBorders (); this.TableBackground = new CBackground (); this.CellsBackground = new CBackground ();; this.Position = new CPosition (); this.ForSelectedCells = true;*/ this.Locked = false; } } CTableProp.prototype.get_Width = function () { return this.TableWidth; }; CTableProp.prototype.put_Width = function (v) { this.TableWidth = v; }; CTableProp.prototype.get_Spacing = function () { return this.TableSpacing; }; CTableProp.prototype.put_Spacing = function (v) { this.TableSpacing = v; }; CTableProp.prototype.get_DefaultMargins = function () { return this.TableDefaultMargins; }; CTableProp.prototype.put_DefaultMargins = function (v) { this.TableDefaultMargins = v; }; CTableProp.prototype.get_CellMargins = function () { return this.CellMargins; }; CTableProp.prototype.put_CellMargins = function (v) { this.CellMargins = v; }; CTableProp.prototype.get_TableAlignment = function () { return this.TableAlignment; }; CTableProp.prototype.put_TableAlignment = function (v) { this.TableAlignment = v; }; CTableProp.prototype.get_TableIndent = function () { return this.TableIndent; }; CTableProp.prototype.put_TableIndent = function (v) { this.TableIndent = v; }; CTableProp.prototype.get_TableWrap = function () { return this.TableWrappingStyle; }; CTableProp.prototype.put_TableWrap = function (v) { this.TableWrappingStyle = v; }; CTableProp.prototype.get_TablePaddings = function () { return this.TablePaddings; }; CTableProp.prototype.put_TablePaddings = function (v) { this.TablePaddings = v; }; CTableProp.prototype.get_TableBorders = function () { return this.TableBorders; }; CTableProp.prototype.put_TableBorders = function (v) { this.TableBorders = v; }; CTableProp.prototype.get_CellBorders = function () { return this.CellBorders; }; CTableProp.prototype.put_CellBorders = function (v) { this.CellBorders = v; }; CTableProp.prototype.get_TableBackground = function () { return this.TableBackground; }; CTableProp.prototype.put_TableBackground = function (v) { this.TableBackground = v; }; CTableProp.prototype.get_CellsBackground = function () { return this.CellsBackground; }; CTableProp.prototype.put_CellsBackground = function (v) { this.CellsBackground = v; }; CTableProp.prototype.get_Position = function () { return this.Position; }; CTableProp.prototype.put_Position = function (v) { this.Position = v; }; CTableProp.prototype.get_PositionH = function () { return this.PositionH; }; CTableProp.prototype.put_PositionH = function (v) { this.PositionH = v; }; CTableProp.prototype.get_PositionV = function () { return this.PositionV; }; CTableProp.prototype.put_PositionV = function (v) { this.PositionV = v; }; CTableProp.prototype.get_Value_X = function (RelativeFrom) { if (undefined != this.Internal_Position) return this.Internal_Position.Calculate_X_Value(RelativeFrom); return 0; }; CTableProp.prototype.get_Value_Y = function (RelativeFrom) { if (undefined != this.Internal_Position) return this.Internal_Position.Calculate_Y_Value(RelativeFrom); return 0; }; CTableProp.prototype.get_ForSelectedCells = function () { return this.ForSelectedCells; }; CTableProp.prototype.put_ForSelectedCells = function (v) { this.ForSelectedCells = v; }; CTableProp.prototype.put_CellSelect = function (v) { this.CellSelect = v; }; CTableProp.prototype.get_CellSelect = function () { return this.CellSelect }; CTableProp.prototype.get_CanBeFlow = function () { return this.CanBeFlow; }; CTableProp.prototype.get_RowsInHeader = function () { return this.RowsInHeader; }; CTableProp.prototype.put_RowsInHeader = function (v) { this.RowsInHeader = v; }; CTableProp.prototype.get_Locked = function () { return this.Locked; }; CTableProp.prototype.get_CellsVAlign = function () { return this.CellsVAlign; }; CTableProp.prototype.put_CellsVAlign = function (v) { this.CellsVAlign = v; }; CTableProp.prototype.get_TableLook = function () { return this.TableLook; }; CTableProp.prototype.put_TableLook = function (v) { this.TableLook = v; }; CTableProp.prototype.get_TableStyle = function () { return this.TableStyle; }; CTableProp.prototype.put_TableStyle = function (v) { this.TableStyle = v; }; CTableProp.prototype.get_AllowOverlap = function () { return this.AllowOverlap; }; CTableProp.prototype.put_AllowOverlap = function (v) { this.AllowOverlap = v; }; CTableProp.prototype.get_TableLayout = function () { return this.TableLayout; }; CTableProp.prototype.put_TableLayout = function (v) { this.TableLayout = v; }; CTableProp.prototype.get_CellsTextDirection = function () { return this.CellsTextDirection; }; CTableProp.prototype.put_CellsTextDirection = function (v) { this.CellsTextDirection = v; }; CTableProp.prototype.get_CellsNoWrap = function () { return this.CellsNoWrap; }; CTableProp.prototype.put_CellsNoWrap = function (v) { this.CellsNoWrap = v; }; CTableProp.prototype.get_CellsWidth = function () { return this.CellsWidth; }; CTableProp.prototype.put_CellsWidth = function (v) { this.CellsWidth = v; }; CTableProp.prototype.get_PercentFullWidth = function () { return this.PercentFullWidth; }; CTableProp.prototype.get_CellsWidthNotEqual = function () { return this.CellsWidthNotEqual; }; CTableProp.prototype.get_TableDescription = function () { return this.TableDescription; }; CTableProp.prototype.put_TableDescription = function (v) { this.TableDescription = v; }; CTableProp.prototype.get_TableCaption = function () { return this.TableCaption; }; CTableProp.prototype.put_TableCaption = function (v) { this.TableCaption = v; }; CTableProp.prototype.get_ColumnWidth = function() { return this.ColumnWidth; }; CTableProp.prototype.put_ColumnWidth = function(v) { this.ColumnWidth = v; }; CTableProp.prototype.get_RowHeight = function() { return this.RowHeight; }; CTableProp.prototype.put_RowHeight = function(v) { this.RowHeight = v; }; window['Asc']['CTableProp'] = window['Asc'].CTableProp = CTableProp; CTableProp.prototype['get_Width'] = CTableProp.prototype.get_Width; CTableProp.prototype['put_Width'] = CTableProp.prototype.put_Width; CTableProp.prototype['get_Spacing'] = CTableProp.prototype.get_Spacing; CTableProp.prototype['put_Spacing'] = CTableProp.prototype.put_Spacing; CTableProp.prototype['get_DefaultMargins'] = CTableProp.prototype.get_DefaultMargins; CTableProp.prototype['put_DefaultMargins'] = CTableProp.prototype.put_DefaultMargins; CTableProp.prototype['get_CellMargins'] = CTableProp.prototype.get_CellMargins; CTableProp.prototype['put_CellMargins'] = CTableProp.prototype.put_CellMargins; CTableProp.prototype['get_TableAlignment'] = CTableProp.prototype.get_TableAlignment; CTableProp.prototype['put_TableAlignment'] = CTableProp.prototype.put_TableAlignment; CTableProp.prototype['get_TableIndent'] = CTableProp.prototype.get_TableIndent; CTableProp.prototype['put_TableIndent'] = CTableProp.prototype.put_TableIndent; CTableProp.prototype['get_TableWrap'] = CTableProp.prototype.get_TableWrap; CTableProp.prototype['put_TableWrap'] = CTableProp.prototype.put_TableWrap; CTableProp.prototype['get_TablePaddings'] = CTableProp.prototype.get_TablePaddings; CTableProp.prototype['put_TablePaddings'] = CTableProp.prototype.put_TablePaddings; CTableProp.prototype['get_TableBorders'] = CTableProp.prototype.get_TableBorders; CTableProp.prototype['put_TableBorders'] = CTableProp.prototype.put_TableBorders; CTableProp.prototype['get_CellBorders'] = CTableProp.prototype.get_CellBorders; CTableProp.prototype['put_CellBorders'] = CTableProp.prototype.put_CellBorders; CTableProp.prototype['get_TableBackground'] = CTableProp.prototype.get_TableBackground; CTableProp.prototype['put_TableBackground'] = CTableProp.prototype.put_TableBackground; CTableProp.prototype['get_CellsBackground'] = CTableProp.prototype.get_CellsBackground; CTableProp.prototype['put_CellsBackground'] = CTableProp.prototype.put_CellsBackground; CTableProp.prototype['get_Position'] = CTableProp.prototype.get_Position; CTableProp.prototype['put_Position'] = CTableProp.prototype.put_Position; CTableProp.prototype['get_PositionH'] = CTableProp.prototype.get_PositionH; CTableProp.prototype['put_PositionH'] = CTableProp.prototype.put_PositionH; CTableProp.prototype['get_PositionV'] = CTableProp.prototype.get_PositionV; CTableProp.prototype['put_PositionV'] = CTableProp.prototype.put_PositionV; CTableProp.prototype['get_Value_X'] = CTableProp.prototype.get_Value_X; CTableProp.prototype['get_Value_Y'] = CTableProp.prototype.get_Value_Y; CTableProp.prototype['get_ForSelectedCells'] = CTableProp.prototype.get_ForSelectedCells; CTableProp.prototype['put_ForSelectedCells'] = CTableProp.prototype.put_ForSelectedCells; CTableProp.prototype['put_CellSelect'] = CTableProp.prototype.put_CellSelect; CTableProp.prototype['get_CellSelect'] = CTableProp.prototype.get_CellSelect; CTableProp.prototype['get_CanBeFlow'] = CTableProp.prototype.get_CanBeFlow; CTableProp.prototype['get_RowsInHeader'] = CTableProp.prototype.get_RowsInHeader; CTableProp.prototype['put_RowsInHeader'] = CTableProp.prototype.put_RowsInHeader; CTableProp.prototype['get_Locked'] = CTableProp.prototype.get_Locked; CTableProp.prototype['get_CellsVAlign'] = CTableProp.prototype.get_CellsVAlign; CTableProp.prototype['put_CellsVAlign'] = CTableProp.prototype.put_CellsVAlign; CTableProp.prototype['get_TableLook'] = CTableProp.prototype.get_TableLook; CTableProp.prototype['put_TableLook'] = CTableProp.prototype.put_TableLook; CTableProp.prototype['get_TableStyle'] = CTableProp.prototype.get_TableStyle; CTableProp.prototype['put_TableStyle'] = CTableProp.prototype.put_TableStyle; CTableProp.prototype['get_AllowOverlap'] = CTableProp.prototype.get_AllowOverlap; CTableProp.prototype['put_AllowOverlap'] = CTableProp.prototype.put_AllowOverlap; CTableProp.prototype['get_TableLayout'] = CTableProp.prototype.get_TableLayout; CTableProp.prototype['put_TableLayout'] = CTableProp.prototype.put_TableLayout; CTableProp.prototype['get_CellsTextDirection'] = CTableProp.prototype.get_CellsTextDirection; CTableProp.prototype['put_CellsTextDirection'] = CTableProp.prototype.put_CellsTextDirection; CTableProp.prototype['get_CellsNoWrap'] = CTableProp.prototype.get_CellsNoWrap; CTableProp.prototype['put_CellsNoWrap'] = CTableProp.prototype.put_CellsNoWrap; CTableProp.prototype['get_CellsWidth'] = CTableProp.prototype.get_CellsWidth; CTableProp.prototype['put_CellsWidth'] = CTableProp.prototype.put_CellsWidth; CTableProp.prototype['get_PercentFullWidth'] = CTableProp.prototype.get_PercentFullWidth; CTableProp.prototype['get_CellsWidthNotEqual'] = CTableProp.prototype.get_CellsWidthNotEqual; CTableProp.prototype['get_TableDescription'] = CTableProp.prototype.get_TableDescription; CTableProp.prototype['put_TableDescription'] = CTableProp.prototype.put_TableDescription; CTableProp.prototype['get_TableCaption'] = CTableProp.prototype.get_TableCaption; CTableProp.prototype['put_TableCaption'] = CTableProp.prototype.put_TableCaption; CTableProp.prototype['get_ColumnWidth'] = CTableProp.prototype.get_ColumnWidth; CTableProp.prototype['put_ColumnWidth'] = CTableProp.prototype.put_ColumnWidth; CTableProp.prototype['get_RowHeight'] = CTableProp.prototype.get_RowHeight; CTableProp.prototype['put_RowHeight'] = CTableProp.prototype.put_RowHeight; // --------------------------------------------------------------- function CBorders(obj) { if (obj) { this.Left = (undefined != obj.Left && null != obj.Left) ? new Asc.asc_CTextBorder(obj.Left) : null; this.Top = (undefined != obj.Top && null != obj.Top) ? new Asc.asc_CTextBorder(obj.Top) : null; this.Right = (undefined != obj.Right && null != obj.Right) ? new Asc.asc_CTextBorder(obj.Right) : null; this.Bottom = (undefined != obj.Bottom && null != obj.Bottom) ? new Asc.asc_CTextBorder(obj.Bottom) : null; this.InsideH = (undefined != obj.InsideH && null != obj.InsideH) ? new Asc.asc_CTextBorder(obj.InsideH) : null; this.InsideV = (undefined != obj.InsideV && null != obj.InsideV) ? new Asc.asc_CTextBorder(obj.InsideV) : null; } //Все свойства класса CBorders должны быть undefined если они не изменялись /*else { this.Left = null; this.Top = null; this.Right = null; this.Bottom = null; this.InsideH = null; this.InsideV = null; }*/ } CBorders.prototype.get_Left = function () { return this.Left; }; CBorders.prototype.put_Left = function (v) { this.Left = (v) ? new Asc.asc_CTextBorder(v) : null; }; CBorders.prototype.get_Top = function () { return this.Top; }; CBorders.prototype.put_Top = function (v) { this.Top = (v) ? new Asc.asc_CTextBorder(v) : null; }; CBorders.prototype.get_Right = function () { return this.Right; }; CBorders.prototype.put_Right = function (v) { this.Right = (v) ? new Asc.asc_CTextBorder(v) : null; }; CBorders.prototype.get_Bottom = function () { return this.Bottom; }; CBorders.prototype.put_Bottom = function (v) { this.Bottom = (v) ? new Asc.asc_CTextBorder(v) : null; }; CBorders.prototype.get_InsideH = function () { return this.InsideH; }; CBorders.prototype.put_InsideH = function (v) { this.InsideH = (v) ? new Asc.asc_CTextBorder(v) : null; }; CBorders.prototype.get_InsideV = function () { return this.InsideV; }; CBorders.prototype.put_InsideV = function (v) { this.InsideV = (v) ? new Asc.asc_CTextBorder(v) : null; }; function CMargins(obj) { if (obj) { this.Left = (undefined != obj.Left) ? obj.Left : null; this.Right = (undefined != obj.Right) ? obj.Right : null; this.Top = (undefined != obj.Top) ? obj.Top : null; this.Bottom = (undefined != obj.Bottom) ? obj.Bottom : null; this.Flag = (undefined != obj.Flag) ? obj.Flag : null; } else { this.Left = null; this.Right = null; this.Top = null; this.Bottom = null; this.Flag = null; } } CMargins.prototype.get_Left = function () { return this.Left; }; CMargins.prototype.put_Left = function (v) { this.Left = v; }; CMargins.prototype.get_Right = function () { return this.Right; }; CMargins.prototype.put_Right = function (v) { this.Right = v; }; CMargins.prototype.get_Top = function () { return this.Top; }; CMargins.prototype.put_Top = function (v) { this.Top = v; }; CMargins.prototype.get_Bottom = function () { return this.Bottom; }; CMargins.prototype.put_Bottom = function (v) { this.Bottom = v; }; CMargins.prototype.get_Flag = function () { return this.Flag; }; CMargins.prototype.put_Flag = function (v) { this.Flag = v; }; window['Asc']['CBorders'] = window['Asc'].CBorders = CBorders; CBorders.prototype['get_Left'] = CBorders.prototype.get_Left; CBorders.prototype['put_Left'] = CBorders.prototype.put_Left; CBorders.prototype['get_Top'] = CBorders.prototype.get_Top; CBorders.prototype['put_Top'] = CBorders.prototype.put_Top; CBorders.prototype['get_Right'] = CBorders.prototype.get_Right; CBorders.prototype['put_Right'] = CBorders.prototype.put_Right; CBorders.prototype['get_Bottom'] = CBorders.prototype.get_Bottom; CBorders.prototype['put_Bottom'] = CBorders.prototype.put_Bottom; CBorders.prototype['get_InsideH'] = CBorders.prototype.get_InsideH; CBorders.prototype['put_InsideH'] = CBorders.prototype.put_InsideH; CBorders.prototype['get_InsideV'] = CBorders.prototype.get_InsideV; CBorders.prototype['put_InsideV'] = CBorders.prototype.put_InsideV; window['Asc']['CMargins'] = window['Asc'].CMargins = CMargins; CMargins.prototype['get_Left'] = CMargins.prototype.get_Left; CMargins.prototype['put_Left'] = CMargins.prototype.put_Left; CMargins.prototype['get_Right'] = CMargins.prototype.get_Right; CMargins.prototype['put_Right'] = CMargins.prototype.put_Right; CMargins.prototype['get_Top'] = CMargins.prototype.get_Top; CMargins.prototype['put_Top'] = CMargins.prototype.put_Top; CMargins.prototype['get_Bottom'] = CMargins.prototype.get_Bottom; CMargins.prototype['put_Bottom'] = CMargins.prototype.put_Bottom; CMargins.prototype['get_Flag'] = CMargins.prototype.get_Flag; CMargins.prototype['put_Flag'] = CMargins.prototype.put_Flag; // --------------------------------------------------------------- function CParagraphPropEx(obj) { if (obj) { this.ContextualSpacing = (undefined != obj.ContextualSpacing) ? obj.ContextualSpacing : null; this.Ind = (undefined != obj.Ind && null != obj.Ind) ? new Asc.asc_CParagraphInd(obj.Ind) : null; this.Jc = (undefined != obj.Jc) ? obj.Jc : null; this.KeepLines = (undefined != obj.KeepLines) ? obj.KeepLines : null; this.KeepNext = (undefined != obj.KeepNext) ? obj.KeepNext : null; this.PageBreakBefore = (undefined != obj.PageBreakBefore) ? obj.PageBreakBefore : null; this.Spacing = (undefined != obj.Spacing && null != obj.Spacing) ? new AscCommon.asc_CParagraphSpacing(obj.Spacing) : null; this.Shd = (undefined != obj.Shd && null != obj.Shd) ? new Asc.asc_CParagraphShd(obj.Shd) : null; this.WidowControl = (undefined != obj.WidowControl) ? obj.WidowControl : null; // Запрет висячих строк this.Tabs = obj.Tabs; } else { //ContextualSpacing : false, // Удалять ли интервал между параграфами одинакового стиля // // Ind : // { // Left : 0, // Левый отступ // Right : 0, // Правый отступ // FirstLine : 0 // Первая строка // }, // // Jc : align_Left, // Прилегание параграфа // // KeepLines : false, // переносить параграф на новую страницу, // // если на текущей он целиком не убирается // KeepNext : false, // переносить параграф вместе со следующим параграфом // // PageBreakBefore : false, // начинать параграф с новой страницы // Spacing : // { // Line : 1.15, // Расстояние между строками внутри абзаца // LineRule : linerule_Auto, // Тип расстрояния между строками // Before : 0, // Дополнительное расстояние до абзаца // After : 10 * g_dKoef_pt_to_mm // Дополнительное расстояние после абзаца // }, // // Shd : // { // Value : shd_Nil, // Color : // { // r : 255, // g : 255, // b : 255 // } // }, // // WidowControl : true, // Запрет висячих строк // // Tabs : [] this.ContextualSpacing = false; this.Ind = new Asc.asc_CParagraphInd(); this.Jc = AscCommon.align_Left; this.KeepLines = false; this.KeepNext = false; this.PageBreakBefore = false; this.Spacing = new AscCommon.asc_CParagraphSpacing(); this.Shd = new Asc.asc_CParagraphShd(); this.WidowControl = true; // Запрет висячих строк this.Tabs = null; } } CParagraphPropEx.prototype.get_ContextualSpacing = function () { return this.ContextualSpacing; }; CParagraphPropEx.prototype.get_Ind = function () { return this.Ind; }; CParagraphPropEx.prototype.get_Jc = function () { return this.Jc; }; CParagraphPropEx.prototype.get_KeepLines = function () { return this.KeepLines; }; CParagraphPropEx.prototype.get_KeepNext = function () { return this.KeepNext; }; CParagraphPropEx.prototype.get_PageBreakBefore = function () { return this.PageBreakBefore; }; CParagraphPropEx.prototype.get_Spacing = function () { return this.Spacing; }; CParagraphPropEx.prototype.get_Shd = function () { return this.Shd; }; CParagraphPropEx.prototype.get_WidowControl = function () { return this.WidowControl; }; CParagraphPropEx.prototype.get_Tabs = function () { return this.Tabs; }; function CTextProp(obj) { if (obj) { this.Bold = (undefined != obj.Bold) ? obj.Bold : null; this.Italic = (undefined != obj.Italic) ? obj.Italic : null; this.Underline = (undefined != obj.Underline) ? obj.Underline : null; this.Strikeout = (undefined != obj.Strikeout) ? obj.Strikeout : null; this.FontFamily = (undefined != obj.FontFamily && null != obj.FontFamily) ? new AscCommon.asc_CTextFontFamily(obj.FontFamily) : new AscCommon.asc_CTextFontFamily({Name : "", Index : -1}); this.FontSize = (undefined != obj.FontSize) ? obj.FontSize : null; this.Color = (undefined != obj.Color && null != obj.Color) ? AscCommon.CreateAscColorCustom(obj.Color.r, obj.Color.g, obj.Color.b) : null; this.VertAlign = (undefined != obj.VertAlign) ? obj.VertAlign : null; this.HighLight = (undefined != obj.HighLight) ? obj.HighLight == AscCommonWord.highlight_None ? obj.HighLight : new AscCommon.CColor(obj.HighLight.r, obj.HighLight.g, obj.HighLight.b) : null; this.DStrikeout = (undefined != obj.DStrikeout) ? obj.DStrikeout : null; this.Spacing = (undefined != obj.Spacing) ? obj.Spacing : null; this.Caps = (undefined != obj.Caps) ? obj.Caps : null; this.SmallCaps = (undefined != obj.SmallCaps) ? obj.SmallCaps : null; } else { // Bold : false, // Italic : false, // Underline : false, // Strikeout : false, // FontFamily : // { // Name : "Times New Roman", // Index : -1 // }, // FontSize : 12, // Color : // { // r : 0, // g : 0, // b : 0 // }, // VertAlign : vertalign_Baseline, // HighLight : highlight_None this.Bold = false; this.Italic = false; this.Underline = false; this.Strikeout = false; this.FontFamily = new AscCommon.asc_CTextFontFamily(); this.FontSize = 12; this.Color = AscCommon.CreateAscColorCustom(0, 0, 0); this.VertAlign = AscCommon.vertalign_Baseline; this.HighLight = AscCommonWord.highlight_None; this.DStrikeout = false; this.Spacing = 0; this.Caps = false; this.SmallCaps = false; } } CTextProp.prototype.get_Bold = function () { return this.Bold; }; CTextProp.prototype.get_Italic = function () { return this.Italic; }; CTextProp.prototype.get_Underline = function () { return this.Underline; }; CTextProp.prototype.get_Strikeout = function () { return this.Strikeout; }; CTextProp.prototype.get_FontFamily = function () { return this.FontFamily; }; CTextProp.prototype.get_FontSize = function () { return this.FontSize; }; CTextProp.prototype.get_Color = function () { return this.Color; }; CTextProp.prototype.get_VertAlign = function () { return this.VertAlign; }; CTextProp.prototype.get_HighLight = function () { return this.HighLight; }; CTextProp.prototype.get_Spacing = function () { return this.Spacing; }; CTextProp.prototype.get_DStrikeout = function () { return this.DStrikeout; }; CTextProp.prototype.get_Caps = function () { return this.Caps; }; CTextProp.prototype.get_SmallCaps = function () { return this.SmallCaps; }; CParagraphPropEx.prototype['get_ContextualSpacing'] = CParagraphPropEx.prototype.get_ContextualSpacing; CParagraphPropEx.prototype['get_Ind'] = CParagraphPropEx.prototype.get_Ind; CParagraphPropEx.prototype['get_Jc'] = CParagraphPropEx.prototype.get_Jc; CParagraphPropEx.prototype['get_KeepLines'] = CParagraphPropEx.prototype.get_KeepLines; CParagraphPropEx.prototype['get_KeepNext'] = CParagraphPropEx.prototype.get_KeepNext; CParagraphPropEx.prototype['get_PageBreakBefore'] = CParagraphPropEx.prototype.get_PageBreakBefore; CParagraphPropEx.prototype['get_Spacing'] = CParagraphPropEx.prototype.get_Spacing; CParagraphPropEx.prototype['get_Shd'] = CParagraphPropEx.prototype.get_Shd; CParagraphPropEx.prototype['get_WidowControl'] = CParagraphPropEx.prototype.get_WidowControl; CParagraphPropEx.prototype['get_Tabs'] = CParagraphPropEx.prototype.get_Tabs; CTextProp.prototype['get_Bold'] = CTextProp.prototype.get_Bold; CTextProp.prototype['get_Italic'] = CTextProp.prototype.get_Italic; CTextProp.prototype['get_Underline'] = CTextProp.prototype.get_Underline; CTextProp.prototype['get_Strikeout'] = CTextProp.prototype.get_Strikeout; CTextProp.prototype['get_FontFamily'] = CTextProp.prototype.get_FontFamily; CTextProp.prototype['get_FontSize'] = CTextProp.prototype.get_FontSize; CTextProp.prototype['get_Color'] = CTextProp.prototype.get_Color; CTextProp.prototype['get_VertAlign'] = CTextProp.prototype.get_VertAlign; CTextProp.prototype['get_HighLight'] = CTextProp.prototype.get_HighLight; CTextProp.prototype['get_Spacing'] = CTextProp.prototype.get_Spacing; CTextProp.prototype['get_DStrikeout'] = CTextProp.prototype.get_DStrikeout; CTextProp.prototype['get_Caps'] = CTextProp.prototype.get_Caps; CTextProp.prototype['get_SmallCaps'] = CTextProp.prototype.get_SmallCaps; /** * Paragraph and text properties objects container * @param paragraphProp * @param textProp * @constructor */ function CParagraphAndTextProp(paragraphProp, textProp) { this.ParaPr = (undefined != paragraphProp && null != paragraphProp) ? new CParagraphPropEx(paragraphProp) : null; this.TextPr = (undefined != textProp && null != textProp) ? new CTextProp(textProp) : null; } /** * @returns {?CParagraphPropEx} */ CParagraphAndTextProp.prototype.get_ParaPr = function () { return this.ParaPr; }; /** * @returns {?CTextProp} */ CParagraphAndTextProp.prototype.get_TextPr = function () { return this.TextPr; }; window['Asc']['CParagraphAndTextProp'] = window['Asc'].CParagraphAndTextProp = CParagraphAndTextProp; CParagraphAndTextProp.prototype['get_ParaPr'] = CParagraphAndTextProp.prototype.get_ParaPr; CParagraphAndTextProp.prototype['get_TextPr'] = CParagraphAndTextProp.prototype.get_TextPr; // --------------------------------------------------------------- function GenerateTableStyles(drawingDoc, logicDoc, tableLook) { var _dst_styles = []; var _styles = logicDoc.Styles.Get_AllTableStyles(); var _styles_len = _styles.length; if (_styles_len == 0) return _dst_styles; var _x_mar = 10; var _y_mar = 10; var _r_mar = 10; var _b_mar = 10; var _pageW = 297; var _pageH = 210; var W = (_pageW - _x_mar - _r_mar); var H = (_pageH - _y_mar - _b_mar); var Grid = []; var Rows = 5; var Cols = 5; for (var i = 0; i < Cols; i++) Grid[i] = W / Cols; var _canvas = document.createElement('canvas'); if (!this.m_oWordControl.bIsRetinaSupport) { _canvas.width = TABLE_STYLE_WIDTH_PIX; _canvas.height = TABLE_STYLE_HEIGHT_PIX; } else { _canvas.width = AscCommon.AscBrowser.convertToRetinaValue(TABLE_STYLE_WIDTH_PIX, true); _canvas.height = AscCommon.AscBrowser.convertToRetinaValue(TABLE_STYLE_HEIGHT_PIX, true); } var ctx = _canvas.getContext('2d'); AscCommon.History.TurnOff(); for (var i1 = 0; i1 < _styles_len; i1++) { var i = _styles[i1]; var _style = logicDoc.Styles.Style[i]; if (!_style || _style.Type != styletype_Table) continue; var table = new CTable(drawingDoc, logicDoc, true, Rows, Cols, Grid); table.Set_Props({TableStyle: i}); for (var j = 0; j < Rows; j++) table.Content[j].Set_Height(H / Rows, Asc.linerule_AtLeast); ctx.fillStyle = "#FFFFFF"; ctx.fillRect(0, 0, _canvas.width, _canvas.height); var graphics = new AscCommon.CGraphics(); graphics.init(ctx, _canvas.width, _canvas.height, _pageW, _pageH); graphics.m_oFontManager = AscCommon.g_fontManager; graphics.transform(1, 0, 0, 1, 0, 0); table.Reset(_x_mar, _y_mar, 1000, 1000, 0, 0, 1); table.Recalculate_Page(0); table.Draw(0, graphics); var _styleD = new CAscTableStyle(); _styleD.Type = 0; _styleD.Image = _canvas.toDataURL("image/png"); _styleD.Id = i; _dst_styles.push(_styleD); } AscCommon.History.TurnOn(); return _dst_styles; } /* структура заголовков, предварительно, выглядит так { headerText: "Header1",//заголовок pageNumber: 0, //содержит номер страницы, где находится искомая последовательность X: 0,//координаты по OX начала последовательности на данной страницы Y: 0,//координаты по OY начала последовательности на данной страницы level: 0//уровень заголовка } заголовки приходят либо в списке, либо последовательно. */ function CHeader(obj) { if (obj) { this.headerText = (undefined != obj.headerText) ? obj.headerText : null; //заголовок this.pageNumber = (undefined != obj.pageNumber) ? obj.pageNumber : null; //содержит номер страницы, где находится искомая последовательность this.X = (undefined != obj.X) ? obj.X : null; //координаты по OX начала последовательности на данной страницы this.Y = (undefined != obj.Y) ? obj.Y : null; //координаты по OY начала последовательности на данной страницы this.level = (undefined != obj.level) ? obj.level : null; //позиция заголовка } else { this.headerText = null; //заголовок this.pageNumber = null; //содержит номер страницы, где находится искомая последовательность this.X = null; //координаты по OX начала последовательности на данной страницы this.Y = null; //координаты по OY начала последовательности на данной страницы this.level = null; //позиция заголовка } } CHeader.prototype.get_headerText = function () { return this.headerText; }; CHeader.prototype.get_pageNumber = function () { return this.pageNumber; }; CHeader.prototype.get_X = function () { return this.X; }; CHeader.prototype.get_Y = function () { return this.Y; }; CHeader.prototype.get_Level = function () { return this.level; }; window['Asc']['CHeader'] = window['Asc'].CHeader = CHeader; CHeader.prototype['get_headerText'] = CHeader.prototype.get_headerText; CHeader.prototype['get_pageNumber'] = CHeader.prototype.get_pageNumber; CHeader.prototype['get_X'] = CHeader.prototype.get_X; CHeader.prototype['get_Y'] = CHeader.prototype.get_Y; CHeader.prototype['get_Level'] = CHeader.prototype.get_Level; /** * Класс для работы с настройками таблицы содержимого * @constructor */ function CTableOfContentsPr() { this.Hyperlink = true; this.OutlineStart = -1; this.OutlineEnd = -1; this.Styles = []; this.PageNumbers = true; this.RightTab = true; // Эти параметры задаются только из интерфейса this.TabLeader = undefined; this.StylesType = Asc.c_oAscTOCStylesType.Current; this.ComplexField = null; } CTableOfContentsPr.prototype.InitFromTOCInstruction = function(oComplexField) { if (!oComplexField) return; var oInstruction = oComplexField.GetInstruction(); if (!oInstruction) return; this.Hyperlink = oInstruction.IsHyperlinks(); this.OutlineStart = oInstruction.GetHeadingRangeStart(); this.OutlineEnd = oInstruction.GetHeadingRangeEnd(); this.Styles = oInstruction.GetStylesArray(); this.PageNumbers = !oInstruction.IsSkipPageRefLvl(); this.RightTab = "" === oInstruction.GetSeparator(); var oBeginChar = oComplexField.GetBeginChar(); if (oBeginChar && oBeginChar.GetRun() && oBeginChar.GetRun().GetParagraph()) { var oTabs = oBeginChar.GetRun().GetParagraph().GetParagraphTabs(); if (oTabs.Tabs.length > 0) { this.TabLeader = oTabs.Tabs[oTabs.Tabs.length - 1].Leader; } } this.ComplexField = oComplexField; }; CTableOfContentsPr.prototype.InitFromSdtTOC = function(oSdtTOC) { this.ComplexField = oSdtTOC; }; CTableOfContentsPr.prototype.CheckStylesType = function(oStyles) { if (oStyles) this.StylesType = oStyles.GetTOCStylesType(); }; CTableOfContentsPr.prototype.get_Hyperlink = function() { return this.Hyperlink; }; CTableOfContentsPr.prototype.put_Hyperlink = function(isHyperlink) { this.Hyperlink = isHyperlink; }; CTableOfContentsPr.prototype.get_OutlineStart = function() { return this.OutlineStart; }; CTableOfContentsPr.prototype.get_OutlineEnd = function() { return this.OutlineEnd; }; CTableOfContentsPr.prototype.put_OutlineRange = function(nStart, nEnd) { this.OutlineStart = nStart; this.OutlineEnd = nEnd; }; CTableOfContentsPr.prototype.get_StylesCount = function() { return this.Styles.length; }; CTableOfContentsPr.prototype.get_StyleName = function(nIndex) { if (nIndex < 0 || nIndex >= this.Styles.length) return ""; return this.Styles[nIndex].Name; }; CTableOfContentsPr.prototype.get_StyleLevel = function(nIndex) { if (nIndex < 0 || nIndex >= this.Styles.length) return -1; return this.Styles[nIndex].Lvl; }; CTableOfContentsPr.prototype.get_Styles = function() { return this.Styles; }; CTableOfContentsPr.prototype.clear_Styles = function() { this.Styles = []; }; CTableOfContentsPr.prototype.add_Style = function(sName, nLvl) { this.Styles.push({Name : sName, Lvl : nLvl}); }; CTableOfContentsPr.prototype.put_ShowPageNumbers = function(isShow) { this.PageNumbers = isShow; }; CTableOfContentsPr.prototype.get_ShowPageNumbers = function() { return this.PageNumbers; }; CTableOfContentsPr.prototype.put_RightAlignTab = function(isRightTab) { this.RightTab = isRightTab; }; CTableOfContentsPr.prototype.get_RightAlignTab = function() { return this.RightTab; }; CTableOfContentsPr.prototype.put_TabLeader = function(nTabLeader) { this.TabLeader = nTabLeader; }; CTableOfContentsPr.prototype.get_TabLeader = function() { return this.TabLeader; }; CTableOfContentsPr.prototype.get_StylesType = function() { return this.StylesType; }; CTableOfContentsPr.prototype.put_StylesType = function(nType) { this.StylesType = nType; }; CTableOfContentsPr.prototype.get_InternalClass = function() { return this.ComplexField; }; window['Asc']['CTableOfContentsPr'] = window['Asc'].CTableOfContentsPr = CTableOfContentsPr; CTableOfContentsPr.prototype['get_Hyperlink'] = CTableOfContentsPr.prototype.get_Hyperlink; CTableOfContentsPr.prototype['put_Hyperlink'] = CTableOfContentsPr.prototype.put_Hyperlink; CTableOfContentsPr.prototype['get_OutlineStart'] = CTableOfContentsPr.prototype.get_OutlineStart; CTableOfContentsPr.prototype['get_OutlineEnd'] = CTableOfContentsPr.prototype.get_OutlineEnd; CTableOfContentsPr.prototype['put_OutlineRange'] = CTableOfContentsPr.prototype.put_OutlineRange; CTableOfContentsPr.prototype['get_StylesCount'] = CTableOfContentsPr.prototype.get_StylesCount; CTableOfContentsPr.prototype['get_StyleName'] = CTableOfContentsPr.prototype.get_StyleName; CTableOfContentsPr.prototype['get_StyleLevel'] = CTableOfContentsPr.prototype.get_StyleLevel; CTableOfContentsPr.prototype['clear_Styles'] = CTableOfContentsPr.prototype.clear_Styles; CTableOfContentsPr.prototype['add_Style'] = CTableOfContentsPr.prototype.add_Style; CTableOfContentsPr.prototype['put_ShowPageNumbers'] = CTableOfContentsPr.prototype.put_ShowPageNumbers; CTableOfContentsPr.prototype['get_ShowPageNumbers'] = CTableOfContentsPr.prototype.get_ShowPageNumbers; CTableOfContentsPr.prototype['put_RightAlignTab'] = CTableOfContentsPr.prototype.put_RightAlignTab; CTableOfContentsPr.prototype['get_RightAlignTab'] = CTableOfContentsPr.prototype.get_RightAlignTab; CTableOfContentsPr.prototype['get_TabLeader'] = CTableOfContentsPr.prototype.get_TabLeader; CTableOfContentsPr.prototype['put_TabLeader'] = CTableOfContentsPr.prototype.put_TabLeader; CTableOfContentsPr.prototype['get_StylesType'] = CTableOfContentsPr.prototype.get_StylesType; CTableOfContentsPr.prototype['put_StylesType'] = CTableOfContentsPr.prototype.put_StylesType; CTableOfContentsPr.prototype['get_InternalClass'] = CTableOfContentsPr.prototype.get_InternalClass; /** * Класс для работы с настройками стиля * @constructor */ function CAscStyle() { this.Name = ""; this.Type = Asc.c_oAscStyleType.Paragraph; this.qFormat = undefined; this.uiPriority = undefined; this.StyleId = ""; } CAscStyle.prototype.get_Name = function() { return this.Name; }; CAscStyle.prototype.put_Name = function(sName) { this.Name = sName; }; CAscStyle.prototype.get_Type = function() { return this.Type; }; CAscStyle.prototype.put_Type = function(nType) { this.Type = nType; }; CAscStyle.prototype.get_QFormat = function() { return this.qFormat; }; CAscStyle.prototype.put_QFormat = function(isQFormat) { this.qFormat = isQFormat; }; CAscStyle.prototype.get_UIPriority = function() { return this.uiPriority; }; CAscStyle.prototype.put_UIPriority = function(nPriority) { this.uiPriority = nPriority; }; CAscStyle.prototype.get_StyleId = function() { return this.StyleId; }; window['Asc']['CAscStyle'] = window['Asc'].CAscStyle = CAscStyle; CAscStyle.prototype['get_Name'] = CAscStyle.prototype.get_Name; CAscStyle.prototype['put_Name'] = CAscStyle.prototype.put_Name; CAscStyle.prototype['get_Type'] = CAscStyle.prototype.get_Type; CAscStyle.prototype['put_Type'] = CAscStyle.prototype.put_Type; CAscStyle.prototype['get_QFormat'] = CAscStyle.prototype.get_QFormat; CAscStyle.prototype['put_QFormat'] = CAscStyle.prototype.put_QFormat; CAscStyle.prototype['get_UIPriority'] = CAscStyle.prototype.get_UIPriority; CAscStyle.prototype['put_UIPriority'] = CAscStyle.prototype.put_UIPriority; CAscStyle.prototype['get_StyleId'] = CAscStyle.prototype.get_StyleId; /** * Класс для работы с настройками нумерации * @constructor */ function CAscNumbering() { this.NumId = ""; this.Lvl = new Array(9); for (var nLvl = 0; nLvl < 9; ++nLvl) { this.Lvl[nLvl] = new CAscNumberingLvl(nLvl); } } CAscNumbering.prototype.get_InternalId = function() { return this.NumId; }; CAscNumbering.prototype.get_Lvl = function(nLvl) { if (nLvl < 0) return this.Lvl[0]; else if (nLvl > 8) return this.Lvl[8]; else if (!this.Lvl[nLvl]) return this.Lvl[0]; return this.Lvl[nLvl]; }; window['Asc']['CAscNumbering'] = window['Asc'].CAscNumbering = CAscNumbering; CAscNumbering.prototype['get_InternalId'] = CAscNumbering.prototype.get_InternalId; CAscNumbering.prototype['get_Lvl'] = CAscNumbering.prototype.get_Lvl; /** * Класс для работы с текстом конкретного уровня нумерации * @constructor */ function CAscNumberingLvlText(Type, Value) { this.Type = undefined !== Type ? Type : Asc.c_oAscNumberingLvlTextType.Text; this.Value = undefined !== Value ? Value : ""; } CAscNumberingLvlText.prototype.get_Type = function() { return this.Type; }; CAscNumberingLvlText.prototype.put_Type = function(nType) { this.Type = nType; }; CAscNumberingLvlText.prototype.get_Value = function() { return this.Value; }; CAscNumberingLvlText.prototype.put_Value = function(vVal) { this.Value = vVal; }; window['Asc']['CAscNumberingLvlText'] = window['Asc'].CAscNumberingLvlText = CAscNumberingLvlText; CAscNumberingLvlText.prototype['get_Type'] = CAscNumberingLvlText.prototype.get_Type; CAscNumberingLvlText.prototype['put_Type'] = CAscNumberingLvlText.prototype.put_Type; CAscNumberingLvlText.prototype['get_Value'] = CAscNumberingLvlText.prototype.get_Value; CAscNumberingLvlText.prototype['put_Value'] = CAscNumberingLvlText.prototype.put_Value; /** * Класс для работы с настройками конкретного уровня нумерации * @constructor */ function CAscNumberingLvl(nLvlNum) { this.LvlNum = nLvlNum; this.Format = Asc.c_oAscNumberingFormat.Bullet; this.Text = []; this.TextPr = new AscCommonWord.CTextPr(); this.ParaPr = new AscCommonWord.CParaPr(); this.Start = 1; this.Restart = -1; this.Suff = Asc.c_oAscNumberingSuff.Tab; this.Align = AscCommon.align_Left; } CAscNumberingLvl.prototype.get_LvlNum = function() { return this.LvlNum; }; CAscNumberingLvl.prototype.get_Format = function() { return this.Format; }; CAscNumberingLvl.prototype.put_Format = function(nFormat) { this.Format = nFormat; }; CAscNumberingLvl.prototype.get_Text = function() { return this.Text; }; CAscNumberingLvl.prototype.put_Text = function(arrText) { this.Text = arrText; }; CAscNumberingLvl.prototype.get_TextPr = function() { return this.TextPr; }; CAscNumberingLvl.prototype.get_ParaPr = function() { return this.ParaPr; }; CAscNumberingLvl.prototype.get_Start = function() { return this.Start; }; CAscNumberingLvl.prototype.put_Start = function(nStart) { this.Start = nStart; }; CAscNumberingLvl.prototype.get_Restart = function() { return this.Restart; }; CAscNumberingLvl.prototype.put_Restart = function(nRestart) { this.Restart = nRestart; }; CAscNumberingLvl.prototype.get_Suff = function() { return this.Suff; }; CAscNumberingLvl.prototype.put_Suff = function(nSuff) { this.Suff = nSuff; }; CAscNumberingLvl.prototype.get_Align = function() { return this.Align; }; CAscNumberingLvl.prototype.put_Align = function(nAlign) { this.Align = nAlign; }; window['Asc']['CAscNumberingLvl'] = window['Asc'].CAscNumberingLvl = CAscNumberingLvl; CAscNumberingLvl.prototype['get_LvlNum'] = CAscNumberingLvl.prototype.get_LvlNum; CAscNumberingLvl.prototype['get_Format'] = CAscNumberingLvl.prototype.get_Format; CAscNumberingLvl.prototype['put_Format'] = CAscNumberingLvl.prototype.put_Format; CAscNumberingLvl.prototype['get_Text'] = CAscNumberingLvl.prototype.get_Text; CAscNumberingLvl.prototype['put_Text'] = CAscNumberingLvl.prototype.put_Text; CAscNumberingLvl.prototype['get_TextPr'] = CAscNumberingLvl.prototype.get_TextPr; CAscNumberingLvl.prototype['get_ParaPr'] = CAscNumberingLvl.prototype.get_ParaPr; CAscNumberingLvl.prototype['get_Start'] = CAscNumberingLvl.prototype.get_Start; CAscNumberingLvl.prototype['put_Start'] = CAscNumberingLvl.prototype.put_Start; CAscNumberingLvl.prototype['get_Restart'] = CAscNumberingLvl.prototype.get_Restart; CAscNumberingLvl.prototype['put_Restart'] = CAscNumberingLvl.prototype.put_Restart; CAscNumberingLvl.prototype['get_Suff'] = CAscNumberingLvl.prototype.get_Suff; CAscNumberingLvl.prototype['put_Suff'] = CAscNumberingLvl.prototype.put_Suff; CAscNumberingLvl.prototype['get_Align'] = CAscNumberingLvl.prototype.get_Align; CAscNumberingLvl.prototype['put_Align'] = CAscNumberingLvl.prototype.put_Align; })(window, undefined); /* * (c) Copyright Ascensio System SIA 2010-2018 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; (function(window, document) { // Import var g_fontApplication = null; var c_oAscAdvancedOptionsAction = AscCommon.c_oAscAdvancedOptionsAction; var DownloadType = AscCommon.DownloadType; var c_oAscFormatPainterState = AscCommon.c_oAscFormatPainterState; var locktype_None = AscCommon.locktype_None; var locktype_Mine = AscCommon.locktype_Mine; var locktype_Other = AscCommon.locktype_Other; var locktype_Other2 = AscCommon.locktype_Other2; var locktype_Other3 = AscCommon.locktype_Other3; var changestype_None = AscCommon.changestype_None; var changestype_Paragraph_Content = AscCommon.changestype_Paragraph_Content; var changestype_Paragraph_Properties = AscCommon.changestype_Paragraph_Properties; var changestype_Table_Properties = AscCommon.changestype_Table_Properties; var changestype_Table_RemoveCells = AscCommon.changestype_Table_RemoveCells; var changestype_HdrFtr = AscCommon.changestype_HdrFtr; var asc_CTextFontFamily = AscCommon.asc_CTextFontFamily; var asc_CSelectedObject = AscCommon.asc_CSelectedObject; var g_oDocumentUrls = AscCommon.g_oDocumentUrls; var sendCommand = AscCommon.sendCommand; var mapAscServerErrorToAscError = AscCommon.mapAscServerErrorToAscError; var g_oIdCounter = AscCommon.g_oIdCounter; var g_oTableId = AscCommon.g_oTableId; var PasteElementsId = null; var global_mouseEvent = null; var History = null; var c_oAscError = Asc.c_oAscError; var c_oAscFileType = Asc.c_oAscFileType; var c_oAscAsyncAction = Asc.c_oAscAsyncAction; var c_oAscAdvancedOptionsID = Asc.c_oAscAdvancedOptionsID; var c_oAscFontRenderingModeType = Asc.c_oAscFontRenderingModeType; var c_oAscAsyncActionType = Asc.c_oAscAsyncActionType; var c_oAscTypeSelectElement = Asc.c_oAscTypeSelectElement; var c_oAscFill = Asc.c_oAscFill; var asc_CImgProperty = Asc.asc_CImgProperty; var asc_CShapeFill = Asc.asc_CShapeFill; var asc_CFillBlip = Asc.asc_CFillBlip; function CAscSection() { this.PageWidth = 0; this.PageHeight = 0; this.MarginLeft = 0; this.MarginRight = 0; this.MarginTop = 0; this.MarginBottom = 0; } CAscSection.prototype.get_PageWidth = function() { return this.PageWidth; }; CAscSection.prototype.get_PageHeight = function() { return this.PageHeight; }; CAscSection.prototype.get_MarginLeft = function() { return this.MarginLeft; }; CAscSection.prototype.get_MarginRight = function() { return this.MarginRight; }; CAscSection.prototype.get_MarginTop = function() { return this.MarginTop; }; CAscSection.prototype.get_MarginBottom = function() { return this.MarginBottom; }; function CHeaderProp(obj) { /*{ Type : hdrftr_Footer (hdrftr_Header), Position : 12.5, DifferentFirst : true/false, DifferentEvenOdd : true/false, }*/ if (obj) { this.Type = (undefined != obj.Type) ? obj.Type : null; this.Position = (undefined != obj.Position) ? obj.Position : null; this.DifferentFirst = (undefined != obj.DifferentFirst) ? obj.DifferentFirst : null; this.DifferentEvenOdd = (undefined != obj.DifferentEvenOdd) ? obj.DifferentEvenOdd : null; this.LinkToPrevious = (undefined != obj.LinkToPrevious) ? obj.LinkToPrevious : null; this.Locked = (undefined != obj.Locked) ? obj.Locked : false; this.StartPageNumber = (undefined != obj.StartPageNumber) ? obj.StartPageNumber : -1; } else { this.Type = AscCommon.hdrftr_Footer; this.Position = 12.5; this.DifferentFirst = false; this.DifferentEvenOdd = false; this.LinkToPrevious = null; this.Locked = false; this.StartPageNumber = -1; } } CHeaderProp.prototype.get_Type = function() { return this.Type; }; CHeaderProp.prototype.put_Type = function(v) { this.Type = v; }; CHeaderProp.prototype.get_Position = function() { return this.Position; }; CHeaderProp.prototype.put_Position = function(v) { this.Position = v; }; CHeaderProp.prototype.get_DifferentFirst = function() { return this.DifferentFirst; }; CHeaderProp.prototype.put_DifferentFirst = function(v) { this.DifferentFirst = v; }; CHeaderProp.prototype.get_DifferentEvenOdd = function() { return this.DifferentEvenOdd; }; CHeaderProp.prototype.put_DifferentEvenOdd = function(v) { this.DifferentEvenOdd = v; }; CHeaderProp.prototype.get_LinkToPrevious = function() { return this.LinkToPrevious; }; CHeaderProp.prototype.get_Locked = function() { return this.Locked; }; CHeaderProp.prototype.get_StartPageNumber = function() { return this.StartPageNumber; }; CHeaderProp.prototype.put_StartPageNumber = function(nStartPage) { this.StartPageNumber = nStartPage; }; var DocumentPageSize = new function() { this.oSizes = [{name : "US Letter", w_mm : 215.9, h_mm : 279.4, w_tw : 12240, h_tw : 15840}, {name : "US Legal", w_mm : 215.9, h_mm : 355.6, w_tw : 12240, h_tw : 20160}, {name : "A4", w_mm : 210, h_mm : 297, w_tw : 11907, h_tw : 16839}, {name : "A5", w_mm : 148.1, h_mm : 209.9, w_tw : 8391, h_tw : 11907}, {name : "B5", w_mm : 176, h_mm : 250.1, w_tw : 9979, h_tw : 14175}, {name : "Envelope #10", w_mm : 104.8, h_mm : 241.3, w_tw : 5940, h_tw : 13680}, {name : "Envelope DL", w_mm : 110.1, h_mm : 220.1, w_tw : 6237, h_tw : 12474}, {name : "Tabloid", w_mm : 279.4, h_mm : 431.7, w_tw : 15842, h_tw : 24477}, {name : "A3", w_mm : 297, h_mm : 420.1, w_tw : 16840, h_tw : 23820}, {name : "Tabloid Oversize", w_mm : 304.8, h_mm : 457.1, w_tw : 17282, h_tw : 25918}, {name : "ROC 16K", w_mm : 196.8, h_mm : 273, w_tw : 11164, h_tw : 15485}, {name : "Envelope Coukei 3", w_mm : 119.9, h_mm : 234.9, w_tw : 6798, h_tw : 13319}, {name : "Super B/A3", w_mm : 330.2, h_mm : 482.5, w_tw : 18722, h_tw : 27358} ]; this.sizeEpsMM = 0.5; this.getSize = function(widthMm, heightMm) { for (var index in this.oSizes) { var item = this.oSizes[index]; if (Math.abs(widthMm - item.w_mm) < this.sizeEpsMM && Math.abs(heightMm - item.h_mm) < this.sizeEpsMM) return item; } return {w_mm : widthMm, h_mm : heightMm}; }; }; function CMailMergeSendData(obj) { if (obj) { if (typeof obj.from != 'undefined') { this["from"] = obj.from; } if (typeof obj.to != 'undefined') { this["to"] = obj.to; } if (typeof obj.subject != 'undefined') { this["subject"] = obj.subject; } if (typeof obj.mailFormat != 'undefined') { this["mailFormat"] = obj.mailFormat; } if (typeof obj.fileName != 'undefined') { this["fileName"] = obj.fileName; } if (typeof obj.message != 'undefined') { this["message"] = obj.message; } if (typeof obj.recordFrom != 'undefined') { this["recordFrom"] = obj.recordFrom; } if (typeof obj.recordTo != 'undefined') { this["recordTo"] = obj.recordTo; } if (typeof obj.isJson != 'undefined') { this["isJson"] = obj.isJson; } } else { this["from"] = null; this["to"] = null; this["subject"] = null; this["mailFormat"] = null; this["fileName"] = null; this["message"] = null; this["recordFrom"] = null; this["recordTo"] = null; this["recordCount"] = null; this["userId"] = null; this["isJson"] = null; } } CMailMergeSendData.prototype.get_From = function() { return this["from"] }; CMailMergeSendData.prototype.put_From = function(v) { this["from"] = v; }; CMailMergeSendData.prototype.get_To = function() { return this["to"] }; CMailMergeSendData.prototype.put_To = function(v) { this["to"] = v; }; CMailMergeSendData.prototype.get_Subject = function() { return this["subject"] }; CMailMergeSendData.prototype.put_Subject = function(v) { this["subject"] = v; }; CMailMergeSendData.prototype.get_MailFormat = function() { return this["mailFormat"] }; CMailMergeSendData.prototype.put_MailFormat = function(v) { this["mailFormat"] = v; }; CMailMergeSendData.prototype.get_FileName = function() { return this["fileName"] }; CMailMergeSendData.prototype.put_FileName = function(v) { this["fileName"] = v; }; CMailMergeSendData.prototype.get_Message = function() { return this["message"] }; CMailMergeSendData.prototype.put_Message = function(v) { this["message"] = v; }; CMailMergeSendData.prototype.get_RecordFrom = function() { return this["recordFrom"] }; CMailMergeSendData.prototype.put_RecordFrom = function(v) { this["recordFrom"] = v; }; CMailMergeSendData.prototype.get_RecordTo = function() { return this["recordTo"] }; CMailMergeSendData.prototype.put_RecordTo = function(v) { this["recordTo"] = v; }; CMailMergeSendData.prototype.get_RecordCount = function() { return this["recordCount"] }; CMailMergeSendData.prototype.put_RecordCount = function(v) { this["recordCount"] = v; }; CMailMergeSendData.prototype.get_UserId = function() { return this["userId"] }; CMailMergeSendData.prototype.put_UserId = function(v) { this["userId"] = v; }; CMailMergeSendData.prototype.get_IsJson = function() { return this["isJson"] }; CMailMergeSendData.prototype.put_IsJson = function(v) { this["isJson"] = v; }; function CAscFootnotePr(obj) { this.NumRestart = undefined; this.NumFormat = undefined; this.NumStart = undefined; this.Pos = undefined; if (obj) { this.NumRestart = obj.NumRestart; this.NumFormat = obj.NumFormat; this.NumStart = obj.NumStart; this.Pos = obj.Pos; } } CAscFootnotePr.prototype.get_Pos = function() { return this.Pos; }; CAscFootnotePr.prototype.put_Pos = function(v) { this.Pos = v; }; CAscFootnotePr.prototype.get_NumStart = function() { return this.NumStart; }; CAscFootnotePr.prototype.put_NumStart = function(v) { this.NumStart = v; }; CAscFootnotePr.prototype.get_NumFormat = function() { return this.NumFormat; }; CAscFootnotePr.prototype.put_NumFormat = function(v) { this.NumFormat = v; }; CAscFootnotePr.prototype.get_NumRestart = function() { return this.NumRestart; }; CAscFootnotePr.prototype.put_NumRestart = function(v) { this.NumRestart = v; }; function CContentControlPluginWorker(_api, _docs) { this.api = _api; this.documents = _docs; this.returnDocuments = []; this.current = -1; this.guid = ""; this.start = function() { // save worker in api this.api.__content_control_worker = this; this.api.incrementCounterLongAction(); if (window.g_asc_plugins) this.guid = window.g_asc_plugins.setPluginMethodReturnAsync(); this.run(); }; this.end = function() { if (window.g_asc_plugins) window.g_asc_plugins.onPluginMethodReturn(this.guid, this.returnDocuments); delete this.api.__content_control_worker; this.api.decrementCounterLongAction(); }; this.run = function() { ++this.current; if (this.current >= this.documents.length) { this.end(); return; } var LogicDocument = this.api.WordControl.m_oLogicDocument; if (0 == this.current) LogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_InsertDocumentsByUrls); var _obj = null; while (this.current < this.documents.length) // no recursion { var _current = this.documents[this.current]; if (undefined === _current["Props"]) _current["Props"] = {}; var _isLocked = false; if ((_current["Url"] !== undefined || _current["Script"] !== undefined) && undefined !== _current["Props"]["InternalId"]) { var _internalId = _current["Props"]["InternalId"]; var _contentControl = g_oTableId.Get_ById(_internalId); _isLocked = LogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_None, { Type : AscCommon.changestype_2_ElementsArray_and_Type, Elements : [_contentControl], CheckType : AscCommon.changestype_Document_Content_Add }); } else { _isLocked = LogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Document_Content_Add); } if (false === _isLocked) { var _content_control_pr; var _blockStd; var _isReplaced = false; if (_current["Url"] !== undefined || _current["Script"] !== undefined) { _blockStd = null; if (undefined !== _current["Props"]["InternalId"]) { _blockStd = LogicDocument.ClearContentControl(_current["Props"]["InternalId"]); _isReplaced = true; } _content_control_pr = new AscCommon.CContentControlPr(); _content_control_pr.Id = _current["Props"]["Id"]; _content_control_pr.Tag = _current["Props"]["Tag"]; _content_control_pr.Lock = c_oAscSdtLockType.Unlocked; _content_control_pr.InternalId = _current["Props"]["InternalId"]; if (null === _blockStd) { var oCurPara = LogicDocument.GetCurrentParagraph(); if (oCurPara && !oCurPara.IsCursorAtBegin()) LogicDocument.AddNewParagraph(false, true); _blockStd = LogicDocument.AddContentControl(c_oAscSdtLevelType.Block); } _blockStd.SetContentControlPr(_content_control_pr); _obj = _blockStd.GetContentControlPr(); this.returnDocuments.push({"Tag" : _obj.Tag, "Id" : _obj.Id, "Lock" : _obj.Lock, "InternalId" : _obj.InternalId}); } if (_current["Url"] !== undefined) { // insert/replace document this.api.insertDocumentUrlsData = {imageMap: null, documents: [{url : _current["Url"], format: _current["Format"]}], endCallback : function(_api) { _blockStd.Content.Remove_FromContent(_blockStd.Content.GetElementsCount() - 1 , 1); _blockStd.MoveCursorToEndPos(false, false); var _worker = _api.__content_control_worker; if (_worker.documents[_worker.current]["Props"]) _blockStd.SetContentControlPr({ Lock : _worker.documents[_worker.current]["Props"]["Lock"] }); _worker = null; _blockStd = null; window.g_asc_plugins.api.asc_Recalculate(); setTimeout(function() { window.g_asc_plugins.api.__content_control_worker.run(); }, 1); }}; this.api.asc_DownloadAs(Asc.c_oAscFileType.CANVAS_WORD); return; } else if (_current["Script"] !== undefined) { // insert/replace script var _script = "(function(){ var Api = window.g_asc_plugins.api;\n" + _current["Script"] + "\n})();"; eval(_script); if (c_oAscSdtLevelType.Block === _blockStd.GetContentControlType()) { if (_isReplaced) { if (_blockStd.Content.GetElementsCount() > 1) _blockStd.Content.Remove_FromContent(_blockStd.Content.GetElementsCount() - 1, 1); _blockStd.MoveCursorToStartPos(false); } else { if (_blockStd.Content.GetElementsCount() > 1) { _blockStd.Content.Remove_FromContent(_blockStd.Content.GetElementsCount() - 1, 1); _blockStd.MoveCursorToEndPos(false, false); } LogicDocument.MoveCursorRight(false, false, true); } } else { if (_isReplaced) { if (_blockStd.GetElementsCount() > 1) _blockStd.Remove_FromContent(_blockStd.GetElementsCount() - 1, 1); _blockStd.MoveCursorToStartPos(); _blockStd.SetThisElementCurrent(); } else { if (_blockStd.Content.GetElementsCount() > 1) { _blockStd.Remove_FromContent(_blockStd.GetElementsCount() - 1, 1); _blockStd.MoveCursorToEndPos(); _blockStd.SetThisElementCurrent(); } LogicDocument.MoveCursorRight(false, false, true); } } var _worker = _api.__content_control_worker; if (_worker.documents[_worker.current]["Props"]) _blockStd.SetContentControlPr({ Lock : _worker.documents[_worker.current]["Props"]["Lock"] }); _worker = null; var _fonts = LogicDocument.Document_Get_AllFontNames(); var _imagesArray = LogicDocument.Get_AllImageUrls(); var _images = {}; for (var i = 0; i < _imagesArray.length; i++) { _images[_imagesArray[i]] = _imagesArray[i]; } window.g_asc_plugins.images_rename = _images; AscCommon.Check_LoadingDataBeforePrepaste(window.g_asc_plugins.api, _fonts, _images, function() { var _api = window.g_asc_plugins.api; delete window.g_asc_plugins.images_rename; _api.asc_Recalculate(); _api.WordControl.m_oLogicDocument.UnlockPanelStyles(true); setTimeout(function() { window.g_asc_plugins.api.__content_control_worker.run(); }, 1); }); return; } else if (_current["Props"]) { // change properties var _blockStd = LogicDocument.GetContentControl(_current["Props"]["InternalId"]); if (_blockStd) { _content_control_pr = new AscCommon.CContentControlPr(); _content_control_pr.Id = _current["Props"]["Id"]; _content_control_pr.Tag = _current["Props"]["Tag"]; _content_control_pr.Lock = _current["Props"]["Lock"]; _content_control_pr.InternalId = _current["Props"]["InternalId"]; _blockStd.SetContentControlPr(_content_control_pr); _obj = _blockStd.GetContentControlPr(); this.returnDocuments.push({ "Tag": _obj.Tag, "Id": _obj.Id, "Lock": _obj.Lock, "InternalId": _obj.InternalId }); } } } else { if (false === LogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_ContentControl_Properties)) { var _current = this.documents[this.current]; if (_current["Props"] && _current["Url"] === undefined && _current["Script"] === undefined) { // change properties var _blockStd = LogicDocument.GetContentControl(_current["Props"]["InternalId"]); if (_blockStd) { _content_control_pr = new AscCommon.CContentControlPr(); _content_control_pr.Id = _current["Props"]["Id"]; _content_control_pr.Tag = _current["Props"]["Tag"]; _content_control_pr.Lock = _current["Props"]["Lock"]; _content_control_pr.InternalId = _current["Props"]["InternalId"]; _blockStd.SetContentControlPr(_content_control_pr); _obj = _blockStd.GetContentControlPr(); this.returnDocuments.push({ "Tag": _obj.Tag, "Id": _obj.Id, "Lock": _obj.Lock, "InternalId": _obj.InternalId }); } } } } ++this.current; } if (this.current >= this.documents.length) { this.end(); return; } }; this.delete = function() { var LogicDocument = this.api.WordControl.m_oLogicDocument; var arrContentControl = []; for (var i = 0; i < this.documents.length; i++) { var oContentControl = g_oTableId.Get_ById(this.documents[i]["InternalId"]); if (oContentControl && (oContentControl instanceof AscCommonWord.CBlockLevelSdt || oContentControl instanceof AscCommonWord.CInlineLevelSdt)) arrContentControl.push(g_oTableId.Get_ById(this.documents[i]["InternalId"])); } LogicDocument.SetCheckContentControlsLock(false); if (false === LogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_None, { Type : AscCommon.changestype_2_ElementsArray_and_Type, Elements : arrContentControl, CheckType : AscCommon.changestype_Remove })) { LogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_InsertDocumentsByUrls); for (var i = 0; i < this.documents.length; i++) { LogicDocument.RemoveContentControl(this.documents[i]["InternalId"]); } } LogicDocument.SetCheckContentControlsLock(true); this.api.asc_Recalculate(); delete this.api.__content_control_worker; }; } // пользоваться так: // подрубить его последним из скриптов к страничке // и вызвать, после подгрузки (конец метода OnInit <- Drawing/HtmlPage.js) // var _api = new asc_docs_api(); // _api.init(oWordControl); /** * * @param config * @constructor * @extends {AscCommon.baseEditorsApi} */ function asc_docs_api(config) { AscCommon.baseEditorsApi.call(this, config, AscCommon.c_oEditorId.Word); /************ private!!! **************/ this.WordControl = null; this.documentFormatSave = c_oAscFileType.DOCX; //todo убрать из native, copypaste, chart, loadfont this.InterfaceLocale = null; this.ShowParaMarks = false; this.ShowSnapLines = true; this.isAddSpaceBetweenPrg = false; this.isPageBreakBefore = false; this.isKeepLinesTogether = false; this.isPaintFormat = c_oAscFormatPainterState.kOff; this.isMarkerFormat = false; this.isStartAddShape = false; this.addShapePreset = ""; this.isShowTableEmptyLine = true; this.isShowTableEmptyLineAttack = false; this.isApplyChangesOnOpen = false; this.IsSpellCheckCurrentWord = false; this.mailMergeFileData = null; this.insertDocumentUrlsData = null; this.isCoMarksDraw = false; this.tmpCoMarksDraw = false; this.tmpViewRulers = null; this.tmpZoomType = null; // Spell Checking this.SpellCheckApi = new AscCommon.CSpellCheckApi(); this.isSpellCheckEnable = true; // это чтобы сразу показать ридер, без возможности вернуться в редактор/вьюер this.isOnlyReaderMode = false; /**************************************/ this.bInit_word_control = false; this.isDocumentModify = false; this.isImageChangeUrl = false; this.isShapeImageChangeUrl = false; this.textureType = null; this.tmpFontRenderingMode = null; this.FontAsyncLoadType = 0; this.FontAsyncLoadParam = null; this.isPasteFonts_Images = false; this.pasteCallback = null; this.pasteImageMap = null; this.EndActionLoadImages = 0; this.isSaveFonts_Images = false; this.saveImageMap = null; this.isLoadImagesCustom = false; this.loadCustomImageMap = null; this.ServerImagesWaitComplete = false; this.DocumentOrientation = false; this.SelectedObjectsStack = []; this.nCurPointItemsLength = -1; this.isDocumentEditor = true; this.CurrentTranslate = null; this.CollaborativeMarksShowType = c_oAscCollaborativeMarksShowType.All; // объекты, нужные для отправки в тулбар (шрифты, стили) this._gui_control_colors = null; this.DocumentReaderMode = null; if (window.editor == undefined) { window.editor = this; window['editor'] = window.editor; if (window["NATIVE_EDITOR_ENJINE"]) editor = window.editor; } this.RevisionChangesStack = []; //g_clipboardBase.Init(this); this._init(); } asc_docs_api.prototype = Object.create(AscCommon.baseEditorsApi.prototype); asc_docs_api.prototype.constructor = asc_docs_api; asc_docs_api.prototype.sendEvent = function() { var name = arguments[0]; if (_callbacks.hasOwnProperty(name)) { for (var i = 0; i < _callbacks[name].length; ++i) { _callbacks[name][i].apply(this || window, Array.prototype.slice.call(arguments, 1)); } return true; } return false; }; // Просмотр PDF asc_docs_api.prototype.isPdfViewer = function() { return (null === this.WordControl.m_oLogicDocument); }; asc_docs_api.prototype.LoadFontsFromServer = function(_fonts) { if (undefined === _fonts) _fonts = ["Arial", "Symbol", "Wingdings", "Courier New", "Times New Roman"]; this.FontLoader.LoadFontsFromServer(_fonts); }; asc_docs_api.prototype.SetCollaborativeMarksShowType = function(Type) { if (c_oAscCollaborativeMarksShowType.None !== this.CollaborativeMarksShowType && c_oAscCollaborativeMarksShowType.None === Type && this.WordControl && this.WordControl.m_oLogicDocument) { this.CollaborativeMarksShowType = Type; AscCommon.CollaborativeEditing.Clear_CollaborativeMarks(true); } else { this.CollaborativeMarksShowType = Type; } }; asc_docs_api.prototype.GetCollaborativeMarksShowType = function(Type) { return this.CollaborativeMarksShowType; }; /** * @returns {?CDocument} */ asc_docs_api.prototype.private_GetLogicDocument = function() { if (!this.WordControl || !this.WordControl.m_oLogicDocument) return null; return this.WordControl.m_oLogicDocument; }; asc_docs_api.prototype.Clear_CollaborativeMarks = function() { AscCommon.CollaborativeEditing.Clear_CollaborativeMarks(true); }; asc_docs_api.prototype.SetLanguage = function(langId) { langId = langId.toLowerCase(); if (undefined !== AscCommonWord.translations_map[langId]) this.CurrentTranslate = AscCommonWord.translations_map[langId]; }; asc_docs_api.prototype.TranslateStyleName = function(style_name) { var ret = this.CurrentTranslate.DefaultStyles[style_name]; if (ret !== undefined) return ret; return style_name; }; asc_docs_api.prototype.CheckChangedDocument = function() { if (true === History.Have_Changes()) { // дублирование евента. когда будет undo-redo - тогда // эти евенты начнут отличаться this.SetDocumentModified(true); } else { this.SetDocumentModified(false); } this._onUpdateDocumentCanSave(); }; asc_docs_api.prototype.SetUnchangedDocument = function() { this.SetDocumentModified(false); this._onUpdateDocumentCanSave(); }; asc_docs_api.prototype.SetDocumentModified = function(bValue) { this.isDocumentModify = bValue; this.sendEvent("asc_onDocumentModifiedChanged"); if (undefined !== window["AscDesktopEditor"]) { window["AscDesktopEditor"]["onDocumentModifiedChanged"](bValue); } }; asc_docs_api.prototype.isDocumentModified = function() { if (!this.canSave) { // Пока идет сохранение, мы не закрываем документ return true; } return this.isDocumentModify; }; asc_docs_api.prototype.sync_BeginCatchSelectedElements = function() { if (0 != this.SelectedObjectsStack.length) this.SelectedObjectsStack.splice(0, this.SelectedObjectsStack.length); if (this.WordControl && this.WordControl.m_oDrawingDocument) this.WordControl.m_oDrawingDocument.StartTableStylesCheck(); }; asc_docs_api.prototype.sync_EndCatchSelectedElements = function() { if (this.WordControl && this.WordControl.m_oDrawingDocument) this.WordControl.m_oDrawingDocument.EndTableStylesCheck(); this.sendEvent("asc_onFocusObject", this.SelectedObjectsStack); }; asc_docs_api.prototype.getSelectedElements = function(bUpdate) { if (true === bUpdate) this.WordControl.m_oLogicDocument.Document_UpdateInterfaceState(); return this.SelectedObjectsStack; }; asc_docs_api.prototype.sync_ChangeLastSelectedElement = function(type, obj) { var oUnkTypeObj = null; switch (type) { case c_oAscTypeSelectElement.Paragraph: oUnkTypeObj = new Asc.asc_CParagraphProperty(obj); break; case c_oAscTypeSelectElement.Image: oUnkTypeObj = new asc_CImgProperty(obj); break; case c_oAscTypeSelectElement.Table: oUnkTypeObj = new Asc.CTableProp(obj); break; case c_oAscTypeSelectElement.Header: oUnkTypeObj = new CHeaderProp(obj); break; } var _i = this.SelectedObjectsStack.length - 1; var bIsFound = false; while (_i >= 0) { if (this.SelectedObjectsStack[_i].Type == type) { this.SelectedObjectsStack[_i].Value = oUnkTypeObj; bIsFound = true; break; } _i--; } if (!bIsFound) { this.SelectedObjectsStack[this.SelectedObjectsStack.length] = new asc_CSelectedObject(type, oUnkTypeObj); } }; asc_docs_api.prototype.Init = function() { this.WordControl.Init(); }; asc_docs_api.prototype.asc_setLocale = function(val) { this.InterfaceLocale = val; }; asc_docs_api.prototype.ChangeReaderMode = function() { return this.WordControl.ChangeReaderMode(); }; asc_docs_api.prototype.SetReaderModeOnly = function() { this.isOnlyReaderMode = true; if (this.ImageLoader) this.ImageLoader.bIsAsyncLoadDocumentImages = false; }; asc_docs_api.prototype.IncreaseReaderFontSize = function() { return this.WordControl.IncreaseReaderFontSize(); }; asc_docs_api.prototype.DecreaseReaderFontSize = function() { return this.WordControl.DecreaseReaderFontSize(); }; asc_docs_api.prototype.CreateCSS = function() { if (window["flat_desine"] === true) { AscCommonWord.updateGlobalSkin(AscCommonWord.GlobalSkinFlat2); } var _head = document.getElementsByTagName('head')[0]; var style0 = document.createElement('style'); style0.type = 'text/css'; style0.innerHTML = ".block_elem { position:absolute;padding:0;margin:0; }"; _head.appendChild(style0); var style2 = document.createElement('style'); style2.type = 'text/css'; style2.innerHTML = ".buttonRuler {\ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAwCAYAAAAYX/pXAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAABhElEQVRIS62Uwa6CMBBF/VQNQcOCBS5caOICApEt3+Wv+AcmfQ7pbdreqY+CJifTdjpng727aZrMFmbB+/3erYEE+/3egMPhMPP57QR/EJCgKAoTs1hQlqURjsdjAESyPp1O7pwEVVWZ1+s1VyB7DemRoK5rN+CvNaRPgqZpgqHz+UwSnEklweVyCQbivX8mlQTX65UGfG63m+vLXRLc7/ekQHoAexK0bWs0uq5TKwli8Afq+94Mw+CQPe78K5D6eDzMOI4GVcCdr4IlOMEWfiP4fJpVkEDLA38ghgR+DgB/ICYQ5OYBCez7d1mAvQZ6gcBmAK010A8ENg8c9u2rZ6iBwL51R7z3z1ADgc2DJDYPZnA3ENi3rhLlgauBAO8/JpUHJEih5QF6iwRaHqC3SPANJ9jCbwTP53MVJNDywB+IIYGfA8AfiAkEqTyQDEAO+HlAgtw8IEFuHpAgNw9IkJsHJMjNAxLk5gEJ8P5jUnlAghRaHqC3SKDlAXqLBN9wgvVM5g/dFuEU6U2wnAAAAABJRU5ErkJggg==);\ background-position: 0px 0px;\ background-repeat: no-repeat;\ }"; _head.appendChild(style2); var style3 = document.createElement('style'); style3.type = 'text/css'; style3.innerHTML = ".buttonPrevPage {\ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAABgBAMAAADm/++TAAAABGdBTUEAALGPC/xhBQAAABJQTFRFAAAA////UVNVu77Cenp62Nrc3x8hMQAAAAF0Uk5TAEDm2GYAAABySURBVCjPY2AgETDBGEoKUAElJcJSxANjKGAwDQWDYAKMIBhDSRXCCFJSIixF0GS4M+AMExcwcCbAcIQxBEUgDEdBQcJSBE2GO4PU6IJHASxS4NGER4p28YWIAlikwKMJjxTt4gsRBbBIgUcTHini4wsAwMmIvYZODL0AAAAASUVORK5CYII=);\ background-position: 0px 0px;\ background-repeat: no-repeat;\ }"; _head.appendChild(style3); var style4 = document.createElement('style'); style4.type = 'text/css'; style4.innerHTML = ".buttonNextPage {\ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAABgBAMAAADm/++TAAAABGdBTUEAALGPC/xhBQAAABJQTFRFAAAA////UVNVu77Cenp62Nrc3x8hMQAAAAF0Uk5TAEDm2GYAAABySURBVCjPY2AgETDBGEoKUAElJcJSxANjKGAwDQWDYAKMIBhDSRXCCFJSIixF0GS4M+AMExcwcCbAcIQxBEUgDEdBQcJSBE2GO4PU6IJHASxS4NGER4p28YWIAlikwKMJjxTt4gsRBbBIgUcTHini4wsAwMmIvYZODL0AAAAASUVORK5CYII=);\ background-position: 0px -48px;\ background-repeat: no-repeat;\ }"; _head.appendChild(style4); }; asc_docs_api.prototype.CreateComponents = function() { this.CreateCSS(); if (this.HtmlElement != null) this.HtmlElement.innerHTML = "
\
\ \ \
\
\ \
\
\ \ \ \
\
\
\
\
\
\
\
\
\
\
\
\
\
\
"; }; asc_docs_api.prototype.GetCopyPasteDivId = function() { if (this.isMobileVersion) return this.WordControl.Name; return ""; }; asc_docs_api.prototype.ContentToHTML = function(bIsRet) { this.DocumentReaderMode = new AscCommon.CDocumentReaderMode(); this.WordControl.m_oLogicDocument.SelectAll(); var text_data = { data : "", pushData : function(format, value) { this.data = value; } }; this.asc_CheckCopy(text_data, 2); this.WordControl.m_oLogicDocument.RemoveSelection(); return text_data.data; }; asc_docs_api.prototype.InitEditor = function() { this.WordControl.m_oLogicDocument = new AscCommonWord.CDocument(this.WordControl.m_oDrawingDocument); this.WordControl.m_oDrawingDocument.m_oLogicDocument = this.WordControl.m_oLogicDocument; if (!this.isSpellCheckEnable) this.WordControl.m_oLogicDocument.TurnOff_CheckSpelling(); if (this.WordControl.MobileTouchManager) this.WordControl.MobileTouchManager.delegate.LogicDocument = this.WordControl.m_oLogicDocument; if (this.isRestrictionForms() || this.isRestrictionComments()) { this.ShowParaMarks = false; this.WordControl.HideRulers(); } }; asc_docs_api.prototype.InitViewer = function() { this.WordControl.m_oDrawingDocument.m_oDocumentRenderer = new AscCommonWord.CDocMeta(); this.WordControl.m_oDrawingDocument.m_oDocumentRenderer.Init(); this.WordControl.m_oDrawingDocument.showTarget(false); this.WordControl.HideRulers(); }; asc_docs_api.prototype.OpenDocument = function(url, gObject) { this.isOnlyReaderMode = false; this.InitViewer(); this.LoadedObject = null; this.DocumentType = 1; this.ServerIdWaitComplete = true; this.WordControl.m_oDrawingDocument.m_oDocumentRenderer.Load(url, gObject); this.FontLoader.LoadDocumentFonts(this.WordControl.m_oDrawingDocument.m_oDocumentRenderer.Fonts, true); }; asc_docs_api.prototype.OpenDocument2 = function(url, gObject) { this.InitEditor(); this.DocumentType = 2; this.LoadedObjectDS = this.WordControl.m_oLogicDocument.CopyStyle(); g_oIdCounter.Set_Load(true); AscFonts.IsCheckSymbols = true; var openParams = {checkFileSize : /*this.isMobileVersion*/false, charCount : 0, parCount : 0}; var oBinaryFileReader = new AscCommonWord.BinaryFileReader(this.WordControl.m_oLogicDocument, openParams); if (oBinaryFileReader.Read(gObject)) { if (History && History.Update_FileDescription) History.Update_FileDescription(oBinaryFileReader.stream); g_oIdCounter.Set_Load(false); this.LoadedObject = 1; // проверяем какие шрифты нужны var StylesPainter = new AscCommonWord.CStylesPainter(); StylesPainter.CheckStylesNames(this, this.LoadedObjectDS); this.WordControl.m_oDrawingDocument.CheckFontNeeds(); AscCommon.pptx_content_loader.CheckImagesNeeds(this.WordControl.m_oLogicDocument); this.FontLoader.LoadDocumentFonts(this.WordControl.m_oLogicDocument.Fonts, false); } else editor.sendEvent("asc_onError", c_oAscError.ID.MobileUnexpectedCharCount, c_oAscError.Level.Critical); AscFonts.IsCheckSymbols = false; //callback editor.DocumentOrientation = (null == editor.WordControl.m_oLogicDocument) ? true : !editor.WordControl.m_oLogicDocument.Orientation; var sizeMM; if (editor.DocumentOrientation) sizeMM = DocumentPageSize.getSize(AscCommon.Page_Width, AscCommon.Page_Height); else sizeMM = DocumentPageSize.getSize(AscCommon.Page_Height, AscCommon.Page_Width); editor.sync_DocSizeCallback(sizeMM.w_mm, sizeMM.h_mm); editor.sync_PageOrientCallback(editor.get_DocumentOrientation()); if (this.isMobileVersion) { AscCommon.AscBrowser.isSafariMacOs = false; PasteElementsId.PASTE_ELEMENT_ID = "wrd_pastebin"; PasteElementsId.ELEMENT_DISPAY_STYLE = "none"; } }; // Callbacks /* все имена callback'оф начинаются с On. Пока сделаны: OnBold, OnItalic, OnUnderline, OnTextPrBaseline(возвращается расположение строки - supstring, superstring, baseline), OnPrAlign(выравнивание по ширине, правому краю, левому краю, по центру), OnListType( возвращается AscCommon.asc_CListType ) фейк-функции ожидающие TODO: Print,Undo,Redo,Copy,Cut,Paste,Share,Save,Download & callbacks OnFontName, OnFontSize, OnLineSpacing OnFocusObject( возвращается массив asc_CSelectedObject ) OnInitEditorStyles( возвращается CStylesPainter ) OnSearchFound( возвращается CSearchResult ); OnParaSpacingLine( возвращается AscCommon.asc_CParagraphSpacing ) OnLineSpacing( не используется? ) OnTextColor( возвращается AscCommon.CColor ) OnTextHighLight( возвращается AscCommon.CColor ) OnInitEditorFonts( возвращается массив объектов СFont ) OnFontFamily( возвращается asc_CTextFontFamily ) */ var _callbacks = {}; asc_docs_api.prototype.asc_registerCallback = function(name, callback) { if (!_callbacks.hasOwnProperty(name)) _callbacks[name] = []; _callbacks[name].push(callback); }; asc_docs_api.prototype.asc_unregisterCallback = function(name, callback) { if (_callbacks.hasOwnProperty(name)) { for (var i = _callbacks[name].length - 1; i >= 0; --i) { if (_callbacks[name][i] == callback) _callbacks[name].splice(i, 1); } } }; asc_docs_api.prototype.asc_checkNeedCallback = function(name) { return _callbacks.hasOwnProperty(name); }; // тут методы, замены евентов asc_docs_api.prototype.get_PropertyThemeColors = function() { return [this._gui_control_colors.Colors, this._gui_control_colors.StandartColors]; }; // ------- ///////////////////////////////////////////////////////////////////////// ///////////////////CoAuthoring and Chat api////////////////////////////// ///////////////////////////////////////////////////////////////////////// // Init CoAuthoring asc_docs_api.prototype._coAuthoringSetChange = function(change, oColor) { var oChange = new AscCommon.CCollaborativeChanges(); oChange.Set_Data(change); oChange.Set_Color(oColor); AscCommon.CollaborativeEditing.Add_Changes(oChange); }; asc_docs_api.prototype._coAuthoringSetChanges = function(e, oColor) { var Count = e.length; for (var Index = 0; Index < Count; ++Index) this._coAuthoringSetChange(e[Index], oColor); }; asc_docs_api.prototype._coAuthoringInitEnd = function() { var t = this; this.CoAuthoringApi.onCursor = function(e) { if (true === AscCommon.CollaborativeEditing.Is_Fast()) { t.WordControl.m_oLogicDocument.Update_ForeignCursor(e[e.length - 1]['cursor'], e[e.length - 1]['user'], true, e[e.length - 1]['useridoriginal']); } }; this.CoAuthoringApi.onConnectionStateChanged = function(e) { if (true === AscCommon.CollaborativeEditing.Is_Fast() && false === e['state']) { t.WordControl.m_oLogicDocument.Remove_ForeignCursor(e['id']); } t.sendEvent("asc_onConnectionStateChanged", e); }; this.CoAuthoringApi.onLocksAcquired = function(e) { if (t._coAuthoringCheckEndOpenDocument(t.CoAuthoringApi.onLocksAcquired, e)) { return; } if (2 != e["state"]) { var Id = e["block"]; var Class = g_oTableId.Get_ById(Id); if (null != Class) { var Lock = Class.Lock; // Выставляем ID пользователя, залочившего данный элемент Lock.Set_UserId(e["user"]); var OldType = Class.Lock.Get_Type(); if (locktype_Other2 === OldType || locktype_Other3 === OldType) { Lock.Set_Type(locktype_Other3, true); } else { Lock.Set_Type(locktype_Other, true); } if (Class instanceof AscCommonWord.CHeaderFooterController) { t.sync_LockHeaderFooters(); } else if (Class instanceof AscCommonWord.CDocument) { t.sync_LockDocumentProps(); } else if (Class instanceof AscCommon.CComment) { t.sync_LockComment(Class.Get_Id(), e["user"]); } else if (Class instanceof AscCommonWord.CGraphicObjects) { t.sync_LockDocumentSchema(); } // Теперь обновлять состояние необходимо, чтобы обновить локи в режиме рецензирования. t.WordControl.m_oLogicDocument.Document_UpdateInterfaceState(); } else { AscCommon.CollaborativeEditing.Add_NeedLock(Id, e["user"]); } } }; this.CoAuthoringApi.onLocksReleased = function(e, bChanges) { if (t._coAuthoringCheckEndOpenDocument(t.CoAuthoringApi.onLocksReleased, e, bChanges)) { return; } var Id = e["block"]; var Class = g_oTableId.Get_ById(Id); if (null != Class) { var Lock = Class.Lock; if ("undefined" != typeof(Lock)) { var CurType = Lock.Get_Type(); var NewType = locktype_None; if (CurType === locktype_Other) { if (true != bChanges) { NewType = locktype_None; } else { NewType = locktype_Other2; AscCommon.CollaborativeEditing.Add_Unlock(Class); } } else if (CurType === locktype_Mine) { // Такого быть не должно NewType = locktype_Mine; } else if (CurType === locktype_Other2 || CurType === locktype_Other3) { NewType = locktype_Other2; } Lock.Set_Type(NewType, true); // Теперь обновлять состояние необходимо, чтобы обновить локи в режиме рецензирования. t.WordControl.m_oLogicDocument.Document_UpdateInterfaceState(); if (Class instanceof AscCommonWord.CHeaderFooterController) { if (NewType !== locktype_Mine && NewType !== locktype_None) { t.sync_LockHeaderFooters(); } else { t.sync_UnLockHeaderFooters(); } } else if (Class instanceof AscCommonWord.CDocument) { if (NewType !== locktype_Mine && NewType !== locktype_None) { t.sync_LockDocumentProps(); } else { t.sync_UnLockDocumentProps(); } } else if (Class instanceof AscCommon.CComment) { if (NewType !== locktype_Mine && NewType !== locktype_None) { t.sync_LockComment(Class.Get_Id(), e["user"]); } else { t.sync_UnLockComment(Class.Get_Id()); } } else if (Class instanceof AscCommonWord.CGraphicObjects) { if (NewType !== locktype_Mine && NewType !== locktype_None) { t.sync_LockDocumentSchema(); } else { t.sync_UnLockDocumentSchema(); } } } } else { AscCommon.CollaborativeEditing.Remove_NeedLock(Id); } }; this.CoAuthoringApi.onSaveChanges = function(e, userId, bFirstLoad) { var bUseColor; if (bFirstLoad) { bUseColor = -1 === AscCommon.CollaborativeEditing.m_nUseType; } if (t.CollaborativeMarksShowType === c_oAscCollaborativeMarksShowType.None) { bUseColor = false; } var oCommonColor = AscCommon.getUserColorById(userId, null, false, false); var oColor = false === bUseColor ? null : oCommonColor; t._coAuthoringSetChange(e, oColor); // т.е. если bSendEvent не задан, то посылаем сообщение + когда загрузился документ if (!bFirstLoad && t.bInit_word_control) { t.sync_CollaborativeChanges(); } }; this.CoAuthoringApi.onRecalcLocks = function(e) { if (e && true === AscCommon.CollaborativeEditing.Is_Fast()) { var CursorInfo = JSON.parse(e); AscCommon.CollaborativeEditing.Add_ForeignCursorToUpdate(CursorInfo.UserId, CursorInfo.CursorInfo, CursorInfo.UserShortId); } }; }; asc_docs_api.prototype.startCollaborationEditing = function() { AscCommon.CollaborativeEditing.Start_CollaborationEditing(); if (this.WordControl && this.WordControl.m_oLogicDocument) { this.WordControl.m_oLogicDocument.StartCollaborationEditing(); } this.asc_setDrawCollaborationMarks(true); if(window['AscCommon'].g_specialPasteHelper && AscCommon.CollaborativeEditing.m_bFast) { window['AscCommon'].g_specialPasteHelper.SpecialPasteButton_Hide(); } }; asc_docs_api.prototype.endCollaborationEditing = function() { AscCommon.CollaborativeEditing.End_CollaborationEditing(); this.asc_setDrawCollaborationMarks(false); }; ///////////////////////////////////////////////////////////////////////// //////////////////////////SpellChecking api////////////////////////////// ///////////////////////////////////////////////////////////////////////// // Init SpellCheck asc_docs_api.prototype._coSpellCheckInit = function() { if (!this.SpellCheckApi) { return; // Error } var t = this; if (window["AscDesktopEditor"]) { window["asc_nativeOnSpellCheck"] = function(response) { var _editor = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor; if (_editor.SpellCheckApi) _editor.SpellCheckApi.onSpellCheck(response); }; this.SpellCheckApi.spellCheck = function (spellData) { window["AscDesktopEditor"]["SpellCheck"](spellData); }; this.SpellCheckApi.disconnect = function () { }; if (window["AscDesktopEditor"]["IsLocalFile"] && !window["AscDesktopEditor"]["IsLocalFile"]()) { this.sendEvent('asc_onSpellCheckInit', [ "1026", "1027", "1029", "1030", "1031", "1032", "1033", "1036", "1038", "1040", "1042", "1043", "1044", "1045", "1046", "1048", "1049", "1050", "1051", "1053", "1055", "1057", "1058", "1060", "1062", "1063", "1066", "1068", "1069", "1087", "1104", "1110", "1134", "2051", "2055", "2057", "2068", "2070", "3079", "3081", "3082", "4105", "7177", "9242", "10266" ]); } } else { if (this.SpellCheckUrl && this.isSpellCheckEnable) { this.SpellCheckApi.set_url(this.SpellCheckUrl); } } this.SpellCheckApi.onInit = function (e) { t.sendEvent('asc_onSpellCheckInit', e); }; this.SpellCheckApi.onSpellCheck = function (e) { t.SpellCheck_CallBack(e); }; this.SpellCheckApi.init(this.documentId); }; //---------------------------------------------------------------------------------------------------------------------- // SpellCheck_CallBack // Функция ответа от сервера. //---------------------------------------------------------------------------------------------------------------------- asc_docs_api.prototype.SpellCheck_CallBack = function(Obj) { if (undefined != Obj && undefined != Obj["ParagraphId"]) { var ParaId = Obj["ParagraphId"]; var Paragraph = g_oTableId.Get_ById(ParaId); var Type = Obj["type"]; if (null != Paragraph) { if ("spell" === Type) { Paragraph.SpellChecker.Check_CallBack(Obj["RecalcId"], Obj["usrCorrect"]); Paragraph.ReDraw(); } else if ("suggest" === Type) { Paragraph.SpellChecker.Check_CallBack2(Obj["RecalcId"], Obj["ElementId"], Obj["usrSuggest"]); this.sync_SpellCheckVariantsFound(); } } } }; asc_docs_api.prototype.asc_SpellCheckDisconnect = function() { if (!this.SpellCheckApi) return; // Error this.SpellCheckApi.disconnect(); this.isSpellCheckEnable = false; if (this.WordControl.m_oLogicDocument) this.WordControl.m_oLogicDocument.TurnOff_CheckSpelling(); }; asc_docs_api.prototype._onUpdateDocumentCanSave = function() { var CollEditing = AscCommon.CollaborativeEditing; // Можно модифицировать это условие на более быстрое (менять самим состояние в аргументах, а не запрашивать каждый раз) var isCanSave = this.isDocumentModified() || (true !== CollEditing.Is_SingleUser() && 0 !== CollEditing.getOwnLocksLength()); if (true === CollEditing.Is_Fast() && true !== CollEditing.Is_SingleUser()) isCanSave = false; if (isCanSave !== this.isDocumentCanSave) { this.isDocumentCanSave = isCanSave; this.sendEvent('asc_onDocumentCanSaveChanged', this.isDocumentCanSave); } }; asc_docs_api.prototype._onUpdateDocumentCanUndoRedo = function () { if (this.WordControl && this.WordControl.m_oLogicDocument) this.WordControl.m_oLogicDocument.Document_UpdateUndoRedoState(); }; // get functions // Возвращает //{ // ParaPr : // { // ContextualSpacing : false, // Удалять ли интервал между параграфами одинакового стиля // // Ind : // { // Left : 0, // Левый отступ // Right : 0, // Правый отступ // FirstLine : 0 // Первая строка // }, // // Jc : align_Left, // Прилегание параграфа // // KeepLines : false, // переносить параграф на новую страницу, // // если на текущей он целиком не убирается // KeepNext : false, // переносить параграф вместе со следующим параграфом // // PageBreakBefore : false, // начинать параграф с новой страницы // // Spacing : // { // Line : 1.15, // Расстояние между строками внутри абзаца // LineRule : linerule_Auto, // Тип расстрояния между строками // Before : 0, // Дополнительное расстояние до абзаца // After : 10 * g_dKoef_pt_to_mm // Дополнительное расстояние после абзаца // }, // // Shd : // { // Value : shd_Nil, // Color : // { // r : 255, // g : 255, // b : 255 // } // }, // // WidowControl : true, // Запрет висячих строк // // Tabs : [] // }, // // TextPr : // { // Bold : false, // Italic : false, // Underline : false, // Strikeout : false, // FontFamily : // { // Name : "Times New Roman", // Index : -1 // }, // FontSize : 12, // Color : // { // r : 0, // g : 0, // b : 0 // }, // VertAlign : vertalign_Baseline, // HighLight : highlight_None // } //} asc_docs_api.prototype.put_FramePr = function(Obj) { if (undefined != Obj.FontFamily) { var loader = AscCommon.g_font_loader; var fontinfo = g_fontApplication.GetFontInfo(Obj.FontFamily); var isasync = loader.LoadFont(fontinfo, editor.asyncFontEndLoaded_DropCap, Obj); Obj.FontFamily = new asc_CTextFontFamily({Name : fontinfo.Name, Index : -1}); if (false === isasync) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetFramePrWithFontFamily); this.WordControl.m_oLogicDocument.SetParagraphFramePr(Obj); } } } else { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetFramePr); this.WordControl.m_oLogicDocument.SetParagraphFramePr(Obj); } } }; asc_docs_api.prototype.asyncFontEndLoaded_DropCap = function(Obj) { this.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.LoadFont); if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetFramePrWithFontFamilyLong); this.WordControl.m_oLogicDocument.SetParagraphFramePr(Obj); } // отжать заморозку меню }; asc_docs_api.prototype.asc_addDropCap = function(bInText) { this.WordControl.m_oLogicDocument.AddDropCap(bInText); }; asc_docs_api.prototype.removeDropcap = function(bDropCap) { this.WordControl.m_oLogicDocument.RemoveDropCap(bDropCap); }; asc_docs_api.prototype.get_TextProps = function() { var Doc = this.WordControl.m_oLogicDocument; var ParaPr = Doc.GetCalculatedParaPr(); var TextPr = Doc.GetCalculatedTextPr(); // return { ParaPr: ParaPr, TextPr : TextPr }; return new Asc.CParagraphAndTextProp(ParaPr, TextPr); // uncomment if this method will be used externally. 20/03/2012 uncommented for testers }; // ------- asc_docs_api.prototype.GetJSONLogicDocument = function() { return JSON.stringify(this.WordControl.m_oLogicDocument); }; asc_docs_api.prototype.get_ContentCount = function() { return this.WordControl.m_oLogicDocument.Content.length; }; asc_docs_api.prototype.select_Element = function(Index) { var Document = this.WordControl.m_oLogicDocument; if (true === Document.Selection.Use) Document.RemoveSelection(); Document.DrawingDocument.SelectEnabled(true); Document.DrawingDocument.TargetEnd(); Document.Selection.Use = true; Document.Selection.Start = false; Document.Selection.Flag = AscCommon.selectionflag_Common; Document.Selection.StartPos = Index; Document.Selection.EndPos = Index; Document.Content[Index].Selection.Use = true; Document.Content[Index].Selection.StartPos = Document.Content[Index].Internal_GetStartPos(); Document.Content[Index].Selection.EndPos = Document.Content[Index].Content.length - 1; Document.Selection_Draw(); }; asc_docs_api.prototype.UpdateTextPr = function(TextPr) { if ("undefined" != typeof(TextPr)) { this.sync_BoldCallBack(TextPr.Bold); this.sync_ItalicCallBack(TextPr.Italic); this.sync_UnderlineCallBack(TextPr.Underline); this.sync_StrikeoutCallBack(TextPr.Strikeout); this.sync_TextPrFontSizeCallBack(TextPr.FontSize); this.sync_TextPrFontFamilyCallBack(TextPr.FontFamily); this.sync_VerticalAlign(TextPr.VertAlign); this.sync_TextHighLight(TextPr.HighLight); this.sync_TextSpacing(TextPr.Spacing); this.sync_TextDStrikeout(TextPr.DStrikeout); this.sync_TextCaps(TextPr.Caps); this.sync_TextSmallCaps(TextPr.SmallCaps); this.sync_TextPosition(TextPr.Position); this.sync_TextLangCallBack(TextPr.Lang); this.sync_TextColor(TextPr); if (this.isMobileVersion) this.sendEvent("asc_onTextShd", new Asc.asc_CParagraphShd(TextPr.Shd)); } }; asc_docs_api.prototype.UpdateParagraphProp = function(ParaPr) { //if ( true === CollaborativeEditing.Get_GlobalLock() ) //{ // ParaPr.Locked = true; // ParaPr.CanAddTable = false; //} // var prgrhPr = this.get_TextProps(); // var prProp = {}; // prProp.Ind = prgrhPr.ParaPr.Ind; // prProp.ContextualSpacing = prgrhPr.ParaPr.ContextualSpacing; // prProp.Spacing = prgrhPr.ParaPr.Spacing; // prProp.PageBreakBefore = prgrhPr.ParaPr.PageBreakBefore; // prProp.KeepLines = prgrhPr.ParaPr.KeepLines; // { // ContextualSpacing : false, // Удалять ли интервал между параграфами одинакового стиля // // Ind : // { // Left : 0, // Левый отступ // Right : 0, // Правый отступ // FirstLine : 0 // Первая строка // }, // Jc : align_Left, // Прилегание параграфа // KeepLines : false, // переносить параграф на новую страницу, // // если на текущей он целиком не убирается // PageBreakBefore : false, // начинать параграф с новой страницы // // Spacing : // { // Line : 1.15, // Расстояние между строками внутри абзаца // LineRule : linerule_Auto, // Тип расстрояния между строками // Before : 0, // Дополнительное расстояние до абзаца // After : 10 * g_dKoef_pt_to_mm // Дополнительное расстояние после абзаца // } // } // TODO: как только разъединят настройки параграфа и текста переделать тут var TextPr = editor.WordControl.m_oLogicDocument.GetCalculatedTextPr(); ParaPr.Subscript = TextPr.VertAlign === AscCommon.vertalign_SubScript; ParaPr.Superscript = TextPr.VertAlign === AscCommon.vertalign_SuperScript; ParaPr.Strikeout = TextPr.Strikeout; ParaPr.DStrikeout = TextPr.DStrikeout; ParaPr.AllCaps = TextPr.Caps; ParaPr.SmallCaps = TextPr.SmallCaps; ParaPr.TextSpacing = TextPr.Spacing; ParaPr.Position = TextPr.Position; //----------------------------------------------------------------------------- if (true === ParaPr.Spacing.AfterAutoSpacing) ParaPr.Spacing.After = AscCommonWord.spacing_Auto; else if (undefined === ParaPr.Spacing.AfterAutoSpacing) ParaPr.Spacing.After = AscCommonWord.UnknownValue; if (true === ParaPr.Spacing.BeforeAutoSpacing) ParaPr.Spacing.Before = AscCommonWord.spacing_Auto; else if (undefined === ParaPr.Spacing.BeforeAutoSpacing) ParaPr.Spacing.Before = AscCommonWord.UnknownValue; if (-1 === ParaPr.PStyle) ParaPr.StyleName = ""; else if (undefined === ParaPr.PStyle || undefined === this.WordControl.m_oLogicDocument.Styles.Style[ParaPr.PStyle]) ParaPr.StyleName = this.WordControl.m_oLogicDocument.Styles.Style[this.WordControl.m_oLogicDocument.Styles.Get_Default_Paragraph()].Name; else ParaPr.StyleName = this.WordControl.m_oLogicDocument.Styles.Style[ParaPr.PStyle].Name; var NumType = -1; var NumSubType = -1; if (!(null == ParaPr.NumPr || 0 === ParaPr.NumPr.NumId || "0" === ParaPr.NumPr.NumId)) { var oNum = this.WordControl.m_oLogicDocument.GetNumbering().GetNum(ParaPr.NumPr.NumId); if (oNum && oNum.GetLvl(ParaPr.NumPr.Lvl)) { var res = oNum.GetLvl(ParaPr.NumPr.Lvl).GetPresetType(); NumType = res.Type; NumSubType = res.SubType; } } ParaPr.ListType = {Type : NumType, SubType : NumSubType}; if (undefined !== ParaPr.FramePr && undefined !== ParaPr.FramePr.Wrap) { if (AscCommonWord.wrap_NotBeside === ParaPr.FramePr.Wrap) ParaPr.FramePr.Wrap = false; else if (AscCommonWord.wrap_Around === ParaPr.FramePr.Wrap) ParaPr.FramePr.Wrap = true; else ParaPr.FramePr.Wrap = undefined; } this.sync_ParaSpacingLine(ParaPr.Spacing); this.Update_ParaInd(ParaPr.Ind); this.sync_PrAlignCallBack(ParaPr.Jc); this.sync_ParaStyleName(ParaPr.StyleName); this.sync_ListType(ParaPr.ListType); this.sync_PrPropCallback(ParaPr); }; /*----------------------------------------------------------------*/ /*functions for working with clipboard, document*/ /*TODO: Print,Undo,Redo,Copy,Cut,Paste,Share,Save,DownloadAs,ReturnToDocuments(вернуться на предыдущую страницу) & callbacks for these functions*/ asc_docs_api.prototype.asc_Print = function(bIsDownloadEvent) { if (window["AscDesktopEditor"]) { if (null != this.WordControl.m_oDrawingDocument.m_oDocumentRenderer) { if (window["AscDesktopEditor"]["IsSupportNativePrint"](this.DocumentUrl) === true) { window["AscDesktopEditor"]["Print"](); return; } } else { window["AscDesktopEditor"]["Print"](); return; } } this._print(c_oAscAsyncAction.Print, bIsDownloadEvent ? DownloadType.Print : DownloadType.None); }; asc_docs_api.prototype._print = function(actionType, downloadType) { var command; var options = {isNoData : false, downloadType : downloadType}; if (null == this.WordControl.m_oLogicDocument) { command = 'savefromorigin'; options.isNoData = true; } else { command = 'save'; } this._downloadAs(command, c_oAscFileType.PDF, actionType, options, null); }; asc_docs_api.prototype.Undo = function() { this.WordControl.m_oLogicDocument.Document_Undo(); }; asc_docs_api.prototype.Redo = function() { this.WordControl.m_oLogicDocument.Document_Redo(); }; asc_docs_api.prototype.Copy = function() { if (window["AscDesktopEditor"]) { window["asc_desktop_copypaste"](this, "Copy"); return true; } return AscCommon.g_clipboardBase.Button_Copy(); }; asc_docs_api.prototype.Update_ParaTab = function(Default_Tab, ParaTabs) { this.WordControl.m_oDrawingDocument.Update_ParaTab(Default_Tab, ParaTabs); }; asc_docs_api.prototype.Cut = function() { if (window["AscDesktopEditor"]) { window["asc_desktop_copypaste"](this, "Cut"); return true; } return AscCommon.g_clipboardBase.Button_Cut(); }; asc_docs_api.prototype.Paste = function() { if (window["AscDesktopEditor"]) { window["asc_desktop_copypaste"](this, "Paste"); return true; } if (!this.WordControl.m_oLogicDocument) return false; if (AscCommon.g_clipboardBase.IsWorking()) return false; return AscCommon.g_clipboardBase.Button_Paste(); }; asc_docs_api.prototype.Share = function() { }; asc_docs_api.prototype.asc_CheckCopy = function(_clipboard /* CClipboardData */, _formats) { if (!this.WordControl.m_oLogicDocument) { var _text_object = (AscCommon.c_oAscClipboardDataFormat.Text & _formats) ? {Text : ""} : null; var _html_data = this.WordControl.m_oDrawingDocument.m_oDocumentRenderer.Copy(_text_object); //TEXT if (AscCommon.c_oAscClipboardDataFormat.Text & _formats) { _clipboard.pushData(AscCommon.c_oAscClipboardDataFormat.Text, _text_object.Text); } //HTML if (AscCommon.c_oAscClipboardDataFormat.Html & _formats) { _clipboard.pushData(AscCommon.c_oAscClipboardDataFormat.Html, _html_data); } return; } var sBase64 = null, _data; var checkData = function(data) { return "" === data ? null : data; }; //TEXT if (AscCommon.c_oAscClipboardDataFormat.Text & _formats) { _data = this.WordControl.m_oLogicDocument.GetSelectedText(false, {NewLineParagraph : true}); _clipboard.pushData(AscCommon.c_oAscClipboardDataFormat.Text, checkData(_data)) } //HTML if (AscCommon.c_oAscClipboardDataFormat.Html & _formats) { var oCopyProcessor = new AscCommon.CopyProcessor(this); sBase64 = oCopyProcessor.Start(); _data = oCopyProcessor.getInnerHtml(); _clipboard.pushData(AscCommon.c_oAscClipboardDataFormat.Html, checkData(_data)) } //INTERNAL if (AscCommon.c_oAscClipboardDataFormat.Internal & _formats) { if (sBase64 === null) { if(window["NATIVE_EDITOR_ENJINE"]) { var oCopyProcessor = new AscCommon.CopyProcessor(this, true); sBase64 = oCopyProcessor.getSelectedBinary(); } else { var oCopyProcessor = new AscCommon.CopyProcessor(this); sBase64 = oCopyProcessor.Start(); } } _data = sBase64; _clipboard.pushData(AscCommon.c_oAscClipboardDataFormat.Internal, checkData(_data)) } }; asc_docs_api.prototype.asc_SelectionCut = function() { if (AscCommon.CollaborativeEditing.Get_GlobalLock()) return; var _logicDoc = this.WordControl.m_oLogicDocument; if (!_logicDoc || _logicDoc.IsSelectionEmpty(true)) return; if (false === _logicDoc.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { History.Create_NewPoint(AscDFH.historydescription_Cut); _logicDoc.Remove(-1, true, true); // -1 - нормальное удаление (например, для таблиц) _logicDoc.Document_UpdateSelectionState(); } }; asc_docs_api.prototype.asc_PasteData = function(_format, data1, data2, text_data, useCurrentPoint) { if (AscCommon.CollaborativeEditing.Get_GlobalLock()) return; var _logicDoc = this.WordControl.m_oLogicDocument; if (!_logicDoc) return; if (false === _logicDoc.Document_Is_SelectionLocked(changestype_Paragraph_Content, null, true, false)) { window['AscCommon'].g_specialPasteHelper.Paste_Process_Start(arguments[5]); if (!useCurrentPoint) { _logicDoc.Create_NewHistoryPoint(AscDFH.historydescription_Document_PasteHotKey); } AscCommon.Editor_Paste_Exec(this, _format, data1, data2, text_data); } }; asc_docs_api.prototype.asc_SpecialPaste = function(props) { return AscCommon.g_specialPasteHelper.Special_Paste(props); }; asc_docs_api.prototype.asc_SpecialPasteData = function(props) { if (AscCommon.CollaborativeEditing.Get_GlobalLock()) return; var _logicDoc = this.WordControl.m_oLogicDocument; if (!_logicDoc) return; //TODO пересмотреть проверку лока и добавление новой точки(AscDFH.historydescription_Document_PasteHotKey) if (false === _logicDoc.Document_Is_SelectionLocked(changestype_Paragraph_Content, null, true, false)) { window['AscCommon'].g_specialPasteHelper.Paste_Process_Start(); window['AscCommon'].g_specialPasteHelper.Special_Paste_Start(); //undo previous action this.WordControl.m_oLogicDocument.Document_Undo(); //if (!useCurrentPoint) { _logicDoc.Create_NewHistoryPoint(AscDFH.historydescription_Document_PasteHotKey); //} AscCommon.Editor_Paste_Exec(this, null, null, null, null, props); } }; asc_docs_api.prototype.asc_specialPasteShowButton = function() { var specialPasteHelper = window['AscCommon'].g_specialPasteHelper; //при быстром совместном редактировании отключаем возможность специальной вставки if(!specialPasteHelper || specialPasteHelper.CheckFastCoEditing()) { return; } var specialPasteShowOptions = specialPasteHelper.buttonInfo ? specialPasteHelper.buttonInfo : null; if(specialPasteShowOptions && null !== specialPasteHelper.showButtonIdParagraph) { var isUpdate = specialPasteShowOptions.cellCoord; var id = specialPasteHelper.showButtonIdParagraph; var elem = g_oTableId.Get_ById(id); var _X, _Y; if(elem.GetTargetPos) { var testPos = elem.GetTargetPos(); var diffX = 0; var diffY = 0; if(testPos.Transform) { diffX = testPos.Transform.tx; diffY = testPos.Transform.ty; } _Y = testPos.Y + testPos.Height + diffY; _X = testPos.X + diffX; } else { var w = 0, h = 0; if(elem.AnchorPosition) { h = elem.AnchorPosition.H; w = elem.AnchorPosition.W; } _Y = elem.Y + h; _X = elem.X + w; } var _PageNum = this.WordControl.m_oLogicDocument.CurPage; specialPasteHelper.buttonInfo.fixPosition = {x: _X, y: _Y, pageNum: _PageNum}; var _coord = this.WordControl.m_oLogicDocument.DrawingDocument.ConvertCoordsToCursorWR(_X, _Y, _PageNum); var curCoord = new AscCommon.asc_CRect( _coord.X, _coord.Y, 0, 0 ); specialPasteShowOptions.asc_setCellCoord(curCoord); if(isUpdate) { specialPasteShowOptions.options = []; this.asc_UpdateSpecialPasteButton(specialPasteShowOptions); } else { this.asc_ShowSpecialPasteButton(specialPasteShowOptions); } } specialPasteHelper.showButtonIdParagraph = null; return true; }; asc_docs_api.prototype.asc_ShowSpecialPasteButton = function(props) { this.sendEvent("asc_onShowSpecialPasteOptions", props); }; asc_docs_api.prototype.asc_HideSpecialPasteButton = function() { this.sendEvent("asc_onHideSpecialPasteOptions"); }; asc_docs_api.prototype.asc_UpdateSpecialPasteButton = function() { var pasteHepler = AscCommon.g_specialPasteHelper; if(!pasteHepler) { return; } var props; if(pasteHepler.buttonInfo && pasteHepler.buttonInfo.fixPosition) { props = pasteHepler.buttonInfo; var _Y = props.fixPosition.y; var _X = props.fixPosition.x; var _PageNum = props.fixPosition.pageNum; var _coord = this.WordControl.m_oLogicDocument.DrawingDocument.ConvertCoordsToCursorWR(_X, _Y, _PageNum); var curCoord = new AscCommon.asc_CRect( _coord.X, _coord.Y, 0, 0 ); props.asc_setCellCoord(curCoord); } if(props) { this.sendEvent("asc_onShowSpecialPasteOptions", props); } }; asc_docs_api.prototype.beginInlineDropTarget = function(e) { if (this.WordControl.m_oLogicDocument && this.WordControl.m_oDrawingDocument) { this.WordControl.m_oDrawingDocument.StartTrackText(); this.WordControl.StartUpdateOverlay(); this.WordControl.onMouseMove(e); this.WordControl.EndUpdateOverlay(); } }; asc_docs_api.prototype.endInlineDropTarget = function(e) { if (this.WordControl.m_oLogicDocument && this.WordControl.m_oDrawingDocument) { this.WordControl.m_oDrawingDocument.EndTrackText(true); } }; asc_docs_api.prototype._onSaveCallbackInner = function() { var t = this; History.CheckUnionLastPoints(); if (c_oAscCollaborativeMarksShowType.LastChanges === this.CollaborativeMarksShowType) { AscCommon.CollaborativeEditing.Clear_CollaborativeMarks(); } // Принимаем чужие изменения var HaveOtherChanges = AscCommon.CollaborativeEditing.Have_OtherChanges(); AscCommon.CollaborativeEditing.Apply_Changes(); this.CoAuthoringApi.onUnSaveLock = function() { t.CoAuthoringApi.onUnSaveLock = null; if (t.isForceSaveOnUserSave && t.IsUserSave) { t.forceSaveButtonContinue = t.forceSave(); } // Выставляем, что документ не модифицирован t.CheckChangedDocument(); t.canSave = true; t.IsUserSave = false; if (!t.forceSaveButtonContinue) { t.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); } // Обновляем состояние возможности сохранения документа t._onUpdateDocumentCanSave(); if (undefined !== window["AscDesktopEditor"]) { window["AscDesktopEditor"]["OnSave"](); } if (t.disconnectOnSave) { t.CoAuthoringApi.disconnect(t.disconnectOnSave.code, t.disconnectOnSave.reason); t.disconnectOnSave = null; } if(AscCommon.g_specialPasteHelper && !AscCommon.CollaborativeEditing.Is_SingleUser()){ AscCommon.g_specialPasteHelper.SpecialPasteButton_Hide(); } if (t.canUnlockDocument) { t._unlockDocument(); } }; var CursorInfo = null; if (true === AscCommon.CollaborativeEditing.Is_Fast()) { CursorInfo = History.Get_DocumentPositionBinary(); } if (this.forceSaveUndoRequest) { AscCommon.CollaborativeEditing.Set_GlobalLock(false); AscCommon.CollaborativeEditing.Undo(); this.forceSaveUndoRequest = false; } else { // Пересылаем свои изменения AscCommon.CollaborativeEditing.Send_Changes(this.IsUserSave, { UserId : this.CoAuthoringApi.getUserConnectionId(), UserShortId : this.DocInfo.get_UserId(), CursorInfo : CursorInfo }, HaveOtherChanges, true); } }; asc_docs_api.prototype._autoSaveInner = function () { var _curTime = new Date(); if (null === this.lastSaveTime) { this.lastSaveTime = _curTime; } if (AscCommon.CollaborativeEditing.Is_Fast() && !AscCommon.CollaborativeEditing.Is_SingleUser()) { this.WordControl.m_oLogicDocument.Continue_FastCollaborativeEditing(); } else { var _bIsWaitScheme = false; if (History.Points && History.Index >= 0 && History.Index < History.Points.length) { if ((_curTime - History.Points[History.Index].Time) < this.intervalWaitAutoSave) { _bIsWaitScheme = true; } } if (!_bIsWaitScheme) { var _interval = (AscCommon.CollaborativeEditing.m_nUseType <= 0) ? this.autoSaveGapSlow : this.autoSaveGapFast; if ((_curTime - this.lastSaveTime) > _interval) { if (History.Have_Changes(true) == true) { this.asc_Save(true); } this.lastSaveTime = _curTime; } } } }; asc_docs_api.prototype._saveCheck = function() { return !this.isLongAction() && !(this.WordControl.m_oLogicDocument && this.WordControl.m_oLogicDocument.IsViewModeInReview()); }; asc_docs_api.prototype._haveOtherChanges = function () { return AscCommon.CollaborativeEditing.Have_OtherChanges(); }; asc_docs_api.prototype.asc_DownloadOrigin = function(bIsDownloadEvent) { //скачивание оригинального pdf, djvu, xps var downloadType = bIsDownloadEvent ? DownloadType.Download : DownloadType.None; var rData = { "id" : this.documentId, "c" : 'pathurl', "title" : this.documentTitle, "data" : 'origin.' + this.documentFormat }; var t = this; t.fCurCallback = function(input) { if (null != input && "pathurl" == input["type"]) { if ('ok' == input["status"]) { var url = input["data"]; if (url) { t.processSavedFile(url, downloadType); } else { t.handlers.trigger("asc_onError", c_oAscError.ID.Unknown, c_oAscError.Level.NoCritical); } } else { t.handlers.trigger("asc_onError", mapAscServerErrorToAscError(parseInt(input["data"])), c_oAscError.Level.NoCritical); } } else { t.handlers.trigger("asc_onError", c_oAscError.ID.Unknown, c_oAscError.Level.NoCritical); } }; sendCommand(this, null, rData); }; asc_docs_api.prototype.asc_DownloadAs = function(typeFile, bIsDownloadEvent) {//передаем число соответствующее своему формату. var actionType = this.mailMergeFileData ? c_oAscAsyncAction.MailMergeLoadFile : c_oAscAsyncAction.DownloadAs; var options = {downloadType : bIsDownloadEvent ? DownloadType.Download : DownloadType.None}; this._downloadAs("save", typeFile, actionType, options, null); }; asc_docs_api.prototype.Resize = function() { if (false === this.bInit_word_control) return; this.WordControl.OnResize(false); }; asc_docs_api.prototype.AddURL = function(url) { }; asc_docs_api.prototype.Help = function() { }; /* idOption идентификатор дополнительного параметра, c_oAscAdvancedOptionsID.TXT. option - какие свойства применить, пока массив. для TXT объект asc_CTXTAdvancedOptions(codepage) exp: asc_setAdvancedOptions(c_oAscAdvancedOptionsID.TXT, new Asc.asc_CCSVAdvancedOptions(1200) ); */ asc_docs_api.prototype.asc_setAdvancedOptions = function(idOption, option) { if (AscCommon.EncryptionWorker.asc_setAdvancedOptions(this, idOption, option)) return; switch (idOption) { case c_oAscAdvancedOptionsID.TXT: // Проверяем тип состояния в данный момент if (this.advancedOptionsAction === c_oAscAdvancedOptionsAction.Open) { var rData = { "id" : this.documentId, "userid" : this.documentUserId, "format" : this.documentFormat, "c" : "reopen", "url" : this.documentUrl, "title" : this.documentTitle, "codepage" : option.asc_getCodePage(), "nobase64" : true }; sendCommand(this, null, rData); } else if (this.advancedOptionsAction === c_oAscAdvancedOptionsAction.Save) { var options = {txtOptions : option, downloadType : this.downloadType}; this.downloadType = DownloadType.None; this._downloadAs("save", c_oAscFileType.TXT, c_oAscAsyncAction.DownloadAs, options, null); } break; case c_oAscAdvancedOptionsID.DRM: if (this.advancedOptionsAction === c_oAscAdvancedOptionsAction.Open) { var v = { "id": this.documentId, "userid": this.documentUserId, "format": this.documentFormat, "c": "reopen", "url": this.documentUrl, "title": this.documentTitle, "password": option.asc_getPassword(), "nobase64": true }; sendCommand(this, null, v); } break; } }; asc_docs_api.prototype.SetFontRenderingMode = function(mode) { if (!this.isLoadFullApi) { this.tmpFontRenderingMode = mode; return; } if (c_oAscFontRenderingModeType.noHinting === mode) AscCommon.SetHintsProps(false, false); else if (c_oAscFontRenderingModeType.hinting === mode) AscCommon.SetHintsProps(true, false); else if (c_oAscFontRenderingModeType.hintingAndSubpixeling === mode) AscCommon.SetHintsProps(true, true); this.WordControl.m_oDrawingDocument.ClearCachePages(); AscCommon.g_fontManager.ClearFontsRasterCache(); if (window.g_fontManager2 !== undefined && window.g_fontManager2 !== null) window.g_fontManager2.ClearFontsRasterCache(); if (this.bInit_word_control) this.WordControl.OnScroll(); }; asc_docs_api.prototype.processSavedFile = function(url, downloadType) { var t = this; if (this.mailMergeFileData) { this.mailMergeFileData = null; AscCommon.loadFileContent(url, function(httpRequest) { if (null === httpRequest) { t.sendEvent("asc_onError", c_oAscError.ID.MailMergeLoadFile, c_oAscError.Level.NoCritical); return; } try { t.asc_StartMailMergeByList(JSON.parse(httpRequest.responseText)); } catch (e) { t.sendEvent("asc_onError", c_oAscError.ID.MailMergeLoadFile, c_oAscError.Level.NoCritical); } }); } else if (this.insertDocumentUrlsData) { t.insertDocumentUrlsData.imageMap = url; AscCommon.loadFileContent(url['output.bin'], function(httpRequest) { var stream; if (null === httpRequest || !(stream = AscCommon.initStreamFromResponse(httpRequest))) { t.endInsertDocumentUrls(); t.sendEvent("asc_onError", c_oAscError.ID.MailMergeLoadFile, c_oAscError.Level.NoCritical); return; } t.asc_PasteData(AscCommon.c_oAscClipboardDataFormat.Internal, stream, undefined, undefined, true); }, "arraybuffer"); } else { AscCommon.baseEditorsApi.prototype.processSavedFile.call(this, url, downloadType); } }; asc_docs_api.prototype.continueInsertDocumentUrls = function() { if(this.insertDocumentUrlsData) { this.WordControl.m_oLogicDocument.MoveCursorRight(false, false, true); this.WordControl.m_oLogicDocument.Recalculate(); } if (this.insertDocumentUrlsData && this.insertDocumentUrlsData.documents.length > 0) { this.asc_DownloadAs(Asc.c_oAscFileType.CANVAS_WORD); } else { this.endInsertDocumentUrls(); } }; asc_docs_api.prototype.endInsertDocumentUrls = function() { if (this.insertDocumentUrlsData) { this.insertDocumentUrlsData.endCallback(this); this.insertDocumentUrlsData = null; //this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.DownloadAs); } }; asc_docs_api.prototype.startGetDocInfo = function() { /* Возвращаем объект следующего вида: { PageCount: 12, WordsCount: 2321, ParagraphCount: 45, SymbolsCount: 232345, SymbolsWSCount: 34356 } */ this.sync_GetDocInfoStartCallback(); if (null != this.WordControl.m_oDrawingDocument.m_oDocumentRenderer) { var _render = this.WordControl.m_oDrawingDocument.m_oDocumentRenderer; var obj = { PageCount : _render.PagesCount, WordsCount : _render.CountWords, ParagraphCount : _render.CountParagraphs, SymbolsCount : _render.CountSymbols, SymbolsWSCount : (_render.CountSymbols + _render.CountSpaces) }; this.sendEvent("asc_onDocInfo", new CDocInfoProp(obj)); this.sync_GetDocInfoEndCallback(); } else { this.WordControl.m_oLogicDocument.Statistics_Start(); } }; asc_docs_api.prototype.stopGetDocInfo = function() { this.sync_GetDocInfoStopCallback(); if (null != this.WordControl.m_oLogicDocument) this.WordControl.m_oLogicDocument.Statistics_Stop(); }; asc_docs_api.prototype.sync_DocInfoCallback = function(obj) { this.sendEvent("asc_onDocInfo", new CDocInfoProp(obj)); }; asc_docs_api.prototype.sync_GetDocInfoStartCallback = function() { this.sendEvent("asc_onGetDocInfoStart"); }; asc_docs_api.prototype.sync_GetDocInfoStopCallback = function() { this.sendEvent("asc_onGetDocInfoStop"); }; asc_docs_api.prototype.sync_GetDocInfoEndCallback = function() { this.sendEvent("asc_onGetDocInfoEnd"); }; asc_docs_api.prototype.sync_CanUndoCallback = function(bCanUndo) { this.sendEvent("asc_onCanUndo", bCanUndo); }; asc_docs_api.prototype.sync_CanRedoCallback = function(bCanRedo) { if (true === AscCommon.CollaborativeEditing.Is_Fast() && true !== AscCommon.CollaborativeEditing.Is_SingleUser()) bCanRedo = false; this.sendEvent("asc_onCanRedo", bCanRedo); }; asc_docs_api.prototype.can_CopyCut = function() { return this.WordControl.m_oLogicDocument.Can_CopyCut(); }; asc_docs_api.prototype.sync_CanCopyCutCallback = function(bCanCopyCut) { this.sendEvent("asc_onCanCopyCut", bCanCopyCut); }; asc_docs_api.prototype.setStartPointHistory = function() { this.noCreatePoint = true; this.exucuteHistory = true; this.incrementCounterLongAction(); this.WordControl.m_oLogicDocument.TurnOff_InterfaceEvents(); }; asc_docs_api.prototype.setEndPointHistory = function() { this.noCreatePoint = false; this.exucuteHistoryEnd = true; this.decrementCounterLongAction(); this.WordControl.m_oLogicDocument.TurnOn_InterfaceEvents(); }; function CDocInfoProp(obj) { if (obj) { this.PageCount = obj.PageCount; this.WordsCount = obj.WordsCount; this.ParagraphCount = obj.ParagraphCount; this.SymbolsCount = obj.SymbolsCount; this.SymbolsWSCount = obj.SymbolsWSCount; } else { this.PageCount = -1; this.WordsCount = -1; this.ParagraphCount = -1; this.SymbolsCount = -1; this.SymbolsWSCount = -1; } } CDocInfoProp.prototype.get_PageCount = function() { return this.PageCount; }; CDocInfoProp.prototype.put_PageCount = function(v) { this.PageCount = v; }; CDocInfoProp.prototype.get_WordsCount = function() { return this.WordsCount; }; CDocInfoProp.prototype.put_WordsCount = function(v) { this.WordsCount = v; }; CDocInfoProp.prototype.get_ParagraphCount = function() { return this.ParagraphCount; }; CDocInfoProp.prototype.put_ParagraphCount = function(v) { this.ParagraphCount = v; }; CDocInfoProp.prototype.get_SymbolsCount = function() { return this.SymbolsCount; }; CDocInfoProp.prototype.put_SymbolsCount = function(v) { this.SymbolsCount = v; }; CDocInfoProp.prototype.get_SymbolsWSCount = function() { return this.SymbolsWSCount; }; CDocInfoProp.prototype.put_SymbolsWSCount = function(v) { this.SymbolsWSCount = v; }; /*callbacks*/ /*asc_docs_api.prototype.sync_CursorLockCallBack = function(isLock){ this.sendEvent("asc_onCursorLock",isLock); }*/ asc_docs_api.prototype.sync_UndoCallBack = function() { this.sendEvent("asc_onUndo"); }; asc_docs_api.prototype.sync_RedoCallBack = function() { this.sendEvent("asc_onRedo"); }; asc_docs_api.prototype.sync_CopyCallBack = function() { this.sendEvent("asc_onCopy"); }; asc_docs_api.prototype.sync_CutCallBack = function() { this.sendEvent("asc_onCut"); }; asc_docs_api.prototype.sync_PasteCallBack = function() { this.sendEvent("asc_onPaste"); }; asc_docs_api.prototype.sync_ShareCallBack = function() { this.sendEvent("asc_onShare"); }; asc_docs_api.prototype.sync_SaveCallBack = function() { this.sendEvent("asc_onSave"); }; asc_docs_api.prototype.sync_DownloadAsCallBack = function() { this.sendEvent("asc_onDownload"); }; asc_docs_api.prototype.sync_AddURLCallback = function() { this.sendEvent("asc_onAddURL"); }; asc_docs_api.prototype.sync_ErrorCallback = function(errorID, errorLevel) { this.sendEvent("asc_onError", errorID, errorLevel); }; asc_docs_api.prototype.sync_HelpCallback = function(url) { this.sendEvent("asc_onHelp", url); }; asc_docs_api.prototype.sync_UpdateZoom = function(zoom) { this.sendEvent("asc_onZoom", zoom); }; asc_docs_api.prototype.ClearPropObjCallback = function(prop) {//колбэк предшествующий приходу свойств объекта, prop а всякий случай this.sendEvent("asc_onClearPropObj", prop); }; // mobile version methods: asc_docs_api.prototype.asc_GetDefaultTableStyles = function() { if (!this.WordControl.m_oLogicDocument) return; this.WordControl.m_oDrawingDocument.StartTableStylesCheck(); this.WordControl.m_oDrawingDocument.TableStylesCheckLook = new Asc.CTablePropLook(); this.WordControl.m_oDrawingDocument.TableStylesCheckLook.FirstCol = true; this.WordControl.m_oDrawingDocument.TableStylesCheckLook.FirstRow = true; this.WordControl.m_oDrawingDocument.TableStylesCheckLook.BandHor = true; this.WordControl.m_oDrawingDocument.EndTableStylesCheck(); }; asc_docs_api.prototype.CollectHeaders = function() { this.sync_ReturnHeadersCallback([]); }; asc_docs_api.prototype.GetActiveHeader = function() { }; asc_docs_api.prototype.gotoHeader = function(page, X, Y) { this.goToPage(page); }; asc_docs_api.prototype.sync_ChangeActiveHeaderCallback = function(position, header) { this.sendEvent("asc_onChangeActiveHeader", position, new Asc.CHeader(header)); }; asc_docs_api.prototype.sync_ReturnHeadersCallback = function(headers) { var _headers = []; for (var i = 0; i < headers.length; i++) { _headers[i] = new CHeader(headers[i]); } this.sendEvent("asc_onReturnHeaders", _headers); }; /*----------------------------------------------------------------*/ /*functions for working with search*/ /* структура поиска, предварительно, выглядит так { text: "...слово поиска...", pageNumber: 0, //содержит номер страницы, где находится искомая последовательность X: 0,//координаты по OX начала последовательности на данной страницы Y: 0//координаты по OY начала последовательности на данной страницы } */ asc_docs_api.prototype.asc_searchEnabled = function(bIsEnabled) { if (null != this.WordControl.m_oDrawingDocument.m_oDocumentRenderer) { this.WordControl.m_oDrawingDocument.m_oDocumentRenderer.SearchResults.IsSearch = false; this.WordControl.OnUpdateOverlay(); } }; asc_docs_api.prototype.asc_findText = function(text, isNext, isMatchCase) { if (null != this.WordControl.m_oDrawingDocument.m_oDocumentRenderer) { this.WordControl.m_oDrawingDocument.m_oDocumentRenderer.findText(text, isMatchCase, isNext); return this.WordControl.m_oDrawingDocument.m_oDocumentRenderer.SearchResults.Count; } var SearchEngine = editor.WordControl.m_oLogicDocument.Search(text, {MatchCase : isMatchCase}); var Id = this.WordControl.m_oLogicDocument.Search_GetId(isNext); if (null != Id) this.WordControl.m_oLogicDocument.Search_Select(Id); return SearchEngine.Count; }; asc_docs_api.prototype.asc_replaceText = function(text, replaceWith, isReplaceAll, isMatchCase) { if (null == this.WordControl.m_oLogicDocument) return; this.WordControl.m_oLogicDocument.Search(text, {MatchCase : isMatchCase}); if (true === isReplaceAll) this.WordControl.m_oLogicDocument.Search_Replace(replaceWith, true, -1); else { var CurId = this.WordControl.m_oLogicDocument.SearchEngine.CurId; var bDirection = this.WordControl.m_oLogicDocument.SearchEngine.Direction; if (-1 != CurId) this.WordControl.m_oLogicDocument.Search_Replace(replaceWith, false, CurId); var Id = this.WordControl.m_oLogicDocument.Search_GetId(bDirection); if (null != Id) { this.WordControl.m_oLogicDocument.Search_Select(Id); return true; } return false; } }; asc_docs_api.prototype._selectSearchingResults = function(bShow) { if (null != this.WordControl.m_oDrawingDocument.m_oDocumentRenderer) { this.WordControl.m_oDrawingDocument.m_oDocumentRenderer.SearchResults.Show = bShow; this.WordControl.OnUpdateOverlay(); return; } this.WordControl.m_oLogicDocument.Search_Set_Selection(bShow); }; asc_docs_api.prototype.asc_isSelectSearchingResults = function() { if (null != this.WordControl.m_oDrawingDocument.m_oDocumentRenderer) { return this.WordControl.m_oDrawingDocument.m_oDocumentRenderer.SearchResults.Show; } return this.WordControl.m_oLogicDocument.Search_Get_Selection(); }; asc_docs_api.prototype.sync_ReplaceAllCallback = function(ReplaceCount, OverallCount) { this.sendEvent("asc_onReplaceAll", ReplaceCount, OverallCount); }; asc_docs_api.prototype.sync_SearchEndCallback = function() { this.sendEvent("asc_onSearchEnd"); }; /*----------------------------------------------------------------*/ /*functions for working with font*/ /*setters*/ asc_docs_api.prototype.put_TextPrFontName = function(name) { var loader = AscCommon.g_font_loader; var fontinfo = g_fontApplication.GetFontInfo(name); var isasync = loader.LoadFont(fontinfo); if (false === isasync) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetTextFontName); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({ FontFamily : { Name : name, Index : -1 } })); } } }; asc_docs_api.prototype.put_TextPrFontSize = function(size) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetTextFontSize); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({FontSize : Math.min(size, 100)})); // для мобильной версии это важно if (this.isMobileVersion) this.UpdateInterfaceState(); } }; asc_docs_api.prototype.put_TextPrBold = function(value) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetTextBold); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({Bold : value})); } }; asc_docs_api.prototype.put_TextPrItalic = function(value) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetTextItalic); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({Italic : value})); } }; asc_docs_api.prototype.put_TextPrUnderline = function(value) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetTextUnderline); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({Underline : value})); if (true === this.isMarkerFormat) this.sync_MarkerFormatCallback(false); } }; asc_docs_api.prototype.put_TextPrStrikeout = function(value) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetTextStrikeout); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({ Strikeout : value, DStrikeout : false })); if (true === this.isMarkerFormat) this.sync_MarkerFormatCallback(false); } }; asc_docs_api.prototype.put_TextPrDStrikeout = function(value) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetTextDStrikeout); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({ DStrikeout : value, Strikeout : false })); if (true === this.isMarkerFormat) this.sync_MarkerFormatCallback(false); } }; asc_docs_api.prototype.put_TextPrSpacing = function(value) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetTextSpacing); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({Spacing : value})); if (true === this.isMarkerFormat) this.sync_MarkerFormatCallback(false); } }; asc_docs_api.prototype.put_TextPrCaps = function(value) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetTextCaps); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({ Caps : value, SmallCaps : false })); if (true === this.isMarkerFormat) this.sync_MarkerFormatCallback(false); } }; asc_docs_api.prototype.put_TextPrSmallCaps = function(value) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetTextSmallCaps); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({ SmallCaps : value, Caps : false })); if (true === this.isMarkerFormat) this.sync_MarkerFormatCallback(false); } }; asc_docs_api.prototype.put_TextPrPosition = function(value) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetTextPosition); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({Position : value})); if (true === this.isMarkerFormat) this.sync_MarkerFormatCallback(false); } }; asc_docs_api.prototype.put_TextPrLang = function(value) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetTextLang); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({Lang : {Val : value}})); this.WordControl.m_oLogicDocument.Spelling.Check_CurParas(); if (true === this.isMarkerFormat) this.sync_MarkerFormatCallback(false); } }; asc_docs_api.prototype.put_PrLineSpacing = function(Type, Value) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetParagraphLineSpacing); this.WordControl.m_oLogicDocument.SetParagraphSpacing({LineRule : Type, Line : Value}); var ParaPr = this.get_TextProps().ParaPr; if (null != ParaPr) this.sync_ParaSpacingLine(ParaPr.Spacing); } }; asc_docs_api.prototype.put_LineSpacingBeforeAfter = function(type, value)//"type == 0" means "Before", "type == 1" means "After" { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetParagraphLineSpacingBeforeAfter); switch (type) { case 0: { if (AscCommonWord.spacing_Auto === value) this.WordControl.m_oLogicDocument.SetParagraphSpacing({BeforeAutoSpacing : true}); else this.WordControl.m_oLogicDocument.SetParagraphSpacing({ Before : value, BeforeAutoSpacing : false }); break; } case 1: { if (AscCommonWord.spacing_Auto === value) this.WordControl.m_oLogicDocument.SetParagraphSpacing({AfterAutoSpacing : true}); else this.WordControl.m_oLogicDocument.SetParagraphSpacing({ After : value, AfterAutoSpacing : false }); break; } } } }; asc_docs_api.prototype.FontSizeIn = function() { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_IncFontSize); this.WordControl.m_oLogicDocument.IncreaseDecreaseFontSize(true); } }; asc_docs_api.prototype.FontSizeOut = function() { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_DecFontSize); this.WordControl.m_oLogicDocument.IncreaseDecreaseFontSize(false); } }; // Object: // { // Bottom : // { // Color : { r : 0, g : 0, b : 0 }, // Value : border_Single, // Size : 0.5 * g_dKoef_pt_to_mm // Space : 0 // }, // Left : // { // .... // } // Right : // { // .... // } // Top : // { // .... // } // }, // Between : // { // .... // } // } asc_docs_api.prototype.put_Borders = function(Obj) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetParagraphBorders); this.WordControl.m_oLogicDocument.SetParagraphBorders(Obj); } }; /*callbacks*/ asc_docs_api.prototype.sync_BoldCallBack = function(isBold) { this.sendEvent("asc_onBold", isBold); }; asc_docs_api.prototype.sync_ItalicCallBack = function(isItalic) { this.sendEvent("asc_onItalic", isItalic); }; asc_docs_api.prototype.sync_UnderlineCallBack = function(isUnderline) { this.sendEvent("asc_onUnderline", isUnderline); }; asc_docs_api.prototype.sync_StrikeoutCallBack = function(isStrikeout) { this.sendEvent("asc_onStrikeout", isStrikeout); }; asc_docs_api.prototype.sync_TextPrFontFamilyCallBack = function(FontFamily) { if (undefined != FontFamily) this.sendEvent("asc_onFontFamily", new asc_CTextFontFamily(FontFamily)); else this.sendEvent("asc_onFontFamily", new asc_CTextFontFamily({Name : "", Index : -1})); }; asc_docs_api.prototype.sync_TextPrFontSizeCallBack = function(FontSize) { this.sendEvent("asc_onFontSize", FontSize); }; asc_docs_api.prototype.sync_PrLineSpacingCallBack = function(LineSpacing) { this.sendEvent("asc_onLineSpacing", new Asc.asc_CParagraphInd(LineSpacing)); }; asc_docs_api.prototype.sync_InitEditorStyles = function(styles_painter) { if (!this.isViewMode) { this.sendEvent("asc_onInitEditorStyles", styles_painter); } }; asc_docs_api.prototype.sync_InitEditorTableStyles = function(styles, is_retina_enabled) { if (!this.isViewMode) { this.sendEvent("asc_onInitTableTemplates", styles, is_retina_enabled); } }; /*----------------------------------------------------------------*/ /*functions for working with paragraph*/ /*setters*/ // Right = 0; Left = 1; Center = 2; Justify = 3; or using enum that written above /* структура для параграфа Ind : { Left : 0, // Левый отступ Right : 0, // Правый отступ FirstLine : 0 // Первая строка } Spacing : { Line : 1.15, // Расстояние между строками внутри абзаца LineRule : linerule_Auto, // Тип расстрояния между строками Before : 0, // Дополнительное расстояние до абзаца After : 10 * g_dKoef_pt_to_mm // Дополнительное расстояние после абзаца }, KeepLines : false, // переносить параграф на новую страницу, // если на текущей он целиком не убирается PageBreakBefore : false */ asc_docs_api.prototype.paraApply = function(Props) { var Additional = undefined; if (undefined != Props.DefaultTab) Additional = { Type : AscCommon.changestype_2_Element_and_Type, Element : this.WordControl.m_oLogicDocument, CheckType : AscCommon.changestype_Document_SectPr }; if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties, Additional)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetParagraphPr); // TODO: Сделать так, чтобы пересчет был всего 1 здесь if ("undefined" != typeof(Props.ContextualSpacing) && null != Props.ContextualSpacing) this.WordControl.m_oLogicDocument.SetParagraphContextualSpacing(Props.ContextualSpacing); if ("undefined" != typeof(Props.Ind) && null != Props.Ind) this.WordControl.m_oLogicDocument.SetParagraphIndent(Props.Ind); if ("undefined" != typeof(Props.Jc) && null != Props.Jc) this.WordControl.m_oLogicDocument.SetParagraphAlign(Props.Jc); if ("undefined" != typeof(Props.KeepLines) && null != Props.KeepLines) this.WordControl.m_oLogicDocument.SetParagraphKeepLines(Props.KeepLines); if (undefined != Props.KeepNext && null != Props.KeepNext) this.WordControl.m_oLogicDocument.SetParagraphKeepNext(Props.KeepNext); if (undefined != Props.WidowControl && null != Props.WidowControl) this.WordControl.m_oLogicDocument.SetParagraphWidowControl(Props.WidowControl); if ("undefined" != typeof(Props.PageBreakBefore) && null != Props.PageBreakBefore) this.WordControl.m_oLogicDocument.SetParagraphPageBreakBefore(Props.PageBreakBefore); if ("undefined" != typeof(Props.Spacing) && null != Props.Spacing) this.WordControl.m_oLogicDocument.SetParagraphSpacing(Props.Spacing); if ("undefined" != typeof(Props.Shd) && null != Props.Shd) { var Unifill = new AscFormat.CUniFill(); Unifill.fill = new AscFormat.CSolidFill(); Unifill.fill.color = AscFormat.CorrectUniColor(Props.Shd.Color, Unifill.fill.color, 1); this.WordControl.m_oLogicDocument.SetParagraphShd( { Value : Props.Shd.Value, Color : { r : Props.Shd.Color.asc_getR(), g : Props.Shd.Color.asc_getG(), b : Props.Shd.Color.asc_getB() }, Unifill : Unifill }); } if ("undefined" != typeof(Props.Brd) && null != Props.Brd) { if (Props.Brd.Left && Props.Brd.Left.Color) { Props.Brd.Left.Unifill = AscFormat.CreateUnifillFromAscColor(Props.Brd.Left.Color, 1); } if (Props.Brd.Top && Props.Brd.Top.Color) { Props.Brd.Top.Unifill = AscFormat.CreateUnifillFromAscColor(Props.Brd.Top.Color, 1); } if (Props.Brd.Right && Props.Brd.Right.Color) { Props.Brd.Right.Unifill = AscFormat.CreateUnifillFromAscColor(Props.Brd.Right.Color, 1); } if (Props.Brd.Bottom && Props.Brd.Bottom.Color) { Props.Brd.Bottom.Unifill = AscFormat.CreateUnifillFromAscColor(Props.Brd.Bottom.Color, 1); } if (Props.Brd.InsideH && Props.Brd.InsideH.Color) { Props.Brd.InsideH.Unifill = AscFormat.CreateUnifillFromAscColor(Props.Brd.InsideH.Color, 1); } if (Props.Brd.InsideV && Props.Brd.InsideV.Color) { Props.Brd.InsideV.Unifill = AscFormat.CreateUnifillFromAscColor(Props.Brd.InsideV.Color, 1); } this.WordControl.m_oLogicDocument.SetParagraphBorders(Props.Brd); } if (undefined != Props.Tabs) { var Tabs = new AscCommonWord.CParaTabs(); Tabs.Set_FromObject(Props.Tabs.Tabs); this.WordControl.m_oLogicDocument.SetParagraphTabs(Tabs); } if (undefined != Props.DefaultTab) { this.WordControl.m_oLogicDocument.Set_DocumentDefaultTab(Props.DefaultTab); } // TODO: как только разъединят настройки параграфа и текста переделать тут var TextPr = new AscCommonWord.CTextPr(); if (true === Props.Subscript) TextPr.VertAlign = AscCommon.vertalign_SubScript; else if (true === Props.Superscript) TextPr.VertAlign = AscCommon.vertalign_SuperScript; else if (false === Props.Superscript || false === Props.Subscript) TextPr.VertAlign = AscCommon.vertalign_Baseline; if (undefined != Props.Strikeout) { TextPr.Strikeout = Props.Strikeout; TextPr.DStrikeout = false; } if (undefined != Props.DStrikeout) { TextPr.DStrikeout = Props.DStrikeout; if (true === TextPr.DStrikeout) TextPr.Strikeout = false; } if (undefined != Props.SmallCaps) { TextPr.SmallCaps = Props.SmallCaps; TextPr.AllCaps = false; } if (undefined != Props.AllCaps) { TextPr.Caps = Props.AllCaps; if (true === TextPr.AllCaps) TextPr.SmallCaps = false; } if (undefined != Props.TextSpacing) TextPr.Spacing = Props.TextSpacing; if (undefined != Props.Position) TextPr.Position = Props.Position; this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr(TextPr)); this.WordControl.m_oLogicDocument.Document_UpdateInterfaceState(); } }; asc_docs_api.prototype.put_PrAlign = function(value) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetParagraphAlign); this.WordControl.m_oLogicDocument.SetParagraphAlign(value); } }; // 0- baseline, 2-subscript, 1-superscript asc_docs_api.prototype.put_TextPrBaseline = function(value) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetTextVertAlign); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({VertAlign : value})); } }; /* Во всех случаях SubType = 0 означает, что нажали просто на кнопку c выбором типа списка, без выбора подтипа. Маркированный список Type = 0 нет - SubType = -1 черная точка - SubType = 1 круг - SubType = 2 квадрат - SubType = 3 картинка - SubType = -1 4 ромба - SubType = 4 ч/б стрелка - SubType = 5 галка - SubType = 6 ромб - SubType = 7 Нумерованный список Type = 1 нет - SubType = -1 1. - SubType = 1 1) - SubType = 2 I. - SubType = 3 A. - SubType = 4 a) - SubType = 5 a. - SubType = 6 i. - SubType = 7 Многоуровневый список Type = 2 нет - SubType = -1 1)a)i) - SubType = 1 1.1.1 - SubType = 2 маркированный - SubType = 3 */ asc_docs_api.prototype.put_ListType = function(type, subtype) { var oLogicDocument = this.WordControl.m_oLogicDocument; var fCallback = function() { if (false === oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) { var NumberInfo = { Type : 0, SubType : -1 }; NumberInfo.Type = type; NumberInfo.SubType = subtype; oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetParagraphNumbering); oLogicDocument.SetParagraphNumbering(NumberInfo); } }; var sBullet = ""; if(type === 0) { switch (subtype) { case 1: { sBullet = String.fromCharCode(0x00B7); break; } case 2: { sBullet = "o"; break; } case 3: { sBullet = String.fromCharCode(0x00A7); break; } case 4: { sBullet = String.fromCharCode(0x0076); break; } case 5: { sBullet = String.fromCharCode(0x00D8); break; } case 6: { sBullet = String.fromCharCode(0x00FC); break; } case 7: { sBullet = String.fromCharCode(0x00A8); break; } case 8: { sBullet = String.fromCharCode(0x2013); break; } } } if(sBullet.length > 0) { AscFonts.FontPickerByCharacter.checkText(sBullet, this, fCallback); } else { fCallback(); } }; asc_docs_api.prototype.asc_ContinueNumbering = function() { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; oLogicDocument.ContinueNumbering(); }; asc_docs_api.prototype.asc_RestartNumbering = function(nRestartValue) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; oLogicDocument.RestartNumbering(nRestartValue); }; asc_docs_api.prototype.asc_GetCurrentNumberingId = function() { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return null; var oNumPr = oLogicDocument.GetSelectedNum(true); if (!oNumPr) return null; var oNum = oLogicDocument.GetNumbering().GetNum(oNumPr.NumId); if (!oNum) return null; return oNumPr.NumId; }; asc_docs_api.prototype.asc_GetCurrentNumberingLvl = function() { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return -1; var oNumPr = oLogicDocument.GetSelectedNum(true); if (!oNumPr || !oNumPr.Lvl) return -1; return oNumPr.Lvl; }; asc_docs_api.prototype.asc_GetCalculatedNumberingValue = function() { var oLogicDocument = this.private_GetLogicDocument(); if (!oLogicDocument) return -1; var oParagraph = oLogicDocument.GetCurrentParagraph(true); if (!oParagraph) return -1; return oParagraph.GetNumberingCalculatedValue(); }; asc_docs_api.prototype.asc_GetNumberingPr = function(sNumId) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return null; var oNum = oLogicDocument.GetNumbering().GetNum(sNumId); if (!oNum) return null; var oAscNumbering = new Asc.CAscNumbering(); oNum.FillToAscNum(oAscNumbering); return oAscNumbering; }; asc_docs_api.prototype.asc_AddNewNumbering = function(oAscNumbering, isApply) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return null; var arrParagraphs; if (isApply) { arrParagraphs = oLogicDocument.GetSelectedParagraphs(); if (oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_None, { Type : AscCommon.changestype_2_ElementsArray_and_Type, Elements : arrParagraphs, CheckType : AscCommon.changestype_Paragraph_Properties })) { return null; } } oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_CreateNum); var oNumbering = oLogicDocument.GetNumbering(); var oNum = oNumbering.CreateNum(); oNum.FillFromAscNum(oAscNumbering); var sNumId = oNum.GetId(); if (arrParagraphs) { for (var nIndex = 0, nCount = arrParagraphs.length; nIndex < nCount; ++nIndex) { var oPara = arrParagraphs[nIndex]; var oNumPr = oPara.GetNumPr(); if (!oNumPr) oPara.ApplyNumPr(sNumId, 0); else oPara.ApplyNumPr(sNumId, oNumPr.Lvl); } oLogicDocument.Recalculate(); oLogicDocument.Document_UpdateInterfaceState(); oLogicDocument.Document_UpdateSelectionState(); } }; asc_docs_api.prototype.asc_ChangeNumberingLvl = function(sNumId, oAscNumberingLvl, nLvl) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; var oNum = oLogicDocument.GetNumbering().GetNum(sNumId); if (!oNum) return; if (!oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_None, { Type : AscCommon.changestype_2_ElementsArray_and_Type, Elements : [oNum], CheckType : AscCommon.changestype_Paragraph_Properties })) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_ChangeNumLvl); var oNumberingLvl = new CNumberingLvl(); oNumberingLvl.FillFromAscNumberingLvl(oAscNumberingLvl); oNum.SetLvl(oNumberingLvl, nLvl); oLogicDocument.Recalculate(); oLogicDocument.Document_UpdateInterfaceState(); oLogicDocument.Document_UpdateSelectionState(); } }; asc_docs_api.prototype.put_Style = function(sName) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetParagraphStyle); this.WordControl.m_oLogicDocument.SetParagraphStyle(sName, true); } }; asc_docs_api.prototype.SetDeviceInputHelperId = function(idKeyboard) { if (window.ID_KEYBOARD_AREA === undefined && this.WordControl.m_oMainView != null) { window.ID_KEYBOARD_AREA = document.getElementById(idKeyboard); window.ID_KEYBOARD_AREA.onkeypress = function(e) { if (false === editor.WordControl.IsFocus) { editor.WordControl.IsFocus = true; var ret = editor.WordControl.onKeyPress(e); editor.WordControl.IsFocus = false; return ret; } } window.ID_KEYBOARD_AREA.onkeydown = function(e) { if (false === editor.WordControl.IsFocus) { editor.WordControl.IsFocus = true; var ret = editor.WordControl.onKeyDown(e); editor.WordControl.IsFocus = false; return ret; } } } }; asc_docs_api.prototype.put_ShowSnapLines = function(isShow) { this.ShowSnapLines = isShow; }; asc_docs_api.prototype.get_ShowSnapLines = function() { return this.ShowSnapLines; }; asc_docs_api.prototype.put_ShowParaMarks = function(isShow) { /* if (window.IsAddDiv === undefined && this.WordControl.m_oMainView != null) { window.IsAddDiv = true; var _div = this.WordControl.m_oMainView.HtmlElement; var test = document.createElement('textarea'); test.id = "area_id"; test.setAttribute("style", "font-family:arial;font-size:12pt;position:absolute;resize:none;padding:2px;margin:0px;font-weight:normal;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;z-index:1000"); test.style.border = "2px solid #4363A4"; test.style.width = "100px"; //this.TextBoxInput.style.height = "40px"; test.rows = 1; _div.appendChild(test); test.onkeypress = function(e){ return editor.WordControl.onKeyPress(e); } test.onkeydown = function(e){ return editor.WordControl.onKeyDown(e); } } */ if (this.isRestrictionForms() || this.isRestrictionComments()) isShow = false; this.ShowParaMarks = isShow; this.WordControl.OnRePaintAttack(); if (true === this.isMarkerFormat) this.sync_MarkerFormatCallback(false); return this.ShowParaMarks; }; asc_docs_api.prototype.get_ShowParaMarks = function() { return this.ShowParaMarks; }; asc_docs_api.prototype.sync_ShowParaMarks = function() { this.sendEvent("asc_onShowParaMarks", this.get_ShowParaMarks()); }; asc_docs_api.prototype.put_ShowTableEmptyLine = function(isShow) { this.isShowTableEmptyLine = isShow; this.WordControl.OnRePaintAttack(); if (true === this.isMarkerFormat) this.sync_MarkerFormatCallback(false); return this.isShowTableEmptyLine; }; asc_docs_api.prototype.get_ShowTableEmptyLine = function() { return this.isShowTableEmptyLine; }; asc_docs_api.prototype.put_PageBreak = function(isBreak) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) { this.isPageBreakBefore = isBreak; this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetParagraphPageBreakBefore); this.WordControl.m_oLogicDocument.SetParagraphPageBreakBefore(isBreak); this.sync_PageBreakCallback(isBreak); } }; asc_docs_api.prototype.put_WidowControl = function(bValue) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetParagraphWidowControl); this.WordControl.m_oLogicDocument.SetParagraphWidowControl(bValue); this.sync_WidowControlCallback(bValue); } }; asc_docs_api.prototype.put_KeepLines = function(isKeepLines) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) { this.isKeepLinesTogether = isKeepLines; this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetParagraphKeepLines); this.WordControl.m_oLogicDocument.SetParagraphKeepLines(isKeepLines); this.sync_KeepLinesCallback(isKeepLines); } }; asc_docs_api.prototype.put_KeepNext = function(isKeepNext) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetParagraphKeepNext); this.WordControl.m_oLogicDocument.SetParagraphKeepNext(isKeepNext); this.sync_KeepNextCallback(isKeepNext); } }; asc_docs_api.prototype.put_AddSpaceBetweenPrg = function(isSpacePrg) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) { this.isAddSpaceBetweenPrg = isSpacePrg; this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetParagraphContextualSpacing); this.WordControl.m_oLogicDocument.SetParagraphContextualSpacing(isSpacePrg); } }; asc_docs_api.prototype.put_LineHighLight = function(is_flag, r, g, b) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { if (false === is_flag) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetTextHighlightNone); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({HighLight : AscCommonWord.highlight_None})); } else { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetTextHighlightColor); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({ HighLight : { r : r, g : g, b : b } })); } } }; asc_docs_api.prototype.put_TextColor = function(color) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetTextColor); if (true === color.Auto) { this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({ Color : { Auto : true, r : 0, g : 0, b : 0 }, Unifill : undefined })); } else { var Unifill = new AscFormat.CUniFill(); Unifill.fill = new AscFormat.CSolidFill(); Unifill.fill.color = AscFormat.CorrectUniColor(color, Unifill.fill.color, 1); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({Unifill : Unifill})); } if (true === this.isMarkerFormat) this.sync_MarkerFormatCallback(false); } }; asc_docs_api.prototype.put_ParagraphShade = function(is_flag, color, isOnlyPara) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetParagraphShd); if (true === isOnlyPara) this.WordControl.m_oLogicDocument.Set_UseTextShd(false); if (false === is_flag) this.WordControl.m_oLogicDocument.SetParagraphShd({Value : Asc.c_oAscShdNil}); else { var Unifill = new AscFormat.CUniFill(); Unifill.fill = new AscFormat.CSolidFill(); Unifill.fill.color = AscFormat.CorrectUniColor(color, Unifill.fill.color, 1); this.WordControl.m_oLogicDocument.SetParagraphShd({ Value : Asc.c_oAscShdClear, Color : { r : color.asc_getR(), g : color.asc_getG(), b : color.asc_getB() }, Unifill : Unifill }); } this.WordControl.m_oLogicDocument.Set_UseTextShd(true); } }; asc_docs_api.prototype.put_PrIndent = function(value, levelValue) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetParagraphIndent); this.WordControl.m_oLogicDocument.SetParagraphIndent({Left : value, ChangeLevel : levelValue}); } }; // signatures asc_docs_api.prototype.asc_addSignatureLine = function (sGuid, sSigner, sSigner2, sEmail, Width, Height, sImgUrl) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Document_Content_Add)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_InsertSignatureLine); var oSignature = AscFormat.fCreateSignatureShape(sGuid, sSigner, sSigner2, sEmail, true, null, Width, Height, sImgUrl); var Drawing = new AscCommonWord.ParaDrawing(oSignature.spPr.xfrm.extX, oSignature.spPr.xfrm.extY, null, this.WordControl.m_oDrawingDocument, null, null); oSignature.setParent(Drawing); Drawing.Set_GraphicObject(oSignature); this.WordControl.m_oLogicDocument.AddSignatureLine(Drawing); this.sendEvent("asc_onAddSignature", sGuid); } }; asc_docs_api.prototype.asc_getAllSignatures = function(){ if (!this.WordControl.m_oLogicDocument) return []; return this.WordControl.m_oLogicDocument.GetAllSignatures(); }; asc_docs_api.prototype.asc_CallSignatureDblClickEvent = function(sGuid){ return this.WordControl.m_oLogicDocument.CallSignatureDblClickEvent(sGuid); }; asc_docs_api.prototype.asc_MoveCursorToSignature = function(sGuid){ return this.WordControl.m_oLogicDocument.MoveCursorToSignature(sGuid); }; ////////////////////////////////////////////////////////////////////////// asc_docs_api.prototype.IncreaseIndent = function() { this.WordControl.m_oLogicDocument.IncreaseIndent(); }; asc_docs_api.prototype.DecreaseIndent = function() { this.WordControl.m_oLogicDocument.DecreaseIndent(); }; asc_docs_api.prototype.put_PrIndentRight = function(value) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetParagraphIndentRight); this.WordControl.m_oLogicDocument.SetParagraphIndent({Right : value}); } }; asc_docs_api.prototype.put_PrFirstLineIndent = function(value) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetParagraphIndentFirstLine); this.WordControl.m_oLogicDocument.SetParagraphIndent({FirstLine : value}); } }; asc_docs_api.prototype.put_Margins = function(left, top, right, bottom) { this.WordControl.m_oLogicDocument.Set_DocumentMargin({Left : left, Top : top, Right : right, Bottom : bottom}); }; asc_docs_api.prototype.getFocusObject = function() {//возвратит тип элемента - параграф c_oAscTypeSelectElement.Paragraph, изображение c_oAscTypeSelectElement.Image, таблица c_oAscTypeSelectElement.Table, колонтитул c_oAscTypeSelectElement.Header. }; /*callbacks*/ asc_docs_api.prototype.sync_VerticalAlign = function(typeBaseline) { this.sendEvent("asc_onVerticalAlign", typeBaseline); }; asc_docs_api.prototype.sync_PrAlignCallBack = function(value) { this.sendEvent("asc_onPrAlign", value); }; asc_docs_api.prototype.sync_ListType = function(NumPr) { this.sendEvent("asc_onListType", new AscCommon.asc_CListType(NumPr)); }; asc_docs_api.prototype.sync_TextColor = function(TextPr) { if (TextPr.Unifill && TextPr.Unifill.fill && TextPr.Unifill.fill.type === c_oAscFill.FILL_TYPE_SOLID && TextPr.Unifill.fill.color) { this.sendEvent("asc_onTextColor", AscCommon.CreateAscColor(TextPr.Unifill.fill.color)); } else if (undefined != TextPr.Color) { this.sendEvent("asc_onTextColor", AscCommon.CreateAscColorCustom(TextPr.Color.r, TextPr.Color.g, TextPr.Color.b, TextPr.Color.Auto)); } }; asc_docs_api.prototype.sync_TextHighLight = function(HighLight) { if (undefined != HighLight) this.sendEvent("asc_onTextHighLight", new AscCommon.CColor(HighLight.r, HighLight.g, HighLight.b)); }; asc_docs_api.prototype.sync_TextSpacing = function(Spacing) { this.sendEvent("asc_onTextSpacing", Spacing); }; asc_docs_api.prototype.sync_TextDStrikeout = function(Value) { this.sendEvent("asc_onTextDStrikeout", Value); }; asc_docs_api.prototype.sync_TextCaps = function(Value) { this.sendEvent("asc_onTextCaps", Value); }; asc_docs_api.prototype.sync_TextSmallCaps = function(Value) { this.sendEvent("asc_onTextSmallCaps", Value); }; asc_docs_api.prototype.sync_TextPosition = function(Value) { this.sendEvent("asc_onTextPosition", Value); }; asc_docs_api.prototype.sync_TextLangCallBack = function(Lang) { this.sendEvent("asc_onTextLanguage", Lang.Val); }; asc_docs_api.prototype.sync_ParaStyleName = function(Name) { this.sendEvent("asc_onParaStyleName", Name); }; asc_docs_api.prototype.sync_ParaSpacingLine = function(SpacingLine) { if (true === SpacingLine.AfterAutoSpacing) SpacingLine.After = AscCommonWord.spacing_Auto; else if (undefined === SpacingLine.AfterAutoSpacing) SpacingLine.After = AscCommonWord.UnknownValue; if (true === SpacingLine.BeforeAutoSpacing) SpacingLine.Before = AscCommonWord.spacing_Auto; else if (undefined === SpacingLine.BeforeAutoSpacing) SpacingLine.Before = AscCommonWord.UnknownValue; this.sendEvent("asc_onParaSpacingLine", new AscCommon.asc_CParagraphSpacing(SpacingLine)); }; asc_docs_api.prototype.sync_PageBreakCallback = function(isBreak) { this.sendEvent("asc_onPageBreak", isBreak); }; asc_docs_api.prototype.sync_WidowControlCallback = function(bValue) { this.sendEvent("asc_onWidowControl", bValue); }; asc_docs_api.prototype.sync_KeepNextCallback = function(bValue) { this.sendEvent("asc_onKeepNext", bValue); }; asc_docs_api.prototype.sync_KeepLinesCallback = function(isKeepLines) { this.sendEvent("asc_onKeepLines", isKeepLines); }; asc_docs_api.prototype.sync_ShowParaMarksCallback = function() { this.sendEvent("asc_onShowParaMarks"); }; asc_docs_api.prototype.sync_SpaceBetweenPrgCallback = function() { this.sendEvent("asc_onSpaceBetweenPrg"); }; asc_docs_api.prototype.sync_PrPropCallback = function(prProp) { var _len = this.SelectedObjectsStack.length; if (_len > 0) { if (this.SelectedObjectsStack[_len - 1].Type == c_oAscTypeSelectElement.Paragraph) { this.SelectedObjectsStack[_len - 1].Value = new Asc.asc_CParagraphProperty(prProp); return; } } this.SelectedObjectsStack[this.SelectedObjectsStack.length] = new asc_CSelectedObject(c_oAscTypeSelectElement.Paragraph, new Asc.asc_CParagraphProperty(prProp)); }; asc_docs_api.prototype.sync_MathPropCallback = function(MathProp) { this.SelectedObjectsStack[this.SelectedObjectsStack.length] = new asc_CSelectedObject(c_oAscTypeSelectElement.Math, MathProp); }; asc_docs_api.prototype.sync_EndAddShape = function() { editor.sendEvent("asc_onEndAddShape"); if (this.WordControl.m_oDrawingDocument.m_sLockedCursorType == "crosshair") { this.WordControl.m_oDrawingDocument.UnlockCursorType(); } }; asc_docs_api.prototype.SetDrawingFreeze = function(bIsFreeze) { if (!this.WordControl) return; this.WordControl.DrawingFreeze = bIsFreeze; var _elem1 = document.getElementById("id_main"); if (_elem1) { var _elem2 = document.getElementById("id_horscrollpanel"); var _elem3 = document.getElementById("id_panel_right"); if (bIsFreeze) { _elem1.style.display = "none"; _elem2.style.display = "none"; _elem3.style.display = "none"; } else { _elem1.style.display = "block"; _elem2.style.display = "block"; _elem3.style.display = "block"; } } if (!bIsFreeze) this.WordControl.OnScroll(); }; //---------------------------------------------------------------------------------------------------------------------- // Работаем с формулами //---------------------------------------------------------------------------------------------------------------------- asc_docs_api.prototype.asc_SetMathProps = function(MathProps) { this.WordControl.m_oLogicDocument.Set_MathProps(MathProps); }; asc_docs_api.prototype["asc_SetMathProps"] = asc_docs_api.prototype.asc_SetMathProps; //---------------------------------------------------------------------------------------------------------------------- // Работаем с настройками секции //---------------------------------------------------------------------------------------------------------------------- asc_docs_api.prototype.change_PageOrient = function(isPortrait) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Document_SectPr)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetPageOrientation); if (isPortrait) { this.WordControl.m_oLogicDocument.Set_DocumentOrientation(Asc.c_oAscPageOrientation.PagePortrait); this.DocumentOrientation = isPortrait; } else { this.WordControl.m_oLogicDocument.Set_DocumentOrientation(Asc.c_oAscPageOrientation.PageLandscape); this.DocumentOrientation = isPortrait; } this.sync_PageOrientCallback(editor.get_DocumentOrientation()); } }; asc_docs_api.prototype.get_DocumentOrientation = function() { return this.DocumentOrientation; }; asc_docs_api.prototype.change_DocSize = function(width, height) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Document_SectPr)) { if (this.isMobileVersion && this.WordControl.MobileTouchManager) this.WordControl.MobileTouchManager.BeginZoomCheck(); this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetPageSize); if (this.DocumentOrientation) this.WordControl.m_oLogicDocument.Set_DocumentPageSize(width, height); else this.WordControl.m_oLogicDocument.Set_DocumentPageSize(height, width); if (this.isMobileVersion && this.WordControl.MobileTouchManager) this.WordControl.MobileTouchManager.EndZoomCheck(); } }; asc_docs_api.prototype.get_DocumentWidth = function() { return AscCommon.Page_Width; }; asc_docs_api.prototype.get_DocumentHeight = function() { return AscCommon.Page_Height; }; asc_docs_api.prototype.asc_SetSectionProps = function(Props) { this.WordControl.m_oLogicDocument.Set_SectionProps(Props); }; asc_docs_api.prototype.asc_GetSectionProps = function() { return this.WordControl.m_oLogicDocument.Get_SectionProps(); }; asc_docs_api.prototype.asc_GetCurrentColumnWidth = function() { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return 0; return oLogicDocument.GetCurrentColumnWidth(); }; asc_docs_api.prototype.sync_SectionPropsCallback = function(Props) { this.sendEvent("asc_onSectionProps", Props); }; asc_docs_api.prototype["asc_SetSectionProps"] = asc_docs_api.prototype.asc_SetSectionProps; asc_docs_api.prototype["asc_GetSectionProps"] = asc_docs_api.prototype.asc_GetSectionProps; asc_docs_api.prototype["asc_GetCurrentColumnWidth"] = asc_docs_api.prototype.asc_GetCurrentColumnWidth; asc_docs_api.prototype.asc_SetColumnsProps = function(ColumnsProps) { this.WordControl.m_oLogicDocument.Set_ColumnsProps(ColumnsProps); }; asc_docs_api.prototype.asc_GetColumnsProps = function() { return this.WordControl.m_oLogicDocument.Get_ColumnsProps(); }; asc_docs_api.prototype["asc_SetColumnsProps"] = asc_docs_api.prototype.asc_SetColumnsProps; asc_docs_api.prototype["asc_GetColumnsProps"] = asc_docs_api.prototype.asc_GetColumnsProps; asc_docs_api.prototype.sync_ColumnsPropsCallback = function(ColumnsProps) { this.sendEvent("asc_onColumnsProps", ColumnsProps); }; asc_docs_api.prototype.asc_SetFootnoteProps = function(oFootnotePr, bApplyToAll) { this.WordControl.m_oLogicDocument.SetFootnotePr(oFootnotePr, bApplyToAll); }; asc_docs_api.prototype.asc_GetFootnoteProps = function() { return this.WordControl.m_oLogicDocument.GetFootnotePr(); }; asc_docs_api.prototype.asc_AddFootnote = function(sText) { return this.WordControl.m_oLogicDocument.AddFootnote(sText); }; asc_docs_api.prototype.asc_RemoveAllFootnotes = function() { this.WordControl.m_oLogicDocument.RemoveAllFootnotes(); }; asc_docs_api.prototype.asc_GotoFootnote = function(isNext) { this.WordControl.m_oLogicDocument.GotoFootnote(isNext); }; asc_docs_api.prototype.asc_IsCursorInFootnote = function() { var oLogicDocument = this.WordControl.m_oLogicDocument; if (oLogicDocument && true === oLogicDocument.IsCursorInFootnote()) return true; return false; }; asc_docs_api.prototype["asc_AddFootnote"] = asc_docs_api.prototype.asc_AddFootnote; asc_docs_api.prototype["asc_RemoveAllFootnotes"] = asc_docs_api.prototype.asc_RemoveAllFootnotes; asc_docs_api.prototype["asc_GetFootnoteProps"] = asc_docs_api.prototype.asc_GetFootnoteProps; asc_docs_api.prototype["asc_SetFootnoteProps"] = asc_docs_api.prototype.asc_SetFootnoteProps; asc_docs_api.prototype["asc_GotoFootnote"] = asc_docs_api.prototype.asc_GotoFootnote; asc_docs_api.prototype["asc_IsCursorInFootnote"] = asc_docs_api.prototype.asc_IsCursorInFootnote; asc_docs_api.prototype.put_AddPageBreak = function() { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { var Document = this.WordControl.m_oLogicDocument; if (null === Document.IsCursorInHyperlink(false)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_AddPageBreak); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaNewLine(AscCommonWord.break_Page)); } } }; asc_docs_api.prototype.put_AddColumnBreak = function() { var Document = this.WordControl.m_oLogicDocument; if (false === Document.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { if (null === Document.IsCursorInHyperlink(false)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_AddPageBreak); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaNewLine(AscCommonWord.break_Column)); } } }; asc_docs_api.prototype.Update_ParaInd = function(Ind) { var FirstLine = 0, Left = 0, Right = 0; if ("undefined" != typeof(Ind)) { if ("undefined" != typeof(Ind.FirstLine)) { FirstLine = Ind.FirstLine; } if ("undefined" != typeof(Ind.Left)) { Left = Ind.Left; } if ("undefined" != typeof(Ind.Right)) { Right = Ind.Right; } } var bIsUpdate = false; var _ruler = this.WordControl.m_oHorRuler; if (_ruler.m_dIndentLeft != Left) { _ruler.m_dIndentLeft = Left; bIsUpdate = true; } if (_ruler != (FirstLine + Left)) { _ruler.m_dIndentLeftFirst = (FirstLine + Left); bIsUpdate = true; } if (_ruler.m_dIndentRight != Right) { _ruler.m_dIndentRight = Right; bIsUpdate = true; } if (bIsUpdate) this.WordControl.UpdateHorRuler(); }; asc_docs_api.prototype.Internal_Update_Ind_FirstLine = function(FirstLine, Left) { if (this.WordControl.m_oHorRuler.m_dIndentLeftFirst != (FirstLine + Left)) { this.WordControl.m_oHorRuler.m_dIndentLeftFirst = (FirstLine + Left); this.WordControl.UpdateHorRuler(); } }; asc_docs_api.prototype.Internal_Update_Ind_Left = function(Left) { if (this.WordControl.m_oHorRuler.m_dIndentLeft != Left) { this.WordControl.m_oHorRuler.m_dIndentLeft = Left; this.WordControl.UpdateHorRuler(); } }; asc_docs_api.prototype.Internal_Update_Ind_Right = function(Right) { if (this.WordControl.m_oHorRuler.m_dIndentRight != Right) { this.WordControl.m_oHorRuler.m_dIndentRight = Right; this.WordControl.UpdateHorRuler(); } }; // "where" где нижний или верхний, align выравнивание asc_docs_api.prototype.put_PageNum = function(where, align) { if (where >= 0) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_None, {Type : AscCommon.changestype_2_HdrFtr})) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_AddPageNumToHdrFtr); this.WordControl.m_oLogicDocument.Document_AddPageNum(where, align); } } else { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_AddPageNumToCurrentPos); this.WordControl.m_oLogicDocument.Document_AddPageNum(where, align); } } }; asc_docs_api.prototype.put_HeadersAndFootersDistance = function(value) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_HdrFtr)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetHdrFtrDistance); this.WordControl.m_oLogicDocument.Document_SetHdrFtrDistance(value); } }; asc_docs_api.prototype.HeadersAndFooters_DifferentFirstPage = function(isOn) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_HdrFtr)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetHdrFtrFirstPage); this.WordControl.m_oLogicDocument.Document_SetHdrFtrFirstPage(isOn); } }; asc_docs_api.prototype.HeadersAndFooters_DifferentOddandEvenPage = function(isOn) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_HdrFtr)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetHdrFtrEvenAndOdd); this.WordControl.m_oLogicDocument.Document_SetHdrFtrEvenAndOddHeaders(isOn); } }; asc_docs_api.prototype.HeadersAndFooters_LinkToPrevious = function(isOn) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_HdrFtr)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetHdrFtrLink); this.WordControl.m_oLogicDocument.Document_SetHdrFtrLink(isOn); } }; asc_docs_api.prototype.asc_SetSectionStartPage = function(nStartPage) { if (isNaN(nStartPage)) return; var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; if (false === oLogicDocument.Document_Is_SelectionLocked()) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SectionStartPage); oLogicDocument.SetSectionStartPage(nStartPage); } }; /*структура для передачи настроек колонтитулов { Type : hdrftr_Footer (hdrftr_Header), Position : 12.5, DifferentFirst : true/false, DifferentEvenOdd : true/false, } */ /*callback*/ asc_docs_api.prototype.sync_DocSizeCallback = function(width, height) { this.sendEvent("asc_onDocSize", width, height); }; asc_docs_api.prototype.sync_PageOrientCallback = function(isPortrait) { this.sendEvent("asc_onPageOrient", isPortrait); }; asc_docs_api.prototype.sync_HeadersAndFootersPropCallback = function(hafProp) { if (true === hafProp) hafProp.Locked = true; this.SelectedObjectsStack[this.SelectedObjectsStack.length] = new asc_CSelectedObject(c_oAscTypeSelectElement.Header, new CHeaderProp(hafProp)); }; /*----------------------------------------------------------------*/ /*functions for working with table*/ asc_docs_api.prototype.put_Table = function(col, row) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Document_Content_Add)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_AddTable); this.WordControl.m_oLogicDocument.AddInlineTable(col, row); } }; asc_docs_api.prototype.addRowAbove = function(count) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Table_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_TableAddRowAbove); this.WordControl.m_oLogicDocument.AddTableRow(true); } }; asc_docs_api.prototype.addRowBelow = function(count) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Table_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_TableAddRowBelow); this.WordControl.m_oLogicDocument.AddTableRow(false); } }; asc_docs_api.prototype.addColumnLeft = function(count) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Table_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_TableAddColumnLeft); this.WordControl.m_oLogicDocument.AddTableColumn(true); } }; asc_docs_api.prototype.addColumnRight = function(count) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Table_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_TableAddColumnRight); this.WordControl.m_oLogicDocument.AddTableColumn(false); } }; asc_docs_api.prototype.remRow = function() { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Table_RemoveCells)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_TableRemoveRow); this.WordControl.m_oLogicDocument.RemoveTableRow(); } }; asc_docs_api.prototype.remColumn = function() { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Table_RemoveCells)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_TableRemoveColumn); this.WordControl.m_oLogicDocument.RemoveTableColumn(); } }; asc_docs_api.prototype.remTable = function() { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Table_RemoveCells)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_RemoveTable); this.WordControl.m_oLogicDocument.RemoveTable(); } }; asc_docs_api.prototype.selectRow = function() { this.WordControl.m_oLogicDocument.SelectTable(c_oAscTableSelectionType.Row); }; asc_docs_api.prototype.selectColumn = function() { this.WordControl.m_oLogicDocument.SelectTable(c_oAscTableSelectionType.Column); }; asc_docs_api.prototype.selectCell = function() { this.WordControl.m_oLogicDocument.SelectTable(c_oAscTableSelectionType.Cell); }; asc_docs_api.prototype.selectTable = function() { this.WordControl.m_oLogicDocument.SelectTable(c_oAscTableSelectionType.Table); }; asc_docs_api.prototype.setColumnWidth = function(width) { }; asc_docs_api.prototype.setRowHeight = function(height) { }; asc_docs_api.prototype.set_TblDistanceFromText = function(left, top, right, bottom) { }; asc_docs_api.prototype.CheckBeforeMergeCells = function() { return this.WordControl.m_oLogicDocument.CanMergeTableCells(); }; asc_docs_api.prototype.CheckBeforeSplitCells = function() { return this.WordControl.m_oLogicDocument.CanSplitTableCells(); }; asc_docs_api.prototype.MergeCells = function() { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Table_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_MergeTableCells); this.WordControl.m_oLogicDocument.MergeTableCells(); } }; asc_docs_api.prototype.SplitCell = function(Cols, Rows) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Table_Properties)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SplitTableCells); this.WordControl.m_oLogicDocument.SplitTableCells(Cols, Rows); } }; asc_docs_api.prototype.asc_DistributeTableCells = function(isHorizontally) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; if (false === oLogicDocument.Document_Is_SelectionLocked(changestype_Table_Properties)) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_DistributeTableCells); if (!oLogicDocument.DistributeTableCells(isHorizontally)) { oLogicDocument.GetHistory().RemoveLastPoint(); return false; } } return true; }; asc_docs_api.prototype.widthTable = function(width) { }; asc_docs_api.prototype.put_CellsMargin = function(left, top, right, bottom) { }; asc_docs_api.prototype.set_TblWrap = function(type) { }; asc_docs_api.prototype.set_TblIndentLeft = function(spacing) { }; asc_docs_api.prototype.set_Borders = function(typeBorders, size, Color) {//если size == 0 то границы нет. }; asc_docs_api.prototype.set_TableBackground = function(Color) { }; asc_docs_api.prototype.set_AlignCell = function(align) {// c_oAscAlignType.RIGHT, c_oAscAlignType.LEFT, c_oAscAlignType.CENTER switch (align) { case c_oAscAlignType.LEFT : break; case c_oAscAlignType.CENTER : break; case c_oAscAlignType.RIGHT : break; } }; asc_docs_api.prototype.set_TblAlign = function(align) {// c_oAscAlignType.RIGHT, c_oAscAlignType.LEFT, c_oAscAlignType.CENTER switch (align) { case c_oAscAlignType.LEFT : break; case c_oAscAlignType.CENTER : break; case c_oAscAlignType.RIGHT : break; } }; asc_docs_api.prototype.set_SpacingBetweenCells = function(isOn, spacing) {// c_oAscAlignType.RIGHT, c_oAscAlignType.LEFT, c_oAscAlignType.CENTER if (isOn) { } }; asc_docs_api.prototype.tblApply = function(obj) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Table_Properties)) { if (obj.CellBorders) { if (obj.CellBorders.Left && obj.CellBorders.Left.Color) { obj.CellBorders.Left.Unifill = AscFormat.CreateUnifillFromAscColor(obj.CellBorders.Left.Color, 1); } if (obj.CellBorders.Top && obj.CellBorders.Top.Color) { obj.CellBorders.Top.Unifill = AscFormat.CreateUnifillFromAscColor(obj.CellBorders.Top.Color, 1); } if (obj.CellBorders.Right && obj.CellBorders.Right.Color) { obj.CellBorders.Right.Unifill = AscFormat.CreateUnifillFromAscColor(obj.CellBorders.Right.Color, 1); } if (obj.CellBorders.Bottom && obj.CellBorders.Bottom.Color) { obj.CellBorders.Bottom.Unifill = AscFormat.CreateUnifillFromAscColor(obj.CellBorders.Bottom.Color, 1); } if (obj.CellBorders.InsideH && obj.CellBorders.InsideH.Color) { obj.CellBorders.InsideH.Unifill = AscFormat.CreateUnifillFromAscColor(obj.CellBorders.InsideH.Color, 1); } if (obj.CellBorders.InsideV && obj.CellBorders.InsideV.Color) { obj.CellBorders.InsideV.Unifill = AscFormat.CreateUnifillFromAscColor(obj.CellBorders.InsideV.Color, 1); } } if (obj.CellsBackground && obj.CellsBackground.Color) { obj.CellsBackground.Unifill = AscFormat.CreateUnifillFromAscColor(obj.CellsBackground.Color, 1); } this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_ApplyTablePr); this.WordControl.m_oLogicDocument.SetTableProps(obj); } }; /*callbacks*/ asc_docs_api.prototype.sync_AddTableCallback = function() { this.sendEvent("asc_onAddTable"); }; asc_docs_api.prototype.sync_AlignCellCallback = function(align) { this.sendEvent("asc_onAlignCell", align); }; asc_docs_api.prototype.sync_TblPropCallback = function(tblProp) { //if ( true === CollaborativeEditing.Get_GlobalLock() ) // tblProp.Locked = true; // TODO: вызвать функцию asc_onInitTableTemplatesв зависимости от TableLook if (tblProp.CellsBackground && tblProp.CellsBackground.Unifill) { var LogicDocument = this.WordControl.m_oLogicDocument; tblProp.CellsBackground.Unifill.check(LogicDocument.Get_Theme(), LogicDocument.Get_ColorMap()); var RGBA = tblProp.CellsBackground.Unifill.getRGBAColor(); tblProp.CellsBackground.Color = new AscCommonWord.CDocumentColor(RGBA.R, RGBA.G, RGBA.B, false); } this.SelectedObjectsStack[this.SelectedObjectsStack.length] = new asc_CSelectedObject(c_oAscTypeSelectElement.Table, new Asc.CTableProp(tblProp)); }; asc_docs_api.prototype.sync_TblWrapStyleChangedCallback = function(style) { this.sendEvent("asc_onTblWrapStyleChanged", style); }; asc_docs_api.prototype.sync_TblAlignChangedCallback = function(style) { this.sendEvent("asc_onTblAlignChanged", style); }; /*----------------------------------------------------------------*/ /*functions for working with images*/ asc_docs_api.prototype.ChangeImageFromFile = function() { this.isImageChangeUrl = true; this.asc_addImage(); }; asc_docs_api.prototype.ChangeShapeImageFromFile = function(type) { this.isShapeImageChangeUrl = true; this.textureType = type; this.asc_addImage(); }; asc_docs_api.prototype.AddImage = function() { this.asc_addImage(); }; asc_docs_api.prototype.AddImageUrl2 = function(url) { this.AddImageUrl(AscCommon.getFullImageSrc2(url)); }; // CRYPTPAD // This method is necessary to add the loaded images to the list of loaded images asc_docs_api.prototype.asc_addImageCallback = function(res) { g_oDocumentUrls.addImageUrl(res.name, res.url) } asc_docs_api.prototype.asyncImageEndLoadedBackground = function(_image) { }; asc_docs_api.prototype._addImageUrl = function(urls) { if(this.isImageChangeUrl || this.isShapeImageChangeUrl){ this.AddImageUrl(urls[0]); } else{ if(this.ImageLoader){ var oApi = this; this.ImageLoader.LoadImagesWithCallback(urls, function(){ if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)){ var aImages = []; for(var i = 0; i < urls.length; ++i){ var _image = oApi.ImageLoader.LoadImage(urls[i], 1); if(_image){ aImages.push(_image); } } if(aImages.length){ History.Create_NewPoint(); oApi.WordControl.m_oLogicDocument.TurnOff_InterfaceEvents(); oApi.WordControl.m_oLogicDocument.AddImages(aImages); oApi.WordControl.m_oLogicDocument.TurnOn_InterfaceEvents(true); } } }, []); } } }; asc_docs_api.prototype.AddImageUrl = function(url, imgProp) { if (g_oDocumentUrls.getLocal(url)) { this.AddImageUrlAction(url, imgProp); } else { var t = this; AscCommon.sendImgUrls(this, [url], function(data) { if (data && data[0]) t.AddImageUrlAction(data[0].url, imgProp); }, false); } }; asc_docs_api.prototype.AddImageUrlAction = function(url, imgProp) { var _image = this.ImageLoader.LoadImage(url, 1); if (null != _image) { var ColumnSize = this.WordControl.m_oLogicDocument.GetColumnSize(); var _w = Math.max(1, ColumnSize.W); var _h = Math.max(1, ColumnSize.H); if (_image.Image != null) { var __w = Math.max((_image.Image.width * AscCommon.g_dKoef_pix_to_mm), 1); var __h = Math.max((_image.Image.height * AscCommon.g_dKoef_pix_to_mm), 1); _w = Math.max(5, Math.min(_w, __w)); _h = Math.max(5, Math.min((_w * __h / __w))); } var src = _image.src; if (this.isShapeImageChangeUrl) { var AscShapeProp = new Asc.asc_CShapeProperty(); AscShapeProp.fill = new asc_CShapeFill(); AscShapeProp.fill.type = c_oAscFill.FILL_TYPE_BLIP; AscShapeProp.fill.fill = new asc_CFillBlip(); AscShapeProp.fill.fill.asc_putUrl(src); if(this.textureType !== null && this.textureType !== undefined){ AscShapeProp.fill.fill.asc_putType(this.textureType); } this.ImgApply(new asc_CImgProperty({ShapeProperties : AscShapeProp})); this.isShapeImageChangeUrl = false; this.textureType = null; } else if (this.isImageChangeUrl) { var AscImageProp = new asc_CImgProperty(); AscImageProp.ImageUrl = src; this.ImgApply(AscImageProp); this.isImageChangeUrl = false; } else { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { var imageLocal = g_oDocumentUrls.getImageLocal(src); if (imageLocal) { src = imageLocal; } this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_AddImageUrl); if (undefined === imgProp || undefined === imgProp.WrappingStyle || 0 == imgProp.WrappingStyle) this.WordControl.m_oLogicDocument.AddInlineImage(_w, _h, src); else this.WordControl.m_oLogicDocument.AddInlineImage(_w, _h, src, null, true); } } } else { this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage); this.asyncImageEndLoaded2 = function(_image) { var ColumnSize = this.WordControl.m_oLogicDocument.GetColumnSize(); var _w = Math.max(1, ColumnSize.W); var _h = Math.max(1, ColumnSize.H); if (_image.Image != null) { var __w = Math.max((_image.Image.width * AscCommon.g_dKoef_pix_to_mm), 1); var __h = Math.max((_image.Image.height * AscCommon.g_dKoef_pix_to_mm), 1); _w = Math.max(5, Math.min(_w, __w)); _h = Math.max(5, Math.min((_w * __h / __w))); } var src = _image.src; if (this.isShapeImageChangeUrl) { var AscShapeProp = new Asc.asc_CShapeProperty(); AscShapeProp.fill = new asc_CShapeFill(); AscShapeProp.fill.type = c_oAscFill.FILL_TYPE_BLIP; AscShapeProp.fill.fill = new asc_CFillBlip(); AscShapeProp.fill.fill.asc_putUrl(src); if(this.textureType !== null && this.textureType !== undefined){ AscShapeProp.fill.fill.asc_putType(this.textureType); } this.textureType = null; this.ImgApply(new asc_CImgProperty({ShapeProperties : AscShapeProp})); this.isShapeImageChangeUrl = false; } else if (this.isImageChangeUrl) { var AscImageProp = new asc_CImgProperty(); AscImageProp.ImageUrl = src; this.ImgApply(AscImageProp); this.isImageChangeUrl = false; } else { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { var imageLocal = g_oDocumentUrls.getImageLocal(src); if (imageLocal) { src = imageLocal; } this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_AddImageUrlLong); if (undefined === imgProp || undefined === imgProp.WrappingStyle || 0 == imgProp.WrappingStyle) this.WordControl.m_oLogicDocument.AddInlineImage(_w, _h, src); else this.WordControl.m_oLogicDocument.AddInlineImage(_w, _h, src, null, true); } } this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage); this.asyncImageEndLoaded2 = null; } } }; /* Добавляем картинку на заданную страницу. Преполагаем, что картинка уже доступна по ссылке. */ asc_docs_api.prototype.AddImageToPage = function(sUrl, nPageIndex, dX, dY, dW, dH) { var LogicDocument = this.WordControl.m_oLogicDocument; var oldClickCount = global_mouseEvent.ClickCount; global_mouseEvent.Button = 0; global_mouseEvent.ClickCount = 1; LogicDocument.OnMouseDown(global_mouseEvent, dX, dY, nPageIndex); LogicDocument.OnMouseUp(global_mouseEvent, dX, dY, nPageIndex); LogicDocument.OnMouseMove(global_mouseEvent, dX, dY, nPageIndex); global_mouseEvent.ClickCount = oldClickCount; if (false === LogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { var oPosH = new Asc.CImagePositionH(); oPosH.put_RelativeFrom(Asc.c_oAscRelativeFromH.Page); oPosH.put_Align(false); oPosH.put_Value(dX); var oPosV = new Asc.CImagePositionV(); oPosV.put_RelativeFrom(Asc.c_oAscRelativeFromV.Page); oPosV.put_Align(false); oPosV.put_Value(dY); var oImageProps = new asc_CImgProperty(); oImageProps.asc_putWrappingStyle(c_oAscWrapStyle2.Square); oImageProps.asc_putPositionH(oPosH); oImageProps.asc_putPositionV(oPosV); LogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_AddImageToPage); LogicDocument.Start_SilentMode(); LogicDocument.AddInlineImage(dW, dH, sUrl); LogicDocument.SetImageProps(oImageProps); LogicDocument.End_SilentMode(true); } }; /* В качестве параметра передается объект класса Asc.asc_CImgProperty, он же приходит на OnImgProp Asc.asc_CImgProperty заменяет пережнюю структуру: если параметр не имеет значения то передвать следует null, напримере inline-картинок: в качестве left,top,bottom,right,X,Y,ImageUrl необходимо передавать null. { Width: 0, Height: 0, WrappingStyle: 0, Paddings: { Left : 0, Top : 0, Bottom: 0, Right: 0 }, Position : {X : 0, Y : 0}, ImageUrl : "" } */ asc_docs_api.prototype.ImgApply = function(obj) { if (!AscCommon.isRealObject(obj)) return; var ImagePr = obj, AdditionalData, LogicDocument = this.WordControl.m_oLogicDocument; /*проверка корректности данных для биржевой диаграммы*/ if (obj.ChartProperties && obj.ChartProperties.type === Asc.c_oAscChartTypeSettings.stock) { if (!AscFormat.CheckStockChart(this.WordControl.m_oLogicDocument.DrawingObjects, this)) { return; } } /*изменение z-индекса*/ if (AscFormat.isRealNumber(ImagePr.ChangeLevel)) { switch (ImagePr.ChangeLevel) { case 0: { this.WordControl.m_oLogicDocument.DrawingObjects.bringToFront(); break; } case 1: { this.WordControl.m_oLogicDocument.DrawingObjects.bringForward(); break; } case 2: { this.WordControl.m_oLogicDocument.DrawingObjects.sendToBack(); break; } case 3: { this.WordControl.m_oLogicDocument.DrawingObjects.bringBackward(); } } return; } /*параграфы в которых лежат выделенные ParaDrawing*/ var aParagraphs = [], aSelectedObjects = this.WordControl.m_oLogicDocument.DrawingObjects.selectedObjects, i, j, oParentParagraph; for (i = 0; i < aSelectedObjects.length; ++i) { oParentParagraph = aSelectedObjects[i].parent.Get_ParentParagraph(); AscFormat.checkObjectInArray(aParagraphs, oParentParagraph); } AdditionalData = { Type : AscCommon.changestype_2_ElementsArray_and_Type, Elements : aParagraphs, CheckType : changestype_Paragraph_Content }; /*группировка и разгруппировка*/ if (ImagePr.Group === 1 || ImagePr.Group === -1) { if (false == this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Drawing_Props, AdditionalData)) { History.Create_NewPoint(AscDFH.historydescription_Document_GroupUnGroup); if (ImagePr.Group === 1) { this.WordControl.m_oLogicDocument.DrawingObjects.groupSelectedObjects(); } else { this.WordControl.m_oLogicDocument.DrawingObjects.unGroupSelectedObjects(); } } return; } if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Image_Properties)) { if (ImagePr.ShapeProperties) ImagePr.ImageUrl = ""; var sImageUrl = null, fReplaceCallback = null, bImageUrl = false, sImageToDownLoad = ""; if (!AscCommon.isNullOrEmptyString(ImagePr.ImageUrl)) { if (!g_oDocumentUrls.getImageLocal(ImagePr.ImageUrl)) { sImageUrl = ImagePr.ImageUrl; fReplaceCallback = function(sUrl) { ImagePr.ImageUrl = sUrl; sImageToDownLoad = sUrl; } } sImageToDownLoad = ImagePr.ImageUrl; } else if (ImagePr.ShapeProperties && ImagePr.ShapeProperties.fill && ImagePr.ShapeProperties.fill.fill && !AscCommon.isNullOrEmptyString(ImagePr.ShapeProperties.fill.fill.url)) { if (!g_oDocumentUrls.getImageLocal(ImagePr.ShapeProperties.fill.fill.url)) { sImageUrl = ImagePr.ShapeProperties.fill.fill.url; fReplaceCallback = function(sUrl) { ImagePr.ShapeProperties.fill.fill.url = sUrl; sImageToDownLoad = sUrl; } } sImageToDownLoad = ImagePr.ShapeProperties.fill.fill.url; } var oApi = this; if (!AscCommon.isNullOrEmptyString(sImageToDownLoad)) { var fApplyCallback = function() { var _img = oApi.ImageLoader.LoadImage(sImageToDownLoad, 1); if (null != _img) { oApi.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_ApplyImagePrWithUrl); oApi.WordControl.m_oLogicDocument.SetImageProps(ImagePr); } else { oApi.asyncImageEndLoaded2 = function(_image) { oApi.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_ApplyImagePrWithUrlLong); oApi.WordControl.m_oLogicDocument.SetImageProps(ImagePr); } } }; if (sImageUrl) { if (window["AscDesktopEditor"]) { var _url = window["AscDesktopEditor"]["LocalFileGetImageUrl"](sImageToDownLoad); _url = g_oDocumentUrls.getImageUrl(_url); fReplaceCallback(_url); fApplyCallback(); return; } AscCommon.sendImgUrls(this, [sImageToDownLoad], function(data) { if (data && data[0]) { fReplaceCallback(data[0].url); fApplyCallback(); } }, false); } else { fApplyCallback(); } } else { ImagePr.ImageUrl = null; if (!this.noCreatePoint || this.exucuteHistory) { if (!this.noCreatePoint && !this.exucuteHistory && this.exucuteHistoryEnd) { if (-1 !== this.nCurPointItemsLength) { History.UndoLastPoint(); } else { History.Create_NewPoint(AscDFH.historydescription_Document_ApplyImagePr); } this.WordControl.m_oLogicDocument.SetImageProps(ImagePr); this.exucuteHistoryEnd = false; this.nCurPointItemsLength = -1; } else { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_ApplyImagePr); this.WordControl.m_oLogicDocument.SetImageProps(ImagePr); } if (this.exucuteHistory) { this.exucuteHistory = false; var oPoint = History.Points[History.Index]; if (oPoint) { this.nCurPointItemsLength = oPoint.Items.length; } } } else { var bNeedCheckChangesCount = false; if (-1 !== this.nCurPointItemsLength) { History.UndoLastPoint(); } else { bNeedCheckChangesCount = true; History.Create_NewPoint(AscDFH.historydescription_Document_ApplyImagePr); } this.WordControl.m_oLogicDocument.SetImageProps(ImagePr); if (bNeedCheckChangesCount) { var oPoint = History.Points[History.Index]; if (oPoint) { this.nCurPointItemsLength = oPoint.Items.length; } } } this.exucuteHistoryEnd = false; } } }; asc_docs_api.prototype.set_Size = function(width, height) { }; asc_docs_api.prototype.set_ConstProportions = function(isOn) { if (isOn) { } else { } }; asc_docs_api.prototype.set_WrapStyle = function(type) { }; asc_docs_api.prototype.deleteImage = function() { }; asc_docs_api.prototype.set_ImgDistanceFromText = function(left, top, right, bottom) { }; asc_docs_api.prototype.set_PositionOnPage = function(X, Y) {//расположение от начала страницы }; asc_docs_api.prototype.get_OriginalSizeImage = function() { for(var i = 0; i < this.SelectedObjectsStack.length; ++i){ if(this.SelectedObjectsStack[i].Type == c_oAscTypeSelectElement.Image && this.SelectedObjectsStack[i].Value && this.SelectedObjectsStack[i].Value.ImageUrl){ return this.SelectedObjectsStack[i].Value.asc_getOriginSize(this); } } return null; }; asc_docs_api.prototype.ShapeApply = function(shapeProps) { // нужно определить, картинка это или нет var image_url = ""; if (shapeProps.fill != null) { if (shapeProps.fill.fill != null && shapeProps.fill.type == c_oAscFill.FILL_TYPE_BLIP) { image_url = shapeProps.fill.fill.asc_getUrl(); var _tx_id = shapeProps.fill.fill.asc_getTextureId(); if (null != _tx_id && 0 <= _tx_id && _tx_id < AscCommon.g_oUserTexturePresets.length) { image_url = AscCommon.g_oUserTexturePresets[_tx_id]; } } } if (image_url != "") { var _image = this.ImageLoader.LoadImage(image_url, 1); var imageLocal = g_oDocumentUrls.getImageLocal(image_url); if (imageLocal) { shapeProps.fill.fill.asc_putUrl(imageLocal); // erase documentUrl } if (null != _image) { this.WordControl.m_oLogicDocument.ShapeApply(shapeProps); this.WordControl.m_oDrawingDocument.DrawImageTextureFillShape(image_url); } else { this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage); var oProp = shapeProps; this.asyncImageEndLoaded2 = function(_image) { this.WordControl.m_oLogicDocument.ShapeApply(oProp); this.WordControl.m_oDrawingDocument.DrawImageTextureFillShape(image_url); this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage); this.asyncImageEndLoaded2 = null; } } } else { this.WordControl.m_oLogicDocument.ShapeApply(shapeProps); } }; /*callbacks*/ asc_docs_api.prototype.sync_AddImageCallback = function() { this.sendEvent("asc_onAddImage"); }; asc_docs_api.prototype.sync_ImgPropCallback = function(imgProp) { //if ( true === CollaborativeEditing.Get_GlobalLock() ) // imgProp.Locked = true; this.SelectedObjectsStack[this.SelectedObjectsStack.length] = new asc_CSelectedObject(c_oAscTypeSelectElement.Image, new asc_CImgProperty(imgProp)); }; asc_docs_api.prototype.sync_ImgWrapStyleChangedCallback = function(style) { this.sendEvent("asc_onImgWrapStyleChanged", style); }; asc_docs_api.prototype.asc_addOleObjectAction = function(sLocalUrl, sData, sApplicationId, fWidth, fHeight, nWidthPix, nHeightPix) { var _image = this.ImageLoader.LoadImage(AscCommon.getFullImageSrc2(sLocalUrl), 1); if (null != _image)//картинка уже должна быть загружена { this.WordControl.m_oLogicDocument.AddOleObject(fWidth, fHeight, nWidthPix, nHeightPix, sLocalUrl, sData, sApplicationId); } }; asc_docs_api.prototype.asc_editOleObjectAction = function(bResize, oOleObject, sImageUrl, sData, nPixWidth, nPixHeight) { if (oOleObject) { this.WordControl.m_oLogicDocument.EditOleObject(oOleObject, sData, sImageUrl, nPixWidth, nPixHeight); this.WordControl.m_oLogicDocument.Recalculate(); this.WordControl.m_oLogicDocument.Document_UpdateInterfaceState(); } }; asc_docs_api.prototype.asc_startEditCurrentOleObject = function(){ this.WordControl.m_oLogicDocument.DrawingObjects.startEditCurrentOleObject(); }; //----------------------------------------------------------------- // События контекстного меню //----------------------------------------------------------------- function CContextMenuData(obj) { if (obj) { this.Type = ( undefined != obj.Type ) ? obj.Type : Asc.c_oAscContextMenuTypes.Common; this.X_abs = ( undefined != obj.X_abs ) ? obj.X_abs : 0; this.Y_abs = ( undefined != obj.Y_abs ) ? obj.Y_abs : 0; switch (this.Type) { case Asc.c_oAscContextMenuTypes.ChangeHdrFtr : { this.PageNum = ( undefined != obj.PageNum ) ? obj.PageNum : 0; this.Header = ( undefined != obj.Header ) ? obj.Header : true; break; } } } else { this.Type = Asc.c_oAscContextMenuTypes.Common; this.X_abs = 0; this.Y_abs = 0; } } CContextMenuData.prototype.get_Type = function() { return this.Type; }; CContextMenuData.prototype.get_X = function() { return this.X_abs; }; CContextMenuData.prototype.get_Y = function() { return this.Y_abs; }; CContextMenuData.prototype.get_PageNum = function() { return this.PageNum; }; CContextMenuData.prototype.is_Header = function() { return this.Header; }; asc_docs_api.prototype.sync_ContextMenuCallback = function(Data) { this.sendEvent("asc_onContextMenu", new CContextMenuData(Data)); }; asc_docs_api.prototype.sync_MouseMoveStartCallback = function() { this.sendEvent("asc_onMouseMoveStart"); }; asc_docs_api.prototype.sync_MouseMoveEndCallback = function() { this.sendEvent("asc_onMouseMoveEnd"); }; asc_docs_api.prototype.sync_MouseMoveCallback = function(Data) { this.sendEvent("asc_onMouseMove", Data); }; asc_docs_api.prototype.sync_ShowForeignCursorLabel = function(UserId, X, Y, Color) { this.sendEvent("asc_onShowForeignCursorLabel", UserId, X, Y, new AscCommon.CColor(Color.r, Color.g, Color.b, 255)); }; asc_docs_api.prototype.sync_HideForeignCursorLabel = function(UserId) { this.sendEvent("asc_onHideForeignCursorLabel", UserId); }; //----------------------------------------------------------------- // Функции для работы с гиперссылками //----------------------------------------------------------------- asc_docs_api.prototype.can_AddHyperlink = function() { //if ( true === CollaborativeEditing.Get_GlobalLock() ) // return false; var bCanAdd = this.WordControl.m_oLogicDocument.CanAddHyperlink(true); if (true === bCanAdd) return this.WordControl.m_oLogicDocument.GetSelectedText(true); return false; }; /** * Добавляем гиперссылку * @param {CHyperlinkProperty} oHyperProps */ asc_docs_api.prototype.add_Hyperlink = function(oHyperProps) { var sBookmarkName = this.private_CheckHeadingHyperlinkProps(oHyperProps); if (null !== oHyperProps.Text && undefined !== oHyperProps.Text) { AscFonts.FontPickerByCharacter.checkText(oHyperProps.Text, this, function() { this.private_AddHyperlink(oHyperProps, sBookmarkName); }); } else { this.private_AddHyperlink(oHyperProps, sBookmarkName); } }; asc_docs_api.prototype.private_CheckHeadingHyperlinkProps = function(oHyperProps) { var oHeading = oHyperProps.get_Heading(); var sBookmarkName = null; if (oHeading) { var oBookmarksManager = this.WordControl.m_oLogicDocument.GetBookmarksManager(); sBookmarkName = oBookmarksManager.GetNameForHeadingBookmark(oHeading); var oBookmark = oBookmarksManager.GetBookmarkByName(sBookmarkName); if (oBookmark && oBookmark[0].GetParagraph() === oHeading) { oHyperProps.put_Heading(null); oHyperProps.put_Bookmark(sBookmarkName); sBookmarkName = null; } else { if (oBookmark) { var nCounter = 1; while (oBookmarksManager.GetBookmarkByName(sBookmarkName + "_" + nCounter)) { nCounter++; } sBookmarkName += "_" + nCounter; } oHyperProps.put_Bookmark(sBookmarkName); } } return sBookmarkName; }; asc_docs_api.prototype.private_AddHyperlink = function(oHyperProps, sBookmarkName, oParagraph) { var isLocked = false; if (sBookmarkName) { isLocked = this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content, { Type : AscCommon.changestype_2_Element_and_Type, Element : oHyperProps.get_Heading(), CheckType : changestype_Paragraph_Content }); } else { isLocked = this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content); } if (!isLocked) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_AddHyperlink); if (sBookmarkName && oHyperProps.get_Heading()) oHyperProps.get_Heading().AddBookmarkAtBegin(sBookmarkName); this.WordControl.m_oLogicDocument.AddHyperlink(oHyperProps); } }; /** * Изменяем гиперссылку * @param {CHyperlinkProperty} oHyperProps */ asc_docs_api.prototype.change_Hyperlink = function(oHyperProps) { if (!oHyperProps || !oHyperProps.get_InternalHyperlink()) return; var sBookmarkName = this.private_CheckHeadingHyperlinkProps(oHyperProps); if (null !== oHyperProps.Text && undefined !== oHyperProps.Text) { AscFonts.FontPickerByCharacter.checkText(oHyperProps.Text, this, function() { this.private_ChangeHyperlink(oHyperProps, sBookmarkName); }); } else { this.private_ChangeHyperlink(oHyperProps, sBookmarkName); } }; asc_docs_api.prototype.private_ChangeHyperlink = function(oHyperProps, sBookmarkName) { var isLocked = false; if (sBookmarkName) { isLocked = this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content, { Type : AscCommon.changestype_2_Element_and_Type, Element : oHyperProps.get_Heading(), CheckType : changestype_Paragraph_Content }); } else { isLocked = this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content); } if (!isLocked) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_ChangeHyperlink); if (sBookmarkName && oHyperProps.get_Heading()) oHyperProps.get_Heading().AddBookmarkAtBegin(sBookmarkName); this.WordControl.m_oLogicDocument.ModifyHyperlink(oHyperProps); } }; /** * Удаляем гиперссылку * @param {CHyperlinkProperty} oHyperProps */ asc_docs_api.prototype.remove_Hyperlink = function(oHyperProps) { if (!oHyperProps || !oHyperProps.get_InternalHyperlink()) return; if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_RemoveHyperlink); this.WordControl.m_oLogicDocument.RemoveHyperlink(oHyperProps); } }; asc_docs_api.prototype.asc_GetHyperlinkAnchors = function() { if (!this.WordControl || !this.WordControl.m_oLogicDocument) return []; return this.WordControl.m_oLogicDocument.GetHyperlinkAnchors(); }; asc_docs_api.prototype.sync_HyperlinkPropCallback = function(hyperProp) { this.SelectedObjectsStack[this.SelectedObjectsStack.length] = new asc_CSelectedObject(c_oAscTypeSelectElement.Hyperlink, new Asc.CHyperlinkProperty(hyperProp)); }; asc_docs_api.prototype.sync_HyperlinkClickCallback = function(Url) { this.sendEvent("asc_onHyperlinkClick", Url); }; asc_docs_api.prototype.sync_CanAddHyperlinkCallback = function(bCanAdd) { //if ( true === CollaborativeEditing.Get_GlobalLock() ) // this.sendEvent("asc_onCanAddHyperlink", false); //else this.sendEvent("asc_onCanAddHyperlink", bCanAdd); }; asc_docs_api.prototype.sync_DialogAddHyperlink = function() { this.sendEvent("asc_onDialogAddHyperlink"); }; asc_docs_api.prototype.sync_DialogAddHyperlink = function() { this.sendEvent("asc_onDialogAddHyperlink"); }; //----------------------------------------------------------------- // Функции для работы с орфографией //----------------------------------------------------------------- asc_docs_api.prototype.sync_SpellCheckCallback = function(Word, Checked, Variants, ParaId, Element) { this.SelectedObjectsStack[this.SelectedObjectsStack.length] = new asc_CSelectedObject(c_oAscTypeSelectElement.SpellCheck, new AscCommon.asc_CSpellCheckProperty(Word, Checked, Variants, ParaId, Element)); }; asc_docs_api.prototype.sync_SpellCheckVariantsFound = function() { this.sendEvent("asc_onSpellCheckVariantsFound"); }; asc_docs_api.prototype.asc_replaceMisspelledWord = function(Word, SpellCheckProperty) { var ParaId = SpellCheckProperty.ParaId; var Paragraph = g_oTableId.Get_ById(ParaId); if (null != Paragraph && false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_None, { Type : AscCommon.changestype_2_Element_and_Type, Element : Paragraph, CheckType : changestype_Paragraph_Content })) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_ReplaceMisspelledWord); Paragraph.ReplaceMisspelledWord(Word, SpellCheckProperty.Element); this.WordControl.m_oLogicDocument.Recalculate(); Paragraph.Document_SetThisElementCurrent(true); } }; asc_docs_api.prototype.asc_ignoreMisspelledWord = function(SpellCheckProperty, bAll) { if (false === bAll) { var ParaId = SpellCheckProperty.ParaId; var Paragraph = g_oTableId.Get_ById(ParaId); if (null != Paragraph) { Paragraph.IgnoreMisspelledWord(SpellCheckProperty.Element); } } else { var LogicDocument = editor.WordControl.m_oLogicDocument; LogicDocument.Spelling.Add_Word(SpellCheckProperty.Word); LogicDocument.DrawingDocument.ClearCachePages(); LogicDocument.DrawingDocument.FirePaint(); } }; asc_docs_api.prototype.asc_setDefaultLanguage = function(Lang) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Document_SectPr)) { History.Create_NewPoint(AscDFH.historydescription_Document_SetDefaultLanguage); editor.WordControl.m_oLogicDocument.Set_DefaultLanguage(Lang); } }; asc_docs_api.prototype.asc_getDefaultLanguage = function() { return editor.WordControl.m_oLogicDocument.Get_DefaultLanguage(); }; asc_docs_api.prototype.asc_getKeyboardLanguage = function() { if (undefined !== window["asc_current_keyboard_layout"]) return window["asc_current_keyboard_layout"]; return -1; }; asc_docs_api.prototype.asc_setSpellCheck = function(isOn) { if (editor.WordControl.m_oLogicDocument) { editor.WordControl.m_oLogicDocument.Spelling.Use = isOn; editor.WordControl.m_oDrawingDocument.ClearCachePages(); editor.WordControl.m_oDrawingDocument.FirePaint(); } }; //----------------------------------------------------------------- // Функции для работы с комментариями //----------------------------------------------------------------- function asc_CCommentDataWord(obj) { if (obj) { this.m_bGlobal = (undefined != obj.m_bGlobal ) ? obj.m_bGlobal : false; this.m_sText = (undefined != obj.m_sText ) ? obj.m_sText : ""; this.m_sTime = (undefined != obj.m_sTime ) ? obj.m_sTime : ""; this.m_sOOTime = (undefined != obj.m_sOOTime ) ? obj.m_sOOTime : ""; this.m_sUserId = (undefined != obj.m_sUserId ) ? obj.m_sUserId : ""; this.m_sQuoteText = (undefined != obj.m_sQuoteText) ? obj.m_sQuoteText : null; this.m_bSolved = (undefined != obj.m_bSolved ) ? obj.m_bSolved : false; this.m_sUserName = (undefined != obj.m_sUserName ) ? obj.m_sUserName : ""; this.m_aReplies = []; if (undefined != obj.m_aReplies) { var Count = obj.m_aReplies.length; for (var Index = 0; Index < Count; Index++) { var Reply = new asc_CCommentDataWord(obj.m_aReplies[Index]); this.m_aReplies.push(Reply); } } } else { this.m_bGlobal = false; this.m_sText = ""; this.m_sTime = ""; this.m_sOOTime = ""; this.m_sUserId = ""; this.m_sQuoteText = null; this.m_bSolved = false; this.m_sUserName = ""; this.m_aReplies = []; } } asc_CCommentDataWord.prototype.asc_getText = function() { return this.m_sText; }; asc_CCommentDataWord.prototype.asc_putText = function(v) { this.m_sText = v ? v.slice(0, Asc.c_oAscMaxCellOrCommentLength) : v; }; asc_CCommentDataWord.prototype.asc_getTime = function() { return this.m_sTime; }; asc_CCommentDataWord.prototype.asc_putTime = function(v) { this.m_sTime = v; }; asc_CCommentDataWord.prototype.asc_getOnlyOfficeTime = function() { return this.m_sOOTime; }; asc_CCommentDataWord.prototype.asc_putOnlyOfficeTime = function(v) { this.m_sOOTime = v; }; asc_CCommentDataWord.prototype.asc_getUserId = function() { return this.m_sUserId; }; asc_CCommentDataWord.prototype.asc_putUserId = function(v) { this.m_sUserId = v; }; asc_CCommentDataWord.prototype.asc_getUserName = function() { return this.m_sUserName; }; asc_CCommentDataWord.prototype.asc_putUserName = function(v) { this.m_sUserName = v; }; asc_CCommentDataWord.prototype.asc_getQuoteText = function() { return this.m_sQuoteText; }; asc_CCommentDataWord.prototype.asc_putQuoteText = function(v) { this.m_sQuoteText = v; }; asc_CCommentDataWord.prototype.asc_getSolved = function() { return this.m_bSolved; }; asc_CCommentDataWord.prototype.asc_putSolved = function(v) { this.m_bSolved = v; }; asc_CCommentDataWord.prototype.asc_getReply = function(i) { return this.m_aReplies[i]; }; asc_CCommentDataWord.prototype.asc_addReply = function(v) { this.m_aReplies.push(v); }; asc_CCommentDataWord.prototype.asc_getRepliesCount = function(v) { return this.m_aReplies.length; }; asc_CCommentDataWord.prototype.asc_putDocumentFlag = function(val) { this.m_bGlobal = val; }; asc_CCommentDataWord.prototype.asc_getDocumentFlag = function() { return this.m_bGlobal; }; asc_docs_api.prototype.asc_showComments = function(isShowSolved) { if (null == this.WordControl.m_oLogicDocument) return; this.WordControl.m_oLogicDocument.ShowComments(isShowSolved); }; asc_docs_api.prototype.asc_hideComments = function() { if (null == this.WordControl.m_oLogicDocument) return; this.WordControl.m_oLogicDocument.HideComments(); editor.sync_HideComment(); }; asc_docs_api.prototype.asc_addComment = function(AscCommentData) { }; asc_docs_api.prototype.asc_removeComment = function(Id) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; if (false === oLogicDocument.Document_Is_SelectionLocked(changestype_None, { Type : AscCommon.changestype_2_Comment, Id : Id }, false, oLogicDocument.IsEditCommentsMode())) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_RemoveComment); oLogicDocument.RemoveComment(Id, true, true); } }; asc_docs_api.prototype.asc_changeComment = function(Id, AscCommentData) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; if (false === oLogicDocument.Document_Is_SelectionLocked(changestype_None, { Type : AscCommon.changestype_2_Comment, Id : Id }, false, oLogicDocument.IsEditCommentsMode())) { var CommentData = new AscCommon.CCommentData(); CommentData.Read_FromAscCommentData(AscCommentData); oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_ChangeComment); oLogicDocument.EditComment(Id, CommentData); this.sync_ChangeCommentData(Id, CommentData); } }; asc_docs_api.prototype.asc_selectComment = function(Id) { if (null == this.WordControl.m_oLogicDocument) return; this.WordControl.m_oLogicDocument.SelectComment(Id, true); }; asc_docs_api.prototype.asc_showComment = function(Id) { if (Id instanceof Array) this.WordControl.m_oLogicDocument.ShowComment(Id); else this.WordControl.m_oLogicDocument.ShowComment([Id]); }; asc_docs_api.prototype.can_AddQuotedComment = function() { //if ( true === CollaborativeEditing.Get_GlobalLock() ) // return false; return this.WordControl.m_oLogicDocument.CanAddComment(); }; asc_docs_api.prototype.sync_RemoveComment = function(Id) { this.sendEvent("asc_onRemoveComment", Id); }; asc_docs_api.prototype.sync_AddComment = function(Id, CommentData) { var AscCommentData = new asc_CCommentDataWord(CommentData); this.sendEvent("asc_onAddComment", Id, AscCommentData); }; asc_docs_api.prototype.sync_ShowComment = function(arrId, X, Y) { this.sendEvent("asc_onShowComment", arrId, X, Y); }; asc_docs_api.prototype.sync_HideComment = function() { this.sendEvent("asc_onHideComment"); }; asc_docs_api.prototype.sync_UpdateCommentPosition = function(Id, X, Y) { // TODO: Переделать на нормальный массив this.sendEvent("asc_onUpdateCommentPosition", [Id], X, Y); }; asc_docs_api.prototype.sync_ChangeCommentData = function(Id, CommentData) { var AscCommentData = new asc_CCommentDataWord(CommentData); this.sendEvent("asc_onChangeCommentData", Id, AscCommentData); }; asc_docs_api.prototype.sync_LockComment = function(Id, UserId) { this.sendEvent("asc_onLockComment", Id, UserId); }; asc_docs_api.prototype.sync_UnLockComment = function(Id) { this.sendEvent("asc_onUnLockComment", Id); }; //----------------------------------------------------------------- asc_docs_api.prototype.sync_LockHeaderFooters = function() { this.sendEvent("asc_onLockHeaderFooters"); }; asc_docs_api.prototype.sync_LockDocumentProps = function() { this.sendEvent("asc_onLockDocumentProps"); }; asc_docs_api.prototype.sync_UnLockHeaderFooters = function() { this.sendEvent("asc_onUnLockHeaderFooters"); }; asc_docs_api.prototype.sync_UnLockDocumentProps = function() { this.sendEvent("asc_onUnLockDocumentProps"); }; asc_docs_api.prototype.sync_CollaborativeChanges = function() { if (true !== AscCommon.CollaborativeEditing.Is_Fast() && (true !== this.WordControl.m_oLogicDocument.IsViewModeInReview() || true !== this.WordControl.m_oLogicDocument.IsFastCollaboartionBeforeViewModeInReview())) this.sendEvent("asc_onCollaborativeChanges"); }; asc_docs_api.prototype.sync_LockDocumentSchema = function() { this.sendEvent("asc_onLockDocumentSchema"); }; asc_docs_api.prototype.sync_UnLockDocumentSchema = function() { this.sendEvent("asc_onUnLockDocumentSchema"); }; /*----------------------------------------------------------------*/ /*functions for working with zoom & navigation*/ asc_docs_api.prototype.zoomIn = function() { this.WordControl.zoom_In(); }; asc_docs_api.prototype.zoomOut = function() { this.WordControl.zoom_Out(); }; asc_docs_api.prototype.zoomFitToPage = function() { if (!this.isLoadFullApi) { this.tmpZoomType = AscCommon.c_oZoomType.FitToPage; return; } this.WordControl.zoom_FitToPage(); }; asc_docs_api.prototype.zoomFitToWidth = function() { if (!this.isLoadFullApi) { this.tmpZoomType = AscCommon.c_oZoomType.FitToWidth; return; } this.WordControl.zoom_FitToWidth(); }; asc_docs_api.prototype.zoomCustomMode = function() { if (!this.isLoadFullApi) { this.tmpZoomType = AscCommon.c_oZoomType.CustomMode; return; } this.WordControl.m_nZoomType = 0; this.WordControl.zoom_Fire(0, this.WordControl.m_nZoomValue); }; asc_docs_api.prototype.zoom100 = function() { this.zoom(100); }; asc_docs_api.prototype.zoom = function(percent) { var _old_val = this.WordControl.m_nZoomValue; this.WordControl.m_nZoomValue = percent; this.WordControl.m_nZoomType = 0; this.WordControl.zoom_Fire(0, _old_val); }; asc_docs_api.prototype.goToPage = function(number) { this.WordControl.GoToPage(number); }; asc_docs_api.prototype.getCountPages = function() { return this.WordControl.m_oDrawingDocument.m_lPagesCount; }; asc_docs_api.prototype.getCurrentPage = function() { return this.WordControl.m_oDrawingDocument.m_lCurrentPage; }; /*callbacks*/ asc_docs_api.prototype.sync_zoomChangeCallback = function(percent, type) { //c_oAscZoomType.Current, c_oAscZoomType.FitWidth, c_oAscZoomType.FitPage this.sendEvent("asc_onZoomChange", percent, type); }; asc_docs_api.prototype.sync_countPagesCallback = function(count) { this.sendEvent("asc_onCountPages", count); }; asc_docs_api.prototype.sync_currentPageCallback = function(number) { this.sendEvent("asc_onCurrentPage", number); }; /*----------------------------------------------------------------*/ asc_docs_api.prototype.asc_enableKeyEvents = function(value, isFromInput) { if (!this.isLoadFullApi) { this.tmpFocus = value; return; } if (this.WordControl && this.WordControl.IsFocus != value) { this.WordControl.IsFocus = value; if (this.WordControl.IsFocus && null != this.WordControl.TextBoxInput) this.WordControl.TextBoxInput.focus(); this.sendEvent("asc_onEnableKeyEventsChanged", value); } if (isFromInput !== true && AscCommon.g_inputContext) AscCommon.g_inputContext.setInterfaceEnableKeyEvents(value); }; asc_docs_api.prototype.asc_IsFocus = function(bIsNaturalFocus) { var _ret = false; if (this.WordControl.IsFocus) _ret = true; if (_ret && bIsNaturalFocus && this.WordControl.TextBoxInputFocus) _ret = false; return _ret; }; asc_docs_api.prototype.asyncServerIdEndLoaded = function() { this.ServerIdWaitComplete = true; this.OpenDocumentEndCallback(); }; // работа с шрифтами asc_docs_api.prototype.asyncFontsDocumentStartLoaded = function() { // здесь прокинуть евент о заморозке меню // и нужно вывести информацию в статус бар if (this.isPasteFonts_Images) this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadFont); else if (this.isSaveFonts_Images) this.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.LoadFont); else { this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadDocumentFonts); if (undefined !== this.asyncMethodCallback) return; // заполним прогресс var _progress = this.OpenDocumentProgress; _progress.Type = c_oAscAsyncAction.LoadDocumentFonts; _progress.FontsCount = this.FontLoader.fonts_loading.length; _progress.CurrentFont = 0; var _loader_object = this.WordControl.m_oLogicDocument; var _count = 0; if (_loader_object !== undefined && _loader_object != null) { for (var i in _loader_object.ImageMap) { if (this.DocInfo.get_OfflineApp()) { var localUrl = _loader_object.ImageMap[i]; g_oDocumentUrls.addImageUrl(localUrl, this.documentUrl + 'media/' + localUrl); } ++_count; } } _progress.ImagesCount = _count; _progress.CurrentImage = 0; } }; asc_docs_api.prototype.GenerateStyles = function() { if (window["NATIVE_EDITOR_ENJINE"] === true) { if (!this.asc_checkNeedCallback("asc_onInitEditorStyles")) return; } var StylesPainter = new AscCommonWord.CStylesPainter(); var LogicDocument = this.WordControl.m_oLogicDocument; if (LogicDocument) { var isTrackRevision = LogicDocument.Is_TrackRevisions(); var isShowParaMarks = LogicDocument.Is_ShowParagraphMarks(); if (true === isTrackRevision) LogicDocument.Set_TrackRevisions(false); if (true === isShowParaMarks) LogicDocument.Set_ShowParagraphMarks(false, false); StylesPainter.GenerateStyles(this, (null == this.LoadedObject) ? this.WordControl.m_oLogicDocument.Get_Styles().Style : this.LoadedObjectDS); if (true === isTrackRevision) LogicDocument.Set_TrackRevisions(true); if (true === isShowParaMarks) LogicDocument.Set_ShowParagraphMarks(true, false); } }; asc_docs_api.prototype.asyncFontsDocumentEndLoaded = function() { // все, шрифты загружены. Теперь нужно подгрузить картинки if (this.isPasteFonts_Images) this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadFont); else if (this.isSaveFonts_Images) this.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.LoadFont); else this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadDocumentFonts); if (undefined !== this.asyncMethodCallback) { this.asyncMethodCallback(); this.asyncMethodCallback = undefined; return; } this.EndActionLoadImages = 0; if (this.isPasteFonts_Images) { var _count = 0; for (var i in this.pasteImageMap) ++_count; if (_count > 0) { this.EndActionLoadImages = 2; this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage); } var _oldAsyncLoadImages = this.ImageLoader.bIsAsyncLoadDocumentImages; this.ImageLoader.bIsAsyncLoadDocumentImages = false; this.ImageLoader.LoadDocumentImages(this.pasteImageMap, false); this.ImageLoader.bIsAsyncLoadDocumentImages = true; return; } else if (this.isSaveFonts_Images) { var _count = 0; for (var i in this.saveImageMap) ++_count; if (_count > 0) { this.EndActionLoadImages = 2; this.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.LoadImage); } this.ImageLoader.LoadDocumentImages(this.saveImageMap, false); return; } this.GenerateStyles(); if (null != this.WordControl.m_oLogicDocument) { this.WordControl.m_oDrawingDocument.CheckGuiControlColors(); this.sendColorThemes(this.WordControl.m_oLogicDocument.theme); this.sendEvent("asc_onUpdateChartStyles"); } // открытие после загрузки документа var _loader_object = this.WordControl.m_oLogicDocument; if (null == _loader_object) _loader_object = this.WordControl.m_oDrawingDocument.m_oDocumentRenderer; var _count = 0; for (var i in _loader_object.ImageMap) ++_count; if (!this.isOnlyReaderMode) { // add const textures var _st_count = AscCommon.g_oUserTexturePresets.length; for (var i = 0; i < _st_count; i++) _loader_object.ImageMap[_count + i] = AscCommon.g_oUserTexturePresets[i]; if (this.OpenDocumentProgress && !this.ImageLoader.bIsAsyncLoadDocumentImages) { this.OpenDocumentProgress.ImagesCount += _st_count; } } if (_count > 0) { this.EndActionLoadImages = 1; this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadDocumentImages); } this.ImageLoader.bIsLoadDocumentFirst = true; this.ImageLoader.LoadDocumentImages(_loader_object.ImageMap, true); }; asc_docs_api.prototype.CreateFontsCharMap = function() { var _info = new CFontsCharMap(); _info.StartWork(); this.WordControl.m_oLogicDocument.Document_CreateFontCharMap(_info); return _info.EndWork(); }; asc_docs_api.prototype.sync_SendThemeColors = function(colors, standart_colors) { this._gui_control_colors = {Colors : colors, StandartColors : standart_colors}; this.sendEvent("asc_onSendThemeColors", colors, standart_colors); }; asc_docs_api.prototype.ChangeColorScheme = function(index_scheme) { if (null == this.WordControl.m_oLogicDocument) return; var _changer = this.WordControl.m_oLogicDocument.DrawingObjects; if (null == _changer) return; var theme = this.WordControl.m_oLogicDocument.theme; if (this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_ColorScheme) === false) { var scheme = AscCommon.getColorThemeByIndex(index_scheme); if (!scheme) { index_scheme -= AscCommon.g_oUserColorScheme.length; if (index_scheme < 0 || index_scheme >= theme.extraClrSchemeLst.length) return; scheme = theme.extraClrSchemeLst[index_scheme].clrScheme.createDuplicate(); /*_changer.calculateAfterChangeTheme(); // TODO: this.WordControl.m_oDrawingDocument.ClearCachePages(); this.WordControl.OnScroll();*/ } History.Create_NewPoint(AscDFH.historydescription_Document_ChangeColorScheme); theme.changeColorScheme(scheme); this.WordControl.m_oDrawingDocument.CheckGuiControlColors(); this.chartPreviewManager.clearPreviews(); this.textArtPreviewManager.clear(); this.sendEvent("asc_onUpdateChartStyles"); this.WordControl.m_oLogicDocument.Recalculate(); // TODO: this.WordControl.m_oDrawingDocument.ClearCachePages(); this.WordControl.OnScroll(); this.WordControl.m_oDrawingDocument.CheckGuiControlColors(); this.WordControl.m_oLogicDocument.Document_UpdateInterfaceState(); } }; asc_docs_api.prototype.asyncImagesDocumentEndLoaded = function() { this.ImageLoader.bIsLoadDocumentFirst = false; var _bIsOldPaste = this.isPasteFonts_Images; if (null != this.WordControl.m_oDrawingDocument.m_oDocumentRenderer) { if (this.EndActionLoadImages == 1) { this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadDocumentImages); } else if (this.EndActionLoadImages == 2) { if (this.isPasteFonts_Images) this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage); else this.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.LoadImage); } this.EndActionLoadImages = 0; this.WordControl.m_oDrawingDocument.OpenDocument(); this.LoadedObject = null; this.bInit_word_control = true; if (false === this.isPasteFonts_Images) this.onDocumentContentReady(); this.WordControl.InitControl(); if (this.isViewMode) this.asc_setViewMode(true); return; } // на методе OpenDocumentEndCallback может поменяться this.EndActionLoadImages if (this.EndActionLoadImages == 1) { this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadDocumentImages); } else if (this.EndActionLoadImages == 2) { if (_bIsOldPaste) this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage); else this.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.LoadImage); } this.EndActionLoadImages = 0; // размораживаем меню... и начинаем считать документ if (false === this.isPasteFonts_Images && false === this.isSaveFonts_Images && false === this.isLoadImagesCustom) { this.ServerImagesWaitComplete = true; this.OpenDocumentEndCallback(); } else { if (this.isPasteFonts_Images) { this.isPasteFonts_Images = false; this.pasteImageMap = null; this.pasteCallback(); this.pasteCallback = null; this.decrementCounterLongAction(); } else if (this.isSaveFonts_Images) { this.isSaveFonts_Images = false; this.saveImageMap = null; this.pre_SaveCallback(); if (this.bInit_word_control === false) { this.bInit_word_control = true; this.onDocumentContentReady(); } } else if (this.isLoadImagesCustom) { this.isLoadImagesCustom = false; this.loadCustomImageMap = null; if (!this.ImageLoader.bIsAsyncLoadDocumentImages) this.SyncLoadImages_callback(); } } }; asc_docs_api.prototype.OpenDocumentEndCallback = function() { if (this.isDocumentLoadComplete || !this.ServerImagesWaitComplete || !this.ServerIdWaitComplete || !this.WordControl || !this.WordControl.m_oLogicDocument) return; if (0 == this.DocumentType) this.WordControl.m_oLogicDocument.LoadEmptyDocument(); else if (1 == this.DocumentType) { this.WordControl.m_oLogicDocument.LoadTestDocument(); } else { if (this.LoadedObject) { var Document = this.WordControl.m_oLogicDocument; if (this.isApplyChangesOnOpenEnabled) { if (AscCommon.EncryptionWorker) { AscCommon.EncryptionWorker.init(); if (!AscCommon.EncryptionWorker.isChangesHandled) return AscCommon.EncryptionWorker.handleChanges(AscCommon.CollaborativeEditing.m_aChanges, this, this.OpenDocumentEndCallback); } this.isApplyChangesOnOpenEnabled = false; this._applyPreOpenLocks(); AscCommon.CollaborativeEditing.Apply_Changes(); AscCommon.CollaborativeEditing.Release_Locks(); this.isApplyChangesOnOpen = true; } // History.RecalcData_Add( { Type : AscDFH.historyitem_recalctype_Inline, Data : { Pos : 0, PageNum : 0 } } ); //Recalculate для Document Document.CurPos.ContentPos = 0; // History.RecalcData_Add({Type: AscDFH.historyitem_recalctype_Drawing, All: true}); var RecalculateData = { Inline : {Pos : 0, PageNum : 0}, Flow : [], HdrFtr : [], Drawings : { All : true, Map : {} } }; if (!this.isOnlyReaderMode) { if (false === this.isSaveFonts_Images) Document.Recalculate(false, false, RecalculateData); this.WordControl.m_oDrawingDocument.TargetStart(); } else { Document.RecalculateAllTables(); var data = {All : true}; Document.DrawingObjects.recalculate_(data); Document.DrawingObjects.recalculateText_(data); if (!this.WordControl.IsReaderMode()) this.ChangeReaderMode(); else this.WordControl.UpdateReaderContent(); } } } if (false === this.isSaveFonts_Images) { this.bInit_word_control = true; this.onDocumentContentReady(); } this.WordControl.m_oLogicDocument.Document_UpdateInterfaceState(); //this.WordControl.m_oLogicDocument.Document_UpdateRulersState(); this.WordControl.m_oLogicDocument.Document_UpdateSelectionState(); this.LoadedObject = null; this.WordControl.InitControl(); if (!this.isViewMode) { this.sendStandartTextures(); this.sendMathToMenu(); if (this.shapeElementId) { this.WordControl.m_oDrawingDocument.InitGuiCanvasShape(this.shapeElementId); } } if (this.isViewMode) this.asc_setViewMode(true); // Меняем тип состояния (на никакое) this.advancedOptionsAction = c_oAscAdvancedOptionsAction.None; }; asc_docs_api.prototype.UpdateInterfaceState = function() { if (this.WordControl.m_oLogicDocument != null) { this.WordControl.m_oLogicDocument.Document_UpdateInterfaceState(); } }; asc_docs_api.prototype.asyncFontEndLoaded = function(fontinfo) { this.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.LoadFont); if (undefined !== this.asyncMethodCallback) { this.asyncMethodCallback(); this.asyncMethodCallback = undefined; return; } var _fontSelections = g_fontApplication.g_fontSelections; if (_fontSelections.CurrentLoadedObj != null) { var _rfonts = _fontSelections.getSetupRFonts(_fontSelections.CurrentLoadedObj); this.WordControl.m_oLogicDocument.TextBox_Put(_fontSelections.CurrentLoadedObj.text, _rfonts); this.WordControl.ReinitTB(); _fontSelections.CurrentLoadedObj = null; this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadFont); return; } if (this.FontAsyncLoadType == 1) { this.FontAsyncLoadType = 0; this.asc_AddMath2(this.FontAsyncLoadParam); this.FontAsyncLoadParam = null; return; } if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetTextFontNameLong); this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({ FontFamily : { Name : fontinfo.Name, Index : -1 } })); this.WordControl.m_oLogicDocument.Document_UpdateInterfaceState(); } // отжать заморозку меню }; asc_docs_api.prototype.asc_replaceLoadImageCallback = function(fCallback) { this.asyncImageEndLoaded2 = fCallback; }; asc_docs_api.prototype.asyncImageEndLoaded = function(_image) { // отжать заморозку меню if (this.asyncImageEndLoaded2) this.asyncImageEndLoaded2(_image); else { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_AddImage); this.WordControl.m_oLogicDocument.AddInlineImage(50, 50, _image.src); } } }; asc_docs_api.prototype.openDocument = function(sData) { if (sData.changes && this.VersionHistory) { this.VersionHistory.changes = sData.changes; this.VersionHistory.applyChanges(this); } if (sData.bSerFormat) this.OpenDocument2(sData.url, sData.data); else this.OpenDocument(sData.url, sData.data); }; asc_docs_api.prototype.asyncImageEndLoadedBackground = function(_image) { this.WordControl.m_oDrawingDocument.CheckRasterImageOnScreen(_image.src); if (this.WordControl.m_oDrawingDocument.LastDrawingUrl == _image.src) { this.WordControl.m_oDrawingDocument.LastDrawingUrl = ""; this.UpdateInterfaceState(); } }; asc_docs_api.prototype.IsAsyncOpenDocumentImages = function() { return true; }; asc_docs_api.prototype.pre_Paste = function(_fonts, _images, callback) { if (undefined !== window["Native"] && undefined !== window["Native"]["GetImageUrl"]) { callback(); return; } this.pasteCallback = callback; this.pasteImageMap = _images; var _count = 0; for (var i in this.pasteImageMap) ++_count; AscFonts.FontPickerByCharacter.extendFonts(_fonts); if (0 == _count && false === this.FontLoader.CheckFontsNeedLoading(_fonts)) { // никаких евентов. ничего грузить не нужно. сделано для сафари под макОс. // там при LongActions теряется фокус и вставляются пробелы this.pasteCallback(); this.pasteCallback = null; return; } this.incrementCounterLongAction(); this.isPasteFonts_Images = true; this.FontLoader.LoadDocumentFonts2(_fonts); }; asc_docs_api.prototype.pre_Save = function(_images) { this.isSaveFonts_Images = true; this.saveImageMap = _images; this.WordControl.m_oDrawingDocument.CheckFontNeeds(); this.FontLoader.LoadDocumentFonts2(this.WordControl.m_oLogicDocument.Fonts); }; asc_docs_api.prototype.SyncLoadImages = function(_images) { this.isLoadImagesCustom = true; this.loadCustomImageMap = _images; var _count = 0; var _loaded = this.ImageLoader.map_image_index; var _new_len = this.loadCustomImageMap.length; for (var i = 0; i < _new_len; i++) { if (undefined !== _loaded[this.loadCustomImageMap[i]]) { this.loadCustomImageMap.splice(i, 1); i--; _new_len--; continue; } ++_count; } if (_count > 0) { this.EndActionLoadImages = 2; this.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.LoadImage); } this.ImageLoader.LoadDocumentImages(this.loadCustomImageMap, false); }; asc_docs_api.prototype.SyncLoadImages_callback = function() { this.WordControl.OnRePaintAttack(); }; asc_docs_api.prototype.pre_SaveCallback = function() { AscCommon.CollaborativeEditing.OnEnd_Load_Objects(); if (this.isApplyChangesOnOpen) { this.isApplyChangesOnOpen = false; this.OpenDocumentEndCallback(); } }; asc_docs_api.prototype.initEvents2MobileAdvances = function() { //this.WordControl.initEvents2MobileAdvances(); }; asc_docs_api.prototype.ViewScrollToX = function(x) { this.WordControl.m_oScrollHorApi.scrollToX(x); }; asc_docs_api.prototype.ViewScrollToY = function(y) { this.WordControl.m_oScrollVerApi.scrollToY(y); }; asc_docs_api.prototype.GetDocWidthPx = function() { return this.WordControl.m_dDocumentWidth; }; asc_docs_api.prototype.GetDocHeightPx = function() { return this.WordControl.m_dDocumentHeight; }; asc_docs_api.prototype.ClearSearch = function() { return this.WordControl.m_oDrawingDocument.EndSearch(true); }; asc_docs_api.prototype.GetCurrentVisiblePage = function() { var lPage1 = this.WordControl.m_oDrawingDocument.m_lDrawingFirst; var lPage2 = lPage1 + 1; if (lPage2 > this.WordControl.m_oDrawingDocument.m_lDrawingEnd) return lPage1; var lWindHeight = this.WordControl.m_oEditor.HtmlElement.height; var arPages = this.WordControl.m_oDrawingDocument.m_arrPages; var dist1 = arPages[lPage1].drawingPage.bottom; var dist2 = lWindHeight - arPages[lPage2].drawingPage.top; if (dist1 > dist2) return lPage1; return lPage2; }; asc_docs_api.prototype.asc_SetDocumentPlaceChangedEnabled = function(bEnabled) { if (this.WordControl) this.WordControl.m_bDocumentPlaceChangedEnabled = bEnabled; }; asc_docs_api.prototype.asc_SetViewRulers = function(bRulers) { //if (false === this.bInit_word_control || true === this.isViewMode) // return; if (!this.isLoadFullApi) { this.tmpViewRulers = bRulers; return; } if (this.WordControl.m_bIsRuler != bRulers) { this.WordControl.m_bIsRuler = bRulers; this.WordControl.checkNeedRules(); this.WordControl.OnResize(true); } }; asc_docs_api.prototype.asc_SetViewRulersChange = function() { //if (false === this.bInit_word_control || true === this.isViewMode) // return; this.WordControl.m_bIsRuler = !this.WordControl.m_bIsRuler; this.WordControl.checkNeedRules(); this.WordControl.OnResize(true); return this.WordControl.m_bIsRuler; }; asc_docs_api.prototype.asc_GetViewRulers = function() { return this.WordControl.m_bIsRuler; }; asc_docs_api.prototype.asc_SetDocumentUnits = function(_units) { if (this.WordControl && this.WordControl.m_oHorRuler && this.WordControl.m_oVerRuler) { this.WordControl.m_oHorRuler.Units = _units; this.WordControl.m_oVerRuler.Units = _units; this.WordControl.UpdateHorRulerBack(true); this.WordControl.UpdateVerRulerBack(true); } }; asc_docs_api.prototype.GoToHeader = function(pageNumber) { if (this.WordControl.m_oDrawingDocument.IsFreezePage(pageNumber)) return; var bForceRedraw = false; var LogicDocument = this.WordControl.m_oLogicDocument; if (AscCommonWord.docpostype_HdrFtr !== LogicDocument.Get_DocPosType()) { LogicDocument.Set_DocPosType(AscCommonWord.docpostype_HdrFtr); bForceRedraw = true; } var oldClickCount = global_mouseEvent.ClickCount; global_mouseEvent.Button = 0; global_mouseEvent.ClickCount = 1; LogicDocument.OnMouseDown(global_mouseEvent, 0, 0, pageNumber); LogicDocument.OnMouseUp(global_mouseEvent, 0, 0, pageNumber); LogicDocument.OnMouseMove(global_mouseEvent, 0, 0, pageNumber); LogicDocument.MoveCursorLeft(); LogicDocument.Document_UpdateInterfaceState(); global_mouseEvent.ClickCount = oldClickCount; if (true === bForceRedraw) { this.WordControl.m_oDrawingDocument.ClearCachePages(); this.WordControl.m_oDrawingDocument.FirePaint(); } }; asc_docs_api.prototype.GoToFooter = function(pageNumber) { if (this.WordControl.m_oDrawingDocument.IsFreezePage(pageNumber)) return; var bForceRedraw = false; var LogicDocument = this.WordControl.m_oLogicDocument; if (AscCommonWord.docpostype_HdrFtr !== LogicDocument.Get_DocPosType()) { LogicDocument.Set_DocPosType(AscCommonWord.docpostype_HdrFtr); bForceRedraw = true; } var oldClickCount = global_mouseEvent.ClickCount; global_mouseEvent.Button = 0; global_mouseEvent.ClickCount = 1; LogicDocument.OnMouseDown(global_mouseEvent, 0, AscCommon.Page_Height, pageNumber); LogicDocument.OnMouseUp(global_mouseEvent, 0, AscCommon.Page_Height, pageNumber); LogicDocument.OnMouseMove(global_mouseEvent, 0, 0, pageNumber); LogicDocument.MoveCursorLeft(); LogicDocument.Document_UpdateInterfaceState(); global_mouseEvent.ClickCount = oldClickCount; if (true === bForceRedraw) { this.WordControl.m_oDrawingDocument.ClearCachePages(); this.WordControl.m_oDrawingDocument.FirePaint(); } }; asc_docs_api.prototype.ExitHeader_Footer = function(pageNumber) { if (this.WordControl.m_oDrawingDocument.IsFreezePage(pageNumber)) return; var oldClickCount = global_mouseEvent.ClickCount; global_mouseEvent.ClickCount = 2; this.WordControl.m_oLogicDocument.OnMouseDown(global_mouseEvent, 0, AscCommon.Page_Height / 2, pageNumber); this.WordControl.m_oLogicDocument.OnMouseUp(global_mouseEvent, 0, AscCommon.Page_Height / 2, pageNumber); this.WordControl.m_oLogicDocument.Document_UpdateInterfaceState(); global_mouseEvent.ClickCount = oldClickCount; }; asc_docs_api.prototype.GetCurrentPixOffsetY = function() { return this.WordControl.m_dScrollY; }; asc_docs_api.prototype.SetPaintFormat = function(_value) { var value = ( true === _value ? c_oAscFormatPainterState.kOn : ( false === _value ? c_oAscFormatPainterState.kOff : _value ) ); this.isPaintFormat = value; if (c_oAscFormatPainterState.kOff !== value) this.WordControl.m_oLogicDocument.Document_Format_Copy(); }; asc_docs_api.prototype.ChangeShapeType = function(value) { this.ImgApply(new asc_CImgProperty({ShapeProperties : {type : value}})); }; asc_docs_api.prototype.sync_PaintFormatCallback = function(_value) { var value = ( true === _value ? c_oAscFormatPainterState.kOn : ( false === _value ? c_oAscFormatPainterState.kOff : _value ) ); this.isPaintFormat = value; return this.sendEvent("asc_onPaintFormatChanged", value); }; asc_docs_api.prototype.SetMarkerFormat = function(value, is_flag, r, g, b) { this.isMarkerFormat = value; if (this.isMarkerFormat) { this.WordControl.m_oLogicDocument.Paragraph_SetHighlight(is_flag, r, g, b); this.WordControl.m_oLogicDocument.Document_Format_Copy(); } }; asc_docs_api.prototype.sync_MarkerFormatCallback = function(value) { this.isMarkerFormat = value; return this.sendEvent("asc_onMarkerFormatChanged", value); }; asc_docs_api.prototype.StartAddShape = function(sPreset, is_apply) { this.isStartAddShape = true; this.addShapePreset = sPreset; if (is_apply) { this.WordControl.m_oDrawingDocument.LockCursorType("crosshair"); } else { editor.sync_EndAddShape(); editor.sync_StartAddShapeCallback(false); } }; asc_docs_api.prototype.AddShapeOnCurrentPage = function(_type) { if (!this.WordControl.m_oLogicDocument) return; var _pageNum = this.GetCurrentVisiblePage(); // получаем размеры страницы var _sectionPr = this.WordControl.m_oLogicDocument.Get_PageLimits(_pageNum); var _min = Math.min(_sectionPr.XLimit / 2, _sectionPr.YLimit / 2); this.WordControl.m_oLogicDocument.DrawingObjects.addShapeOnPage(_type, _pageNum, _sectionPr.X + _sectionPr.XLimit / 4, _sectionPr.Y + _sectionPr.YLimit / 4, _min, _min); }; asc_docs_api.prototype.AddTextArt = function(nStyle) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { History.Create_NewPoint(AscDFH.historydescription_Document_AddTextArt); this.WordControl.m_oLogicDocument.AddTextArt(nStyle); } }; asc_docs_api.prototype.AddTextArt = function(nStyle) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { History.Create_NewPoint(AscDFH.historydescription_Document_AddTextArt); this.WordControl.m_oLogicDocument.AddTextArt(nStyle); } }; asc_docs_api.prototype.sync_StartAddShapeCallback = function(value) { this.isStartAddShape = value; return this.sendEvent("asc_onStartAddShapeChanged", value); }; asc_docs_api.prototype.CanGroup = function() { return this.WordControl.m_oLogicDocument.CanGroup(); }; asc_docs_api.prototype.CanUnGroup = function() { return this.WordControl.m_oLogicDocument.CanUnGroup(); }; asc_docs_api.prototype.CanChangeWrapPolygon = function() { return this.WordControl.m_oLogicDocument.CanChangeWrapPolygon(); }; asc_docs_api.prototype.StartChangeWrapPolygon = function() { return this.WordControl.m_oLogicDocument.StartChangeWrapPolygon(); }; asc_docs_api.prototype.ClearFormating = function() { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_ClearFormatting); this.WordControl.m_oLogicDocument.ClearParagraphFormatting(); } }; asc_docs_api.prototype.GetSectionInfo = function() { var obj = new CAscSection(); // TODO: Переделать данную функцию, если она вообще нужна obj.PageWidth = 297; obj.PageHeight = 210; obj.MarginLeft = 30; obj.MarginRight = 15; obj.MarginTop = 20; obj.MarginBottom = 20; return obj; }; asc_docs_api.prototype.add_SectionBreak = function(_Type) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_AddSectionBreak); this.WordControl.m_oLogicDocument.Add_SectionBreak(_Type); } }; asc_docs_api.prototype.asc_setViewMode = function(isViewMode) { this.isViewMode = !!isViewMode; if (!this.isLoadFullApi) { return; } if (isViewMode) { this.asc_SpellCheckDisconnect(); this.ShowParaMarks = false; AscCommon.CollaborativeEditing.Set_GlobalLock(true); //this.isShowTableEmptyLine = false; //this.WordControl.m_bIsRuler = true; if (null == this.WordControl.m_oDrawingDocument.m_oDocumentRenderer) { this.WordControl.m_oDrawingDocument.ClearCachePages(); this.WordControl.HideRulers(); } else { this.WordControl.HideRulers(); this.WordControl.OnScroll(); } } else { //this.WordControl.m_bIsRuler = true; this.WordControl.checkNeedRules(); this.WordControl.m_oDrawingDocument.ClearCachePages(); this.WordControl.OnResize(true); } }; asc_docs_api.prototype.OnMouseUp = function(x, y) { this.WordControl.onMouseUpExternal(x, y); }; asc_docs_api.prototype.asyncImageEndLoaded2 = null; asc_docs_api.prototype._OfflineAppDocumentEndLoad = function() { var bIsViewer = false; var sData = window["editor_bin"]; if (undefined == sData) return; if (AscCommon.c_oSerFormat.Signature !== sData.substring(0, AscCommon.c_oSerFormat.Signature.length)) { bIsViewer = true; } if (bIsViewer) { this.OpenDocument(this.documentUrl, sData); } else { this.OpenDocument2(this.documentUrl, sData); } }; asc_docs_api.prototype.SetDrawImagePlaceParagraph = function(element_id, props) { this.WordControl.m_oDrawingDocument.InitGuiCanvasTextProps(element_id); this.WordControl.m_oDrawingDocument.DrawGuiCanvasTextProps(props); }; asc_docs_api.prototype.asc_getMasterCommentId = function() { return -1; }; asc_docs_api.prototype.asc_getAnchorPosition = function() { var AnchorPos = this.WordControl.m_oLogicDocument.GetSelectionAnchorPos(); return new AscCommon.asc_CRect(AnchorPos.X0, AnchorPos.Y, AnchorPos.X1 - AnchorPos.X0, 0); }; asc_docs_api.prototype.spellCheck = function(rdata) { //console.log("start - " + rdata); // ToDo проверка на подключение switch (rdata.type) { case "spell": case "suggest": this.SpellCheckApi.spellCheck(JSON.stringify(rdata)); break; } }; asc_docs_api.prototype._onNeedParams = function(data, opt_isPassword) { var t = this; var options; if (opt_isPassword) { if (this.asc_checkNeedCallback("asc_onAdvancedOptions")) { options = new AscCommon.asc_CAdvancedOptions(c_oAscAdvancedOptionsID.DRM); t.sendEvent("asc_onAdvancedOptions", options, t.advancedOptionsAction); } else { t.sendEvent("asc_onError", c_oAscError.ID.ConvertationPassword, c_oAscError.Level.Critical); } } else { if (this.asc_checkNeedCallback("asc_onAdvancedOptions")) { var cp = {'codepage': AscCommon.c_oAscCodePageUtf8, 'encodings': AscCommon.getEncodingParams()}; if (data && typeof Blob !== 'undefined' && typeof FileReader !== 'undefined') { AscCommon.getJSZipUtils().getBinaryContent(data, function(err, data) { if (err) { t.sendEvent("asc_onError", c_oAscError.ID.Unknown, c_oAscError.Level.Critical); } else { cp['data'] = data; options = new AscCommon.asc_CAdvancedOptions(c_oAscAdvancedOptionsID.TXT, cp); t.sendEvent("asc_onAdvancedOptions", options, t.advancedOptionsAction); } }); } else { options = new AscCommon.asc_CAdvancedOptions(c_oAscAdvancedOptionsID.TXT, cp); t.sendEvent("asc_onAdvancedOptions", options, t.advancedOptionsAction); } } else { this.asc_setAdvancedOptions(c_oAscAdvancedOptionsID.TXT, new Asc.asc_CTXTAdvancedOptions(AscCommon.c_oAscCodePageUtf8)); } } }; asc_docs_api.prototype._onOpenCommand = function(data) { var t = this; AscCommon.openFileCommand(data, this.documentUrlChanges, AscCommon.c_oSerFormat.Signature, function(error, result) { if (error || (!result.bSerFormat && !Asc.c_rUneditableTypes.test(t.DocInfo && t.DocInfo.get_Format()))) { var err = error ? c_oAscError.ID.Unknown : c_oAscError.ID.ConvertationOpenError; t.sendEvent("asc_onError", err, c_oAscError.Level.Critical); return; } t.onEndLoadFile(result); }); }; asc_docs_api.prototype._downloadAs = function(command, filetype, actionType, options, fCallbackRequest) { var isCloudCrypto = (window["AscDesktopEditor"] && (0 < window["AscDesktopEditor"]["CryptoMode"])) ? true : false; if (isCloudCrypto) window.isCloudCryptoDownloadAs = true; if (this.WordControl && this.WordControl.m_oDrawingDocument && (c_oAscFileType.PDF == filetype || c_oAscFileType.PDFA == filetype)) { if (this.WordControl.m_oDrawingDocument.CheckPrint([command, filetype, actionType, options, fCallbackRequest])) return; } var t = this; if (!options) { options = {}; } if (actionType) { this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, actionType); } // Меняем тип состояния (на сохранение) this.advancedOptionsAction = c_oAscAdvancedOptionsAction.Save; var isNoBase64 = (typeof ArrayBuffer !== 'undefined') && !isCloudCrypto; var _fCallbackRequest = fCallbackRequest; var dataContainer = {data : null, part : null, index : 0, count : 0}; var oAdditionalData = {}; oAdditionalData["c"] = command; oAdditionalData["id"] = this.documentId; oAdditionalData["userid"] = this.documentUserId; oAdditionalData["jwt"] = this.CoAuthoringApi.get_jwt(); oAdditionalData["outputformat"] = filetype; oAdditionalData["title"] = AscCommon.changeFileExtention(this.documentTitle, AscCommon.getExtentionByFormat(filetype), Asc.c_nMaxDownloadTitleLen); oAdditionalData["savetype"] = AscCommon.c_oAscSaveTypes.CompleteAll; oAdditionalData["nobase64"] = isNoBase64; if ('savefromorigin' === command) { oAdditionalData["format"] = this.documentFormat; } if (DownloadType.Print === options.downloadType) { oAdditionalData["inline"] = 1; } if (options.isNoData) { ;//nothing } else if (null == options.oDocumentMailMerge && (c_oAscFileType.PDF === filetype || c_oAscFileType.PDFA === filetype)) { var dd = this.WordControl.m_oDrawingDocument; dataContainer.data = dd.ToRendererPart(isNoBase64); //console.log(oAdditionalData["data"]); } else if (c_oAscFileType.JSON === filetype) { oAdditionalData['url'] = this.mailMergeFileData['url']; oAdditionalData['format'] = this.mailMergeFileData['fileType']; // ToDo select csv params oAdditionalData['codepage'] = AscCommon.c_oAscCodePageUtf8; oAdditionalData['delimiter'] = AscCommon.c_oAscCsvDelimiter.Comma } else if (this.insertDocumentUrlsData) { var last = this.insertDocumentUrlsData.documents.shift(); oAdditionalData['url'] = last['url']; oAdditionalData['format'] = last['format']; oAdditionalData['outputurls']= true; } else if (c_oAscFileType.TXT === filetype && !options.txtOptions && null == options.oDocumentMailMerge && null == options.oMailMergeSendData) { // Мы открывали команду, надо ее закрыть. if (actionType) { this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, actionType); } var cp = { 'codepage' : AscCommon.c_oAscCodePageUtf8, 'encodings' : AscCommon.getEncodingParams() }; this.downloadType = options.downloadType; this.sendEvent("asc_onAdvancedOptions", new AscCommon.asc_CAdvancedOptions(c_oAscAdvancedOptionsID.TXT, cp), this.advancedOptionsAction); return; } else if (c_oAscFileType.HTML === filetype && null == options.oDocumentMailMerge && null == options.oMailMergeSendData) { //в asc_nativeGetHtml будет вызван select all, чтобы выделился документ должны выйти из колонтитулов и автофигур var _e = new AscCommon.CKeyboardEvent(); _e.CtrlKey = false; _e.KeyCode = 27; this.WordControl.m_oLogicDocument.OnKeyDown(_e); //сделано через сервер, потому что нет простого механизма сохранения на клиенте dataContainer.data = '\ufeff' + window["asc_docs_api"].prototype["asc_nativeGetHtml"].call(this); } else { if (options.txtOptions instanceof Asc.asc_CTXTAdvancedOptions) { oAdditionalData["codepage"] = options.txtOptions.asc_getCodePage(); } var oLogicDocument; if (null != options.oDocumentMailMerge) oLogicDocument = options.oDocumentMailMerge; else oLogicDocument = this.WordControl.m_oLogicDocument; var oBinaryFileWriter; if (null != options.oMailMergeSendData && c_oAscFileType.HTML == options.oMailMergeSendData.get_MailFormat()) oBinaryFileWriter = new AscCommonWord.BinaryFileWriter(oLogicDocument, false, true); else oBinaryFileWriter = new AscCommonWord.BinaryFileWriter(oLogicDocument); dataContainer.data = oBinaryFileWriter.Write(isNoBase64); } if (null != options.oMailMergeSendData) { oAdditionalData["mailmergesend"] = options.oMailMergeSendData; var MailMergeMap = this.WordControl.m_oLogicDocument.MailMergeMap; var aJsonOut = []; if (MailMergeMap.length > 0) { var oFirstRow = MailMergeMap[0]; var aRowOut = []; for (var i in oFirstRow) aRowOut.push(i); aJsonOut.push(aRowOut); } //todo может надо запоминать порядок for in в первом столбце, если for in будет по-разному обходить строки for (var i = 0; i < MailMergeMap.length; ++i) { var oRow = MailMergeMap[i]; var aRowOut = []; for (var j in oRow) aRowOut.push(oRow[j]); aJsonOut.push(aRowOut); } var editorData = dataContainer.data; dataContainer.data = JSON.stringify(aJsonOut); options.oMailMergeSendData.put_IsJson(true); //save Editor.bin after json _fCallbackRequest = function(incomeObject){ oAdditionalData["savekey"] = incomeObject["data"]; dataContainer = {data : editorData, part : null, index : 0, count : 0}; options.oMailMergeSendData.put_IsJson(false); AscCommon.saveWithParts(function(fCallback1, oAdditionalData1, dataContainer1) { sendCommand(t, fCallback1, oAdditionalData1, dataContainer1); }, fCallback, fCallbackRequest, oAdditionalData, dataContainer); } } if (isCloudCrypto) { var sParamXml = ("" + oAdditionalData["codepage"] + ""); window["AscDesktopEditor"]["CryptoDownloadAs"](dataContainer.data, filetype, sParamXml); return; } var fCallback = null; if (!options.isNoCallback) { fCallback = function(input) { var error = c_oAscError.ID.Unknown; //input = {'type': command, 'status': 'err', 'data': -80}; if (null != input && command == input['type']) { if ('ok' == input['status']) { if (options.isNoUrl) { error = c_oAscError.ID.No; } else { var url = input['data']; if (url) { error = c_oAscError.ID.No; t.processSavedFile(url, options.downloadType); } } } else { error = mapAscServerErrorToAscError(parseInt(input["data"]), AscCommon.c_oAscAdvancedOptionsAction.Save); } } if (c_oAscError.ID.No != error) { t.endInsertDocumentUrls(); t.sendEvent('asc_onError', options.errorDirect || error, c_oAscError.Level.NoCritical); } // Меняем тип состояния (на никакое) t.advancedOptionsAction = c_oAscAdvancedOptionsAction.None; if (actionType) { t.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, actionType); } }; } this.fCurCallback = fCallback; AscCommon.saveWithParts(function(fCallback1, oAdditionalData1, dataContainer1) { sendCommand(t, fCallback1, oAdditionalData1, dataContainer1); }, fCallback, _fCallbackRequest, oAdditionalData, dataContainer); } // Вставка диаграмм asc_docs_api.prototype.asc_getChartObject = function(type) { this.isChartEditor = true; // Для совместного редактирования if (!AscFormat.isRealNumber(type)) { this.asc_onOpenChartFrame(); this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Drawing_Props); } return this.WordControl.m_oLogicDocument.GetChartObject(type); }; asc_docs_api.prototype.asc_addChartDrawingObject = function(options) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { History.Create_NewPoint(AscDFH.historydescription_Document_AddChart); AscFonts.IsCheckSymbols = true; this.asc_SetSilentMode(true); this.WordControl.m_oLogicDocument.AddInlineImage(null, null, null, options); AscFonts.IsCheckSymbols = false; AscFonts.FontPickerByCharacter.checkText("", this, function() { this.asc_SetSilentMode(false, true); }, false, false, false); } }; asc_docs_api.prototype.asc_doubleClickOnChart = function(obj) { this.isChartEditor = true; // Для совместного редактирования this.asc_onOpenChartFrame(); this.WordControl.onMouseUpMainSimple(); this.sendEvent("asc_doubleClickOnChart", obj); }; asc_docs_api.prototype.asc_onCloseChartFrame = function() { AscCommon.baseEditorsApi.prototype.asc_onCloseChartFrame.call(this); this.WordControl.m_bIsMouseLock = false; }; asc_docs_api.prototype.asc_editChartDrawingObject = function(chartBinary) { /**/ // Находим выделенную диаграмму и накатываем бинарник if (AscFormat.isObject(chartBinary)) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { History.Create_NewPoint(AscDFH.historydescription_Document_EditChart); this.WordControl.m_oLogicDocument.EditChart(chartBinary); } } }; asc_docs_api.prototype.sync_closeChartEditor = function() { this.sendEvent("asc_onCloseChartEditor"); }; asc_docs_api.prototype.asc_setDrawCollaborationMarks = function(bDraw) { this.tmpCoMarksDraw = bDraw; if (!this.isLoadFullApi) { return; } if (bDraw !== this.isCoMarksDraw) { this.isCoMarksDraw = bDraw; this.WordControl.m_oDrawingDocument.ClearCachePages(); this.WordControl.m_oDrawingDocument.FirePaint(); } }; asc_docs_api.prototype.asc_AddMath = function(Type) { var loader = AscCommon.g_font_loader; var fontinfo = g_fontApplication.GetFontInfo("Cambria Math"); var isasync = loader.LoadFont(fontinfo); if (false === isasync) { return this.asc_AddMath2(Type); } else { this.FontAsyncLoadType = 1; this.FontAsyncLoadParam = Type; } }; asc_docs_api.prototype.asc_AddMath2 = function(Type) { if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) { this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_AddMath); var MathElement = new AscCommonWord.MathMenu(Type); this.WordControl.m_oLogicDocument.AddToParagraph(MathElement); } }; asc_docs_api.prototype.asc_AddPageCount = function() { this.WordControl.m_oLogicDocument.AddPageCount(); }; //---------------------------------------------------------------------------------------------------------------------- // Функции для работы с MailMerge //---------------------------------------------------------------------------------------------------------------------- asc_docs_api.prototype.asc_StartMailMerge = function(oData) { }; asc_docs_api.prototype.asc_StartMailMergeByList = function(aList) { }; asc_docs_api.prototype.asc_GetReceptionsCount = function() { }; asc_docs_api.prototype.asc_GetMailMergeFieldsNameList = function() { }; asc_docs_api.prototype.asc_AddMailMergeField = function(Name) { }; asc_docs_api.prototype.asc_SetHighlightMailMergeFields = function(Value) { }; asc_docs_api.prototype.asc_PreviewMailMergeResult = function(Index) { }; asc_docs_api.prototype.asc_EndPreviewMailMergeResult = function() { }; asc_docs_api.prototype.sync_StartMailMerge = function() { }; asc_docs_api.prototype.sync_PreviewMailMergeResult = function(Index) { }; asc_docs_api.prototype.sync_EndPreviewMailMergeResult = function() { }; asc_docs_api.prototype.sync_HighlightMailMergeFields = function(Value) { }; asc_docs_api.prototype.asc_getMailMergeData = function() { }; asc_docs_api.prototype.asc_setMailMergeData = function(aList) { }; asc_docs_api.prototype.asc_sendMailMergeData = function(oData) { }; asc_docs_api.prototype.asc_GetMailMergeFiledValue = function(nIndex, sName) { }; //---------------------------------------------------------------------------------------------------------------------- // Работаем со стилями //---------------------------------------------------------------------------------------------------------------------- asc_docs_api.prototype.asc_GetStyleFromFormatting = function() { return null; }; asc_docs_api.prototype.asc_AddNewStyle = function(oStyle) { }; asc_docs_api.prototype.asc_RemoveStyle = function(sName) { }; asc_docs_api.prototype.asc_RemoveAllCustomStyles = function() { }; asc_docs_api.prototype.asc_IsStyleDefault = function(sName) { return true; }; asc_docs_api.prototype.asc_IsDefaultStyleChanged = function(sName) { return false; }; asc_docs_api.prototype.asc_GetStyleNameById = function(StyleId) { return this.WordControl.m_oLogicDocument.Get_StyleNameById(StyleId); }; //---------------------------------------------------------------------------------------------------------------------- // Работаем с рецензированием //---------------------------------------------------------------------------------------------------------------------- asc_docs_api.prototype.asc_SetTrackRevisions = function(bTrack) { }; asc_docs_api.prototype.asc_IsTrackRevisions = function() { return false; }; asc_docs_api.prototype.sync_BeginCatchRevisionsChanges = function() { }; asc_docs_api.prototype.sync_EndCatchRevisionsChanges = function() { }; asc_docs_api.prototype.asc_GetRevisionsChangesStack = function() { }; asc_docs_api.prototype.sync_AddRevisionsChange = function(Change) { }; asc_docs_api.prototype.asc_AcceptChanges = function(Change) { }; asc_docs_api.prototype.asc_RejectChanges = function(Change) { }; asc_docs_api.prototype.asc_HaveRevisionsChanges = function() { return false }; asc_docs_api.prototype.asc_HaveNewRevisionsChanges = function() { return false }; asc_docs_api.prototype.asc_GetNextRevisionsChange = function() { }; asc_docs_api.prototype.asc_GetPrevRevisionsChange = function() { }; asc_docs_api.prototype.sync_UpdateRevisionsChangesPosition = function(X, Y) { }; asc_docs_api.prototype.asc_AcceptAllChanges = function() { }; asc_docs_api.prototype.asc_RejectAllChanges = function() { }; asc_docs_api.prototype.asc_undoAllChanges = function() { this.WordControl.m_oLogicDocument.Document_Undo({All : true}); }; asc_docs_api.prototype.asc_CloseFile = function() { History.Clear(); g_oIdCounter.Clear(); g_oTableId.Clear(); AscCommon.CollaborativeEditing.Clear(); this.isApplyChangesOnOpenEnabled = true; this.isDocumentLoadComplete = false; var oLogicDocument = this.WordControl.m_oLogicDocument; oLogicDocument.Stop_Recalculate(); oLogicDocument.Stop_CheckSpelling(); AscCommon.pptx_content_loader.ImageMapChecker = {}; this.WordControl.m_oDrawingDocument.CloseFile(); }; asc_docs_api.prototype.asc_SetFastCollaborative = function(isOn) { if (!this.WordControl || !this.WordControl.m_oLogicDocument) return; if (AscCommon.CollaborativeEditing){ AscCommon.CollaborativeEditing.Set_Fast(isOn); if(window['AscCommon'].g_specialPasteHelper && isOn && !AscCommon.CollaborativeEditing.Is_SingleUser()){ window['AscCommon'].g_specialPasteHelper.SpecialPasteButton_Hide(); } } }; asc_docs_api.prototype._onEndLoadSdk = function() { AscCommon.baseEditorsApi.prototype._onEndLoadSdk.call(this); History = AscCommon.History; g_fontApplication = AscFonts.g_fontApplication; PasteElementsId = AscCommon.PasteElementsId; global_mouseEvent = AscCommon.global_mouseEvent; this.WordControl = new AscCommonWord.CEditorPage(this); this.WordControl.Name = this.HtmlElementName; this.CurrentTranslate = AscCommonWord.translations_map["en"]; //выставляем тип copypaste PasteElementsId.g_bIsDocumentCopyPaste = true; this.CreateComponents(); this.WordControl.Init(); if (this.tmpFontRenderingMode) { this.SetFontRenderingMode(this.tmpFontRenderingMode); } if (null !== this.tmpViewRulers) { this.asc_SetViewRulers(this.tmpViewRulers); } if (null !== this.tmpZoomType) { switch (this.tmpZoomType) { case AscCommon.c_oZoomType.FitToPage: this.zoomFitToPage(); break; case AscCommon.c_oZoomType.FitToWidth: this.zoomFitToWidth(); break; case AscCommon.c_oZoomType.CustomMode: this.zoomCustomMode(); break; } } this.asc_setViewMode(this.isViewMode); this.asc_setDrawCollaborationMarks(this.tmpCoMarksDraw); if (this.isOnlyReaderMode) this.ImageLoader.bIsAsyncLoadDocumentImages = false; if (this.openFileCryptBinary) { window.openFileCryptCallback(this.openFileCryptBinary); this.openFileCryptBinary = null; } }; asc_docs_api.prototype.asc_Recalculate = function(bIsUpdateInterface) { if (!this.WordControl.m_oLogicDocument) return; return this.WordControl.m_oLogicDocument.Recalculate_FromStart(bIsUpdateInterface); }; asc_docs_api.prototype.asc_canPaste = function() { if (!this.WordControl || !this.WordControl.m_oLogicDocument || this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content)) return false; this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_AddSectionBreak); return true; }; //---------------------------------------------------------------------------------------------------------------------- // Работаем с полями //---------------------------------------------------------------------------------------------------------------------- asc_docs_api.prototype.asc_GetBlockChainData = function() { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return []; var arrFields = oLogicDocument.GetAllFormTextFields(); var arrResult = []; for (var nIndex = 0, nCount = arrFields.length; nIndex < nCount; ++nIndex) { var oField = arrFields[nIndex]; arrResult.push(oField.GetValue()); } return arrResult; }; asc_docs_api.prototype.asc_SetBlockChainData = function(arrData) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return []; var arrFields = oLogicDocument.GetAllFormTextFields(); var arrResult = []; for (var nIndex = 0, nCount = arrFields.length; nIndex < nCount; ++nIndex) { var oField = arrFields[nIndex]; oField.SetValue(arrData[nIndex] ? arrData[nIndex] : ""); } if (!this.isLongAction()) oLogicDocument.Recalculate_FromStart(); }; //---------------------------------------------------------------------------------------------------------------------- // Работаем с ContentControl //---------------------------------------------------------------------------------------------------------------------- asc_docs_api.prototype.asc_AddContentControl = function(nType, oContentControlPr) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; var sDefaultText = AscCommon.translateManager.getValue('Your text here'); if (c_oAscSdtLevelType.Block === nType) { if (false === oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_ContentControl_Add)) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_AddBlockLevelContentControl); var oContentControl = oLogicDocument.AddContentControl(c_oAscSdtLevelType.Block); if (!oContentControl) { History.Remove_LastPoint(); return; } else { if (oContentControlPr) oContentControl.SetContentControlPr(oContentControlPr); if (oContentControl.IsEmpty()) { // TODO: Разобраться с тем, чтобы пересчет не вызывался в фунции AddToParagraph oLogicDocument.TurnOff_Recalculate(); for (var oIterator = sDefaultText.getUnicodeIterator(); oIterator.check(); oIterator.next()) { var nCharCode = oIterator.value(); if (0x0020 === nCharCode) oContentControl.AddToParagraph(new AscCommonWord.ParaSpace()); else oContentControl.AddToParagraph(new AscCommonWord.ParaText(nCharCode)); } oLogicDocument.SelectContentControl(oContentControl.GetId()); oLogicDocument.TurnOn_Recalculate(); } oLogicDocument.Recalculate(); oLogicDocument.Document_UpdateInterfaceState(); oLogicDocument.Document_UpdateSelectionState(); return oContentControl.GetContentControlPr(); } } } else if (c_oAscSdtLevelType.Inline === nType) { if (false === oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_ContentControl_Add)) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_AddInlineLevelContentControl); var oContentControl = oLogicDocument.AddContentControl(c_oAscSdtLevelType.Inline); if (!oContentControl) { History.Remove_LastPoint(); return; } else { if (oContentControl.IsEmpty()) { for (var oIterator = sDefaultText.getUnicodeIterator(); oIterator.check(); oIterator.next()) { var nCharCode = oIterator.value(); if (0x0020 === nCharCode) oContentControl.Add(new AscCommonWord.ParaSpace()); else oContentControl.Add(new AscCommonWord.ParaText(nCharCode)); } oContentControl.SelectThisElement(); } if (oContentControlPr) oContentControl.SetContentControlPr(oContentControlPr); oLogicDocument.Recalculate(); oLogicDocument.Document_UpdateInterfaceState(); oLogicDocument.Document_UpdateSelectionState(); } return oContentControl.GetContentControlPr(); } } }; asc_docs_api.prototype.asc_RemoveContentControl = function(Id) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; var isLocked = true; var oContentControl = null; if (undefined === Id) { var oInfo = oLogicDocument.GetSelectedElementsInfo({SkipTOC : true}); var oInlineControl = oInfo.GetInlineLevelSdt(); var oBlockControl = oInfo.GetBlockLevelSdt(); if (oInlineControl) oContentControl = oInlineControl; else if (oBlockControl) oContentControl = oBlockControl; } else { oContentControl = AscCommon.g_oTableId.Get_ById(Id); } if (oContentControl && oContentControl.GetContentControlType) { if (c_oAscSdtLevelType.Block === oContentControl.GetContentControlType()) { isLocked = oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_None, { Type : AscCommon.changestype_2_ElementsArray_and_Type, Elements : [oContentControl], CheckType : AscCommon.changestype_ContentControl_Remove }); } else if (c_oAscSdtLevelType.Inline === oContentControl.GetContentControlType()) { var oParagraph = oContentControl.GetParagraph(); if (oParagraph) { isLocked = oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_None, { Type : AscCommon.changestype_2_ElementsArray_and_Type, Elements : [oParagraph], CheckType : AscCommon.changestype_Paragraph_Content }); } } Id = oContentControl.GetId(); } if (false === isLocked) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_RemoveContentControl); oLogicDocument.RemoveContentControl(Id); oLogicDocument.Recalculate(); oLogicDocument.Document_UpdateInterfaceState(); oLogicDocument.Document_UpdateSelectionState(); } }; asc_docs_api.prototype.asc_RemoveContentControlWrapper = function(Id) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; var isLocked = true; var oContentControl = null; if (undefined === Id) { var oInfo = oLogicDocument.GetSelectedElementsInfo({SkipTOC : true}); var oInlineControl = oInfo.GetInlineLevelSdt(); var oBlockControl = oInfo.GetBlockLevelSdt(); if (oInlineControl) oContentControl = oInlineControl; else if (oBlockControl) oContentControl = oBlockControl; } else { oContentControl = AscCommon.g_oTableId.Get_ById(Id); } if (oContentControl && oContentControl.GetContentControlType) { if (c_oAscSdtLevelType.Block === oContentControl.GetContentControlType()) { isLocked = oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_None, { Type : AscCommon.changestype_2_ElementsArray_and_Type, Elements : [oContentControl], CheckType : AscCommon.changestype_ContentControl_Remove }); } else if (c_oAscSdtLevelType.Inline === oContentControl.GetContentControlType()) { var oParagraph = oContentControl.GetParagraph(); if (oParagraph) { isLocked = oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_None, { Type : AscCommon.changestype_2_ElementsArray_and_Type, Elements : [oParagraph], CheckType : AscCommon.changestype_Paragraph_Content }); } } Id = oContentControl.GetId(); } if (false === isLocked) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_RemoveContentControlWrapper); oLogicDocument.RemoveContentControlWrapper(Id); oLogicDocument.Recalculate(); oLogicDocument.Document_UpdateInterfaceState(); oLogicDocument.Document_UpdateSelectionState(); return true; } return false; }; asc_docs_api.prototype.asc_SetContentControlProperties = function(oContentControlPr, Id, isApplyToAll) { var oLogicDocument = this.private_GetLogicDocument(); if (!oLogicDocument) return; if (true === isApplyToAll) { var arrContentControls = oLogicDocument.GetAllContentControls(); var arrCheckElements = [], arrCheckTypes = []; for (var nIndex = 0, nCount = arrContentControls.length; nIndex < nCount; ++nIndex) { var oContentControl = arrContentControls[nIndex]; if (c_oAscSdtLevelType.Block === oContentControl.GetContentControlType()) { arrCheckElements.push(oContentControl); arrCheckTypes.push(AscCommon.changestype_ContentControl_Properties); } else if (c_oAscSdtLevelType.Inline === oContentControl.GetContentControlType()) { var oParagraph = oContentControl.GetParagraph(); if (oParagraph) { arrCheckElements.push(oParagraph); arrCheckTypes.push(AscCommon.changestype_Paragraph_Properties); } } } if (false === oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_None, { Type : AscCommon.changestype_2_Element_and_Type_Array, Elements : arrCheckElements, CheckTypes : arrCheckTypes })) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_ChangeContentControlProperties); for (var nIndex = 0, nCount = arrContentControls.length; nIndex < nCount; ++nIndex) { arrContentControls[nIndex].SetContentControlPr(oContentControlPr); } oLogicDocument.Document_UpdateInterfaceState(); oLogicDocument.Document_UpdateSelectionState(); } } else { var isLocked = true; var oContentControl = null; if (undefined === Id) { var oInfo = oLogicDocument.GetSelectedElementsInfo({SkipTOC : true}); var oInlineControl = oInfo.GetInlineLevelSdt(); var oBlockControl = oInfo.GetBlockLevelSdt(); if (oInlineControl) oContentControl = oInlineControl; else if (oBlockControl) oContentControl = oBlockControl; } else { oContentControl = AscCommon.g_oTableId.Get_ById(Id); } if (oContentControl && oContentControl.GetContentControlType) { if (c_oAscSdtLevelType.Block === oContentControl.GetContentControlType()) { isLocked = oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_None, { Type : AscCommon.changestype_2_ElementsArray_and_Type, Elements : [oContentControl], CheckType : AscCommon.changestype_ContentControl_Properties }); } else if (c_oAscSdtLevelType.Inline === oContentControl.GetContentControlType()) { var oParagraph = oContentControl.GetParagraph(); if (oParagraph) { isLocked = oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_None, { Type : AscCommon.changestype_2_ElementsArray_and_Type, Elements : [oParagraph], CheckType : AscCommon.changestype_Paragraph_Properties }); } } } if (false === isLocked) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_ChangeContentControlProperties); oContentControl.SetContentControlPr(oContentControlPr); oLogicDocument.Document_UpdateInterfaceState(); oLogicDocument.Document_UpdateSelectionState(); } } }; asc_docs_api.prototype.asc_IsContentControl = function() { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return false; var oInfo = oLogicDocument.GetSelectedElementsInfo({SkipTOC : true}); return (oInfo.GetInlineLevelSdt() || oInfo.GetBlockLevelSdt() ? true : false); }; asc_docs_api.prototype.asc_GetContentControlProperties = function() { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return null; var oInfo = oLogicDocument.GetSelectedElementsInfo({SkipTOC : true}); var oInlineControl = oInfo.GetInlineLevelSdt(); var oBlockControl = oInfo.GetBlockLevelSdt(); var oContentControl = null; if (oInlineControl) oContentControl = oInlineControl; else if (oBlockControl) oContentControl = oBlockControl; return oContentControl ? oContentControl.GetContentControlPr() : null; }; asc_docs_api.prototype.asc_GetCurrentContentControl = function() { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return null; var oInfo = oLogicDocument.GetSelectedElementsInfo({SkipTOC : true}); var oInline = oInfo.GetInlineLevelSdt(); var oBlock = oInfo.GetBlockLevelSdt(); if (oInline) return oInline.GetId(); if (oBlock) return oBlock.GetId(); return null; }; asc_docs_api.prototype.sync_ContentControlCallback = function(oContentControlPr) { this.SelectedObjectsStack[this.SelectedObjectsStack.length] = new asc_CSelectedObject(c_oAscTypeSelectElement.ContentControl, oContentControlPr); }; asc_docs_api.prototype.asc_SetGlobalContentControlHighlightColor = function(r, g, b) { var oLogicDocument = this.private_GetLogicDocument(); if (!oLogicDocument) return; // Лок можно не проверять, таким изменения нормально мержаться oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetGlobalSdtHighlightColor); oLogicDocument.SetSdtGlobalColor(r, g, b); oLogicDocument.GetDrawingDocument().ClearCachePages(); oLogicDocument.GetDrawingDocument().FirePaint(); }; asc_docs_api.prototype.sync_OnChangeSdtGlobalSettings = function() { this.sendEvent("asc_onChangeSdtGlobalSettings"); }; asc_docs_api.prototype.asc_GetGlobalContentControlHighlightColor = function() { var oLogicDocument = this.private_GetLogicDocument(); if (!oLogicDocument) return new Asc.asc_CColor(0, 0, 0); var oColor = oLogicDocument.GetSdtGlobalColor(); return new Asc.asc_CColor(oColor.r, oColor.g, oColor.b); }; asc_docs_api.prototype.asc_SetGlobalContentControlShowHighlight = function(isShow) { var oLogicDocument = this.private_GetLogicDocument(); if (!oLogicDocument) return; // Лок можно не проверять, таким изменения нормально мержаться oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetGlobalSdtShowHighlight); oLogicDocument.SetSdtGlobalShowHighlight(isShow); oLogicDocument.GetDrawingDocument().ClearCachePages(); oLogicDocument.GetDrawingDocument().FirePaint(); }; asc_docs_api.prototype.asc_GetGlobalContentControlShowHighlight = function() { var oLogicDocument = this.private_GetLogicDocument(); if (!oLogicDocument) return false; return oLogicDocument.GetSdtGlobalShowHighlight(); }; asc_docs_api.prototype.asc_UncheckContentControlButtons = function() { var _controls = this.WordControl.m_oDrawingDocument.ContentControlObjects; for (var i = 0; i < _controls.length; i++) { _controls[i].ActiveButtonIndex = -2; } this.WordControl.ShowOverlay(); this.WordControl.StartUpdateOverlay(); this.WordControl.OnUpdateOverlay(); this.WordControl.EndUpdateOverlay(); }; asc_docs_api.prototype.asc_BeginViewModeInReview = function(isFinal) { this.WordControl.m_oLogicDocument.BeginViewModeInReview(isFinal); }; asc_docs_api.prototype.asc_EndViewModeInReview = function() { this.WordControl.m_oLogicDocument.EndViewModeInReview(); }; asc_docs_api.prototype.asc_ShowDocumentOutline = function() { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; oLogicDocument.DocumentOutline.SetUse(true); return oLogicDocument.DocumentOutline; }; asc_docs_api.prototype.asc_HideDocumentOutline = function() { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; oLogicDocument.DocumentOutline.SetUse(false); }; asc_docs_api.prototype.sync_OnDocumentOutlineUpdate = function() { this.sendEvent("asc_onDocumentOutlineUpdate"); }; asc_docs_api.prototype.sync_OnDocumentOutlineCurrentPosition = function(nIndex) { this.sendEvent("asc_onDocumentOutlineCurrentPosition", nIndex); }; asc_docs_api.prototype.sync_OnDocumentOutlineUpdateAdd = function(nIndex) { this.sendEvent("asc_onDocumentOutlineUpdateAdd", nIndex); }; asc_docs_api.prototype.sync_OnDocumentOutlineUpdateChange = function(nIndex) { this.sendEvent("asc_onDocumentOutlineUpdateChange", nIndex); }; asc_docs_api.prototype.sync_OnDocumentOutlineUpdateRemove = function(nIndex) { this.sendEvent("asc_onDocumentOutlineUpdateRemove", nIndex); }; asc_docs_api.prototype.asc_AddTableOfContents = function(sHeading, oPr) { AscFonts.FontPickerByCharacter.checkText(sHeading, this, function() { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; var oTOC = oLogicDocument.GetTableOfContents(); if (oTOC instanceof AscCommonWord.CBlockLevelSdt && oTOC.IsBuiltInUnique()) { if (oPr) this.asc_SetTableOfContentsPr(oPr); return; } this.WordControl.m_oLogicDocument.AddTableOfContents(sHeading, oPr); }); }; asc_docs_api.prototype.asc_RemoveTableOfContents = function(oTOC) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; if (!oTOC) { oTOC = oLogicDocument.GetTableOfContents(); if (!oTOC) return; } if (oTOC instanceof AscCommonWord.CBlockLevelSdt) { this.asc_RemoveContentControl(oTOC.GetId()); } else if (oTOC instanceof AscCommonWord.CComplexField) { this.asc_RemoveComplexField(oTOC); } }; asc_docs_api.prototype.asc_GetTableOfContentsPr = function(isCurrent) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; var oTOC = oLogicDocument.GetTableOfContents(isCurrent); if (!oTOC) return; if (oTOC instanceof AscCommonWord.CBlockLevelSdt) { var oInnerTOC = oTOC.GetInnerTableOfContents(); if (!(oInnerTOC instanceof AscCommonWord.CComplexField)) { // Специальнный случай, когда у нас есть контейнер помеченный как TOC, но самого TOC внутри нет // посылаем в интерфейс класс так, чтобы с ним все равно можно было работать (например, удалить его) var oPr = new Asc.CTableOfContentsPr(); oPr.InitFromSdtTOC(oTOC); return oPr; } oTOC = oInnerTOC; } if (oTOC instanceof AscCommonWord.CComplexField) { var oPr = new Asc.CTableOfContentsPr(); oPr.InitFromTOCInstruction(oTOC); oPr.CheckStylesType(oLogicDocument.GetStyles()); return oPr; } return null; }; asc_docs_api.prototype.asc_SetTableOfContentsPr = function(oPr) { if (!(oPr instanceof Asc.CTableOfContentsPr)) return; var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; var oTOC = oPr.ComplexField; if (!oTOC) { oTOC = oLogicDocument.GetTableOfContents(); if (!oTOC) return; } if (oTOC instanceof AscCommonWord.CBlockLevelSdt) { var oInnerTOC = oTOC.GetInnerTableOfContents(); if (!oInnerTOC) { oLogicDocument.AddTableOfContents(null, oPr, oTOC); return; } oTOC = oInnerTOC; } if (!oTOC) return; var oStyles = oLogicDocument.GetStyles(); var nStylesType = oPr.get_StylesType(); var isNeedChangeStyles = (Asc.c_oAscTOCStylesType.Current !== nStylesType && nStylesType !== oStyles.GetTOCStylesType()); oTOC.SelectField(); var isLocked = true; if (isNeedChangeStyles) { isLocked = oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Paragraph_Content, { Type : AscCommon.changestype_2_AdditionalTypes, Types : [AscCommon.changestype_Document_Styles] }); } else { isLocked = oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Paragraph_Content) } if (!isLocked) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetComplexFieldPr); if (isNeedChangeStyles) oStyles.SetTOCStylesType(nStylesType); oTOC.SetPr(oPr); oTOC.Update(); oLogicDocument.Recalculate(); oLogicDocument.Document_UpdateInterfaceState(); oLogicDocument.Document_UpdateSelectionState(); } }; asc_docs_api.prototype.asc_UpdateTableOfContents = function(isUpdatePageNumbers, oTOC) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; if (!oTOC) { oTOC = oLogicDocument.GetTableOfContents(); if (!oTOC) return; } if (oTOC instanceof AscCommonWord.CBlockLevelSdt) oTOC = oTOC.GetInnerTableOfContents(); if (!oTOC) return; oTOC.SelectField(); if (isUpdatePageNumbers) { if (false === oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Paragraph_Content)) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_UpdateTableOfContents); var arrParagraphs = oLogicDocument.GetCurrentParagraph(false, true); for (var nParaIndex = 0, nParasCount = arrParagraphs.length; nParaIndex < nParasCount; ++nParaIndex) { var arrPageNumbers = arrParagraphs[nParaIndex].GetComplexFieldsArrayByType(AscCommonWord.fieldtype_PAGEREF); for (var nRefIndex = 0, nRefsCount = arrPageNumbers.length; nRefIndex < nRefsCount; ++nRefIndex) { arrPageNumbers[nRefIndex].Update(); } } oLogicDocument.Recalculate(); oLogicDocument.Document_UpdateInterfaceState(); oLogicDocument.Document_UpdateSelectionState(); } } else { if (false === oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Document_Content)) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_UpdateTableOfContents); oTOC.Update(); oLogicDocument.Recalculate(); oLogicDocument.Document_UpdateInterfaceState(); oLogicDocument.Document_UpdateSelectionState(); } } }; asc_docs_api.prototype.asc_GetCurrentComplexField = function() { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; return oLogicDocument.GetCurrentComplexField(); }; asc_docs_api.prototype.asc_UpdateComplexField = function(oComplexField) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument || !(oComplexField instanceof AscCommonWord.CComplexField || oComplexField instanceof AscCommonWord.ParaPageNum || oComplexField instanceof AscCommonWord.ParaPageCount)) return; if (oComplexField instanceof AscCommonWord.ParaPageNum || oComplexField instanceof AscCommonWord.ParaPageCount) { var oRun = oComplexField.GetParent(); if (!oRun) return; var nInRunPos = oRun.GetElementPosition(oComplexField); if (-1 === nInRunPos) return; var oParagraph = oRun.GetParagraph(); if (!oParagraph) return; if (false === oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_None, { Type : AscCommon.changestype_2_ElementsArray_and_Type, Elements : [oParagraph], CheckType : AscCommon.changestype_Paragraph_Content })) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetComplexFieldPr); oRun.RemoveFromContent(nInRunPos, 1); oRun.AddToContent(nInRunPos, oComplexField instanceof AscCommonWord.ParaPageNum ? new AscCommonWord.ParaPageNum() : new AscCommonWord.ParaPageCount(oLogicDocument.GetPagesCount())); oLogicDocument.Recalculate(); oLogicDocument.Document_UpdateInterfaceState(); oLogicDocument.Document_UpdateSelectionState(); } } else { oComplexField.SelectField(); if (false === oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Paragraph_Content)) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetComplexFieldPr); oComplexField.Update(); oLogicDocument.Recalculate(); oLogicDocument.Document_UpdateInterfaceState(); oLogicDocument.Document_UpdateSelectionState(); } } }; asc_docs_api.prototype.asc_RemoveComplexField = function(oComplexField) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oComplexField || !oLogicDocument) return; if (oComplexField instanceof AscCommonWord.ParaPageNum || oComplexField instanceof AscCommonWord.ParaPageCount) { var oRun = oComplexField.GetParent(); if (!oRun) return; var nInRunPos = oRun.GetElementPosition(oComplexField); if (-1 === nInRunPos) return; var oParagraph = oRun.GetParagraph(); if (!oParagraph) return; if (false === oLogicDocument.Document_Is_SelectionLocked({ Type : AscCommon.changestype_2_ElementsArray_and_Type, Elements : [oParagraph], CheckType : AscCommon.changestype_Paragraph_Content })) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetComplexFieldPr); oRun.RemoveFromContent(nInRunPos, 1); oLogicDocument.Recalculate(); oLogicDocument.Document_UpdateInterfaceState(); oLogicDocument.Document_UpdateSelectionState(); } } else { oComplexField.SelectField(); if (false === oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Remove)) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_RemoveComplexField); oComplexField.RemoveField(); oLogicDocument.Recalculate(); oLogicDocument.Document_UpdateInterfaceState(); oLogicDocument.Document_UpdateSelectionState(); } } }; asc_docs_api.prototype.asc_SetComplexFieldPr = function(oComplexField, oPr, isUpdate) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument || !oPr || !(oComplexField instanceof AscCommonWord.CComplexField || oComplexField instanceof AscCommonWord.ParaPageNum || oComplexField instanceof AscCommonWord.ParaPageCount)) return; if (oComplexField instanceof AscCommonWord.ParaPageNum || oComplexField instanceof AscCommonWord.ParaPageCount) return; oComplexField.SelectField(); if (false === oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Paragraph_Content)) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetComplexFieldPr); oComplexField.SetPr(oPr); if (isUpdate) oComplexField.Update(); oLogicDocument.Recalculate(); oLogicDocument.Document_UpdateInterfaceState(); oLogicDocument.Document_UpdateSelectionState(); } }; asc_docs_api.prototype.asc_GetBookmarksManager = function() { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return null; var oManager = oLogicDocument.GetBookmarksManager(); oManager.Update(); return oManager; }; asc_docs_api.prototype.asc_GetHeadingLevel = function(sStyleName) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument || !sStyleName) return -1; return oLogicDocument.GetStyles().GetHeadingLevelByName(sStyleName); }; asc_docs_api.prototype.asc_GetStylesArray = function() { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return []; return oLogicDocument.GetStyles().GetAscStylesArray(); }; asc_docs_api.prototype.asc_SetAutomaticBulletedLists = function(isAuto) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; return oLogicDocument.SetAutomaticBulletedLists(isAuto); }; asc_docs_api.prototype.asc_SetAutomaticNumberedLists = function(isAuto) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; return oLogicDocument.SetAutomaticNumberedLists(isAuto); }; asc_docs_api.prototype.asc_SetAutoCorrectSmartQuotes = function(isSmartQuotes) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; return oLogicDocument.SetAutoCorrectSmartQuotes(isSmartQuotes); }; asc_docs_api.prototype.asc_SetAutoCorrectHyphensWithDash = function(isReplace) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return; return oLogicDocument.SetAutoCorrectHyphensWithDash(isReplace); }; // input asc_docs_api.prototype.Begin_CompositeInput = function() { if (this.WordControl.m_oLogicDocument) return this.WordControl.m_oLogicDocument.Begin_CompositeInput(); return null; }; asc_docs_api.prototype.Add_CompositeText = function(nCharCode) { if (this.WordControl.m_oLogicDocument) return this.WordControl.m_oLogicDocument.Add_CompositeText(nCharCode); return null; }; asc_docs_api.prototype.Remove_CompositeText = function(nCount) { if (this.WordControl.m_oLogicDocument) return this.WordControl.m_oLogicDocument.Remove_CompositeText(nCount); return null; }; asc_docs_api.prototype.Replace_CompositeText = function(arrCharCodes) { if (this.WordControl.m_oLogicDocument) return this.WordControl.m_oLogicDocument.Replace_CompositeText(arrCharCodes); return null; }; asc_docs_api.prototype.Set_CursorPosInCompositeText = function(nPos) { if (this.WordControl.m_oLogicDocument) return this.WordControl.m_oLogicDocument.Set_CursorPosInCompositeText(nPos); return null; }; asc_docs_api.prototype.Get_CursorPosInCompositeText = function() { if (this.WordControl.m_oLogicDocument) return this.WordControl.m_oLogicDocument.Get_CursorPosInCompositeText(); return 0; }; asc_docs_api.prototype.End_CompositeInput = function() { if (this.WordControl.m_oLogicDocument) return this.WordControl.m_oLogicDocument.End_CompositeInput(); return null; }; asc_docs_api.prototype.Get_MaxCursorPosInCompositeText = function() { if (this.WordControl.m_oLogicDocument) return this.WordControl.m_oLogicDocument.Get_MaxCursorPosInCompositeText(); return 0; }; asc_docs_api.prototype.Input_UpdatePos = function() { if (this.WordControl.m_oLogicDocument) this.WordControl.m_oDrawingDocument.MoveTargetInInputContext(); }; asc_docs_api.prototype.onKeyDown = function(e) { return this.WordControl.onKeyDown(e); }; asc_docs_api.prototype.onKeyPress = function(e) { return this.WordControl.onKeyPress(e); }; asc_docs_api.prototype.onKeyUp = function(e) { return this.WordControl.onKeyUp(e); }; asc_docs_api.prototype.getAddedTextOnKeyDown = function(e) { var oLogicDocument = this.WordControl.m_oLogicDocument; if (!oLogicDocument) return []; return oLogicDocument.GetAddedTextOnKeyDown(e); }; window["asc_docs_api"] = asc_docs_api; window["asc_docs_api"].prototype["asc_nativeOpenFile"] = function(base64File, version) { this.SpellCheckUrl = ''; this.User = new AscCommon.asc_CUser(); this.User.setId("TM"); this.User.setUserName("native"); this.WordControl.m_bIsRuler = false; this.WordControl.Init(); this.InitEditor(); this.DocumentType = 2; this.LoadedObjectDS = this.WordControl.m_oLogicDocument.CopyStyle(); g_oIdCounter.Set_Load(true); var openParams = {checkFileSize : /*this.isMobileVersion*/false, charCount : 0, parCount : 0}; var oBinaryFileReader = new AscCommonWord.BinaryFileReader(this.WordControl.m_oLogicDocument, openParams); if (undefined !== version) AscCommon.CurFileVersion = version; if (oBinaryFileReader.Read(base64File)) { g_oIdCounter.Set_Load(false); this.LoadedObject = 1; } else this.sendEvent("asc_onError", c_oAscError.ID.MobileUnexpectedCharCount, c_oAscError.Level.Critical); if (window["NATIVE_EDITOR_ENJINE"] === true && undefined != window["native"]) { AscCommon.CDocsCoApi.prototype.askSaveChanges = function(callback) { callback({"saveLock" : false}); }; AscCommon.CDocsCoApi.prototype.saveChanges = function(arrayChanges, deleteIndex, excelAdditionalInfo) { if (window["native"]["SaveChanges"]) window["native"]["SaveChanges"](arrayChanges.join("\",\""), deleteIndex, arrayChanges.length); }; } if (undefined != window["Native"]) return; //callback this.DocumentOrientation = (null == editor.WordControl.m_oLogicDocument) ? true : !editor.WordControl.m_oLogicDocument.Orientation; var sizeMM; if (this.DocumentOrientation) sizeMM = DocumentPageSize.getSize(AscCommon.Page_Width, AscCommon.Page_Height); else sizeMM = DocumentPageSize.getSize(AscCommon.Page_Height, AscCommon.Page_Width); this.sync_DocSizeCallback(sizeMM.w_mm, sizeMM.h_mm); this.sync_PageOrientCallback(editor.get_DocumentOrientation()); if (this.GenerateNativeStyles !== undefined) { this.GenerateNativeStyles(); if (this.WordControl.m_oDrawingDocument.CheckTableStylesOne !== undefined) this.WordControl.m_oDrawingDocument.CheckTableStylesOne(); } }; window["asc_docs_api"].prototype["asc_nativeCalculateFile"] = function() { if (null == this.WordControl.m_oLogicDocument) return; var Document = this.WordControl.m_oLogicDocument; if ((window["NATIVE_EDITOR_ENJINE"] === undefined) && this.isApplyChangesOnOpenEnabled) { this.isApplyChangesOnOpenEnabled = false; if (1 === AscCommon.CollaborativeEditing.m_nUseType) { this.isApplyChangesOnOpen = true; AscCommon.CollaborativeEditing.Apply_Changes(); AscCommon.CollaborativeEditing.Release_Locks(); return; } } Document.CurPos.ContentPos = 0; var RecalculateData = { Inline : {Pos : 0, PageNum : 0}, Flow : [], HdrFtr : [], Drawings : { All : true, Map : {} } }; Document.Recalculate(false, false, RecalculateData); Document.Document_UpdateInterfaceState(); //Document.Document_UpdateRulersState(); Document.Document_UpdateSelectionState(); this.ShowParaMarks = false; }; window["asc_docs_api"].prototype["asc_nativeApplyChanges"] = function(changes) { this._coAuthoringSetChanges(changes, new AscCommonWord.CDocumentColor(191, 255, 199)); AscCommon.CollaborativeEditing.Apply_OtherChanges(); }; window["asc_docs_api"].prototype.asc_SetSilentMode = function(bEnabled, bAddition) { if (!this.WordControl.m_oLogicDocument) return; if (bEnabled) this.WordControl.m_oLogicDocument.Start_SilentMode(); else this.WordControl.m_oLogicDocument.End_SilentMode(bAddition); }; window["asc_docs_api"].prototype["asc_nativeApplyChanges2"] = function(data, isFull) { // Чтобы заново созданные параграфы не отображались залоченными g_oIdCounter.Set_Load(true); var stream = new AscCommon.FT_Stream2(data, data.length); stream.obj = null; var _color = new AscCommonWord.CDocumentColor(191, 255, 199); // Применяем изменения, пока они есть var _count = stream.GetLong(); var _pos = 4; for (var i = 0; i < _count; i++) { if (window["NATIVE_EDITOR_ENJINE"] === true && window["native"]["CheckNextChange"]) { if (!window["native"]["CheckNextChange"]()) break; } var nChangeLen = stream.GetLong(); _pos += 4; stream.size = _pos + nChangeLen; var ClassId = stream.GetString2(); var Class = AscCommon.g_oTableId.Get_ById(ClassId); var nReaderPos = stream.GetCurPos(); var nChangeType = stream.GetLong(); if (Class) { var fChangesClass = AscDFH.changesFactory[nChangeType]; if (fChangesClass) { var oChange = new fChangesClass(Class); oChange.ReadFromBinary(stream); if (true === AscCommon.CollaborativeEditing.private_AddOverallChange(oChange, false)) oChange.Load(_color); } else { AscCommon.CollaborativeEditing.private_AddOverallChange(data, false); stream.Seek(nReaderPos); stream.Seek2(nReaderPos); Class.Load_Changes(stream, null, _color); } } _pos += nChangeLen; stream.Seek2(_pos); stream.size = data.length; } if (isFull) { AscCommon.CollaborativeEditing.m_aChanges = []; // У новых элементов выставляем указатели на другие классы AscCommon.CollaborativeEditing.Apply_LinkData(); // Делаем проверки корректности новых изменений AscCommon.CollaborativeEditing.Check_MergeData(); AscCommon.CollaborativeEditing.OnEnd_ReadForeignChanges(); if (window["NATIVE_EDITOR_ENJINE"] === true && window["native"]["AddImageInChanges"]) { var _new_images = AscCommon.CollaborativeEditing.m_aNewImages; var _new_images_len = _new_images.length; for (var nImage = 0; nImage < _new_images_len; nImage++) window["native"]["AddImageInChanges"](_new_images[nImage]); } } g_oIdCounter.Set_Load(false); }; window["asc_docs_api"].prototype["asc_nativeGetFile"] = function() { var oBinaryFileWriter = new AscCommonWord.BinaryFileWriter(this.WordControl.m_oLogicDocument); return oBinaryFileWriter.Write(); }; window["asc_docs_api"].prototype["asc_nativeGetFile2"] = function() { var oBinaryFileWriter = new AscCommonWord.BinaryFileWriter(this.WordControl.m_oLogicDocument); return oBinaryFileWriter.Write(true, true); }; window["asc_docs_api"].prototype.asc_nativeGetFile3 = function() { var oBinaryFileWriter = new AscCommonWord.BinaryFileWriter(this.WordControl.m_oLogicDocument); return { data: oBinaryFileWriter.Write(true, true), header: (AscCommon.c_oSerFormat.Signature + ";v" + Asc.c_nVersionNoBase64 + ";" + oBinaryFileWriter.memory.GetCurPosition() + ";") }; }; window["asc_docs_api"].prototype["asc_nativeGetFileData"] = function() { var oBinaryFileWriter = new AscCommonWord.BinaryFileWriter(this.WordControl.m_oLogicDocument); var _memory = oBinaryFileWriter.memory; oBinaryFileWriter.Write(true); var _header = AscCommon.c_oSerFormat.Signature + ";v" + Asc.c_nVersionNoBase64 + ";" + _memory.GetCurPosition() + ";"; window["native"]["Save_End"](_header, _memory.GetCurPosition()); return _memory.ImData.data; }; window["asc_docs_api"].prototype["asc_nativeGetHtml"] = function() { var _old = PasteElementsId.copyPasteUseBinary; PasteElementsId.copyPasteUseBinary = false; this.WordControl.m_oLogicDocument.SelectAll(); var oCopyProcessor = new AscCommon.CopyProcessor(this); oCopyProcessor.Start(); var _ret = "" + oCopyProcessor.getInnerHtml() + ""; this.WordControl.m_oLogicDocument.RemoveSelection(); PasteElementsId.copyPasteUseBinary = _old; return _ret; }; window["asc_docs_api"].prototype["asc_AddHtml"] = function(_iframeId) { var ifr = document.getElementById(_iframeId); var frameWindow = window.frames[_iframeId]; if (frameWindow) { if (null != frameWindow.document && null != frameWindow.document.body) { ifr.style.display = "block"; this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(); this.asc_SetSilentMode(true); AscCommon.Editor_Paste_Exec(this, AscCommon.c_oAscClipboardDataFormat.HtmlElement, frameWindow.document.body, ifr); this.asc_SetSilentMode(false); } } if (ifr) document.body.removeChild(ifr); }; window["asc_docs_api"].prototype["asc_nativeCalculate"] = function() { }; window["asc_docs_api"].prototype["asc_nativePrint"] = function(_printer, _page) { if (undefined === _printer && _page === undefined) { if (undefined !== window["AscDesktopEditor"]) { var _drawing_document = this.WordControl.m_oDrawingDocument; var pagescount = Math.min(_drawing_document.m_lPagesCount, _drawing_document.m_lCountCalculatePages); window["AscDesktopEditor"]["Print_Start"](this.DocumentUrl, pagescount, "", this.getCurrentPage()); var oDocRenderer = new AscCommon.CDocumentRenderer(); oDocRenderer.InitPicker(AscCommon.g_oTextMeasurer.m_oManager); oDocRenderer.VectorMemoryForPrint = new AscCommon.CMemory(); var bOldShowMarks = this.ShowParaMarks; this.ShowParaMarks = false; for (var i = 0; i < pagescount; i++) { oDocRenderer.Memory.Seek(0); oDocRenderer.VectorMemoryForPrint.ClearNoAttack(); var page = _drawing_document.m_arrPages[i]; oDocRenderer.BeginPage(page.width_mm, page.height_mm); this.WordControl.m_oLogicDocument.DrawPage(i, oDocRenderer); oDocRenderer.EndPage(); window["AscDesktopEditor"]["Print_Page"](oDocRenderer.Memory.GetBase64Memory(), page.width_mm, page.height_mm); } this.ShowParaMarks = bOldShowMarks; window["AscDesktopEditor"]["Print_End"](); } return; } var page = this.WordControl.m_oDrawingDocument.m_arrPages[_page]; _printer.BeginPage(page.width_mm, page.height_mm); this.WordControl.m_oLogicDocument.DrawPage(_page, _printer); _printer.EndPage(); }; window["asc_docs_api"].prototype["asc_nativePrintPagesCount"] = function() { return this.WordControl.m_oDrawingDocument.m_lPagesCount; }; window["asc_docs_api"].prototype["asc_nativeGetPDF"] = function(_param) { var pagescount = this["asc_nativePrintPagesCount"](); if (0x0100 & _param) pagescount = 1; var _renderer = new AscCommon.CDocumentRenderer(); _renderer.InitPicker(AscCommon.g_oTextMeasurer.m_oManager); _renderer.VectorMemoryForPrint = new AscCommon.CMemory(); var _bOldShowMarks = this.ShowParaMarks; this.ShowParaMarks = false; for (var i = 0; i < pagescount; i++) { this["asc_nativePrint"](_renderer, i); } this.ShowParaMarks = _bOldShowMarks; window["native"]["Save_End"]("", _renderer.Memory.GetCurPosition()); return _renderer.Memory.data; }; // cool api (autotests) window["asc_docs_api"].prototype["Add_Text"] = function(_text) { this.WordControl.m_oLogicDocument.TextBox_Put(_text); }; window["asc_docs_api"].prototype["Add_NewParagraph"] = function() { var LogicDocument = this.WordControl.m_oLogicDocument; if (false === LogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Document_Content_Add)) { LogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_EnterButton); LogicDocument.AddNewParagraph(true); } }; window["asc_docs_api"].prototype["Cursor_MoveLeft"] = function() { this.WordControl.m_oLogicDocument.MoveCursorLeft(); }; window["asc_docs_api"].prototype["Cursor_MoveRight"] = function() { this.WordControl.m_oLogicDocument.MoveCursorRight(); }; window["asc_docs_api"].prototype["Cursor_MoveUp"] = function() { this.WordControl.m_oLogicDocument.MoveCursorUp(); }; window["asc_docs_api"].prototype["Cursor_MoveDown"] = function() { this.WordControl.m_oLogicDocument.MoveCursorDown(); }; window["asc_docs_api"].prototype["Get_DocumentRecalcId"] = function() { return this.WordControl.m_oLogicDocument.RecalcId; }; window["asc_docs_api"].prototype["asc_IsSpellCheckCurrentWord"] = function() { return this.IsSpellCheckCurrentWord; }; window["asc_docs_api"].prototype["asc_putSpellCheckCurrentWord"] = function(value) { this.IsSpellCheckCurrentWord = value; }; window["asc_docs_api"].prototype["asc_setParagraphStylesSizes"] = function(width, height) { if (window["AscCommonWord"] && window["AscCommonWord"].GlobalSkin) { AscCommonWord.GlobalSkin.STYLE_THUMBNAIL_WIDTH = width; AscCommonWord.GlobalSkin.STYLE_THUMBNAIL_HEIGHT = height; } else { AscCommon.TEMP_STYLE_THUMBNAIL_WIDTH = width; AscCommon.TEMP_STYLE_THUMBNAIL_HEIGHT = height; } }; asc_docs_api.prototype.SetDrawImagePlaceContents = function(id, props) { if (this.WordControl.m_oDrawingDocument) this.WordControl.m_oDrawingDocument.SetDrawImagePlaceContents(id, props); }; /************************* Plugins "methods" ************************/ window["asc_docs_api"].prototype["pluginMethod_OpenFile"] = function(binaryFile, fields, baseUrl) { this.asc_CloseFile(); this.FontLoader.IsLoadDocumentFonts2 = true; this.OpenDocument2(this.DocumentUrl, binaryFile); if (fields) this.asc_SetBlockChainData(fields); this.restrictions = Asc.c_oAscRestrictionType.OnlyForms; }; window["asc_docs_api"].prototype["pluginMethod_GetFields"] = function() { return this.asc_GetBlockChainData(); }; window["asc_docs_api"].prototype["pluginMethod_InsertAndReplaceContentControls"] = function(arrDocuments) { var _worker = new CContentControlPluginWorker(this, arrDocuments); return _worker.start(); }; window["asc_docs_api"].prototype["pluginMethod_RemoveContentControls"] = function(arrDocuments) { var _worker = new CContentControlPluginWorker(this, arrDocuments); return _worker.delete(); }; window["asc_docs_api"].prototype["pluginMethod_GetAllContentControls"] = function() { var _blocks = this.WordControl.m_oLogicDocument.GetAllContentControls(); var _ret = []; var _obj = null; for (var i = 0; i < _blocks.length; i++) { _obj = _blocks[i].GetContentControlPr(); _ret.push({"Tag" : _obj.Tag, "Id" : _obj.Id, "Lock" : _obj.Lock, "InternalId" : _obj.InternalId}); } return _ret; }; window["asc_docs_api"].prototype["pluginMethod_AddContentControl"] = function(type, pr) { var _content_control_pr; if (pr) { _content_control_pr = new AscCommon.CContentControlPr(); _content_control_pr.Id = pr["Id"]; _content_control_pr.Tag = pr["Tag"]; _content_control_pr.Lock = pr["Lock"]; } var _obj = this.asc_AddContentControl(type, _content_control_pr); if (!_obj) return undefined; return {"Tag" : _obj.Tag, "Id" : _obj.Id, "Lock" : _obj.Lock, "InternalId" : _obj.InternalId}; }; window["asc_docs_api"].prototype["pluginMethod_RemoveContentControl"] = function(id) { return this.asc_RemoveContentControlWrapper(id); }; window["asc_docs_api"].prototype["pluginMethod_GetCurrentContentControl"] = function() { return this.asc_GetCurrentContentControl(); }; window["asc_docs_api"].prototype["pluginMethod_SelectContentControl"] = function(id) { var oLogicDocument = this.private_GetLogicDocument(); if (!oLogicDocument) return; oLogicDocument.SelectContentControl(id); }; window["asc_docs_api"].prototype["pluginMethod_GetSelectedText"] = function() { var oLogicDocument = this.private_GetLogicDocument(); if (!oLogicDocument) return; return oLogicDocument.GetSelectedText(false, {NewLine : true, NewLineParagraph : true}); }; window["asc_docs_api"].prototype["pluginMethod_RemoveSelectedContent"] = function() { var oLogicDocument = this.private_GetLogicDocument(); if (!oLogicDocument || !oLogicDocument.IsSelectionUse()) return; if (false === oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Remove, null, true, oLogicDocument.IsFormFieldEditing())) { oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_BackSpaceButton); oLogicDocument.Remove(-1, true); } }; window["asc_docs_api"].prototype["pluginMethod_AddComment"] = function(sMessage, sAuthorName) { var oData = new asc_CCommentDataWord(); if (sMessage) oData.asc_putText(sMessage); if (sAuthorName) oData.asc_putUserName(sAuthorName); this.asc_addComment(oData); }; /** * Find and replace text. * @param {Object} oProperties The properties for find and replace. * @param {string} oProperties.searchString Search string. * @param {string} oProperties.replaceString Replacement string. * @param {string} [oProperties.matchCase=true] * */ window["asc_docs_api"].prototype["pluginMethod_SearchAndReplace"] = function(oProperties) { var sSearch = oProperties["searchString"]; var sReplace = oProperties["replaceString"]; var isMatchCase = undefined !== oProperties["matchCase"] ? oProperties.matchCase : true; var oSearchEngine = this.WordControl.m_oLogicDocument.Search(sSearch, {MatchCase : isMatchCase}); if (!oSearchEngine) return; this.WordControl.m_oLogicDocument.Search_Replace(sReplace, true, null, false); }; window["asc_docs_api"].prototype["pluginMethod_GetFileHTML"] = function() { return this.ContentToHTML(true); }; /********************************************************************/ asc_docs_api.prototype.asc_OnHideContextMenu = function() { if (this.WordControl.MobileTouchManager) { this.WordControl.checkBodyOffset(); this.WordControl.MobileTouchManager.showKeyboard(); } }; asc_docs_api.prototype.asc_OnShowContextMenu = function() { if (this.WordControl.MobileTouchManager) { this.WordControl.checkBodyOffset(); } }; asc_docs_api.prototype.getDefaultFontFamily = function () { //TODO переделать и отдавать дефолтовый шрифт var defaultFont = "Arial"; return defaultFont; }; asc_docs_api.prototype.getDefaultFontSize = function () { //TODO переделать и отдавать дефолтовый шрифт var defaultSize = 11; return defaultSize; }; //-------------------------------------------------------------export--------------------------------------------------- window['Asc'] = window['Asc'] || {}; CAscSection.prototype['get_PageWidth'] = CAscSection.prototype.get_PageWidth; CAscSection.prototype['get_PageHeight'] = CAscSection.prototype.get_PageHeight; CAscSection.prototype['get_MarginLeft'] = CAscSection.prototype.get_MarginLeft; CAscSection.prototype['get_MarginRight'] = CAscSection.prototype.get_MarginRight; CAscSection.prototype['get_MarginTop'] = CAscSection.prototype.get_MarginTop; CAscSection.prototype['get_MarginBottom'] = CAscSection.prototype.get_MarginBottom; CHeaderProp.prototype['get_Type'] = CHeaderProp.prototype.get_Type; CHeaderProp.prototype['put_Type'] = CHeaderProp.prototype.put_Type; CHeaderProp.prototype['get_Position'] = CHeaderProp.prototype.get_Position; CHeaderProp.prototype['put_Position'] = CHeaderProp.prototype.put_Position; CHeaderProp.prototype['get_DifferentFirst'] = CHeaderProp.prototype.get_DifferentFirst; CHeaderProp.prototype['put_DifferentFirst'] = CHeaderProp.prototype.put_DifferentFirst; CHeaderProp.prototype['get_DifferentEvenOdd'] = CHeaderProp.prototype.get_DifferentEvenOdd; CHeaderProp.prototype['put_DifferentEvenOdd'] = CHeaderProp.prototype.put_DifferentEvenOdd; CHeaderProp.prototype['get_LinkToPrevious'] = CHeaderProp.prototype.get_LinkToPrevious; CHeaderProp.prototype['get_Locked'] = CHeaderProp.prototype.get_Locked; CHeaderProp.prototype['get_StartPageNumber'] = CHeaderProp.prototype.get_StartPageNumber; CHeaderProp.prototype['put_StartPageNumber'] = CHeaderProp.prototype.put_StartPageNumber; window['Asc']['CMailMergeSendData'] = window['Asc'].CMailMergeSendData = CMailMergeSendData; CMailMergeSendData.prototype['get_From'] = CMailMergeSendData.prototype.get_From; CMailMergeSendData.prototype['put_From'] = CMailMergeSendData.prototype.put_From; CMailMergeSendData.prototype['get_To'] = CMailMergeSendData.prototype.get_To; CMailMergeSendData.prototype['put_To'] = CMailMergeSendData.prototype.put_To; CMailMergeSendData.prototype['get_Subject'] = CMailMergeSendData.prototype.get_Subject; CMailMergeSendData.prototype['put_Subject'] = CMailMergeSendData.prototype.put_Subject; CMailMergeSendData.prototype['get_MailFormat'] = CMailMergeSendData.prototype.get_MailFormat; CMailMergeSendData.prototype['put_MailFormat'] = CMailMergeSendData.prototype.put_MailFormat; CMailMergeSendData.prototype['get_FileName'] = CMailMergeSendData.prototype.get_FileName; CMailMergeSendData.prototype['put_FileName'] = CMailMergeSendData.prototype.put_FileName; CMailMergeSendData.prototype['get_Message'] = CMailMergeSendData.prototype.get_Message; CMailMergeSendData.prototype['put_Message'] = CMailMergeSendData.prototype.put_Message; CMailMergeSendData.prototype['get_RecordFrom'] = CMailMergeSendData.prototype.get_RecordFrom; CMailMergeSendData.prototype['put_RecordFrom'] = CMailMergeSendData.prototype.put_RecordFrom; CMailMergeSendData.prototype['get_RecordTo'] = CMailMergeSendData.prototype.get_RecordTo; CMailMergeSendData.prototype['put_RecordTo'] = CMailMergeSendData.prototype.put_RecordTo; CMailMergeSendData.prototype['get_RecordCount'] = CMailMergeSendData.prototype.get_RecordCount; CMailMergeSendData.prototype['put_RecordCount'] = CMailMergeSendData.prototype.put_RecordCount; CMailMergeSendData.prototype['get_UserId'] = CMailMergeSendData.prototype.get_UserId; CMailMergeSendData.prototype['put_UserId'] = CMailMergeSendData.prototype.put_UserId; window['Asc']['CAscFootnotePr'] = window['Asc'].CAscFootnotePr = CAscFootnotePr; CAscFootnotePr.prototype['get_Pos'] = CAscFootnotePr.prototype.get_Pos; CAscFootnotePr.prototype['put_Pos'] = CAscFootnotePr.prototype.put_Pos; CAscFootnotePr.prototype['get_NumStart'] = CAscFootnotePr.prototype.get_NumStart; CAscFootnotePr.prototype['put_NumStart'] = CAscFootnotePr.prototype.put_NumStart; CAscFootnotePr.prototype['get_NumFormat'] = CAscFootnotePr.prototype.get_NumFormat; CAscFootnotePr.prototype['put_NumFormat'] = CAscFootnotePr.prototype.put_NumFormat; CAscFootnotePr.prototype['get_NumRestart'] = CAscFootnotePr.prototype.get_NumRestart; CAscFootnotePr.prototype['put_NumRestart'] = CAscFootnotePr.prototype.put_NumRestart; window['Asc']['asc_docs_api'] = asc_docs_api; asc_docs_api.prototype['LoadFontsFromServer'] = asc_docs_api.prototype.LoadFontsFromServer; asc_docs_api.prototype['SetCollaborativeMarksShowType'] = asc_docs_api.prototype.SetCollaborativeMarksShowType; asc_docs_api.prototype['GetCollaborativeMarksShowType'] = asc_docs_api.prototype.GetCollaborativeMarksShowType; asc_docs_api.prototype['Clear_CollaborativeMarks'] = asc_docs_api.prototype.Clear_CollaborativeMarks; asc_docs_api.prototype['SetLanguage'] = asc_docs_api.prototype.SetLanguage; asc_docs_api.prototype['asc_GetFontThumbnailsPath'] = asc_docs_api.prototype.asc_GetFontThumbnailsPath; asc_docs_api.prototype['TranslateStyleName'] = asc_docs_api.prototype.TranslateStyleName; asc_docs_api.prototype['CheckChangedDocument'] = asc_docs_api.prototype.CheckChangedDocument; asc_docs_api.prototype['SetUnchangedDocument'] = asc_docs_api.prototype.SetUnchangedDocument; asc_docs_api.prototype['SetDocumentModified'] = asc_docs_api.prototype.SetDocumentModified; asc_docs_api.prototype['isDocumentModified'] = asc_docs_api.prototype.isDocumentModified; asc_docs_api.prototype['asc_isDocumentCanSave'] = asc_docs_api.prototype.asc_isDocumentCanSave; asc_docs_api.prototype['asc_getCanUndo'] = asc_docs_api.prototype.asc_getCanUndo; asc_docs_api.prototype['asc_getCanRedo'] = asc_docs_api.prototype.asc_getCanRedo; asc_docs_api.prototype['sync_BeginCatchSelectedElements'] = asc_docs_api.prototype.sync_BeginCatchSelectedElements; asc_docs_api.prototype['sync_EndCatchSelectedElements'] = asc_docs_api.prototype.sync_EndCatchSelectedElements; asc_docs_api.prototype['getSelectedElements'] = asc_docs_api.prototype.getSelectedElements; asc_docs_api.prototype['sync_ChangeLastSelectedElement'] = asc_docs_api.prototype.sync_ChangeLastSelectedElement; asc_docs_api.prototype['asc_getEditorPermissions'] = asc_docs_api.prototype.asc_getEditorPermissions; asc_docs_api.prototype['asc_setDocInfo'] = asc_docs_api.prototype.asc_setDocInfo; asc_docs_api.prototype['asc_setLocale'] = asc_docs_api.prototype.asc_setLocale; asc_docs_api.prototype['asc_LoadDocument'] = asc_docs_api.prototype.asc_LoadDocument; asc_docs_api.prototype['SetTextBoxInputMode'] = asc_docs_api.prototype.SetTextBoxInputMode; asc_docs_api.prototype['GetTextBoxInputMode'] = asc_docs_api.prototype.GetTextBoxInputMode; asc_docs_api.prototype['ChangeReaderMode'] = asc_docs_api.prototype.ChangeReaderMode; asc_docs_api.prototype['SetReaderModeOnly'] = asc_docs_api.prototype.SetReaderModeOnly; asc_docs_api.prototype['IncreaseReaderFontSize'] = asc_docs_api.prototype.IncreaseReaderFontSize; asc_docs_api.prototype['DecreaseReaderFontSize'] = asc_docs_api.prototype.DecreaseReaderFontSize; asc_docs_api.prototype['CreateCSS'] = asc_docs_api.prototype.CreateCSS; asc_docs_api.prototype['GetCopyPasteDivId'] = asc_docs_api.prototype.GetCopyPasteDivId; asc_docs_api.prototype['ContentToHTML'] = asc_docs_api.prototype.ContentToHTML; asc_docs_api.prototype['InitEditor'] = asc_docs_api.prototype.InitEditor; asc_docs_api.prototype['InitViewer'] = asc_docs_api.prototype.InitViewer; asc_docs_api.prototype['OpenDocument'] = asc_docs_api.prototype.OpenDocument; asc_docs_api.prototype['OpenDocument2'] = asc_docs_api.prototype.OpenDocument2; asc_docs_api.prototype['asc_getDocumentName'] = asc_docs_api.prototype.asc_getDocumentName; asc_docs_api.prototype['asc_registerCallback'] = asc_docs_api.prototype.asc_registerCallback; asc_docs_api.prototype['asc_unregisterCallback'] = asc_docs_api.prototype.asc_unregisterCallback; asc_docs_api.prototype['asc_checkNeedCallback'] = asc_docs_api.prototype.asc_checkNeedCallback; asc_docs_api.prototype['asc_getPropertyEditorShapes'] = asc_docs_api.prototype.asc_getPropertyEditorShapes; asc_docs_api.prototype['asc_getPropertyEditorTextArts'] = asc_docs_api.prototype.asc_getPropertyEditorTextArts; asc_docs_api.prototype['get_PropertyThemeColors'] = asc_docs_api.prototype.get_PropertyThemeColors; asc_docs_api.prototype['_coAuthoringSetChange'] = asc_docs_api.prototype._coAuthoringSetChange; asc_docs_api.prototype['_coAuthoringSetChanges'] = asc_docs_api.prototype._coAuthoringSetChanges; asc_docs_api.prototype['asc_coAuthoringChatSendMessage'] = asc_docs_api.prototype.asc_coAuthoringChatSendMessage; asc_docs_api.prototype['asc_coAuthoringChatGetMessages'] = asc_docs_api.prototype.asc_coAuthoringChatGetMessages; asc_docs_api.prototype['asc_coAuthoringGetUsers'] = asc_docs_api.prototype.asc_coAuthoringGetUsers; asc_docs_api.prototype['asc_coAuthoringDisconnect'] = asc_docs_api.prototype.asc_coAuthoringDisconnect; asc_docs_api.prototype['asc_SpellCheckDisconnect'] = asc_docs_api.prototype.asc_SpellCheckDisconnect; asc_docs_api.prototype['_onUpdateDocumentCanSave'] = asc_docs_api.prototype._onUpdateDocumentCanSave; asc_docs_api.prototype['put_FramePr'] = asc_docs_api.prototype.put_FramePr; asc_docs_api.prototype['asyncFontEndLoaded_MathDraw'] = asc_docs_api.prototype.asyncFontEndLoaded_MathDraw; asc_docs_api.prototype['sendMathTypesToMenu'] = asc_docs_api.prototype.sendMathTypesToMenu; asc_docs_api.prototype['asyncFontEndLoaded_DropCap'] = asc_docs_api.prototype.asyncFontEndLoaded_DropCap; asc_docs_api.prototype['asc_addDropCap'] = asc_docs_api.prototype.asc_addDropCap; asc_docs_api.prototype['removeDropcap'] = asc_docs_api.prototype.removeDropcap; asc_docs_api.prototype['get_TextProps'] = asc_docs_api.prototype.get_TextProps; asc_docs_api.prototype['GetJSONLogicDocument'] = asc_docs_api.prototype.GetJSONLogicDocument; asc_docs_api.prototype['get_ContentCount'] = asc_docs_api.prototype.get_ContentCount; asc_docs_api.prototype['select_Element'] = asc_docs_api.prototype.select_Element; asc_docs_api.prototype['UpdateTextPr'] = asc_docs_api.prototype.UpdateTextPr; asc_docs_api.prototype['UpdateParagraphProp'] = asc_docs_api.prototype.UpdateParagraphProp; asc_docs_api.prototype['asc_Print'] = asc_docs_api.prototype.asc_Print; asc_docs_api.prototype['Undo'] = asc_docs_api.prototype.Undo; asc_docs_api.prototype['Redo'] = asc_docs_api.prototype.Redo; asc_docs_api.prototype['Copy'] = asc_docs_api.prototype.Copy; asc_docs_api.prototype['Update_ParaTab'] = asc_docs_api.prototype.Update_ParaTab; asc_docs_api.prototype['Cut'] = asc_docs_api.prototype.Cut; asc_docs_api.prototype['Paste'] = asc_docs_api.prototype.Paste; asc_docs_api.prototype['Share'] = asc_docs_api.prototype.Share; asc_docs_api.prototype['asc_Save'] = asc_docs_api.prototype.asc_Save; asc_docs_api.prototype['forceSave'] = asc_docs_api.prototype.forceSave; asc_docs_api.prototype['asc_setIsForceSaveOnUserSave'] = asc_docs_api.prototype.asc_setIsForceSaveOnUserSave; asc_docs_api.prototype['asc_DownloadAs'] = asc_docs_api.prototype.asc_DownloadAs; asc_docs_api.prototype['asc_DownloadAsMailMerge'] = asc_docs_api.prototype.asc_DownloadAsMailMerge; asc_docs_api.prototype['asc_DownloadOrigin'] = asc_docs_api.prototype.asc_DownloadOrigin; asc_docs_api.prototype['Resize'] = asc_docs_api.prototype.Resize; asc_docs_api.prototype['AddURL'] = asc_docs_api.prototype.AddURL; asc_docs_api.prototype['Help'] = asc_docs_api.prototype.Help; asc_docs_api.prototype['asc_setAdvancedOptions'] = asc_docs_api.prototype.asc_setAdvancedOptions; asc_docs_api.prototype['asc_decodeBuffer'] = asc_docs_api.prototype.asc_decodeBuffer; asc_docs_api.prototype['SetFontRenderingMode'] = asc_docs_api.prototype.SetFontRenderingMode; asc_docs_api.prototype['startGetDocInfo'] = asc_docs_api.prototype.startGetDocInfo; asc_docs_api.prototype['stopGetDocInfo'] = asc_docs_api.prototype.stopGetDocInfo; asc_docs_api.prototype['sync_DocInfoCallback'] = asc_docs_api.prototype.sync_DocInfoCallback; asc_docs_api.prototype['sync_GetDocInfoStartCallback'] = asc_docs_api.prototype.sync_GetDocInfoStartCallback; asc_docs_api.prototype['sync_GetDocInfoStopCallback'] = asc_docs_api.prototype.sync_GetDocInfoStopCallback; asc_docs_api.prototype['sync_GetDocInfoEndCallback'] = asc_docs_api.prototype.sync_GetDocInfoEndCallback; asc_docs_api.prototype['sync_CanUndoCallback'] = asc_docs_api.prototype.sync_CanUndoCallback; asc_docs_api.prototype['sync_CanRedoCallback'] = asc_docs_api.prototype.sync_CanRedoCallback; asc_docs_api.prototype['can_CopyCut'] = asc_docs_api.prototype.can_CopyCut; asc_docs_api.prototype['sync_CanCopyCutCallback'] = asc_docs_api.prototype.sync_CanCopyCutCallback; asc_docs_api.prototype['setStartPointHistory'] = asc_docs_api.prototype.setStartPointHistory; asc_docs_api.prototype['setEndPointHistory'] = asc_docs_api.prototype.setEndPointHistory; asc_docs_api.prototype['sync_CursorLockCallBack'] = asc_docs_api.prototype.sync_CursorLockCallBack; asc_docs_api.prototype['sync_UndoCallBack'] = asc_docs_api.prototype.sync_UndoCallBack; asc_docs_api.prototype['sync_RedoCallBack'] = asc_docs_api.prototype.sync_RedoCallBack; asc_docs_api.prototype['sync_CopyCallBack'] = asc_docs_api.prototype.sync_CopyCallBack; asc_docs_api.prototype['sync_CutCallBack'] = asc_docs_api.prototype.sync_CutCallBack; asc_docs_api.prototype['sync_PasteCallBack'] = asc_docs_api.prototype.sync_PasteCallBack; asc_docs_api.prototype['sync_ShareCallBack'] = asc_docs_api.prototype.sync_ShareCallBack; asc_docs_api.prototype['sync_SaveCallBack'] = asc_docs_api.prototype.sync_SaveCallBack; asc_docs_api.prototype['sync_DownloadAsCallBack'] = asc_docs_api.prototype.sync_DownloadAsCallBack; asc_docs_api.prototype['sync_StartAction'] = asc_docs_api.prototype.sync_StartAction; asc_docs_api.prototype['sync_EndAction'] = asc_docs_api.prototype.sync_EndAction; asc_docs_api.prototype['sync_AddURLCallback'] = asc_docs_api.prototype.sync_AddURLCallback; asc_docs_api.prototype['sync_ErrorCallback'] = asc_docs_api.prototype.sync_ErrorCallback; asc_docs_api.prototype['sync_HelpCallback'] = asc_docs_api.prototype.sync_HelpCallback; asc_docs_api.prototype['sync_UpdateZoom'] = asc_docs_api.prototype.sync_UpdateZoom; asc_docs_api.prototype['ClearPropObjCallback'] = asc_docs_api.prototype.ClearPropObjCallback; asc_docs_api.prototype['CollectHeaders'] = asc_docs_api.prototype.CollectHeaders; asc_docs_api.prototype['GetActiveHeader'] = asc_docs_api.prototype.GetActiveHeader; asc_docs_api.prototype['gotoHeader'] = asc_docs_api.prototype.gotoHeader; asc_docs_api.prototype['sync_ChangeActiveHeaderCallback'] = asc_docs_api.prototype.sync_ChangeActiveHeaderCallback; asc_docs_api.prototype['sync_ReturnHeadersCallback'] = asc_docs_api.prototype.sync_ReturnHeadersCallback; asc_docs_api.prototype['asc_searchEnabled'] = asc_docs_api.prototype.asc_searchEnabled; asc_docs_api.prototype['asc_findText'] = asc_docs_api.prototype.asc_findText; asc_docs_api.prototype['asc_replaceText'] = asc_docs_api.prototype.asc_replaceText; asc_docs_api.prototype['asc_isSelectSearchingResults'] = asc_docs_api.prototype.asc_isSelectSearchingResults; asc_docs_api.prototype['sync_ReplaceAllCallback'] = asc_docs_api.prototype.sync_ReplaceAllCallback; asc_docs_api.prototype['sync_SearchEndCallback'] = asc_docs_api.prototype.sync_SearchEndCallback; asc_docs_api.prototype['put_TextPrFontName'] = asc_docs_api.prototype.put_TextPrFontName; asc_docs_api.prototype['put_TextPrFontSize'] = asc_docs_api.prototype.put_TextPrFontSize; asc_docs_api.prototype['put_TextPrBold'] = asc_docs_api.prototype.put_TextPrBold; asc_docs_api.prototype['put_TextPrItalic'] = asc_docs_api.prototype.put_TextPrItalic; asc_docs_api.prototype['put_TextPrUnderline'] = asc_docs_api.prototype.put_TextPrUnderline; asc_docs_api.prototype['put_TextPrStrikeout'] = asc_docs_api.prototype.put_TextPrStrikeout; asc_docs_api.prototype['put_TextPrDStrikeout'] = asc_docs_api.prototype.put_TextPrDStrikeout; asc_docs_api.prototype['put_TextPrSpacing'] = asc_docs_api.prototype.put_TextPrSpacing; asc_docs_api.prototype['put_TextPrCaps'] = asc_docs_api.prototype.put_TextPrCaps; asc_docs_api.prototype['put_TextPrSmallCaps'] = asc_docs_api.prototype.put_TextPrSmallCaps; asc_docs_api.prototype['put_TextPrPosition'] = asc_docs_api.prototype.put_TextPrPosition; asc_docs_api.prototype['put_TextPrLang'] = asc_docs_api.prototype.put_TextPrLang; asc_docs_api.prototype['put_PrLineSpacing'] = asc_docs_api.prototype.put_PrLineSpacing; asc_docs_api.prototype['put_LineSpacingBeforeAfter'] = asc_docs_api.prototype.put_LineSpacingBeforeAfter; asc_docs_api.prototype['FontSizeIn'] = asc_docs_api.prototype.FontSizeIn; asc_docs_api.prototype['FontSizeOut'] = asc_docs_api.prototype.FontSizeOut; asc_docs_api.prototype['put_Borders'] = asc_docs_api.prototype.put_Borders; asc_docs_api.prototype['sync_BoldCallBack'] = asc_docs_api.prototype.sync_BoldCallBack; asc_docs_api.prototype['sync_ItalicCallBack'] = asc_docs_api.prototype.sync_ItalicCallBack; asc_docs_api.prototype['sync_UnderlineCallBack'] = asc_docs_api.prototype.sync_UnderlineCallBack; asc_docs_api.prototype['sync_StrikeoutCallBack'] = asc_docs_api.prototype.sync_StrikeoutCallBack; asc_docs_api.prototype['sync_TextPrFontFamilyCallBack'] = asc_docs_api.prototype.sync_TextPrFontFamilyCallBack; asc_docs_api.prototype['sync_TextPrFontSizeCallBack'] = asc_docs_api.prototype.sync_TextPrFontSizeCallBack; asc_docs_api.prototype['sync_PrLineSpacingCallBack'] = asc_docs_api.prototype.sync_PrLineSpacingCallBack; asc_docs_api.prototype['sync_InitEditorTableStyles'] = asc_docs_api.prototype.sync_InitEditorTableStyles; asc_docs_api.prototype['paraApply'] = asc_docs_api.prototype.paraApply; asc_docs_api.prototype['put_PrAlign'] = asc_docs_api.prototype.put_PrAlign; asc_docs_api.prototype['put_TextPrBaseline'] = asc_docs_api.prototype.put_TextPrBaseline; asc_docs_api.prototype['put_ListType'] = asc_docs_api.prototype.put_ListType; asc_docs_api.prototype['asc_ContinueNumbering'] = asc_docs_api.prototype.asc_ContinueNumbering; asc_docs_api.prototype['asc_RestartNumbering'] = asc_docs_api.prototype.asc_RestartNumbering; asc_docs_api.prototype['asc_GetCurrentNumberingId'] = asc_docs_api.prototype.asc_GetCurrentNumberingId; asc_docs_api.prototype['asc_GetCurrentNumberingLvl'] = asc_docs_api.prototype.asc_GetCurrentNumberingLvl; asc_docs_api.prototype['asc_GetCalculatedNumberingValue'] = asc_docs_api.prototype.asc_GetCalculatedNumberingValue; asc_docs_api.prototype['asc_GetNumberingPr'] = asc_docs_api.prototype.asc_GetNumberingPr; asc_docs_api.prototype['asc_AddNewNumbering'] = asc_docs_api.prototype.asc_AddNewNumbering; asc_docs_api.prototype['asc_ChangeNumberingLvl'] = asc_docs_api.prototype.asc_ChangeNumberingLvl; asc_docs_api.prototype['put_Style'] = asc_docs_api.prototype.put_Style; asc_docs_api.prototype['SetDeviceInputHelperId'] = asc_docs_api.prototype.SetDeviceInputHelperId; asc_docs_api.prototype['put_ShowSnapLines'] = asc_docs_api.prototype.put_ShowSnapLines; asc_docs_api.prototype['get_ShowSnapLines'] = asc_docs_api.prototype.get_ShowSnapLines; asc_docs_api.prototype['put_ShowParaMarks'] = asc_docs_api.prototype.put_ShowParaMarks; asc_docs_api.prototype['get_ShowParaMarks'] = asc_docs_api.prototype.get_ShowParaMarks; asc_docs_api.prototype['put_ShowTableEmptyLine'] = asc_docs_api.prototype.put_ShowTableEmptyLine; asc_docs_api.prototype['get_ShowTableEmptyLine'] = asc_docs_api.prototype.get_ShowTableEmptyLine; asc_docs_api.prototype['put_PageBreak'] = asc_docs_api.prototype.put_PageBreak; asc_docs_api.prototype['put_WidowControl'] = asc_docs_api.prototype.put_WidowControl; asc_docs_api.prototype['put_KeepLines'] = asc_docs_api.prototype.put_KeepLines; asc_docs_api.prototype['put_KeepNext'] = asc_docs_api.prototype.put_KeepNext; asc_docs_api.prototype['put_AddSpaceBetweenPrg'] = asc_docs_api.prototype.put_AddSpaceBetweenPrg; asc_docs_api.prototype['put_LineHighLight'] = asc_docs_api.prototype.put_LineHighLight; asc_docs_api.prototype['put_TextColor'] = asc_docs_api.prototype.put_TextColor; asc_docs_api.prototype['put_ParagraphShade'] = asc_docs_api.prototype.put_ParagraphShade; asc_docs_api.prototype['put_PrIndent'] = asc_docs_api.prototype.put_PrIndent; asc_docs_api.prototype['IncreaseIndent'] = asc_docs_api.prototype.IncreaseIndent; asc_docs_api.prototype['DecreaseIndent'] = asc_docs_api.prototype.DecreaseIndent; asc_docs_api.prototype['put_PrIndentRight'] = asc_docs_api.prototype.put_PrIndentRight; asc_docs_api.prototype['put_PrFirstLineIndent'] = asc_docs_api.prototype.put_PrFirstLineIndent; asc_docs_api.prototype['put_Margins'] = asc_docs_api.prototype.put_Margins; asc_docs_api.prototype['getFocusObject'] = asc_docs_api.prototype.getFocusObject; asc_docs_api.prototype['sync_VerticalAlign'] = asc_docs_api.prototype.sync_VerticalAlign; asc_docs_api.prototype['sync_PrAlignCallBack'] = asc_docs_api.prototype.sync_PrAlignCallBack; asc_docs_api.prototype['sync_ListType'] = asc_docs_api.prototype.sync_ListType; asc_docs_api.prototype['sync_TextColor'] = asc_docs_api.prototype.sync_TextColor; asc_docs_api.prototype['sync_TextHighLight'] = asc_docs_api.prototype.sync_TextHighLight; asc_docs_api.prototype['sync_TextSpacing'] = asc_docs_api.prototype.sync_TextSpacing; asc_docs_api.prototype['sync_TextDStrikeout'] = asc_docs_api.prototype.sync_TextDStrikeout; asc_docs_api.prototype['sync_TextCaps'] = asc_docs_api.prototype.sync_TextCaps; asc_docs_api.prototype['sync_TextSmallCaps'] = asc_docs_api.prototype.sync_TextSmallCaps; asc_docs_api.prototype['sync_TextPosition'] = asc_docs_api.prototype.sync_TextPosition; asc_docs_api.prototype['sync_TextLangCallBack'] = asc_docs_api.prototype.sync_TextLangCallBack; asc_docs_api.prototype['sync_ParaStyleName'] = asc_docs_api.prototype.sync_ParaStyleName; asc_docs_api.prototype['sync_ParaSpacingLine'] = asc_docs_api.prototype.sync_ParaSpacingLine; asc_docs_api.prototype['sync_PageBreakCallback'] = asc_docs_api.prototype.sync_PageBreakCallback; asc_docs_api.prototype['sync_WidowControlCallback'] = asc_docs_api.prototype.sync_WidowControlCallback; asc_docs_api.prototype['sync_KeepNextCallback'] = asc_docs_api.prototype.sync_KeepNextCallback; asc_docs_api.prototype['sync_KeepLinesCallback'] = asc_docs_api.prototype.sync_KeepLinesCallback; asc_docs_api.prototype['sync_ShowParaMarksCallback'] = asc_docs_api.prototype.sync_ShowParaMarksCallback; asc_docs_api.prototype['sync_SpaceBetweenPrgCallback'] = asc_docs_api.prototype.sync_SpaceBetweenPrgCallback; asc_docs_api.prototype['sync_PrPropCallback'] = asc_docs_api.prototype.sync_PrPropCallback; asc_docs_api.prototype['sync_MathPropCallback'] = asc_docs_api.prototype.sync_MathPropCallback; asc_docs_api.prototype['sync_EndAddShape'] = asc_docs_api.prototype.sync_EndAddShape; asc_docs_api.prototype['SetDrawingFreeze'] = asc_docs_api.prototype.SetDrawingFreeze; asc_docs_api.prototype['change_PageOrient'] = asc_docs_api.prototype.change_PageOrient; asc_docs_api.prototype['get_DocumentOrientation'] = asc_docs_api.prototype.get_DocumentOrientation; asc_docs_api.prototype['change_DocSize'] = asc_docs_api.prototype.change_DocSize; asc_docs_api.prototype['get_DocumentWidth'] = asc_docs_api.prototype.get_DocumentWidth; asc_docs_api.prototype['get_DocumentHeight'] = asc_docs_api.prototype.get_DocumentHeight; asc_docs_api.prototype['put_AddPageBreak'] = asc_docs_api.prototype.put_AddPageBreak; asc_docs_api.prototype['put_AddColumnBreak'] = asc_docs_api.prototype.put_AddColumnBreak; asc_docs_api.prototype['Update_ParaInd'] = asc_docs_api.prototype.Update_ParaInd; asc_docs_api.prototype['Internal_Update_Ind_FirstLine'] = asc_docs_api.prototype.Internal_Update_Ind_FirstLine; asc_docs_api.prototype['Internal_Update_Ind_Left'] = asc_docs_api.prototype.Internal_Update_Ind_Left; asc_docs_api.prototype['Internal_Update_Ind_Right'] = asc_docs_api.prototype.Internal_Update_Ind_Right; asc_docs_api.prototype['put_PageNum'] = asc_docs_api.prototype.put_PageNum; asc_docs_api.prototype['put_HeadersAndFootersDistance'] = asc_docs_api.prototype.put_HeadersAndFootersDistance; asc_docs_api.prototype['HeadersAndFooters_DifferentFirstPage'] = asc_docs_api.prototype.HeadersAndFooters_DifferentFirstPage; asc_docs_api.prototype['HeadersAndFooters_DifferentOddandEvenPage'] = asc_docs_api.prototype.HeadersAndFooters_DifferentOddandEvenPage; asc_docs_api.prototype['HeadersAndFooters_LinkToPrevious'] = asc_docs_api.prototype.HeadersAndFooters_LinkToPrevious; asc_docs_api.prototype['asc_SetSectionStartPage'] = asc_docs_api.prototype.asc_SetSectionStartPage; asc_docs_api.prototype['sync_DocSizeCallback'] = asc_docs_api.prototype.sync_DocSizeCallback; asc_docs_api.prototype['sync_PageOrientCallback'] = asc_docs_api.prototype.sync_PageOrientCallback; asc_docs_api.prototype['sync_HeadersAndFootersPropCallback'] = asc_docs_api.prototype.sync_HeadersAndFootersPropCallback; asc_docs_api.prototype['put_Table'] = asc_docs_api.prototype.put_Table; asc_docs_api.prototype['addRowAbove'] = asc_docs_api.prototype.addRowAbove; asc_docs_api.prototype['addRowBelow'] = asc_docs_api.prototype.addRowBelow; asc_docs_api.prototype['addColumnLeft'] = asc_docs_api.prototype.addColumnLeft; asc_docs_api.prototype['addColumnRight'] = asc_docs_api.prototype.addColumnRight; asc_docs_api.prototype['remRow'] = asc_docs_api.prototype.remRow; asc_docs_api.prototype['remColumn'] = asc_docs_api.prototype.remColumn; asc_docs_api.prototype['remTable'] = asc_docs_api.prototype.remTable; asc_docs_api.prototype['selectRow'] = asc_docs_api.prototype.selectRow; asc_docs_api.prototype['selectColumn'] = asc_docs_api.prototype.selectColumn; asc_docs_api.prototype['selectCell'] = asc_docs_api.prototype.selectCell; asc_docs_api.prototype['selectTable'] = asc_docs_api.prototype.selectTable; asc_docs_api.prototype['setColumnWidth'] = asc_docs_api.prototype.setColumnWidth; asc_docs_api.prototype['setRowHeight'] = asc_docs_api.prototype.setRowHeight; asc_docs_api.prototype['set_TblDistanceFromText'] = asc_docs_api.prototype.set_TblDistanceFromText; asc_docs_api.prototype['CheckBeforeMergeCells'] = asc_docs_api.prototype.CheckBeforeMergeCells; asc_docs_api.prototype['CheckBeforeSplitCells'] = asc_docs_api.prototype.CheckBeforeSplitCells; asc_docs_api.prototype['MergeCells'] = asc_docs_api.prototype.MergeCells; asc_docs_api.prototype['SplitCell'] = asc_docs_api.prototype.SplitCell; asc_docs_api.prototype['asc_DistributeTableCells'] = asc_docs_api.prototype.asc_DistributeTableCells; asc_docs_api.prototype['widthTable'] = asc_docs_api.prototype.widthTable; asc_docs_api.prototype['put_CellsMargin'] = asc_docs_api.prototype.put_CellsMargin; asc_docs_api.prototype['set_TblWrap'] = asc_docs_api.prototype.set_TblWrap; asc_docs_api.prototype['set_TblIndentLeft'] = asc_docs_api.prototype.set_TblIndentLeft; asc_docs_api.prototype['set_Borders'] = asc_docs_api.prototype.set_Borders; asc_docs_api.prototype['set_TableBackground'] = asc_docs_api.prototype.set_TableBackground; asc_docs_api.prototype['set_AlignCell'] = asc_docs_api.prototype.set_AlignCell; asc_docs_api.prototype['set_TblAlign'] = asc_docs_api.prototype.set_TblAlign; asc_docs_api.prototype['set_SpacingBetweenCells'] = asc_docs_api.prototype.set_SpacingBetweenCells; asc_docs_api.prototype['tblApply'] = asc_docs_api.prototype.tblApply; asc_docs_api.prototype['sync_AddTableCallback'] = asc_docs_api.prototype.sync_AddTableCallback; asc_docs_api.prototype['sync_AlignCellCallback'] = asc_docs_api.prototype.sync_AlignCellCallback; asc_docs_api.prototype['sync_TblPropCallback'] = asc_docs_api.prototype.sync_TblPropCallback; asc_docs_api.prototype['sync_TblWrapStyleChangedCallback'] = asc_docs_api.prototype.sync_TblWrapStyleChangedCallback; asc_docs_api.prototype['sync_TblAlignChangedCallback'] = asc_docs_api.prototype.sync_TblAlignChangedCallback; asc_docs_api.prototype['ChangeImageFromFile'] = asc_docs_api.prototype.ChangeImageFromFile; asc_docs_api.prototype['ChangeShapeImageFromFile'] = asc_docs_api.prototype.ChangeShapeImageFromFile; asc_docs_api.prototype['AddImage'] = asc_docs_api.prototype.AddImage; asc_docs_api.prototype['asc_addImage'] = asc_docs_api.prototype.asc_addImage; asc_docs_api.prototype['AddImageUrl2'] = asc_docs_api.prototype.AddImageUrl2; asc_docs_api.prototype['AddImageUrl'] = asc_docs_api.prototype.AddImageUrl; asc_docs_api.prototype['AddImageUrlAction'] = asc_docs_api.prototype.AddImageUrlAction; asc_docs_api.prototype['AddImageToPage'] = asc_docs_api.prototype.AddImageToPage; asc_docs_api.prototype['ImgApply'] = asc_docs_api.prototype.ImgApply; asc_docs_api.prototype['set_Size'] = asc_docs_api.prototype.set_Size; asc_docs_api.prototype['set_ConstProportions'] = asc_docs_api.prototype.set_ConstProportions; asc_docs_api.prototype['set_WrapStyle'] = asc_docs_api.prototype.set_WrapStyle; asc_docs_api.prototype['deleteImage'] = asc_docs_api.prototype.deleteImage; asc_docs_api.prototype['set_ImgDistanceFromText'] = asc_docs_api.prototype.set_ImgDistanceFromText; asc_docs_api.prototype['set_PositionOnPage'] = asc_docs_api.prototype.set_PositionOnPage; asc_docs_api.prototype['get_OriginalSizeImage'] = asc_docs_api.prototype.get_OriginalSizeImage; asc_docs_api.prototype['ShapeApply'] = asc_docs_api.prototype.ShapeApply; asc_docs_api.prototype['sync_AddImageCallback'] = asc_docs_api.prototype.sync_AddImageCallback; asc_docs_api.prototype['sync_ImgPropCallback'] = asc_docs_api.prototype.sync_ImgPropCallback; asc_docs_api.prototype['sync_ImgWrapStyleChangedCallback'] = asc_docs_api.prototype.sync_ImgWrapStyleChangedCallback; asc_docs_api.prototype['sync_ContextMenuCallback'] = asc_docs_api.prototype.sync_ContextMenuCallback; asc_docs_api.prototype['sync_MouseMoveStartCallback'] = asc_docs_api.prototype.sync_MouseMoveStartCallback; asc_docs_api.prototype['sync_MouseMoveEndCallback'] = asc_docs_api.prototype.sync_MouseMoveEndCallback; asc_docs_api.prototype['sync_MouseMoveCallback'] = asc_docs_api.prototype.sync_MouseMoveCallback; asc_docs_api.prototype['can_AddHyperlink'] = asc_docs_api.prototype.can_AddHyperlink; asc_docs_api.prototype['add_Hyperlink'] = asc_docs_api.prototype.add_Hyperlink; asc_docs_api.prototype['change_Hyperlink'] = asc_docs_api.prototype.change_Hyperlink; asc_docs_api.prototype['remove_Hyperlink'] = asc_docs_api.prototype.remove_Hyperlink; asc_docs_api.prototype['asc_GetHyperlinkAnchors'] = asc_docs_api.prototype.asc_GetHyperlinkAnchors; asc_docs_api.prototype['sync_HyperlinkPropCallback'] = asc_docs_api.prototype.sync_HyperlinkPropCallback; asc_docs_api.prototype['sync_HyperlinkClickCallback'] = asc_docs_api.prototype.sync_HyperlinkClickCallback; asc_docs_api.prototype['sync_CanAddHyperlinkCallback'] = asc_docs_api.prototype.sync_CanAddHyperlinkCallback; asc_docs_api.prototype['sync_DialogAddHyperlink'] = asc_docs_api.prototype.sync_DialogAddHyperlink; asc_docs_api.prototype['sync_DialogAddHyperlink'] = asc_docs_api.prototype.sync_DialogAddHyperlink; asc_docs_api.prototype['sync_SpellCheckCallback'] = asc_docs_api.prototype.sync_SpellCheckCallback; asc_docs_api.prototype['sync_SpellCheckVariantsFound'] = asc_docs_api.prototype.sync_SpellCheckVariantsFound; asc_docs_api.prototype['asc_replaceMisspelledWord'] = asc_docs_api.prototype.asc_replaceMisspelledWord; asc_docs_api.prototype['asc_ignoreMisspelledWord'] = asc_docs_api.prototype.asc_ignoreMisspelledWord; asc_docs_api.prototype['asc_setDefaultLanguage'] = asc_docs_api.prototype.asc_setDefaultLanguage; asc_docs_api.prototype['asc_getDefaultLanguage'] = asc_docs_api.prototype.asc_getDefaultLanguage; asc_docs_api.prototype['asc_getKeyboardLanguage'] = asc_docs_api.prototype.asc_getKeyboardLanguage; asc_docs_api.prototype['asc_setSpellCheck'] = asc_docs_api.prototype.asc_setSpellCheck; asc_docs_api.prototype['asc_showComments'] = asc_docs_api.prototype.asc_showComments; asc_docs_api.prototype['asc_hideComments'] = asc_docs_api.prototype.asc_hideComments; asc_docs_api.prototype['asc_addComment'] = asc_docs_api.prototype.asc_addComment; asc_docs_api.prototype['asc_removeComment'] = asc_docs_api.prototype.asc_removeComment; asc_docs_api.prototype['asc_changeComment'] = asc_docs_api.prototype.asc_changeComment; asc_docs_api.prototype['asc_selectComment'] = asc_docs_api.prototype.asc_selectComment; asc_docs_api.prototype['asc_showComment'] = asc_docs_api.prototype.asc_showComment; asc_docs_api.prototype['can_AddQuotedComment'] = asc_docs_api.prototype.can_AddQuotedComment; asc_docs_api.prototype['sync_RemoveComment'] = asc_docs_api.prototype.sync_RemoveComment; asc_docs_api.prototype['sync_AddComment'] = asc_docs_api.prototype.sync_AddComment; asc_docs_api.prototype['sync_ShowComment'] = asc_docs_api.prototype.sync_ShowComment; asc_docs_api.prototype['sync_HideComment'] = asc_docs_api.prototype.sync_HideComment; asc_docs_api.prototype['sync_UpdateCommentPosition'] = asc_docs_api.prototype.sync_UpdateCommentPosition; asc_docs_api.prototype['sync_ChangeCommentData'] = asc_docs_api.prototype.sync_ChangeCommentData; asc_docs_api.prototype['sync_LockComment'] = asc_docs_api.prototype.sync_LockComment; asc_docs_api.prototype['sync_UnLockComment'] = asc_docs_api.prototype.sync_UnLockComment; asc_docs_api.prototype['sync_LockHeaderFooters'] = asc_docs_api.prototype.sync_LockHeaderFooters; asc_docs_api.prototype['sync_LockDocumentProps'] = asc_docs_api.prototype.sync_LockDocumentProps; asc_docs_api.prototype['sync_UnLockHeaderFooters'] = asc_docs_api.prototype.sync_UnLockHeaderFooters; asc_docs_api.prototype['sync_UnLockDocumentProps'] = asc_docs_api.prototype.sync_UnLockDocumentProps; asc_docs_api.prototype['sync_CollaborativeChanges'] = asc_docs_api.prototype.sync_CollaborativeChanges; asc_docs_api.prototype['sync_LockDocumentSchema'] = asc_docs_api.prototype.sync_LockDocumentSchema; asc_docs_api.prototype['sync_UnLockDocumentSchema'] = asc_docs_api.prototype.sync_UnLockDocumentSchema; asc_docs_api.prototype['zoomIn'] = asc_docs_api.prototype.zoomIn; asc_docs_api.prototype['zoomOut'] = asc_docs_api.prototype.zoomOut; asc_docs_api.prototype['zoomFitToPage'] = asc_docs_api.prototype.zoomFitToPage; asc_docs_api.prototype['zoomFitToWidth'] = asc_docs_api.prototype.zoomFitToWidth; asc_docs_api.prototype['zoomCustomMode'] = asc_docs_api.prototype.zoomCustomMode; asc_docs_api.prototype['zoom100'] = asc_docs_api.prototype.zoom100; asc_docs_api.prototype['zoom'] = asc_docs_api.prototype.zoom; asc_docs_api.prototype['goToPage'] = asc_docs_api.prototype.goToPage; asc_docs_api.prototype['getCountPages'] = asc_docs_api.prototype.getCountPages; asc_docs_api.prototype['getCurrentPage'] = asc_docs_api.prototype.getCurrentPage; asc_docs_api.prototype['sync_countPagesCallback'] = asc_docs_api.prototype.sync_countPagesCallback; asc_docs_api.prototype['sync_currentPageCallback'] = asc_docs_api.prototype.sync_currentPageCallback; asc_docs_api.prototype['asc_enableKeyEvents'] = asc_docs_api.prototype.asc_enableKeyEvents; asc_docs_api.prototype['GenerateStyles'] = asc_docs_api.prototype.GenerateStyles; asc_docs_api.prototype['asyncFontsDocumentEndLoaded'] = asc_docs_api.prototype.asyncFontsDocumentEndLoaded; asc_docs_api.prototype['CreateFontsCharMap'] = asc_docs_api.prototype.CreateFontsCharMap; asc_docs_api.prototype['sync_SendThemeColors'] = asc_docs_api.prototype.sync_SendThemeColors; asc_docs_api.prototype['ChangeColorScheme'] = asc_docs_api.prototype.ChangeColorScheme; asc_docs_api.prototype['asyncImagesDocumentEndLoaded'] = asc_docs_api.prototype.asyncImagesDocumentEndLoaded; asc_docs_api.prototype['UpdateInterfaceState'] = asc_docs_api.prototype.UpdateInterfaceState; asc_docs_api.prototype['asyncFontEndLoaded'] = asc_docs_api.prototype.asyncFontEndLoaded; asc_docs_api.prototype['asyncImageEndLoaded'] = asc_docs_api.prototype.asyncImageEndLoaded; asc_docs_api.prototype['asyncImageEndLoadedBackground'] = asc_docs_api.prototype.asyncImageEndLoadedBackground; asc_docs_api.prototype['IsAsyncOpenDocumentImages'] = asc_docs_api.prototype.IsAsyncOpenDocumentImages; asc_docs_api.prototype['pre_Paste'] = asc_docs_api.prototype.pre_Paste; asc_docs_api.prototype['pre_Save'] = asc_docs_api.prototype.pre_Save; asc_docs_api.prototype['SyncLoadImages'] = asc_docs_api.prototype.SyncLoadImages; asc_docs_api.prototype['SyncLoadImages_callback'] = asc_docs_api.prototype.SyncLoadImages_callback; asc_docs_api.prototype['initEvents2MobileAdvances'] = asc_docs_api.prototype.initEvents2MobileAdvances; asc_docs_api.prototype['ViewScrollToX'] = asc_docs_api.prototype.ViewScrollToX; asc_docs_api.prototype['ViewScrollToY'] = asc_docs_api.prototype.ViewScrollToY; asc_docs_api.prototype['GetDocWidthPx'] = asc_docs_api.prototype.GetDocWidthPx; asc_docs_api.prototype['GetDocHeightPx'] = asc_docs_api.prototype.GetDocHeightPx; asc_docs_api.prototype['ClearSearch'] = asc_docs_api.prototype.ClearSearch; asc_docs_api.prototype['GetCurrentVisiblePage'] = asc_docs_api.prototype.GetCurrentVisiblePage; asc_docs_api.prototype['asc_setAutoSaveGap'] = asc_docs_api.prototype.asc_setAutoSaveGap; asc_docs_api.prototype['asc_SetDocumentPlaceChangedEnabled'] = asc_docs_api.prototype.asc_SetDocumentPlaceChangedEnabled; asc_docs_api.prototype['asc_SetViewRulers'] = asc_docs_api.prototype.asc_SetViewRulers; asc_docs_api.prototype['asc_SetViewRulersChange'] = asc_docs_api.prototype.asc_SetViewRulersChange; asc_docs_api.prototype['asc_GetViewRulers'] = asc_docs_api.prototype.asc_GetViewRulers; asc_docs_api.prototype['asc_SetDocumentUnits'] = asc_docs_api.prototype.asc_SetDocumentUnits; asc_docs_api.prototype['GoToHeader'] = asc_docs_api.prototype.GoToHeader; asc_docs_api.prototype['GoToFooter'] = asc_docs_api.prototype.GoToFooter; asc_docs_api.prototype['ExitHeader_Footer'] = asc_docs_api.prototype.ExitHeader_Footer; asc_docs_api.prototype['GetCurrentPixOffsetY'] = asc_docs_api.prototype.GetCurrentPixOffsetY; asc_docs_api.prototype['SetPaintFormat'] = asc_docs_api.prototype.SetPaintFormat; asc_docs_api.prototype['ChangeShapeType'] = asc_docs_api.prototype.ChangeShapeType; asc_docs_api.prototype['sync_PaintFormatCallback'] = asc_docs_api.prototype.sync_PaintFormatCallback; asc_docs_api.prototype['SetMarkerFormat'] = asc_docs_api.prototype.SetMarkerFormat; asc_docs_api.prototype['sync_MarkerFormatCallback'] = asc_docs_api.prototype.sync_MarkerFormatCallback; asc_docs_api.prototype['StartAddShape'] = asc_docs_api.prototype.StartAddShape; asc_docs_api.prototype['AddShapeOnCurrentPage'] = asc_docs_api.prototype.AddShapeOnCurrentPage; asc_docs_api.prototype['AddTextArt'] = asc_docs_api.prototype.AddTextArt; asc_docs_api.prototype['sync_StartAddShapeCallback'] = asc_docs_api.prototype.sync_StartAddShapeCallback; asc_docs_api.prototype['CanGroup'] = asc_docs_api.prototype.CanGroup; asc_docs_api.prototype['CanUnGroup'] = asc_docs_api.prototype.CanUnGroup; asc_docs_api.prototype['CanChangeWrapPolygon'] = asc_docs_api.prototype.CanChangeWrapPolygon; asc_docs_api.prototype['StartChangeWrapPolygon'] = asc_docs_api.prototype.StartChangeWrapPolygon; asc_docs_api.prototype['ClearFormating'] = asc_docs_api.prototype.ClearFormating; asc_docs_api.prototype['GetSectionInfo'] = asc_docs_api.prototype.GetSectionInfo; asc_docs_api.prototype['add_SectionBreak'] = asc_docs_api.prototype.add_SectionBreak; asc_docs_api.prototype['asc_setViewMode'] = asc_docs_api.prototype.asc_setViewMode; asc_docs_api.prototype['asc_setRestriction'] = asc_docs_api.prototype.asc_setRestriction; asc_docs_api.prototype['OnMouseUp'] = asc_docs_api.prototype.OnMouseUp; asc_docs_api.prototype['asyncImageEndLoaded2'] = asc_docs_api.prototype.asyncImageEndLoaded2; asc_docs_api.prototype['SetDrawImagePlaceParagraph'] = asc_docs_api.prototype.SetDrawImagePlaceParagraph; asc_docs_api.prototype['asc_getMasterCommentId'] = asc_docs_api.prototype.asc_getMasterCommentId; asc_docs_api.prototype['asc_getAnchorPosition'] = asc_docs_api.prototype.asc_getAnchorPosition; asc_docs_api.prototype['asc_getChartObject'] = asc_docs_api.prototype.asc_getChartObject; asc_docs_api.prototype['asc_addChartDrawingObject'] = asc_docs_api.prototype.asc_addChartDrawingObject; asc_docs_api.prototype['asc_doubleClickOnChart'] = asc_docs_api.prototype.asc_doubleClickOnChart; asc_docs_api.prototype['asc_onCloseChartFrame'] = asc_docs_api.prototype.asc_onCloseChartFrame; asc_docs_api.prototype['asc_editChartDrawingObject'] = asc_docs_api.prototype.asc_editChartDrawingObject; asc_docs_api.prototype['asc_getChartPreviews'] = asc_docs_api.prototype.asc_getChartPreviews; asc_docs_api.prototype['asc_getTextArtPreviews'] = asc_docs_api.prototype.asc_getTextArtPreviews; asc_docs_api.prototype['sync_closeChartEditor'] = asc_docs_api.prototype.sync_closeChartEditor; asc_docs_api.prototype['asc_setDrawCollaborationMarks'] = asc_docs_api.prototype.asc_setDrawCollaborationMarks; asc_docs_api.prototype['asc_AddMath'] = asc_docs_api.prototype.asc_AddMath; asc_docs_api.prototype['asc_AddMath2'] = asc_docs_api.prototype.asc_AddMath2; asc_docs_api.prototype['asc_AddPageCount'] = asc_docs_api.prototype.asc_AddPageCount; asc_docs_api.prototype['asc_StartMailMerge'] = asc_docs_api.prototype.asc_StartMailMerge; asc_docs_api.prototype['asc_StartMailMergeByList'] = asc_docs_api.prototype.asc_StartMailMergeByList; asc_docs_api.prototype['asc_GetReceptionsCount'] = asc_docs_api.prototype.asc_GetReceptionsCount; asc_docs_api.prototype['asc_GetMailMergeFieldsNameList'] = asc_docs_api.prototype.asc_GetMailMergeFieldsNameList; asc_docs_api.prototype['asc_AddMailMergeField'] = asc_docs_api.prototype.asc_AddMailMergeField; asc_docs_api.prototype['asc_SetHighlightMailMergeFields'] = asc_docs_api.prototype.asc_SetHighlightMailMergeFields; asc_docs_api.prototype['asc_PreviewMailMergeResult'] = asc_docs_api.prototype.asc_PreviewMailMergeResult; asc_docs_api.prototype['asc_EndPreviewMailMergeResult'] = asc_docs_api.prototype.asc_EndPreviewMailMergeResult; asc_docs_api.prototype['sync_StartMailMerge'] = asc_docs_api.prototype.sync_StartMailMerge; asc_docs_api.prototype['sync_PreviewMailMergeResult'] = asc_docs_api.prototype.sync_PreviewMailMergeResult; asc_docs_api.prototype['sync_EndPreviewMailMergeResult'] = asc_docs_api.prototype.sync_EndPreviewMailMergeResult; asc_docs_api.prototype['sync_HighlightMailMergeFields'] = asc_docs_api.prototype.sync_HighlightMailMergeFields; asc_docs_api.prototype['asc_getMailMergeData'] = asc_docs_api.prototype.asc_getMailMergeData; asc_docs_api.prototype['asc_setMailMergeData'] = asc_docs_api.prototype.asc_setMailMergeData; asc_docs_api.prototype['asc_sendMailMergeData'] = asc_docs_api.prototype.asc_sendMailMergeData; asc_docs_api.prototype['asc_GetMailMergeFiledValue'] = asc_docs_api.prototype.asc_GetMailMergeFiledValue; asc_docs_api.prototype['asc_GetStyleFromFormatting'] = asc_docs_api.prototype.asc_GetStyleFromFormatting; asc_docs_api.prototype['asc_AddNewStyle'] = asc_docs_api.prototype.asc_AddNewStyle; asc_docs_api.prototype['asc_RemoveStyle'] = asc_docs_api.prototype.asc_RemoveStyle; asc_docs_api.prototype['asc_RemoveAllCustomStyles'] = asc_docs_api.prototype.asc_RemoveAllCustomStyles; asc_docs_api.prototype['asc_IsStyleDefault'] = asc_docs_api.prototype.asc_IsStyleDefault; asc_docs_api.prototype['asc_IsDefaultStyleChanged'] = asc_docs_api.prototype.asc_IsDefaultStyleChanged; asc_docs_api.prototype['asc_GetStyleNameById'] = asc_docs_api.prototype.asc_GetStyleNameById; asc_docs_api.prototype['asc_SetTrackRevisions'] = asc_docs_api.prototype.asc_SetTrackRevisions; asc_docs_api.prototype['asc_IsTrackRevisions'] = asc_docs_api.prototype.asc_IsTrackRevisions; asc_docs_api.prototype['sync_BeginCatchRevisionsChanges'] = asc_docs_api.prototype.sync_BeginCatchRevisionsChanges; asc_docs_api.prototype['sync_EndCatchRevisionsChanges'] = asc_docs_api.prototype.sync_EndCatchRevisionsChanges; asc_docs_api.prototype['asc_GetRevisionsChangesStack'] = asc_docs_api.prototype.asc_GetRevisionsChangesStack; asc_docs_api.prototype['sync_AddRevisionsChange'] = asc_docs_api.prototype.sync_AddRevisionsChange; asc_docs_api.prototype['asc_AcceptChanges'] = asc_docs_api.prototype.asc_AcceptChanges; asc_docs_api.prototype['asc_RejectChanges'] = asc_docs_api.prototype.asc_RejectChanges; asc_docs_api.prototype['asc_HaveRevisionsChanges'] = asc_docs_api.prototype.asc_HaveRevisionsChanges; asc_docs_api.prototype['asc_HaveNewRevisionsChanges'] = asc_docs_api.prototype.asc_HaveNewRevisionsChanges; asc_docs_api.prototype['asc_GetNextRevisionsChange'] = asc_docs_api.prototype.asc_GetNextRevisionsChange; asc_docs_api.prototype['asc_GetPrevRevisionsChange'] = asc_docs_api.prototype.asc_GetPrevRevisionsChange; asc_docs_api.prototype['sync_UpdateRevisionsChangesPosition'] = asc_docs_api.prototype.sync_UpdateRevisionsChangesPosition; asc_docs_api.prototype['asc_AcceptAllChanges'] = asc_docs_api.prototype.asc_AcceptAllChanges; asc_docs_api.prototype['asc_RejectAllChanges'] = asc_docs_api.prototype.asc_RejectAllChanges; asc_docs_api.prototype['asc_stopSaving'] = asc_docs_api.prototype.asc_stopSaving; asc_docs_api.prototype['asc_continueSaving'] = asc_docs_api.prototype.asc_continueSaving; asc_docs_api.prototype['asc_undoAllChanges'] = asc_docs_api.prototype.asc_undoAllChanges; asc_docs_api.prototype['asc_CloseFile'] = asc_docs_api.prototype.asc_CloseFile; asc_docs_api.prototype['asc_addComment'] = asc_docs_api.prototype.asc_addComment; asc_docs_api.prototype['asc_SetFastCollaborative'] = asc_docs_api.prototype.asc_SetFastCollaborative; asc_docs_api.prototype['asc_isOffline'] = asc_docs_api.prototype.asc_isOffline; asc_docs_api.prototype['asc_getUrlType'] = asc_docs_api.prototype.asc_getUrlType; asc_docs_api.prototype['asc_getSessionToken'] = asc_docs_api.prototype.asc_getSessionToken; asc_docs_api.prototype["asc_setInterfaceDrawImagePlaceShape"] = asc_docs_api.prototype.asc_setInterfaceDrawImagePlaceShape; asc_docs_api.prototype["asc_pluginsRegister"] = asc_docs_api.prototype.asc_pluginsRegister; asc_docs_api.prototype["asc_pluginRun"] = asc_docs_api.prototype.asc_pluginRun; asc_docs_api.prototype["asc_pluginResize"] = asc_docs_api.prototype.asc_pluginResize; asc_docs_api.prototype["asc_pluginButtonClick"] = asc_docs_api.prototype.asc_pluginButtonClick; asc_docs_api.prototype["asc_pluginEnableMouseEvents"] = asc_docs_api.prototype.asc_pluginEnableMouseEvents; asc_docs_api.prototype["asc_nativeInitBuilder"] = asc_docs_api.prototype.asc_nativeInitBuilder; asc_docs_api.prototype["asc_SetSilentMode"] = asc_docs_api.prototype.asc_SetSilentMode; asc_docs_api.prototype["asc_addOleObject"] = asc_docs_api.prototype.asc_addOleObject; asc_docs_api.prototype["asc_editOleObject"] = asc_docs_api.prototype.asc_editOleObject; asc_docs_api.prototype["asc_startEditCurrentOleObject"] = asc_docs_api.prototype.asc_startEditCurrentOleObject; asc_docs_api.prototype["asc_InputClearKeyboardElement"] = asc_docs_api.prototype.asc_InputClearKeyboardElement; asc_docs_api.prototype["asc_SpecialPaste"] = asc_docs_api.prototype.asc_SpecialPaste; asc_docs_api.prototype["SetDrawImagePlaceContents"] = asc_docs_api.prototype.SetDrawImagePlaceContents; asc_docs_api.prototype["asc_AddContentControl"] = asc_docs_api.prototype.asc_AddContentControl; asc_docs_api.prototype["asc_RemoveContentControl"] = asc_docs_api.prototype.asc_RemoveContentControl; asc_docs_api.prototype["asc_RemoveContentControlWrapper"] = asc_docs_api.prototype.asc_RemoveContentControlWrapper; asc_docs_api.prototype["asc_SetContentControlProperties"] = asc_docs_api.prototype.asc_SetContentControlProperties; asc_docs_api.prototype["asc_IsContentControl"] = asc_docs_api.prototype.asc_IsContentControl; asc_docs_api.prototype["asc_GetContentControlProperties"] = asc_docs_api.prototype.asc_GetContentControlProperties; asc_docs_api.prototype["asc_GetCurrentContentControl"] = asc_docs_api.prototype.asc_GetCurrentContentControl; asc_docs_api.prototype["asc_UncheckContentControlButtons"] = asc_docs_api.prototype.asc_UncheckContentControlButtons; asc_docs_api.prototype['asc_SetGlobalContentControlHighlightColor'] = asc_docs_api.prototype.asc_SetGlobalContentControlHighlightColor; asc_docs_api.prototype['asc_GetGlobalContentControlHighlightColor'] = asc_docs_api.prototype.asc_GetGlobalContentControlHighlightColor; asc_docs_api.prototype['asc_SetGlobalContentControlShowHighlight'] = asc_docs_api.prototype.asc_SetGlobalContentControlShowHighlight; asc_docs_api.prototype['asc_GetGlobalContentControlShowHighlight'] = asc_docs_api.prototype.asc_GetGlobalContentControlShowHighlight; asc_docs_api.prototype['asc_BeginViewModeInReview'] = asc_docs_api.prototype.asc_BeginViewModeInReview; asc_docs_api.prototype['asc_EndViewModeInReview'] = asc_docs_api.prototype.asc_EndViewModeInReview; asc_docs_api.prototype['asc_ShowDocumentOutline'] = asc_docs_api.prototype.asc_ShowDocumentOutline; asc_docs_api.prototype['asc_HideDocumentOutline'] = asc_docs_api.prototype.asc_HideDocumentOutline; asc_docs_api.prototype['sync_OnDocumentOutlineUpdate'] = asc_docs_api.prototype.sync_OnDocumentOutlineUpdate; asc_docs_api.prototype['sync_OnDocumentOutlineCurrentPosition'] = asc_docs_api.prototype.sync_OnDocumentOutlineCurrentPosition; asc_docs_api.prototype['asc_AddTableOfContents'] = asc_docs_api.prototype.asc_AddTableOfContents; asc_docs_api.prototype['asc_RemoveTableOfContents'] = asc_docs_api.prototype.asc_RemoveTableOfContents; asc_docs_api.prototype['asc_GetTableOfContentsPr'] = asc_docs_api.prototype.asc_GetTableOfContentsPr; asc_docs_api.prototype['asc_SetTableOfContentsPr'] = asc_docs_api.prototype.asc_SetTableOfContentsPr; asc_docs_api.prototype['asc_UpdateTableOfContents'] = asc_docs_api.prototype.asc_UpdateTableOfContents; asc_docs_api.prototype['asc_GetCurrentComplexField'] = asc_docs_api.prototype.asc_GetCurrentComplexField; asc_docs_api.prototype['asc_UpdateComplexField'] = asc_docs_api.prototype.asc_UpdateComplexField; asc_docs_api.prototype['asc_RemoveComplexField'] = asc_docs_api.prototype.asc_RemoveComplexField; asc_docs_api.prototype['asc_SetComplexFieldPr'] = asc_docs_api.prototype.asc_SetComplexFieldPr; asc_docs_api.prototype['asc_GetBookmarksManager'] = asc_docs_api.prototype.asc_GetBookmarksManager; asc_docs_api.prototype['asc_GetHeadingLevel'] = asc_docs_api.prototype.asc_GetHeadingLevel; asc_docs_api.prototype['asc_GetStylesArray'] = asc_docs_api.prototype.asc_GetStylesArray; asc_docs_api.prototype['asc_SetAutomaticBulletedLists'] = asc_docs_api.prototype.asc_SetAutomaticBulletedLists; asc_docs_api.prototype['asc_SetAutomaticNumberedLists'] = asc_docs_api.prototype.asc_SetAutomaticNumberedLists; asc_docs_api.prototype['asc_SetAutoCorrectSmartQuotes'] = asc_docs_api.prototype.asc_SetAutoCorrectSmartQuotes; asc_docs_api.prototype['asc_SetAutoCorrectHyphensWithDash'] = asc_docs_api.prototype.asc_SetAutoCorrectHyphensWithDash; // mobile asc_docs_api.prototype["asc_GetDefaultTableStyles"] = asc_docs_api.prototype.asc_GetDefaultTableStyles; asc_docs_api.prototype["asc_Remove"] = asc_docs_api.prototype.asc_Remove; asc_docs_api.prototype["asc_OnHideContextMenu"] = asc_docs_api.prototype.asc_OnHideContextMenu; asc_docs_api.prototype["asc_OnShowContextMenu"] = asc_docs_api.prototype.asc_OnShowContextMenu; // signatures asc_docs_api.prototype["asc_addSignatureLine"] = asc_docs_api.prototype.asc_addSignatureLine; asc_docs_api.prototype["asc_CallSignatureDblClickEvent"] = asc_docs_api.prototype.asc_CallSignatureDblClickEvent; asc_docs_api.prototype["asc_getRequestSignatures"] = asc_docs_api.prototype.asc_getRequestSignatures; asc_docs_api.prototype["asc_AddSignatureLine2"] = asc_docs_api.prototype.asc_AddSignatureLine2; asc_docs_api.prototype["asc_MoveCursorToSignature"] = asc_docs_api.prototype.asc_MoveCursorToSignature; asc_docs_api.prototype["asc_Sign"] = asc_docs_api.prototype.asc_Sign; asc_docs_api.prototype["asc_RequestSign"] = asc_docs_api.prototype.asc_RequestSign; asc_docs_api.prototype["asc_ViewCertificate"] = asc_docs_api.prototype.asc_ViewCertificate; asc_docs_api.prototype["asc_SelectCertificate"] = asc_docs_api.prototype.asc_SelectCertificate; asc_docs_api.prototype["asc_GetDefaultCertificate"] = asc_docs_api.prototype.asc_GetDefaultCertificate; asc_docs_api.prototype["asc_getSignatures"] = asc_docs_api.prototype.asc_getSignatures; asc_docs_api.prototype["asc_isSignaturesSupport"] = asc_docs_api.prototype.asc_isSignaturesSupport; asc_docs_api.prototype["asc_isProtectionSupport"] = asc_docs_api.prototype.asc_isProtectionSupport; asc_docs_api.prototype["asc_RemoveSignature"] = asc_docs_api.prototype.asc_RemoveSignature; asc_docs_api.prototype["asc_RemoveAllSignatures"] = asc_docs_api.prototype.asc_RemoveAllSignatures; asc_docs_api.prototype["asc_gotoSignature"] = asc_docs_api.prototype.asc_gotoSignature; asc_docs_api.prototype["asc_getSignatureSetup"] = asc_docs_api.prototype.asc_getSignatureSetup; // passwords asc_docs_api.prototype["asc_setCurrentPassword"] = asc_docs_api.prototype.asc_setCurrentPassword; asc_docs_api.prototype["asc_resetPassword"] = asc_docs_api.prototype.asc_resetPassword; CDocInfoProp.prototype['get_PageCount'] = CDocInfoProp.prototype.get_PageCount; CDocInfoProp.prototype['put_PageCount'] = CDocInfoProp.prototype.put_PageCount; CDocInfoProp.prototype['get_WordsCount'] = CDocInfoProp.prototype.get_WordsCount; CDocInfoProp.prototype['put_WordsCount'] = CDocInfoProp.prototype.put_WordsCount; CDocInfoProp.prototype['get_ParagraphCount'] = CDocInfoProp.prototype.get_ParagraphCount; CDocInfoProp.prototype['put_ParagraphCount'] = CDocInfoProp.prototype.put_ParagraphCount; CDocInfoProp.prototype['get_SymbolsCount'] = CDocInfoProp.prototype.get_SymbolsCount; CDocInfoProp.prototype['put_SymbolsCount'] = CDocInfoProp.prototype.put_SymbolsCount; CDocInfoProp.prototype['get_SymbolsWSCount'] = CDocInfoProp.prototype.get_SymbolsWSCount; CDocInfoProp.prototype['put_SymbolsWSCount'] = CDocInfoProp.prototype.put_SymbolsWSCount; CContextMenuData.prototype['get_Type'] = CContextMenuData.prototype.get_Type; CContextMenuData.prototype['get_X'] = CContextMenuData.prototype.get_X; CContextMenuData.prototype['get_Y'] = CContextMenuData.prototype.get_Y; CContextMenuData.prototype['get_PageNum'] = CContextMenuData.prototype.get_PageNum; CContextMenuData.prototype['is_Header'] = CContextMenuData.prototype.is_Header; window['Asc']['asc_CCommentDataWord'] = asc_CCommentDataWord; asc_CCommentDataWord.prototype['asc_getText'] = asc_CCommentDataWord.prototype.asc_getText; asc_CCommentDataWord.prototype['asc_putText'] = asc_CCommentDataWord.prototype.asc_putText; asc_CCommentDataWord.prototype['asc_getTime'] = asc_CCommentDataWord.prototype.asc_getTime; asc_CCommentDataWord.prototype['asc_putTime'] = asc_CCommentDataWord.prototype.asc_putTime; asc_CCommentDataWord.prototype['asc_getOnlyOfficeTime'] = asc_CCommentDataWord.prototype.asc_getOnlyOfficeTime; asc_CCommentDataWord.prototype['asc_putOnlyOfficeTime'] = asc_CCommentDataWord.prototype.asc_putOnlyOfficeTime; asc_CCommentDataWord.prototype['asc_getUserId'] = asc_CCommentDataWord.prototype.asc_getUserId; asc_CCommentDataWord.prototype['asc_putUserId'] = asc_CCommentDataWord.prototype.asc_putUserId; asc_CCommentDataWord.prototype['asc_getUserName'] = asc_CCommentDataWord.prototype.asc_getUserName; asc_CCommentDataWord.prototype['asc_putUserName'] = asc_CCommentDataWord.prototype.asc_putUserName; asc_CCommentDataWord.prototype['asc_getQuoteText'] = asc_CCommentDataWord.prototype.asc_getQuoteText; asc_CCommentDataWord.prototype['asc_putQuoteText'] = asc_CCommentDataWord.prototype.asc_putQuoteText; asc_CCommentDataWord.prototype['asc_getSolved'] = asc_CCommentDataWord.prototype.asc_getSolved; asc_CCommentDataWord.prototype['asc_putSolved'] = asc_CCommentDataWord.prototype.asc_putSolved; asc_CCommentDataWord.prototype['asc_getReply'] = asc_CCommentDataWord.prototype.asc_getReply; asc_CCommentDataWord.prototype['asc_addReply'] = asc_CCommentDataWord.prototype.asc_addReply; asc_CCommentDataWord.prototype['asc_getRepliesCount'] = asc_CCommentDataWord.prototype.asc_getRepliesCount; asc_CCommentDataWord.prototype['asc_getDocumentFlag'] = asc_CCommentDataWord.prototype.asc_getDocumentFlag; asc_CCommentDataWord.prototype['asc_putDocumentFlag'] = asc_CCommentDataWord.prototype.asc_putDocumentFlag; AscCommon.setUpAllFonts = function() { var testFontCurrent = 0; var testFontsInterval = 0; var _fonts = []; for (var i = 0; i < AscFonts.g_font_infos.length; i++) _fonts.push(new AscFonts.CFont(AscFonts.g_font_infos[i].Name, 0, "", 0, null)); console.log("start..."); function logFont(font, name) { var face = font.m_pFace; if (!face.os2 || face.os2.version == 0xFFFF) return; var isTypo = ((face.os2.fsSelection & 128) != 0); //if (!isTypo) // return; if (isTypo && (face.height != (face.os2.sTypoAscender - face.os2.sTypoDescender + face.os2.sTypoLineGap))) { console.log("[" + face.family_name + "] typo"); console.log(face.ascender + ", " + face.descender + ", " + face.height); console.log(face.os2.sTypoAscender + ", " + face.os2.sTypoDescender + ", " + (face.os2.sTypoAscender - face.os2.sTypoDescender + face.os2.sTypoLineGap)); } if (!isTypo && (face.height != (face.os2.usWinAscent + face.os2.usWinDescent))) { console.log("[" + face.family_name + "] win"); console.log(face.ascender + ", " + face.descender + ", " + face.height); console.log(face.os2.usWinAscent + ", " + face.os2.usWinDescent + ", " + (face.os2.usWinAscent + face.os2.usWinDescent)); } } editor.asyncMethodCallback = function() { testFontsInterval = setInterval(function(){ if (testFontCurrent >= AscFonts.g_font_infos.length) { clearInterval(testFontsInterval); console.log("end"); return; } var _info = AscFonts.g_font_infos[testFontCurrent++]; if (_info.indexR != -1) { var fontfile = AscCommon.g_font_loader.fontFiles[_info.indexR]; var pFontFile = AscCommon.g_fontManager.LoadFont(fontfile, _info.faceIndexR, 12, false, false, false, false, true); logFont(pFontFile, "regular"); } if (_info.indexB != -1) { var fontfile = AscCommon.g_font_loader.fontFiles[_info.indexB]; var pFontFile = AscCommon.g_fontManager.LoadFont(fontfile, _info.faceIndexB, 12, true, false, false, false, true); logFont(pFontFile, "bold"); } if (_info.indexI != -1) { var fontfile = AscCommon.g_font_loader.fontFiles[_info.indexI]; var pFontFile = AscCommon.g_fontManager.LoadFont(fontfile, _info.faceIndexI, 12, false, true, false, false, true); logFont(pFontFile, "italic"); } if (_info.indexBI != -1) { var fontfile = AscCommon.g_font_loader.fontFiles[_info.indexBI]; var pFontFile = AscCommon.g_fontManager.LoadFont(fontfile, _info.faceIndexBI, 12, true, true, false, false, true); logFont(pFontFile, "bold italic"); } }, 10); }; AscCommon.g_font_loader.LoadDocumentFonts2(_fonts); }; })(window, window.document);