var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var Unibase; (function (Unibase) { let Apps; (function (Apps) { let Collaboration; (function (Collaboration) { let Components; (function (Components) { class DocConnector { constructor() { this.methods = { connectedUsers: function (FileUsers, DocumentGroup) { console.log('connectedUsers is Connected !'); if (DocumentGroup == 'Excel') { setTimeout(() => { Unibase.Apps.Collaboration.Components.Sheets.Base.Instance().activeUsers(FileUsers); }, 1000); } else if (DocumentGroup == 'Word') { Unibase.Apps.Collaboration.Components.DocEditor.Base.Instance().activeUsers(FileUsers); } }, FileDisconnect: function (user, DocumentGroup) { if (DocumentGroup == 'Excel') { Unibase.Apps.Collaboration.Components.Sheets.Base.Instance().activeUsers(user); } else if (DocumentGroup == 'Word') { Unibase.Apps.Collaboration.Components.DocEditor.Base.Instance().activeUsers(user); } } }; DocConnector._isRegistered = false; } init(fileid, documentgroup) { this.connection = Collaboration.Hubs.UniDocHub.Instance(_appsettings.dochub_url()); var fileId = parseInt(fileid); this.start(fileId, documentgroup); } closeDoc() { Unibase.Apps.Collaboration.Hubs.UniDocHub.Instance(_appsettings.dochub_url()).getConnection().stop(); } ChangeDoc(username, args) { Unibase.Apps.Collaboration.Hubs.UniDocHub.Instance(_appsettings.dochub_url()).getConnection().invoke("ChangeDoc", username, JSON.stringify(args)); } getClientMethods() { return [ { MethodName: "connectedUsers", Method: this.methods.connectedUsers }, { MethodName: "filedisconnect", Method: this.methods.FileDisconnect }, ]; } registerClientMethods() { let _methods = this.getClientMethods(); if (_methods) for (var i = 0; i < _methods.length; i++) { this.connection.register(_methods[i].MethodName, _methods[i].Method); } } connectedUsers(FileUsers) { let ssObj = Unibase.Apps.Collaboration.Components.Documents.Instance()._openedfile; let stCls = Unibase.Apps.Collaboration.Components.Sheets; ssObj.signalrData = FileUsers; var args = JSON.parse(FileUsers); } start(fileId, documentgroup) { return __awaiter(this, void 0, void 0, function* () { this.registerClientMethods(); try { if (!DocConnector._isRegistered) { DocConnector._isRegistered = true; this.connection.register("changedocument", function (docData) { let ssObj = Unibase.Apps.Collaboration.Components.Documents.Instance()._openedfile; let stCls = Unibase.Apps.Collaboration.Components.Sheets; ssObj.signalrData = docData; var args = JSON.parse(docData); try { if (args.origin === 'biz') { Unibase.Apps.Collaboration.Components.Documents.Instance()._openedfile.biz.sheetIndex = args.sheetIndex; switch (args.action) { case 'trim': stCls.Ribbon.Instance().processTrim(args.range); break; case 'removeDuplicates': stCls.Dialogue.Instance().removeDuplicate(args.range, args.header, args.colSelected); break; case 'autofill': stCls.Autofill.Instance().applyAutofill(args.options, args.direction); break; case 'formatpaint': stCls.FormatPainter.Instance().applyFormatPaint(args.srcRange, args.destRange, args.srcSheetIndex); break; case 'splittext': stCls.FormatPainter.Instance().applySplitText(args.range, args.stValues); break; case 'shiftrows': stCls.FormatPainter.Instance().applyShiftRows(args.dropIdx, args.rngIndexes, args.direction, false); break; case 'shiftcols': stCls.FormatPainter.Instance().applyShiftCols(args.dropIdx, args.rngIndexes, args.direction, false); break; case 'deleteshiftup': stCls.FormatPainter.Instance().applyDeleteShiftUp(args.range); break; case 'deleteshiftleft': stCls.FormatPainter.Instance().applyDeleteShiftLeft(args.range); break; case 'insertshiftdown': stCls.FormatPainter.Instance().applyInsertShiftDown(args.range); break; case 'insertshiftright': stCls.FormatPainter.Instance().applyInsertShiftRight(args.range); break; case 'shiftcells': stCls.FormatPainter.Instance().applyShiftCells(args.rowIdx, args.colIdx, args.ranges); break; case 'spellcheck': stCls.SpellChecker.Instance().applySpellValue(args.rowIdx, args.colIdx, args.value); break; case 'selection': stCls.FormatPainter.Instance().applyUserSelection(args.range, args.userName); break; case 'undoredo': stCls.Base.Instance().performBizUndoRedo(args); break; case 'insertimage': stCls.Base.Instance().actionInsertImage(args); break; case 'colorchange': stCls.Base.Instance().sheetColorRender(); break; case 'resize': stCls.Base.Instance().adjustRowsAndColumnWidth(args); break; case 'importReplace': location.reload(); break; } Unibase.Apps.Collaboration.Components.Sheets.Base.Instance().editDetails(); Unibase.Apps.Collaboration.Components.Documents.Instance()._openedfile.biz.sheetIndex = -1; } else { Unibase.Apps.Collaboration.Components.Documents.Instance()._openedfile.updateAction(JSON.parse(docData)); Unibase.Apps.Collaboration.Components.Sheets.Base.Instance().editDetails(); } } catch (e) { } }); } this.connection.connect(function () { let identity = Unibase.Platform.Membership.Infos.Identity.getCurrentUser(); let UnibaseId = identity.unibaseId; let FileId = fileId; let FirstName = identity.name; let SessionId = identity.sessionId; let TenantId = identity.tenantId; console.log("connection started"); Unibase.Apps.Collaboration.Hubs.UniDocHub.Instance(_appsettings.dochub_url()).getConnection().invoke("Connect", FileId, UnibaseId, FirstName, documentgroup, SessionId, TenantId).catch(function (err) { return console.error(err.toString()); }); }); } catch (err) { console.log(err); setTimeout(this.start, 5000); } }); } ; static Instance() { if (this.instance === undefined) { this.instance = new DocConnector(); } return this.instance; } } Components.DocConnector = DocConnector; })(Components = Collaboration.Components || (Collaboration.Components = {})); })(Collaboration = Apps.Collaboration || (Apps.Collaboration = {})); })(Apps = Unibase.Apps || (Unibase.Apps = {})); })(Unibase || (Unibase = {}));