/* * (c) Copyright Ascensio System SIA 2010-2024 * * 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 20A-6 Ernesta Birznieka-Upish * street, Riga, Latvia, EU, LV-1050. * * 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 */ var c_oAscRevisionsChangeType = Asc.c_oAscRevisionsChangeType; function CRevisionsChange() { this.Type = c_oAscRevisionsChangeType.Unknown; this.X = 0; this.Y = 0; this.Value = ""; this.MoveType = Asc.c_oAscRevisionsMove.NoMove; this.MoveId = ""; this.MoveDown = false; this.UserName = ""; this.UserId = ""; this.DateTime = ""; this.UserColor = new AscCommon.CColor(0, 0, 0, 255); this.Element = null; this.StartPos = null; this.EndPos = null; this._X = 0; this._Y = 0; this._PageNum = 0; this._PosChanged = false; this.SimpleChanges = []; } CRevisionsChange.prototype.get_UserId = function(){return this.UserId;}; CRevisionsChange.prototype.put_UserId = function(UserId) { this.UserId = UserId; this.private_UpdateUserColor(); }; CRevisionsChange.prototype.get_UserName = function(){return this.UserName;}; CRevisionsChange.prototype.put_UserName = function(UserName) { this.UserName = UserName; this.private_UpdateUserColor(); }; CRevisionsChange.prototype.get_DateTime = function(){return this.DateTime}; CRevisionsChange.prototype.put_DateTime = function(DateTime){this.DateTime = DateTime}; CRevisionsChange.prototype.get_UserColor = function(){return this.UserColor;}; CRevisionsChange.prototype.get_StartPos = function(){return this.StartPos}; CRevisionsChange.prototype.put_StartPos = function(StartPos){this.StartPos = StartPos;}; CRevisionsChange.prototype.get_EndPos = function(){return this.EndPos}; CRevisionsChange.prototype.put_EndPos = function(EndPos){this.EndPos = EndPos;}; CRevisionsChange.prototype.get_Type = function(){return this.Type;}; CRevisionsChange.prototype.get_X = function(){return this.X;}; CRevisionsChange.prototype.get_Y = function(){return this.Y;}; CRevisionsChange.prototype.get_Value = function(){return this.Value;}; CRevisionsChange.prototype.put_Type = function(Type){this.Type = Type;}; CRevisionsChange.prototype.put_XY = function(X, Y){this.X = X; this.Y = Y;}; CRevisionsChange.prototype.put_Value = function(Value){this.Value = Value;}; CRevisionsChange.prototype.put_Paragraph = function(Para){this.Element = Para;}; CRevisionsChange.prototype.get_Paragraph = function(){return this.Element;}; CRevisionsChange.prototype.get_LockUserId = function() { if (this.Element) { var Lock = this.Element.GetLock(); var LockType = Lock.Get_Type(); if (AscCommon.c_oAscLockTypes.kLockTypeMine !== LockType && AscCommon.c_oAscLockTypes.kLockTypeNone !== LockType) return Lock.Get_UserId(); } return null; }; CRevisionsChange.prototype.put_InternalPos = function(x, y, pageNum) { if (this._PageNum !== pageNum || Math.abs(this._X - x) > 0.001 || Math.abs(this._Y - y) > 0.001) { this._X = x; this._Y = y; this._PageNum = pageNum; this._PosChanged = true; } else { this._PosChanged = false; } }; CRevisionsChange.prototype.get_InternalPosX = function() { return this._X; }; CRevisionsChange.prototype.get_InternalPosY = function() { return this._Y; }; CRevisionsChange.prototype.get_InternalPosPageNum = function() { return this._PageNum; }; CRevisionsChange.prototype.IsPositionChanged = function() { return this._PosChanged; }; CRevisionsChange.prototype.private_UpdateUserColor = function() { this.UserColor = AscCommon.getUserColorById(this.UserId, this.UserName, true, false); }; CRevisionsChange.prototype.IsMove = function() { return (((c_oAscRevisionsChangeType.TextAdd === this.Type || c_oAscRevisionsChangeType.TextRem === this.Type || c_oAscRevisionsChangeType.ParaAdd === this.Type || c_oAscRevisionsChangeType.ParaRem === this.Type) && Asc.c_oAscRevisionsMove.NoMove !== this.MoveType) || Asc.c_oAscRevisionsChangeType.MoveMark === this.Type); }; CRevisionsChange.prototype.IsMoveFrom = function() { return (this.MoveType === Asc.c_oAscRevisionsMove.MoveFrom); }; CRevisionsChange.prototype.SetType = function(nType) { this.Type = nType; }; CRevisionsChange.prototype.GetType = function() { return this.Type; }; CRevisionsChange.prototype.SetElement = function(oElement) { this.Element = oElement; }; CRevisionsChange.prototype.GetElement = function() { return this.Element; }; CRevisionsChange.prototype.SetValue = function(oValue) { this.Value = oValue; }; CRevisionsChange.prototype.GetValue = function() { return this.Value; }; CRevisionsChange.prototype.SetUserId = function(sUserId) { this.UserId = sUserId; this.private_UpdateUserColor(); }; CRevisionsChange.prototype.GetUserId = function() { return this.UserId; }; CRevisionsChange.prototype.SetUserName = function(sUserName) { this.UserName = sUserName; this.private_UpdateUserColor(); }; CRevisionsChange.prototype.GetUserName = function() { return this.UserName; }; CRevisionsChange.prototype.SetDateTime = function(sDateTime) { this.DateTime = sDateTime; }; CRevisionsChange.prototype.GetDateTime = function() { return this.DateTime; }; CRevisionsChange.prototype.SetMoveType = function(nMoveType) { this.MoveType = nMoveType; }; CRevisionsChange.prototype.GetMoveType = function() { return this.MoveType; }; CRevisionsChange.prototype.IsComplexChange = function() { return this.SimpleChanges.length !== 0; }; CRevisionsChange.prototype.SetSimpleChanges = function(arrChanges) { this.SimpleChanges = arrChanges; }; CRevisionsChange.prototype.GetSimpleChanges = function() { return this.SimpleChanges; }; CRevisionsChange.prototype.SetMoveId = function(sMoveId) { this.MoveId = sMoveId; }; CRevisionsChange.prototype.GetMoveId = function() { return this.MoveId; }; CRevisionsChange.prototype.IsMovedDown = function() { return this.MoveDown; }; CRevisionsChange.prototype.SetMovedDown = function(isMovedDown) { this.MoveDown = isMovedDown; }; CRevisionsChange.prototype.GetX = function() { return this.X; }; CRevisionsChange.prototype.GetY = function() { return this.Y; }; CRevisionsChange.prototype.SetXY = function(X, Y) { this.X = X; this.Y = Y; }; CRevisionsChange.prototype.SetInternalPos = function(dX, dY, nPageNum) { if (this._PageNum !== nPageNum || Math.abs(this._X - dX) > 0.001 || Math.abs(this._Y - dY) > 0.001) { this._X = dX; this._Y = dY; this._PageNum = nPageNum; this._PosChanged = true; } else { this._PosChanged = false; } }; CRevisionsChange.prototype.GetInternalPosX = function() { return this._X; }; CRevisionsChange.prototype.GetInternalPosY = function() { return this._Y; }; CRevisionsChange.prototype.GetInternalPosPageNum = function() { return this._PageNum; }; CRevisionsChange.prototype.GetStartPos = function() { return this.StartPos; }; CRevisionsChange.prototype.SetStartPos = function(oStartPos) { this.StartPos = oStartPos; }; CRevisionsChange.prototype.GetEndPos = function() { return this.EndPos; }; CRevisionsChange.prototype.SetEndPos = function(oEndPos) { this.EndPos = oEndPos; }; CRevisionsChange.prototype.IsTextChange = function() { return (c_oAscRevisionsChangeType.TextAdd === this.Type || c_oAscRevisionsChangeType.TextRem === this.Type || c_oAscRevisionsChangeType.TextPr === this.Type); }; CRevisionsChange.prototype.IsTableRowChange = function() { return (c_oAscRevisionsChangeType.RowsAdd === this.Type || c_oAscRevisionsChangeType.RowsRem === this.Type || c_oAscRevisionsChangeType.TableRowPr === this.Type); }; CRevisionsChange.prototype.IsTablePrChange = function() { return (c_oAscRevisionsChangeType.TablePr === this.Type); }; CRevisionsChange.prototype.IsParagraphContentChange = function() { return (c_oAscRevisionsChangeType.ParaAdd === this.Type || c_oAscRevisionsChangeType.ParaRem === this.Type); }; CRevisionsChange.prototype.IsParaPrChange = function() { return (c_oAscRevisionsChangeType.ParaPr === this.Type); }; CRevisionsChange.prototype.CheckHitByParagraphContentPos = function(oParagraph, oContentPos) { if (this.IsComplexChange()) { for (let nIndex = 0, nCount = this.SimpleChanges.length; nIndex < nCount; ++nIndex) { let oChange = this.SimpleChanges[nIndex]; if (oChange.GetElement() === oParagraph && oContentPos.Compare(oChange.StartPos) >= 0 && oContentPos.Compare(oChange.EndPos) <= 0) return true; } return false; } else { return (this.GetElement() === oParagraph && oContentPos.Compare(this.StartPos) >= 0 && oContentPos.Compare(this.EndPos) <= 0); } }; /** * Данная функция возвращает вес изменения. Если в текущей позиции у нас есть несколько изменений, чтобы мы использовали * изменения в соответствии с их весом * @returns {number} */ CRevisionsChange.prototype.GetWeight = function() { switch (this.Type) { case Asc.c_oAscRevisionsChangeType.MoveMark: case Asc.c_oAscRevisionsChangeType.MoveMarkRemove: return 100; case Asc.c_oAscRevisionsChangeType.TextAdd: case Asc.c_oAscRevisionsChangeType.TextRem: return 90; case Asc.c_oAscRevisionsChangeType.TextPr: return 80; case Asc.c_oAscRevisionsChangeType.ParaPr: return 70; case Asc.c_oAscRevisionsChangeType.ParaAdd: case Asc.c_oAscRevisionsChangeType.ParaRem: return 60; case Asc.c_oAscRevisionsChangeType.RowsAdd: case Asc.c_oAscRevisionsChangeType.RowsRem: return 50; case Asc.c_oAscRevisionsChangeType.TablePr: return 40; } return 0; }; CRevisionsChange.prototype.IsValid = function() { return !!(this.Element && this.Element.IsUseInDocument()); }; //--------------------------------------------------------export-------------------------------------------------------- CRevisionsChange.prototype['get_UserId'] = CRevisionsChange.prototype.GetUserId; CRevisionsChange.prototype['put_UserId'] = CRevisionsChange.prototype.SetUserId; CRevisionsChange.prototype['get_UserName'] = CRevisionsChange.prototype.GetUserName; CRevisionsChange.prototype['put_UserName'] = CRevisionsChange.prototype.SetUserName; CRevisionsChange.prototype['get_DateTime'] = CRevisionsChange.prototype.GetDateTime; CRevisionsChange.prototype['put_DateTime'] = CRevisionsChange.prototype.SetDateTime; CRevisionsChange.prototype['get_UserColor'] = CRevisionsChange.prototype.get_UserColor; CRevisionsChange.prototype['get_StartPos'] = CRevisionsChange.prototype.GetStartPos; CRevisionsChange.prototype['put_StartPos'] = CRevisionsChange.prototype.SetStartPos; CRevisionsChange.prototype['get_EndPos'] = CRevisionsChange.prototype.GetEndPos; CRevisionsChange.prototype['put_EndPos'] = CRevisionsChange.prototype.SetEndPos; CRevisionsChange.prototype['get_Type'] = CRevisionsChange.prototype.GetType; CRevisionsChange.prototype['get_X'] = CRevisionsChange.prototype.GetX; CRevisionsChange.prototype['get_Y'] = CRevisionsChange.prototype.GetY; CRevisionsChange.prototype['get_Value'] = CRevisionsChange.prototype.GetValue; CRevisionsChange.prototype['put_Type'] = CRevisionsChange.prototype.SetType; CRevisionsChange.prototype['put_XY'] = CRevisionsChange.prototype.SetXY; CRevisionsChange.prototype['put_Value'] = CRevisionsChange.prototype.SetValue; CRevisionsChange.prototype['get_LockUserId'] = CRevisionsChange.prototype.get_LockUserId; CRevisionsChange.prototype['put_MoveType'] = CRevisionsChange.prototype.SetMoveType; CRevisionsChange.prototype['get_MoveType'] = CRevisionsChange.prototype.GetMoveType; CRevisionsChange.prototype['get_MoveId'] = CRevisionsChange.prototype.GetMoveId; CRevisionsChange.prototype['is_MovedDown'] = CRevisionsChange.prototype.IsMovedDown;