cryptpad/www/common/onlyoffice/sdkjs/slide/sdk-all-min.js
2019-01-28 14:11:51 +01:00

35075 lines
1.3 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* Copyright (C) Ascensio System SIA 2012-2019. 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], 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) {
// 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<<eLen)-1, eBias = eMax>>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 <requestLimits maxAllowedContentLength="30000000" /> 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>{{tableName}})\\[(?<columnName>{{columnName}})?\\]', {
"tableName": new XRegExp("^(:?[" + str_namedRanges + "][" + str_namedRanges + "\\d.]*)"),
"columnName": XRegExp.build('(?<reservedColumn>{{reservedColumn}})|(?<oneColumn>{{userColumn}})|(?<columnRange>{{userColumnRange}})|(?<hdtcc>{{hdtcc}})', {
"userColumn": structured_tables_userColumn,
"reservedColumn": structured_tables_reservedColumn,
"userColumnRange": XRegExp.build('\\[(?<colStart>{{uc}})\\]\\:\\[(?<colEnd>{{uc}})\\]', {
"uc": structured_tables_userColumn
}),
"hdtcc": XRegExp.build('(?<hdt>\\[{{rc}}\\]|{{hd}}|{{dt}})(?:\\' + FormulaSeparators.functionArgumentSeparator + '(?:\\[(?<hdtcstart>{{uc}})\\])(?:\\:(?:\\[(?<hdtcend>{{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 = '<html><head></head><body><form action="' + url + '" method="POST" enctype="multipart/form-data"><input id="apiiuFile" name="apiiuFile" type="file" accept="image/*" size="1"><input id="apiiuSubmit" name="apiiuSubmit" type="submit" style="display:none;"></form></body></html>';
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("<html");
if (-1 == indexHtml)
indexHtml = htmlValue.indexOf("<HTML");
if (index > 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)
{
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("^(?<name_from>[" + str_namedRanges + "][" + str_namedRanges + "\\d.]*)(:(?<name_to>[" + str_namedRanges + "][" + str_namedRanges + "\\d.]*))?!", "i"),
rx_ref3D_quoted = new XRegExp("^'(?<name_from>(?:''|[^\\[\\]'\\/*?:])*)(?::(?<name_to>(?:''|[^\\[\\]'\\/*?:])*))?'!"),
rx_ref3D = new XRegExp("^(?<name_from>[^:]+)(:(?<name_to>[^:]+))?!"),
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("^(?<name>" + "[" + 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 (3100312F)
// Bopomofo Extended (31A031BF)
// CJK Unified Ideographs (4E009FEA)
// CJK Unified Ideographs Extension A (34004DB5)
// CJK Unified Ideographs Extension B (200002A6D6)
// CJK Unified Ideographs Extension C (2A7002B734)
// CJK Unified Ideographs Extension D (2B7402B81D)
// CJK Unified Ideographs Extension E (2B8202CEA1)
// CJK Unified Ideographs Extension F (2CEB02EBE0)
// CJK Compatibility Ideographs (F900FAFF)
// CJK Compatibility Ideographs Supplement (2F8002FA1F)
// Kangxi Radicals (2F002FDF)
// CJK Radicals Supplement (2E802EFF)
// CJK Strokes (31C031EF)
// Ideographic Description Characters (2FF02FFF)
// Hangul Jamo (110011FF)
// Hangul Jamo Extended-A (A960A97F)
// Hangul Jamo Extended-B (D7B0D7FF)
// Hangul Compatibility Jamo (3130318F)
// Halfwidth and Fullwidth Forms (FF00FFEF)
// Hangul Syllables (AC00D7AF)
// Hiragana (3040309F)
// Kana Extended-A (1B1001B12F)
// Kana Supplement (1B0001B0FF)
// Kanbun (3190319F)
// Katakana (30A030FF)
// Katakana Phonetic Extensions (31F031FF)
// Lisu (A4D0A4FF)
// Miao (16F0016F9F)
// Nushu (1B1701B2FF)
// Tangut (17000187EC)
// Tangut Components (1880018AFF)
// Yi Syllables (A000A48F)
// Yi Radicals (A490A4CF)
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 = ("<m_nCsvTxtEncoding>" + option.asc_getCodePage() + "</m_nCsvTxtEncoding>");
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 += ("<m_nCsvTxtEncoding>" + option.asc_getCodePage() + "</m_nCsvTxtEncoding>");
if (null != delimiter) {
_param += ("<m_nCsvDelimiter>" + delimiter + "</m_nCsvDelimiter>");
}
if (null != delimiterChar) {
_param += ("<m_nCsvDelimiterChar>" + delimiterChar + "</m_nCsvDelimiterChar>");
}
window["AscDesktopEditor"]["SetAdvancedOptions"](_param);
}
else if (window["Asc"].c_oAscAdvancedOptionsID.DRM === idOption)
{
var _param = ("<m_sPassword>" + AscCommon.CopyPasteCorrectString(option.asc_getPassword()) + "</m_sPassword>");
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_oAscCollaborativeMarksShowType = {
All : 0,
LastChanges : 1
};
/** @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_oAscAlignType = {
LEFT : 0,
CENTER : 1,
RIGHT : 2,
JUSTIFY : 3,
TOP : 4,
MIDDLE : 5,
BOTTOM : 6
};
/** @enum {number} */
var c_oAscContextMenuTypes = {
Main : 0,
Thumbnails : 1
};
var THEME_THUMBNAIL_WIDTH = 180;
var THEME_THUMBNAIL_HEIGHT = 135;
var LAYOUT_THUMBNAIL_WIDTH = 180;
var LAYOUT_THUMBNAIL_HEIGHT = 135;
/** @enum {number} */
var c_oAscTableSelectionType = {
Cell : 0,
Row : 1,
Column : 2,
Table : 3
};
/** @enum {number} */
var c_oAscAlignShapeType = {
ALIGN_LEFT : 0,
ALIGN_RIGHT : 1,
ALIGN_TOP : 2,
ALIGN_BOTTOM : 3,
ALIGN_CENTER : 4,
ALIGN_MIDDLE : 5
};
/** @enum {number} */
var c_oAscTableLayout = {
AutoFit : 0x00,
Fixed : 0x01
};
/** @enum {number} */
var c_oAscSlideTransitionTypes = {
None : 0,
Fade : 1,
Push : 2,
Wipe : 3,
Split : 4,
UnCover : 5,
Cover : 6,
Clock : 7,
Zoom : 8
};
/** @enum {number} */
var c_oAscSlideTransitionParams = {
Fade_Smoothly : 0,
Fade_Through_Black : 1,
Param_Left : 0,
Param_Top : 1,
Param_Right : 2,
Param_Bottom : 3,
Param_TopLeft : 4,
Param_TopRight : 5,
Param_BottomLeft : 6,
Param_BottomRight : 7,
Split_VerticalIn : 8,
Split_VerticalOut : 9,
Split_HorizontalIn : 10,
Split_HorizontalOut : 11,
Clock_Clockwise : 0,
Clock_Counterclockwise : 1,
Clock_Wedge : 2,
Zoom_In : 0,
Zoom_Out : 1,
Zoom_AndRotate : 2
};
/** @enum {number} */
var c_oAscLockTypeElemPresentation = {
Object : 1,
Slide : 2,
Presentation : 3
};
var c_oSerFormat = {
Version : 1,
Signature : "PPTY"
};
var TABLE_STYLE_WIDTH_PIX = 70;
var TABLE_STYLE_HEIGHT_PIX = 50;
//------------------------------------------------------------export---------------------------------------------------
var prot;
window['Asc'] = window['Asc'] || {};
prot = window['Asc']['c_oAscCollaborativeMarksShowType'] = c_oAscCollaborativeMarksShowType;
prot['All'] = c_oAscCollaborativeMarksShowType.All;
prot['LastChanges'] = c_oAscCollaborativeMarksShowType.LastChanges;
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_oAscContextMenuTypes'] = window['Asc'].c_oAscContextMenuTypes = c_oAscContextMenuTypes;
prot['Main'] = c_oAscContextMenuTypes.Main;
prot['Thumbnails'] = c_oAscContextMenuTypes.Thumbnails;
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_oAscTableLayout'] = c_oAscTableLayout;
prot['AutoFit'] = c_oAscTableLayout.AutoFit;
prot['Fixed'] = c_oAscTableLayout.Fixed;
prot = window['Asc']['c_oAscSlideTransitionTypes'] = c_oAscSlideTransitionTypes;
prot['None'] = c_oAscSlideTransitionTypes.None;
prot['Fade'] = c_oAscSlideTransitionTypes.Fade;
prot['Push'] = c_oAscSlideTransitionTypes.Push;
prot['Wipe'] = c_oAscSlideTransitionTypes.Wipe;
prot['Split'] = c_oAscSlideTransitionTypes.Split;
prot['UnCover'] = c_oAscSlideTransitionTypes.UnCover;
prot['Cover'] = c_oAscSlideTransitionTypes.Cover;
prot['Clock'] = c_oAscSlideTransitionTypes.Clock;
prot['Zoom'] = c_oAscSlideTransitionTypes.Zoom;
prot = window['Asc']['c_oAscSlideTransitionParams'] = c_oAscSlideTransitionParams;
prot['Fade_Smoothly'] = c_oAscSlideTransitionParams.Fade_Smoothly;
prot['Fade_Through_Black'] = c_oAscSlideTransitionParams.Fade_Through_Black;
prot['Param_Left'] = c_oAscSlideTransitionParams.Param_Left;
prot['Param_Top'] = c_oAscSlideTransitionParams.Param_Top;
prot['Param_Right'] = c_oAscSlideTransitionParams.Param_Right;
prot['Param_Bottom'] = c_oAscSlideTransitionParams.Param_Bottom;
prot['Param_TopLeft'] = c_oAscSlideTransitionParams.Param_TopLeft;
prot['Param_TopRight'] = c_oAscSlideTransitionParams.Param_TopRight;
prot['Param_BottomLeft'] = c_oAscSlideTransitionParams.Param_BottomLeft;
prot['Param_BottomRight'] = c_oAscSlideTransitionParams.Param_BottomRight;
prot['Split_VerticalIn'] = c_oAscSlideTransitionParams.Split_VerticalIn;
prot['Split_VerticalOut'] = c_oAscSlideTransitionParams.Split_VerticalOut;
prot['Split_HorizontalIn'] = c_oAscSlideTransitionParams.Split_HorizontalIn;
prot['Split_HorizontalOut'] = c_oAscSlideTransitionParams.Split_HorizontalOut;
prot['Clock_Clockwise'] = c_oAscSlideTransitionParams.Clock_Clockwise;
prot['Clock_Counterclockwise'] = c_oAscSlideTransitionParams.Clock_Counterclockwise;
prot['Clock_Wedge'] = c_oAscSlideTransitionParams.Clock_Wedge;
prot['Zoom_In'] = c_oAscSlideTransitionParams.Zoom_In;
prot['Zoom_Out'] = c_oAscSlideTransitionParams.Zoom_Out;
prot['Zoom_AndRotate'] = c_oAscSlideTransitionParams.Zoom_AndRotate;
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;
}
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 CCollaborativeEditing()
{
AscCommon.CCollaborativeEditingBase.call(this);
this.m_oLogicDocument = null;
this.m_aDocumentPositions = new AscCommon.CDocumentPositionsManager();
this.m_aForeignCursorsPos = new AscCommon.CDocumentPositionsManager();
this.m_aForeignCursors = {};
this.PosExtChangesX = [];
this.PosExtChangesY = [];
this.ScaleX = null;
this.ScaleY = null;
this.m_aForeignCursorsXY = {};
this.m_aForeignCursorsToShow = {};
}
CCollaborativeEditing.prototype = Object.create(AscCommon.CCollaborativeEditingBase.prototype);
CCollaborativeEditing.prototype.constructor = CCollaborativeEditing;
CCollaborativeEditing.prototype.Send_Changes = function(IsUserSave, AdditionalInfo, IsUpdateInterface, isAfterAskSave)
{
// Пересчитываем позиции
this.Refresh_DCChanges();
this.RefreshPosExtChanges();
// Генерируем свои изменения
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 bCollaborative = this.getCollaborativeEditing();
var num_arr = [];
if (bCollaborative)
{
var map = 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);
if(Class.getObjectType && Class.getObjectType() === AscDFH.historyitem_type_Slide)
{
editor.WordControl.m_oLogicDocument.DrawingDocument.UnLockSlide(Class.num);
}
if(Class instanceof AscCommonSlide.PropLocker)
{
var Class2 = AscCommon.g_oTableId.Get_ById(Class.objectId);
if(Class2 && Class2.getObjectType && Class2.getObjectType() === AscDFH.historyitem_type_Slide && Class2.deleteLock === Class)
{
editor.WordControl.m_oLogicDocument.DrawingDocument.UnLockSlide(Class2.num);
}
}
var check_obj = null;
if(Class.getObjectType)
{
if( (Class.getObjectType() === AscDFH.historyitem_type_Shape
|| Class.getObjectType() === AscDFH.historyitem_type_ImageShape
|| Class.getObjectType() === AscDFH.historyitem_type_GroupShape
|| Class.getObjectType() === AscDFH.historyitem_type_GraphicFrame
|| Class.getObjectType() === AscDFH.historyitem_type_ChartSpace
|| Class.getObjectType() === AscDFH.historyitem_type_OleObject
|| Class.getObjectType() === AscDFH.historyitem_type_Cnx) && AscCommon.isRealObject(Class.parent))
{
if(Class.parent && AscFormat.isRealNumber(Class.parent.num))
{
map[Class.parent.num] = true;
}
check_obj =
{
"type": c_oAscLockTypeElemPresentation.Object,
"slideId": Class.parent.Get_Id(),
"objId": Class.Get_Id(),
"guid": Class.Get_Id()
};
}
else if(Class.getObjectType() === AscDFH.historyitem_type_Slide)
{
check_obj =
{
"type": c_oAscLockTypeElemPresentation.Slide,
"val": Class.Get_Id(),
"guid": Class.Get_Id()
};
}
else if(Class instanceof AscCommon.CComment){
if(Class.Parent && Class.Parent.slide){
if(Class.Parent.slide === editor.WordControl.m_oLogicDocument){
check_obj =
{
"type": c_oAscLockTypeElemPresentation.Slide,
"val": editor.WordControl.m_oLogicDocument.commentsLock.Get_Id(),
"guid": editor.WordControl.m_oLogicDocument.commentsLock.Get_Id()
};
}
else {
check_obj =
{
"type": c_oAscLockTypeElemPresentation.Object,
"slideId": Class.Parent.slide.deleteLock.Get_Id(),
"objId": Class.Get_Id(),
"guid": Class.Get_Id()
};
map[Class.Parent.slide.num] = true;
}
}
}
if(check_obj)
editor.CoAuthoringApi.releaseLocks( check_obj );
}
}
if(editor.WordControl.m_oDrawingDocument.IsLockObjectsEnable)
{
for(var key in map)
{
if(map.hasOwnProperty(key))
{
num_arr.push(parseInt(key, 10));
}
}
num_arr.sort(AscCommon.fSortAscending);
}
this.m_aNeedUnlock.length = 0;
this.m_aNeedUnlock2.length = 0;
}
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);
}
for(var i = 0; i < num_arr.length; ++i)
{
editor.WordControl.m_oDrawingDocument.OnRecalculatePage(num_arr[i], editor.WordControl.m_oLogicDocument.Slides[num_arr[i]]);
}
if(num_arr.length > 0)
{
editor.WordControl.m_oDrawingDocument.OnEndRecalculate();
}
var oSlide = editor.WordControl.m_oLogicDocument.Slides[editor.WordControl.m_oLogicDocument.CurPage];
if(oSlide && oSlide.notesShape){
editor.WordControl.m_oDrawingDocument.Notes_OnRecalculate(editor.WordControl.m_oLogicDocument.CurPage, oSlide.NotesWidth, oSlide.getNotesHeight());
}
editor.WordControl.m_oLogicDocument.Document_UpdateInterfaceState();
editor.WordControl.m_oLogicDocument.Document_UpdateUndoRedoState();
// editor.WordControl.m_oLogicDocument.DrawingDocument.ClearCachePages();
// editor.WordControl.m_oLogicDocument.DrawingDocument.FirePaint();
};
AscCommon.CCollaborativeEditingBase.prototype.Refresh_ForeignCursors = function()
{
for (var UserId in this.m_aCursorsToUpdate)
{
var CursorInfo = this.m_aCursorsToUpdate[UserId];
editor.WordControl.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 = {};
};
CCollaborativeEditing.prototype.Release_Locks = function()
{
var map_redraw = {};
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 )
{
//if(this.m_aNeedUnlock[Index] instanceof AscCommonSlide.Slide) //TODO: проверять LockObject
// editor.WordControl.m_oLogicDocument.DrawingDocument.UnLockSlide(this.m_aNeedUnlock[Index].num);
var Class = this.m_aNeedUnlock[Index];
this.m_aNeedUnlock[Index].Lock.Set_Type( AscCommon.locktype_None, false);
if ( Class instanceof AscCommonSlide.PropLocker )
{
var object = AscCommon.g_oTableId.Get_ById(Class.objectId);
if(object instanceof AscCommonSlide.CPresentation)
{
if(Class === editor.WordControl.m_oLogicDocument.themeLock)
{
editor.sendEvent("asc_onUnLockDocumentTheme");
}
else if(Class === editor.WordControl.m_oLogicDocument.schemeLock)
{
editor.sendEvent("asc_onUnLockDocumentSchema");
}
else if(Class === editor.WordControl.m_oLogicDocument.slideSizeLock)
{
editor.sendEvent("asc_onUnLockDocumentProps");
}
}
if(object.getObjectType && object.getObjectType() === AscDFH.historyitem_type_Slide && object.deleteLock === Class)
{
editor.WordControl.m_oLogicDocument.DrawingDocument.UnLockSlide(object.num);
}
}
if(Class instanceof AscCommon.CComment)
{
editor.sync_UnLockComment(Class.Get_Id());
if(Class.Parent && Class.Parent.slide && editor.WordControl.m_oLogicDocument !== Class.Parent.slide)
{
map_redraw[Class.Parent.slide.num] = true;
}
}
}
else if ( AscCommon.locktype_Other3 === CurLockType )
{
this.m_aNeedUnlock[Index].Lock.Set_Type( AscCommon.locktype_Other, false);
if(this.m_aNeedUnlock[Index] instanceof AscCommonSlide.Slide)
editor.WordControl.m_oLogicDocument.DrawingDocument.LockSlide(this.m_aNeedUnlock[Index].num);
}
if(this.m_aNeedUnlock[Index].parent && AscFormat.isRealNumber(this.m_aNeedUnlock[Index].parent.num))
{
map_redraw[this.m_aNeedUnlock[Index].parent.num] = true;
}
}
return map_redraw;
};
CCollaborativeEditing.prototype.OnEnd_Load_Objects = function()
{
// Данная функция вызывается, когда загрузились внешние объекты (картинки и шрифты)
// Снимаем лок
AscCommon.CollaborativeEditing.Set_GlobalLock(false);
AscCommon.CollaborativeEditing.Set_GlobalLockSelection(false);
// Запускаем полный пересчет документа
var LogicDocument = editor.WordControl.m_oLogicDocument;
var RecalculateData =
{
Drawings: {
All: true
},
Map: {
}
};
LogicDocument.Recalculate(RecalculateData);
LogicDocument.Document_UpdateSelectionState();
LogicDocument.Document_UpdateInterfaceState();
editor.sync_EndAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.ApplyChanges);
};
CCollaborativeEditing.prototype.OnEnd_CheckLock = function()
{
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 ( 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];
var items = [];
switch(oItem["type"])
{
case c_oAscLockTypeElemPresentation.Object:
{
items.push(oItem["objId"]);
items.push(oItem["slideId"]);
break;
}
case c_oAscLockTypeElemPresentation.Slide:
{
items.push(oItem["val"]);
break;
}
case c_oAscLockTypeElemPresentation.Presentation:
{
break;
}
}
for(var i = 0; i < items.length; ++i)
{
var item = items[i];
if ( true !== item && false !== item ) // сравниваем по значению и типу обязательно
{
var Class = AscCommon.g_oTableId.Get_ById( item );
if ( null != Class )
{
Class.Lock.Set_Type( AscCommon.locktype_Mine, false );
if(Class instanceof AscCommonSlide.Slide)
editor.WordControl.m_oLogicDocument.DrawingDocument.UnLockSlide(Class.num);
this.Add_Unlock2( Class );
}
}
}
}
this.m_aCheckLocks.length = 0;
}
}
return false;
};
CCollaborativeEditing.prototype.OnCallback_AskLock = function(result)
{
if (true === AscCommon.CollaborativeEditing.Get_GlobalLock())
{
if (false == editor.checkLongActionCallback(AscCommon.CollaborativeEditing.OnCallback_AskLock, result))
return;
// Снимаем глобальный лок
AscCommon.CollaborativeEditing.Set_GlobalLock(false);
if (result["lock"])
{
// Пробегаемся по массиву и проставляем, что залочено нами
var Count = AscCommon.CollaborativeEditing.m_aCheckLocks.length;
for ( var Index = 0; Index < Count; Index++ )
{
var oItem = AscCommon.CollaborativeEditing.m_aCheckLocks[Index];
var item;
switch(oItem["type"])
{
case c_oAscLockTypeElemPresentation.Object:
{
item = oItem["objId"];
break;
}
case c_oAscLockTypeElemPresentation.Slide:
{
item = oItem["val"];
break;
}
case c_oAscLockTypeElemPresentation.Presentation:
{
break;
}
}
if ( true !== oItem && false !== oItem ) // сравниваем по значению и типу обязательно
{
var Class = AscCommon.g_oTableId.Get_ById( item );
if ( null != Class )
{
Class.Lock.Set_Type( AscCommon.locktype_Mine );
if(Class instanceof AscCommonSlide.Slide)
editor.WordControl.m_oLogicDocument.DrawingDocument.UnLockSlide(Class.num);
AscCommon.CollaborativeEditing.Add_Unlock2( Class );
}
}
}
}
else if (result["error"])
{
// Если у нас началось редактирование диаграммы, а вернулось, что ее редактировать нельзя,
// посылаем сообщение о закрытии редактора диаграмм.
if ( true === editor.isChartEditor )
editor.sync_closeChartEditor();
// Делаем откат на 1 шаг назад и удаляем из Undo/Redo эту последнюю точку
editor.WordControl.m_oLogicDocument.Document_Undo();
AscCommon.History.Clear_Redo();
}
}
editor.isChartEditor = false;
};
CCollaborativeEditing.prototype.AddPosExtChanges = function(Item, ChangeObject)
{
if(ChangeObject.IsHorizontal())
{
this.PosExtChangesX.push(Item);
}
else
{
this.PosExtChangesY.push(Item);
}
};
CCollaborativeEditing.prototype.RewritePosExtChanges = function(changesArr, scale)
{
for(var i = 0; i < changesArr.length; ++i)
{
var changes = changesArr[i];
var data = changes.Data;
data.New *= scale;
data.Old *= scale;
var Binary_Writer = AscCommon.History.BinaryWriter;
var Binary_Pos = Binary_Writer.GetCurPosition();
Binary_Writer.WriteString2(changes.Class.Get_Id());
Binary_Writer.WriteLong(changes.Data.Type);
changes.Data.WriteToBinary(Binary_Writer);
var Binary_Len = Binary_Writer.GetCurPosition() - Binary_Pos;
changes.Binary.Pos = Binary_Pos;
changes.Binary.Len = Binary_Len;
}
};
CCollaborativeEditing.prototype.RefreshPosExtChanges = function()
{
if(this.ScaleX != null && this.ScaleY != null)
{
this.RewritePosExtChanges(this.PosExtChangesX, this.ScaleX);
this.RewritePosExtChanges(this.PosExtChangesY, this.ScaleY);
}
this.PosExtChangesX.length = 0;
this.PosExtChangesY.length = 0;
this.ScaleX = null;
this.ScaleY = null;
};
CCollaborativeEditing.prototype.Update_ForeignCursorsPositions = function()
{
var DrawingDocument = editor.WordControl.m_oDrawingDocument;
var oPresentation = editor.WordControl.m_oLogicDocument;
var oTargetDocContentOrTable;
var oCurController = oPresentation.GetCurrentController();
if(oCurController){
oTargetDocContentOrTable = oCurController.getTargetDocContent(undefined, true);
}
if(!oTargetDocContentOrTable){
for (var UserId in this.m_aForeignCursors){
DrawingDocument.Collaborative_RemoveTarget(UserId);
}
return;
}
var bTable = (oTargetDocContentOrTable instanceof AscCommonWord.CTable);
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, oTargetDocContentOrTable, bTable);
}
};
CCollaborativeEditing.prototype.Update_ForeignCursorPosition = function(UserId, Run, InRunPos, isRemoveLabel, oTargetDocContentOrTable, bTable){
if (!(Run instanceof AscCommonWord.ParaRun))
return;
var DrawingDocument = editor.WordControl.m_oDrawingDocument;
var oPresentation = editor.WordControl.m_oLogicDocument;
var Paragraph = Run.GetParagraph();
if (!Paragraph || !Paragraph.Parent){
DrawingDocument.Collaborative_RemoveTarget(UserId);
return;
}
if(!bTable){
if(oTargetDocContentOrTable !== Paragraph.Parent){
DrawingDocument.Collaborative_RemoveTarget(UserId);
return;
}
}
else{
if(!Paragraph.Parent.Parent || !Paragraph.Parent.Parent.Row ||
!Paragraph.Parent.Parent.Row.Table || Paragraph.Parent.Parent.Row.Table !== oTargetDocContentOrTable){
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, oPresentation.CurPage, 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);
}
};
CCollaborativeEditing.prototype.Check_ForeignCursorsLabels = function(X, Y, PageIndex){
var DrawingDocument = editor.WordControl.m_oDrawingDocument;
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){
this.Show_ForeignCursorLabel(UserId);
}
}
};
CCollaborativeEditing.prototype.Show_ForeignCursorLabel = function(UserId)
{
var Api = editor;
var DrawingDocument = editor.WordControl.m_oDrawingDocument;
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);
};
CCollaborativeEditing.prototype.Add_ForeignCursorToShow = function(UserId)
{
this.m_aForeignCursorsToShow[UserId] = true;
};
CCollaborativeEditing.prototype.Remove_ForeignCursorToShow = function(UserId)
{
delete this.m_aForeignCursorsToShow[UserId];
};
CCollaborativeEditing.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)
{
clearTimeout(Cursor.ShowId);
Cursor.ShowId = null;
editor.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;
}
};
CCollaborativeEditing.prototype.Remove_ForeignCursorXY = function(UserId)
{
if (this.m_aForeignCursorsXY[UserId])
{
if (this.m_aForeignCursorsXY[UserId].ShowId)
{
editor.sync_HideForeignCursorLabel(UserId);
clearTimeout(this.m_aForeignCursorsXY[UserId].ShowId);
}
delete this.m_aForeignCursorsXY[UserId];
}
};
CCollaborativeEditing.prototype.Update_ForeignCursorLabelPosition = function(UserId, X, Y, Color)
{
var Cursor = this.m_aForeignCursorsXY[UserId];
if (!Cursor || !Cursor.ShowId)
return;
editor.sync_ShowForeignCursorLabel(UserId, X, Y, Color);
};
CCollaborativeEditing.prototype.private_RecalculateDocument = function(oRecalcData){
this.m_oLogicDocument.Recalculate(oRecalcData);
};
//--------------------------------------------------------export----------------------------------------------------
window['AscCommon'] = window['AscCommon'] || {};
window['AscCommon'].CollaborativeEditing = new CCollaborativeEditing();
/*
* (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()
{
};
baseEditorsApi.prototype.asc_addImage = function()
{
var t = this;
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 = ("<m_sPassword>" + AscCommon.CopyPasteCorrectString(obj["password"]) + "</m_sPassword>");
_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 c_oAscAdvancedOptionsAction = AscCommon.c_oAscAdvancedOptionsAction;
var DownloadType = AscCommon.DownloadType;
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_Drawing_Props = AscCommon.changestype_Drawing_Props;
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_oAscAsyncActionType = Asc.c_oAscAsyncActionType;
var c_oAscTypeSelectElement = Asc.c_oAscTypeSelectElement;
var c_oAscFill = Asc.c_oAscFill;
var asc_CShapeFill = Asc.asc_CShapeFill;
var asc_CFillBlip = Asc.asc_CFillBlip;
function CAscSlideProps()
{
this.Background = null;
this.Timing = null;
this.LayoutIndex = null;
this.lockDelete = null;
this.lockLayout = null;
this.lockTiming = null;
this.lockBackground = null;
this.lockTranzition = null;
this.lockRemove = null;
this.isHidden = false;
}
CAscSlideProps.prototype.get_background = function()
{
return this.Background;
};
CAscSlideProps.prototype.put_background = function(v)
{
this.Background = v;
};
CAscSlideProps.prototype.get_LayoutIndex = function()
{
return this.LayoutIndex;
};
CAscSlideProps.prototype.put_LayoutIndex = function(v)
{
this.LayoutIndex = v;
};
CAscSlideProps.prototype.get_timing = function()
{
return this.Timing;
};
CAscSlideProps.prototype.put_timing = function(v)
{
this.Timing = v;
};
CAscSlideProps.prototype.get_LockDelete = function()
{
return this.lockDelete;
};
CAscSlideProps.prototype.put_LockDelete = function(v)
{
this.lockDelete = v;
};
CAscSlideProps.prototype.get_LockLayout = function()
{
return this.lockLayout;
};
CAscSlideProps.prototype.put_LockLayout = function(v)
{
this.lockLayout = v;
};
CAscSlideProps.prototype.get_LockTiming = function()
{
return this.lockTiming;
};
CAscSlideProps.prototype.put_LockTiming = function(v)
{
this.lockTiming = v;
};
CAscSlideProps.prototype.get_LockBackground = function()
{
return this.lockBackground;
};
CAscSlideProps.prototype.put_LockBackground = function(v)
{
this.lockBackground = v;
};
CAscSlideProps.prototype.get_LockTranzition = function()
{
return this.lockTranzition;
};
CAscSlideProps.prototype.put_LockTranzition = function(v)
{
this.lockTranzition = v;
};
CAscSlideProps.prototype.get_LockRemove = function()
{
return this.lockRemove;
};
CAscSlideProps.prototype.put_LockRemove = function(v)
{
this.lockRemove = v;
};
CAscSlideProps.prototype.get_IsHidden = function()
{
return this.isHidden;
};
function CAscChartProp(obj)
{
if (obj)
{
this.Width = (undefined != obj.w) ? obj.w : undefined;
this.Height = (undefined != obj.h) ? obj.h : undefined;
this.Position = new Asc.CPosition({X : obj.x, Y : obj.y});
this.Locked = (undefined != obj.locked) ? obj.locked : false;
this.lockAspect = (undefined != obj.lockAspect) ? obj.lockAspect : false;
this.ChartProperties = (undefined != obj.chartProps) ? obj.chartProps : 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.title = obj.title != undefined ? obj.title : undefined;
this.description = obj.description != undefined ? obj.description : undefined;
}
else
{
this.Width = undefined;
this.Height = undefined;
this.Position = undefined;
this.Locked = false;
this.lockAspect = undefined;
this.ChartProperties = new Asc.asc_ChartSettings();
this.severalCharts = false;
this.severalChartTypes = undefined;
this.severalChartStyles = undefined;
this.title = undefined;
this.description = undefined;
}
}
CAscChartProp.prototype.get_ChangeLevel = function()
{
return this.ChangeLevel;
};
CAscChartProp.prototype.put_ChangeLevel = function(v)
{
this.ChangeLevel = v;
};
CAscChartProp.prototype.get_CanBeFlow = function()
{
return this.CanBeFlow;
};
CAscChartProp.prototype.get_Width = function()
{
return this.Width;
};
CAscChartProp.prototype.put_Width = function(v)
{
this.Width = v;
};
CAscChartProp.prototype.get_Height = function()
{
return this.Height;
};
CAscChartProp.prototype.put_Height = function(v)
{
this.Height = v;
};
CAscChartProp.prototype.get_WrappingStyle = function()
{
return this.WrappingStyle;
};
CAscChartProp.prototype.put_WrappingStyle = function(v)
{
this.WrappingStyle = v;
};
// Возвращается объект класса Asc.asc_CPaddings
CAscChartProp.prototype.get_Paddings = function()
{
return this.Paddings;
};
// Аргумент объект класса Asc.asc_CPaddings
CAscChartProp.prototype.put_Paddings = function(v)
{
this.Paddings = v;
};
CAscChartProp.prototype.get_AllowOverlap = function()
{
return this.AllowOverlap;
};
CAscChartProp.prototype.put_AllowOverlap = function(v)
{
this.AllowOverlap = v;
};
// Возвращается объект класса CPosition
CAscChartProp.prototype.get_Position = function()
{
return this.Position;
};
// Аргумент объект класса CPosition
CAscChartProp.prototype.put_Position = function(v)
{
this.Position = v;
};
CAscChartProp.prototype.get_PositionH = function()
{
return this.PositionH;
};
CAscChartProp.prototype.put_PositionH = function(v)
{
this.PositionH = v;
};
CAscChartProp.prototype.get_PositionV = function()
{
return this.PositionV;
};
CAscChartProp.prototype.put_PositionV = function(v)
{
this.PositionV = v;
};
CAscChartProp.prototype.get_Value_X = function(RelativeFrom)
{
if (null != this.Internal_Position) return this.Internal_Position.Calculate_X_Value(RelativeFrom);
return 0;
};
CAscChartProp.prototype.get_Value_Y = function(RelativeFrom)
{
if (null != this.Internal_Position) return this.Internal_Position.Calculate_Y_Value(RelativeFrom);
return 0;
};
CAscChartProp.prototype.get_ImageUrl = function()
{
return this.ImageUrl;
};
CAscChartProp.prototype.put_ImageUrl = function(v)
{
this.ImageUrl = v;
};
CAscChartProp.prototype.get_Group = function()
{
return this.Group;
};
CAscChartProp.prototype.put_Group = function(v)
{
this.Group = v;
};
CAscChartProp.prototype.asc_getFromGroup = function()
{
return this.fromGroup;
};
CAscChartProp.prototype.asc_putFromGroup = function(v)
{
this.fromGroup = v;
};
CAscChartProp.prototype.get_isChartProps = function()
{
return this.isChartProps;
};
CAscChartProp.prototype.put_isChartPross = function(v)
{
this.isChartProps = v;
};
CAscChartProp.prototype.get_SeveralCharts = function()
{
return this.severalCharts;
};
CAscChartProp.prototype.put_SeveralCharts = function(v)
{
this.severalCharts = v;
};
CAscChartProp.prototype.get_SeveralChartTypes = function()
{
return this.severalChartTypes;
};
CAscChartProp.prototype.put_SeveralChartTypes = function(v)
{
this.severalChartTypes = v;
};
CAscChartProp.prototype.get_SeveralChartStyles = function()
{
return this.severalChartStyles;
};
CAscChartProp.prototype.put_SeveralChartStyles = function(v)
{
this.severalChartStyles = v;
};
CAscChartProp.prototype.get_VerticalTextAlign = function()
{
return this.verticalTextAlign;
};
CAscChartProp.prototype.put_VerticalTextAlign = function(v)
{
this.verticalTextAlign = v;
};
CAscChartProp.prototype.get_Locked = function()
{
return this.Locked;
};
CAscChartProp.prototype.get_ChartProperties = function()
{
return this.ChartProperties;
};
CAscChartProp.prototype.put_ChartProperties = function(v)
{
this.ChartProperties = v;
};
CAscChartProp.prototype.get_ShapeProperties = function()
{
return this.ShapeProperties;
};
CAscChartProp.prototype.put_ShapeProperties = function(v)
{
this.ShapeProperties = v;
};
CAscChartProp.prototype.asc_getType = function()
{
return this.ChartProperties.asc_getType();
};
CAscChartProp.prototype.asc_getSubType = function()
{
return this.ChartProperties.asc_getSubType();
};
CAscChartProp.prototype.asc_getStyleId = function()
{
return this.ChartProperties.asc_getStyleId();
};
CAscChartProp.prototype.asc_getHeight = function()
{
return this.Height;
};
CAscChartProp.prototype.asc_getWidth = function()
{
return this.Width;
};
CAscChartProp.prototype.asc_setType = function(v)
{
this.ChartProperties.asc_setType(v);
};
CAscChartProp.prototype.asc_setSubType = function(v)
{
this.ChartProperties.asc_setSubType(v);
};
CAscChartProp.prototype.asc_setStyleId = function(v)
{
this.ChartProperties.asc_setStyleId(v);
};
CAscChartProp.prototype.asc_setHeight = function(v)
{
this.Height = v;
};
CAscChartProp.prototype.asc_setWidth = function(v)
{
this.Width = v;
};
CAscChartProp.prototype.asc_setTitle = function(v)
{
this.title = v;
};
CAscChartProp.prototype.asc_setDescription = function(v)
{
this.description = v;
};
CAscChartProp.prototype.asc_getTitle = function()
{
return this.title;
};
CAscChartProp.prototype.asc_getDescription = function()
{
return this.description;
};
CAscChartProp.prototype.getType = function()
{
return this.ChartProperties && this.ChartProperties.getType();
};
CAscChartProp.prototype.putType = function(v)
{
return this.ChartProperties && this.ChartProperties.putType(v);
};
CAscChartProp.prototype.getStyle = function()
{
return this.ChartProperties && this.ChartProperties.getStyle();
};
CAscChartProp.prototype.putStyle = function(v)
{
return this.ChartProperties && this.ChartProperties.putStyle(v);
};
CAscChartProp.prototype.getLockAspect = function()
{
return this.lockAspect;
};
CAscChartProp.prototype.putLockAspect = function(v)
{
return this.lockAspect = v;
};
CAscChartProp.prototype.changeType = function(v)
{
return this.ChartProperties && this.ChartProperties.changeType(v);
};
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;
};
// CSearchResult - returns result of searching
function CSearchResult(obj)
{
this.Object = obj;
}
CSearchResult.prototype.get_Text = function()
{
return this.Object.text;
};
CSearchResult.prototype.get_Navigator = function()
{
return this.Object.navigator;
};
CSearchResult.prototype.put_Navigator = function(obj)
{
this.Object.navigator = obj;
};
CSearchResult.prototype.put_Text = function(obj)
{
this.Object.text = obj;
};
/**
*
* @param config
* @constructor
* @extends {AscCommon.baseEditorsApi}
*/
function asc_docs_api(config)
{
AscCommon.baseEditorsApi.call(this, config, AscCommon.c_oEditorId.Presentation);
/************ private!!! **************/
this.WordControl = null;
this.documentFormatSave = c_oAscFileType.PPTX;
this.ThemeLoader = null;
this.tmpThemesPath = null;
this.tmpIsFreeze = null;
this.tmpSlideDiv = null;
this.tmpTextArtDiv = null;
this.tmpViewRulers = null;
this.tmpZoomType = null;
// Spell Checking
this.SpellCheckApi = new AscCommon.CSpellCheckApi();
this.isSpellCheckEnable = true;
this.DocumentUrl = "";
this.bNoSendComments = false;
this.isApplyChangesOnOpen = false;
this.IsSpellCheckCurrentWord = false;
this.IsSupportEmptyPresentation = true;
this.ShowParaMarks = false;
this.ShowSnapLines = true;
this.isAddSpaceBetweenPrg = false;
this.isPageBreakBefore = false;
this.isKeepLinesTogether = false;
this.isPresentationEditor = true;
this.bAlignBySelected = false;
this.bSelectedSlidesTheme = false;
this.isPaintFormat = AscCommon.c_oAscFormatPainterState.kOff;
this.isShowTableEmptyLine = false;//true;
this.isShowTableEmptyLineAttack = false;//true;
this.bInit_word_control = false;
this.isDocumentModify = false;
this.isImageChangeUrl = false;
this.isShapeImageChangeUrl = false;
this.isSlideImageChangeUrl = false;
this.textureType = null;
this.isPasteFonts_Images = false;
this.nCurPointItemsLength = -1;
this.pasteCallback = null;
this.pasteImageMap = null;
this.EndActionLoadImages = 0;
this.isSaveFonts_Images = false;
this.saveImageMap = null;
this.ServerImagesWaitComplete = false;
this.DocumentOrientation = false;
this.SelectedObjectsStack = [];
this.CoAuthoringApi.isPowerPoint = true;
// объекты, нужные для отправки в тулбар (шрифты, стили)
this._gui_editor_themes = null;
this._gui_document_themes = null;
this.EndShowMessage = undefined;
this.isOnlyDemonstration = false;
if (window.editor == undefined)
{
window.editor = this;
window.editor;
window['editor'] = window.editor;
if (window["NATIVE_EDITOR_ENJINE"])
editor = window.editor;
}
this.reporterWindow = null;
this.reporterWindowCounter = 0;
this.reporterStartObject = null;
this.isReporterMode = ("reporter" == config['using']) ? true : false;
this.disableReporterEvents = false;
if (this.isReporterMode)
{
var _windowOnResize = function() {
if (undefined != window._resizeTimeout && -1 != window._resizeTimeout)
clearTimeout(window._resizeTimeout);
window._resizeTimeout = setTimeout(function() {
window.editor.Resize();
window._resizeTimeout = -1;
}, 50);
};
if (window.addEventListener)
{
window.addEventListener("resize", _windowOnResize, false);
}
else if (window.attachEvent)
{
window.attachEvent("onresize", _windowOnResize);
}
else
{
window["onresize"] = _windowOnResize;
}
}
if (this.isReporterMode)
this.watermarkDraw = null;
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;
};
/////////////////////////////////////////////////////////////////////////
///////////////////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'])
{
editor.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 block_value = e["blockValue"];
var classes = [];
switch (block_value["type"])
{
case c_oAscLockTypeElemPresentation.Object:
{
classes.push(block_value["objId"]);
//classes.push(block_value["slideId"]);
break;
}
case c_oAscLockTypeElemPresentation.Slide:
{
classes.push(block_value["val"]);
break;
}
case c_oAscLockTypeElemPresentation.Presentation:
{
break;
}
}
for (var i = 0; i < classes.length; ++i)
{
var Class = g_oTableId.Get_ById(classes[i]);// g_oTableId.Get_ById( Id );
if (null != Class)
{
var Lock = Class.Lock;
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 AscCommonSlide.PropLocker)
{
var object = g_oTableId.Get_ById(Class.objectId);
if (object instanceof AscCommonSlide.Slide && Class === object.deleteLock)
{
editor.WordControl.m_oLogicDocument.DrawingDocument.LockSlide(object.num);
}
}
// Выставляем ID пользователя, залочившего данный элемент
Lock.Set_UserId(e["user"]);
if (Class instanceof AscCommonSlide.PropLocker)
{
var object = g_oTableId.Get_ById(Class.objectId);
if (object instanceof AscCommonSlide.CPresentation)
{
if (Class === editor.WordControl.m_oLogicDocument.themeLock)
{
editor.sendEvent("asc_onLockDocumentTheme");
}
else if (Class === editor.WordControl.m_oLogicDocument.schemeLock)
{
editor.sendEvent("asc_onLockDocumentSchema");
}
else if (Class === editor.WordControl.m_oLogicDocument.slideSizeLock)
{
editor.sendEvent("asc_onLockDocumentProps");
}
}
}
if (Class instanceof AscCommon.CComment)
{
editor.sync_LockComment(Class.Get_Id(), e["user"]);
}
// TODO: Здесь для ускорения надо сделать проверку, является ли текущим элемент с
// заданным Id. Если нет, тогда и не надо обновлять состояние.
editor.WordControl.m_oLogicDocument.Document_UpdateInterfaceState();
}
else
{
if (classes[i].indexOf("new_object") > -1 && block_value["type"] === c_oAscLockTypeElemPresentation.Object)
{
var slide_id = block_value["slideId"];
var delete_lock = g_oTableId.Get_ById(slide_id);
if (AscCommon.isRealObject(delete_lock))
{
var Lock = delete_lock.Lock;
var OldType = Lock.Get_Type();
if (locktype_Other2 === OldType || locktype_Other3 === OldType)
{
Lock.Set_Type(locktype_Other3, true);
}
else
{
Lock.Set_Type(locktype_Other, true);
}
editor.WordControl.m_oLogicDocument.DrawingDocument.LockSlide(g_oTableId.Get_ById(delete_lock.objectId).num);
}
else
{
AscCommon.CollaborativeEditing.Add_NeedLock(slide_id, e["user"]);
}
}
else
{
AscCommon.CollaborativeEditing.Add_NeedLock(classes[i], e["user"]);
}
}
}
}
};
this.CoAuthoringApi.onLocksReleased = function(e, bChanges)
{
if (t._coAuthoringCheckEndOpenDocument(t.CoAuthoringApi.onLocksReleased, e, bChanges))
{
return;
}
var Id;
var block_value = e["block"];
var classes = [];
switch (block_value["type"])
{
case c_oAscLockTypeElemPresentation.Object:
{
classes.push(block_value["objId"]);
//classes.push(block_value["slideId"]);
break;
}
case c_oAscLockTypeElemPresentation.Slide:
{
classes.push(block_value["val"]);
break;
}
case c_oAscLockTypeElemPresentation.Presentation:
{
break;
}
}
for (var i = 0; i < classes.length; ++i)
{
Id = classes[i];
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);
if (Class instanceof AscCommonSlide.PropLocker)
{
var object = g_oTableId.Get_ById(Class.objectId);
if (object instanceof AscCommonSlide.Slide && Class === object.deleteLock)
{
if (NewType !== locktype_Mine && NewType !== locktype_None)
{
editor.WordControl.m_oLogicDocument.DrawingDocument.LockSlide(object.num);
}
else
{
editor.WordControl.m_oLogicDocument.DrawingDocument.UnLockSlide(object.num);
}
}
if (object instanceof AscCommonSlide.CPresentation)
{
if (Class === object.themeLock)
{
if (NewType !== locktype_Mine && NewType !== locktype_None)
{
editor.sendEvent("asc_onLockDocumentTheme");
}
else
{
editor.sendEvent("asc_onUnLockDocumentTheme");
}
}
if (Class === object.slideSizeLock)
{
if (NewType !== locktype_Mine && NewType !== locktype_None)
{
editor.sendEvent("asc_onLockDocumentProps");
}
else
{
editor.sendEvent("asc_onUnLockDocumentProps");
}
}
}
}
}
}
else
{
AscCommon.CollaborativeEditing.Remove_NeedLock(Id);
}
}
};
this.CoAuthoringApi.onSaveChanges = function(e, userId, bFirstLoad)
{
// bSendEvent = false - это означает, что мы загружаем имеющиеся изменения при открытии
var Changes = new AscCommon.CCollaborativeChanges();
Changes.Set_Data(e);
AscCommon.CollaborativeEditing.Add_Changes(Changes);
// т.е. если 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();
this.asc_setDrawCollaborationMarks(true);
if (this.WordControl && this.WordControl.m_oDrawingDocument)
{
this.WordControl.m_oDrawingDocument.Start_CollaborationEditing();
}
};
asc_docs_api.prototype.endCollaborationEditing = function()
{
AscCommon.CollaborativeEditing.End_CollaborationEditing();
if (this.WordControl && this.WordControl.m_oLogicDocument &&
false !== this.WordControl.m_oLogicDocument.DrawingDocument.IsLockObjectsEnable)
{
this.WordControl.m_oLogicDocument.DrawingDocument.IsLockObjectsEnable = false;
this.WordControl.m_oLogicDocument.DrawingDocument.FirePaint();
}
};
/////////////////////////////////////////////////////////////////////////
//////////////////////////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.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.asc_GetRevisionsChangesStack = function()
{
return [];
};
asc_docs_api.prototype.asc_SetFastCollaborative = function(isOn)
{
if (AscCommon.CollaborativeEditing)
AscCommon.CollaborativeEditing.Set_Fast(isOn);
};
asc_docs_api.prototype.sync_CollaborativeChanges = function()
{
if (true !== AscCommon.CollaborativeEditing.Is_Fast())
this.sendEvent("asc_onCollaborativeChanges");
};
asc_docs_api.prototype.asyncServerIdEndLoaded = function()
{
this.ServerIdWaitComplete = true;
this.OpenDocumentEndCallback();
};
// Эвент о пришедщих изменениях
asc_docs_api.prototype.syncCollaborativeChanges = function()
{
this.sendEvent("asc_onCollaborativeChanges");
};
asc_docs_api.prototype.SetCollaborativeMarksShowType = function(Type)
{
this.CollaborativeMarksShowType = Type;
};
asc_docs_api.prototype.GetCollaborativeMarksShowType = function(Type)
{
return this.CollaborativeMarksShowType;
};
asc_docs_api.prototype.Clear_CollaborativeMarks = function()
{
AscCommon.CollaborativeEditing.Clear_CollaborativeMarks(true);
};
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();
};
///////////////////////////////////////////
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.asc_getCurrentFocusObject = function()
{
if (!this.WordControl || !this.WordControl.Thumbnails)
return 1;
return this.WordControl.Thumbnails.FocusObjType;
};
asc_docs_api.prototype.sync_BeginCatchSelectedElements = function()
{
if (0 != this.SelectedObjectsStack.length)
this.SelectedObjectsStack.splice(0, this.SelectedObjectsStack.length);
};
asc_docs_api.prototype.sync_EndCatchSelectedElements = function()
{
this.sendEvent("asc_onFocusObject", this.SelectedObjectsStack);
};
asc_docs_api.prototype.getSelectedElements = function(bUpdate)
{
if (true === bUpdate){
if(this.WordControl && this.WordControl.m_oLogicDocument){
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.asc_CImgProperty(obj);
break;
case c_oAscTypeSelectElement.Table:
oUnkTypeObj = new Asc.CTableProp(obj);
break;
case c_oAscTypeSelectElement.Shape:
oUnkTypeObj = 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.locale = val;
};
asc_docs_api.prototype.SetThemesPath = function(path)
{
if (!this.isLoadFullApi)
{
this.tmpThemesPath = path;
return;
}
this.ThemeLoader.ThemesUrl = path;
if (this.documentOrigin)
{
this.ThemeLoader.ThemesUrlAbs = AscCommon.joinUrls(this.documentOrigin + this.documentPathname, path);
}
else
{
this.ThemeLoader.ThemesUrlAbs = path;
}
};
asc_docs_api.prototype.CreateCSS = function()
{
if (window["flat_desine"] === true)
{
AscCommonSlide.updateGlobalSkin(AscCommonSlide.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 style1 = document.createElement('style');
style1.type = 'text/css';
style1.innerHTML = ".buttonTabs {\
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAA5CAMAAADjueCuAAAABGdBTUEAALGPC/xhBQAAAEhQTFRFAAAAWFhYZWVlSEhIY2NjV1dXQ0NDYWFhYmJiTk5OVlZWYGBgVFRUS0tLbGxsRERETExMZmZmVVVVXl5eR0dHa2trPj4+u77CpAZQrwAAAAF0Uk5TAEDm2GYAAABwSURBVDjL1dHHDoAgEEVR7NLr4P//qQm6EMaFxtje8oTF5ELIpU35Fstf3GegsPEBG+uwSYpNB1qNKreoDeNw/r6dLr/tnFpbbNZj8wKbk8W/1d6ZPjfrhdHx9c4fbA9wzMYWm3OFhbQmbC2ue6z9DCH/Exf/mU3YAAAAAElFTkSuQmCC);\
background-position: 0px 0px;\
background-repeat: no-repeat;\
}";
_head.appendChild(style1);
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();
var _innerHTML = "<div id=\"id_panel_thumbnails\" class=\"block_elem\" style=\"background-color:" + AscCommonSlide.GlobalSkin.BackgroundColorThumbnails + ";\">\
<div id=\"id_panel_thumbnails_split\" class=\"block_elem\" style=\"pointer-events:none;background-color:" + AscCommonSlide.GlobalSkin.BackgroundColorThumbnails + ";\"></div>\
<canvas id=\"id_thumbnails_background\" class=\"block_elem\" style=\"-ms-touch-action: none;-webkit-user-select: none;z-index:1\"></canvas>\
<canvas id=\"id_thumbnails\" class=\"block_elem\" style=\"-ms-touch-action: none;-webkit-user-select: none;z-index:2\"></canvas>\
<div id=\"id_vertical_scroll_thmbnl\" style=\"left:0;top:0;width:1px;overflow:hidden;position:absolute;\">\
<div id=\"panel_right_scroll_thmbnl\" class=\"block_elem\" style=\"left:0;top:0;width:1px;height:6000px;\"></div>\
</div>\
</div>\
<div id=\"id_main_parent\" class=\"block_elem\" style=\"-ms-touch-action: none;-moz-user-select:none;-khtml-user-select:none;user-select:none;overflow:hidden;border-left-width: 1px;border-left-color:" + AscCommonSlide.GlobalSkin.BorderSplitterColor + "; border-left-style: solid;\" UNSELECTABLE=\"on\">\
<div id=\"id_main\" class=\"block_elem\" style=\"z-index:5;-ms-touch-action: none;-moz-user-select:none;-khtml-user-select:none;user-select:none;background-color:" + AscCommonSlide.GlobalSkin.BackgroundColor + ";overflow:hidden;\" UNSELECTABLE=\"on\">\
<div id=\"id_panel_left\" class=\"block_elem\">\
<canvas id=\"id_buttonTabs\" class=\"block_elem\"></canvas>\
<canvas id=\"id_vert_ruler\" class=\"block_elem\"></canvas>\
</div>\
<div id=\"id_panel_top\" class=\"block_elem\">\
<canvas id=\"id_hor_ruler\" class=\"block_elem\"></canvas>\
</div>\
<div id=\"id_main_view\" class=\"block_elem\" style=\"overflow:hidden\">\
<canvas id=\"id_viewer\" class=\"block_elem\" style=\"-ms-touch-action: none;-webkit-user-select: none;background-color:#B0B0B0;z-index:6\"></canvas>\
<canvas id=\"id_viewer_overlay\" class=\"block_elem\" style=\"-ms-touch-action: none;-webkit-user-select: none;z-index:7\"></canvas>\
<canvas id=\"id_target_cursor\" class=\"block_elem\" width=\"1\" height=\"1\" style=\"-ms-touch-action: none;-webkit-user-select: none;width:2px;height:13px;display:none;z-index:9;\"></canvas>\
</div>\
<div id=\"id_panel_right\" class=\"block_elem\" style=\"margin-right:1px;background-color:" + AscCommonSlide.GlobalSkin.BackgroundColor + ";z-index:0;\">\
<div id=\"id_buttonRulers\" class=\"block_elem buttonRuler\"></div>\
<div id=\"id_vertical_scroll\" style=\"left:0;top:0;width:14px;overflow:hidden;position:absolute;\">\
<div id=\"panel_right_scroll\" class=\"block_elem\" style=\"left:0;top:0;width:1px;height:6000px;\"></div>\
</div>\
<div id=\"id_buttonPrevPage\" class=\"block_elem buttonPrevPage\"></div>\
<div id=\"id_buttonNextPage\" class=\"block_elem buttonNextPage\"></div>\
</div>\
<div id=\"id_horscrollpanel\" class=\"block_elem\" style=\"margin-bottom:1px;background-color:#F1F1F1;\">\
<div id=\"id_horizontal_scroll\" style=\"left:0;top:0;height:14px;overflow:hidden;position:absolute;width:100%;\">\
<div id=\"panel_hor_scroll\" class=\"block_elem\" style=\"left:0;top:0;width:6000px;height:1px;\"></div>\
</div>\
</div>\
</div>";
if (true)
{
_innerHTML += "<div id=\"id_panel_notes\" class=\"block_elem\" style=\"-ms-touch-action: none;-moz-user-select:none;-khtml-user-select:none;user-select:none;overflow:hidden;background-color:#FFFFFF;\">\
<canvas id=\"id_notes\" class=\"block_elem\" style=\"-ms-touch-action: none;-webkit-user-select: none;background-color:#FFFFFF;z-index:6\"></canvas>\
<canvas id=\"id_notes_overlay\" class=\"block_elem\" style=\"-ms-touch-action: none;-webkit-user-select: none;z-index:7\"></canvas>\
<div id=\"id_vertical_scroll_notes\" style=\"left:0;top:0;width:16px;overflow:hidden;position:absolute;\">\
<div id=\"panel_right_scroll_notes\" class=\"block_elem\" style=\"left:0;top:0;width:1px;height:1px;\"></div>\
</div>\
</div>\
</div>";
}
if (this.HtmlElement != null)
{
this.HtmlElement.style.backgroundColor = AscCommonSlide.GlobalSkin.BackgroundColor;
this.HtmlElement.innerHTML = _innerHTML;
}
};
asc_docs_api.prototype.InitEditor = function()
{
this.WordControl.m_oLogicDocument = new AscCommonSlide.CPresentation(this.WordControl.m_oDrawingDocument);
this.WordControl.m_oDrawingDocument.m_oLogicDocument = this.WordControl.m_oLogicDocument;
if (this.WordControl.MobileTouchManager)
this.WordControl.MobileTouchManager.delegate.LogicDocument = this.WordControl.m_oLogicDocument;
};
asc_docs_api.prototype.SetInterfaceDrawImagePlaceSlide = function(div_id)
{
if (!this.isLoadFullApi)
{
this.tmpSlideDiv = div_id;
return;
}
this.WordControl.m_oDrawingDocument.InitGuiCanvasSlide(div_id);
};
asc_docs_api.prototype.SetInterfaceDrawImagePlaceTextArt = function(div_id)
{
if (!this.isLoadFullApi)
{
this.tmpTextArtDiv = div_id;
return;
}
this.WordControl.m_oDrawingDocument.InitGuiCanvasTextArt(div_id);
};
asc_docs_api.prototype.OpenDocument2 = function(url, gObject)
{
this.InitEditor();
this.DocumentType = 2;
var _loader = new AscCommon.BinaryPPTYLoader();
_loader.Api = this;
g_oIdCounter.Set_Load(true);
AscFonts.IsCheckSymbols = true;
_loader.Load(gObject, this.WordControl.m_oLogicDocument);
this.WordControl.m_oLogicDocument.Set_FastCollaborativeEditing(true);
if (History && History.Update_FileDescription)
History.Update_FileDescription(_loader.stream);
this.LoadedObject = 1;
g_oIdCounter.Set_Load(false);
_loader.Check_TextFit();
AscFonts.IsCheckSymbols = false;
this.WordControl.m_oDrawingDocument.CheckFontNeeds();
this.FontLoader.LoadDocumentFonts(this.WordControl.m_oLogicDocument.Fonts, false);
g_oIdCounter.Set_Load(false);
if (this.isMobileVersion)
{
AscCommon.AscBrowser.isSafariMacOs = false;
PasteElementsId.PASTE_ELEMENT_ID = "wrd_pastebin";
PasteElementsId.ELEMENT_DISPAY_STYLE = "none";
}
if (AscCommon.AscBrowser.isSafariMacOs)
setInterval(AscCommon.SafariIntervalFocus, 10);
};
asc_docs_api.prototype._OfflineAppDocumentEndLoad = function()
{
if (undefined == window["editor_bin"])
return;
this.OpenDocument2(this.documentUrl, window["editor_bin"]);
//callback
this.DocumentOrientation = (null == this.WordControl.m_oLogicDocument) ? true : !this.WordControl.m_oLogicDocument.Orientation;
};
// 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)
{
if (_callbacks.hasOwnProperty(name))
{
return true;
}
return false;
};
// get functions
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.get_PropertyEditorThemes = function()
{
var ret = [this._gui_editor_themes, this._gui_document_themes];
return ret;
};
// -------
asc_docs_api.prototype.UpdateTextPr = function(TextPr)
{
if ("undefined" != typeof(TextPr))
{
if (TextPr.Color !== undefined)
{
this.WordControl.m_oDrawingDocument.TargetCursorColor.R = TextPr.Color.r;
this.WordControl.m_oDrawingDocument.TargetCursorColor.G = TextPr.Color.g;
this.WordControl.m_oDrawingDocument.TargetCursorColor.B = TextPr.Color.b;
}
if (TextPr.Bold === undefined)
TextPr.Bold = false;
if (TextPr.Italic === undefined)
TextPr.Italic = false;
if (TextPr.Underline === undefined)
TextPr.Underline = false;
if (TextPr.Strikeout === undefined)
TextPr.Strikeout = false;
if (TextPr.FontFamily === undefined)
TextPr.FontFamily = {Index : 0, Name : ""};
if (TextPr.FontSize === undefined)
TextPr.FontSize = "";
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);
if (TextPr.VertAlign !== undefined)
this.sync_VerticalAlign(TextPr.VertAlign);
if (TextPr.Spacing !== undefined)
this.sync_TextSpacing(TextPr.Spacing);
if (TextPr.DStrikeout !== undefined)
this.sync_TextDStrikeout(TextPr.DStrikeout);
if (TextPr.Caps !== undefined)
this.sync_TextCaps(TextPr.Caps);
if (TextPr.SmallCaps !== undefined)
this.sync_TextSmallCaps(TextPr.SmallCaps);
if (TextPr.Position !== undefined)
this.sync_TextPosition(TextPr.Position);
if (TextPr.Lang !== undefined)
this.sync_TextLangCallBack(TextPr.Lang);
if (TextPr.Unifill !== undefined)
{
this.sync_TextColor2(TextPr.Unifill);
}
}
};
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_VerticalTextAlign = function(align)
{
this.sendEvent("asc_onVerticalTextAlign", align);
};
asc_docs_api.prototype.sync_Vert = function(vert)
{
this.sendEvent("asc_onVert", vert);
};
asc_docs_api.prototype.UpdateParagraphProp = function(ParaPr, bParaPr)
{
ParaPr.StyleName = "";
var TextPr = editor.WordControl.m_oLogicDocument.GetCalculatedTextPr();
var oDrawingProps = editor.WordControl.m_oLogicDocument.Get_GraphicObjectsProps();
if (oDrawingProps.shapeProps && oDrawingProps.shapeProps.locked
|| oDrawingProps.chartProps && oDrawingProps.chartProps.locked
|| oDrawingProps.tableProps && oDrawingProps.tableProps.Locked)
{
ParaPr.Locked = true;
}
ParaPr.Subscript = ( TextPr.VertAlign === AscCommon.vertalign_SubScript ? true : false );
ParaPr.Superscript = ( TextPr.VertAlign === AscCommon.vertalign_SuperScript ? true : false );
ParaPr.Strikeout = TextPr.Strikeout;
ParaPr.DStrikeout = TextPr.DStrikeout;
ParaPr.AllCaps = TextPr.Caps;
ParaPr.SmallCaps = TextPr.SmallCaps;
ParaPr.TextSpacing = TextPr.Spacing;
ParaPr.Position = TextPr.Position;
ParaPr.ListType = AscFormat.fGetListTypeFromBullet(ParaPr.Bullet);
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);
if (!(bParaPr === true))
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"])
{
window["AscDesktopEditor"]["Print"]();
return;
}
var options = {downloadType : bIsDownloadEvent ? DownloadType.Print : DownloadType.None};
this._downloadAs(c_oAscFileType.PDF, c_oAscAsyncAction.Print, options);
};
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.asc_ShowSpecialPasteButton = function(props)
{
var presentation = editor.WordControl.m_oLogicDocument;
var drawingDocument = presentation.DrawingDocument;
var notesFocus = presentation.IsFocusOnNotes();
var htmlElement = this.WordControl.m_oEditor.HtmlElement;
var fixPos = props.fixPosition;
var curCoord = props.asc_getCellCoord();
var startShapePos;
var specialPasteElemHeight = 22;
var specialPasteElemWidth = 33;
if(fixPos && fixPos.h && fixPos.w)
{
startShapePos = drawingDocument.ConvertCoordsToCursorWR(fixPos.x - fixPos.w, fixPos.y - fixPos.h, fixPos.pageNum);
}
if(!notesFocus && curCoord._y > htmlElement.height - specialPasteElemHeight)
{
if(startShapePos && startShapePos.Y < htmlElement.height - specialPasteElemHeight)
{
curCoord._y = htmlElement.height - specialPasteElemHeight;
}
else
{
curCoord = new AscCommon.asc_CRect( -1, -1, 0, 0 );
}
}
var thumbnailsLeft = this.WordControl.m_oMainParent.AbsolutePosition.L* AscCommon.g_dKoef_mm_to_pix;
if(!notesFocus && curCoord._x > htmlElement.width + thumbnailsLeft - specialPasteElemWidth)
{
if(startShapePos && startShapePos.X < htmlElement.width + thumbnailsLeft - specialPasteElemWidth)
{
curCoord._x = htmlElement.width - specialPasteElemWidth + thumbnailsLeft;
}
else
{
curCoord = new AscCommon.asc_CRect( -1, -1, 0, 0 );
}
}
if(curCoord)
{
props.asc_setCellCoord(curCoord);
}
this.sendEvent("asc_onShowSpecialPasteOptions", props);
};
asc_docs_api.prototype.asc_HideSpecialPasteButton = function()
{
this.sendEvent("asc_onHideSpecialPasteOptions");
};
asc_docs_api.prototype.asc_UpdateSpecialPasteButton = function()
{
var props = AscCommon.g_specialPasteHelper.buttonInfo;
var presentation = editor.WordControl.m_oLogicDocument;
var drawingDocument = presentation.DrawingDocument;
var _coord, curCoord;
var fixPos = props.fixPosition;
var notesFocus = presentation.IsFocusOnNotes();
if(props.shapeId)//при переходе между шейпами, скрываем значок спец.вставки
{
var targetDocContent = presentation ? presentation.Get_TargetDocContent() : null;
if(targetDocContent && targetDocContent.Id === props.shapeId)
{
if(fixPos)
{
_coord = drawingDocument.ConvertCoordsToCursorWR(fixPos.x, fixPos.y, fixPos.pageNum);
curCoord = new AscCommon.asc_CRect( _coord.X, _coord.Y, 0, 0 );
}
}
else
{
curCoord = new AscCommon.asc_CRect( -1, -1, 0, 0 );
}
}
else
{
if(true === notesFocus)
{
curCoord = new AscCommon.asc_CRect( -1, -1, 0, 0 );
}
else if(fixPos && fixPos.pageNum === presentation.CurPage)
{
_coord = drawingDocument.ConvertCoordsToCursorWR(fixPos.x, fixPos.y, fixPos.pageNum);
curCoord = new AscCommon.asc_CRect( _coord.X, _coord.Y, 0, 0 );
}
else
{
curCoord = new AscCommon.asc_CRect( -1, -1, 0, 0 );
}
}
if(curCoord)
{
props.asc_setCellCoord(curCoord);
}
this.asc_ShowSpecialPasteButton(props);
};
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;
//TEXT
if (AscCommon.c_oAscClipboardDataFormat.Text & _formats)
{
_data = this.WordControl.m_oLogicDocument.GetSelectedText(false, {NewLineParagraph : true, NewLine : true});
_clipboard.pushData(AscCommon.c_oAscClipboardDataFormat.Text, _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, _data)
}
//INTERNAL
if (AscCommon.c_oAscClipboardDataFormat.Internal & _formats)
{
if (sBase64 === null)
{
var oCopyProcessor = new AscCommon.CopyProcessor(this);
sBase64 = oCopyProcessor.Start();
}
_data = sBase64;
_clipboard.pushData(AscCommon.c_oAscClipboardDataFormat.Internal, _data)
}
};
asc_docs_api.prototype.asc_PasteData = function(_format, data1, data2, text_data)
{
if (!this.canEdit())
return;
//slide show
if(this.WordControl && this.WordControl.DemonstrationManager && this.WordControl.DemonstrationManager.Mode) {
return;
}
if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Paragraph_Content, null, false)) {
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_PasteHotKey);
window['AscCommon'].g_specialPasteHelper.Paste_Process_Start(arguments[5]);
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(AscCommon.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.TurnOffInterfaceEvents = true;
this.WordControl.m_oLogicDocument.Document_Undo();
this.WordControl.m_oLogicDocument.TurnOffInterfaceEvents = false;
//if (!useCurrentPoint) {
_logicDoc.Create_NewHistoryPoint(AscDFH.historydescription_Document_PasteHotKey);
//}
AscCommon.Editor_Paste_Exec(this, null, null, null, null, props);
}
};
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.asc_SelectionCut = function()
{
if (!this.canEdit())
return;
var _logicDoc = this.WordControl.m_oLogicDocument;
if (!_logicDoc)
return;
_logicDoc.Remove(1, true, true);
};
asc_docs_api.prototype._onSaveCallbackInner = function()
{
var t = this;
if (c_oAscCollaborativeMarksShowType.LastChanges === this.CollaborativeMarksShowType)
{
AscCommon.CollaborativeEditing.Clear_CollaborativeMarks();
}
// Принимаем чужие изменения
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 (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
}, undefined, true);
}
};
asc_docs_api.prototype._autoSaveInner = function () {
if (this.WordControl.DemonstrationManager.Mode) {
return;
}
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 (this.WordControl.m_oDrawingDocument &&
!this.WordControl.m_oDrawingDocument.TransitionSlide.IsPlaying() && 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.DemonstrationManager.Mode;
};
asc_docs_api.prototype._haveOtherChanges = function () {
return AscCommon.CollaborativeEditing.Have_OtherChanges();
};
asc_docs_api.prototype.asc_DownloadAs = function(typeFile, bIsDownloadEvent)
{//передаем число соответствующее своему формату.
var options = {downloadType : bIsDownloadEvent ? DownloadType.Download : DownloadType.None};
this._downloadAs(typeFile, c_oAscAsyncAction.DownloadAs, options);
};
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.DRM:
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.startGetDocInfo = function()
{
/*
Возвращаем объект следующего вида:
{
PageCount: 12,
WordsCount: 2321,
ParagraphCount: 45,
SymbolsCount: 232345,
SymbolsWSCount: 34356
}
*/
this.sync_GetDocInfoStartCallback();
this.WordControl.m_oLogicDocument.Statistics_Start();
};
asc_docs_api.prototype.stopGetDocInfo = function()
{
this.sync_GetDocInfoStopCallback();
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);
};
/*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()
{
var logicDoc = this.WordControl.m_oLogicDocument;
if (!logicDoc)
return;
if (logicDoc.CurPage >= logicDoc.Slides.length)
return;
if (logicDoc.Slides.length == 0)
{
logicDoc.addNextSlide();
}
logicDoc.CheckTableStylesDefault(logicDoc.Slides[logicDoc.CurPage]);
};
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: "...<b>слово поиска</b>...",
pageNumber: 0, //содержит номер страницы, где находится искомая последовательность
X: 0,//координаты по OX начала последовательности на данной страницы
Y: 0//координаты по OY начала последовательности на данной страницы
}
*/
asc_docs_api.prototype.startSearchText = function(what)
{// "what" means word(s) what we search
this._searchCur = 0;
this.sync_SearchStartCallback();
if (null != this.WordControl.m_oLogicDocument)
this.WordControl.m_oLogicDocument.Search_Start(what);
else
this.WordControl.m_oDrawingDocument.m_oDocumentRenderer.StartSearch(what);
};
asc_docs_api.prototype.goToNextSearchResult = function()
{
this.WordControl.m_oLogicDocument.goToNextSearchResult();
};
asc_docs_api.prototype.gotoSearchResultText = function(navigator)
{//переход к результату.
this.WordControl.m_oDrawingDocument.CurrentSearchNavi = navigator;
this.WordControl.ToSearchResult();
};
asc_docs_api.prototype.stopSearchText = function()
{
this.sync_SearchStopCallback();
this.WordControl.m_oLogicDocument.Search_Stop();
};
asc_docs_api.prototype.findText = function(text, isNext)
{
var SearchEngine = editor.WordControl.m_oLogicDocument.Search(text, {MatchCase : false});
var Id = this.WordControl.m_oLogicDocument.Search_GetId(isNext);
if (null != Id)
this.WordControl.m_oLogicDocument.Search_Select(Id);
return SearchEngine.Count;
//return this.WordControl.m_oLogicDocument.findText(text, scanForward);
};
asc_docs_api.prototype.asc_searchEnabled = function(bIsEnabled)
{
// пустой метод
};
asc_docs_api.prototype.asc_findText = function(text, isNext, isMatchCase)
{
return this.WordControl.m_oLogicDocument.findText(text, isNext === true);
};
// returns: CSearchResult
asc_docs_api.prototype.sync_SearchFoundCallback = function(obj)
{
this.sendEvent("asc_onSearchFound", new CSearchResult(obj));
};
asc_docs_api.prototype.sync_SearchStartCallback = function()
{
this.sendEvent("asc_onSearchStart");
};
asc_docs_api.prototype.sync_SearchStopCallback = function()
{
this.sendEvent("asc_onSearchStop");
};
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 = AscFonts.g_fontApplication.GetFontInfo(name);
var isasync = loader.LoadFont(fontinfo);
if (false === isasync)
{
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false)
{
History.Create_NewPoint(AscDFH.historydescription_Presentation_ParagraphAdd);
this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({
FontFamily : {
Name : name,
Index : -1
}
}), false);
}
}
};
asc_docs_api.prototype.put_TextPrFontSize = function(size)
{
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false)
{
History.Create_NewPoint(AscDFH.historydescription_Presentation_ParagraphAdd);
this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({FontSize : Math.min(size, 100)}), false);
// для мобильной версии это важно
if (this.isMobileVersion)
this.UpdateInterfaceState();
}
};
asc_docs_api.prototype.put_TextPrLang = function(value)
{
if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Paragraph_Content))
{
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_SetTextLang);
this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({Lang : {Val : value}}), false);
this.WordControl.m_oLogicDocument.Spelling.Check_CurParas();
//if (true === this.isMarkerFormat)
// this.sync_MarkerFormatCallback(false);
}
};
asc_docs_api.prototype.put_TextPrBold = function(value)
{
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false)
{
History.Create_NewPoint(AscDFH.historydescription_Presentation_ParagraphAdd);
this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({Bold : value}), false);
}
};
asc_docs_api.prototype.put_TextPrItalic = function(value)
{
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false)
{
History.Create_NewPoint(AscDFH.historydescription_Presentation_ParagraphAdd);
this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({Italic : value}), false);
}
};
asc_docs_api.prototype.put_TextPrUnderline = function(value)
{
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false)
{
History.Create_NewPoint(AscDFH.historydescription_Presentation_ParagraphAdd);
this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({Underline : value}), false);
}
};
asc_docs_api.prototype.put_TextPrStrikeout = function(value)
{
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false)
{
History.Create_NewPoint(AscDFH.historydescription_Presentation_ParagraphAdd);
this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({
Strikeout : value,
DStrikeout : false
}), false);
}
};
asc_docs_api.prototype.put_PrLineSpacing = function(Type, Value)
{
this.WordControl.m_oLogicDocument.SetParagraphSpacing({LineRule : Type, Line : Value});
};
asc_docs_api.prototype.put_LineSpacingBeforeAfter = function(type, value)//"type == 0" means "Before", "type == 1" means "After"
{
switch (type)
{
case 0:
this.WordControl.m_oLogicDocument.SetParagraphSpacing({Before : value});
break;
case 1:
this.WordControl.m_oLogicDocument.SetParagraphSpacing({After : value});
break;
}
};
asc_docs_api.prototype.FontSizeIn = function()
{
this.WordControl.m_oLogicDocument.IncreaseDecreaseFontSize(true);
};
asc_docs_api.prototype.FontSizeOut = function()
{
this.WordControl.m_oLogicDocument.IncreaseDecreaseFontSize(false);
};
asc_docs_api.prototype.put_AlignBySelect = function(val)
{
this.bAlignBySelected = val;
};
asc_docs_api.prototype.get_AlignBySelect = function()
{
return this.bAlignBySelected;
};
/*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)
{
this.sendEvent("asc_onFontFamily", new AscCommon.asc_CTextFontFamily(FontFamily));
};
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 AscCommon.asc_CParagraphSpacing(LineSpacing));
};
asc_docs_api.prototype.sync_InitEditorThemes = function(gui_editor_themes, gui_document_themes)
{
this._gui_editor_themes = gui_editor_themes;
this._gui_document_themes = gui_document_themes;
if (!this.isViewMode) {
this.sendEvent("asc_onInitEditorStyles", [gui_editor_themes, gui_document_themes]);
}
};
asc_docs_api.prototype.sync_InitEditorTableStyles = function(styles)
{
if (!this.isViewMode) {
this.sendEvent("asc_onInitTableTemplates", styles);
}
};
/*----------------------------------------------------------------*/
/*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 _presentation = editor.WordControl.m_oLogicDocument;
var graphicObjects = _presentation.GetCurrentController();
if (graphicObjects)
{
graphicObjects.checkSelectedObjectsAndCallback(function()
{
if ("undefined" != typeof(Props.Ind) && null != Props.Ind)
graphicObjects.setParagraphIndent(Props.Ind);
if ("undefined" != typeof(Props.Jc) && null != Props.Jc)
graphicObjects.setParagraphAlign(Props.Jc);
if ("undefined" != typeof(Props.Spacing) && null != Props.Spacing)
graphicObjects.setParagraphSpacing(Props.Spacing);
if (undefined != Props.Tabs)
{
var Tabs = new AscCommonWord.CParaTabs();
Tabs.Set_FromObject(Props.Tabs.Tabs);
graphicObjects.setParagraphTabs(Tabs);
}
if (undefined != Props.DefaultTab)
{
graphicObjects.setDefaultTabSize(Props.DefaultTab);
}
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;
graphicObjects.paragraphAdd(new AscCommonWord.ParaTextPr(TextPr));
_presentation.Recalculate();
_presentation.Document_UpdateInterfaceState();
}, [], false, AscDFH.historydescription_Presentation_ParaApply);
}
};
asc_docs_api.prototype.put_PrAlign = function(value)
{
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Presentation_PutTextPrAlign);
this.WordControl.m_oLogicDocument.SetParagraphAlign(value);
};
// 0- baseline, 2-subscript, 1-superscript
asc_docs_api.prototype.put_TextPrBaseline = function(value)
{
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false)
{
History.Create_NewPoint(AscDFH.historydescription_Presentation_ParagraphAdd);
this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({VertAlign : value}), false);
}
};
/* Маркированный список Type = 0
нет - SubType = -1
черная точка - SubType = 1
круг - SubType = 2
квадрат - SubType = 3
картинка - SubType = -1
4 ромба - SubType = 4
ч/б стрелка - SubType = 5
галка - SubType = 6
Нумерованный список 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 oPresentation = this.WordControl.m_oLogicDocument;
var sBullet = "";
if(type === 0)
{
switch(subtype)
{
case 0:
case 1:
{
sBullet = "•";
break;
}
case 2:
{
sBullet = "o";
break;
}
case 3:
{
sBullet = "§";
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(119);
break;
}
case 8:
{
sBullet = String.fromCharCode(0x2013);
break;
}
}
}
var fCallback = function () {
var NumberInfo =
{
Type : 0,
SubType : -1
};
NumberInfo.Type = type;
NumberInfo.SubType = subtype;
oPresentation.SetParagraphNumbering(NumberInfo);
};
if(sBullet.length > 0)
{
AscFonts.FontPickerByCharacter.checkText(sBullet, this, fCallback);
}
else
{
fCallback();
}
};
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)
{
this.ShowParaMarks = isShow;
this.WordControl.OnRePaintAttack();
return this.ShowParaMarks;
};
asc_docs_api.prototype.get_ShowParaMarks = function()
{
return this.ShowParaMarks;
};
asc_docs_api.prototype.put_ShowTableEmptyLine = function(isShow)
{
this.isShowTableEmptyLine = isShow;
this.WordControl.OnRePaintAttack();
return this.isShowTableEmptyLine;
};
asc_docs_api.prototype.get_ShowTableEmptyLine = function()
{
return this.isShowTableEmptyLine;
};
asc_docs_api.prototype.ShapeApply = function(prop)
{
// нужно определить, картинка это или нет
var image_url = "";
prop.Width = prop.w;
prop.Height = prop.h;
var bShapeTexture = true;
if (prop.fill != null)
{
if (prop.fill.fill != null && prop.fill.type == c_oAscFill.FILL_TYPE_BLIP)
{
image_url = prop.fill.fill.asc_getUrl();
var _tx_id = prop.fill.fill.asc_getTextureId();
if (null != _tx_id && 0 <= _tx_id && _tx_id < AscCommon.g_oUserTexturePresets.length)
{
image_url = AscCommon.g_oUserTexturePresets[_tx_id];
}
}
}
var oFill;
if (prop.textArtProperties)
{
oFill = prop.textArtProperties.asc_getFill();
if (oFill && oFill.fill != null && oFill.type == c_oAscFill.FILL_TYPE_BLIP)
{
image_url = oFill.fill.asc_getUrl();
var _tx_id = oFill.fill.asc_getTextureId();
if (null != _tx_id && 0 <= _tx_id && _tx_id < AscCommon.g_oUserTexturePresets.length)
{
image_url = AscCommon.g_oUserTexturePresets[_tx_id];
}
bShapeTexture = false;
}
}
if (!AscCommon.isNullOrEmptyString(image_url))
{
var sImageUrl = null;
if (!g_oDocumentUrls.getImageLocal(image_url))
{
sImageUrl = image_url;
}
var oApi = this;
var fApplyCallback = function()
{
var _image = oApi.ImageLoader.LoadImage(image_url, 1);
var srcLocal = g_oDocumentUrls.getImageLocal(image_url);
if (srcLocal)
{
image_url = srcLocal;
}
if (bShapeTexture)
{
prop.fill.fill.asc_putUrl(image_url); // erase documentUrl
}
else
{
oFill.fill.asc_putUrl(image_url);
}
if (null != _image)
{
oApi.WordControl.m_oLogicDocument.ShapeApply(prop);
if (bShapeTexture)
{
oApi.WordControl.m_oDrawingDocument.DrawImageTextureFillShape(image_url);
}
else
{
oApi.WordControl.m_oDrawingDocument.DrawImageTextureFillTextArt(image_url);
}
}
else
{
oApi.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.LoadImage);
var oProp = prop;
oApi.asyncImageEndLoaded2 = function(_image)
{
oApi.WordControl.m_oLogicDocument.ShapeApply(oProp);
oApi.WordControl.m_oDrawingDocument.DrawImageTextureFillShape(image_url);
oApi.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.LoadImage);
oApi.asyncImageEndLoaded2 = null;
}
}
};
if (!sImageUrl)
{
fApplyCallback();
}
else
{
if (window["AscDesktopEditor"])
{
image_url = window["AscDesktopEditor"]["LocalFileGetImageUrl"](sImageUrl);
image_url = g_oDocumentUrls.getImageUrl(image_url);
fApplyCallback();
return;
}
AscCommon.sendImgUrls(this, [sImageUrl], function(data) {
if (data && data[0])
{
image_url = data[0].url;
fApplyCallback();
}
}, false);
}
}
else
{
if (!this.noCreatePoint || this.exucuteHistory)
{
if (!this.noCreatePoint && !this.exucuteHistory && this.exucuteHistoryEnd)
{
if (-1 !== this.nCurPointItemsLength)
{
History.UndoLastPoint();
var slide = this.WordControl.m_oLogicDocument.Slides[this.WordControl.m_oLogicDocument.CurPage];
slide.graphicObjects.applyDrawingProps(prop);
this.WordControl.m_oLogicDocument.Recalculate();
this.WordControl.m_oDrawingDocument.OnRecalculatePage(this.WordControl.m_oLogicDocument.CurPage, slide);
this.WordControl.m_oDrawingDocument.OnEndRecalculate();
}
else
{
this.WordControl.m_oLogicDocument.ShapeApply(prop);
}
this.exucuteHistoryEnd = false;
this.nCurPointItemsLength = -1;
}
else
{
this.WordControl.m_oLogicDocument.ShapeApply(prop);
}
if (this.exucuteHistory)
{
var oPoint = History.Points[History.Index];
if (oPoint)
{
this.nCurPointItemsLength = oPoint.Items.length;
}
else
{
this.nCurPointItemsLength = -1;
}
this.exucuteHistory = false;
}
}
else
{
if (this.WordControl.m_oLogicDocument.Slides[this.WordControl.m_oLogicDocument.CurPage])
{
if (-1 !== this.nCurPointItemsLength)
{
History.UndoLastPoint();
var slide = this.WordControl.m_oLogicDocument.Slides[this.WordControl.m_oLogicDocument.CurPage];
slide.graphicObjects.applyDrawingProps(prop);
this.WordControl.m_oLogicDocument.Recalculate();
this.WordControl.m_oDrawingDocument.OnRecalculatePage(this.WordControl.m_oLogicDocument.CurPage, slide);
this.WordControl.m_oDrawingDocument.OnEndRecalculate();
}
else
{
this.WordControl.m_oLogicDocument.ShapeApply(prop);
var oPoint = History.Points[History.Index];
if (oPoint)
{
this.nCurPointItemsLength = oPoint.Items.length;
}
else
{
this.nCurPointItemsLength = -1;
}
}
}
}
this.exucuteHistoryEnd = false;
}
};
asc_docs_api.prototype.setStartPointHistory = function()
{
this.noCreatePoint = true;
this.exucuteHistory = true;
this.incrementCounterLongAction();
};
asc_docs_api.prototype.setEndPointHistory = function()
{
this.noCreatePoint = false;
this.exucuteHistoryEnd = true;
this.decrementCounterLongAction();
};
asc_docs_api.prototype.SetSlideProps = function(prop)
{
if (null == prop)
return;
var arr_ind = this.WordControl.m_oLogicDocument.GetSelectedSlides()
var _back_fill = prop.get_background();
if (_back_fill)
{
if (_back_fill.asc_getType() == c_oAscFill.FILL_TYPE_NOFILL)
{
var bg = new AscFormat.CBg();
bg.bgPr = new AscFormat.CBgPr();
bg.bgPr.Fill = AscFormat.CorrectUniFill(_back_fill, null, 0);
this.WordControl.m_oLogicDocument.changeBackground(bg, arr_ind);
return;
}
var _old_fill = this.WordControl.m_oLogicDocument.Slides[this.WordControl.m_oLogicDocument.CurPage].backgroundFill;
if (AscCommon.isRealObject(_old_fill))
_old_fill = _old_fill.createDuplicate();
var bg = new AscFormat.CBg();
bg.bgPr = new AscFormat.CBgPr();
bg.bgPr.Fill = AscFormat.CorrectUniFill(_back_fill, _old_fill, 0);
var image_url = "";
if (_back_fill.asc_getType() == c_oAscFill.FILL_TYPE_BLIP && _back_fill.fill && typeof _back_fill.fill.url === "string" && _back_fill.fill.url.length > 0)
{
image_url = _back_fill.fill.url;
}
if (image_url != "")
{
var sImageUrl = null;
if (!g_oDocumentUrls.getImageLocal(image_url))
{
sImageUrl = image_url;
}
var oApi = this;
var fApplyCallback = function()
{
var _image = oApi.ImageLoader.LoadImage(image_url, 1);
var srcLocal = g_oDocumentUrls.getImageLocal(image_url);
if (srcLocal)
{
image_url = srcLocal;
bg.bgPr.Fill.fill.RasterImageId = image_url; // erase documentUrl
}
if (null != _image)
{
if (bg.bgPr.Fill != null && bg.bgPr.Fill.fill != null && bg.bgPr.Fill.fill.type == c_oAscFill.FILL_TYPE_BLIP)
{
oApi.WordControl.m_oDrawingDocument.DrawImageTextureFillSlide(bg.bgPr.Fill.fill.RasterImageId);
}
oApi.WordControl.m_oLogicDocument.changeBackground(bg, arr_ind);
}
else
{
oApi.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.LoadImage);
var oProp = prop;
oApi.asyncImageEndLoaded2 = function(_image)
{
if (bg.bgPr.Fill != null && bg.bgPr.Fill.fill != null && bg.bgPr.Fill.fill.type == c_oAscFill.FILL_TYPE_BLIP)
{
oApi.WordControl.m_oDrawingDocument.DrawImageTextureFillSlide(bg.bgPr.Fill.fill.RasterImageId);
}
oApi.WordControl.m_oLogicDocument.changeBackground(bg, arr_ind);
oApi.asyncImageEndLoaded2 = null;
oApi.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.LoadImage);
}
}
};
if (!sImageUrl)
{
fApplyCallback();
}
else
{
if (window["AscDesktopEditor"])
{
image_url = window["AscDesktopEditor"]["LocalFileGetImageUrl"](sImageUrl);
image_url = g_oDocumentUrls.getImageUrl(image_url);
fApplyCallback();
return;
}
AscCommon.sendImgUrls(this, [sImageUrl], function(data) {
if (data && data[0])
{
image_url = data[0].url;
fApplyCallback();
}
}, false);
}
}
else
{
if (bg.bgPr.Fill != null && bg.bgPr.Fill.fill != null && bg.bgPr.Fill.fill.type == c_oAscFill.FILL_TYPE_BLIP)
{
this.WordControl.m_oDrawingDocument.DrawImageTextureFillSlide(bg.bgPr.Fill.fill.RasterImageId);
}
if (!this.noCreatePoint || this.exucuteHistory)
{
if (!this.noCreatePoint && !this.exucuteHistory && this.exucuteHistoryEnd)
{
this.WordControl.m_oLogicDocument.changeBackground(bg, arr_ind, true);
this.exucuteHistoryEnd = false;
}
else
{
this.WordControl.m_oLogicDocument.changeBackground(bg, arr_ind);
}
if (this.exucuteHistory)
{
this.exucuteHistory = false;
}
}
else
{
if (this.WordControl.m_oLogicDocument.Slides[this.WordControl.m_oLogicDocument.CurPage])
{
AscFormat.ExecuteNoHistory(function()
{
this.WordControl.m_oLogicDocument.changeBackground(bg, arr_ind, true);
for (var i = 0; i < arr_ind.length; ++i)
{
this.WordControl.m_oLogicDocument.Slides[arr_ind[i]].recalculateBackground()
}
for (i = 0; i < arr_ind.length; ++i)
{
this.WordControl.m_oLogicDocument.DrawingDocument.OnRecalculatePage(arr_ind[i], this.WordControl.m_oLogicDocument.Slides[arr_ind[i]]);
}
this.WordControl.m_oLogicDocument.DrawingDocument.OnEndRecalculate(true, false);
}, this, []);
}
}
}
}
var _timing = prop.get_timing();
if (_timing)
{
this.ApplySlideTiming(_timing);
}
};
asc_docs_api.prototype.put_LineCap = function(_cap)
{
this.WordControl.m_oLogicDocument.putLineCap(_cap);
};
asc_docs_api.prototype.put_LineJoin = function(_join)
{
this.WordControl.m_oLogicDocument.putLineJoin(_join);
};
asc_docs_api.prototype.put_LineBeginStyle = function(_style)
{
this.WordControl.m_oLogicDocument.putLineBeginStyle(_style);
};
asc_docs_api.prototype.put_LineBeginSize = function(_size)
{
this.WordControl.m_oLogicDocument.putLineBeginSize(_size);
};
asc_docs_api.prototype.put_LineEndStyle = function(_style)
{
this.WordControl.m_oLogicDocument.putLineEndStyle(_style);
};
asc_docs_api.prototype.put_LineEndSize = function(_size)
{
this.WordControl.m_oLogicDocument.putLineEndSize(_size);
};
asc_docs_api.prototype.put_TextColor2 = function(r, g, b)
{
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false)
{
History.Create_NewPoint(AscDFH.historydescription_Presentation_ParagraphAdd);
this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({
Color : {
r : r,
g : g,
b : b
}
}), false);
}
};
asc_docs_api.prototype.put_TextColor = function(color)
{
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false)
{
History.Create_NewPoint(AscDFH.historydescription_Presentation_ParagraphAdd);
var _unifill = new AscFormat.CUniFill();
_unifill.fill = new AscFormat.CSolidFill();
_unifill.fill.color = AscFormat.CorrectUniColor(color, _unifill.fill.color, 0);
this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({Unifill : _unifill}), false);
}
};
asc_docs_api.prototype.put_PrIndent = function(value, levelValue)
{
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Presentation_PutPrIndent);
this.WordControl.m_oLogicDocument.SetParagraphIndent({Left : value, ChangeLevel : levelValue});
};
asc_docs_api.prototype.IncreaseIndent = function()
{
this.WordControl.m_oLogicDocument.IncreaseDecreaseIndent(true);
};
asc_docs_api.prototype.DecreaseIndent = function()
{
this.WordControl.m_oLogicDocument.IncreaseDecreaseIndent(false);
};
asc_docs_api.prototype.put_PrIndentRight = function(value)
{
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Presentation_PutPrIndentRight);
this.WordControl.m_oLogicDocument.SetParagraphIndent({Right : value});
};
asc_docs_api.prototype.put_PrFirstLineIndent = function(value)
{
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Presentation_PutPrFirstLineIndent);
this.WordControl.m_oLogicDocument.SetParagraphIndent({FirstLine : value});
};
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(Color)
{
this.sendEvent("asc_onTextColor", new AscCommon.CColor(Color.r, Color.g, Color.b));
};
asc_docs_api.prototype.sync_TextColor2 = function(unifill)
{
var _color;
if (unifill.fill == null)
return;
else if (unifill.fill.type == c_oAscFill.FILL_TYPE_SOLID)
{
_color = unifill.getRGBAColor();
var color = AscCommon.CreateAscColor(unifill.fill.color);
color.asc_putR(_color.R);
color.asc_putG(_color.G);
color.asc_putB(_color.B);
this.sendEvent("asc_onTextColor", color);
}
else if (unifill.fill.type == c_oAscFill.FILL_TYPE_GRAD)
{
_color = unifill.getRGBAColor();
var color = AscCommon.CreateAscColor(unifill.fill.colors[0].color);
color.asc_putR(_color.R);
color.asc_putG(_color.G);
color.asc_putB(_color.B);
this.sendEvent("asc_onTextColor", color);
}
else
{
_color = unifill.getRGBAColor();
var color = new Asc.asc_CColor();
color.asc_putR(_color.R);
color.asc_putG(_color.G);
color.asc_putB(_color.B);
this.sendEvent("asc_onTextColor", color);
}
};
asc_docs_api.prototype.sync_TextHighLight = function(HighLight)
{
this.sendEvent("asc_onTextHighLight", new AscCommon.CColor(HighLight.r, HighLight.g, HighLight.b));
};
asc_docs_api.prototype.sync_ParaStyleName = function(Name)
{
this.sendEvent("asc_onParaStyleName", Name);
};
asc_docs_api.prototype.sync_ParaSpacingLine = function(SpacingLine)
{
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_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.SetDrawImagePlaceParagraph = function(element_id, props)
{
this.WordControl.m_oDrawingDocument.InitGuiCanvasTextProps(element_id);
this.WordControl.m_oDrawingDocument.DrawGuiCanvasTextProps(props);
};
/*----------------------------------------------------------------*/
asc_docs_api.prototype.get_DocumentOrientation = function()
{
return this.DocumentOrientation;
};
asc_docs_api.prototype.Update_ParaInd = function(Ind)
{
var FirstLine = 0;
var Left = 0;
var 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;
}
}
this.Internal_Update_Ind_Left(Left);
this.Internal_Update_Ind_FirstLine(FirstLine, Left);
this.Internal_Update_Ind_Right(Right);
};
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();
}
};
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)
{
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)
{
this.WordControl.m_oLogicDocument.Add_FlowTable(col, row);
};
asc_docs_api.prototype.addRowAbove = function(count)
{
var doc = this.WordControl.m_oLogicDocument;
var oController = doc.GetCurrentController();
if(!oController){
return;
}
var aAdditionalObjects = oController.getConnectorsForCheck2();
if (doc.Document_Is_SelectionLocked(changestype_Drawing_Props, undefined, undefined, aAdditionalObjects) === false)
{
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Presentation_AddRowAbove);
this.WordControl.m_oLogicDocument.AddTableRow(true);
}
};
asc_docs_api.prototype.addRowBelow = function(count)
{
var doc = this.WordControl.m_oLogicDocument;
var oController = doc.GetCurrentController();
if(!oController){
return;
}
var aAdditionalObjects = oController.getConnectorsForCheck2();
if (doc.Document_Is_SelectionLocked(changestype_Drawing_Props, undefined, undefined, aAdditionalObjects) === false)
{
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Presentation_AddRowBelow);
this.WordControl.m_oLogicDocument.AddTableRow(false);
}
};
asc_docs_api.prototype.addColumnLeft = function(count)
{
var doc = this.WordControl.m_oLogicDocument;
var oController = doc.GetCurrentController();
if(!oController){
return;
}
var aAdditionalObjects = oController.getConnectorsForCheck2();
if (doc.Document_Is_SelectionLocked(changestype_Drawing_Props, undefined, undefined, aAdditionalObjects) === false)
{
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Presentation_AddColLeft);
this.WordControl.m_oLogicDocument.AddTableColumn(true);
}
};
asc_docs_api.prototype.addColumnRight = function(count)
{
var doc = this.WordControl.m_oLogicDocument;
var oController = doc.GetCurrentController();
if(!oController){
return;
}
var aAdditionalObjects = oController.getConnectorsForCheck2();
if (doc.Document_Is_SelectionLocked(changestype_Drawing_Props, undefined, undefined, aAdditionalObjects) === false)
{
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Presentation_AddColRight);
this.WordControl.m_oLogicDocument.AddTableColumn(false);
}
};
asc_docs_api.prototype.remRow = function()
{
var doc = this.WordControl.m_oLogicDocument;
var oController = doc.GetCurrentController();
if(!oController){
return;
}
var aAdditionalObjects = oController.getConnectorsForCheck2();
if (doc.Document_Is_SelectionLocked(changestype_Drawing_Props, undefined, undefined, aAdditionalObjects) === false)
{
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Presentation_RemoveRow);
this.WordControl.m_oLogicDocument.RemoveTableRow();
}
};
asc_docs_api.prototype.remColumn = function()
{
var doc = this.WordControl.m_oLogicDocument;
var oController = doc.GetCurrentController();
if(!oController){
return;
}
var aAdditionalObjects = oController.getConnectorsForCheck2();
if (doc.Document_Is_SelectionLocked(changestype_Drawing_Props, undefined, undefined, aAdditionalObjects) === false)
{
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Presentation_RemoveCol);
this.WordControl.m_oLogicDocument.RemoveTableColumn();
}
};
asc_docs_api.prototype.remTable = function()
{
var doc = this.WordControl.m_oLogicDocument;
if (doc.Document_Is_SelectionLocked(changestype_Drawing_Props) === false)
{
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Presentation_RemoveTable);
this.WordControl.m_oLogicDocument.RemoveTable();
}
};
asc_docs_api.prototype.asc_DistributeTableCells = function(isHorizontally)
{
var oLogicDocument = this.WordControl.m_oLogicDocument;
if (!oLogicDocument)
return;
var doc = this.WordControl.m_oLogicDocument;
var oController = doc.GetCurrentController();
if(!oController){
return;
}
var aAdditionalObjects = oController.getConnectorsForCheck2();
if (doc.Document_Is_SelectionLocked(changestype_Drawing_Props, undefined, undefined, aAdditionalObjects) === false)
{
oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_DistributeTableCells);
if (!oLogicDocument.DistributeTableCells(isHorizontally))
{
oLogicDocument.History.RemoveLastPoint();
return false;
}
}
return true;
};
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()
{
var doc = this.WordControl.m_oLogicDocument;
var oController = doc.GetCurrentController();
if(!oController){
return;
}
var aAdditionalObjects = oController.getConnectorsForCheck2();
if (doc.Document_Is_SelectionLocked(changestype_Drawing_Props, undefined, undefined, aAdditionalObjects) === false)
{
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Presentation_MergeCells);
this.WordControl.m_oLogicDocument.MergeTableCells();
}
};
asc_docs_api.prototype.SplitCell = function(Cols, Rows)
{
var doc = this.WordControl.m_oLogicDocument;
var oController = doc.GetCurrentController();
if(!oController){
return;
}
var aAdditionalObjects = oController.getConnectorsForCheck2();
if (doc.Document_Is_SelectionLocked(changestype_Drawing_Props, undefined, undefined, aAdditionalObjects) === false)
{
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Presentation_SplitCells);
this.WordControl.m_oLogicDocument.SplitTableCells(Cols, Rows);
}
};
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)
{
}
};
/*
{
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
}
}
*/
asc_docs_api.prototype.tblApply = function(obj)
{
var doc = this.WordControl.m_oLogicDocument;
var oController = doc.GetCurrentController();
if(!oController){
return;
}
var aAdditionalObjects = oController.getConnectorsForCheck2();
if (doc.Document_Is_SelectionLocked(changestype_Drawing_Props, undefined, undefined, aAdditionalObjects) === false)
{
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Presentation_TblApply);
if (obj.CellBorders)
{
if (obj.CellBorders.Left && obj.CellBorders.Left.Color)
{
obj.CellBorders.Left.Unifill = AscFormat.CreateUnifillFromAscColor(obj.CellBorders.Left.Color, 0);
}
if (obj.CellBorders.Top && obj.CellBorders.Top.Color)
{
obj.CellBorders.Top.Unifill = AscFormat.CreateUnifillFromAscColor(obj.CellBorders.Top.Color, 0);
}
if (obj.CellBorders.Right && obj.CellBorders.Right.Color)
{
obj.CellBorders.Right.Unifill = AscFormat.CreateUnifillFromAscColor(obj.CellBorders.Right.Color, 0);
}
if (obj.CellBorders.Bottom && obj.CellBorders.Bottom.Color)
{
obj.CellBorders.Bottom.Unifill = AscFormat.CreateUnifillFromAscColor(obj.CellBorders.Bottom.Color, 0);
}
if (obj.CellBorders.InsideH && obj.CellBorders.InsideH.Color)
{
obj.CellBorders.InsideH.Unifill = AscFormat.CreateUnifillFromAscColor(obj.CellBorders.InsideH.Color, 0);
}
if (obj.CellBorders.InsideV && obj.CellBorders.InsideV.Color)
{
obj.CellBorders.InsideV.Unifill = AscFormat.CreateUnifillFromAscColor(obj.CellBorders.InsideV.Color, 0);
}
}
if (obj.CellsBackground && obj.CellsBackground.Color)
{
obj.CellsBackground.Unifill = AscFormat.CreateUnifillFromAscColor(obj.CellsBackground.Color, 0);
}
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)
{
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.ChangeSlideImageFromFile = function(type)
{
this.isSlideImageChangeUrl = true;
this.textureType = type;
this.asc_addImage();
};
asc_docs_api.prototype.ChangeArtImageFromFile = function(type)
{
this.isTextArtChangeUrl = true;
this.textureType = type;
this.asc_addImage();
};
asc_docs_api.prototype.AddImage = function()
{
this.asc_addImage();
};
asc_docs_api.prototype.StartAddShape = function(prst, is_apply)
{
this.WordControl.m_oLogicDocument.StartAddShape(prst, is_apply);
if (is_apply)
{
this.WordControl.m_oDrawingDocument.LockCursorType("crosshair");
}
};
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();
}
};
asc_docs_api.prototype.asc_startEditCurrentOleObject = function(){
if(this.WordControl.m_oLogicDocument.Slides[this.WordControl.m_oLogicDocument.CurPage])
this.WordControl.m_oLogicDocument.Slides[this.WordControl.m_oLogicDocument.CurPage].graphicObjects.startEditCurrentOleObject();
};
// signatures
asc_docs_api.prototype.asc_addSignatureLine = function (sGuid, sSigner, sSigner2, sEmail, Width, Height, sImgUrl) {
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false){
this.WordControl.m_oLogicDocument.AddSignatureLine(sGuid, sSigner, sSigner2, sEmail, Width, Height, sImgUrl);
}
};
asc_docs_api.prototype.asc_getAllSignatures = function(){
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.AddTextArt = function(nStyle)
{
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false)
{
this.WordControl.m_oLogicDocument.AddTextArt(nStyle);
}
};
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._addImageUrl = function(urls)
{
if(this.isImageChangeUrl || this.isShapeImageChangeUrl || this.isSlideImageChangeUrl || this.isTextArtChangeUrl){
this.AddImageUrl(urls[0]);
}
else{
if(this.ImageLoader){
var oApi = this;
this.ImageLoader.LoadImagesWithCallback(urls, function(){
var aImages = [];
for(var i = 0; i < urls.length; ++i){
var _image = oApi.ImageLoader.LoadImage(urls[i], 1);
if(_image){
aImages.push(_image);
}
}
oApi.WordControl.m_oLogicDocument.addImages(aImages);
}, []);
}
}
};
asc_docs_api.prototype.AddImageUrl = function(url)
{
if (g_oDocumentUrls.getLocal(url))
{
this.AddImageUrlAction(url);
}
else
{
var t = this;
AscCommon.sendImgUrls(this, [url], function(data) {
if (data && data[0])
t.AddImageUrlAction(data[0].url);
}, false);
}
};
asc_docs_api.prototype.AddImageUrlActionCallback = function(_image)
{
var _w = AscCommon.Page_Width - (AscCommon.X_Left_Margin + AscCommon.X_Right_Margin);
var _h = AscCommon.Page_Height - (AscCommon.Y_Top_Margin + AscCommon.Y_Bottom_Margin);
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.ShapeApply(AscShapeProp);
this.isShapeImageChangeUrl = false;
this.textureType = null;
}
else if (this.isSlideImageChangeUrl)
{
var AscSlideProp = new CAscSlideProps();
AscSlideProp.Background = new asc_CShapeFill();
AscSlideProp.Background.type = c_oAscFill.FILL_TYPE_BLIP;
AscSlideProp.Background.fill = new asc_CFillBlip();
AscSlideProp.Background.fill.asc_putUrl(src);
if(this.textureType !== null && this.textureType !== undefined){
AscSlideProp.Background.fill.asc_putType(this.textureType);
}
this.SetSlideProps(AscSlideProp);
this.isSlideImageChangeUrl = false;
this.textureType = null;
}
else if (this.isImageChangeUrl)
{
var AscImageProp = new Asc.asc_CImgProperty();
AscImageProp.ImageUrl = src;
this.ImgApply(AscImageProp);
this.isImageChangeUrl = false;
}
else if (this.isTextArtChangeUrl)
{
var AscShapeProp = new Asc.asc_CShapeProperty();
var oFill = new asc_CShapeFill();
oFill.type = c_oAscFill.FILL_TYPE_BLIP;
oFill.fill = new asc_CFillBlip();
oFill.fill.asc_putUrl(src);
if(this.textureType !== null && this.textureType !== undefined){
oFill.fill.asc_putType(this.textureType);
}
AscShapeProp.textArtProperties = new Asc.asc_TextArtProperties();
AscShapeProp.textArtProperties.asc_putFill(oFill);
this.ShapeApply(AscShapeProp);
this.isTextArtChangeUrl = false;
this.textureType = null;
}
else
{
var srcLocal = g_oDocumentUrls.getImageLocal(src);
if (srcLocal)
{
src = srcLocal;
}
this.WordControl.m_oLogicDocument.Add_FlowImage(_w, _h, src);
}
};
asc_docs_api.prototype.AddImageUrlAction = function(url)
{
var _image = this.ImageLoader.LoadImage(url, 1);
if (null != _image)
{
this.AddImageUrlActionCallback(_image);
}
else
{
this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage);
this.asyncImageEndLoaded2 = function(_image)
{
this.AddImageUrlActionCallback(_image);
this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage);
this.asyncImageEndLoaded2 = null;
}
}
};
/* В качестве параметра передается объект класса 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)
{
var ImagePr = {};
ImagePr.lockAspect = obj.lockAspect;
ImagePr.Width = null === obj.Width ? null : parseFloat(obj.Width);
ImagePr.Height = null === obj.Height ? null : parseFloat(obj.Height);
ImagePr.title = obj.title;
ImagePr.description = obj.description;
if (undefined != obj.Position)
{
ImagePr.Position =
{
X : null === obj.Position.X ? null : parseFloat(obj.Position.X),
Y : null === obj.Position.Y ? null : parseFloat(obj.Position.Y)
};
}
else
{
ImagePr.Position = {X : null, Y : null};
}
ImagePr.ImageUrl = obj.ImageUrl;
if (!AscCommon.isNullOrEmptyString(ImagePr.ImageUrl))
{
var sImageUrl = null;
if (!g_oDocumentUrls.getImageLocal(ImagePr.ImageUrl))
{
sImageUrl = ImagePr.ImageUrl;
}
var oApi = this;
var fApplyCallback = function()
{
var _img = oApi.ImageLoader.LoadImage(ImagePr.ImageUrl, 1);
var srcLocal = g_oDocumentUrls.getImageLocal(ImagePr.ImageUrl);
if (srcLocal)
{
ImagePr.ImageUrl = srcLocal;
}
if (null != _img)
{
oApi.WordControl.m_oLogicDocument.SetImageProps(ImagePr);
}
else
{
oApi.asyncImageEndLoaded2 = function(_image)
{
oApi.WordControl.m_oLogicDocument.SetImageProps(ImagePr);
oApi.asyncImageEndLoaded2 = null;
}
}
};
if (!sImageUrl)
{
fApplyCallback();
}
else
{
if (window["AscDesktopEditor"])
{
this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.UploadImage);
var _url = window["AscDesktopEditor"]["LocalFileGetImageUrl"](sImageUrl);
_url = g_oDocumentUrls.getImageUrl(_url);
ImagePr.ImageUrl = _url;
fApplyCallback();
this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.UploadImage);
return;
}
AscCommon.sendImgUrls(this, [sImageUrl], function(data) {
if (data && data[0])
{
ImagePr.ImageUrl = data[0].url;
fApplyCallback();
}
}, false);
}
}
else
{
ImagePr.ImageUrl = null;
this.WordControl.m_oLogicDocument.SetImageProps(ImagePr);
}
};
asc_docs_api.prototype.ChartApply = function(obj)
{
if (obj.ChartProperties && obj.ChartProperties.type === Asc.c_oAscChartTypeSettings.stock && this.WordControl.m_oLogicDocument.Slides[this.WordControl.m_oLogicDocument.CurPage])
{
if (!AscFormat.CheckStockChart(this.WordControl.m_oLogicDocument.Slides[this.WordControl.m_oLogicDocument.CurPage].graphicObjects, this))
{
return;
}
}
this.WordControl.m_oLogicDocument.ChartApply(obj);
};
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;
};
/*callbacks*/
asc_docs_api.prototype.sync_AddImageCallback = function()
{
this.sendEvent("asc_onAddImage");
};
asc_docs_api.prototype.sync_ImgPropCallback = function(imgProp)
{
var type = imgProp.chartProps ? c_oAscTypeSelectElement.Chart : c_oAscTypeSelectElement.Image;
var objects;
if (type === c_oAscTypeSelectElement.Chart)
{
objects = new CAscChartProp(imgProp);
}
else
{
objects = new Asc.asc_CImgProperty(imgProp);
}
this.SelectedObjectsStack[this.SelectedObjectsStack.length] = new asc_CSelectedObject(type, objects);
};
asc_docs_api.prototype.sync_MathPropCallback = function(MathProp)
{
this.SelectedObjectsStack[this.SelectedObjectsStack.length] = new asc_CSelectedObject(c_oAscTypeSelectElement.Math, MathProp);
};
asc_docs_api.prototype.SetDrawingFreeze = function(bIsFreeze)
{
if (!this.isLoadFullApi)
{
this.tmpIsFreeze = bIsFreeze;
return;
}
this.WordControl.DrawingFreeze = bIsFreeze;
var _elem1 = document.getElementById("id_main");
if (_elem1)
{
var _elem2 = document.getElementById("id_panel_thumbnails");
var _elem3 = document.getElementById("id_panel_notes");
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.AddShapeOnCurrentPage = function(sPreset){
if(!this.WordControl.m_oLogicDocument){
return;
}
this.WordControl.m_oLogicDocument.AddShapeOnCurrentPage(sPreset);
}
asc_docs_api.prototype.can_CopyCut = function(){
if(!this.WordControl.m_oLogicDocument){
return false;
}
return this.WordControl.m_oLogicDocument.Can_CopyCut();
}
/*----------------------------------------------------------------*/
/*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();
};
asc_docs_api.prototype.zoom100 = function()
{
this.WordControl.m_nZoomValue = 100;
this.WordControl.zoom_Fire();
};
asc_docs_api.prototype.zoom = function(percent)
{
this.WordControl.m_nZoomValue = percent;
this.WordControl.zoom_Fire(0);
};
asc_docs_api.prototype.goToPage = function(number)
{
this.WordControl.GoToPage(number);
};
asc_docs_api.prototype.getCountPages = function()
{
return this.WordControl.m_oDrawingDocument.SlidesCount;
};
asc_docs_api.prototype.getCurrentPage = function()
{
return this.WordControl.m_oDrawingDocument.SlideCurrent;
};
/*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.sync_SendThemeColors = function(colors, standart_colors)
{
this.sendEvent("asc_onSendThemeColors", colors, standart_colors);
};
asc_docs_api.prototype.ChangeColorScheme = function(index_scheme)
{
var scheme = AscCommon.getColorThemeByIndex(index_scheme);
if (!scheme)
{
index_scheme -= AscCommon.g_oUserColorScheme.length;
if (null == this.WordControl.MasterLayouts)
return;
var theme = this.WordControl.MasterLayouts.Theme;
if (null == theme)
return;
if (index_scheme < 0 || index_scheme >= theme.extraClrSchemeLst.length)
return;
scheme = theme.extraClrSchemeLst[index_scheme].clrScheme;
}
this.WordControl.m_oLogicDocument.changeColorScheme(scheme);
this.WordControl.m_oDrawingDocument.CheckGuiControlColors();
};
/*----------------------------------------------------------------*/
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;
this.sendEvent("asc_onEnableKeyEventsChanged", value);
}
if (isFromInput !== true && AscCommon.g_inputContext)
AscCommon.g_inputContext.setInterfaceEnableKeyEvents(value);
};
//-----------------------------------------------------------------
// Функции для работы с комментариями
//-----------------------------------------------------------------
function asc_CCommentData(obj)
{
if (obj)
{
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.bDocument = (undefined != obj.bDocument ) ? obj.bDocument : false;
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_CCommentData(obj.m_aReplies[Index]);
this.m_aReplies.push(Reply);
}
}
}
else
{
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 = [];
this.bDocument = false;
}
}
asc_CCommentData.prototype.asc_getText = function()
{
return this.m_sText;
};
asc_CCommentData.prototype.asc_putText = function(v)
{
this.m_sText = v ? v.slice(0, Asc.c_oAscMaxCellOrCommentLength) : v;
};
asc_CCommentData.prototype.asc_getTime = function()
{
return this.m_sTime;
};
asc_CCommentData.prototype.asc_putTime = function(v)
{
this.m_sTime = v;
};
asc_CCommentData.prototype.asc_getOnlyOfficeTime = function()
{
return this.m_sOOTime;
};
asc_CCommentData.prototype.asc_putOnlyOfficeTime = function(v)
{
this.m_sOOTime = v;
};
asc_CCommentData.prototype.asc_getUserId = function()
{
return this.m_sUserId;
};
asc_CCommentData.prototype.asc_putUserId = function(v)
{
this.m_sUserId = v;
};
asc_CCommentData.prototype.asc_getUserName = function()
{
return this.m_sUserName;
};
asc_CCommentData.prototype.asc_putUserName = function(v)
{
this.m_sUserName = v;
};
asc_CCommentData.prototype.asc_getQuoteText = function()
{
return this.m_sQuoteText;
};
asc_CCommentData.prototype.asc_putQuoteText = function(v)
{
this.m_sQuoteText = v;
};
asc_CCommentData.prototype.asc_getSolved = function()
{
return this.m_bSolved;
};
asc_CCommentData.prototype.asc_putSolved = function(v)
{
this.m_bSolved = v;
};
asc_CCommentData.prototype.asc_getReply = function(i)
{
return this.m_aReplies[i];
};
asc_CCommentData.prototype.asc_addReply = function(v)
{
this.m_aReplies.push(v);
};
asc_CCommentData.prototype.asc_getRepliesCount = function(v)
{
return this.m_aReplies.length;
};
asc_CCommentData.prototype.asc_putDocumentFlag = function(v)
{
this.bDocument = v;
};
asc_CCommentData.prototype.asc_getDocumentFlag = function()
{
return this.bDocument;
};
asc_docs_api.prototype.asc_showComments = function()
{
if (null == this.WordControl.m_oLogicDocument)
return;
this.WordControl.m_oLogicDocument.ShowComments();
};
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_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.asc_removeComment = function(Id)
{
if (null == this.WordControl.m_oLogicDocument)
return;
var comment = g_oTableId.Get_ById(Id);
if(!comment)
{
return;
}
var oComments = comment.Parent;
if(!oComments)
{
return;
}
var bPresComments = (oComments === this.WordControl.m_oLogicDocument.comments);
var nCheckType = bPresComments ? AscCommon.changestype_AddComment : AscCommon.changestype_MoveComment;
var oCheckData = bPresComments ? comment : Id;
if (this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(nCheckType, oCheckData, this.WordControl.m_oLogicDocument.IsEditCommentsMode()) === false)
{
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Presentation_RemoveComment);
this.WordControl.m_oLogicDocument.RemoveComment(Id, true);
}
};
asc_docs_api.prototype.asc_changeComment = function(Id, AscCommentData)
{
if (null == this.WordControl.m_oLogicDocument)
return;
//if ( false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_MoveComment, Id ) )
{
var CommentData = new AscCommon.CCommentData();
CommentData.Read_FromAscCommentData(AscCommentData);
this.WordControl.m_oLogicDocument.EditComment(Id, CommentData);
}
};
asc_docs_api.prototype.asc_selectComment = function(Id)
{
if (null == this.WordControl.m_oLogicDocument)
return;
this.WordControl.m_oLogicDocument.SelectComment(Id);
};
asc_docs_api.prototype.asc_showComment = function(Id)
{
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)
{
if (this.bNoSendComments === false)
{
var AscCommentData = new asc_CCommentData(CommentData);
AscCommentData.asc_putQuoteText("");
this.sendEvent("asc_onAddComment", Id, AscCommentData);
}
};
asc_docs_api.prototype.sync_ShowComment = function(Id, X, Y)
{
/*
if (this.WordControl.m_oMainContent)
{
X -= ((this.WordControl.m_oMainContent.Bounds.L * g_dKoef_mm_to_pix) >> 0);
}
*/
// TODO: Переделать на нормальный массив
this.sendEvent("asc_onShowComment", [Id], 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_CCommentData(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.asyncFontsDocumentStartLoaded = function()
{
// здесь прокинуть евент о заморозке меню
// и нужно вывести информацию в статус бар
if (this.isPasteFonts_Images)
this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadFont);
else
{
this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadDocumentFonts);
// заполним прогресс
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 + AscCommon.g_oUserTexturePresets.length;
_progress.CurrentImage = 0;
}
};
asc_docs_api.prototype.GenerateStyles = function()
{
return;
};
asc_docs_api.prototype.asyncFontsDocumentEndLoaded = function()
{
// все, шрифты загружены. Теперь нужно подгрузить картинки
if (this.isPasteFonts_Images)
this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, 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);
}
this.ImageLoader.LoadDocumentImages(this.pasteImageMap, false);
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();
// открытие после загрузки документа
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;
// 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 (_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.asyncImagesDocumentEndLoaded = function()
{
this.ImageLoader.bIsLoadDocumentFirst = false;
var _bIsOldPaste = this.isPasteFonts_Images;
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 (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();
}
else
{
this.ServerImagesWaitComplete = true;
this.OpenDocumentEndCallback();
}
};
asc_docs_api.prototype.OpenDocumentEndCallback = function()
{
if (this.isDocumentLoadComplete || !this.ServerImagesWaitComplete || !this.ServerIdWaitComplete ||
!this.WordControl || !this.WordControl.m_oLogicDocument)
return;
var bIsScroll = false;
if (0 == this.DocumentType)
this.WordControl.m_oLogicDocument.LoadEmptyDocument();
else
{
if (this.LoadedObject)
{
if (this.LoadedObject === 1)
{
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.bNoSendComments = true;
var OtherChanges = AscCommon.CollaborativeEditing.m_aChanges.length > 0;
this._applyPreOpenLocks();
AscCommon.CollaborativeEditing.Apply_Changes();
AscCommon.CollaborativeEditing.Release_Locks();
this.bNoSendComments = false;
this.isApplyChangesOnOpen = true;
if(OtherChanges && this.isSaveFonts_Images){
return;
}
}
}
this.WordControl.m_oLogicDocument.Recalculate({Drawings : {All : true, Map : {}}});
var presentation = this.WordControl.m_oLogicDocument;
presentation.DrawingDocument.OnEndRecalculate();
this.asc_registerCallback('asc_doubleClickOnChart', function(){
// next tick
setTimeout(function() {
window.editor.WordControl.onMouseUpMainSimple();
}, 0);
});
if(!window["NATIVE_EDITOR_ENJINE"]){
this.WordControl.m_oLayoutDrawer.IsRetina = this.WordControl.bIsRetinaSupport;
this.WordControl.m_oLayoutDrawer.WidthMM = presentation.Width;
this.WordControl.m_oLayoutDrawer.HeightMM = presentation.Height;
this.WordControl.m_oMasterDrawer.WidthMM = presentation.Width;
this.WordControl.m_oMasterDrawer.HeightMM = presentation.Height;
this.WordControl.m_oLogicDocument.SendThemesThumbnails();
}
this.sendEvent("asc_onPresentationSize", presentation.Width, presentation.Height);
this.WordControl.GoToPage(0);
bIsScroll = true;
}
}
this.WordControl.m_oLogicDocument.Document_UpdateInterfaceState();
this.WordControl.m_oLogicDocument.Document_UpdateRulersState();
this.WordControl.m_oLogicDocument.Document_UpdateSelectionState();
this.LoadedObject = null;
this.bInit_word_control = true;
if (!this.bNoSendComments)
{
var _slides = this.WordControl.m_oLogicDocument.Slides;
var _slidesCount = _slides.length;
for (var i = 0; i < _slidesCount; i++)
{
var slideComments = _slides[i].slideComments;
if (slideComments)
{
var _comments = slideComments.comments;
var _commentsCount = _comments.length;
for (var j = 0; j < _commentsCount; j++)
{
this.sync_AddComment(_comments[j].Get_Id(), _comments[j].Data);
}
}
}
}
var slideComments = this.WordControl.m_oLogicDocument.comments;
if (slideComments)
{
var _comments = slideComments.comments;
var _commentsCount = _comments.length;
for (var j = 0; j < _commentsCount; j++)
{
_comments[j].Data.bDocument = true;
this.sync_AddComment(_comments[j].Get_Id(), _comments[j].Data);
}
}
this.onDocumentContentReady();
this.isApplyChangesOnOpen = false;
this.WordControl.InitControl();
if (bIsScroll)
{
this.WordControl.OnScroll();
}
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 = AscCommon.c_oAscAdvancedOptionsAction.None;
};
asc_docs_api.prototype.asc_AddMath = function(Type)
{
var loader = AscCommon.g_font_loader;
var fontinfo = AscFonts.g_fontApplication.GetFontInfo("Cambria Math");
var isasync = loader.LoadFont(fontinfo);
if (false === isasync)
{
return this.asc_AddMath2(Type);
}
else
{
this.asyncMethodCallback = function()
{
return this.asc_AddMath2(Type);
}
}
};
asc_docs_api.prototype.asc_AddMath2 = function(Type)
{
if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.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, false);
}
};
//----------------------------------------------------------------------------------------------------------------------
// Работаем с формулами
//----------------------------------------------------------------------------------------------------------------------
asc_docs_api.prototype.asc_SetMathProps = function(MathProps)
{
this.WordControl.m_oLogicDocument.Set_MathProps(MathProps);
};
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;
}
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false)
{
History.Create_NewPoint(AscDFH.historydescription_Presentation_ParagraphAdd);
this.WordControl.m_oLogicDocument.AddToParagraph(new AscCommonWord.ParaTextPr({
FontFamily : {
Name : fontinfo.Name,
Index : -1
}
}), false);
}
};
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
{
this.WordControl.m_oLogicDocument.Add_FlowImage(50, 50, _image.src);
}
};
asc_docs_api.prototype.openDocument = function(sData)
{
this.OpenDocument2(sData.url, sData.data);
this.DocumentOrientation = (null == this.WordControl.m_oLogicDocument) ? true : !this.WordControl.m_oLogicDocument.Orientation;
this.sync_DocSizeCallback(AscCommon.Page_Width, AscCommon.Page_Height);
this.sync_PageOrientCallback(this.get_DocumentOrientation());
};
asc_docs_api.prototype.get_PresentationWidth = function()
{
if (this.WordControl.m_oLogicDocument == null)
return 0;
return this.WordControl.m_oLogicDocument.Width;
};
asc_docs_api.prototype.get_PresentationHeight = function()
{
if (this.WordControl.m_oLogicDocument == null)
return 0;
return this.WordControl.m_oLogicDocument.Height;
};
asc_docs_api.prototype.pre_Paste = function(_fonts, _images, callback)
{
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_SaveCallback = function()
{
AscCommon.CollaborativeEditing.OnEnd_Load_Objects();
if (this.isApplyChangesOnOpen)
{
this.isApplyChangesOnOpen = false;
this.OpenDocumentEndCallback();
}
this.WordControl.SlideDrawer.CheckRecalculateSlide();
};
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()
{
return this.WordControl.m_oDrawingDocument.SlideCurrent;
};
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 oldClickCount = global_mouseEvent.ClickCount;
global_mouseEvent.ClickCount = 2;
this.WordControl.m_oLogicDocument.OnMouseDown(global_mouseEvent, 0, 0, pageNumber);
this.WordControl.m_oLogicDocument.OnMouseUp(global_mouseEvent, 0, 0, pageNumber);
this.WordControl.m_oLogicDocument.Document_UpdateInterfaceState();
global_mouseEvent.ClickCount = oldClickCount;
};
asc_docs_api.prototype.changeSlideSize = function(width, height)
{
if (this.isMobileVersion && this.WordControl.MobileTouchManager)
this.WordControl.MobileTouchManager.BeginZoomCheck();
this.WordControl.m_oLogicDocument.changeSlideSize(width, height);
if (this.isMobileVersion && this.WordControl.MobileTouchManager)
this.WordControl.MobileTouchManager.EndZoomCheck();
};
asc_docs_api.prototype.AddSlide = function(layoutIndex)
{
this.WordControl.m_oLogicDocument.addNextSlide(layoutIndex);
};
asc_docs_api.prototype.DeleteSlide = function()
{
var _delete_array = this.WordControl.Thumbnails.GetSelectedArray();
if (!this.IsSupportEmptyPresentation)
{
if (_delete_array.length == this.WordControl.m_oDrawingDocument.SlidesCount)
_delete_array.splice(0, 1);
}
if (_delete_array.length != 0)
{
this.WordControl.m_oLogicDocument.deleteSlides(_delete_array);
}
};
asc_docs_api.prototype.DublicateSlide = function()
{
this.WordControl.m_oLogicDocument.DublicateSlide();
};
asc_docs_api.prototype.SelectAllSlides = function(layoutType)
{
var drDoc = this.WordControl.m_oDrawingDocument;
var slidesCount = drDoc.SlidesCount;
for (var i = 0; i < slidesCount; i++)
{
this.WordControl.Thumbnails.m_arrPages[i].IsSelected = true;
}
this.WordControl.m_oLogicDocument.Document_UpdateInterfaceState();
this.WordControl.Thumbnails.OnUpdateOverlay();
};
asc_docs_api.prototype.AddShape = function(shapetype)
{
};
asc_docs_api.prototype.ChangeShapeType = function(shapetype)
{
this.WordControl.m_oLogicDocument.changeShapeType(shapetype);
};
asc_docs_api.prototype.AddText = function()
{
};
asc_docs_api.prototype["asc_IsSpellCheckCurrentWord"] = function()
{
return this.IsSpellCheckCurrentWord;
};
asc_docs_api.prototype["asc_putSpellCheckCurrentWord"] = function(value)
{
this.IsSpellCheckCurrentWord = value;
};
asc_docs_api.prototype.groupShapes = function()
{
this.WordControl.m_oLogicDocument.groupShapes();
};
asc_docs_api.prototype.unGroupShapes = function()
{
this.WordControl.m_oLogicDocument.unGroupShapes();
};
asc_docs_api.prototype.setVerticalAlign = function(align)
{
this.WordControl.m_oLogicDocument.setVerticalAlign(align);
};
asc_docs_api.prototype.setVert = function(vert)
{
this.WordControl.m_oLogicDocument.setVert(vert);
};
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)
{
if (Data.Hyperlink && typeof Data.Hyperlink.Value === "string")
{
var indAction = Data.Hyperlink.Value.indexOf("ppaction://hlink");
var Url = Data.Hyperlink.Value;
if (0 == indAction)
{
if (Url == "ppaction://hlinkshowjump?jump=firstslide")
{
Data.Hyperlink.Value = "First Slide";
}
else if (Url == "ppaction://hlinkshowjump?jump=lastslide")
{
Data.Hyperlink.Value = "Last Slide";
}
else if (Url == "ppaction://hlinkshowjump?jump=nextslide")
{
Data.Hyperlink.Value = "Next Slide";
}
else if (Url == "ppaction://hlinkshowjump?jump=previousslide")
{
Data.Hyperlink.Value = "Previous Slide";
}
else
{
var mask = "ppaction://hlinksldjumpslide";
var indSlide = Url.indexOf(mask);
if (0 == indSlide)
{
var slideNum = parseInt(Url.substring(mask.length));
Data.Hyperlink.Value = "Slide" + slideNum;
}
}
}
}
this.sendEvent("asc_onMouseMove", Data);
};
asc_docs_api.prototype.sync_ShowForeignCursorLabel = function(UserId, X, Y, Color)
{
if (this.WordControl.m_oLogicDocument.IsFocusOnNotes())
{
Y += parseInt(this.WordControl.m_oNotesContainer.HtmlElement.style.top);
}
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.ShowThumbnails = function(bIsShow)
{
if (bIsShow)
{
this.WordControl.Splitter1Pos = this.WordControl.OldSplitter1Pos;
if (this.WordControl.Splitter1Pos == 0)
this.WordControl.Splitter1Pos = 70;
this.WordControl.OnResizeSplitter();
}
else
{
var old = this.WordControl.OldSplitter1Pos;
this.WordControl.Splitter1Pos = 0;
this.WordControl.OnResizeSplitter();
this.WordControl.OldSplitter1Pos = old;
}
};
asc_docs_api.prototype.asc_DeleteVerticalScroll = function()
{
this.WordControl.DeleteVerticalScroll();
};
asc_docs_api.prototype.syncOnThumbnailsShow = function()
{
var bIsShow = true;
if (0 == this.WordControl.Splitter1Pos)
bIsShow = false;
this.sendEvent("asc_onThumbnailsShow", bIsShow);
};
//-----------------------------------------------------------------
// Функции для работы с гиперссылками
//-----------------------------------------------------------------
asc_docs_api.prototype.can_AddHyperlink = function()
{
//if ( true === CollaborativeEditing.Get_GlobalLock() )
// return false;
var bCanAdd = this.WordControl.m_oLogicDocument.CanAddHyperlink();
if (true === bCanAdd)
return this.WordControl.m_oLogicDocument.GetSelectedText(true);
return false;
};
// HyperProps - объект CHyperlinkProperty
asc_docs_api.prototype.add_Hyperlink = function(HyperProps)
{
if(null !== HyperProps.Text && undefined !== HyperProps.Text)
{
AscFonts.FontPickerByCharacter.checkText(HyperProps.Text, this, function() {
this.WordControl.m_oLogicDocument.AddHyperlink(HyperProps);
});
}
else
{
this.WordControl.m_oLogicDocument.AddHyperlink(HyperProps);
}
};
// HyperProps - объект CHyperlinkProperty
asc_docs_api.prototype.change_Hyperlink = function(HyperProps)
{
this.WordControl.m_oLogicDocument.ModifyHyperlink(HyperProps);
};
asc_docs_api.prototype.remove_Hyperlink = function()
{
this.WordControl.m_oLogicDocument.RemoveHyperlink();
};
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_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)
{
if(this.WordControl.m_oLogicDocument){
this.WordControl.m_oLogicDocument.replaceMisspelledWord(Word, SpellCheckProperty);
}
};
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();
if(LogicDocument.Slides[LogicDocument.CurPage])
{
LogicDocument.DrawingDocument.Notes_OnRecalculate(LogicDocument.CurPage,LogicDocument.NotesWidth, LogicDocument.Slides[LogicDocument.CurPage].getNotesHeight());
}
}
};
asc_docs_api.prototype.asc_setDefaultLanguage = function(Lang)
{
if (false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_PresDefaultLang))
{
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)
{
var _presentation = editor.WordControl.m_oLogicDocument;
_presentation.Spelling.Use = isOn;
var _drawing_document = editor.WordControl.m_oDrawingDocument;
_drawing_document.ClearCachePages();
_drawing_document.FirePaint();
if(_presentation.Slides[_presentation.CurPage] && _presentation.Slides[_presentation.CurPage].notes){
_drawing_document.Notes_OnRecalculate(_presentation.CurPage, _presentation.Slides[_presentation.CurPage].NotesWidth, _presentation.Slides[_presentation.CurPage].getNotesHeight());
}
}
};
asc_docs_api.prototype.spellCheck = function(rdata)
{
// ToDo проверка на подключение
switch (rdata.type)
{
case "spell":
case "suggest":
this.SpellCheckApi.spellCheck(JSON.stringify(rdata));
break;
}
};
asc_docs_api.prototype.sync_shapePropCallback = function(pr)
{
var obj = AscFormat.CreateAscShapePropFromProp(pr);
if (pr.fill != null && pr.fill.fill != null && pr.fill.fill.type == c_oAscFill.FILL_TYPE_BLIP)
{
this.WordControl.m_oDrawingDocument.DrawImageTextureFillShape(pr.fill.fill.RasterImageId);
}
else
{
this.WordControl.m_oDrawingDocument.DrawImageTextureFillShape(null);
}
var oTextArtProperties = pr.textArtProperties;
if (oTextArtProperties && oTextArtProperties.Fill && oTextArtProperties.Fill.fill && oTextArtProperties.Fill.fill.type == c_oAscFill.FILL_TYPE_BLIP)
{
this.WordControl.m_oDrawingDocument.DrawImageTextureFillTextArt(oTextArtProperties.Fill.fill.RasterImageId);
}
else
{
this.WordControl.m_oDrawingDocument.DrawImageTextureFillTextArt(null);
}
var _len = this.SelectedObjectsStack.length;
if (_len > 0)
{
if (this.SelectedObjectsStack[_len - 1].Type == c_oAscTypeSelectElement.Shape)
{
this.SelectedObjectsStack[_len - 1].Value = obj;
return;
}
}
this.SelectedObjectsStack[this.SelectedObjectsStack.length] = new asc_CSelectedObject(c_oAscTypeSelectElement.Shape, obj);
};
asc_docs_api.prototype.sync_slidePropCallback = function(slide)
{
if(!this.WordControl)
{
return;
}
if(!this.WordControl.m_oLogicDocument)
{
return;
}
var obj = new CAscSlideProps();
var aSlides = [];
var oPresentation = this.WordControl.m_oLogicDocument, i;
if(this.WordControl.Thumbnails){
var oTh = editor.WordControl.Thumbnails;
var aSelectedArray = oTh.GetSelectedArray();
obj.isHidden = oTh.IsSlideHidden(aSelectedArray);
for(i = 0; i < aSelectedArray.length; ++i)
{
if(oPresentation.Slides[aSelectedArray[i]])
{
aSlides.push(oPresentation.Slides[aSelectedArray[i]]);
}
}
}
else{
obj.isHidden = false;
aSlides.push(slide);
}
if (!slide)
return;
if(aSlides.length === 0)
{
aSlides.push(slide);
}
var bgFill = aSlides[0].backgroundFill ? aSlides[0].backgroundFill.createDuplicate() : aSlides[0].backgroundFill;
for(i = 1; i < aSlides.length; ++i)
{
bgFill = AscFormat.CompareUniFill(bgFill, aSlides[i].backgroundFill);
if(!bgFill){
break;
}
}
if (!bgFill)
{
obj.Background = new asc_CShapeFill();
obj.Background.type = c_oAscFill.FILL_TYPE_NOFILL;
this.WordControl.m_oDrawingDocument.DrawImageTextureFillSlide(null);
}
else
{
obj.Background = AscFormat.CreateAscFill(bgFill);
if (bgFill != null && bgFill.fill != null && bgFill.fill.type == c_oAscFill.FILL_TYPE_BLIP)
{
this.WordControl.m_oDrawingDocument.DrawImageTextureFillSlide(bgFill.fill.RasterImageId);
}
else
{
this.WordControl.m_oDrawingDocument.DrawImageTextureFillSlide(null);
}
}
var timing = aSlides[0].timing ? aSlides[0].timing.createDuplicate() : aSlides[0].timing;
for(i = 1; i < aSlides.length; ++i)
{
timing = AscCommonSlide.CompareTiming(timing, aSlides[i].timing);
if(!timing){
break;
}
}
if(timing){
obj.Timing = timing.createDuplicate();
}
else{
obj.Timing = Asc.CAscSlideTiming();
}
obj.Timing.ShowLoop = this.WordControl.m_oLogicDocument.isLoopShowMode();
obj.lockDelete = !(slide.deleteLock.Lock.Type === locktype_Mine || slide.deleteLock.Lock.Type === locktype_None);
obj.lockLayout = !(slide.layoutLock.Lock.Type === locktype_Mine || slide.layoutLock.Lock.Type === locktype_None);
obj.lockTiming = !(slide.timingLock.Lock.Type === locktype_Mine || slide.timingLock.Lock.Type === locktype_None);
obj.lockTranzition = !(slide.transitionLock.Lock.Type === locktype_Mine || slide.transitionLock.Lock.Type === locktype_None);
obj.lockBackground = !(slide.backgroundLock.Lock.Type === locktype_Mine || slide.backgroundLock.Lock.Type === locktype_None);
obj.lockRemove = obj.lockDelete ||
obj.lockLayout ||
obj.lockTiming ||
obj.lockTranzition ||
obj.lockBackground || slide.isLockedObject();
if(slide && slide.Layout && slide.Layout.Master){
var aLayouts = slide.Layout.Master.sldLayoutLst;
for(i = 0; i < aLayouts.length; ++i){
if(slide.Layout === aLayouts[i]){
obj.LayoutIndex = i;
break;
}
}
}
var _len = this.SelectedObjectsStack.length;
if (_len > 0)
{
if (this.SelectedObjectsStack[_len - 1].Type == c_oAscTypeSelectElement.Slide)
{
this.SelectedObjectsStack[_len - 1].Value = obj;
return;
}
}
this.SelectedObjectsStack[this.SelectedObjectsStack.length] = new asc_CSelectedObject(c_oAscTypeSelectElement.Slide, obj);
};
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)
{
this.isPaintFormat = value;
this.WordControl.m_oLogicDocument.Document_Format_Copy();
};
asc_docs_api.prototype.sync_PaintFormatCallback = function(value)
{
this.isPaintFormat = value;
return this.sendEvent("asc_onPaintFormatChanged", value);
};
asc_docs_api.prototype.ClearFormating = function()
{
this.WordControl.m_oLogicDocument.ClearParagraphFormatting(false, true);
};
window.ID_KEYBOARD_AREA = undefined;
window.ID_KEYBOARD_AREA;
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;
}
};
}
window.ID_KEYBOARD_AREA.focus();
};
asc_docs_api.prototype.asc_setViewMode = function(isViewMode)
{
this.isViewMode = !!isViewMode;
if (!this.isLoadFullApi)
{
return;
}
this.WordControl.setNodesEnable((this.isMobileVersion && !this.isReporterMode) ? false : true);
if (isViewMode)
{
this.ShowParaMarks = false;
this.WordControl.m_bIsRuler = false;
this.WordControl.m_oDrawingDocument.ClearCachePages();
this.WordControl.HideRulers();
AscCommon.CollaborativeEditing.Set_GlobalLock(true);
if (null != this.WordControl.m_oLogicDocument)
{
this.WordControl.m_oLogicDocument.viewMode = true;
}
}
else
{
this.WordControl.checkNeedRules();
this.WordControl.m_oDrawingDocument.ClearCachePages();
this.WordControl.OnResize(true);
if (null != this.WordControl.m_oLogicDocument)
{
this.WordControl.m_oLogicDocument.viewMode = false;
}
}
};
asc_docs_api.prototype.sync_HyperlinkClickCallback = function(Url)
{
var indAction = Url.indexOf("ppaction://hlink");
if (0 == indAction)
{
if (Url == "ppaction://hlinkshowjump?jump=firstslide")
{
this.WordControl.GoToPage(0);
}
else if (Url == "ppaction://hlinkshowjump?jump=lastslide")
{
this.WordControl.GoToPage(this.WordControl.m_oDrawingDocument.SlidesCount - 1);
}
else if (Url == "ppaction://hlinkshowjump?jump=nextslide")
{
this.WordControl.onNextPage();
}
else if (Url == "ppaction://hlinkshowjump?jump=previousslide")
{
this.WordControl.onPrevPage();
}
else
{
var mask = "ppaction://hlinksldjumpslide";
var indSlide = Url.indexOf(mask);
if (0 == indSlide)
{
var slideNum = parseInt(Url.substring(mask.length));
if (slideNum >= 0 && slideNum < this.WordControl.m_oDrawingDocument.SlidesCount)
this.WordControl.GoToPage(slideNum);
}
}
return;
}
this.sendEvent("asc_onHyperlinkClick", Url);
};
asc_docs_api.prototype.asc_GoToInternalHyperlink = function(url)
{
for(var i = 0; i < this.SelectedObjectsStack.length; ++i){
if(this.SelectedObjectsStack[i].Type === c_oAscTypeSelectElement.Hyperlink){
var oHyperProp = this.SelectedObjectsStack[i].Value;
if(typeof oHyperProp.Value === "string" && oHyperProp.Value.indexOf("ppaction://hlink") === 0){
this.sync_HyperlinkClickCallback(oHyperProp.Value);
}
return;
}
}
};
asc_docs_api.prototype.UpdateInterfaceState = function()
{
if (this.WordControl.m_oLogicDocument != null)
{
this.WordControl.m_oLogicDocument.Document_UpdateInterfaceState();
this.WordControl.CheckLayouts(true);
}
};
asc_docs_api.prototype.OnMouseUp = function(x, y)
{
var _e = AscCommon.CreateMouseUpEventObject(x, y);
AscCommon.Window_OnMouseUp(_e);
//this.WordControl.onMouseUpExternal(x, y);
};
asc_docs_api.prototype.asyncImageEndLoaded2 = null;
asc_docs_api.prototype.ChangeTheme = function(indexTheme, bSelectedSlides)
{
if (true === AscCommon.CollaborativeEditing.Get_GlobalLock())
return;
if (!this.isViewMode && this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Theme) === false)
{
AscCommon.CollaborativeEditing.Set_GlobalLock(true);
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Presentation_ChangeTheme);
this.bSelectedSlidesTheme = (bSelectedSlides === true);
this.ThemeLoader.StartLoadTheme(indexTheme);
}
};
asc_docs_api.prototype.StartLoadTheme = function()
{
};
asc_docs_api.prototype.EndLoadTheme = function(theme_load_info)
{
AscCommon.CollaborativeEditing.Set_GlobalLock(false);
// применение темы
var _array = this.WordControl.Thumbnails.GetSelectedArray();
this.WordControl.m_oLogicDocument.changeTheme(theme_load_info, (_array.length <= 1 && !this.bSelectedSlidesTheme) ? null : _array);
this.WordControl.ThemeGenerateThumbnails(theme_load_info.Master);
// меняем шаблоны в меню
this.WordControl.CheckLayouts();
this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadTheme);
};
asc_docs_api.prototype.ChangeLayout = function(layout_index)
{
var _array = this.WordControl.Thumbnails.GetSelectedArray();
var _master = this.WordControl.MasterLayouts;
this.WordControl.m_oLogicDocument.changeLayout(_array, this.WordControl.MasterLayouts, layout_index);
};
asc_docs_api.prototype.put_ShapesAlign = function(type)
{
switch (type)
{
case c_oAscAlignShapeType.ALIGN_LEFT:
{
this.shapes_alignLeft();
break;
}
case c_oAscAlignShapeType.ALIGN_RIGHT:
{
this.shapes_alignRight();
break;
}
case c_oAscAlignShapeType.ALIGN_TOP:
{
this.shapes_alignTop();
break;
}
case c_oAscAlignShapeType.ALIGN_BOTTOM:
{
this.shapes_alignBottom();
break;
}
case c_oAscAlignShapeType.ALIGN_CENTER:
{
this.shapes_alignCenter();
break;
}
case c_oAscAlignShapeType.ALIGN_MIDDLE:
{
this.shapes_alignMiddle();
break;
}
default:
break;
}
};
asc_docs_api.prototype.DistributeHorizontally = function()
{
this.WordControl.m_oLogicDocument.distributeHor();
};
asc_docs_api.prototype.DistributeVertically = function()
{
this.WordControl.m_oLogicDocument.distributeVer();
};
asc_docs_api.prototype.shapes_alignLeft = function()
{
this.WordControl.m_oLogicDocument.alignLeft();
};
asc_docs_api.prototype.shapes_alignRight = function()
{
this.WordControl.m_oLogicDocument.alignRight();
};
asc_docs_api.prototype.shapes_alignTop = function()
{
this.WordControl.m_oLogicDocument.alignTop();
};
asc_docs_api.prototype.shapes_alignBottom = function()
{
this.WordControl.m_oLogicDocument.alignBottom();
};
asc_docs_api.prototype.shapes_alignCenter = function()
{
this.WordControl.m_oLogicDocument.alignCenter();
};
asc_docs_api.prototype.shapes_alignMiddle = function()
{
this.WordControl.m_oLogicDocument.alignMiddle();
};
asc_docs_api.prototype.shapes_bringToFront = function()
{
this.WordControl.m_oLogicDocument.bringToFront();
};
asc_docs_api.prototype.shapes_bringForward = function()
{
this.WordControl.m_oLogicDocument.bringForward();
};
asc_docs_api.prototype.shapes_bringToBack = function()
{
this.WordControl.m_oLogicDocument.sendToBack();
};
asc_docs_api.prototype.shapes_bringBackward = function()
{
this.WordControl.m_oLogicDocument.bringBackward();
};
asc_docs_api.prototype.asc_setLoopShow = function(isLoop)
{
this.WordControl.m_oLogicDocument.setShowLoop(isLoop);
};
asc_docs_api.prototype.sync_endDemonstration = function()
{
this.sendEvent("asc_onEndDemonstration");
};
asc_docs_api.prototype.sync_DemonstrationSlideChanged = function(slideNum)
{
this.sendEvent("asc_onDemonstrationSlideChanged", slideNum);
};
asc_docs_api.prototype.StartDemonstration = function(div_id, slidestart_num, reporterStartObject)
{
if (window.g_asc_plugins)
window.g_asc_plugins.stopWorked();
var is_reporter = (reporterStartObject && !this.isReporterMode);
if (is_reporter)
this.DemonstrationReporterStart(reporterStartObject);
if (is_reporter && (this.reporterWindow || window["AscDesktopEditor"]))
this.WordControl.DemonstrationManager.StartWaitReporter(div_id, slidestart_num, true);
else
this.WordControl.DemonstrationManager.Start(div_id, slidestart_num, true);
};
asc_docs_api.prototype.EndDemonstration = function(isNoUseFullScreen)
{
if (this.windowReporter)
this.windowReporter.close();
this.WordControl.DemonstrationManager.End(isNoUseFullScreen);
};
asc_docs_api.prototype.DemonstrationReporterStart = function(startObject)
{
this.reporterStartObject = startObject;
this.reporterStartObject["translate"] = AscCommon.translateManager.mapTranslate;
if (window["AscDesktopEditor"])
{
window["AscDesktopEditor"]["startReporter"](window.location.href);
this.reporterWindow = {};
return;
}
var dualScreenLeft = (window.screenLeft != undefined) ? window.screenLeft : screen.left;
var dualScreenTop = (window.screenTop != undefined) ? window.screenTop : screen.top;
var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;
var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;
var w = 800;
var h = 600;
var left = ((width / 2) - (w / 2)) + dualScreenLeft;
var top = ((height / 2) - (h / 2)) + dualScreenTop;
var _windowPos = "width=" + w + ",height=" + h + ",left=" + left + ",top=" + top;
var _url = "index.reporter.html";
if (this.locale)
_url += ("?lang=" + this.locale);
this.reporterWindow = window.open(_url, "_blank", "resizable=yes,status=0,toolbar=0,location=0,menubar=0,directories=0,scrollbars=0," + _windowPos);
if (!this.reporterWindow)
return;
this.reporterWindowCounter = 0;
if (!AscCommon.AscBrowser.isSafariMacOs)
{
this.reporterWindow.onbeforeunload = function ()
{
window.editor.EndDemonstration();
};
}
this.reporterWindow.onunload = function () {
window.editor.reporterWindowCounter++;
if (1 < window.editor.reporterWindowCounter)
{
window.editor.EndDemonstration();
}
};
if ( this.reporterWindow.attachEvent )
this.reporterWindow.attachEvent('onmessage', this.DemonstrationReporterMessages);
else
this.reporterWindow.addEventListener('message', this.DemonstrationReporterMessages, false);
};
asc_docs_api.prototype.DemonstrationReporterEnd = function()
{
if (window["AscDesktopEditor"])
{
window["AscDesktopEditor"]["endReporter"]();
this.reporterWindow = null;
return;
}
try
{
this.reporterWindowCounter = 0;
if (!this.reporterWindow)
return;
if (this.reporterWindow.attachEvent)
this.reporterWindow.detachEvent('onmessage', this.DemonstrationReporterMessages);
else
this.reporterWindow.removeEventListener('message', this.DemonstrationReporterMessages, false);
this.reporterWindow.close();
this.reporterWindow = null;
this.reporterStartObject = null;
}
catch (err)
{
this.reporterWindow = null;
this.reporterStartObject = null;
}
};
asc_docs_api.prototype.DemonstrationReporterMessages = function(e)
{
var _this = window.editor;
if ( e.data == 'i:am:ready' )
{
var _msg_ = {
type: 'file:open',
data: _this.reporterStartObject
};
if (AscCommon.EncryptionWorker.isPasswordCryptoPresent)
{
_msg_.data["cryptoCurrentPassword"] = this.currentPassword;
_msg_.data["cryptoCurrentDocumentHash"] = this.currentDocumentHash;
_msg_.data["cryptoCurrentDocumentInfo"] = this.currentDocumentInfo;
}
this.reporterStartObject = null;
_this.sendToReporter(JSON.stringify(_msg_));
return;
}
try
{
var _obj = JSON.parse(e.data);
if (undefined == _obj["reporter_command"])
return;
switch (_obj["reporter_command"])
{
case "end":
{
_this.EndDemonstration();
break;
}
case "next":
{
_this.WordControl.DemonstrationManager.NextSlide();
break;
}
case "prev":
{
_this.WordControl.DemonstrationManager.PrevSlide();
break;
}
case "go_to_slide":
{
_this.WordControl.DemonstrationManager.GoToSlide(_obj["slide"]);
break;
}
case "start_show":
{
_this.WordControl.DemonstrationManager.EndWaitReporter();
break;
}
case "pointer_move":
{
_this.WordControl.DemonstrationManager.PointerMove(_obj["x"], _obj["y"], _obj["w"], _obj["h"]);
break;
}
case "pointer_remove":
{
_this.WordControl.DemonstrationManager.PointerRemove();
break;
}
case "pause":
{
_this.WordControl.DemonstrationManager.Pause();
_this.sendEvent("asc_onDemonstrationStatus", "pause");
break;
}
case "play":
{
_this.WordControl.DemonstrationManager.Play();
_this.sendEvent("asc_onDemonstrationStatus", "play");
break;
}
case "resize":
{
_this.WordControl.DemonstrationManager.Resize(true);
break;
}
default:
break;
}
}
catch (err)
{
}
};
asc_docs_api.prototype.preloadReporter = function(data)
{
if (data["translate"])
this.translateManager = AscCommon.translateManager.init(data["translate"]);
this.reporterTranslates = [data["translations"]["reset"], data["translations"]["slideOf"], data["translations"]["endSlideshow"], data["translations"]["finalMessage"]];
if (data["cryptoCurrentPassword"])
{
this.currentPassword = data["cryptoCurrentPassword"];
this.currentDocumentHash = data["cryptoCurrentDocumentHash"];
this.currentDocumentInfo = data["cryptoCurrentDocumentInfo"];
if (this.pluginsManager)
this.pluginsManager.checkCryptoReporter();
else
this.isCheckCryptoReporter = true;
}
if (!this.WordControl)
return;
this.WordControl.reporterTranslates = this.reporterTranslates;
var _button1 = document.getElementById("dem_id_reset");
var _button2 = document.getElementById("dem_id_end");
if (_button1)
_button1.innerHTML = this.reporterTranslates[0];
if (_button2)
{
_button2.innerHTML = this.reporterTranslates[2];
this.WordControl.OnResizeReporter();
}
};
asc_docs_api.prototype.sendToReporter = function(value)
{
if (this.disableReporterEvents)
return;
if (window["AscDesktopEditor"])
{
window["AscDesktopEditor"]["sendToReporter"](value);
return;
}
if (this.reporterWindow)
this.reporterWindow.postMessage(value, "*");
};
asc_docs_api.prototype.sendFromReporter = function(value)
{
if (this.disableReporterEvents)
return;
if (window["AscDesktopEditor"])
{
window["AscDesktopEditor"]["sendFromReporter"](value);
return;
}
window.postMessage(value, "*");
};
asc_docs_api.prototype.DemonstrationToReporterMessages = function(e)
{
var _this = window.editor;
try
{
var _obj = JSON.parse(e.data);
if (window["AscDesktopEditor"] && (_obj["type"] == "file:open"))
{
window.postMessage(e.data, "*");
return;
}
if (undefined == _obj["main_command"])
return;
if (undefined !== _obj["keyCode"])
{
_this.WordControl.DemonstrationManager.onKeyDownCode(_obj["keyCode"]);
}
else if (undefined !== _obj["mouseUp"])
{
_this.WordControl.DemonstrationManager.onMouseUp({}, true, true);
}
else if (undefined !== _obj["mouseWhell"])
{
_this.WordControl.DemonstrationManager.onMouseWheelDelta(_obj["mouseWhell"]);
}
else if (undefined !== _obj["resize"])
{
_this.WordControl.DemonstrationManager.Resize(true);
}
else if (true === _obj["next"])
{
_this.WordControl.DemonstrationManager.NextSlide(true);
}
else if (true === _obj["prev"])
{
_this.WordControl.DemonstrationManager.PrevSlide(true);
}
else if (undefined !== _obj["go_to_slide"])
{
_this.WordControl.DemonstrationManager.GoToSlide(_obj["go_to_slide"], true);
}
else if (true === _obj["play"])
{
var _isNowPlaying = _this.WordControl.DemonstrationManager.IsPlayMode;
_this.WordControl.DemonstrationManager.Play(true);
var _elem = document.getElementById("dem_id_play_span");
if (_elem && !_isNowPlaying)
{
_elem.classList.remove("btn-play");
_elem.classList.add("btn-pause");
_this.WordControl.reporterTimerLastStart = new Date().getTime();
_this.WordControl.reporterTimer = setInterval(_this.WordControl.reporterTimerFunc, 1000);
}
}
else if (true === _obj["pause"])
{
var _isNowPlaying = _this.WordControl.DemonstrationManager.IsPlayMode;
_this.WordControl.DemonstrationManager.Pause();
var _elem = document.getElementById("dem_id_play_span");
if (_elem && _isNowPlaying)
{
_elem.classList.remove("btn-pause");
_elem.classList.add("btn-play");
if (-1 != _this.WordControl.reporterTimer)
{
clearInterval(_this.WordControl.reporterTimer);
_this.WordControl.reporterTimer = -1;
}
_this.WordControl.reporterTimerAdd = _this.WordControl.reporterTimerFunc(true);
}
}
}
catch (err)
{
}
};
asc_docs_api.prototype.DemonstrationPlay = function()
{
if (undefined !== this.EndShowMessage)
{
this.WordControl.DemonstrationManager.EndShowMessage = this.EndShowMessage;
this.EndShowMessage = undefined;
}
this.WordControl.DemonstrationManager.Play(true);
if (this.reporterWindow)
this.sendToReporter("{ \"main_command\" : true, \"play\" : true }");
};
asc_docs_api.prototype.DemonstrationPause = function()
{
this.WordControl.DemonstrationManager.Pause();
if (this.reporterWindow)
this.sendToReporter("{ \"main_command\" : true, \"pause\" : true }");
};
asc_docs_api.prototype.DemonstrationEndShowMessage = function(message)
{
if (!this.WordControl)
this.EndShowMessage = message;
else
this.WordControl.DemonstrationManager.EndShowMessage = message;
};
asc_docs_api.prototype.DemonstrationNextSlide = function()
{
this.WordControl.DemonstrationManager.NextSlide();
if (this.reporterWindow)
this.sendToReporter("{ \"main_command\" : true, \"next\" : true }");
};
asc_docs_api.prototype.DemonstrationPrevSlide = function()
{
this.WordControl.DemonstrationManager.PrevSlide();
if (this.reporterWindow)
this.sendToReporter("{ \"main_command\" : true, \"prev\" : true }");
};
asc_docs_api.prototype.DemonstrationGoToSlide = function(slideNum)
{
this.WordControl.DemonstrationManager.GoToSlide(slideNum);
if (this.isReporterMode)
this.sendFromReporter("{ \"reporter_command\" : \"go_to_slide\", \"slide\" : " + slideNum + " }");
if (this.reporterWindow)
this.sendToReporter("{ \"main_command\" : true, \"go_to_slide\" : " + slideNum + " }");
};
asc_docs_api.prototype.SetDemonstrationModeOnly = function()
{
this.isOnlyDemonstration = true;
};
asc_docs_api.prototype.ApplySlideTiming = function(oTiming)
{
if (this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_SlideTiming) === false)
{
History.Create_NewPoint(AscDFH.historydescription_Presentation_ApplyTiming);
var _count = this.WordControl.m_oDrawingDocument.SlidesCount;
var _cur = this.WordControl.m_oDrawingDocument.SlideCurrent;
if (_cur < 0 || _cur >= _count)
return;
var aSelectedSlides = this.WordControl.Thumbnails.GetSelectedArray();
for(var i = 0; i < aSelectedSlides.length; ++i)
{
var _curSlide = this.WordControl.m_oLogicDocument.Slides[aSelectedSlides[i]];
_curSlide.applyTiming(oTiming);
}
if(oTiming){
if(AscFormat.isRealBool(oTiming.get_ShowLoop()) && oTiming.get_ShowLoop() !== this.WordControl.m_oLogicDocument.isLoopShowMode()){
this.WordControl.m_oLogicDocument.setShowLoop(oTiming.get_ShowLoop());
}
}
}
this.WordControl.m_oLogicDocument.Document_UpdateInterfaceState();
};
asc_docs_api.prototype.SlideTimingApplyToAll = function()
{
if (this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_SlideTiming, {All : true}) === false)
{
History.Create_NewPoint(AscDFH.historydescription_Presentation_ApplyTimingToAll);
var _count = this.WordControl.m_oDrawingDocument.SlidesCount;
var _cur = this.WordControl.m_oDrawingDocument.SlideCurrent;
var _slides = this.WordControl.m_oLogicDocument.Slides;
if (_cur < 0 || _cur >= _count)
return;
var _curSlide = _slides[_cur];
_curSlide.timing.makeDuplicate(this.WordControl.m_oLogicDocument.DefaultSlideTiming);
var _default = this.WordControl.m_oLogicDocument.DefaultSlideTiming;
for (var i = 0; i < _count; i++)
{
if (i == _cur)
continue;
_slides[i].applyTiming(_default);
}
}
};
asc_docs_api.prototype.SlideTransitionPlay = function()
{
var _count = this.WordControl.m_oDrawingDocument.SlidesCount;
var _cur = this.WordControl.m_oDrawingDocument.SlideCurrent;
if (_cur < 0 || _cur >= _count)
return;
var _timing = this.WordControl.m_oLogicDocument.Slides[_cur].timing;
var _tr = this.WordControl.m_oDrawingDocument.TransitionSlide;
_tr.Type = _timing.TransitionType;
_tr.Param = _timing.TransitionOption;
_tr.Duration = _timing.TransitionDuration;
_tr.Start(true);
};
asc_docs_api.prototype.asc_HideSlides = function(isHide)
{
this.WordControl.m_oLogicDocument.hideSlides(isHide);
};
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.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(chartBinary)
{
/**/
// Приводим бинарик к объекту типа CChartAsGroup и добавляем объект
if (AscFormat.isObject(chartBinary))
{
//if ( false === this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) )
{
AscFonts.IsCheckSymbols = true;
this.WordControl.m_oLogicDocument.addChart(chartBinary, true);
AscFonts.IsCheckSymbols = false;
}
}
};
asc_docs_api.prototype.asc_editChartDrawingObject = function(chartBinary)
{
/**/
// Находим выделенную диаграмму и накатываем бинарник
if (AscCommon.isRealObject(chartBinary))
{
this.WordControl.m_oLogicDocument.EditChart(chartBinary);
}
};
asc_docs_api.prototype.asc_onCloseChartFrame = function()
{
AscCommon.baseEditorsApi.prototype.asc_onCloseChartFrame.call(this);
this.WordControl.m_bIsMouseLock = false;
};
asc_docs_api.prototype.sync_closeChartEditor = function()
{
this.sendEvent("asc_onCloseChartEditor");
};
asc_docs_api.prototype.asc_setDrawCollaborationMarks = function()
{
};
//-----------------------------------------------------------------
// События контекстного меню
//-----------------------------------------------------------------
function CContextMenuData(oData)
{
if (AscCommon.isRealObject(oData))
{
this.Type = oData.Type;
this.X_abs = oData.X_abs;
this.Y_abs = oData.Y_abs;
this.IsSlideSelect = oData.IsSlideSelect;
this.IsSlideHidden = oData.IsSlideHidden;
}
else
{
this.Type = Asc.c_oAscContextMenuTypes.Main;
this.X_abs = 0;
this.Y_abs = 0;
this.IsSlideSelect = true;
this.IsSlideHidden = false;
}
}
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_IsSlideSelect = function()
{
return this.IsSlideSelect;
};
CContextMenuData.prototype.get_IsSlideHidden = function()
{
return this.IsSlideHidden;
};
asc_docs_api.prototype.sync_ContextMenuCallback = function(Data)
{
this.sendEvent("asc_onContextMenu", Data);
};
asc_docs_api.prototype._onNeedParams = function(data, opt_isPassword)
{
if (opt_isPassword) {
if (this.asc_checkNeedCallback("asc_onAdvancedOptions")) {
this.sendEvent("asc_onAdvancedOptions", new AscCommon.asc_CAdvancedOptions(c_oAscAdvancedOptionsID.DRM), c_oAscAdvancedOptionsAction.Open);
} else {
this.sendEvent("asc_onError", c_oAscError.ID.ConvertationPassword, c_oAscError.Level.Critical);
}
}
};
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)
{
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._onEndLoadSdk = function()
{
AscCommon.baseEditorsApi.prototype._onEndLoadSdk.call(this);
History = AscCommon.History;
PasteElementsId = AscCommon.PasteElementsId;
global_mouseEvent = AscCommon.global_mouseEvent;
this.WordControl = new AscCommonSlide.CEditorPage(this);
this.WordControl.Name = this.HtmlElementName;
this.ThemeLoader = new AscCommonSlide.CThemeLoader();
this.ThemeLoader.Api = this;
//выставляем тип copypaste
PasteElementsId.g_bIsDocumentCopyPaste = false;
this.CreateComponents();
this.WordControl.Init();
if (this.tmpThemesPath)
{
this.SetThemesPath(this.tmpThemesPath);
}
if (null !== this.tmpIsFreeze)
{
this.SetDrawingFreeze(this.tmpIsFreeze);
}
if (this.tmpSlideDiv)
{
this.SetInterfaceDrawImagePlaceSlide(this.tmpSlideDiv);
}
if (this.tmpTextArtDiv)
{
this.SetInterfaceDrawImagePlaceTextArt(this.tmpTextArtDiv);
}
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);
if (this.isReporterMode)
{
var _onbeforeunload = function ()
{
window.editor.EndDemonstration();
};
if (window.attachEvent)
window.attachEvent('onbeforeunload', _onbeforeunload);
else
window.addEventListener('beforeunload', _onbeforeunload, false);
}
if (this.openFileCryptBinary)
{
window.openFileCryptCallback(this.openFileCryptBinary);
this.openFileCryptBinary = null;
}
};
asc_docs_api.prototype._downloadAs = function(filetype, actionType, options)
{
var isCloudCrypto = (window["AscDesktopEditor"] && (0 < window["AscDesktopEditor"]["CryptoMode"])) ? true : false;
var t = this;
if (!options)
{
options = {};
}
if (actionType)
{
this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, actionType);
}
var isNoBase64 = (typeof ArrayBuffer !== 'undefined') && !isCloudCrypto;
var dataContainer = {data : null, part : null, index : 0, count : 0};
var command = "save";
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 (DownloadType.Print === options.downloadType)
{
oAdditionalData["inline"] = 1;
}
if (c_oAscFileType.PDF == filetype || c_oAscFileType.PDFA == filetype)
{
var dd = this.WordControl.m_oDrawingDocument;
dataContainer.data = dd.ToRendererPart(isNoBase64);
}
else
dataContainer.data = this.WordControl.SaveDocument(isNoBase64);
if (isCloudCrypto)
{
window["AscDesktopEditor"]["CryptoDownloadAs"](dataContainer.data, filetype);
return;
}
var fCallback = function(input)
{
var error = c_oAscError.ID.Unknown;
if (null != input && command == input["type"])
{
if ('ok' == input["status"])
{
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.sendEvent("asc_onError", error, c_oAscError.Level.NoCritical);
}
if (actionType)
{
t.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, actionType);
}
};
this.fCurCallback = fCallback;
AscCommon.saveWithParts(function(fCallback1, oAdditionalData1, dataContainer1)
{
sendCommand(t, fCallback1, oAdditionalData1, dataContainer1);
}, fCallback, null, oAdditionalData, dataContainer);
};
asc_docs_api.prototype.asc_Recalculate = function(bIsUpdateInterface)
{
if (!this.WordControl.m_oLogicDocument)
return;
this.WordControl.m_oLogicDocument.Recalculate({Drawings : {All : true, Map : {}}});
this.WordControl.m_oLogicDocument.DrawingDocument.OnEndRecalculate();
};
asc_docs_api.prototype.asc_canPaste = function()
{
if (!this.WordControl ||
!this.WordControl.m_oLogicDocument ||
this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Drawing_Props))
return false;
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_AddSectionBreak);
return true;
};
// 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);
};
//test
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();
g_oIdCounter.Set_Load(true);
var _loader = new AscCommon.BinaryPPTYLoader();
_loader.Api = this;
_loader.Load(base64File, this.WordControl.m_oLogicDocument);
_loader.Check_TextFit();
this.LoadedObject = 1;
g_oIdCounter.Set_Load(false);
};
window["asc_docs_api"].prototype["asc_nativeCalculateFile"] = function()
{
this.bNoSendComments = false;
this.ShowParaMarks = false;
var presentation = this.WordControl.m_oLogicDocument;
if(presentation){
presentation.Recalculate({Drawings : {All : true, Map : {}}});
presentation.DrawingDocument.OnEndRecalculate();
}
};
window["asc_docs_api"].prototype["asc_nativeApplyChanges"] = function(changes)
{
var _len = changes.length;
for (var i = 0; i < _len; i++)
{
var Changes = new AscCommon.CCollaborativeChanges();
Changes.Set_Data(changes[i]);
AscCommon.CollaborativeEditing.Add_Changes(Changes);
}
AscCommon.CollaborativeEditing.Apply_OtherChanges();
};
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 Loader = {Reader : stream, Reader2 : null};
var _color = new AscCommonWord.CDocumentColor(191, 255, 199);
// Применяем изменения, пока они есть
var _count = Loader.Reader.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();
}
g_oIdCounter.Set_Load(false);
};
window["asc_docs_api"].prototype["asc_nativeGetFile"] = function()
{
var writer = new AscCommon.CBinaryFileWriter();
this.WordControl.m_oLogicDocument.CalculateComments();
return writer.WriteDocument(this.WordControl.m_oLogicDocument);
};
window["asc_docs_api"].prototype.asc_nativeGetFile3 = function()
{
var writer = new AscCommon.CBinaryFileWriter();
this.WordControl.m_oLogicDocument.CalculateComments();
return { data: writer.WriteDocument3(this.WordControl.m_oLogicDocument, true), header: ("PPTY;v10;" + writer.pos + ";") };
};
window["asc_docs_api"].prototype["asc_nativeGetFileData"] = function()
{
var writer = new AscCommon.CBinaryFileWriter();
this.WordControl.m_oLogicDocument.CalculateComments();
writer.WriteDocument3(this.WordControl.m_oLogicDocument);
var _header = "PPTY;v10;" + writer.pos + ";";
window["native"]["Save_End"](_header, writer.pos);
return writer.ImData.data;
};
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 = _drawing_document.SlidesCount;
window["AscDesktopEditor"]["Print_Start"](this.DocumentUrl, pagescount, this.ThemeLoader.ThemesUrl, 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;
oDocRenderer.IsNoDrawingEmptyPlaceholder = true;
for (var i = 0; i < pagescount; i++)
{
oDocRenderer.Memory.Seek(0);
oDocRenderer.VectorMemoryForPrint.ClearNoAttack();
oDocRenderer.BeginPage(_drawing_document.m_oLogicDocument.Width, _drawing_document.m_oLogicDocument.Height);
this.WordControl.m_oLogicDocument.DrawPage(i, oDocRenderer);
oDocRenderer.EndPage();
window["AscDesktopEditor"]["Print_Page"](oDocRenderer.Memory.GetBase64Memory(), _drawing_document.m_oLogicDocument.Width, _drawing_document.m_oLogicDocument.Height);
}
if (0 == pagescount)
{
oDocRenderer.BeginPage(_drawing_document.m_oLogicDocument.Width, _drawing_document.m_oLogicDocument.Height);
oDocRenderer.EndPage();
window["AscDesktopEditor"]["Print_Page"](oDocRenderer.Memory.GetBase64Memory());
}
this.ShowParaMarks = bOldShowMarks;
window["AscDesktopEditor"]["Print_End"]();
}
return;
}
var _logic_doc = this.WordControl.m_oLogicDocument;
_printer.BeginPage(_logic_doc.Width, _logic_doc.Height);
_logic_doc.DrawPage(_page, _printer);
_printer.EndPage();
};
window["asc_docs_api"].prototype["asc_nativePrintPagesCount"] = function()
{
return this.WordControl.m_oDrawingDocument.SlidesCount;
};
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;
_renderer.IsNoDrawingEmptyPlaceholder = true;
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;
};
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'] || {};
window['AscCommonSlide'] = window['AscCommonSlide'] || {};
window['Asc']['asc_docs_api'] = asc_docs_api;
asc_docs_api.prototype['asc_GetFontThumbnailsPath'] = asc_docs_api.prototype.asc_GetFontThumbnailsPath;
asc_docs_api.prototype['pre_Save'] = asc_docs_api.prototype.pre_Save;
asc_docs_api.prototype['sync_CollaborativeChanges'] = asc_docs_api.prototype.sync_CollaborativeChanges;
asc_docs_api.prototype['asc_coAuthoringDisconnect'] = asc_docs_api.prototype.asc_coAuthoringDisconnect;
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['syncCollaborativeChanges'] = asc_docs_api.prototype.syncCollaborativeChanges;
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['_onUpdateDocumentCanSave'] = asc_docs_api.prototype._onUpdateDocumentCanSave;
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['SetThemesPath'] = asc_docs_api.prototype.SetThemesPath;
asc_docs_api.prototype['InitEditor'] = asc_docs_api.prototype.InitEditor;
asc_docs_api.prototype['SetInterfaceDrawImagePlaceSlide'] = asc_docs_api.prototype.SetInterfaceDrawImagePlaceSlide;
asc_docs_api.prototype['SetInterfaceDrawImagePlaceTextArt'] = asc_docs_api.prototype.SetInterfaceDrawImagePlaceTextArt;
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['get_TextProps'] = asc_docs_api.prototype.get_TextProps;
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_PropertyEditorThemes'] = asc_docs_api.prototype.get_PropertyEditorThemes;
asc_docs_api.prototype['get_ContentCount'] = asc_docs_api.prototype.get_ContentCount;
asc_docs_api.prototype['UpdateTextPr'] = asc_docs_api.prototype.UpdateTextPr;
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_VerticalTextAlign'] = asc_docs_api.prototype.sync_VerticalTextAlign;
asc_docs_api.prototype['sync_Vert'] = asc_docs_api.prototype.sync_Vert;
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['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['startGetDocInfo'] = asc_docs_api.prototype.startGetDocInfo;
asc_docs_api.prototype['asc_setAdvancedOptions'] = asc_docs_api.prototype.asc_setAdvancedOptions;
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['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['startSearchText'] = asc_docs_api.prototype.startSearchText;
asc_docs_api.prototype['goToNextSearchResult'] = asc_docs_api.prototype.goToNextSearchResult;
asc_docs_api.prototype['gotoSearchResultText'] = asc_docs_api.prototype.gotoSearchResultText;
asc_docs_api.prototype['stopSearchText'] = asc_docs_api.prototype.stopSearchText;
asc_docs_api.prototype['findText'] = asc_docs_api.prototype.findText;
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['sync_SearchFoundCallback'] = asc_docs_api.prototype.sync_SearchFoundCallback;
asc_docs_api.prototype['sync_SearchStartCallback'] = asc_docs_api.prototype.sync_SearchStartCallback;
asc_docs_api.prototype['sync_SearchStopCallback'] = asc_docs_api.prototype.sync_SearchStopCallback;
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_TextPrLang'] = asc_docs_api.prototype.put_TextPrLang;
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_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_AlignBySelect'] = asc_docs_api.prototype.put_AlignBySelect;
asc_docs_api.prototype['get_AlignBySelect'] = asc_docs_api.prototype.get_AlignBySelect;
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_InitEditorThemes'] = asc_docs_api.prototype.sync_InitEditorThemes;
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['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['ShapeApply'] = asc_docs_api.prototype.ShapeApply;
asc_docs_api.prototype['setStartPointHistory'] = asc_docs_api.prototype.setStartPointHistory;
asc_docs_api.prototype['setEndPointHistory'] = asc_docs_api.prototype.setEndPointHistory;
asc_docs_api.prototype['SetSlideProps'] = asc_docs_api.prototype.SetSlideProps;
asc_docs_api.prototype['put_LineCap'] = asc_docs_api.prototype.put_LineCap;
asc_docs_api.prototype['put_LineJoin'] = asc_docs_api.prototype.put_LineJoin;
asc_docs_api.prototype['put_LineBeginStyle'] = asc_docs_api.prototype.put_LineBeginStyle;
asc_docs_api.prototype['put_LineBeginSize'] = asc_docs_api.prototype.put_LineBeginSize;
asc_docs_api.prototype['put_LineEndStyle'] = asc_docs_api.prototype.put_LineEndStyle;
asc_docs_api.prototype['put_LineEndSize'] = asc_docs_api.prototype.put_LineEndSize;
asc_docs_api.prototype['put_TextColor2'] = asc_docs_api.prototype.put_TextColor2;
asc_docs_api.prototype['put_TextColor'] = asc_docs_api.prototype.put_TextColor;
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['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_TextColor2'] = asc_docs_api.prototype.sync_TextColor2;
asc_docs_api.prototype['sync_TextHighLight'] = asc_docs_api.prototype.sync_TextHighLight;
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_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['SetDrawImagePlaceParagraph'] = asc_docs_api.prototype.SetDrawImagePlaceParagraph;
asc_docs_api.prototype['get_DocumentOrientation'] = asc_docs_api.prototype.get_DocumentOrientation;
asc_docs_api.prototype['put_AddPageBreak'] = asc_docs_api.prototype.put_AddPageBreak;
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['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['asc_DistributeTableCells'] = asc_docs_api.prototype.asc_DistributeTableCells;
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['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['ChangeSlideImageFromFile'] = asc_docs_api.prototype.ChangeSlideImageFromFile;
asc_docs_api.prototype['ChangeArtImageFromFile'] = asc_docs_api.prototype.ChangeArtImageFromFile;
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['StartAddShape'] = asc_docs_api.prototype.StartAddShape;
asc_docs_api.prototype['AddTextArt'] = asc_docs_api.prototype.AddTextArt;
asc_docs_api.prototype['canGroup'] = asc_docs_api.prototype.canGroup;
asc_docs_api.prototype['canUnGroup'] = asc_docs_api.prototype.canUnGroup;
asc_docs_api.prototype['AddImageUrl'] = asc_docs_api.prototype.AddImageUrl;
asc_docs_api.prototype['AddImageUrlActionCallback'] = asc_docs_api.prototype.AddImageUrlActionCallback;
asc_docs_api.prototype['AddImageUrlAction'] = asc_docs_api.prototype.AddImageUrlAction;
asc_docs_api.prototype['ImgApply'] = asc_docs_api.prototype.ImgApply;
asc_docs_api.prototype['ChartApply'] = asc_docs_api.prototype.ChartApply;
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['asc_onCloseChartFrame'] = asc_docs_api.prototype.asc_onCloseChartFrame;
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['SetDrawingFreeze'] = asc_docs_api.prototype.SetDrawingFreeze;
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['sync_SendThemeColors'] = asc_docs_api.prototype.sync_SendThemeColors;
asc_docs_api.prototype['ChangeColorScheme'] = asc_docs_api.prototype.ChangeColorScheme;
asc_docs_api.prototype['asc_enableKeyEvents'] = asc_docs_api.prototype.asc_enableKeyEvents;
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_getMasterCommentId'] = asc_docs_api.prototype.asc_getMasterCommentId;
asc_docs_api.prototype['asc_getAnchorPosition'] = asc_docs_api.prototype.asc_getAnchorPosition;
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['GenerateStyles'] = asc_docs_api.prototype.GenerateStyles;
asc_docs_api.prototype['asyncFontsDocumentEndLoaded'] = asc_docs_api.prototype.asyncFontsDocumentEndLoaded;
asc_docs_api.prototype['asyncImagesDocumentEndLoaded'] = asc_docs_api.prototype.asyncImagesDocumentEndLoaded;
asc_docs_api.prototype['asyncFontEndLoaded'] = asc_docs_api.prototype.asyncFontEndLoaded;
asc_docs_api.prototype['asyncImageEndLoaded'] = asc_docs_api.prototype.asyncImageEndLoaded;
asc_docs_api.prototype['get_PresentationWidth'] = asc_docs_api.prototype.get_PresentationWidth;
asc_docs_api.prototype['get_PresentationHeight'] = asc_docs_api.prototype.get_PresentationHeight;
asc_docs_api.prototype['pre_Paste'] = asc_docs_api.prototype.pre_Paste;
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['changeSlideSize'] = asc_docs_api.prototype.changeSlideSize;
asc_docs_api.prototype['AddSlide'] = asc_docs_api.prototype.AddSlide;
asc_docs_api.prototype['DeleteSlide'] = asc_docs_api.prototype.DeleteSlide;
asc_docs_api.prototype['DublicateSlide'] = asc_docs_api.prototype.DublicateSlide;
asc_docs_api.prototype['SelectAllSlides'] = asc_docs_api.prototype.SelectAllSlides;
asc_docs_api.prototype['AddShape'] = asc_docs_api.prototype.AddShape;
asc_docs_api.prototype['ChangeShapeType'] = asc_docs_api.prototype.ChangeShapeType;
asc_docs_api.prototype['AddText'] = asc_docs_api.prototype.AddText;
asc_docs_api.prototype['groupShapes'] = asc_docs_api.prototype.groupShapes;
asc_docs_api.prototype['unGroupShapes'] = asc_docs_api.prototype.unGroupShapes;
asc_docs_api.prototype['setVerticalAlign'] = asc_docs_api.prototype.setVerticalAlign;
asc_docs_api.prototype['setVert'] = asc_docs_api.prototype.setVert;
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['ShowThumbnails'] = asc_docs_api.prototype.ShowThumbnails;
asc_docs_api.prototype['asc_DeleteVerticalScroll'] = asc_docs_api.prototype.asc_DeleteVerticalScroll;
asc_docs_api.prototype['syncOnThumbnailsShow'] = asc_docs_api.prototype.syncOnThumbnailsShow;
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['sync_HyperlinkPropCallback'] = asc_docs_api.prototype.sync_HyperlinkPropCallback;
asc_docs_api.prototype['sync_HyperlinkClickCallback'] = asc_docs_api.prototype.sync_HyperlinkClickCallback;
asc_docs_api.prototype['asc_GoToInternalHyperlink'] = asc_docs_api.prototype.asc_GoToInternalHyperlink;
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_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['sync_shapePropCallback'] = asc_docs_api.prototype.sync_shapePropCallback;
asc_docs_api.prototype['sync_slidePropCallback'] = asc_docs_api.prototype.sync_slidePropCallback;
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['sync_PaintFormatCallback'] = asc_docs_api.prototype.sync_PaintFormatCallback;
asc_docs_api.prototype['ClearFormating'] = asc_docs_api.prototype.ClearFormating;
asc_docs_api.prototype['SetDeviceInputHelperId'] = asc_docs_api.prototype.SetDeviceInputHelperId;
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['sync_HyperlinkClickCallback'] = asc_docs_api.prototype.sync_HyperlinkClickCallback;
asc_docs_api.prototype['UpdateInterfaceState'] = asc_docs_api.prototype.UpdateInterfaceState;
asc_docs_api.prototype['OnMouseUp'] = asc_docs_api.prototype.OnMouseUp;
asc_docs_api.prototype['asyncImageEndLoaded2'] = asc_docs_api.prototype.asyncImageEndLoaded2;
asc_docs_api.prototype['ChangeTheme'] = asc_docs_api.prototype.ChangeTheme;
asc_docs_api.prototype['StartLoadTheme'] = asc_docs_api.prototype.StartLoadTheme;
asc_docs_api.prototype['EndLoadTheme'] = asc_docs_api.prototype.EndLoadTheme;
asc_docs_api.prototype['ChangeLayout'] = asc_docs_api.prototype.ChangeLayout;
asc_docs_api.prototype['put_ShapesAlign'] = asc_docs_api.prototype.put_ShapesAlign;
asc_docs_api.prototype['DistributeHorizontally'] = asc_docs_api.prototype.DistributeHorizontally;
asc_docs_api.prototype['DistributeVertically'] = asc_docs_api.prototype.DistributeVertically;
asc_docs_api.prototype['shapes_alignLeft'] = asc_docs_api.prototype.shapes_alignLeft;
asc_docs_api.prototype['shapes_alignRight'] = asc_docs_api.prototype.shapes_alignRight;
asc_docs_api.prototype['shapes_alignTop'] = asc_docs_api.prototype.shapes_alignTop;
asc_docs_api.prototype['shapes_alignBottom'] = asc_docs_api.prototype.shapes_alignBottom;
asc_docs_api.prototype['shapes_alignCenter'] = asc_docs_api.prototype.shapes_alignCenter;
asc_docs_api.prototype['shapes_alignMiddle'] = asc_docs_api.prototype.shapes_alignMiddle;
asc_docs_api.prototype['shapes_bringToFront'] = asc_docs_api.prototype.shapes_bringToFront;
asc_docs_api.prototype['shapes_bringForward'] = asc_docs_api.prototype.shapes_bringForward;
asc_docs_api.prototype['shapes_bringToBack'] = asc_docs_api.prototype.shapes_bringToBack;
asc_docs_api.prototype['shapes_bringBackward'] = asc_docs_api.prototype.shapes_bringBackward;
asc_docs_api.prototype['sync_endDemonstration'] = asc_docs_api.prototype.sync_endDemonstration;
asc_docs_api.prototype['sync_DemonstrationSlideChanged'] = asc_docs_api.prototype.sync_DemonstrationSlideChanged;
asc_docs_api.prototype['StartDemonstration'] = asc_docs_api.prototype.StartDemonstration;
asc_docs_api.prototype['EndDemonstration'] = asc_docs_api.prototype.EndDemonstration;
asc_docs_api.prototype['DemonstrationPlay'] = asc_docs_api.prototype.DemonstrationPlay;
asc_docs_api.prototype['DemonstrationPause'] = asc_docs_api.prototype.DemonstrationPause;
asc_docs_api.prototype['DemonstrationEndShowMessage'] = asc_docs_api.prototype.DemonstrationEndShowMessage;
asc_docs_api.prototype['DemonstrationNextSlide'] = asc_docs_api.prototype.DemonstrationNextSlide;
asc_docs_api.prototype['DemonstrationPrevSlide'] = asc_docs_api.prototype.DemonstrationPrevSlide;
asc_docs_api.prototype['DemonstrationGoToSlide'] = asc_docs_api.prototype.DemonstrationGoToSlide;
asc_docs_api.prototype['sendFromReporter'] = asc_docs_api.prototype.sendFromReporter;
asc_docs_api.prototype['SetDemonstrationModeOnly'] = asc_docs_api.prototype.SetDemonstrationModeOnly;
asc_docs_api.prototype['ApplySlideTiming'] = asc_docs_api.prototype.ApplySlideTiming;
asc_docs_api.prototype['SlideTimingApplyToAll'] = asc_docs_api.prototype.SlideTimingApplyToAll;
asc_docs_api.prototype['SlideTransitionPlay'] = asc_docs_api.prototype.SlideTransitionPlay;
asc_docs_api.prototype['asc_HideSlides'] = asc_docs_api.prototype.asc_HideSlides;
asc_docs_api.prototype['SetTextBoxInputMode'] = asc_docs_api.prototype.SetTextBoxInputMode;
asc_docs_api.prototype['GetTextBoxInputMode'] = asc_docs_api.prototype.GetTextBoxInputMode;
asc_docs_api.prototype['sync_EndAddShape'] = asc_docs_api.prototype.sync_EndAddShape;
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_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_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['sync_ContextMenuCallback'] = asc_docs_api.prototype.sync_ContextMenuCallback;
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_nativeInitBuilder"] = asc_docs_api.prototype.asc_nativeInitBuilder;
asc_docs_api.prototype["asc_SetSilentMode"] = asc_docs_api.prototype.asc_SetSilentMode;
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_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_getCurrentFocusObject"] = asc_docs_api.prototype.asc_getCurrentFocusObject;
asc_docs_api.prototype["asc_AddMath"] = asc_docs_api.prototype.asc_AddMath;
asc_docs_api.prototype["asc_SetMathProps"] = asc_docs_api.prototype.asc_SetMathProps;
// 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["AddShapeOnCurrentPage"] = asc_docs_api.prototype.AddShapeOnCurrentPage;
asc_docs_api.prototype["can_CopyCut"] = asc_docs_api.prototype.can_CopyCut;
asc_docs_api.prototype["asc_OnHideContextMenu"] = asc_docs_api.prototype.asc_OnHideContextMenu;
asc_docs_api.prototype["asc_OnShowContextMenu"] = asc_docs_api.prototype.asc_OnShowContextMenu;
asc_docs_api.prototype["DemonstrationReporterMessages"] = asc_docs_api.prototype.DemonstrationReporterMessages;
asc_docs_api.prototype["DemonstrationToReporterMessages"] = asc_docs_api.prototype.DemonstrationToReporterMessages;
asc_docs_api.prototype["preloadReporter"] = asc_docs_api.prototype.preloadReporter;
asc_docs_api.prototype["asc_SpecialPaste"] = asc_docs_api.prototype.asc_SpecialPaste;
// 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_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;
// password
asc_docs_api.prototype["asc_setCurrentPassword"] = asc_docs_api.prototype.asc_setCurrentPassword;
asc_docs_api.prototype["asc_resetPassword"] = asc_docs_api.prototype.asc_resetPassword;
window['Asc']['asc_CCommentData'] = window['Asc'].asc_CCommentData = asc_CCommentData;
asc_CCommentData.prototype['asc_getText'] = asc_CCommentData.prototype.asc_getText;
asc_CCommentData.prototype['asc_putText'] = asc_CCommentData.prototype.asc_putText;
asc_CCommentData.prototype['asc_getTime'] = asc_CCommentData.prototype.asc_getTime;
asc_CCommentData.prototype['asc_putTime'] = asc_CCommentData.prototype.asc_putTime;
asc_CCommentData.prototype['asc_getOnlyOfficeTime'] = asc_CCommentData.prototype.asc_getOnlyOfficeTime;
asc_CCommentData.prototype['asc_putOnlyOfficeTime'] = asc_CCommentData.prototype.asc_putOnlyOfficeTime;
asc_CCommentData.prototype['asc_getUserId'] = asc_CCommentData.prototype.asc_getUserId;
asc_CCommentData.prototype['asc_putUserId'] = asc_CCommentData.prototype.asc_putUserId;
asc_CCommentData.prototype['asc_getUserName'] = asc_CCommentData.prototype.asc_getUserName;
asc_CCommentData.prototype['asc_putUserName'] = asc_CCommentData.prototype.asc_putUserName;
asc_CCommentData.prototype['asc_getQuoteText'] = asc_CCommentData.prototype.asc_getQuoteText;
asc_CCommentData.prototype['asc_putQuoteText'] = asc_CCommentData.prototype.asc_putQuoteText;
asc_CCommentData.prototype['asc_getSolved'] = asc_CCommentData.prototype.asc_getSolved;
asc_CCommentData.prototype['asc_putSolved'] = asc_CCommentData.prototype.asc_putSolved;
asc_CCommentData.prototype['asc_getReply'] = asc_CCommentData.prototype.asc_getReply;
asc_CCommentData.prototype['asc_addReply'] = asc_CCommentData.prototype.asc_addReply;
asc_CCommentData.prototype['asc_getRepliesCount'] = asc_CCommentData.prototype.asc_getRepliesCount;
asc_CCommentData.prototype["asc_putDocumentFlag"] = asc_CCommentData.prototype.asc_putDocumentFlag;
asc_CCommentData.prototype["asc_getDocumentFlag"] = asc_CCommentData.prototype.asc_getDocumentFlag;
window['AscCommonSlide'].CContextMenuData = CContextMenuData;
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_IsSlideSelect'] = CContextMenuData.prototype.get_IsSlideSelect;
CContextMenuData.prototype['get_IsSlideHidden'] = CContextMenuData.prototype.get_IsSlideHidden;
window['Asc']['CAscSlideProps'] = CAscSlideProps;
CAscSlideProps.prototype['get_background'] = CAscSlideProps.prototype.get_background;
CAscSlideProps.prototype['put_background'] = CAscSlideProps.prototype.put_background;
CAscSlideProps.prototype['get_LayoutIndex'] = CAscSlideProps.prototype.get_LayoutIndex;
CAscSlideProps.prototype['put_LayoutIndex'] = CAscSlideProps.prototype.put_LayoutIndex;
CAscSlideProps.prototype['get_timing'] = CAscSlideProps.prototype.get_timing;
CAscSlideProps.prototype['put_timing'] = CAscSlideProps.prototype.put_timing;
CAscSlideProps.prototype['get_LockDelete'] = CAscSlideProps.prototype.get_LockDelete;
CAscSlideProps.prototype['put_LockDelete'] = CAscSlideProps.prototype.put_LockDelete;
CAscSlideProps.prototype['get_LockLayout'] = CAscSlideProps.prototype.get_LockLayout;
CAscSlideProps.prototype['put_LockLayout'] = CAscSlideProps.prototype.put_LockLayout;
CAscSlideProps.prototype['get_LockTiming'] = CAscSlideProps.prototype.get_LockTiming;
CAscSlideProps.prototype['put_LockTiming'] = CAscSlideProps.prototype.put_LockTiming;
CAscSlideProps.prototype['get_LockBackground'] = CAscSlideProps.prototype.get_LockBackground;
CAscSlideProps.prototype['put_LockBackground'] = CAscSlideProps.prototype.put_LockBackground;
CAscSlideProps.prototype['get_LockTranzition'] = CAscSlideProps.prototype.get_LockTranzition;
CAscSlideProps.prototype['put_LockTranzition'] = CAscSlideProps.prototype.put_LockTranzition;
CAscSlideProps.prototype['get_LockRemove'] = CAscSlideProps.prototype.get_LockRemove;
CAscSlideProps.prototype['put_LockRemove'] = CAscSlideProps.prototype.put_LockRemove;
CAscSlideProps.prototype['get_IsHidden'] = CAscSlideProps.prototype.get_IsHidden;
window['Asc']['CAscChartProp'] = CAscChartProp;
CAscChartProp.prototype['get_ChangeLevel'] = CAscChartProp.prototype.get_ChangeLevel;
CAscChartProp.prototype['put_ChangeLevel'] = CAscChartProp.prototype.put_ChangeLevel;
CAscChartProp.prototype['get_CanBeFlow'] = CAscChartProp.prototype.get_CanBeFlow;
CAscChartProp.prototype['get_Width'] = CAscChartProp.prototype.get_Width;
CAscChartProp.prototype['put_Width'] = CAscChartProp.prototype.put_Width;
CAscChartProp.prototype['get_Height'] = CAscChartProp.prototype.get_Height;
CAscChartProp.prototype['put_Height'] = CAscChartProp.prototype.put_Height;
CAscChartProp.prototype['get_WrappingStyle'] = CAscChartProp.prototype.get_WrappingStyle;
CAscChartProp.prototype['put_WrappingStyle'] = CAscChartProp.prototype.put_WrappingStyle;
CAscChartProp.prototype['get_Paddings'] = CAscChartProp.prototype.get_Paddings;
CAscChartProp.prototype['put_Paddings'] = CAscChartProp.prototype.put_Paddings;
CAscChartProp.prototype['get_AllowOverlap'] = CAscChartProp.prototype.get_AllowOverlap;
CAscChartProp.prototype['put_AllowOverlap'] = CAscChartProp.prototype.put_AllowOverlap;
CAscChartProp.prototype['get_Position'] = CAscChartProp.prototype.get_Position;
CAscChartProp.prototype['put_Position'] = CAscChartProp.prototype.put_Position;
CAscChartProp.prototype['get_PositionH'] = CAscChartProp.prototype.get_PositionH;
CAscChartProp.prototype['put_PositionH'] = CAscChartProp.prototype.put_PositionH;
CAscChartProp.prototype['get_PositionV'] = CAscChartProp.prototype.get_PositionV;
CAscChartProp.prototype['put_PositionV'] = CAscChartProp.prototype.put_PositionV;
CAscChartProp.prototype['get_Value_X'] = CAscChartProp.prototype.get_Value_X;
CAscChartProp.prototype['get_Value_Y'] = CAscChartProp.prototype.get_Value_Y;
CAscChartProp.prototype['get_ImageUrl'] = CAscChartProp.prototype.get_ImageUrl;
CAscChartProp.prototype['put_ImageUrl'] = CAscChartProp.prototype.put_ImageUrl;
CAscChartProp.prototype['get_Group'] = CAscChartProp.prototype.get_Group;
CAscChartProp.prototype['put_Group'] = CAscChartProp.prototype.put_Group;
CAscChartProp.prototype['asc_getFromGroup'] = CAscChartProp.prototype.asc_getFromGroup;
CAscChartProp.prototype['asc_putFromGroup'] = CAscChartProp.prototype.asc_putFromGroup;
CAscChartProp.prototype['get_isChartProps'] = CAscChartProp.prototype.get_isChartProps;
CAscChartProp.prototype['put_isChartPross'] = CAscChartProp.prototype.put_isChartPross;
CAscChartProp.prototype['get_SeveralCharts'] = CAscChartProp.prototype.get_SeveralCharts;
CAscChartProp.prototype['put_SeveralCharts'] = CAscChartProp.prototype.put_SeveralCharts;
CAscChartProp.prototype['get_SeveralChartTypes'] = CAscChartProp.prototype.get_SeveralChartTypes;
CAscChartProp.prototype['put_SeveralChartTypes'] = CAscChartProp.prototype.put_SeveralChartTypes;
CAscChartProp.prototype['get_SeveralChartStyles'] = CAscChartProp.prototype.get_SeveralChartStyles;
CAscChartProp.prototype['put_SeveralChartStyles'] = CAscChartProp.prototype.put_SeveralChartStyles;
CAscChartProp.prototype['get_VerticalTextAlign'] = CAscChartProp.prototype.get_VerticalTextAlign;
CAscChartProp.prototype['put_VerticalTextAlign'] = CAscChartProp.prototype.put_VerticalTextAlign;
CAscChartProp.prototype['get_Locked'] = CAscChartProp.prototype.get_Locked;
CAscChartProp.prototype['get_ChartProperties'] = CAscChartProp.prototype.get_ChartProperties;
CAscChartProp.prototype['put_ChartProperties'] = CAscChartProp.prototype.put_ChartProperties;
CAscChartProp.prototype['get_ShapeProperties'] = CAscChartProp.prototype.get_ShapeProperties;
CAscChartProp.prototype['put_ShapeProperties'] = CAscChartProp.prototype.put_ShapeProperties;
CAscChartProp.prototype['asc_getType'] = CAscChartProp.prototype.asc_getType;
CAscChartProp.prototype['asc_getSubType'] = CAscChartProp.prototype.asc_getSubType;
CAscChartProp.prototype['asc_getStyleId'] = CAscChartProp.prototype.asc_getStyleId;
CAscChartProp.prototype['asc_getHeight'] = CAscChartProp.prototype.asc_getHeight;
CAscChartProp.prototype['asc_getWidth'] = CAscChartProp.prototype.asc_getWidth;
CAscChartProp.prototype['asc_setType'] = CAscChartProp.prototype.asc_setType;
CAscChartProp.prototype['asc_setSubType'] = CAscChartProp.prototype.asc_setSubType;
CAscChartProp.prototype['asc_setStyleId'] = CAscChartProp.prototype.asc_setStyleId;
CAscChartProp.prototype['asc_setHeight'] = CAscChartProp.prototype.asc_setHeight;
CAscChartProp.prototype['asc_setWidth'] = CAscChartProp.prototype.asc_setWidth;
CAscChartProp.prototype['asc_putTitle'] = CAscChartProp.prototype['put_Title'] = CAscChartProp.prototype['asc_setTitle'] = CAscChartProp.prototype.asc_setTitle;
CAscChartProp.prototype['asc_putDescription'] = CAscChartProp.prototype['put_Description'] = CAscChartProp.prototype['asc_setDescription'] = CAscChartProp.prototype.asc_setDescription;
CAscChartProp.prototype['asc_getTitle'] = CAscChartProp.prototype.asc_getTitle;
CAscChartProp.prototype['asc_getDescription'] = CAscChartProp.prototype.asc_getDescription;
CAscChartProp.prototype['getType'] = CAscChartProp.prototype.getType;
CAscChartProp.prototype['putType'] = CAscChartProp.prototype.putType;
CAscChartProp.prototype['getStyle'] = CAscChartProp.prototype.getStyle;
CAscChartProp.prototype['putStyle'] = CAscChartProp.prototype.putStyle;
CAscChartProp.prototype['putLockAspect'] = CAscChartProp.prototype['asc_putLockAspect'] = CAscChartProp.prototype.putLockAspect;
CAscChartProp.prototype['getLockAspect'] = CAscChartProp.prototype['asc_getLockAspect'] = CAscChartProp.prototype.getLockAspect;
CAscChartProp.prototype['changeType'] = CAscChartProp.prototype.changeType;
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;
CSearchResult.prototype['get_Text'] = CSearchResult.prototype.get_Text;
CSearchResult.prototype['get_Navigator'] = CSearchResult.prototype.get_Navigator;
CSearchResult.prototype['put_Navigator'] = CSearchResult.prototype.put_Navigator;
CSearchResult.prototype['put_Text'] = CSearchResult.prototype.put_Text;
})(window, window.document);