You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cryptpad/www/common/onlyoffice/sdkjs/slide/sdk-all-min.js

35076 lines
1.3 MiB
JavaScript

/*
* 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-\
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-\uA87
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
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
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-\uA6
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);