UNPKG

@microsoft/office-js

Version:
1,458 lines (1,454 loc) • 43.3 kB
/* Word iOS specific JavaScript API library */ /* Version: 15.0.4420.1017 Build Time: 05/04/2015 */ /* Copyright (c) Microsoft Corporation. All rights reserved. */ /* Your use of this file is governed by the Microsoft Services Agreement http://go.microsoft.com/fwlink/?LinkId=266419. */ OSF.OUtil.augmentList(Microsoft.Office.WebExtension.CoercionType, { Html: "html", Ooxml: "ooxml" }); OSF.OUtil.augmentList(Microsoft.Office.WebExtension.EventType, { DataNodeDeleted: "nodeDeleted", DataNodeInserted: "nodeInserted", DataNodeReplaced: "nodeReplaced" }); var OSF=OSF || {}; var OSFWebkit; (function (OSFWebkit) { var WebkitSafeArray=(function () { function WebkitSafeArray(data) { this.data=data; this.safeArrayFlag=this.isSafeArray(data); } WebkitSafeArray.prototype.dimensions=function () { var dimensions=0; if (this.safeArrayFlag) { dimensions=this.data[0][0]; } else if (this.isArray()) { dimensions=2; } return dimensions; }; WebkitSafeArray.prototype.getItem=function () { var array=[]; var element=null; if (this.safeArrayFlag) { array=this.toArray(); } else { array=this.data; } element=array; for (var i=0; i < arguments.length; i++) { element=element[arguments[i]]; } return element; }; WebkitSafeArray.prototype.lbound=function (dimension) { return 0; }; WebkitSafeArray.prototype.ubound=function (dimension) { var ubound=0; if (this.safeArrayFlag) { ubound=this.data[0][dimension]; } else if (this.isArray()) { if (dimension==1) { return this.data.length; } else if (dimension==2) { if (OSF.OUtil.isArray(this.data[0])) { return this.data[0].length; } else if (this.data[0] !=null) { return 1; } } } return ubound; }; WebkitSafeArray.prototype.toArray=function () { if (this.isArray()==false) { return this.data; } var arr=[]; var startingIndex=this.safeArrayFlag ? 1 : 0; for (var i=startingIndex; i < this.data.length; i++) { var element=this.data[i]; if (this.isSafeArray(element)) { arr.push(new WebkitSafeArray(element)); } else { arr.push(element); } } return arr; }; WebkitSafeArray.prototype.isArray=function () { return OSF.OUtil.isArray(this.data); }; WebkitSafeArray.prototype.isSafeArray=function (obj) { var isSafeArray=false; if (OSF.OUtil.isArray(obj) && OSF.OUtil.isArray(obj[0])) { var bounds=obj[0]; var dimensions=bounds[0]; if (bounds.length !=dimensions+1) { return false; } var expectedArraySize=1; for (var i=1; i < bounds.length; i++) { var dimension=bounds[i]; if (isFinite(dimension)==false) { return false; } expectedArraySize=expectedArraySize * dimension; } expectedArraySize++; isSafeArray=(expectedArraySize==obj.length); } return isSafeArray; }; return WebkitSafeArray; })(); OSFWebkit.WebkitSafeArray=WebkitSafeArray; })(OSFWebkit || (OSFWebkit={})); var OSFWebkit; (function (OSFWebkit) { (function (ScriptMessaging) { var scriptMessenger=null; function agaveHostCallback(callbackId, params) { scriptMessenger.agaveHostCallback(callbackId, params); } ScriptMessaging.agaveHostCallback=agaveHostCallback; function agaveHostEventCallback(callbackId, params) { scriptMessenger.agaveHostEventCallback(callbackId, params); } ScriptMessaging.agaveHostEventCallback=agaveHostEventCallback; function GetScriptMessenger() { if (scriptMessenger==null) { scriptMessenger=new WebkitScriptMessaging("OSF.ScriptMessaging.agaveHostCallback", "OSF.ScriptMessaging.agaveHostEventCallback"); } return scriptMessenger; } ScriptMessaging.GetScriptMessenger=GetScriptMessenger; var EventHandlerCallback=(function () { function EventHandlerCallback(id, targetId, handler) { this.id=id; this.targetId=targetId; this.handler=handler; } return EventHandlerCallback; })(); var WebkitScriptMessaging=(function () { function WebkitScriptMessaging(methodCallbackName, eventCallbackName) { this.callingIndex=0; this.callbackList={}; this.eventHandlerList={}; this.asyncMethodCallbackFunctionName=methodCallbackName; this.eventCallbackFunctionName=eventCallbackName; this.conversationId=WebkitScriptMessaging.getCurrentTimeMS().toString(); } WebkitScriptMessaging.prototype.invokeMethod=function (handlerName, methodId, params, callback) { var messagingArgs={}; this.postWebkitMessage(messagingArgs, handlerName, methodId, params, callback); }; WebkitScriptMessaging.prototype.registerEvent=function (handlerName, methodId, dispId, targetId, handler, callback) { var messagingArgs={ eventCallbackFunction: this.eventCallbackFunctionName }; var hostArgs={ id: dispId, targetId: targetId }; var correlationId=this.postWebkitMessage(messagingArgs, handlerName, methodId, hostArgs, callback); this.eventHandlerList[correlationId]=new EventHandlerCallback(dispId, targetId, handler); }; WebkitScriptMessaging.prototype.unregisterEvent=function (handlerName, methodId, dispId, targetId, callback) { var hostArgs={ id: dispId, targetId: targetId }; for (var key in this.eventHandlerList) { if (this.eventHandlerList.hasOwnProperty(key)) { var eventCallback=this.eventHandlerList[key]; if (eventCallback.id==dispId && eventCallback.targetId==targetId) { delete this.eventHandlerList[key]; } } } this.invokeMethod(handlerName, methodId, hostArgs, callback); }; WebkitScriptMessaging.prototype.agaveHostCallback=function (callbackId, params) { var callbackFunction=this.callbackList[callbackId]; if (callbackFunction) { callbackFunction(params); delete this.callbackList[callbackId]; } }; WebkitScriptMessaging.prototype.agaveHostEventCallback=function (callbackId, params) { var eventCallback=this.eventHandlerList[callbackId]; if (eventCallback) { eventCallback.handler(params); } }; WebkitScriptMessaging.prototype.postWebkitMessage=function (messagingArgs, handlerName, methodId, params, callback) { var correlationId=this.generateCorrelationId(); this.callbackList[correlationId]=callback; messagingArgs.methodId=methodId; messagingArgs.params=params; messagingArgs.callbackId=correlationId; messagingArgs.callbackFunction=this.asyncMethodCallbackFunctionName; var invokePostMessage=function () { window.webkit.messageHandlers[handlerName].postMessage(JSON.stringify(messagingArgs)); }; var currentTimestamp=WebkitScriptMessaging.getCurrentTimeMS(); if (this.lastMessageTimestamp==null || (currentTimestamp - this.lastMessageTimestamp >=WebkitScriptMessaging.MESSAGE_TIME_DELTA)) { invokePostMessage(); this.lastMessageTimestamp=currentTimestamp; } else { this.lastMessageTimestamp+=WebkitScriptMessaging.MESSAGE_TIME_DELTA; setTimeout(function () { invokePostMessage(); }, this.lastMessageTimestamp - currentTimestamp); } return correlationId; }; WebkitScriptMessaging.prototype.generateCorrelationId=function () { ++this.callingIndex; return this.conversationId+this.callingIndex; }; WebkitScriptMessaging.getCurrentTimeMS=function () { return (new Date).getTime(); }; WebkitScriptMessaging.MESSAGE_TIME_DELTA=10; return WebkitScriptMessaging; })(); ScriptMessaging.WebkitScriptMessaging=WebkitScriptMessaging; })(OSFWebkit.ScriptMessaging || (OSFWebkit.ScriptMessaging={})); var ScriptMessaging=OSFWebkit.ScriptMessaging; })(OSFWebkit || (OSFWebkit={})); OSF.ScriptMessaging=OSFWebkit.ScriptMessaging; var OSFWebkit; (function (OSFWebkit) { OSFWebkit.MessageHandlerName="Agave"; (function (AppContextProperties) { AppContextProperties[AppContextProperties["Settings"]=0]="Settings"; AppContextProperties[AppContextProperties["SolutionReferenceId"]=1]="SolutionReferenceId"; AppContextProperties[AppContextProperties["AppType"]=2]="AppType"; AppContextProperties[AppContextProperties["MajorVersion"]=3]="MajorVersion"; AppContextProperties[AppContextProperties["MinorVersion"]=4]="MinorVersion"; AppContextProperties[AppContextProperties["RevisionVersion"]=5]="RevisionVersion"; AppContextProperties[AppContextProperties["APIVersionSequence"]=6]="APIVersionSequence"; AppContextProperties[AppContextProperties["AppCapabilities"]=7]="AppCapabilities"; AppContextProperties[AppContextProperties["APPUILocale"]=8]="APPUILocale"; AppContextProperties[AppContextProperties["AppDataLocale"]=9]="AppDataLocale"; AppContextProperties[AppContextProperties["BindingCount"]=10]="BindingCount"; AppContextProperties[AppContextProperties["DocumentUrl"]=11]="DocumentUrl"; AppContextProperties[AppContextProperties["ActivationMode"]=12]="ActivationMode"; AppContextProperties[AppContextProperties["ControlIntegrationLevel"]=13]="ControlIntegrationLevel"; AppContextProperties[AppContextProperties["SolutionToken"]=14]="SolutionToken"; AppContextProperties[AppContextProperties["APISetVersion"]=15]="APISetVersion"; AppContextProperties[AppContextProperties["CorrelationId"]=16]="CorrelationId"; AppContextProperties[AppContextProperties["InstanceId"]=17]="InstanceId"; })(OSFWebkit.AppContextProperties || (OSFWebkit.AppContextProperties={})); var AppContextProperties=OSFWebkit.AppContextProperties; (function (MethodId) { MethodId[MethodId["Execute"]=1]="Execute"; MethodId[MethodId["RegisterEvent"]=2]="RegisterEvent"; MethodId[MethodId["UnregisterEvent"]=3]="UnregisterEvent"; MethodId[MethodId["WriteSettings"]=4]="WriteSettings"; MethodId[MethodId["GetContext"]=5]="GetContext"; })(OSFWebkit.MethodId || (OSFWebkit.MethodId={})); var MethodId=OSFWebkit.MethodId; var WebkitHostController=(function () { function WebkitHostController(hostScriptProxy) { this.hostScriptProxy=hostScriptProxy; } WebkitHostController.prototype.execute=function (id, params, callback) { var args=params; if (args==null) { args=[]; } var hostParams={ id: id, apiArgs: args }; var agaveResponseCallback=function (payload) { var safeArraySource=payload; if (OSF.OUtil.isArray(payload) && payload.length >=2) { var hrStatus=payload[0]; safeArraySource=payload[1]; } if (callback) { callback(new OSFWebkit.WebkitSafeArray(safeArraySource)); } }; this.hostScriptProxy.invokeMethod(OSF.Webkit.MessageHandlerName, OSF.Webkit.MethodId.Execute, hostParams, agaveResponseCallback); }; WebkitHostController.prototype.registerEvent=function (id, targetId, handler, callback) { var agaveEventHandlerCallback=function (payload) { var safeArraySource=payload; var eventId=0; if (OSF.OUtil.isArray(payload) && payload.length >=2) { safeArraySource=payload[0]; eventId=payload[1]; } if (handler) { handler(eventId, new OSFWebkit.WebkitSafeArray(safeArraySource)); } }; var agaveResponseCallback=function (payload) { if (callback) { callback(new OSFWebkit.WebkitSafeArray(payload)); } }; this.hostScriptProxy.registerEvent(OSF.Webkit.MessageHandlerName, OSF.Webkit.MethodId.RegisterEvent, id, targetId, agaveEventHandlerCallback, agaveResponseCallback); }; WebkitHostController.prototype.unregisterEvent=function (id, targetId, callback) { var agaveResponseCallback=function (response) { callback(new OSFWebkit.WebkitSafeArray(response)); }; this.hostScriptProxy.unregisterEvent(OSF.Webkit.MessageHandlerName, OSF.Webkit.MethodId.UnregisterEvent, id, targetId, agaveResponseCallback); }; return WebkitHostController; })(); OSFWebkit.WebkitHostController=WebkitHostController; })(OSFWebkit || (OSFWebkit={})); OSF.Webkit=OSFWebkit; OSF.ClientHostController=new OSFWebkit.WebkitHostController(OSF.ScriptMessaging.GetScriptMessenger()); OSF.ClientMode={ ReadWrite: 0, ReadOnly: 1 } OSF.DDA.RichInitializationReason={ 1: Microsoft.Office.WebExtension.InitializationReason.Inserted, 2: Microsoft.Office.WebExtension.InitializationReason.DocumentOpened }; Microsoft.Office.WebExtension.FileType={ Text: "text", Compressed: "compressed" }; OSF.DDA.File=function OSF_DDA_File(handle, fileSize, sliceSize) { OSF.OUtil.defineEnumerableProperties(this, { "size": { value: fileSize }, "sliceCount": { value: Math.ceil(fileSize / sliceSize) } }); var privateState={}; privateState[OSF.DDA.FileProperties.Handle]=handle; privateState[OSF.DDA.FileProperties.SliceSize]=sliceSize; var am=OSF.DDA.AsyncMethodNames; OSF.DDA.DispIdHost.addAsyncMethods( this, [ am.GetDocumentCopyChunkAsync, am.ReleaseDocumentCopyAsync ], privateState ); } OSF.DDA.FileSliceOffset="fileSliceoffset"; OSF.DDA.CustomXmlParts=function OSF_DDA_CustomXmlParts() { this._eventDispatches=[]; var am=OSF.DDA.AsyncMethodNames; OSF.DDA.DispIdHost.addAsyncMethods(this, [ am.AddDataPartAsync, am.GetDataPartByIdAsync, am.GetDataPartsByNameSpaceAsync ]); }; OSF.DDA.CustomXmlPart=function OSF_DDA_CustomXmlPart(customXmlParts, id, builtIn) { OSF.OUtil.defineEnumerableProperties(this, { "builtIn": { value: builtIn }, "id": { value: id }, "namespaceManager": { value: new OSF.DDA.CustomXmlPrefixMappings(id) } }); var am=OSF.DDA.AsyncMethodNames; OSF.DDA.DispIdHost.addAsyncMethods(this, [ am.DeleteDataPartAsync, am.GetPartNodesAsync, am.GetPartXmlAsync ]); var customXmlPartEventDispatches=customXmlParts._eventDispatches; var dispatch=customXmlPartEventDispatches[id]; if (!dispatch) { var et=Microsoft.Office.WebExtension.EventType; dispatch=new OSF.EventDispatch([ et.DataNodeDeleted, et.DataNodeInserted, et.DataNodeReplaced ]); customXmlPartEventDispatches[id]=dispatch; } OSF.DDA.DispIdHost.addEventSupport(this, dispatch); }; OSF.DDA.CustomXmlPrefixMappings=function OSF_DDA_CustomXmlPrefixMappings(partId) { var am=OSF.DDA.AsyncMethodNames; OSF.DDA.DispIdHost.addAsyncMethods( this, [ am.AddDataPartNamespaceAsync, am.GetDataPartNamespaceAsync, am.GetDataPartPrefixAsync ], partId ); }; OSF.DDA.CustomXmlNode=function OSF_DDA_CustomXmlNode(handle, nodeType, ns, baseName) { OSF.OUtil.defineEnumerableProperties(this, { "baseName": { value: baseName }, "namespaceUri": { value: ns }, "nodeType": { value: nodeType } }); var am=OSF.DDA.AsyncMethodNames; OSF.DDA.DispIdHost.addAsyncMethods( this, [ am.GetRelativeNodesAsync, am.GetNodeValueAsync, am.GetNodeXmlAsync, am.SetNodeValueAsync, am.SetNodeXmlAsync ], handle ); }; OSF.DDA.NodeInsertedEventArgs=function OSF_DDA_NodeInsertedEventArgs(newNode, inUndoRedo) { OSF.OUtil.defineEnumerableProperties(this, { "type": { value: Microsoft.Office.WebExtension.EventType.DataNodeInserted }, "newNode": { value: newNode }, "inUndoRedo": { value: inUndoRedo } }); }; OSF.DDA.NodeReplacedEventArgs=function OSF_DDA_NodeReplacedEventArgs(oldNode, newNode, inUndoRedo) { OSF.OUtil.defineEnumerableProperties(this, { "type": { value: Microsoft.Office.WebExtension.EventType.DataNodeReplaced }, "oldNode": { value: oldNode }, "newNode": { value: newNode }, "inUndoRedo": { value: inUndoRedo } }); }; OSF.DDA.NodeDeletedEventArgs=function OSF_DDA_NodeDeletedEventArgs(oldNode, oldNextSibling, inUndoRedo) { OSF.OUtil.defineEnumerableProperties(this, { "type": { value: Microsoft.Office.WebExtension.EventType.DataNodeDeleted }, "oldNode": { value: oldNode }, "oldNextSibling": { value: oldNextSibling }, "inUndoRedo": { value: inUndoRedo } }); }; OSF.DDA.RichClientSettingsManager=(function OSF_DDA$RichClientSettingsManager() { return { read: function OSF_DDA_RichClientSettingsManager$Read(onCalling, onComplete) { var keys=[]; var values=[]; if (onCalling) { onCalling(); } var initializationHelper=OSF._OfficeAppFactory.getInitializationHelper(); var onReceivedContext=function onReceivedContext(appContext) { if (onComplete) { onComplete(OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess, appContext.get_settings()); } }; OSF._OfficeAppFactory.getWebkitAppContext(null, onReceivedContext); }, write: function OSF_DDA_RichClientSettingsManager$Write(serializedSettings, overwriteIfStale, onCalling, onComplete) { var hostParams={}; var keys=[]; var values=[]; for (var key in serializedSettings) { keys.push(key); values.push(serializedSettings[key]); } hostParams["keys"]=keys; hostParams["values"]=values; if (onCalling) { onCalling(); } var onWriteCompleted=function onWriteCompleted(status) { if (onComplete) { onComplete(status[0], null); } }; OSF.ScriptMessaging.GetScriptMessenger().invokeMethod(OSF.Webkit.MessageHandlerName, OSF.Webkit.MethodId.WriteSettings, hostParams, onWriteCompleted); } }; })(); OSF._OfficeAppFactory.getWebkitAppContext=function OSF__OfficeAppFactory$getWebkitAppContext(wnd, gotAppContext) { var getInvocationCallback=function OSF_InitializationHelper_getAppContextAsync$getInvocationCallbackWebApp(appContext) { var returnedContext; var appContextProperties=OSF.Webkit.AppContextProperties; var appType=appContext[appContextProperties.AppType]; var appTypeSupported=false; for (var appEntry in OSF.AppName) { if (OSF.AppName[appEntry]==appType) { appTypeSupported=true; break; } } if (!appTypeSupported) { throw "Unsupported client type "+appType; } var hostSettings=appContext[appContextProperties.Settings]; var serializedSettings={}; var keys=hostSettings[0]; var values=hostSettings[1]; for (var index=0; index < keys.length; index++) { serializedSettings[keys[index]]=values[index]; } var id=appContext[appContextProperties.SolutionReferenceId]; var version=appContext[appContextProperties.MajorVersion]; var clientMode=appContext[appContextProperties.AppCapabilities]; var UILocale=appContext[appContextProperties.APPUILocale]; var dataLocale=appContext[appContextProperties.AppDataLocale]; var docUrl=appContext[appContextProperties.DocumentUrl]; var reason=appContext[appContextProperties.ActivationMode]; var osfControlType=appContext[appContextProperties.ControlIntegrationLevel]; var eToken=appContext[appContextProperties.SolutionToken]; eToken=eToken ? eToken.toString() : ""; var correlationId=appContext[appContextProperties.CorrelationId]; returnedContext=new OSF.OfficeAppContext(id, appType, version, UILocale, dataLocale, docUrl, clientMode, serializedSettings, reason, osfControlType, eToken, correlationId); if (OSF.AppTelemetry) { OSF.AppTelemetry.initialize(returnedContext); } gotAppContext(returnedContext); }; OSF.ScriptMessaging.GetScriptMessenger().invokeMethod(OSF.Webkit.MessageHandlerName, OSF.Webkit.MethodId.GetContext, [], getInvocationCallback); } OSF.DDA.DispIdHost.getRichClientDelegateMethods=function (actionId) { var delegateMethods={}; delegateMethods[OSF.DDA.DispIdHost.Delegates.ExecuteAsync]=OSF.DDA.SafeArray.Delegate.executeAsync; delegateMethods[OSF.DDA.DispIdHost.Delegates.RegisterEventAsync]=OSF.DDA.SafeArray.Delegate.registerEventAsync; delegateMethods[OSF.DDA.DispIdHost.Delegates.UnregisterEventAsync]=OSF.DDA.SafeArray.Delegate.unregisterEventAsync; function getSettingsExecuteMethod(hostDelegateMethod) { return function (args) { var status, response; var onComplete=function onComplete(status, response) { if (args.onReceiving) { args.onReceiving(); } if (args.onComplete) { args.onComplete(status, response); } }; try { hostDelegateMethod(args.hostCallArgs, args.onCalling, onComplete); } catch (ex) { status=OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError; response={ name: Strings.OfficeOM.L_InternalError, message: ex }; onComplete(status, response); } }; } function readSerializedSettings(hostCallArgs, onCalling, onReceiving) { return OSF.DDA.RichClientSettingsManager.read(onCalling, onReceiving); } function writeSerializedSettings(hostCallArgs, onCalling, onReceiving) { return OSF.DDA.RichClientSettingsManager.write( hostCallArgs[OSF.DDA.SettingsManager.SerializedSettings], hostCallArgs[Microsoft.Office.WebExtension.Parameters.OverwriteIfStale], onCalling, onReceiving ); } switch (actionId) { case OSF.DDA.AsyncMethodNames.RefreshAsync.id: delegateMethods[OSF.DDA.DispIdHost.Delegates.ExecuteAsync]=getSettingsExecuteMethod(readSerializedSettings); break; case OSF.DDA.AsyncMethodNames.SaveAsync.id: delegateMethods[OSF.DDA.DispIdHost.Delegates.ExecuteAsync]=getSettingsExecuteMethod(writeSerializedSettings); break; default: break; } return delegateMethods; } OSF.OUtil.setNamespace("SafeArray", OSF.DDA); OSF.DDA.SafeArray.Response={ Status: 0, Payload: 1 }; OSF.DDA.SafeArray.UniqueArguments={ Offset: "offset", Run: "run", BindingSpecificData: "bindingSpecificData", MergedCellGuid: "{66e7831f-81b2-42e2-823c-89e872d541b3}" }; OSF.OUtil.setNamespace("Delegate", OSF.DDA.SafeArray); OSF.DDA.SafeArray.Delegate.SpecialProcessor=function OSF_DDA_SafeArray_Delegate_SpecialProcessor() { function _2DVBArrayToJaggedArray(vbArr) { var ret; try { var rows=vbArr.ubound(1); var cols=vbArr.ubound(2); vbArr=vbArr.toArray(); if (rows==1 && cols==1) { ret=[vbArr]; } else { ret=[]; for (var row=0; row < rows; row++) { var rowArr=[]; for (var col=0; col < cols; col++) { var datum=vbArr[row * cols+col]; if (datum !=OSF.DDA.SafeArray.UniqueArguments.MergedCellGuid) { rowArr.push(datum); } } if (rowArr.length > 0) { ret.push(rowArr); } } } } catch (ex) { } return ret; } var complexTypes=[ OSF.DDA.PropertyDescriptors.FileProperties, OSF.DDA.PropertyDescriptors.FileSliceProperties, OSF.DDA.PropertyDescriptors.BindingProperties, OSF.DDA.SafeArray.UniqueArguments.BindingSpecificData, OSF.DDA.SafeArray.UniqueArguments.Offset, OSF.DDA.SafeArray.UniqueArguments.Run, OSF.DDA.PropertyDescriptors.Subset, OSF.DDA.PropertyDescriptors.DataPartProperties, OSF.DDA.PropertyDescriptors.DataNodeProperties, OSF.DDA.EventDescriptors.BindingSelectionChangedEvent, OSF.DDA.EventDescriptors.DataNodeInsertedEvent, OSF.DDA.EventDescriptors.DataNodeReplacedEvent, OSF.DDA.EventDescriptors.DataNodeDeletedEvent, OSF.DDA.DataNodeEventProperties.OldNode, OSF.DDA.DataNodeEventProperties.NewNode, OSF.DDA.DataNodeEventProperties.NextSiblingNode ]; var dynamicTypes={}; dynamicTypes[Microsoft.Office.WebExtension.Parameters.Data]=(function () { var tableRows=0; var tableHeaders=1; return { toHost: function OSF_DDA_SafeArray_Delegate_SpecialProcessor_Data$toHost(data) { if (typeof data !="string" && data[OSF.DDA.TableDataProperties.TableRows] !==undefined) { var tableData=[]; tableData[tableRows]=data[OSF.DDA.TableDataProperties.TableRows]; tableData[tableHeaders]=data[OSF.DDA.TableDataProperties.TableHeaders]; data=tableData; } return data; }, fromHost: function OSF_DDA_SafeArray_Delegate_SpecialProcessor_Data$fromHost(hostArgs) { var ret; if (hostArgs.toArray) { var dimensions=hostArgs.dimensions(); if(dimensions===2) { ret=_2DVBArrayToJaggedArray(hostArgs); } else { var array=hostArgs.toArray(); if(array.length===2 && ((array[0] !=null && array[0].toArray) || (array[1] !=null && array[1].toArray))) { ret={}; ret[OSF.DDA.TableDataProperties.TableRows]=_2DVBArrayToJaggedArray(array[tableRows]); ret[OSF.DDA.TableDataProperties.TableHeaders]=_2DVBArrayToJaggedArray(array[tableHeaders]); } else { ret=array; } } } else { ret=hostArgs; } return ret; } } })(); OSF.DDA.SafeArray.Delegate.SpecialProcessor.uber.constructor.call(this, complexTypes, dynamicTypes); this.pack=function OSF_DDA_SafeArray_Delegate_SpecialProcessor$pack(param, arg) { var value; if (this.isDynamicType(param)) { value=dynamicTypes[param].toHost(arg); } else { value=arg; } return value; }; this.unpack=function OSF_DDA_SafeArray_Delegate_SpecialProcessor$unpack(param, arg) { var value; if (this.isComplexType(param) || OSF.DDA.ListType.isListType(param)) { try { value=arg.toArray(); } catch (ex) { value=arg || {}; } } else if (this.isDynamicType(param)) { value=dynamicTypes[param].fromHost(arg); } else { value=arg; } return value; }; } OSF.OUtil.extend(OSF.DDA.SafeArray.Delegate.SpecialProcessor, OSF.DDA.SpecialProcessor); OSF.DDA.SafeArray.Delegate.ParameterMap=(function () { var parameterMap=new OSF.DDA.HostParameterMap(new OSF.DDA.SafeArray.Delegate.SpecialProcessor()); var ns; var self=parameterMap.self; function createObject(properties) { var obj=null; if (properties) { obj={}; var len=properties.length; for (var i=0; i < len; i++) { obj[properties[i].name]=properties[i].value; } } return obj; } function define(definition) { var args={}; var toHost=createObject(definition.toHost); if (definition.invertible) { args.map=toHost; } else if (definition.canonical) { args.toHost=args.fromHost=toHost; } else { args.toHost=toHost; args.fromHost=createObject(definition.fromHost); } parameterMap.setMapping(definition.type, args); } ns=OSF.DDA.FileProperties; define({ type: OSF.DDA.PropertyDescriptors.FileProperties, fromHost: [ { name: ns.Handle, value: 0 }, { name: ns.FileSize, value: 1 } ] }); define({ type: OSF.DDA.PropertyDescriptors.FileSliceProperties, fromHost: [ { name: Microsoft.Office.WebExtension.Parameters.Data, value: 0 }, { name: ns.SliceSize, value: 1} ] }); ns=OSF.DDA.BindingProperties; define({ type: OSF.DDA.PropertyDescriptors.BindingProperties, fromHost: [ { name: ns.Id, value: 0 }, { name: ns.Type, value: 1 }, { name: OSF.DDA.SafeArray.UniqueArguments.BindingSpecificData, value: 2 } ] }); define({ type: OSF.DDA.SafeArray.UniqueArguments.BindingSpecificData, fromHost: [ { name: ns.RowCount, value: 0 }, { name: ns.ColumnCount, value: 1 }, { name: ns.HasHeaders, value: 2 } ] }); ns=OSF.DDA.SafeArray.UniqueArguments; define({ type: OSF.DDA.PropertyDescriptors.Subset, toHost: [ { name: ns.Offset, value: 0 }, { name: ns.Run, value: 1 } ], canonical: true }); ns=Microsoft.Office.WebExtension.Parameters; define({ type: OSF.DDA.SafeArray.UniqueArguments.Offset, toHost: [ { name: ns.StartRow, value: 0 }, { name: ns.StartColumn, value: 1 } ], canonical: true }); define({ type: OSF.DDA.SafeArray.UniqueArguments.Run, toHost: [ { name: ns.RowCount, value: 0 }, { name: ns.ColumnCount, value: 1 } ], canonical: true }); ns=OSF.DDA.DataPartProperties; define({ type: OSF.DDA.PropertyDescriptors.DataPartProperties, fromHost: [ { name: ns.Id, value: 0 }, { name: ns.BuiltIn, value: 1 } ] }); ns=OSF.DDA.DataNodeProperties; define({ type: OSF.DDA.PropertyDescriptors.DataNodeProperties, fromHost: [ { name: ns.Handle, value: 0 }, { name: ns.BaseName, value: 1 }, { name: ns.NamespaceUri, value: 2 }, { name: ns.NodeType, value: 3 } ] }); define({ type: OSF.DDA.EventDescriptors.BindingSelectionChangedEvent, fromHost: [ { name: OSF.DDA.PropertyDescriptors.BindingProperties, value: 0 }, { name: OSF.DDA.PropertyDescriptors.Subset, value: 1 } ] }); ns=OSF.DDA.DataNodeEventProperties; define({ type: OSF.DDA.EventDescriptors.DataNodeInsertedEvent, fromHost: [ { name: ns.InUndoRedo, value: 0 }, { name: ns.NewNode, value: 1 } ] }); define({ type: OSF.DDA.EventDescriptors.DataNodeReplacedEvent, fromHost: [ { name: ns.InUndoRedo, value: 0 }, { name: ns.OldNode, value: 1 }, { name: ns.NewNode, value: 2 } ] }); define({ type: OSF.DDA.EventDescriptors.DataNodeDeletedEvent, fromHost: [ { name: ns.InUndoRedo, value: 0 }, { name: ns.OldNode, value: 1 }, { name: ns.NextSiblingNode, value: 2 } ] }); define({ type: ns.OldNode, fromHost: [ { name: OSF.DDA.PropertyDescriptors.DataNodeProperties, value: self } ] }); define({ type: ns.NewNode, fromHost: [ { name: OSF.DDA.PropertyDescriptors.DataNodeProperties, value: self } ] }); define({ type: ns.NextSiblingNode, fromHost: [ { name: OSF.DDA.PropertyDescriptors.DataNodeProperties, value: self } ] }); ns=Microsoft.Office.WebExtension.AsyncResultStatus; define({ type: OSF.DDA.PropertyDescriptors.AsyncResultStatus, fromHost: [ { name: ns.Succeeded, value: 0 }, { name: ns.Failed, value: 1 } ] }); ns=Microsoft.Office.WebExtension.CoercionType; define({ type: Microsoft.Office.WebExtension.Parameters.CoercionType, toHost: [ { name: ns.Text, value: 0 }, { name: ns.Matrix, value: 1 }, { name: ns.Table, value: 2 }, { name: ns.Html, value: 3 }, { name: ns.Ooxml, value: 4 } ] }); ns=Microsoft.Office.WebExtension.FileType; if (ns) { define({ type: Microsoft.Office.WebExtension.Parameters.FileType, toHost: [ { name: ns.Text, value: 0 }, { name: ns.Compressed, value: 5 } ] }); } ns=Microsoft.Office.WebExtension.BindingType; if (ns) { define({ type: Microsoft.Office.WebExtension.Parameters.BindingType, toHost: [ { name: ns.Text, value: 0 }, { name: ns.Matrix, value: 1 }, { name: ns.Table, value: 2 } ], invertible: true }); } ns=Microsoft.Office.WebExtension.ValueFormat; define({ type: Microsoft.Office.WebExtension.Parameters.ValueFormat, toHost: [ { name: ns.Unformatted, value: 0 }, { name: ns.Formatted, value: 1 } ] }); ns=Microsoft.Office.WebExtension.FilterType; define({ type: Microsoft.Office.WebExtension.Parameters.FilterType, toHost: [ { name: ns.All, value: 0 }, { name: ns.OnlyVisible, value: 1 } ] }); ns=Microsoft.Office.WebExtension.Parameters; var cns=OSF.DDA.MethodDispId; define({ type: cns.dispidGetSelectedDataMethod, fromHost: [ { name: ns.Data, value: self } ], toHost: [ { name: ns.CoercionType, value: 0 }, { name: ns.ValueFormat, value: 1 }, { name: ns.FilterType, value: 2 } ] }); define({ type: cns.dispidSetSelectedDataMethod, toHost: [ { name: ns.CoercionType, value: 0 }, { name: ns.Data, value: 1 } ] }); define({ type: cns.dispidGetDocumentCopyMethod, toHost: [{ name: ns.FileType, value: 0}], fromHost: [ { name: OSF.DDA.PropertyDescriptors.FileProperties, value: self } ] }); define({ type: cns.dispidGetDocumentCopyChunkMethod, toHost: [ { name: OSF.DDA.FileProperties.Handle, value: 0 }, { name: OSF.DDA.FileSliceOffset, value: 1 }, { name: OSF.DDA.FileProperties.SliceSize, value: 2 } ], fromHost: [ { name: OSF.DDA.PropertyDescriptors.FileSliceProperties, value: self } ] }); define({ type: cns.dispidReleaseDocumentCopyMethod, toHost: [{ name: OSF.DDA.FileProperties.Handle, value: 0}] }); define({ type: cns.dispidAddBindingFromSelectionMethod, fromHost: [ { name: OSF.DDA.PropertyDescriptors.BindingProperties, value: self } ], toHost: [ { name: ns.Id, value: 0 }, { name: ns.BindingType, value: 1 } ] }); define({ type: cns.dispidAddBindingFromPromptMethod, fromHost: [ { name: OSF.DDA.PropertyDescriptors.BindingProperties, value: self } ], toHost: [ { name: ns.Id, value: 0 }, { name: ns.BindingType, value: 1 }, { name: ns.PromptText, value: 2 } ] }); define({ type: cns.dispidAddBindingFromNamedItemMethod, fromHost: [ { name: OSF.DDA.PropertyDescriptors.BindingProperties, value: self } ], toHost: [ { name: ns.ItemName, value: 0 }, { name: ns.Id, value: 1 }, { name: ns.BindingType, value: 2 }, { name: ns.FailOnCollision, value: 3 } ] }); define({ type: cns.dispidReleaseBindingMethod, toHost: [ { name: ns.Id, value: 0 } ] }); define({ type: cns.dispidGetBindingMethod, fromHost: [ { name: OSF.DDA.PropertyDescriptors.BindingProperties, value: self } ], toHost: [ { name: ns.Id, value: 0 } ] }); define({ type: cns.dispidGetAllBindingsMethod, fromHost: [ { name: OSF.DDA.ListDescriptors.BindingList, value: self } ] }); define({ type: cns.dispidGetBindingDataMethod, fromHost: [ { name: ns.Data, value: self } ], toHost: [ { name: ns.Id, value: 0 }, { name: ns.CoercionType, value: 1 }, { name: ns.ValueFormat, value: 2 }, { name: ns.FilterType, value: 3 }, { name: OSF.DDA.PropertyDescriptors.Subset, value: 4 } ] }); define({ type: cns.dispidSetBindingDataMethod, toHost: [ { name: ns.Id, value: 0 }, { name: ns.CoercionType, value: 1 }, { name: ns.Data, value: 2 }, { name: OSF.DDA.SafeArray.UniqueArguments.Offset, value: 3 } ] }); define({ type: cns.dispidAddRowsMethod, toHost: [ { name: ns.Id, value: 0 }, { name: ns.Data, value: 1 } ] }); define({ type: cns.dispidAddColumnsMethod, toHost: [ { name: ns.Id, value: 0 }, { name: ns.Data, value: 1 } ] }); define({ type: cns.dispidClearAllRowsMethod, toHost: [ { name: ns.Id, value: 0 } ] }); define({ type: cns.dispidLoadSettingsMethod, fromHost: [ { name: OSF.DDA.SettingsManager.SerializedSettings, value: self } ] }); define({ type: cns.dispidSaveSettingsMethod, toHost: [ { name: OSF.DDA.SettingsManager.SerializedSettings, value: OSF.DDA.SettingsManager.SerializedSettings }, { name: Microsoft.Office.WebExtension.Parameters.OverwriteIfStale, value: Microsoft.Office.WebExtension.Parameters.OverwriteIfStale } ] }); define({ type: cns.dispidAddDataPartMethod, fromHost: [ { name: OSF.DDA.PropertyDescriptors.DataPartProperties, value: self } ], toHost: [ { name: ns.Xml, value: 0 } ] }); define({ type: cns.dispidGetDataPartByIdMethod, fromHost: [ { name: OSF.DDA.PropertyDescriptors.DataPartProperties, value: self } ], toHost: [ { name: ns.Id, value: 0 } ] }); define({ type: cns.dispidGetDataPartsByNamespaceMethod, fromHost: [ { name: OSF.DDA.ListDescriptors.DataPartList, value: self } ], toHost: [ { name: ns.Namespace, value: 0 } ] }); define({ type: cns.dispidGetDataPartXmlMethod, fromHost: [ { name: ns.Data, value: self} ], toHost: [ { name: ns.Id, value: 0 } ] }); define({ type: cns.dispidGetDataPartNodesMethod, fromHost: [ { name: OSF.DDA.ListDescriptors.DataNodeList, value: self } ], toHost: [ { name: ns.Id, value: 0 }, { name: ns.XPath, value: 1 } ] }); define({ type: cns.dispidDeleteDataPartMethod, toHost: [ { name: ns.Id, value: 0 } ] }); define({ type: cns.dispidGetDataNodeValueMethod, fromHost: [ { name: ns.Data, value: self} ], toHost: [ { name: OSF.DDA.DataNodeProperties.Handle, value: 0 } ] }); define({ type: cns.dispidGetDataNodeXmlMethod, fromHost: [ { name: ns.Data, value: self} ], toHost: [ { name: OSF.DDA.DataNodeProperties.Handle, value: 0 } ] }); define({ type: cns.dispidGetDataNodesMethod, fromHost: [ { name: OSF.DDA.ListDescriptors.DataNodeList, value: self } ], toHost: [ { name: OSF.DDA.DataNodeProperties.Handle, value: 0 }, { name: ns.XPath, value: 1 } ] }); define({ type: cns.dispidSetDataNodeValueMethod, toHost: [ { name: OSF.DDA.DataNodeProperties.Handle, value: 0 }, { name: ns.Data, value: 1 } ] }); define({ type: cns.dispidSetDataNodeXmlMethod, toHost: [ { name: OSF.DDA.DataNodeProperties.Handle, value: 0 }, { name: ns.Xml, value: 1 } ] }); define({ type: cns.dispidAddDataNamespaceMethod, toHost: [ { name: OSF.DDA.DataPartProperties.Id, value: 0 }, { name: ns.Prefix, value: 1 }, { name: ns.Namespace, value: 2 } ] }); define({ type: cns.dispidGetDataUriByPrefixMethod, fromHost: [ { name: ns.Data, value: self} ], toHost: [ { name: OSF.DDA.DataPartProperties.Id, value: 0 }, { name: ns.Prefix, value: 1 } ] }); define({ type: cns.dispidGetDataPrefixByUriMethod, fromHost: [ { name: ns.Data, value: self} ], toHost: [ { name: OSF.DDA.DataPartProperties.Id, value: 0 }, { name: ns.Namespace, value: 1 } ] }); define({ type: cns.dispidGetSelectedTaskMethod, fromHost: [ { name: ns.TaskId, value: self } ] }); define({ type: cns.dispidGetTaskMethod, fromHost: [ { name: "taskName", value: 0 }, { name: "wssTaskId", value: 1 }, { name: "resourceNames", value: 2 } ], toHost: [ { name: ns.TaskId, value: 0 } ] }); define({ type: cns.dispidGetTaskFieldMethod, fromHost: [ { name: ns.FieldValue, value: self } ], toHost: [ { name: ns.TaskId, value: 0 }, { name: ns.FieldId, value: 1 }, { name: ns.GetRawValue, value: 2 } ] }); define({ type: cns.dispidGetWSSUrlMethod, fromHost: [ { name: ns.ServerUrl, value: 0 }, { name: ns.ListName, value: 1 } ] }); define({ type: cns.dispidGetSelectedResourceMethod, fromHost: [ { name: ns.ResourceId, value: self } ] }); define({ type: cns.dispidGetResourceFieldMethod, fromHost: [ { name: ns.FieldValue, value: self } ], toHost: [ { name: ns.ResourceId, value: 0 }, { name: ns.FieldId, value: 1 }, { name: ns.GetRawValue, value: 2 } ] }); define({ type: cns.dispidGetProjectFieldMethod, fromHost: [ { name: ns.FieldValue, value: self } ], toHost: [ { name: ns.FieldId, value: 0 }, { name: ns.GetRawValue, value: 1 } ] }); define({ type: cns.dispidGetSelectedViewMethod, fromHost: [ { name: ns.ViewType, value: 0 }, { name: ns.ViewName, value: 1 } ] }); cns=OSF.DDA.EventDispId define({ type: cns.dispidDocumentSelectionChangedEvent }); define({ type: cns.dispidBindingSelectionChangedEvent, fromHost: [ {name: OSF.DDA.EventDescriptors.BindingSelectionChangedEvent, value: self} ] }); define({ type: cns.dispidBindingDataChangedEvent, fromHost: [{ name: OSF.DDA.PropertyDescriptors.BindingProperties, value: self}] }); define({ type: cns.dispidSettingsChangedEvent }); define({ type: cns.dispidDataNodeAddedEvent, fromHost: [{ name: OSF.DDA.EventDescriptors.DataNodeInsertedEvent, value: self}] }); define({ type: cns.dispidDataNodeReplacedEvent, fromHost: [{ name: OSF.DDA.EventDescriptors.DataNodeReplacedEvent, value: self}] }); define({ type: cns.dispidDataNodeDeletedEvent, fromHost: [{ name: OSF.DDA.EventDescriptors.DataNodeDeletedEvent, value: self}] }); define({ type: cns.dispidTaskSelectionChangedEvent }); define({ type: cns.dispidResourceSelectionChangedEvent }); define({ type: cns.dispidViewSelectionChangedEvent }); return parameterMap; })(); OSF.DDA.SafeArray.Delegate._onException=function OSF_DDA_SafeArray_Delegate$OnException(ex, args) { var status; var number=ex.number; if (number) { switch (number) { case -2146828218: status=OSF.DDA.ErrorCodeManager.errorCodes.ooeNoCapability; break; case -2146827850: default: status=OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError; break; } } if (args.onComplete) { args.onComplete(status || OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError); } } OSF.DDA.SafeArray.Delegate.executeAsync=function OSF_DDA_SafeArray_Delegate$ExecuteAsync(args) { try { if (args.onCalling) { args.onCalling(); } function toArray(args) { var arrArgs=args; if (OSF.OUtil.isArray(args)) { var len=arrArgs.length; for (var i=0; i < len; i++) { arrArgs[i]=toArray(arrArgs[i]); } } else if (OSF.OUtil.isDate(args)) { arrArgs=args.getVarDate(); } else if (typeof args==="object" && !OSF.OUtil.isArray(args)) { arrArgs=[]; for (var index in args) { if (!OSF.OUtil.isFunction(args[index])) { arrArgs[index]=toArray(args[index]); } } } return arrArgs; } var startTime=(new Date()).getTime(); OSF.ClientHostController.execute( args.dispId, toArray(args.hostCallArgs), function OSF_DDA_SafeArrayFacade$Execute_OnResponse(hostResponseArgs) { if (args.onReceiving) { args.onReceiving(); } var result=hostResponseArgs.toArray(); var status=result[OSF.DDA.SafeArray.Response.Status]; if (args.onComplete) { var payload; if (status==OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess) { if (result.length > 2) { payload=[]; for (var i=1; i < result.length; i++) payload[i - 1]=result[i]; } else { payload=result[OSF.DDA.SafeArray.Response.Payload]; } } else { payload=result[OSF.DDA.SafeArray.Response.Payload]; } args.onComplete(status, payload); } if (OSF.AppTelemetry) { OSF.AppTelemetry.onMethodDone(args.dispId, args.hostCallArgs, Math.abs((new Date()).getTime() - startTime), status); } } ); } catch (ex) { OSF.DDA.SafeArray.Delegate._onException(ex, args); } }; OSF.DDA.SafeArray.Delegate._getOnAfterRegisterEvent=function OSF_DDA_SafeArrayDelegate$GetOnAfterRegisterEvent(register, args) { var startTime=(new Date()).getTime(); return function OSF_DDA_SafeArrayDelegate$OnAfterRegisterEvent(hostResponseArgs) { if (args.onReceiving) { args.onReceiving(); } var status=hostResponseArgs.toArray ? hostResponseArgs.toArray()[OSF.DDA.SafeArray.Response.Status] : hostResponseArgs; if (args.onComplete) { args.onComplete(status) } if (OSF.AppTelemetry) { OSF.AppTelemetry.onRegisterDone(register, args.dispId, Math.abs((new Date()).getTime() - startTime), status); } } } OSF.DDA.SafeArray.Delegate.registerEventAsync=function OSF_DDA_SafeArray_Delegate$RegisterEventAsync(args) { if (args.onCalling) { args.onCalling(); } var callback=OSF.DDA.SafeArray.Delegate._getOnAfterRegisterEvent(true, args); try { OSF.ClientHostController.registerEvent( args.dispId, args.targetId, function OSF_DDA_SafeArrayDelegate$RegisterEventAsync_OnEvent(eventDispId, payload) { if (args.onEvent) { args.onEvent(payload); } if (OSF.AppTelemetry) { OSF.AppTelemetry.onEventDone(args.dispId); } }, callback ); } catch (ex) { OSF.DDA.SafeArray.Delegate._onException(ex, args); } }; OSF.DDA.SafeArray.Delegate.unregisterEventAsync=function OSF_DDA_SafeArray_Delegate$UnregisterEventAsync(args) { if (args.onCalling) { args.onCalling(); } var callback=OSF.DDA.SafeArray.Delegate._getOnAfterRegisterEvent(false, args); try { OSF.ClientHostController.unregisterEvent( args.dispId, args.targetId, callback ); } catch (ex) { OSF.DDA.SafeArray.Delegate._onException(ex, args); } }; OSF.DDA.WordDocument=function OSF_DDA_WordDocument(officeAppContext, settings) { OSF.DDA.WordDocument.uber.constructor.call(this, officeAppContext, new OSF.DDA.BindingFacade(this), settings ); OSF.DDA.DispIdHost.addAsyncMethods(this, [ OSF.DDA.AsyncMethodNames.GetDocumentCopyAsync ]); OSF.OUtil.defineEnumerableProperty(this, "customXmlParts", { value: new OSF.DDA.CustomXmlParts() }); OSF.OUtil.finalizeProperties(this); }; OSF.OUtil.extend(OSF.DDA.WordDocument, OSF.DDA.JsomDocument);