Files
outlook_pal_tools/outllook_pal_toolsWeb/Scripts/Office/1/outlook-win32-16.00.debug.js
T
2024-06-24 11:10:18 +02:00

9706 lines
334 KiB
JavaScript

/* Outlook specific API library */
/* Version: 16.0.6807.1000 */
/*
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.
*/
var __extends=this && this.__extends || function(d, b)
{
for(var p in b)
if(b.hasOwnProperty(p))
d[p]=b[p];
function __()
{
this.constructor=d
}
d.prototype=b===null ? Object.create(b) : (__.prototype=b.prototype,new __)
};
var OfficeExt;
(function(OfficeExt)
{
var MicrosoftAjaxFactory=function()
{
function MicrosoftAjaxFactory(){}
MicrosoftAjaxFactory.prototype.isMsAjaxLoaded=function()
{
if(typeof Sys !=="undefined" && typeof Type !=="undefined" && Sys.StringBuilder && typeof Sys.StringBuilder==="function" && Type.registerNamespace && typeof Type.registerNamespace==="function" && Type.registerClass && typeof Type.registerClass==="function" && typeof Function._validateParams==="function")
return true;
else
return false
};
MicrosoftAjaxFactory.prototype.loadMsAjaxFull=function(callback)
{
var msAjaxCDNPath=(window.location.protocol.toLowerCase()==="https:" ? "https:" : "http:")+"//ajax.aspnetcdn.com/ajax/3.5/MicrosoftAjax.js";
OSF.OUtil.loadScript(msAjaxCDNPath,callback)
};
Object.defineProperty(MicrosoftAjaxFactory.prototype,"msAjaxError",{
get: function()
{
if(this._msAjaxError==null && this.isMsAjaxLoaded())
this._msAjaxError=Error;
return this._msAjaxError
},
set: function(errorClass)
{
this._msAjaxError=errorClass
},
enumerable: true,
configurable: true
});
Object.defineProperty(MicrosoftAjaxFactory.prototype,"msAjaxSerializer",{
get: function()
{
if(this._msAjaxSerializer==null && this.isMsAjaxLoaded())
this._msAjaxSerializer=Sys.Serialization.JavaScriptSerializer;
return this._msAjaxSerializer
},
set: function(serializerClass)
{
this._msAjaxSerializer=serializerClass
},
enumerable: true,
configurable: true
});
Object.defineProperty(MicrosoftAjaxFactory.prototype,"msAjaxString",{
get: function()
{
if(this._msAjaxString==null && this.isMsAjaxLoaded())
this._msAjaxSerializer=String;
return this._msAjaxString
},
set: function(stringClass)
{
this._msAjaxString=stringClass
},
enumerable: true,
configurable: true
});
Object.defineProperty(MicrosoftAjaxFactory.prototype,"msAjaxDebug",{
get: function()
{
if(this._msAjaxDebug==null && this.isMsAjaxLoaded())
this._msAjaxDebug=Sys.Debug;
return this._msAjaxDebug
},
set: function(debugClass)
{
this._msAjaxDebug=debugClass
},
enumerable: true,
configurable: true
});
return MicrosoftAjaxFactory
}();
OfficeExt.MicrosoftAjaxFactory=MicrosoftAjaxFactory
})(OfficeExt || (OfficeExt={}));
var OsfMsAjaxFactory=new OfficeExt.MicrosoftAjaxFactory;
var OSF=OSF || {};
var OfficeExt;
(function(OfficeExt)
{
var SafeStorage=function()
{
function SafeStorage(_internalStorage)
{
this._internalStorage=_internalStorage
}
SafeStorage.prototype.getItem=function(key)
{
try
{
return this._internalStorage && this._internalStorage.getItem(key)
}
catch(e)
{
return null
}
};
SafeStorage.prototype.setItem=function(key, data)
{
try
{
this._internalStorage && this._internalStorage.setItem(key,data)
}
catch(e){}
};
SafeStorage.prototype.clear=function()
{
try
{
this._internalStorage && this._internalStorage.clear()
}
catch(e){}
};
SafeStorage.prototype.removeItem=function(key)
{
try
{
this._internalStorage && this._internalStorage.removeItem(key)
}
catch(e){}
};
SafeStorage.prototype.getKeysWithPrefix=function(keyPrefix)
{
var keyList=[];
try
{
var len=this._internalStorage && this._internalStorage.length || 0;
for(var i=0; i < len; i++)
{
var key=this._internalStorage.key(i);
if(key.indexOf(keyPrefix)===0)
keyList.push(key)
}
}
catch(e){}
return keyList
};
return SafeStorage
}();
OfficeExt.SafeStorage=SafeStorage
})(OfficeExt || (OfficeExt={}));
OSF.OUtil=function()
{
var _uniqueId=-1;
var _xdmInfoKey="&_xdm_Info=";
var _serializerVersionKey="&_serializer_version=";
var _xdmSessionKeyPrefix="_xdm_";
var _serializerVersionKeyPrefix="_serializer_version=";
var _fragmentSeparator="#";
var _loadedScripts={};
var _defaultScriptLoadingTimeout=3e4;
var _safeSessionStorage=null;
var _safeLocalStorage=null;
var _rndentropy=(new Date).getTime();
function _random()
{
var nextrand=2147483647 * Math.random();
nextrand ^=_rndentropy ^ (new Date).getMilliseconds() << Math.floor(Math.random() * (31 - 10));
return nextrand.toString(16)
}
function _getSessionStorage()
{
if(!_safeSessionStorage)
{
try
{
var sessionStorage=window.sessionStorage
}
catch(ex)
{
sessionStorage=null
}
_safeSessionStorage=new OfficeExt.SafeStorage(sessionStorage)
}
return _safeSessionStorage
}
return{
set_entropy: function OSF_OUtil$set_entropy(entropy)
{
if(typeof entropy=="string")
for(var i=0; i < entropy.length; i+=4)
{
var temp=0;
for(var j=0; j < 4 && i+j < entropy.length; j++)
temp=(temp << 8)+entropy.charCodeAt(i+j);
_rndentropy ^=temp
}
else if(typeof entropy=="number")
_rndentropy ^=entropy;
else
_rndentropy ^=2147483647 * Math.random();
_rndentropy &=2147483647
},
extend: function OSF_OUtil$extend(child, parent)
{
var F=function(){};
F.prototype=parent.prototype;
child.prototype=new F;
child.prototype.constructor=child;
child.uber=parent.prototype;
if(parent.prototype.constructor===Object.prototype.constructor)
parent.prototype.constructor=parent
},
setNamespace: function OSF_OUtil$setNamespace(name, parent)
{
if(parent && name && !parent[name])
parent[name]={}
},
unsetNamespace: function OSF_OUtil$unsetNamespace(name, parent)
{
if(parent && name && parent[name])
delete parent[name]
},
loadScript: function OSF_OUtil$loadScript(url, callback, timeoutInMs)
{
if(url && callback)
{
var doc=window.document;
var _loadedScriptEntry=_loadedScripts[url];
if(!_loadedScriptEntry)
{
var script=doc.createElement("script");
script.type="text/javascript";
_loadedScriptEntry={
loaded: false,
pendingCallbacks: [callback],
timer: null
};
_loadedScripts[url]=_loadedScriptEntry;
var onLoadCallback=function OSF_OUtil_loadScript$onLoadCallback()
{
if(_loadedScriptEntry.timer !=null)
{
clearTimeout(_loadedScriptEntry.timer);
delete _loadedScriptEntry.timer
}
_loadedScriptEntry.loaded=true;
var pendingCallbackCount=_loadedScriptEntry.pendingCallbacks.length;
for(var i=0; i < pendingCallbackCount; i++)
{
var currentCallback=_loadedScriptEntry.pendingCallbacks.shift();
currentCallback()
}
};
var onLoadError=function OSF_OUtil_loadScript$onLoadError()
{
delete _loadedScripts[url];
if(_loadedScriptEntry.timer !=null)
{
clearTimeout(_loadedScriptEntry.timer);
delete _loadedScriptEntry.timer
}
var pendingCallbackCount=_loadedScriptEntry.pendingCallbacks.length;
for(var i=0; i < pendingCallbackCount; i++)
{
var currentCallback=_loadedScriptEntry.pendingCallbacks.shift();
currentCallback()
}
};
if(script.readyState)
script.onreadystatechange=function()
{
if(script.readyState=="loaded" || script.readyState=="complete")
{
script.onreadystatechange=null;
onLoadCallback()
}
};
else
script.onload=onLoadCallback;
script.onerror=onLoadError;
timeoutInMs=timeoutInMs || _defaultScriptLoadingTimeout;
_loadedScriptEntry.timer=setTimeout(onLoadError,timeoutInMs);
script.src=url;
doc.getElementsByTagName("head")[0].appendChild(script)
}
else if(_loadedScriptEntry.loaded)
callback();
else
_loadedScriptEntry.pendingCallbacks.push(callback)
}
},
loadCSS: function OSF_OUtil$loadCSS(url)
{
if(url)
{
var doc=window.document;
var link=doc.createElement("link");
link.type="text/css";
link.rel="stylesheet";
link.href=url;
doc.getElementsByTagName("head")[0].appendChild(link)
}
},
parseEnum: function OSF_OUtil$parseEnum(str, enumObject)
{
var parsed=enumObject[str.trim()];
if(typeof parsed=="undefined")
{
OsfMsAjaxFactory.msAjaxDebug.trace("invalid enumeration string:"+str);
throw OsfMsAjaxFactory.msAjaxError.argument("str");
}
return parsed
},
delayExecutionAndCache: function OSF_OUtil$delayExecutionAndCache()
{
var obj={calc: arguments[0]};
return function()
{
if(obj.calc)
{
obj.val=obj.calc.apply(this,arguments);
delete obj.calc
}
return obj.val
}
},
getUniqueId: function OSF_OUtil$getUniqueId()
{
_uniqueId=_uniqueId+1;
return _uniqueId.toString()
},
formatString: function OSF_OUtil$formatString()
{
var args=arguments;
var source=args[0];
return source.replace(/{(\d+)}/gm,function(match, number)
{
var index=parseInt(number,10)+1;
return args[index]===undefined ? "{"+number+"}" : args[index]
})
},
generateConversationId: function OSF_OUtil$generateConversationId()
{
return[_random(),_random(),(new Date).getTime().toString()].join("_")
},
getFrameNameAndConversationId: function OSF_OUtil$getFrameNameAndConversationId(cacheKey, frame)
{
var frameName=_xdmSessionKeyPrefix+cacheKey+this.generateConversationId();
frame.setAttribute("name",frameName);
return this.generateConversationId()
},
addXdmInfoAsHash: function OSF_OUtil$addXdmInfoAsHash(url, xdmInfoValue)
{
return OSF.OUtil.addInfoAsHash(url,_xdmInfoKey,xdmInfoValue)
},
addSerializerVersionAsHash: function OSF_OUtil$addSerializerVersionAsHash(url, serializerVersion)
{
return OSF.OUtil.addInfoAsHash(url,_serializerVersionKey,serializerVersion)
},
addInfoAsHash: function OSF_OUtil$addInfoAsHash(url, keyName, infoValue)
{
url=url.trim() || "";
var urlParts=url.split(_fragmentSeparator);
var urlWithoutFragment=urlParts.shift();
var fragment=urlParts.join(_fragmentSeparator);
return[urlWithoutFragment,_fragmentSeparator,fragment,keyName,infoValue].join("")
},
parseXdmInfo: function OSF_OUtil$parseXdmInfo(skipSessionStorage)
{
return OSF.OUtil.parseXdmInfoWithGivenFragment(skipSessionStorage,window.location.hash)
},
parseXdmInfoWithGivenFragment: function OSF_OUtil$parseXdmInfoWithGivenFragment(skipSessionStorage, fragment)
{
return OSF.OUtil.parseInfoWithGivenFragment(_xdmInfoKey,_xdmSessionKeyPrefix,skipSessionStorage,fragment)
},
parseSerializerVersion: function OSF_OUtil$parseSerializerVersion(skipSessionStorage)
{
return OSF.OUtil.parseSerializerVersionWithGivenFragment(skipSessionStorage,window.location.hash)
},
parseSerializerVersionWithGivenFragment: function OSF_OUtil$parseSerializerVersionWithGivenFragment(skipSessionStorage, fragment)
{
return parseInt(OSF.OUtil.parseInfoWithGivenFragment(_serializerVersionKey,_serializerVersionKeyPrefix,skipSessionStorage,fragment))
},
parseInfoWithGivenFragment: function OSF_OUtil$parseInfoWithGivenFragment(infoKey, infoKeyPrefix, skipSessionStorage, fragment)
{
var fragmentParts=fragment.split(infoKey);
var xdmInfoValue=fragmentParts.length > 1 ? fragmentParts[fragmentParts.length - 1] : null;
var osfSessionStorage=_getSessionStorage();
if(!skipSessionStorage && osfSessionStorage)
{
var sessionKeyStart=window.name.indexOf(infoKeyPrefix);
if(sessionKeyStart > -1)
{
var sessionKeyEnd=window.name.indexOf(";",sessionKeyStart);
if(sessionKeyEnd==-1)
sessionKeyEnd=window.name.length;
var sessionKey=window.name.substring(sessionKeyStart,sessionKeyEnd);
if(xdmInfoValue)
osfSessionStorage.setItem(sessionKey,xdmInfoValue);
else
xdmInfoValue=osfSessionStorage.getItem(sessionKey)
}
}
return xdmInfoValue
},
getConversationId: function OSF_OUtil$getConversationId()
{
var searchString=window.location.search;
var conversationId=null;
if(searchString)
{
var index=searchString.indexOf("&");
conversationId=index > 0 ? searchString.substring(1,index) : searchString.substr(1);
if(conversationId && conversationId.charAt(conversationId.length - 1)==="=")
{
conversationId=conversationId.substring(0,conversationId.length - 1);
if(conversationId)
conversationId=decodeURIComponent(conversationId)
}
}
return conversationId
},
getInfoItems: function OSF_OUtil$getInfoItems(strInfo)
{
var items=strInfo.split("$");
if(typeof items[1]=="undefined")
items=strInfo.split("|");
return items
},
getConversationUrl: function OSF_OUtil$getConversationUrl()
{
var conversationUrl="";
var xdmInfoValue=OSF.OUtil.parseXdmInfo(true);
if(xdmInfoValue)
{
var items=OSF.OUtil.getInfoItems(xdmInfoValue);
if(items !=undefined && items.length >=3)
conversationUrl=items[2]
}
return conversationUrl
},
validateParamObject: function OSF_OUtil$validateParamObject(params, expectedProperties, callback)
{
var e=Function._validateParams(arguments,[{
name: "params",
type: Object,
mayBeNull: false
},{
name: "expectedProperties",
type: Object,
mayBeNull: false
},{
name: "callback",
type: Function,
mayBeNull: true
}]);
if(e)
throw e;
for(var p in expectedProperties)
{
e=Function._validateParameter(params[p],expectedProperties[p],p);
if(e)
throw e;
}
},
writeProfilerMark: function OSF_OUtil$writeProfilerMark(text)
{
if(window.msWriteProfilerMark)
{
window.msWriteProfilerMark(text);
OsfMsAjaxFactory.msAjaxDebug.trace(text)
}
},
outputDebug: function OSF_OUtil$outputDebug(text)
{
if(typeof Sys !=="undefined" && Sys && Sys.Debug)
OsfMsAjaxFactory.msAjaxDebug.trace(text)
},
defineNondefaultProperty: function OSF_OUtil$defineNondefaultProperty(obj, prop, descriptor, attributes)
{
descriptor=descriptor || {};
for(var nd in attributes)
{
var attribute=attributes[nd];
if(descriptor[attribute]==undefined)
descriptor[attribute]=true
}
Object.defineProperty(obj,prop,descriptor);
return obj
},
defineNondefaultProperties: function OSF_OUtil$defineNondefaultProperties(obj, descriptors, attributes)
{
descriptors=descriptors || {};
for(var prop in descriptors)
OSF.OUtil.defineNondefaultProperty(obj,prop,descriptors[prop],attributes);
return obj
},
defineEnumerableProperty: function OSF_OUtil$defineEnumerableProperty(obj, prop, descriptor)
{
return OSF.OUtil.defineNondefaultProperty(obj,prop,descriptor,["enumerable"])
},
defineEnumerableProperties: function OSF_OUtil$defineEnumerableProperties(obj, descriptors)
{
return OSF.OUtil.defineNondefaultProperties(obj,descriptors,["enumerable"])
},
defineMutableProperty: function OSF_OUtil$defineMutableProperty(obj, prop, descriptor)
{
return OSF.OUtil.defineNondefaultProperty(obj,prop,descriptor,["writable","enumerable","configurable"])
},
defineMutableProperties: function OSF_OUtil$defineMutableProperties(obj, descriptors)
{
return OSF.OUtil.defineNondefaultProperties(obj,descriptors,["writable","enumerable","configurable"])
},
finalizeProperties: function OSF_OUtil$finalizeProperties(obj, descriptor)
{
descriptor=descriptor || {};
var props=Object.getOwnPropertyNames(obj);
var propsLength=props.length;
for(var i=0; i < propsLength; i++)
{
var prop=props[i];
var desc=Object.getOwnPropertyDescriptor(obj,prop);
if(!desc.get && !desc.set)
desc.writable=descriptor.writable || false;
desc.configurable=descriptor.configurable || false;
desc.enumerable=descriptor.enumerable || true;
Object.defineProperty(obj,prop,desc)
}
return obj
},
mapList: function OSF_OUtil$MapList(list, mapFunction)
{
var ret=[];
if(list)
for(var item in list)
ret.push(mapFunction(list[item]));
return ret
},
listContainsKey: function OSF_OUtil$listContainsKey(list, key)
{
for(var item in list)
if(key==item)
return true;
return false
},
listContainsValue: function OSF_OUtil$listContainsElement(list, value)
{
for(var item in list)
if(value==list[item])
return true;
return false
},
augmentList: function OSF_OUtil$augmentList(list, addenda)
{
var add=list.push ? function(key, value)
{
list.push(value)
} : function(key, value)
{
list[key]=value
};
for(var key in addenda)
add(key,addenda[key])
},
redefineList: function OSF_Outil$redefineList(oldList, newList)
{
for(var key1 in oldList)
delete oldList[key1];
for(var key2 in newList)
oldList[key2]=newList[key2]
},
isArray: function OSF_OUtil$isArray(obj)
{
return Object.prototype.toString.apply(obj)==="[object Array]"
},
isFunction: function OSF_OUtil$isFunction(obj)
{
return Object.prototype.toString.apply(obj)==="[object Function]"
},
isDate: function OSF_OUtil$isDate(obj)
{
return Object.prototype.toString.apply(obj)==="[object Date]"
},
addEventListener: function OSF_OUtil$addEventListener(element, eventName, listener)
{
if(element.addEventListener)
element.addEventListener(eventName,listener,false);
else if(Sys.Browser.agent===Sys.Browser.InternetExplorer && element.attachEvent)
element.attachEvent("on"+eventName,listener);
else
element["on"+eventName]=listener
},
removeEventListener: function OSF_OUtil$removeEventListener(element, eventName, listener)
{
if(element.removeEventListener)
element.removeEventListener(eventName,listener,false);
else if(Sys.Browser.agent===Sys.Browser.InternetExplorer && element.detachEvent)
element.detachEvent("on"+eventName,listener);
else
element["on"+eventName]=null
},
getCookieValue: function OSF_OUtil$getCookieValue(cookieName)
{
var tmpCookieString=RegExp(cookieName+"[^;]+").exec(document.cookie);
return tmpCookieString.toString().replace(/^[^=]+./,"")
},
xhrGet: function OSF_OUtil$xhrGet(url, onSuccess, onError)
{
var xmlhttp;
try
{
xmlhttp=new XMLHttpRequest;
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
if(xmlhttp.status==200)
onSuccess(xmlhttp.responseText);
else
onError(xmlhttp.status)
};
xmlhttp.open("GET",url,true);
xmlhttp.send()
}
catch(ex)
{
onError(ex)
}
},
xhrGetFull: function OSF_OUtil$xhrGetFull(url, oneDriveFileName, onSuccess, onError)
{
var xmlhttp;
var requestedFileName=oneDriveFileName;
try
{
xmlhttp=new XMLHttpRequest;
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
if(xmlhttp.status==200)
onSuccess(xmlhttp,requestedFileName);
else
onError(xmlhttp.status)
};
xmlhttp.open("GET",url,true);
xmlhttp.send()
}
catch(ex)
{
onError(ex)
}
},
encodeBase64: function OSF_Outil$encodeBase64(input)
{
if(!input)
return input;
var codex="ABCDEFGHIJKLMNOP"+"QRSTUVWXYZabcdef"+"ghijklmnopqrstuv"+"wxyz0123456789+/=";
var output=[];
var temp=[];
var index=0;
var c1,
c2,
c3,
a,
b,
c;
var i;
var length=input.length;
do
{
c1=input.charCodeAt(index++);
c2=input.charCodeAt(index++);
c3=input.charCodeAt(index++);
i=0;
a=c1 & 255;
b=c1 >> 8;
c=c2 & 255;
temp[i++]=a >> 2;
temp[i++]=(a & 3) << 4 | b >> 4;
temp[i++]=(b & 15) << 2 | c >> 6;
temp[i++]=c & 63;
if(!isNaN(c2))
{
a=c2 >> 8;
b=c3 & 255;
c=c3 >> 8;
temp[i++]=a >> 2;
temp[i++]=(a & 3) << 4 | b >> 4;
temp[i++]=(b & 15) << 2 | c >> 6;
temp[i++]=c & 63
}
if(isNaN(c2))
temp[i - 1]=64;
else if(isNaN(c3))
{
temp[i - 2]=64;
temp[i - 1]=64
}
for(var t=0; t < i; t++)
output.push(codex.charAt(temp[t]))
} while(index < length);
return output.join("")
},
getSessionStorage: function OSF_Outil$getSessionStorage()
{
return _getSessionStorage()
},
getLocalStorage: function OSF_Outil$getLocalStorage()
{
if(!_safeLocalStorage)
{
try
{
var localStorage=window.localStorage
}
catch(ex)
{
localStorage=null
}
_safeLocalStorage=new OfficeExt.SafeStorage(localStorage)
}
return _safeLocalStorage
},
convertIntToCssHexColor: function OSF_Outil$convertIntToCssHexColor(val)
{
var hex="#"+(Number(val)+16777216).toString(16).slice(-6);
return hex
},
attachClickHandler: function OSF_Outil$attachClickHandler(element, handler)
{
element.onclick=function(e)
{
handler()
};
element.ontouchend=function(e)
{
handler();
e.preventDefault()
}
},
getQueryStringParamValue: function OSF_Outil$getQueryStringParamValue(queryString, paramName)
{
var e=Function._validateParams(arguments,[{
name: "queryString",
type: String,
mayBeNull: false
},{
name: "paramName",
type: String,
mayBeNull: false
}]);
if(e)
{
OsfMsAjaxFactory.msAjaxDebug.trace("OSF_Outil_getQueryStringParamValue: Parameters cannot be null.");
return""
}
var queryExp=new RegExp("[\\?&]"+paramName+"=([^&#]*)","i");
if(!queryExp.test(queryString))
{
OsfMsAjaxFactory.msAjaxDebug.trace("OSF_Outil_getQueryStringParamValue: The parameter is not found.");
return""
}
return queryExp.exec(queryString)[1]
},
isiOS: function OSF_Outil$isiOS()
{
return window.navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? true : false
},
shallowCopy: function OSF_Outil$shallowCopy(sourceObj)
{
var copyObj=sourceObj.constructor();
for(var property in sourceObj)
if(sourceObj.hasOwnProperty(property))
copyObj[property]=sourceObj[property];
return copyObj
},
serializeOMEXResponseErrorMessage: function OSF_Outil$serializeObjectToString(response)
{
if(typeof JSON !=="undefined")
try
{
return JSON.stringify(response)
}
catch(ex){}
return""
},
createObject: function OSF_Outil$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
}
}
}();
OSF.OUtil.Guid=function()
{
var hexCode=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];
return{generateNewGuid: function OSF_Outil_Guid$generateNewGuid()
{
var result="";
var tick=(new Date).getTime();
var index=0;
for(; index < 32 && tick > 0; index++)
{
if(index==8 || index==12 || index==16 || index==20)
result+="-";
result+=hexCode[tick % 16];
tick=Math.floor(tick / 16)
}
for(; index < 32; index++)
{
if(index==8 || index==12 || index==16 || index==20)
result+="-";
result+=hexCode[Math.floor(Math.random() * 16)]
}
return result
}}
}();
window.OSF=OSF;
OSF.OUtil.setNamespace("OSF",window);
OSF.AppName={
Unsupported: 0,
Excel: 1,
Word: 2,
PowerPoint: 4,
Outlook: 8,
ExcelWebApp: 16,
WordWebApp: 32,
OutlookWebApp: 64,
Project: 128,
AccessWebApp: 256,
PowerpointWebApp: 512,
ExcelIOS: 1024,
Sway: 2048,
WordIOS: 4096,
PowerPointIOS: 8192,
Access: 16384,
Lync: 32768,
OutlookIOS: 65536,
OneNoteWebApp: 131072
};
OSF.InternalPerfMarker={
DataCoercionBegin: "Agave.HostCall.CoerceDataStart",
DataCoercionEnd: "Agave.HostCall.CoerceDataEnd"
};
OSF.HostCallPerfMarker={
IssueCall: "Agave.HostCall.IssueCall",
ReceiveResponse: "Agave.HostCall.ReceiveResponse",
RuntimeExceptionRaised: "Agave.HostCall.RuntimeExecptionRaised"
};
OSF.AgaveHostAction={
Select: 0,
UnSelect: 1,
CancelDialog: 2,
InsertAgave: 3,
CtrlF6In: 4,
CtrlF6Exit: 5,
CtrlF6ExitShift: 6,
SelectWithError: 7,
NotifyHostError: 8,
RefreshAddinCommands: 9
};
OSF.SharedConstants={NotificationConversationIdSuffix: "_ntf"};
OSF.DialogMessageType={
DialogMessageReceived: 0,
DialogClosed: 1,
NavigationFailed: 2,
InvalidSchema: 3
};
OSF.OfficeAppContext=function OSF_OfficeAppContext(id, appName, appVersion, appUILocale, dataLocale, docUrl, clientMode, settings, reason, osfControlType, eToken, correlationId, appInstanceId, touchEnabled, commerceAllowed, appMinorVersion, requirementMatrix)
{
this._id=id;
this._appName=appName;
this._appVersion=appVersion;
this._appUILocale=appUILocale;
this._dataLocale=dataLocale;
this._docUrl=docUrl;
this._clientMode=clientMode;
this._settings=settings;
this._reason=reason;
this._osfControlType=osfControlType;
this._eToken=eToken;
this._correlationId=correlationId;
this._appInstanceId=appInstanceId;
this._touchEnabled=touchEnabled;
this._commerceAllowed=commerceAllowed;
this._appMinorVersion=appMinorVersion;
this._requirementMatrix=requirementMatrix;
this._isDialog=false;
this.get_id=function get_id()
{
return this._id
};
this.get_appName=function get_appName()
{
return this._appName
};
this.get_appVersion=function get_appVersion()
{
return this._appVersion
};
this.get_appUILocale=function get_appUILocale()
{
return this._appUILocale
};
this.get_dataLocale=function get_dataLocale()
{
return this._dataLocale
};
this.get_docUrl=function get_docUrl()
{
return this._docUrl
};
this.get_clientMode=function get_clientMode()
{
return this._clientMode
};
this.get_bindings=function get_bindings()
{
return this._bindings
};
this.get_settings=function get_settings()
{
return this._settings
};
this.get_reason=function get_reason()
{
return this._reason
};
this.get_osfControlType=function get_osfControlType()
{
return this._osfControlType
};
this.get_eToken=function get_eToken()
{
return this._eToken
};
this.get_correlationId=function get_correlationId()
{
return this._correlationId
};
this.get_appInstanceId=function get_appInstanceId()
{
return this._appInstanceId
};
this.get_touchEnabled=function get_touchEnabled()
{
return this._touchEnabled
};
this.get_commerceAllowed=function get_commerceAllowed()
{
return this._commerceAllowed
};
this.get_appMinorVersion=function get_appMinorVersion()
{
return this._appMinorVersion
};
this.get_requirementMatrix=function get_requirementMatrix()
{
return this._requirementMatrix
};
this.get_isDialog=function get_isDialog()
{
return this._isDialog
}
};
OSF.OsfControlType={
DocumentLevel: 0,
ContainerLevel: 1
};
OSF.ClientMode={
ReadOnly: 0,
ReadWrite: 1
};
OSF.OUtil.setNamespace("Microsoft",window);
OSF.OUtil.setNamespace("Office",Microsoft);
OSF.OUtil.setNamespace("Client",Microsoft.Office);
OSF.OUtil.setNamespace("WebExtension",Microsoft.Office);
Microsoft.Office.WebExtension.InitializationReason={
Inserted: "inserted",
DocumentOpened: "documentOpened"
};
Microsoft.Office.WebExtension.ValueFormat={
Unformatted: "unformatted",
Formatted: "formatted"
};
Microsoft.Office.WebExtension.FilterType={All: "all"};
Microsoft.Office.WebExtension.Parameters={
BindingType: "bindingType",
CoercionType: "coercionType",
ValueFormat: "valueFormat",
FilterType: "filterType",
Columns: "columns",
SampleData: "sampleData",
GoToType: "goToType",
SelectionMode: "selectionMode",
Id: "id",
PromptText: "promptText",
ItemName: "itemName",
FailOnCollision: "failOnCollision",
StartRow: "startRow",
StartColumn: "startColumn",
RowCount: "rowCount",
ColumnCount: "columnCount",
Callback: "callback",
AsyncContext: "asyncContext",
Data: "data",
Rows: "rows",
OverwriteIfStale: "overwriteIfStale",
FileType: "fileType",
EventType: "eventType",
Handler: "handler",
SliceSize: "sliceSize",
SliceIndex: "sliceIndex",
ActiveView: "activeView",
Status: "status",
Xml: "xml",
Namespace: "namespace",
Prefix: "prefix",
XPath: "xPath",
Text: "text",
ImageLeft: "imageLeft",
ImageTop: "imageTop",
ImageWidth: "imageWidth",
ImageHeight: "imageHeight",
TaskId: "taskId",
FieldId: "fieldId",
FieldValue: "fieldValue",
ServerUrl: "serverUrl",
ListName: "listName",
ResourceId: "resourceId",
ViewType: "viewType",
ViewName: "viewName",
GetRawValue: "getRawValue",
CellFormat: "cellFormat",
TableOptions: "tableOptions",
TaskIndex: "taskIndex",
ResourceIndex: "resourceIndex",
Url: "url",
MessageHandler: "messageHandler",
Width: "width",
Height: "height",
RequireHTTPs: "requireHTTPS",
MessageToParent: "messageToParent",
XFrameDenySafe: "xFrameDenySafe"
};
OSF.OUtil.setNamespace("DDA",OSF);
OSF.DDA.DocumentMode={
ReadOnly: 1,
ReadWrite: 0
};
OSF.DDA.PropertyDescriptors={AsyncResultStatus: "AsyncResultStatus"};
OSF.DDA.EventDescriptors={};
OSF.DDA.ListDescriptors={};
OSF.DDA.UI={};
OSF.DDA.getXdmEventName=function OSF_DDA$GetXdmEventName(bindingId, eventType)
{
if(eventType==Microsoft.Office.WebExtension.EventType.BindingSelectionChanged || eventType==Microsoft.Office.WebExtension.EventType.BindingDataChanged)
return bindingId+"_"+eventType;
else
return eventType
};
OSF.DDA.MethodDispId={
dispidMethodMin: 64,
dispidGetSelectedDataMethod: 64,
dispidSetSelectedDataMethod: 65,
dispidAddBindingFromSelectionMethod: 66,
dispidAddBindingFromPromptMethod: 67,
dispidGetBindingMethod: 68,
dispidReleaseBindingMethod: 69,
dispidGetBindingDataMethod: 70,
dispidSetBindingDataMethod: 71,
dispidAddRowsMethod: 72,
dispidClearAllRowsMethod: 73,
dispidGetAllBindingsMethod: 74,
dispidLoadSettingsMethod: 75,
dispidSaveSettingsMethod: 76,
dispidGetDocumentCopyMethod: 77,
dispidAddBindingFromNamedItemMethod: 78,
dispidAddColumnsMethod: 79,
dispidGetDocumentCopyChunkMethod: 80,
dispidReleaseDocumentCopyMethod: 81,
dispidNavigateToMethod: 82,
dispidGetActiveViewMethod: 83,
dispidGetDocumentThemeMethod: 84,
dispidGetOfficeThemeMethod: 85,
dispidGetFilePropertiesMethod: 86,
dispidClearFormatsMethod: 87,
dispidSetTableOptionsMethod: 88,
dispidSetFormatsMethod: 89,
dispidExecuteRichApiRequestMethod: 93,
dispidAppCommandInvocationCompletedMethod: 94,
dispidAddDataPartMethod: 128,
dispidGetDataPartByIdMethod: 129,
dispidGetDataPartsByNamespaceMethod: 130,
dispidGetDataPartXmlMethod: 131,
dispidGetDataPartNodesMethod: 132,
dispidDeleteDataPartMethod: 133,
dispidGetDataNodeValueMethod: 134,
dispidGetDataNodeXmlMethod: 135,
dispidGetDataNodesMethod: 136,
dispidSetDataNodeValueMethod: 137,
dispidSetDataNodeXmlMethod: 138,
dispidAddDataNamespaceMethod: 139,
dispidGetDataUriByPrefixMethod: 140,
dispidGetDataPrefixByUriMethod: 141,
dispidGetDataNodeTextMethod: 142,
dispidSetDataNodeTextMethod: 143,
dispidMethodMax: 143,
dispidGetSelectedTaskMethod: 110,
dispidGetSelectedResourceMethod: 111,
dispidGetTaskMethod: 112,
dispidGetResourceFieldMethod: 113,
dispidGetWSSUrlMethod: 114,
dispidGetTaskFieldMethod: 115,
dispidGetProjectFieldMethod: 116,
dispidGetSelectedViewMethod: 117,
dispidGetTaskByIndexMethod: 118,
dispidGetResourceByIndexMethod: 119,
dispidSetTaskFieldMethod: 120,
dispidSetResourceFieldMethod: 121,
dispidGetMaxTaskIndexMethod: 122,
dispidGetMaxResourceIndexMethod: 123,
dispidMessageParentMethod: 900
};
OSF.DDA.EventDispId={
dispidEventMin: 0,
dispidInitializeEvent: 0,
dispidSettingsChangedEvent: 1,
dispidDocumentSelectionChangedEvent: 2,
dispidBindingSelectionChangedEvent: 3,
dispidBindingDataChangedEvent: 4,
dispidDocumentOpenEvent: 5,
dispidDocumentCloseEvent: 6,
dispidActiveViewChangedEvent: 7,
dispidDocumentThemeChangedEvent: 8,
dispidOfficeThemeChangedEvent: 9,
dispidDialogMessageReceivedEvent: 10,
dispidActivationStatusChangedEvent: 32,
dispidAppCommandInvokedEvent: 39,
dispidTaskSelectionChangedEvent: 56,
dispidResourceSelectionChangedEvent: 57,
dispidViewSelectionChangedEvent: 58,
dispidDataNodeAddedEvent: 60,
dispidDataNodeReplacedEvent: 61,
dispidDataNodeDeletedEvent: 62,
dispidEventMax: 63
};
OSF.DDA.ErrorCodeManager=function()
{
var _errorMappings={};
return{
getErrorArgs: function OSF_DDA_ErrorCodeManager$getErrorArgs(errorCode)
{
var errorArgs=_errorMappings[errorCode];
if(!errorArgs)
errorArgs=_errorMappings[this.errorCodes.ooeInternalError];
if(!errorArgs.name)
errorArgs.name=_errorMappings[this.errorCodes.ooeInternalError].name;
if(!errorArgs.message)
errorArgs.message=_errorMappings[this.errorCodes.ooeInternalError].message;
return errorArgs
},
addErrorMessage: function OSF_DDA_ErrorCodeManager$addErrorMessage(errorCode, errorNameMessage)
{
_errorMappings[errorCode]=errorNameMessage
},
errorCodes: {
ooeSuccess: 0,
ooeChunkResult: 1,
ooeCoercionTypeNotSupported: 1e3,
ooeGetSelectionNotMatchDataType: 1001,
ooeCoercionTypeNotMatchBinding: 1002,
ooeInvalidGetRowColumnCounts: 1003,
ooeSelectionNotSupportCoercionType: 1004,
ooeInvalidGetStartRowColumn: 1005,
ooeNonUniformPartialGetNotSupported: 1006,
ooeGetDataIsTooLarge: 1008,
ooeFileTypeNotSupported: 1009,
ooeGetDataParametersConflict: 1010,
ooeInvalidGetColumns: 1011,
ooeInvalidGetRows: 1012,
ooeInvalidReadForBlankRow: 1013,
ooeUnsupportedDataObject: 2e3,
ooeCannotWriteToSelection: 2001,
ooeDataNotMatchSelection: 2002,
ooeOverwriteWorksheetData: 2003,
ooeDataNotMatchBindingSize: 2004,
ooeInvalidSetStartRowColumn: 2005,
ooeInvalidDataFormat: 2006,
ooeDataNotMatchCoercionType: 2007,
ooeDataNotMatchBindingType: 2008,
ooeSetDataIsTooLarge: 2009,
ooeNonUniformPartialSetNotSupported: 2010,
ooeInvalidSetColumns: 2011,
ooeInvalidSetRows: 2012,
ooeSetDataParametersConflict: 2013,
ooeCellDataAmountBeyondLimits: 2014,
ooeSelectionCannotBound: 3e3,
ooeBindingNotExist: 3002,
ooeBindingToMultipleSelection: 3003,
ooeInvalidSelectionForBindingType: 3004,
ooeOperationNotSupportedOnThisBindingType: 3005,
ooeNamedItemNotFound: 3006,
ooeMultipleNamedItemFound: 3007,
ooeInvalidNamedItemForBindingType: 3008,
ooeUnknownBindingType: 3009,
ooeOperationNotSupportedOnMatrixData: 3010,
ooeInvalidColumnsForBinding: 3011,
ooeSettingNameNotExist: 4e3,
ooeSettingsCannotSave: 4001,
ooeSettingsAreStale: 4002,
ooeOperationNotSupported: 5e3,
ooeInternalError: 5001,
ooeDocumentReadOnly: 5002,
ooeEventHandlerNotExist: 5003,
ooeInvalidApiCallInContext: 5004,
ooeShuttingDown: 5005,
ooeUnsupportedEnumeration: 5007,
ooeIndexOutOfRange: 5008,
ooeBrowserAPINotSupported: 5009,
ooeInvalidParam: 5010,
ooeRequestTimeout: 5011,
ooeTooManyIncompleteRequests: 5100,
ooeRequestTokenUnavailable: 5101,
ooeActivityLimitReached: 5102,
ooeCustomXmlNodeNotFound: 6e3,
ooeCustomXmlError: 6100,
ooeCustomXmlExceedQuota: 6101,
ooeCustomXmlOutOfDate: 6102,
ooeNoCapability: 7e3,
ooeCannotNavTo: 7001,
ooeSpecifiedIdNotExist: 7002,
ooeNavOutOfBound: 7004,
ooeElementMissing: 8e3,
ooeProtectedError: 8001,
ooeInvalidCellsValue: 8010,
ooeInvalidTableOptionValue: 8011,
ooeInvalidFormatValue: 8012,
ooeRowIndexOutOfRange: 8020,
ooeColIndexOutOfRange: 8021,
ooeFormatValueOutOfRange: 8022,
ooeCellFormatAmountBeyondLimits: 8023,
ooeMemoryFileLimit: 11e3,
ooeNetworkProblemRetrieveFile: 11001,
ooeInvalidSliceSize: 11002,
ooeInvalidCallback: 11101,
ooeInvalidWidth: 12e3,
ooeInvalidHeight: 12001,
ooeNavigationError: 12002,
ooeInvalidScheme: 12003,
ooeAppDomains: 12004,
ooeRequireHTTPS: 12005,
ooeWebDialogClosed: 12006,
ooeDialogAlreadyOpened: 12007
},
initializeErrorMessages: function OSF_DDA_ErrorCodeManager$initializeErrorMessages(stringNS)
{
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCoercionTypeNotSupported]={
name: stringNS.L_InvalidCoercion,
message: stringNS.L_CoercionTypeNotSupported
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeGetSelectionNotMatchDataType]={
name: stringNS.L_DataReadError,
message: stringNS.L_GetSelectionNotSupported
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCoercionTypeNotMatchBinding]={
name: stringNS.L_InvalidCoercion,
message: stringNS.L_CoercionTypeNotMatchBinding
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidGetRowColumnCounts]={
name: stringNS.L_DataReadError,
message: stringNS.L_InvalidGetRowColumnCounts
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeSelectionNotSupportCoercionType]={
name: stringNS.L_DataReadError,
message: stringNS.L_SelectionNotSupportCoercionType
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidGetStartRowColumn]={
name: stringNS.L_DataReadError,
message: stringNS.L_InvalidGetStartRowColumn
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeNonUniformPartialGetNotSupported]={
name: stringNS.L_DataReadError,
message: stringNS.L_NonUniformPartialGetNotSupported
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeGetDataIsTooLarge]={
name: stringNS.L_DataReadError,
message: stringNS.L_GetDataIsTooLarge
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeFileTypeNotSupported]={
name: stringNS.L_DataReadError,
message: stringNS.L_FileTypeNotSupported
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeGetDataParametersConflict]={
name: stringNS.L_DataReadError,
message: stringNS.L_GetDataParametersConflict
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidGetColumns]={
name: stringNS.L_DataReadError,
message: stringNS.L_InvalidGetColumns
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidGetRows]={
name: stringNS.L_DataReadError,
message: stringNS.L_InvalidGetRows
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidReadForBlankRow]={
name: stringNS.L_DataReadError,
message: stringNS.L_InvalidReadForBlankRow
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeUnsupportedDataObject]={
name: stringNS.L_DataWriteError,
message: stringNS.L_UnsupportedDataObject
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCannotWriteToSelection]={
name: stringNS.L_DataWriteError,
message: stringNS.L_CannotWriteToSelection
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeDataNotMatchSelection]={
name: stringNS.L_DataWriteError,
message: stringNS.L_DataNotMatchSelection
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeOverwriteWorksheetData]={
name: stringNS.L_DataWriteError,
message: stringNS.L_OverwriteWorksheetData
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeDataNotMatchBindingSize]={
name: stringNS.L_DataWriteError,
message: stringNS.L_DataNotMatchBindingSize
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidSetStartRowColumn]={
name: stringNS.L_DataWriteError,
message: stringNS.L_InvalidSetStartRowColumn
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidDataFormat]={
name: stringNS.L_InvalidFormat,
message: stringNS.L_InvalidDataFormat
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeDataNotMatchCoercionType]={
name: stringNS.L_InvalidDataObject,
message: stringNS.L_DataNotMatchCoercionType
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeDataNotMatchBindingType]={
name: stringNS.L_InvalidDataObject,
message: stringNS.L_DataNotMatchBindingType
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeSetDataIsTooLarge]={
name: stringNS.L_DataWriteError,
message: stringNS.L_SetDataIsTooLarge
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeNonUniformPartialSetNotSupported]={
name: stringNS.L_DataWriteError,
message: stringNS.L_NonUniformPartialSetNotSupported
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidSetColumns]={
name: stringNS.L_DataWriteError,
message: stringNS.L_InvalidSetColumns
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidSetRows]={
name: stringNS.L_DataWriteError,
message: stringNS.L_InvalidSetRows
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeSetDataParametersConflict]={
name: stringNS.L_DataWriteError,
message: stringNS.L_SetDataParametersConflict
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeSelectionCannotBound]={
name: stringNS.L_BindingCreationError,
message: stringNS.L_SelectionCannotBound
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeBindingNotExist]={
name: stringNS.L_InvalidBindingError,
message: stringNS.L_BindingNotExist
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeBindingToMultipleSelection]={
name: stringNS.L_BindingCreationError,
message: stringNS.L_BindingToMultipleSelection
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidSelectionForBindingType]={
name: stringNS.L_BindingCreationError,
message: stringNS.L_InvalidSelectionForBindingType
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeOperationNotSupportedOnThisBindingType]={
name: stringNS.L_InvalidBindingOperation,
message: stringNS.L_OperationNotSupportedOnThisBindingType
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeNamedItemNotFound]={
name: stringNS.L_BindingCreationError,
message: stringNS.L_NamedItemNotFound
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeMultipleNamedItemFound]={
name: stringNS.L_BindingCreationError,
message: stringNS.L_MultipleNamedItemFound
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidNamedItemForBindingType]={
name: stringNS.L_BindingCreationError,
message: stringNS.L_InvalidNamedItemForBindingType
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeUnknownBindingType]={
name: stringNS.L_InvalidBinding,
message: stringNS.L_UnknownBindingType
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeOperationNotSupportedOnMatrixData]={
name: stringNS.L_InvalidBindingOperation,
message: stringNS.L_OperationNotSupportedOnMatrixData
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidColumnsForBinding]={
name: stringNS.L_InvalidBinding,
message: stringNS.L_InvalidColumnsForBinding
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeSettingNameNotExist]={
name: stringNS.L_ReadSettingsError,
message: stringNS.L_SettingNameNotExist
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeSettingsCannotSave]={
name: stringNS.L_SaveSettingsError,
message: stringNS.L_SettingsCannotSave
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeSettingsAreStale]={
name: stringNS.L_SettingsStaleError,
message: stringNS.L_SettingsAreStale
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeOperationNotSupported]={
name: stringNS.L_HostError,
message: stringNS.L_OperationNotSupported
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError]={
name: stringNS.L_InternalError,
message: stringNS.L_InternalErrorDescription
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeDocumentReadOnly]={
name: stringNS.L_PermissionDenied,
message: stringNS.L_DocumentReadOnly
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeEventHandlerNotExist]={
name: stringNS.L_EventRegistrationError,
message: stringNS.L_EventHandlerNotExist
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidApiCallInContext]={
name: stringNS.L_InvalidAPICall,
message: stringNS.L_InvalidApiCallInContext
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeShuttingDown]={
name: stringNS.L_ShuttingDown,
message: stringNS.L_ShuttingDown
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeUnsupportedEnumeration]={
name: stringNS.L_UnsupportedEnumeration,
message: stringNS.L_UnsupportedEnumerationMessage
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeIndexOutOfRange]={
name: stringNS.L_IndexOutOfRange,
message: stringNS.L_IndexOutOfRange
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeBrowserAPINotSupported]={
name: stringNS.L_APINotSupported,
message: stringNS.L_BrowserAPINotSupported
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeRequestTimeout]={
name: stringNS.L_APICallFailed,
message: stringNS.L_RequestTimeout
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeTooManyIncompleteRequests]={
name: stringNS.L_APICallFailed,
message: stringNS.L_TooManyIncompleteRequests
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeRequestTokenUnavailable]={
name: stringNS.L_APICallFailed,
message: stringNS.L_RequestTokenUnavailable
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeActivityLimitReached]={
name: stringNS.L_APICallFailed,
message: stringNS.L_ActivityLimitReached
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCustomXmlNodeNotFound]={
name: stringNS.L_InvalidNode,
message: stringNS.L_CustomXmlNodeNotFound
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCustomXmlError]={
name: stringNS.L_CustomXmlError,
message: stringNS.L_CustomXmlError
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCustomXmlExceedQuota]={
name: stringNS.L_CustomXmlError,
message: stringNS.L_CustomXmlError
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCustomXmlOutOfDate]={
name: stringNS.L_CustomXmlError,
message: stringNS.L_CustomXmlError
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeNoCapability]={
name: stringNS.L_PermissionDenied,
message: stringNS.L_NoCapability
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCannotNavTo]={
name: stringNS.L_CannotNavigateTo,
message: stringNS.L_CannotNavigateTo
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeSpecifiedIdNotExist]={
name: stringNS.L_SpecifiedIdNotExist,
message: stringNS.L_SpecifiedIdNotExist
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeNavOutOfBound]={
name: stringNS.L_NavOutOfBound,
message: stringNS.L_NavOutOfBound
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCellDataAmountBeyondLimits]={
name: stringNS.L_DataWriteReminder,
message: stringNS.L_CellDataAmountBeyondLimits
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeElementMissing]={
name: stringNS.L_MissingParameter,
message: stringNS.L_ElementMissing
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeProtectedError]={
name: stringNS.L_PermissionDenied,
message: stringNS.L_NoCapability
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidCellsValue]={
name: stringNS.L_InvalidValue,
message: stringNS.L_InvalidCellsValue
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidTableOptionValue]={
name: stringNS.L_InvalidValue,
message: stringNS.L_InvalidTableOptionValue
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidFormatValue]={
name: stringNS.L_InvalidValue,
message: stringNS.L_InvalidFormatValue
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeRowIndexOutOfRange]={
name: stringNS.L_OutOfRange,
message: stringNS.L_RowIndexOutOfRange
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeColIndexOutOfRange]={
name: stringNS.L_OutOfRange,
message: stringNS.L_ColIndexOutOfRange
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeFormatValueOutOfRange]={
name: stringNS.L_OutOfRange,
message: stringNS.L_FormatValueOutOfRange
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCellFormatAmountBeyondLimits]={
name: stringNS.L_FormattingReminder,
message: stringNS.L_CellFormatAmountBeyondLimits
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeMemoryFileLimit]={
name: stringNS.L_MemoryLimit,
message: stringNS.L_CloseFileBeforeRetrieve
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeNetworkProblemRetrieveFile]={
name: stringNS.L_NetworkProblem,
message: stringNS.L_NetworkProblemRetrieveFile
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidSliceSize]={
name: stringNS.L_InvalidValue,
message: stringNS.L_SliceSizeNotSupported
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeDialogAlreadyOpened]={
name: stringNS.L_DisplayDialogError,
message: stringNS.L_DialogAlreadyOpened
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidWidth]={
name: stringNS.L_IndexOutOfRange,
message: stringNS.L_IndexOutOfRange
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidHeight]={
name: stringNS.L_IndexOutOfRange,
message: stringNS.L_IndexOutOfRange
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeNavigationError]={
name: stringNS.L_DisplayDialogError,
message: stringNS.L_NetworkProblem
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidScheme]={
name: stringNS.L_DialogNavigateError,
message: stringNS.L_DialogAddressNotTrusted
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeAppDomains]={
name: stringNS.L_DisplayDialogError,
message: stringNS.L_DialogAddressNotTrusted
};
_errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeRequireHTTPS]={
name: stringNS.L_DisplayDialogError,
message: stringNS.L_DialogAddressNotTrusted
}
}
}
}();
var OfficeExt;
(function(OfficeExt)
{
var Requirement;
(function(Requirement)
{
var RequirementMatrix=function()
{
function RequirementMatrix(_setMap)
{
this.isSetSupported=function _isSetSupported(name, minVersion)
{
if(name==undefined)
return false;
if(minVersion==undefined)
minVersion=0;
var setSupportArray=this._setMap;
var sets=setSupportArray._sets;
if(sets.hasOwnProperty(name.toLowerCase()))
{
var setMaxVersion=sets[name.toLowerCase()];
return setMaxVersion > 0 && setMaxVersion >=minVersion
}
else
return false
};
this._setMap=_setMap
}
return RequirementMatrix
}();
Requirement.RequirementMatrix=RequirementMatrix;
var DefaultSetRequirement=function()
{
function DefaultSetRequirement(setMap)
{
this._addSetMap=function DefaultSetRequirement_addSetMap(addedSet)
{
for(var name in addedSet)
this._sets[name]=addedSet[name]
};
this._sets=setMap
}
return DefaultSetRequirement
}();
Requirement.DefaultSetRequirement=DefaultSetRequirement;
var ExcelClientDefaultSetRequirement=function(_super)
{
__extends(ExcelClientDefaultSetRequirement,_super);
function ExcelClientDefaultSetRequirement()
{
_super.call(this,{
bindingevents: 1.1,
documentevents: 1.1,
excelapi: 1.1,
matrixbindings: 1.1,
matrixcoercion: 1.1,
selection: 1.1,
settings: 1.1,
tablebindings: 1.1,
tablecoercion: 1.1,
textbindings: 1.1,
textcoercion: 1.1
})
}
return ExcelClientDefaultSetRequirement
}(DefaultSetRequirement);
Requirement.ExcelClientDefaultSetRequirement=ExcelClientDefaultSetRequirement;
var ExcelClientV1DefaultSetRequirement=function(_super)
{
__extends(ExcelClientV1DefaultSetRequirement,_super);
function ExcelClientV1DefaultSetRequirement()
{
_super.call(this);
this._addSetMap({imagecoercion: 1.1})
}
return ExcelClientV1DefaultSetRequirement
}(ExcelClientDefaultSetRequirement);
Requirement.ExcelClientV1DefaultSetRequirement=ExcelClientV1DefaultSetRequirement;
var OutlookClientDefaultSetRequirement=function(_super)
{
__extends(OutlookClientDefaultSetRequirement,_super);
function OutlookClientDefaultSetRequirement()
{
_super.call(this,{mailbox: 1.3})
}
return OutlookClientDefaultSetRequirement
}(DefaultSetRequirement);
Requirement.OutlookClientDefaultSetRequirement=OutlookClientDefaultSetRequirement;
var WordClientDefaultSetRequirement=function(_super)
{
__extends(WordClientDefaultSetRequirement,_super);
function WordClientDefaultSetRequirement()
{
_super.call(this,{
bindingevents: 1.1,
compressedfile: 1.1,
customxmlparts: 1.1,
documentevents: 1.1,
file: 1.1,
htmlcoercion: 1.1,
matrixbindings: 1.1,
matrixcoercion: 1.1,
ooxmlcoercion: 1.1,
pdffile: 1.1,
selection: 1.1,
settings: 1.1,
tablebindings: 1.1,
tablecoercion: 1.1,
textbindings: 1.1,
textcoercion: 1.1,
textfile: 1.1,
wordapi: 1.1
})
}
return WordClientDefaultSetRequirement
}(DefaultSetRequirement);
Requirement.WordClientDefaultSetRequirement=WordClientDefaultSetRequirement;
var WordClientV1DefaultSetRequirement=function(_super)
{
__extends(WordClientV1DefaultSetRequirement,_super);
function WordClientV1DefaultSetRequirement()
{
_super.call(this);
this._addSetMap({
customxmlparts: 1.2,
wordapi: 1.2,
imagecoercion: 1.1
})
}
return WordClientV1DefaultSetRequirement
}(WordClientDefaultSetRequirement);
Requirement.WordClientV1DefaultSetRequirement=WordClientV1DefaultSetRequirement;
var PowerpointClientDefaultSetRequirement=function(_super)
{
__extends(PowerpointClientDefaultSetRequirement,_super);
function PowerpointClientDefaultSetRequirement()
{
_super.call(this,{
activeview: 1.1,
compressedfile: 1.1,
documentevents: 1.1,
file: 1.1,
pdffile: 1.1,
selection: 1.1,
settings: 1.1,
textcoercion: 1.1
})
}
return PowerpointClientDefaultSetRequirement
}(DefaultSetRequirement);
Requirement.PowerpointClientDefaultSetRequirement=PowerpointClientDefaultSetRequirement;
var PowerpointClientV1DefaultSetRequirement=function(_super)
{
__extends(PowerpointClientV1DefaultSetRequirement,_super);
function PowerpointClientV1DefaultSetRequirement()
{
_super.call(this);
this._addSetMap({imagecoercion: 1.1})
}
return PowerpointClientV1DefaultSetRequirement
}(PowerpointClientDefaultSetRequirement);
Requirement.PowerpointClientV1DefaultSetRequirement=PowerpointClientV1DefaultSetRequirement;
var ProjectClientDefaultSetRequirement=function(_super)
{
__extends(ProjectClientDefaultSetRequirement,_super);
function ProjectClientDefaultSetRequirement()
{
_super.call(this,{
selection: 1.1,
textcoercion: 1.1
})
}
return ProjectClientDefaultSetRequirement
}(DefaultSetRequirement);
Requirement.ProjectClientDefaultSetRequirement=ProjectClientDefaultSetRequirement;
var ExcelWebDefaultSetRequirement=function(_super)
{
__extends(ExcelWebDefaultSetRequirement,_super);
function ExcelWebDefaultSetRequirement()
{
_super.call(this,{
bindingevents: 1.1,
documentevents: 1.1,
matrixbindings: 1.1,
matrixcoercion: 1.1,
selection: 1.1,
settings: 1.1,
tablebindings: 1.1,
tablecoercion: 1.1,
textbindings: 1.1,
textcoercion: 1.1,
file: 1.1
})
}
return ExcelWebDefaultSetRequirement
}(DefaultSetRequirement);
Requirement.ExcelWebDefaultSetRequirement=ExcelWebDefaultSetRequirement;
var WordWebDefaultSetRequirement=function(_super)
{
__extends(WordWebDefaultSetRequirement,_super);
function WordWebDefaultSetRequirement()
{
_super.call(this,{
customxmlparts: 1.1,
documentevents: 1.1,
file: 1.1,
ooxmlcoercion: 1.1,
selection: 1.1,
settings: 1.1,
textcoercion: 1.1
})
}
return WordWebDefaultSetRequirement
}(DefaultSetRequirement);
Requirement.WordWebDefaultSetRequirement=WordWebDefaultSetRequirement;
var PowerpointWebDefaultSetRequirement=function(_super)
{
__extends(PowerpointWebDefaultSetRequirement,_super);
function PowerpointWebDefaultSetRequirement()
{
_super.call(this,{
activeview: 1.1,
settings: 1.1
})
}
return PowerpointWebDefaultSetRequirement
}(DefaultSetRequirement);
Requirement.PowerpointWebDefaultSetRequirement=PowerpointWebDefaultSetRequirement;
var OutlookWebDefaultSetRequirement=function(_super)
{
__extends(OutlookWebDefaultSetRequirement,_super);
function OutlookWebDefaultSetRequirement()
{
_super.call(this,{mailbox: 1.3})
}
return OutlookWebDefaultSetRequirement
}(DefaultSetRequirement);
Requirement.OutlookWebDefaultSetRequirement=OutlookWebDefaultSetRequirement;
var SwayWebDefaultSetRequirement=function(_super)
{
__extends(SwayWebDefaultSetRequirement,_super);
function SwayWebDefaultSetRequirement()
{
_super.call(this,{
activeview: 1.1,
documentevents: 1.1,
selection: 1.1,
settings: 1.1,
textcoercion: 1.1
})
}
return SwayWebDefaultSetRequirement
}(DefaultSetRequirement);
Requirement.SwayWebDefaultSetRequirement=SwayWebDefaultSetRequirement;
var AccessWebDefaultSetRequirement=function(_super)
{
__extends(AccessWebDefaultSetRequirement,_super);
function AccessWebDefaultSetRequirement()
{
_super.call(this,{
bindingevents: 1.1,
partialtablebindings: 1.1,
settings: 1.1,
tablebindings: 1.1,
tablecoercion: 1.1
})
}
return AccessWebDefaultSetRequirement
}(DefaultSetRequirement);
Requirement.AccessWebDefaultSetRequirement=AccessWebDefaultSetRequirement;
var ExcelIOSDefaultSetRequirement=function(_super)
{
__extends(ExcelIOSDefaultSetRequirement,_super);
function ExcelIOSDefaultSetRequirement()
{
_super.call(this,{
bindingevents: 1.1,
documentevents: 1.1,
matrixbindings: 1.1,
matrixcoercion: 1.1,
selection: 1.1,
settings: 1.1,
tablebindings: 1.1,
tablecoercion: 1.1,
textbindings: 1.1,
textcoercion: 1.1
})
}
return ExcelIOSDefaultSetRequirement
}(DefaultSetRequirement);
Requirement.ExcelIOSDefaultSetRequirement=ExcelIOSDefaultSetRequirement;
var WordIOSDefaultSetRequirement=function(_super)
{
__extends(WordIOSDefaultSetRequirement,_super);
function WordIOSDefaultSetRequirement()
{
_super.call(this,{
bindingevents: 1.1,
compressedfile: 1.1,
customxmlparts: 1.1,
documentevents: 1.1,
file: 1.1,
htmlcoercion: 1.1,
matrixbindings: 1.1,
matrixcoercion: 1.1,
ooxmlcoercion: 1.1,
pdffile: 1.1,
selection: 1.1,
settings: 1.1,
tablebindings: 1.1,
tablecoercion: 1.1,
textbindings: 1.1,
textcoercion: 1.1,
textfile: 1.1
})
}
return WordIOSDefaultSetRequirement
}(DefaultSetRequirement);
Requirement.WordIOSDefaultSetRequirement=WordIOSDefaultSetRequirement;
var WordIOSV1DefaultSetRequirement=function(_super)
{
__extends(WordIOSV1DefaultSetRequirement,_super);
function WordIOSV1DefaultSetRequirement()
{
_super.call(this);
this._addSetMap({
customxmlparts: 1.2,
wordapi: 1.2
})
}
return WordIOSV1DefaultSetRequirement
}(WordIOSDefaultSetRequirement);
Requirement.WordIOSV1DefaultSetRequirement=WordIOSV1DefaultSetRequirement;
var PowerpointIOSDefaultSetRequirement=function(_super)
{
__extends(PowerpointIOSDefaultSetRequirement,_super);
function PowerpointIOSDefaultSetRequirement()
{
_super.call(this,{
activeview: 1.1,
compressedfile: 1.1,
documentevents: 1.1,
file: 1.1,
pdffile: 1.1,
selection: 1.1,
settings: 1.1,
textcoercion: 1.1
})
}
return PowerpointIOSDefaultSetRequirement
}(DefaultSetRequirement);
Requirement.PowerpointIOSDefaultSetRequirement=PowerpointIOSDefaultSetRequirement;
var OutlookIOSDefaultSetRequirement=function(_super)
{
__extends(OutlookIOSDefaultSetRequirement,_super);
function OutlookIOSDefaultSetRequirement()
{
_super.call(this,{mailbox: 1.1})
}
return OutlookIOSDefaultSetRequirement
}(DefaultSetRequirement);
Requirement.OutlookIOSDefaultSetRequirement=OutlookIOSDefaultSetRequirement;
var RequirementsMatrixFactory=function()
{
function RequirementsMatrixFactory(){}
RequirementsMatrixFactory.initializeOsfDda=function()
{
OSF.OUtil.setNamespace("Requirement",OSF.DDA)
};
RequirementsMatrixFactory.getDefaultRequirementMatrix=function(appContext)
{
this.initializeDefaultSetMatrix();
var defaultRequirementMatrix=undefined;
var clientRequirement=appContext.get_requirementMatrix();
if(clientRequirement !=undefined && clientRequirement.length > 0 && typeof JSON !=="undefined")
{
var matrixItem=JSON.parse(appContext.get_requirementMatrix().toLowerCase());
defaultRequirementMatrix=new RequirementMatrix(new DefaultSetRequirement(matrixItem))
}
else
{
var appLocator=RequirementsMatrixFactory.getClientFullVersionString(appContext);
if(RequirementsMatrixFactory.DefaultSetArrayMatrix !=undefined && RequirementsMatrixFactory.DefaultSetArrayMatrix[appLocator] !=undefined)
defaultRequirementMatrix=new RequirementMatrix(RequirementsMatrixFactory.DefaultSetArrayMatrix[appLocator]);
else
defaultRequirementMatrix=new RequirementMatrix(new DefaultSetRequirement({}))
}
return defaultRequirementMatrix
};
RequirementsMatrixFactory.getClientFullVersionString=function(appContext)
{
var appMinorVersion=appContext.get_appMinorVersion();
var appMinorVersionString="";
var appFullVersion="";
var appName=appContext.get_appName();
var isIOSClient=appName==1024 || appName==4096 || appName==8192 || appName==65536;
if(isIOSClient && appContext.get_appVersion()==1)
if(appName==4096 && appMinorVersion >=15)
appFullVersion="16.00.01";
else
appFullVersion="16.00";
else if(appContext.get_appName()==64)
appFullVersion=appContext.get_appVersion();
else
{
if(appMinorVersion < 10)
appMinorVersionString="0"+appMinorVersion;
else
appMinorVersionString=""+appMinorVersion;
appFullVersion=appContext.get_appVersion()+"."+appMinorVersionString
}
return appContext.get_appName()+"-"+appFullVersion
};
RequirementsMatrixFactory.initializeDefaultSetMatrix=function()
{
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Excel_RCLIENT_1600]=new ExcelClientDefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Word_RCLIENT_1600]=new WordClientDefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.PowerPoint_RCLIENT_1600]=new PowerpointClientDefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Excel_RCLIENT_1601]=new ExcelClientV1DefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Word_RCLIENT_1601]=new WordClientV1DefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.PowerPoint_RCLIENT_1601]=new PowerpointClientV1DefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Outlook_RCLIENT_1600]=new OutlookClientDefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Excel_WAC_1600]=new ExcelWebDefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Word_WAC_1600]=new WordWebDefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Outlook_WAC_1600]=new OutlookWebDefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Outlook_WAC_1601]=new OutlookWebDefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Project_RCLIENT_1600]=new ProjectClientDefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Access_WAC_1600]=new AccessWebDefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.PowerPoint_WAC_1600]=new PowerpointWebDefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Excel_IOS_1600]=new ExcelIOSDefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.SWAY_WAC_1600]=new SwayWebDefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Word_IOS_1600]=new WordIOSDefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Word_IOS_16001]=new WordIOSV1DefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.PowerPoint_IOS_1600]=new PowerpointIOSDefaultSetRequirement;
RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Outlook_IOS_1600]=new OutlookIOSDefaultSetRequirement
};
RequirementsMatrixFactory.Excel_RCLIENT_1600="1-16.00";
RequirementsMatrixFactory.Excel_RCLIENT_1601="1-16.01";
RequirementsMatrixFactory.Word_RCLIENT_1600="2-16.00";
RequirementsMatrixFactory.Word_RCLIENT_1601="2-16.01";
RequirementsMatrixFactory.PowerPoint_RCLIENT_1600="4-16.00";
RequirementsMatrixFactory.PowerPoint_RCLIENT_1601="4-16.01";
RequirementsMatrixFactory.Outlook_RCLIENT_1600="8-16.00";
RequirementsMatrixFactory.Excel_WAC_1600="16-16.00";
RequirementsMatrixFactory.Word_WAC_1600="32-16.00";
RequirementsMatrixFactory.Outlook_WAC_1600="64-16.00";
RequirementsMatrixFactory.Outlook_WAC_1601="64-16.01";
RequirementsMatrixFactory.Project_RCLIENT_1600="128-16.00";
RequirementsMatrixFactory.Access_WAC_1600="256-16.00";
RequirementsMatrixFactory.PowerPoint_WAC_1600="512-16.00";
RequirementsMatrixFactory.Excel_IOS_1600="1024-16.00";
RequirementsMatrixFactory.SWAY_WAC_1600="2048-16.00";
RequirementsMatrixFactory.Word_IOS_1600="4096-16.00";
RequirementsMatrixFactory.Word_IOS_16001="4096-16.00.01";
RequirementsMatrixFactory.PowerPoint_IOS_1600="8192-16.00";
RequirementsMatrixFactory.Outlook_IOS_1600="65536-16.00";
RequirementsMatrixFactory.DefaultSetArrayMatrix={};
return RequirementsMatrixFactory
}();
Requirement.RequirementsMatrixFactory=RequirementsMatrixFactory
})(Requirement=OfficeExt.Requirement || (OfficeExt.Requirement={}))
})(OfficeExt || (OfficeExt={}));
OfficeExt.Requirement.RequirementsMatrixFactory.initializeOsfDda();
Microsoft.Office.WebExtension.ApplicationMode={
WebEditor: "webEditor",
WebViewer: "webViewer",
Client: "client"
};
Microsoft.Office.WebExtension.DocumentMode={
ReadOnly: "readOnly",
ReadWrite: "readWrite"
};
OSF.NamespaceManager=function OSF_NamespaceManager()
{
var _userOffice;
var _useShortcut=false;
return{
enableShortcut: function OSF_NamespaceManager$enableShortcut()
{
if(!_useShortcut)
{
if(window.Office)
_userOffice=window.Office;
else
OSF.OUtil.setNamespace("Office",window);
window.Office=Microsoft.Office.WebExtension;
_useShortcut=true
}
},
disableShortcut: function OSF_NamespaceManager$disableShortcut()
{
if(_useShortcut)
{
if(_userOffice)
window.Office=_userOffice;
else
OSF.OUtil.unsetNamespace("Office",window);
_useShortcut=false
}
}
}
}();
OSF.NamespaceManager.enableShortcut();
Microsoft.Office.WebExtension.useShortNamespace=function Microsoft_Office_WebExtension_useShortNamespace(useShortcut)
{
if(useShortcut)
OSF.NamespaceManager.enableShortcut();
else
OSF.NamespaceManager.disableShortcut()
};
Microsoft.Office.WebExtension.select=function Microsoft_Office_WebExtension_select(str, errorCallback)
{
var promise;
if(str && typeof str=="string")
{
var index=str.indexOf("#");
if(index !=-1)
{
var op=str.substring(0,index);
var target=str.substring(index+1);
switch(op)
{
case"binding":
case"bindings":
if(target)
promise=new OSF.DDA.BindingPromise(target);
break
}
}
}
if(!promise)
{
if(errorCallback)
{
var callbackType=typeof errorCallback;
if(callbackType=="function")
{
var callArgs={};
callArgs[Microsoft.Office.WebExtension.Parameters.Callback]=errorCallback;
OSF.DDA.issueAsyncResult(callArgs,OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidApiCallInContext,OSF.DDA.ErrorCodeManager.getErrorArgs(OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidApiCallInContext))
}
else
throw OSF.OUtil.formatString(Strings.OfficeOM.L_CallbackNotAFunction,callbackType);
}
}
else
{
promise.onFail=errorCallback;
return promise
}
};
OSF.DDA.Context=function OSF_DDA_Context(officeAppContext, document, license, appOM, getOfficeTheme)
{
OSF.OUtil.defineEnumerableProperties(this,{
contentLanguage: {value: officeAppContext.get_dataLocale()},
displayLanguage: {value: officeAppContext.get_appUILocale()},
touchEnabled: {value: officeAppContext.get_touchEnabled()},
commerceAllowed: {value: officeAppContext.get_commerceAllowed()}
});
if(license)
OSF.OUtil.defineEnumerableProperty(this,"license",{value: license});
if(officeAppContext.ui)
OSF.OUtil.defineEnumerableProperty(this,"ui",{value: officeAppContext.ui});
if(!officeAppContext.get_isDialog())
{
if(document)
OSF.OUtil.defineEnumerableProperty(this,"document",{value: document});
if(appOM)
{
var displayName=appOM.displayName || "appOM";
delete appOM.displayName;
OSF.OUtil.defineEnumerableProperty(this,displayName,{value: appOM})
}
if(getOfficeTheme)
OSF.OUtil.defineEnumerableProperty(this,"officeTheme",{get: function()
{
return getOfficeTheme()
}});
var requirements=OfficeExt.Requirement.RequirementsMatrixFactory.getDefaultRequirementMatrix(officeAppContext);
OSF.OUtil.defineEnumerableProperty(this,"requirements",{value: requirements})
}
};
OSF.DDA.OutlookContext=function OSF_DDA_OutlookContext(appContext, settings, license, appOM, getOfficeTheme)
{
OSF.DDA.OutlookContext.uber.constructor.call(this,appContext,null,license,appOM,getOfficeTheme);
if(settings)
OSF.OUtil.defineEnumerableProperty(this,"roamingSettings",{value: settings})
};
OSF.OUtil.extend(OSF.DDA.OutlookContext,OSF.DDA.Context);
OSF.DDA.OutlookAppOm=function OSF_DDA_OutlookAppOm(appContext, window, appReady){};
OSF.DDA.Document=function OSF_DDA_Document(officeAppContext, settings)
{
var mode;
switch(officeAppContext.get_clientMode())
{
case OSF.ClientMode.ReadOnly:
mode=Microsoft.Office.WebExtension.DocumentMode.ReadOnly;
break;
case OSF.ClientMode.ReadWrite:
mode=Microsoft.Office.WebExtension.DocumentMode.ReadWrite;
break
}
if(settings)
OSF.OUtil.defineEnumerableProperty(this,"settings",{value: settings});
OSF.OUtil.defineMutableProperties(this,{
mode: {value: mode},
url: {value: officeAppContext.get_docUrl()}
})
};
OSF.DDA.JsomDocument=function OSF_DDA_JsomDocument(officeAppContext, bindingFacade, settings)
{
OSF.DDA.JsomDocument.uber.constructor.call(this,officeAppContext,settings);
if(bindingFacade)
OSF.OUtil.defineEnumerableProperty(this,"bindings",{get: function OSF_DDA_Document$GetBindings()
{
return bindingFacade
}});
var am=OSF.DDA.AsyncMethodNames;
OSF.DDA.DispIdHost.addAsyncMethods(this,[am.GetSelectedDataAsync,am.SetSelectedDataAsync]);
OSF.DDA.DispIdHost.addEventSupport(this,new OSF.EventDispatch([Microsoft.Office.WebExtension.EventType.DocumentSelectionChanged]))
};
OSF.OUtil.extend(OSF.DDA.JsomDocument,OSF.DDA.Document);
OSF.OUtil.defineEnumerableProperty(Microsoft.Office.WebExtension,"context",{get: function Microsoft_Office_WebExtension$GetContext()
{
var context;
if(OSF && OSF._OfficeAppFactory)
context=OSF._OfficeAppFactory.getContext();
return context
}});
OSF.DDA.License=function OSF_DDA_License(eToken)
{
OSF.OUtil.defineEnumerableProperty(this,"value",{value: eToken})
};
OSF.DDA.ApiMethodCall=function OSF_DDA_ApiMethodCall(requiredParameters, supportedOptions, privateStateCallbacks, checkCallArgs, displayName)
{
var requiredCount=requiredParameters.length;
var getInvalidParameterString=OSF.OUtil.delayExecutionAndCache(function()
{
return OSF.OUtil.formatString(Strings.OfficeOM.L_InvalidParameters,displayName)
});
this.verifyArguments=function OSF_DDA_ApiMethodCall$VerifyArguments(params, args)
{
for(var name in params)
{
var param=params[name];
var arg=args[name];
if(param["enum"])
switch(typeof arg)
{
case"string":
if(OSF.OUtil.listContainsValue(param["enum"],arg))
break;
case"undefined":
throw OSF.DDA.ErrorCodeManager.errorCodes.ooeUnsupportedEnumeration;
default:
throw getInvalidParameterString();
}
if(param["types"])
if(!OSF.OUtil.listContainsValue(param["types"],typeof arg))
throw getInvalidParameterString();
}
};
this.extractRequiredArguments=function OSF_DDA_ApiMethodCall$ExtractRequiredArguments(userArgs, caller, stateInfo)
{
if(userArgs.length < requiredCount)
throw OsfMsAjaxFactory.msAjaxError.parameterCount(Strings.OfficeOM.L_MissingRequiredArguments);
var requiredArgs=[];
var index;
for(index=0; index < requiredCount; index++)
requiredArgs.push(userArgs[index]);
this.verifyArguments(requiredParameters,requiredArgs);
var ret={};
for(index=0; index < requiredCount; index++)
{
var param=requiredParameters[index];
var arg=requiredArgs[index];
if(param.verify)
{
var isValid=param.verify(arg,caller,stateInfo);
if(!isValid)
throw getInvalidParameterString();
}
ret[param.name]=arg
}
return ret
},this.fillOptions=function OSF_DDA_ApiMethodCall$FillOptions(options, requiredArgs, caller, stateInfo)
{
options=options || {};
for(var optionName in supportedOptions)
if(!OSF.OUtil.listContainsKey(options,optionName))
{
var value=undefined;
var option=supportedOptions[optionName];
if(option.calculate && requiredArgs)
value=option.calculate(requiredArgs,caller,stateInfo);
if(!value && option.defaultValue !==undefined)
value=option.defaultValue;
options[optionName]=value
}
return options
};
this.constructCallArgs=function OSF_DAA_ApiMethodCall$ConstructCallArgs(required, options, caller, stateInfo)
{
var callArgs={};
for(var r in required)
callArgs[r]=required[r];
for(var o in options)
callArgs[o]=options[o];
for(var s in privateStateCallbacks)
callArgs[s]=privateStateCallbacks[s](caller,stateInfo);
if(checkCallArgs)
callArgs=checkCallArgs(callArgs,caller,stateInfo);
return callArgs
}
};
OSF.OUtil.setNamespace("AsyncResultEnum",OSF.DDA);
OSF.DDA.AsyncResultEnum.Properties={
Context: "Context",
Value: "Value",
Status: "Status",
Error: "Error"
};
Microsoft.Office.WebExtension.AsyncResultStatus={
Succeeded: "succeeded",
Failed: "failed"
};
OSF.DDA.AsyncResultEnum.ErrorCode={
Success: 0,
Failed: 1
};
OSF.DDA.AsyncResultEnum.ErrorProperties={
Name: "Name",
Message: "Message",
Code: "Code"
};
OSF.DDA.AsyncMethodNames={};
OSF.DDA.AsyncMethodNames.addNames=function(methodNames)
{
for(var entry in methodNames)
{
var am={};
OSF.OUtil.defineEnumerableProperties(am,{
id: {value: entry},
displayName: {value: methodNames[entry]}
});
OSF.DDA.AsyncMethodNames[entry]=am
}
};
OSF.DDA.AsyncMethodCall=function OSF_DDA_AsyncMethodCall(requiredParameters, supportedOptions, privateStateCallbacks, onSucceeded, onFailed, checkCallArgs, displayName)
{
var requiredCount=requiredParameters.length;
var apiMethods=new OSF.DDA.ApiMethodCall(requiredParameters,supportedOptions,privateStateCallbacks,checkCallArgs,displayName);
function OSF_DAA_AsyncMethodCall$ExtractOptions(userArgs, requiredArgs, caller, stateInfo)
{
if(userArgs.length > requiredCount+2)
throw OsfMsAjaxFactory.msAjaxError.parameterCount(Strings.OfficeOM.L_TooManyArguments);
var options,
parameterCallback;
for(var i=userArgs.length - 1; i >=requiredCount; i--)
{
var argument=userArgs[i];
switch(typeof argument)
{
case"object":
if(options)
throw OsfMsAjaxFactory.msAjaxError.parameterCount(Strings.OfficeOM.L_TooManyOptionalObjects);
else
options=argument;
break;
case"function":
if(parameterCallback)
throw OsfMsAjaxFactory.msAjaxError.parameterCount(Strings.OfficeOM.L_TooManyOptionalFunction);
else
parameterCallback=argument;
break;
default:
throw OsfMsAjaxFactory.msAjaxError.argument(Strings.OfficeOM.L_InValidOptionalArgument);
break
}
}
options=apiMethods.fillOptions(options,requiredArgs,caller,stateInfo);
if(parameterCallback)
if(options[Microsoft.Office.WebExtension.Parameters.Callback])
throw Strings.OfficeOM.L_RedundantCallbackSpecification;
else
options[Microsoft.Office.WebExtension.Parameters.Callback]=parameterCallback;
apiMethods.verifyArguments(supportedOptions,options);
return options
}
this.verifyAndExtractCall=function OSF_DAA_AsyncMethodCall$VerifyAndExtractCall(userArgs, caller, stateInfo)
{
var required=apiMethods.extractRequiredArguments(userArgs,caller,stateInfo);
var options=OSF_DAA_AsyncMethodCall$ExtractOptions(userArgs,required,caller,stateInfo);
var callArgs=apiMethods.constructCallArgs(required,options,caller,stateInfo);
return callArgs
};
this.processResponse=function OSF_DAA_AsyncMethodCall$ProcessResponse(status, response, caller, callArgs)
{
var payload;
if(status==OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
if(onSucceeded)
payload=onSucceeded(response,caller,callArgs);
else
payload=response;
else if(onFailed)
payload=onFailed(status,response);
else
payload=OSF.DDA.ErrorCodeManager.getErrorArgs(status);
return payload
};
this.getCallArgs=function(suppliedArgs)
{
var options,
parameterCallback;
for(var i=suppliedArgs.length - 1; i >=requiredCount; i--)
{
var argument=suppliedArgs[i];
switch(typeof argument)
{
case"object":
options=argument;
break;
case"function":
parameterCallback=argument;
break
}
}
options=options || {};
if(parameterCallback)
options[Microsoft.Office.WebExtension.Parameters.Callback]=parameterCallback;
return options
}
};
OSF.DDA.AsyncMethodCallFactory=function()
{
return{manufacture: function(params)
{
var supportedOptions=params.supportedOptions ? OSF.OUtil.createObject(params.supportedOptions) : [];
var privateStateCallbacks=params.privateStateCallbacks ? OSF.OUtil.createObject(params.privateStateCallbacks) : [];
return new OSF.DDA.AsyncMethodCall(params.requiredArguments || [],supportedOptions,privateStateCallbacks,params.onSucceeded,params.onFailed,params.checkCallArgs,params.method.displayName)
}}
}();
OSF.DDA.AsyncMethodCalls={};
OSF.DDA.AsyncMethodCalls.define=function(callDefinition)
{
OSF.DDA.AsyncMethodCalls[callDefinition.method.id]=OSF.DDA.AsyncMethodCallFactory.manufacture(callDefinition)
};
OSF.DDA.Error=function OSF_DDA_Error(name, message, code)
{
OSF.OUtil.defineEnumerableProperties(this,{
name: {value: name},
message: {value: message},
code: {value: code}
})
};
OSF.DDA.AsyncResult=function OSF_DDA_AsyncResult(initArgs, errorArgs)
{
OSF.OUtil.defineEnumerableProperties(this,{
value: {value: initArgs[OSF.DDA.AsyncResultEnum.Properties.Value]},
status: {value: errorArgs ? Microsoft.Office.WebExtension.AsyncResultStatus.Failed : Microsoft.Office.WebExtension.AsyncResultStatus.Succeeded}
});
if(initArgs[OSF.DDA.AsyncResultEnum.Properties.Context])
OSF.OUtil.defineEnumerableProperty(this,"asyncContext",{value: initArgs[OSF.DDA.AsyncResultEnum.Properties.Context]});
if(errorArgs)
OSF.OUtil.defineEnumerableProperty(this,"error",{value: new OSF.DDA.Error(errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Name],errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Message],errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Code])})
};
OSF.DDA.issueAsyncResult=function OSF_DDA$IssueAsyncResult(callArgs, status, payload)
{
var callback=callArgs[Microsoft.Office.WebExtension.Parameters.Callback];
if(callback)
{
var asyncInitArgs={};
asyncInitArgs[OSF.DDA.AsyncResultEnum.Properties.Context]=callArgs[Microsoft.Office.WebExtension.Parameters.AsyncContext];
var errorArgs;
if(status==OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
asyncInitArgs[OSF.DDA.AsyncResultEnum.Properties.Value]=payload;
else
{
errorArgs={};
payload=payload || OSF.DDA.ErrorCodeManager.getErrorArgs(OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError);
errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Code]=status || OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError;
errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Name]=payload.name || payload;
errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Message]=payload.message || payload
}
callback(new OSF.DDA.AsyncResult(asyncInitArgs,errorArgs))
}
};
OSF.DDA.SyncMethodNames={};
OSF.DDA.SyncMethodNames.addNames=function(methodNames)
{
for(var entry in methodNames)
{
var am={};
OSF.OUtil.defineEnumerableProperties(am,{
id: {value: entry},
displayName: {value: methodNames[entry]}
});
OSF.DDA.SyncMethodNames[entry]=am
}
};
OSF.DDA.SyncMethodCall=function OSF_DDA_SyncMethodCall(requiredParameters, supportedOptions, privateStateCallbacks, checkCallArgs, displayName)
{
var requiredCount=requiredParameters.length;
var apiMethods=new OSF.DDA.ApiMethodCall(requiredParameters,supportedOptions,privateStateCallbacks,checkCallArgs,displayName);
function OSF_DAA_SyncMethodCall$ExtractOptions(userArgs, requiredArgs, caller, stateInfo)
{
if(userArgs.length > requiredCount+1)
throw OsfMsAjaxFactory.msAjaxError.parameterCount(Strings.OfficeOM.L_TooManyArguments);
var options,
parameterCallback;
for(var i=userArgs.length - 1; i >=requiredCount; i--)
{
var argument=userArgs[i];
switch(typeof argument)
{
case"object":
if(options)
throw OsfMsAjaxFactory.msAjaxError.parameterCount(Strings.OfficeOM.L_TooManyOptionalObjects);
else
options=argument;
break;
default:
throw OsfMsAjaxFactory.msAjaxError.argument(Strings.OfficeOM.L_InValidOptionalArgument);
break
}
}
options=apiMethods.fillOptions(options,requiredArgs,caller,stateInfo);
apiMethods.verifyArguments(supportedOptions,options);
return options
}
this.verifyAndExtractCall=function OSF_DAA_AsyncMethodCall$VerifyAndExtractCall(userArgs, caller, stateInfo)
{
var required=apiMethods.extractRequiredArguments(userArgs,caller,stateInfo);
var options=OSF_DAA_SyncMethodCall$ExtractOptions(userArgs,required,caller,stateInfo);
var callArgs=apiMethods.constructCallArgs(required,options,caller,stateInfo);
return callArgs
}
};
OSF.DDA.SyncMethodCallFactory=function()
{
return{manufacture: function(params)
{
var supportedOptions=params.supportedOptions ? OSF.OUtil.createObject(params.supportedOptions) : [];
return new OSF.DDA.SyncMethodCall(params.requiredArguments || [],supportedOptions,params.privateStateCallbacks,params.checkCallArgs,params.method.displayName)
}}
}();
OSF.DDA.SyncMethodCalls={};
OSF.DDA.SyncMethodCalls.define=function(callDefinition)
{
OSF.DDA.SyncMethodCalls[callDefinition.method.id]=OSF.DDA.SyncMethodCallFactory.manufacture(callDefinition)
};
OSF.DDA.ListType=function()
{
var listTypes={};
return{
setListType: function OSF_DDA_ListType$AddListType(t, prop)
{
listTypes[t]=prop
},
isListType: function OSF_DDA_ListType$IsListType(t)
{
return OSF.OUtil.listContainsKey(listTypes,t)
},
getDescriptor: function OSF_DDA_ListType$getDescriptor(t)
{
return listTypes[t]
}
}
}();
OSF.DDA.HostParameterMap=function(specialProcessor, mappings)
{
var toHostMap="toHost";
var fromHostMap="fromHost";
var self="self";
var dynamicTypes={};
dynamicTypes[Microsoft.Office.WebExtension.Parameters.Data]={
toHost: function(data)
{
if(data !=null && data.rows !==undefined)
{
var tableData={};
tableData[OSF.DDA.TableDataProperties.TableRows]=data.rows;
tableData[OSF.DDA.TableDataProperties.TableHeaders]=data.headers;
data=tableData
}
return data
},
fromHost: function(args)
{
return args
}
};
dynamicTypes[Microsoft.Office.WebExtension.Parameters.SampleData]=dynamicTypes[Microsoft.Office.WebExtension.Parameters.Data];
function mapValues(preimageSet, mapping)
{
var ret=preimageSet ? {} : undefined;
for(var entry in preimageSet)
{
var preimage=preimageSet[entry];
var image;
if(OSF.DDA.ListType.isListType(entry))
{
image=[];
for(var subEntry in preimage)
image.push(mapValues(preimage[subEntry],mapping))
}
else if(OSF.OUtil.listContainsKey(dynamicTypes,entry))
image=dynamicTypes[entry][mapping](preimage);
else if(mapping==fromHostMap && specialProcessor.preserveNesting(entry))
image=mapValues(preimage,mapping);
else
{
var maps=mappings[entry];
if(maps)
{
var map=maps[mapping];
if(map)
{
image=map[preimage];
if(image===undefined)
image=preimage
}
}
else
image=preimage
}
ret[entry]=image
}
return ret
}
function generateArguments(imageSet, parameters)
{
var ret;
for(var param in parameters)
{
var arg;
if(specialProcessor.isComplexType(param))
arg=generateArguments(imageSet,mappings[param][toHostMap]);
else
arg=imageSet[param];
if(arg !=undefined)
{
if(!ret)
ret={};
var index=parameters[param];
if(index==self)
index=param;
ret[index]=specialProcessor.pack(param,arg)
}
}
return ret
}
function extractArguments(source, parameters, extracted)
{
if(!extracted)
extracted={};
for(var param in parameters)
{
var index=parameters[param];
var value;
if(index==self)
value=source;
else
value=source[index];
if(value===null || value===undefined)
extracted[param]=undefined;
else
{
value=specialProcessor.unpack(param,value);
var map;
if(specialProcessor.isComplexType(param))
{
map=mappings[param][fromHostMap];
if(specialProcessor.preserveNesting(param))
extracted[param]=extractArguments(value,map);
else
extractArguments(value,map,extracted)
}
else
{
if(OSF.DDA.ListType.isListType(param))
{
map={};
var entryDescriptor=OSF.DDA.ListType.getDescriptor(param);
map[entryDescriptor]=self;
for(var item in value)
value[item]=extractArguments(value[item],map)
}
extracted[param]=value
}
}
}
return extracted
}
function applyMap(mapName, preimage, mapping)
{
var parameters=mappings[mapName][mapping];
var image;
if(mapping=="toHost")
{
var imageSet=mapValues(preimage,mapping);
image=generateArguments(imageSet,parameters)
}
else if(mapping=="fromHost")
{
var argumentSet=extractArguments(preimage,parameters);
image=mapValues(argumentSet,mapping)
}
return image
}
if(!mappings)
mappings={};
this.addMapping=function(mapName, description)
{
var toHost,
fromHost;
if(description.map)
{
toHost=description.map;
fromHost={};
for(var preimage in toHost)
{
var image=toHost[preimage];
if(image==self)
image=preimage;
fromHost[image]=preimage
}
}
else
{
toHost=description.toHost;
fromHost=description.fromHost
}
var pair=mappings[mapName];
if(pair)
{
var currMap=pair[toHostMap];
for(var th in currMap)
toHost[th]=currMap[th];
currMap=pair[fromHostMap];
for(var fh in currMap)
fromHost[fh]=currMap[fh]
}
else
pair=mappings[mapName]={};
pair[toHostMap]=toHost;
pair[fromHostMap]=fromHost
};
this.toHost=function(mapName, preimage)
{
return applyMap(mapName,preimage,toHostMap)
};
this.fromHost=function(mapName, image)
{
return applyMap(mapName,image,fromHostMap)
};
this.self=self;
this.addComplexType=function(ct)
{
specialProcessor.addComplexType(ct)
};
this.getDynamicType=function(dt)
{
return specialProcessor.getDynamicType(dt)
};
this.setDynamicType=function(dt, handler)
{
specialProcessor.setDynamicType(dt,handler)
};
this.dynamicTypes=dynamicTypes;
this.doMapValues=function(preimageSet, mapping)
{
return mapValues(preimageSet,mapping)
}
};
OSF.DDA.SpecialProcessor=function(complexTypes, dynamicTypes)
{
this.addComplexType=function OSF_DDA_SpecialProcessor$addComplexType(ct)
{
complexTypes.push(ct)
};
this.getDynamicType=function OSF_DDA_SpecialProcessor$getDynamicType(dt)
{
return dynamicTypes[dt]
};
this.setDynamicType=function OSF_DDA_SpecialProcessor$setDynamicType(dt, handler)
{
dynamicTypes[dt]=handler
};
this.isComplexType=function OSF_DDA_SpecialProcessor$isComplexType(t)
{
return OSF.OUtil.listContainsValue(complexTypes,t)
};
this.isDynamicType=function OSF_DDA_SpecialProcessor$isDynamicType(p)
{
return OSF.OUtil.listContainsKey(dynamicTypes,p)
};
this.preserveNesting=function OSF_DDA_SpecialProcessor$preserveNesting(p)
{
var pn=[];
if(OSF.DDA.PropertyDescriptors)
pn.push(OSF.DDA.PropertyDescriptors.Subset);
if(OSF.DDA.DataNodeEventProperties)
pn=pn.concat([OSF.DDA.DataNodeEventProperties.OldNode,OSF.DDA.DataNodeEventProperties.NewNode,OSF.DDA.DataNodeEventProperties.NextSiblingNode]);
return OSF.OUtil.listContainsValue(pn,p)
};
this.pack=function OSF_DDA_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_SpecialProcessor$unpack(param, arg)
{
var value;
if(this.isDynamicType(param))
value=dynamicTypes[param].fromHost(arg);
else
value=arg;
return value
}
};
OSF.DDA.getDecoratedParameterMap=function(specialProcessor, initialDefs)
{
var parameterMap=new OSF.DDA.HostParameterMap(specialProcessor);
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
}
parameterMap.define=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.addMapping(definition.type,args);
if(definition.isComplexType)
parameterMap.addComplexType(definition.type)
};
for(var id in initialDefs)
parameterMap.define(initialDefs[id]);
return parameterMap
};
OSF.OUtil.setNamespace("DispIdHost",OSF.DDA);
OSF.DDA.DispIdHost.Methods={
InvokeMethod: "invokeMethod",
AddEventHandler: "addEventHandler",
RemoveEventHandler: "removeEventHandler",
OpenDialog: "openDialog",
CloseDialog: "closeDialog",
MessageParent: "messageParent"
};
OSF.DDA.DispIdHost.Delegates={
ExecuteAsync: "executeAsync",
RegisterEventAsync: "registerEventAsync",
UnregisterEventAsync: "unregisterEventAsync",
ParameterMap: "parameterMap",
MessageParent: "messageParent"
};
OSF.DDA.DispIdHost.Facade=function OSF_DDA_DispIdHost_Facade(getDelegateMethods, parameterMap)
{
var dispIdMap={};
var jsom=OSF.DDA.AsyncMethodNames;
var did=OSF.DDA.MethodDispId;
var methodMap={
GoToByIdAsync: did.dispidNavigateToMethod,
GetSelectedDataAsync: did.dispidGetSelectedDataMethod,
SetSelectedDataAsync: did.dispidSetSelectedDataMethod,
GetDocumentCopyChunkAsync: did.dispidGetDocumentCopyChunkMethod,
ReleaseDocumentCopyAsync: did.dispidReleaseDocumentCopyMethod,
GetDocumentCopyAsync: did.dispidGetDocumentCopyMethod,
AddFromSelectionAsync: did.dispidAddBindingFromSelectionMethod,
AddFromPromptAsync: did.dispidAddBindingFromPromptMethod,
AddFromNamedItemAsync: did.dispidAddBindingFromNamedItemMethod,
GetAllAsync: did.dispidGetAllBindingsMethod,
GetByIdAsync: did.dispidGetBindingMethod,
ReleaseByIdAsync: did.dispidReleaseBindingMethod,
GetDataAsync: did.dispidGetBindingDataMethod,
SetDataAsync: did.dispidSetBindingDataMethod,
AddRowsAsync: did.dispidAddRowsMethod,
AddColumnsAsync: did.dispidAddColumnsMethod,
DeleteAllDataValuesAsync: did.dispidClearAllRowsMethod,
RefreshAsync: did.dispidLoadSettingsMethod,
SaveAsync: did.dispidSaveSettingsMethod,
GetActiveViewAsync: did.dispidGetActiveViewMethod,
GetFilePropertiesAsync: did.dispidGetFilePropertiesMethod,
GetOfficeThemeAsync: did.dispidGetOfficeThemeMethod,
GetDocumentThemeAsync: did.dispidGetDocumentThemeMethod,
ClearFormatsAsync: did.dispidClearFormatsMethod,
SetTableOptionsAsync: did.dispidSetTableOptionsMethod,
SetFormatsAsync: did.dispidSetFormatsMethod,
ExecuteRichApiRequestAsync: did.dispidExecuteRichApiRequestMethod,
AppCommandInvocationCompletedAsync: did.dispidAppCommandInvocationCompletedMethod,
AddDataPartAsync: did.dispidAddDataPartMethod,
GetDataPartByIdAsync: did.dispidGetDataPartByIdMethod,
GetDataPartsByNameSpaceAsync: did.dispidGetDataPartsByNamespaceMethod,
GetPartXmlAsync: did.dispidGetDataPartXmlMethod,
GetPartNodesAsync: did.dispidGetDataPartNodesMethod,
DeleteDataPartAsync: did.dispidDeleteDataPartMethod,
GetNodeValueAsync: did.dispidGetDataNodeValueMethod,
GetNodeXmlAsync: did.dispidGetDataNodeXmlMethod,
GetRelativeNodesAsync: did.dispidGetDataNodesMethod,
SetNodeValueAsync: did.dispidSetDataNodeValueMethod,
SetNodeXmlAsync: did.dispidSetDataNodeXmlMethod,
AddDataPartNamespaceAsync: did.dispidAddDataNamespaceMethod,
GetDataPartNamespaceAsync: did.dispidGetDataUriByPrefixMethod,
GetDataPartPrefixAsync: did.dispidGetDataPrefixByUriMethod,
GetNodeTextAsync: did.dispidGetDataNodeTextMethod,
SetNodeTextAsync: did.dispidSetDataNodeTextMethod,
GetSelectedTask: did.dispidGetSelectedTaskMethod,
GetTask: did.dispidGetTaskMethod,
GetWSSUrl: did.dispidGetWSSUrlMethod,
GetTaskField: did.dispidGetTaskFieldMethod,
GetSelectedResource: did.dispidGetSelectedResourceMethod,
GetResourceField: did.dispidGetResourceFieldMethod,
GetProjectField: did.dispidGetProjectFieldMethod,
GetSelectedView: did.dispidGetSelectedViewMethod,
GetTaskByIndex: did.dispidGetTaskByIndexMethod,
GetResourceByIndex: did.dispidGetResourceByIndexMethod,
SetTaskField: did.dispidSetTaskFieldMethod,
SetResourceField: did.dispidSetResourceFieldMethod,
GetMaxTaskIndex: did.dispidGetMaxTaskIndexMethod,
GetMaxResourceIndex: did.dispidGetMaxResourceIndexMethod
};
for(var method in methodMap)
if(jsom[method])
dispIdMap[jsom[method].id]=methodMap[method];
jsom=OSF.DDA.SyncMethodNames;
did=OSF.DDA.MethodDispId;
var asyncMethodMap={MessageParent: did.dispidMessageParentMethod};
for(var method in asyncMethodMap)
if(jsom[method])
dispIdMap[jsom[method].id]=methodMap[method];
jsom=Microsoft.Office.WebExtension.EventType;
did=OSF.DDA.EventDispId;
var eventMap={
SettingsChanged: did.dispidSettingsChangedEvent,
DocumentSelectionChanged: did.dispidDocumentSelectionChangedEvent,
BindingSelectionChanged: did.dispidBindingSelectionChangedEvent,
BindingDataChanged: did.dispidBindingDataChangedEvent,
ActiveViewChanged: did.dispidActiveViewChangedEvent,
OfficeThemeChanged: did.dispidOfficeThemeChangedEvent,
DocumentThemeChanged: did.dispidDocumentThemeChangedEvent,
AppCommandInvoked: did.dispidAppCommandInvokedEvent,
DialogMessageReceived: did.dispidDialogMessageReceivedEvent,
TaskSelectionChanged: did.dispidTaskSelectionChangedEvent,
ResourceSelectionChanged: did.dispidResourceSelectionChangedEvent,
ViewSelectionChanged: did.dispidViewSelectionChangedEvent,
DataNodeInserted: did.dispidDataNodeAddedEvent,
DataNodeReplaced: did.dispidDataNodeReplacedEvent,
DataNodeDeleted: did.dispidDataNodeDeletedEvent
};
for(var event in eventMap)
if(jsom[event])
dispIdMap[jsom[event]]=eventMap[event];
function onException(ex, asyncMethodCall, suppliedArgs, callArgs)
{
if(typeof ex=="number")
{
if(!callArgs)
callArgs=asyncMethodCall.getCallArgs(suppliedArgs);
OSF.DDA.issueAsyncResult(callArgs,ex,OSF.DDA.ErrorCodeManager.getErrorArgs(ex))
}
else
throw ex;
}
this[OSF.DDA.DispIdHost.Methods.InvokeMethod]=function OSF_DDA_DispIdHost_Facade$InvokeMethod(method, suppliedArguments, caller, privateState)
{
var callArgs;
try
{
var methodName=method.id;
var asyncMethodCall=OSF.DDA.AsyncMethodCalls[methodName];
callArgs=asyncMethodCall.verifyAndExtractCall(suppliedArguments,caller,privateState);
var dispId=dispIdMap[methodName];
var delegate=getDelegateMethods(methodName);
var hostCallArgs;
if(parameterMap.toHost)
hostCallArgs=parameterMap.toHost(dispId,callArgs);
else
hostCallArgs=callArgs;
delegate[OSF.DDA.DispIdHost.Delegates.ExecuteAsync]({
dispId: dispId,
hostCallArgs: hostCallArgs,
onCalling: function OSF_DDA_DispIdFacade$Execute_onCalling()
{
OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.IssueCall)
},
onReceiving: function OSF_DDA_DispIdFacade$Execute_onReceiving()
{
OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.ReceiveResponse)
},
onComplete: function(status, hostResponseArgs)
{
var responseArgs;
if(status==OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
if(parameterMap.fromHost)
responseArgs=parameterMap.fromHost(dispId,hostResponseArgs);
else
responseArgs=hostResponseArgs;
else
responseArgs=hostResponseArgs;
var payload=asyncMethodCall.processResponse(status,responseArgs,caller,callArgs);
OSF.DDA.issueAsyncResult(callArgs,status,payload)
}
})
}
catch(ex)
{
onException(ex,asyncMethodCall,suppliedArguments,callArgs)
}
};
this[OSF.DDA.DispIdHost.Methods.AddEventHandler]=function OSF_DDA_DispIdHost_Facade$AddEventHandler(suppliedArguments, eventDispatch, caller)
{
var callArgs;
var eventType,
handler;
function onEnsureRegistration(status)
{
if(status==OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
{
var added=eventDispatch.addEventHandler(eventType,handler);
if(!added)
status=OSF.DDA.ErrorCodeManager.errorCodes.ooeEventHandlerAdditionFailed
}
var error;
if(status !=OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
error=OSF.DDA.ErrorCodeManager.getErrorArgs(status);
OSF.DDA.issueAsyncResult(callArgs,status,error)
}
try
{
var asyncMethodCall=OSF.DDA.AsyncMethodCalls[OSF.DDA.AsyncMethodNames.AddHandlerAsync.id];
callArgs=asyncMethodCall.verifyAndExtractCall(suppliedArguments,caller,eventDispatch);
eventType=callArgs[Microsoft.Office.WebExtension.Parameters.EventType];
handler=callArgs[Microsoft.Office.WebExtension.Parameters.Handler];
if(eventDispatch.getEventHandlerCount(eventType)==0)
{
var dispId=dispIdMap[eventType];
var invoker=getDelegateMethods(eventType)[OSF.DDA.DispIdHost.Delegates.RegisterEventAsync];
invoker({
eventType: eventType,
dispId: dispId,
targetId: caller.id || "",
onCalling: function OSF_DDA_DispIdFacade$Execute_onCalling()
{
OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.IssueCall)
},
onReceiving: function OSF_DDA_DispIdFacade$Execute_onReceiving()
{
OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.ReceiveResponse)
},
onComplete: onEnsureRegistration,
onEvent: function handleEvent(hostArgs)
{
var args=parameterMap.fromHost(dispId,hostArgs);
eventDispatch.fireEvent(OSF.DDA.OMFactory.manufactureEventArgs(eventType,caller,args))
}
})
}
else
onEnsureRegistration(OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
}
catch(ex)
{
onException(ex,asyncMethodCall,suppliedArguments,callArgs)
}
};
this[OSF.DDA.DispIdHost.Methods.RemoveEventHandler]=function OSF_DDA_DispIdHost_Facade$RemoveEventHandler(suppliedArguments, eventDispatch, caller)
{
var callArgs;
var eventType,
handler;
function onEnsureRegistration(status)
{
var error;
if(status !=OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
error=OSF.DDA.ErrorCodeManager.getErrorArgs(status);
OSF.DDA.issueAsyncResult(callArgs,status,error)
}
try
{
var asyncMethodCall=OSF.DDA.AsyncMethodCalls[OSF.DDA.AsyncMethodNames.RemoveHandlerAsync.id];
callArgs=asyncMethodCall.verifyAndExtractCall(suppliedArguments,caller,eventDispatch);
eventType=callArgs[Microsoft.Office.WebExtension.Parameters.EventType];
handler=callArgs[Microsoft.Office.WebExtension.Parameters.Handler];
var status,
removeSuccess;
if(handler===null)
{
removeSuccess=eventDispatch.clearEventHandlers(eventType);
status=OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess
}
else
{
removeSuccess=eventDispatch.removeEventHandler(eventType,handler);
status=removeSuccess ? OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess : OSF.DDA.ErrorCodeManager.errorCodes.ooeEventHandlerNotExist
}
if(removeSuccess && eventDispatch.getEventHandlerCount(eventType)==0)
{
var dispId=dispIdMap[eventType];
var invoker=getDelegateMethods(eventType)[OSF.DDA.DispIdHost.Delegates.UnregisterEventAsync];
invoker({
eventType: eventType,
dispId: dispId,
targetId: caller.id || "",
onCalling: function OSF_DDA_DispIdFacade$Execute_onCalling()
{
OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.IssueCall)
},
onReceiving: function OSF_DDA_DispIdFacade$Execute_onReceiving()
{
OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.ReceiveResponse)
},
onComplete: onEnsureRegistration
})
}
else
onEnsureRegistration(status)
}
catch(ex)
{
onException(ex,asyncMethodCall,suppliedArguments,callArgs)
}
};
this[OSF.DDA.DispIdHost.Methods.OpenDialog]=function OSF_DDA_DispIdHost_Facade$OpenDialog(suppliedArguments, eventDispatch, caller)
{
var callArgs;
var dialogMessageEvent,
dialogOtherEvent;
var targetId;
function onEnsureRegistration(status)
{
var payload;
if(status !=OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
payload=OSF.DDA.ErrorCodeManager.getErrorArgs(status);
else
{
var onSucceedArgs={};
onSucceedArgs[Microsoft.Office.WebExtension.Parameters.Id]=targetId;
onSucceedArgs[Microsoft.Office.WebExtension.Parameters.Data]=eventDispatch;
var payload=asyncMethodCall.processResponse(status,onSucceedArgs,caller,callArgs)
}
OSF.DDA.issueAsyncResult(callArgs,status,payload)
}
try
{
dialogMessageEvent=Microsoft.Office.WebExtension.EventType.DialogMessageReceived;
dialogOtherEvent=Microsoft.Office.WebExtension.EventType.DialogEventReceived;
if(dialogMessageEvent==undefined || dialogOtherEvent==undefined)
onEnsureRegistration(OSF.DDA.ErrorCodeManager.ooeOperationNotSupported);
if(OSF.DDA.AsyncMethodNames.DisplayDialogAsync==null)
{
onEnsureRegistration(OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError);
return
}
var asyncMethodCall=OSF.DDA.AsyncMethodCalls[OSF.DDA.AsyncMethodNames.DisplayDialogAsync.id];
callArgs=asyncMethodCall.verifyAndExtractCall(suppliedArguments,caller,eventDispatch);
eventDispatch.clearEventHandlers(dialogMessageEvent);
eventDispatch.clearEventHandlers(dialogOtherEvent);
var dispId=dispIdMap[dialogMessageEvent];
var invoker=getDelegateMethods(dialogMessageEvent)[OSF.DDA.DispIdHost.Delegates.RegisterEventAsync];
targetId=JSON.stringify(callArgs);
invoker({
eventType: dialogMessageEvent,
dispId: dispId,
targetId: targetId,
onCalling: function OSF_DDA_DispIdFacade$Execute_onCalling()
{
OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.IssueCall)
},
onReceiving: function OSF_DDA_DispIdFacade$Execute_onReceiving()
{
OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.ReceiveResponse)
},
onComplete: onEnsureRegistration,
onEvent: function handleEvent(hostArgs)
{
var args=parameterMap.fromHost(dispId,hostArgs);
var event=OSF.DDA.OMFactory.manufactureEventArgs(dialogMessageEvent,caller,args);
if(event.type==dialogOtherEvent)
{
var payload=OSF.DDA.ErrorCodeManager.getErrorArgs(event.error);
var errorArgs={};
errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Code]=status || OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError;
errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Name]=payload.name || payload;
errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Message]=payload.message || payload;
event.error=new OSF.DDA.Error(errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Name],errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Message],errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Code])
}
eventDispatch.fireOrQueueEvent(event);
if(args[OSF.DDA.PropertyDescriptors.MessageType]==OSF.DialogMessageType.DialogClosed)
{
eventDispatch.clearEventHandlers(dialogMessageEvent);
eventDispatch.clearEventHandlers(dialogOtherEvent)
}
}
})
}
catch(ex)
{
onException(ex,asyncMethodCall,suppliedArguments,callArgs)
}
};
this[OSF.DDA.DispIdHost.Methods.CloseDialog]=function OSF_DDA_DispIdHost_Facade$CloseDialog(suppliedArguments, targetId, eventDispatch, caller)
{
var callArgs;
var dialogMessageEvent,
dialogOtherEvent;
var closeStatus=OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess;
function closeCallback(status)
{
closeStatus=status
}
try
{
var asyncMethodCall=OSF.DDA.AsyncMethodCalls[OSF.DDA.AsyncMethodNames.CloseAsync.id];
callArgs=asyncMethodCall.verifyAndExtractCall(suppliedArguments,caller,eventDispatch);
dialogMessageEvent=Microsoft.Office.WebExtension.EventType.DialogMessageReceived;
dialogOtherEvent=Microsoft.Office.WebExtension.EventType.DialogEventReceived;
eventDispatch.clearEventHandlers(dialogMessageEvent);
eventDispatch.clearEventHandlers(dialogOtherEvent);
var dispId=dispIdMap[dialogMessageEvent];
var invoker=getDelegateMethods(dialogMessageEvent)[OSF.DDA.DispIdHost.Delegates.UnregisterEventAsync];
invoker({
eventType: dialogMessageEvent,
dispId: dispId,
targetId: targetId,
onCalling: function OSF_DDA_DispIdFacade$Execute_onCalling()
{
OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.IssueCall)
},
onReceiving: function OSF_DDA_DispIdFacade$Execute_onReceiving()
{
OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.ReceiveResponse)
},
onComplete: closeCallback
})
}
catch(ex)
{
onException(ex,asyncMethodCall,suppliedArguments,callArgs)
}
if(closeStatus !=OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
throw OSF.OUtil.formatString(Strings.OfficeOM.L_FunctionCallFailed,OSF.DDA.AsyncMethodNames.CloseAsync.displayName,closeStatus);
};
this[OSF.DDA.DispIdHost.Methods.MessageParent]=function OSF_DDA_DispIdHost_Facade$MessageParent(suppliedArguments, caller)
{
var stateInfo={};
var syncMethodCall=OSF.DDA.SyncMethodCalls[OSF.DDA.SyncMethodNames.MessageParent.id];
var callArgs=syncMethodCall.verifyAndExtractCall(suppliedArguments,caller,stateInfo);
var delegate=getDelegateMethods(OSF.DDA.SyncMethodNames.MessageParent.id);
var invoker=delegate[OSF.DDA.DispIdHost.Delegates.MessageParent];
var dispId=dispIdMap[syncMethodCall];
return invoker({
dispId: dispId,
hostCallArgs: callArgs[Microsoft.Office.WebExtension.Parameters.MessageToParent],
onCalling: function OSF_DDA_DispIdFacade$Execute_onCalling()
{
OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.IssueCall)
},
onReceiving: function OSF_DDA_DispIdFacade$Execute_onReceiving()
{
OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.ReceiveResponse)
}
})
}
};
OSF.DDA.DispIdHost.addAsyncMethods=function OSF_DDA_DispIdHost$AddAsyncMethods(target, asyncMethodNames, privateState)
{
for(var entry in asyncMethodNames)
{
var method=asyncMethodNames[entry];
var name=method.displayName;
if(!target[name])
OSF.OUtil.defineEnumerableProperty(target,name,{value: function(asyncMethod)
{
return function()
{
var invokeMethod=OSF._OfficeAppFactory.getHostFacade()[OSF.DDA.DispIdHost.Methods.InvokeMethod];
invokeMethod(asyncMethod,arguments,target,privateState)
}
}(method)})
}
};
OSF.DDA.DispIdHost.addEventSupport=function OSF_DDA_DispIdHost$AddEventSupport(target, eventDispatch)
{
var add=OSF.DDA.AsyncMethodNames.AddHandlerAsync.displayName;
var remove=OSF.DDA.AsyncMethodNames.RemoveHandlerAsync.displayName;
if(!target[add])
OSF.OUtil.defineEnumerableProperty(target,add,{value: function()
{
var addEventHandler=OSF._OfficeAppFactory.getHostFacade()[OSF.DDA.DispIdHost.Methods.AddEventHandler];
addEventHandler(arguments,eventDispatch,target)
}});
if(!target[remove])
OSF.OUtil.defineEnumerableProperty(target,remove,{value: function()
{
var removeEventHandler=OSF._OfficeAppFactory.getHostFacade()[OSF.DDA.DispIdHost.Methods.RemoveEventHandler];
removeEventHandler(arguments,eventDispatch,target)
}})
};
if(!OsfMsAjaxFactory.isMsAjaxLoaded())
if(!(OSF._OfficeAppFactory && OSF._OfficeAppFactory && OSF._OfficeAppFactory.getLoadScriptHelper && OSF._OfficeAppFactory.getLoadScriptHelper().isScriptLoading(OSF.ConstantNames.MicrosoftAjaxId)))
{
var msAjaxCDNPath=(window.location.protocol.toLowerCase()==="https:" ? "https:" : "http:")+"//ajax.aspnetcdn.com/ajax/3.5/MicrosoftAjax.js";
OsfMsAjaxFactory.loadMsAjaxFull(function OSF$loadMSAjaxCallback()
{
if(!OsfMsAjaxFactory.isMsAjaxLoaded())
throw"Not able to load MicrosoftAjax.js.";
})
}
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._onException=function OSF_DDA_SafeArray_Delegate$OnException(ex, args)
{
var status;
var statusNumber=ex.number;
if(statusNumber)
switch(statusNumber)
{
case-2146828218:
status=OSF.DDA.ErrorCodeManager.errorCodes.ooeNoCapability;
break;
case-2147467259:
status=OSF.DDA.ErrorCodeManager.errorCodes.ooeDialogAlreadyOpened;
break;
case-2146828283:
status=OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidParam;
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._onExceptionSyncMethod=function OSF_DDA_SafeArray_Delegate$OnExceptionSyncMethod(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
}
return status || OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError
};
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=[];
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.unpack=function OSF_DDA_SafeArray_Delegate_SpecialProcessor$unpack(param, arg)
{
var value;
if(this.isComplexType(param) || OSF.DDA.ListType.isListType(param))
{
var toArraySupported=(arg || typeof arg==="unknown") && arg.toArray;
value=toArraySupported ? arg.toArray() : 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=OSF.DDA.getDecoratedParameterMap(new OSF.DDA.SafeArray.Delegate.SpecialProcessor,[{
type: Microsoft.Office.WebExtension.Parameters.ValueFormat,
toHost: [{
name: Microsoft.Office.WebExtension.ValueFormat.Unformatted,
value: 0
},{
name: Microsoft.Office.WebExtension.ValueFormat.Formatted,
value: 1
}]
},{
type: Microsoft.Office.WebExtension.Parameters.FilterType,
toHost: [{
name: Microsoft.Office.WebExtension.FilterType.All,
value: 0
}]
}]);
OSF.DDA.SafeArray.Delegate.ParameterMap.define({
type: OSF.DDA.PropertyDescriptors.AsyncResultStatus,
fromHost: [{
name: Microsoft.Office.WebExtension.AsyncResultStatus.Succeeded,
value: 0
},{
name: Microsoft.Office.WebExtension.AsyncResultStatus.Failed,
value: 1
}]
});
OSF.DDA.SafeArray.Delegate.executeAsync=function OSF_DDA_SafeArray_Delegate$ExecuteAsync(args)
{
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
}
function fromSafeArray(value)
{
var ret=value;
if(value !=null && value.toArray)
{
var arrayResult=value.toArray();
ret=new Array(arrayResult.length);
for(var i=0; i < arrayResult.length; i++)
ret[i]=fromSafeArray(arrayResult[i])
}
return ret
}
try
{
if(args.onCalling)
args.onCalling();
var startTime=(new Date).getTime();
OSF.ClientHostController.execute(args.dispId,toArray(args.hostCallArgs),function OSF_DDA_SafeArrayFacade$Execute_OnResponse(hostResponseArgs)
{
var result=hostResponseArgs.toArray();
var status=result[OSF.DDA.SafeArray.Response.Status];
if(status==OSF.DDA.ErrorCodeManager.errorCodes.ooeChunkResult)
{
var payload=result[OSF.DDA.SafeArray.Response.Payload];
payload=fromSafeArray(payload);
if(payload !=null)
{
if(!args._chunkResultData)
args._chunkResultData=new Array;
args._chunkResultData[payload[0]]=payload[1]
}
return false
}
if(args.onReceiving)
args.onReceiving();
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];
if(args._chunkResultData)
{
payload=fromSafeArray(payload);
if(payload !=null)
{
var expectedChunkCount=payload[payload.length - 1];
if(args._chunkResultData.length==expectedChunkCount)
payload[payload.length - 1]=args._chunkResultData;
else
status=OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError
}
}
}
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);
return true
})
}
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.ClientMode={
ReadWrite: 0,
ReadOnly: 1
};
OSF.DDA.RichInitializationReason={
1: Microsoft.Office.WebExtension.InitializationReason.Inserted,
2: Microsoft.Office.WebExtension.InitializationReason.DocumentOpened
};
OSF.InitializationHelper=function OSF_InitializationHelper(hostInfo, webAppState, context, settings, hostFacade)
{
this._hostInfo=hostInfo;
this._webAppState=webAppState;
this._context=context;
this._settings=settings;
this._hostFacade=hostFacade;
this._initializeSettings=this.initializeSettings
};
OSF.InitializationHelper.prototype.deserializeSettings=function OSF_InitializationHelper$deserializeSettings(serializedSettings, refreshSupported)
{
var settings;
var osfSessionStorage=OSF.OUtil.getSessionStorage();
if(osfSessionStorage)
{
var storageSettings=osfSessionStorage.getItem(OSF._OfficeAppFactory.getCachedSessionSettingsKey());
if(storageSettings)
serializedSettings=typeof JSON !=="undefined" ? JSON.parse(storageSettings) : OsfMsAjaxFactory.msAjaxSerializer.deserialize(storageSettings,true);
else
{
storageSettings=typeof JSON !=="undefined" ? JSON.stringify(serializedSettings) : OsfMsAjaxFactory.msAjaxSerializer.serialize(serializedSettings);
osfSessionStorage.setItem(OSF._OfficeAppFactory.getCachedSessionSettingsKey(),storageSettings)
}
}
var deserializedSettings=OSF.DDA.SettingsManager.deserializeSettings(serializedSettings);
if(refreshSupported)
settings=new OSF.DDA.RefreshableSettings(deserializedSettings);
else
settings=new OSF.DDA.Settings(deserializedSettings);
return settings
};
OSF.InitializationHelper.prototype.setAgaveHostCommunication=function OSF_InitializationHelper$setAgaveHostCommunication(){};
OSF.InitializationHelper.prototype.prepareRightBeforeWebExtensionInitialize=function OSF_InitializationHelper$prepareRightBeforeWebExtensionInitialize(appContext)
{
this.prepareApiSurface(appContext);
Microsoft.Office.WebExtension.initialize(this.getInitializationReason(appContext))
};
OSF.InitializationHelper.prototype.prepareApiSurface=function OSF_InitializationHelper$prepareApiSurfaceAndInitialize(appContext)
{
var license=new OSF.DDA.License(appContext.get_eToken());
var getOfficeThemeHandler=OSF.DDA.OfficeTheme && OSF.DDA.OfficeTheme.getOfficeTheme ? OSF.DDA.OfficeTheme.getOfficeTheme : null;
if(appContext.get_isDialog())
{
if(OSF.DDA.UI.ChildUI)
appContext.ui=new OSF.DDA.UI.ChildUI
}
else if(OSF.DDA.UI.ParentUI)
appContext.ui=new OSF.DDA.UI.ParentUI;
OSF._OfficeAppFactory.setContext(new OSF.DDA.Context(appContext,appContext.doc,license,null,getOfficeThemeHandler));
var getDelegateMethods,
parameterMap;
getDelegateMethods=OSF.DDA.DispIdHost.getClientDelegateMethods;
parameterMap=OSF.DDA.SafeArray.Delegate.ParameterMap;
OSF._OfficeAppFactory.setHostFacade(new OSF.DDA.DispIdHost.Facade(getDelegateMethods,parameterMap))
};
OSF.InitializationHelper.prototype.getInitializationReason=function(appContext)
{
return OSF.DDA.RichInitializationReason[appContext.get_reason()]
};
OSF.DDA.DispIdHost.getClientDelegateMethods=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;
delegateMethods[OSF.DDA.DispIdHost.Delegates.MessageParent]=OSF.DDA.SafeArray.Delegate.messageParent;
if(OSF.DDA.AsyncMethodNames.RefreshAsync && actionId==OSF.DDA.AsyncMethodNames.RefreshAsync.id)
{
var readSerializedSettings=function(hostCallArgs, onCalling, onReceiving)
{
return OSF.DDA.ClientSettingsManager.read(onCalling,onReceiving)
};
delegateMethods[OSF.DDA.DispIdHost.Delegates.ExecuteAsync]=OSF.DDA.ClientSettingsManager.getSettingsExecuteMethod(readSerializedSettings)
}
if(OSF.DDA.AsyncMethodNames.SaveAsync && actionId==OSF.DDA.AsyncMethodNames.SaveAsync.id)
{
var writeSerializedSettings=function(hostCallArgs, onCalling, onReceiving)
{
return OSF.DDA.ClientSettingsManager.write(hostCallArgs[OSF.DDA.SettingsManager.SerializedSettings],hostCallArgs[Microsoft.Office.WebExtension.Parameters.OverwriteIfStale],onCalling,onReceiving)
};
delegateMethods[OSF.DDA.DispIdHost.Delegates.ExecuteAsync]=OSF.DDA.ClientSettingsManager.getSettingsExecuteMethod(writeSerializedSettings)
}
return delegateMethods
};
var OSFRichclient;
(function(OSFRichclient)
{
var RichClientHostController=function()
{
function RichClientHostController(){}
RichClientHostController.prototype.execute=function(id, params, callback)
{
window.external.Execute(id,params,callback)
};
RichClientHostController.prototype.registerEvent=function(id, targetId, handler, callback)
{
window.external.RegisterEvent(id,targetId,handler,callback)
};
RichClientHostController.prototype.unregisterEvent=function(id, targetId, callback)
{
window.external.UnregisterEvent(id,targetId,callback)
};
RichClientHostController.prototype.messageParent=function(message)
{
window.external.MessageParent(message)
};
return RichClientHostController
}();
OSFRichclient.RichClientHostController=RichClientHostController
})(OSFRichclient || (OSFRichclient={}));
OSF.ClientHostController=new OSFRichclient.RichClientHostController;
var OfficeExt;
(function(OfficeExt)
{
var OfficeTheme;
(function(OfficeTheme)
{
var OfficeThemeManager=function()
{
function OfficeThemeManager()
{
this._osfOfficeTheme=null;
this._osfOfficeThemeTimeStamp=null
}
OfficeThemeManager.prototype.getOfficeTheme=function()
{
if(OSF.DDA._OsfControlContext)
{
if(this._osfOfficeTheme && this._osfOfficeThemeTimeStamp && (new Date).getTime() - this._osfOfficeThemeTimeStamp < OfficeThemeManager._osfOfficeThemeCacheValidPeriod)
{
if(OSF.AppTelemetry)
OSF.AppTelemetry.onPropertyDone("GetOfficeThemeInfo",0)
}
else
{
var startTime=(new Date).getTime();
var osfOfficeTheme=OSF.DDA._OsfControlContext.GetOfficeThemeInfo();
var endTime=(new Date).getTime();
if(OSF.AppTelemetry)
OSF.AppTelemetry.onPropertyDone("GetOfficeThemeInfo",Math.abs(endTime - startTime));
this._osfOfficeTheme=JSON.parse(osfOfficeTheme);
for(var color in this._osfOfficeTheme)
this._osfOfficeTheme[color]=OSF.OUtil.convertIntToCssHexColor(this._osfOfficeTheme[color]);
this._osfOfficeThemeTimeStamp=endTime
}
return this._osfOfficeTheme
}
};
OfficeThemeManager.instance=function()
{
if(OfficeThemeManager._instance==null)
OfficeThemeManager._instance=new OfficeThemeManager;
return OfficeThemeManager._instance
};
OfficeThemeManager._osfOfficeThemeCacheValidPeriod=5e3;
OfficeThemeManager._instance=null;
return OfficeThemeManager
}();
OfficeTheme.OfficeThemeManager=OfficeThemeManager;
OSF.OUtil.setNamespace("OfficeTheme",OSF.DDA);
OSF.DDA.OfficeTheme.getOfficeTheme=OfficeExt.OfficeTheme.OfficeThemeManager.instance().getOfficeTheme
})(OfficeTheme=OfficeExt.OfficeTheme || (OfficeExt.OfficeTheme={}))
})(OfficeExt || (OfficeExt={}));
OSF.DDA.ClientSettingsManager={
getSettingsExecuteMethod: function OSF_DDA_ClientSettingsManager$getSettingsExecuteMethod(hostDelegateMethod)
{
return function(args)
{
var status,
response;
try
{
response=hostDelegateMethod(args.hostCallArgs,args.onCalling,args.onReceiving);
status=OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess
}
catch(ex)
{
status=OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError;
response={
name: Strings.OfficeOM.L_InternalError,
message: ex
}
}
if(args.onComplete)
args.onComplete(status,response)
}
},
read: function OSF_DDA_ClientSettingsManager$read(onCalling, onReceiving)
{
var keys=[];
var values=[];
if(onCalling)
onCalling();
OSF.DDA._OsfControlContext.GetSettings().Read(keys,values);
if(onReceiving)
onReceiving();
var serializedSettings={};
for(var index=0; index < keys.length; index++)
serializedSettings[keys[index]]=values[index];
return serializedSettings
},
write: function OSF_DDA_ClientSettingsManager$write(serializedSettings, overwriteIfStale, onCalling, onReceiving)
{
var keys=[];
var values=[];
for(var key in serializedSettings)
{
keys.push(key);
values.push(serializedSettings[key])
}
if(onCalling)
onCalling();
OSF.DDA._OsfControlContext.GetSettings().Write(keys,values);
if(onReceiving)
onReceiving()
}
};
OSF.InitializationHelper.prototype.initializeSettings=function OSF_InitializationHelper$initializeSettings(refreshSupported)
{
var serializedSettings=OSF.DDA.ClientSettingsManager.read();
var settings=this.deserializeSettings(serializedSettings,refreshSupported);
return settings
};
OSF.InitializationHelper.prototype.getAppContext=function OSF_InitializationHelper$getAppContext(wnd, gotAppContext)
{
var returnedContext;
var context=OSF.DDA._OsfControlContext=window.external.GetContext();
var appType=context.GetAppType();
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 id=context.GetSolutionRef();
var version=context.GetAppVersionMajor();
var minorVersion=context.GetAppVersionMinor();
var UILocale=context.GetAppUILocale();
var dataLocale=context.GetAppDataLocale();
var docUrl=context.GetDocUrl();
var clientMode=context.GetAppCapabilities();
var reason=context.GetActivationMode();
var osfControlType=context.GetControlIntegrationLevel();
var settings=[];
var eToken;
try
{
eToken=context.GetSolutionToken()
}
catch(ex){}
var correlationId;
if(typeof context.GetCorrelationId !=="undefined")
correlationId=context.GetCorrelationId();
var appInstanceId;
if(typeof context.GetInstanceId !=="undefined")
appInstanceId=context.GetInstanceId();
var touchEnabled;
if(typeof context.GetTouchEnabled !=="undefined")
touchEnabled=context.GetTouchEnabled();
var commerceAllowed;
if(typeof context.GetCommerceAllowed !=="undefined")
commerceAllowed=context.GetCommerceAllowed();
var requirementMatrix;
if(typeof context.GetSupportedMatrix !=="undefined")
requirementMatrix=context.GetSupportedMatrix();
eToken=eToken ? eToken.toString() : "";
returnedContext=new OSF.OfficeAppContext(id,appType,version,UILocale,dataLocale,docUrl,clientMode,settings,reason,osfControlType,eToken,correlationId,appInstanceId,touchEnabled,commerceAllowed,minorVersion,requirementMatrix);
if(OSF.AppTelemetry)
OSF.AppTelemetry.initialize(returnedContext);
gotAppContext(returnedContext)
};
(function()
{
var checkScriptOverride=function OSF$checkScriptOverride()
{
var postScriptOverrideCheckAction=function OSF$postScriptOverrideCheckAction(customizedScriptPath)
{
if(customizedScriptPath)
OSF.OUtil.loadScript(customizedScriptPath,function()
{
OsfMsAjaxFactory.msAjaxDebug.trace("loaded customized script:"+customizedScriptPath)
})
};
var conversationID,
webAppUrl,
items;
var clientEndPoint=null;
var xdmInfoValue=OSF.OUtil.parseXdmInfo();
if(xdmInfoValue)
{
items=OSF.OUtil.getInfoItems(xdmInfoValue);
if(items && items.length >=3)
{
conversationID=items[0];
webAppUrl=items[2];
clientEndPoint=Microsoft.Office.Common.XdmCommunicationManager.connect(conversationID,window.parent,webAppUrl)
}
}
var customizedScriptPath=null;
if(!clientEndPoint)
{
try
{
if(typeof window.external.getCustomizedScriptPath !=="undefined")
customizedScriptPath=window.external.getCustomizedScriptPath()
}
catch(ex)
{
OsfMsAjaxFactory.msAjaxDebug.trace("no script override through window.external.")
}
postScriptOverrideCheckAction(customizedScriptPath)
}
else
try
{
clientEndPoint.invoke("getCustomizedScriptPathAsync",function OSF$getCustomizedScriptPathAsyncCallback(errorCode, scriptPath)
{
postScriptOverrideCheckAction(errorCode===0 ? scriptPath : null)
},{__timeout__: 1e3})
}
catch(ex)
{
OsfMsAjaxFactory.msAjaxDebug.trace("no script override through cross frame communication.")
}
};
if(OSF._OfficeAppFactory.getLoadScriptHelper)
OSF._OfficeAppFactory.getLoadScriptHelper().waitForScripts([OSF.ConstantNames.MicrosoftAjaxId],checkScriptOverride)
})();
Microsoft.Office.WebExtension.EventType={};
OSF.EventDispatch=function OSF_EventDispatch(eventTypes)
{
this._eventHandlers={};
this._queuedEventsArgs={};
for(var entry in eventTypes)
{
var eventType=eventTypes[entry];
this._eventHandlers[eventType]=[];
this._queuedEventsArgs[eventType]=[]
}
};
OSF.EventDispatch.prototype={
getSupportedEvents: function OSF_EventDispatch$getSupportedEvents()
{
var events=[];
for(var eventName in this._eventHandlers)
events.push(eventName);
return events
},
supportsEvent: function OSF_EventDispatch$supportsEvent(event)
{
var isSupported=false;
for(var eventName in this._eventHandlers)
if(event==eventName)
{
isSupported=true;
break
}
return isSupported
},
hasEventHandler: function OSF_EventDispatch$hasEventHandler(eventType, handler)
{
var handlers=this._eventHandlers[eventType];
if(handlers && handlers.length > 0)
for(var h in handlers)
if(handlers[h]===handler)
return true;
return false
},
addEventHandler: function OSF_EventDispatch$addEventHandler(eventType, handler)
{
if(typeof handler !="function")
return false;
var handlers=this._eventHandlers[eventType];
if(handlers && !this.hasEventHandler(eventType,handler))
{
handlers.push(handler);
return true
}
else
return false
},
addEventHandlerAndFireQueuedEvent: function OSF_EventDispatch$addEventHandlerAndFireQueuedEvent(eventType, handler)
{
var handlers=this._eventHandlers[eventType];
var isFirstHandler=handlers.length==0;
var succeed=this.addEventHandler(eventType,handler);
if(isFirstHandler && succeed)
this.fireQueuedEvent(eventType);
return succeed
},
removeEventHandler: function OSF_EventDispatch$removeEventHandler(eventType, handler)
{
var handlers=this._eventHandlers[eventType];
if(handlers && handlers.length > 0)
for(var index=0; index < handlers.length; index++)
if(handlers[index]===handler)
{
handlers.splice(index,1);
return true
}
return false
},
clearEventHandlers: function OSF_EventDispatch$clearEventHandlers(eventType)
{
if(typeof this._eventHandlers[eventType] !="undefined" && this._eventHandlers[eventType].length > 0)
{
this._eventHandlers[eventType]=[];
return true
}
return false
},
getEventHandlerCount: function OSF_EventDispatch$getEventHandlerCount(eventType)
{
return this._eventHandlers[eventType] !=undefined ? this._eventHandlers[eventType].length : -1
},
fireEvent: function OSF_EventDispatch$fireEvent(eventArgs)
{
if(eventArgs.type==undefined)
return false;
var eventType=eventArgs.type;
if(eventType && this._eventHandlers[eventType])
{
var eventHandlers=this._eventHandlers[eventType];
for(var handler in eventHandlers)
eventHandlers[handler](eventArgs);
return true
}
else
return false
},
fireOrQueueEvent: function OSF_EventDispatch$fireOrQueueEvent(eventArgs)
{
var eventType=eventArgs.type;
if(eventType && this._eventHandlers[eventType])
{
var eventHandlers=this._eventHandlers[eventType];
var queuedEvents=this._queuedEventsArgs[eventType];
if(eventHandlers.length==0)
queuedEvents.push(eventArgs);
else
this.fireEvent(eventArgs);
return true
}
else
return false
},
fireQueuedEvent: function OSF_EventDispatch$queueEvent(eventType)
{
if(eventType && this._eventHandlers[eventType])
{
var eventHandlers=this._eventHandlers[eventType];
var queuedEvents=this._queuedEventsArgs[eventType];
if(eventHandlers.length > 0)
{
var eventHandler=eventHandlers[0];
while(queuedEvents.length > 0)
{
var eventArgs=queuedEvents.shift();
eventHandler(eventArgs)
}
return true
}
}
return false
}
};
OSF.DDA.OMFactory=OSF.DDA.OMFactory || {};
OSF.DDA.OMFactory.manufactureEventArgs=function OSF_DDA_OMFactory$manufactureEventArgs(eventType, target, eventProperties)
{
var args;
switch(eventType)
{
case Microsoft.Office.WebExtension.EventType.DocumentSelectionChanged:
args=new OSF.DDA.DocumentSelectionChangedEventArgs(target);
break;
case Microsoft.Office.WebExtension.EventType.BindingSelectionChanged:
args=new OSF.DDA.BindingSelectionChangedEventArgs(this.manufactureBinding(eventProperties,target.document),eventProperties[OSF.DDA.PropertyDescriptors.Subset]);
break;
case Microsoft.Office.WebExtension.EventType.BindingDataChanged:
args=new OSF.DDA.BindingDataChangedEventArgs(this.manufactureBinding(eventProperties,target.document));
break;
case Microsoft.Office.WebExtension.EventType.SettingsChanged:
args=new OSF.DDA.SettingsChangedEventArgs(target);
break;
case Microsoft.Office.WebExtension.EventType.ActiveViewChanged:
args=new OSF.DDA.ActiveViewChangedEventArgs(eventProperties);
break;
case Microsoft.Office.WebExtension.EventType.OfficeThemeChanged:
args=new OSF.DDA.Theming.OfficeThemeChangedEventArgs(eventProperties);
break;
case Microsoft.Office.WebExtension.EventType.DocumentThemeChanged:
args=new OSF.DDA.Theming.DocumentThemeChangedEventArgs(eventProperties);
break;
case Microsoft.Office.WebExtension.EventType.AppCommandInvoked:
args=OSF.DDA.AppCommand.AppCommandInvokedEventArgs.create(eventProperties);
break;
case Microsoft.Office.WebExtension.EventType.DataNodeInserted:
args=new OSF.DDA.NodeInsertedEventArgs(this.manufactureDataNode(eventProperties[OSF.DDA.DataNodeEventProperties.NewNode]),eventProperties[OSF.DDA.DataNodeEventProperties.InUndoRedo]);
break;
case Microsoft.Office.WebExtension.EventType.DataNodeReplaced:
args=new OSF.DDA.NodeReplacedEventArgs(this.manufactureDataNode(eventProperties[OSF.DDA.DataNodeEventProperties.OldNode]),this.manufactureDataNode(eventProperties[OSF.DDA.DataNodeEventProperties.NewNode]),eventProperties[OSF.DDA.DataNodeEventProperties.InUndoRedo]);
break;
case Microsoft.Office.WebExtension.EventType.DataNodeDeleted:
args=new OSF.DDA.NodeDeletedEventArgs(this.manufactureDataNode(eventProperties[OSF.DDA.DataNodeEventProperties.OldNode]),this.manufactureDataNode(eventProperties[OSF.DDA.DataNodeEventProperties.NextSiblingNode]),eventProperties[OSF.DDA.DataNodeEventProperties.InUndoRedo]);
break;
case Microsoft.Office.WebExtension.EventType.TaskSelectionChanged:
args=new OSF.DDA.TaskSelectionChangedEventArgs(target);
break;
case Microsoft.Office.WebExtension.EventType.ResourceSelectionChanged:
args=new OSF.DDA.ResourceSelectionChangedEventArgs(target);
break;
case Microsoft.Office.WebExtension.EventType.ViewSelectionChanged:
args=new OSF.DDA.ViewSelectionChangedEventArgs(target);
break;
case Microsoft.Office.WebExtension.EventType.DialogMessageReceived:
args=new OSF.DDA.DialogEventArgs(eventProperties);
break;
default:
throw OsfMsAjaxFactory.msAjaxError.argument(Microsoft.Office.WebExtension.Parameters.EventType,OSF.OUtil.formatString(Strings.OfficeOM.L_NotSupportedEventType,eventType));
}
return args
};
OSF.DDA.AsyncMethodNames.addNames({
AddHandlerAsync: "addHandlerAsync",
RemoveHandlerAsync: "removeHandlerAsync"
});
OSF.DDA.AsyncMethodCalls.define({
method: OSF.DDA.AsyncMethodNames.AddHandlerAsync,
requiredArguments: [{
name: Microsoft.Office.WebExtension.Parameters.EventType,
"enum": Microsoft.Office.WebExtension.EventType,
verify: function(eventType, caller, eventDispatch)
{
return eventDispatch.supportsEvent(eventType)
}
},{
name: Microsoft.Office.WebExtension.Parameters.Handler,
types: ["function"]
}],
supportedOptions: [],
privateStateCallbacks: []
});
OSF.DDA.AsyncMethodCalls.define({
method: OSF.DDA.AsyncMethodNames.RemoveHandlerAsync,
requiredArguments: [{
name: Microsoft.Office.WebExtension.Parameters.EventType,
"enum": Microsoft.Office.WebExtension.EventType,
verify: function(eventType, caller, eventDispatch)
{
return eventDispatch.supportsEvent(eventType)
}
}],
supportedOptions: [{
name: Microsoft.Office.WebExtension.Parameters.Handler,
value: {
types: ["function","object"],
defaultValue: null
}
}],
privateStateCallbacks: []
});
OSF.DDA.SafeArray.Delegate.ParameterMap.define({type: OSF.DDA.EventDispId.dispidDialogMessageReceivedEvent});
OSF.OUtil.augmentList(OSF.DDA.EventDescriptors,{DialogMessageReceivedEvent: "DialogMessageReceivedEvent"});
OSF.OUtil.augmentList(Microsoft.Office.WebExtension.EventType,{
DialogMessageReceived: "dialogMessageReceived",
DialogEventReceived: "dialogEventReceived"
});
OSF.OUtil.augmentList(OSF.DDA.PropertyDescriptors,{
MessageType: "messageType",
MessageContent: "messageContent"
});
OSF.DDA.DialogEventType={};
OSF.OUtil.augmentList(OSF.DDA.DialogEventType,{
DialogClosed: "dialogClosed",
NavigationFailed: "naviationFailed"
});
OSF.DDA.AsyncMethodNames.addNames({
DisplayDialogAsync: "displayDialogAsync",
CloseAsync: "close"
});
OSF.DDA.SyncMethodNames.addNames({
MessageParent: "messageParent",
AddMessageHandler: "addEventHandler"
});
OSF.DDA.UI.ParentUI=function OSF_DDA_ParentUI()
{
var eventDispatch=new OSF.EventDispatch([Microsoft.Office.WebExtension.EventType.DialogMessageReceived,Microsoft.Office.WebExtension.EventType.DialogEventReceived]);
var openDialogName=OSF.DDA.AsyncMethodNames.DisplayDialogAsync.displayName;
var target=this;
if(!target[openDialogName])
OSF.OUtil.defineEnumerableProperty(target,openDialogName,{value: function()
{
var openDialog=OSF._OfficeAppFactory.getHostFacade()[OSF.DDA.DispIdHost.Methods.OpenDialog];
openDialog(arguments,eventDispatch,target)
}});
OSF.OUtil.finalizeProperties(this)
};
OSF.DDA.UI.ChildUI=function OSF_DDA_ChildUI()
{
var messageParentName=OSF.DDA.SyncMethodNames.MessageParent.displayName;
var target=this;
if(!target[messageParentName])
OSF.OUtil.defineEnumerableProperty(target,messageParentName,{value: function()
{
var messageParent=OSF._OfficeAppFactory.getHostFacade()[OSF.DDA.DispIdHost.Methods.MessageParent];
return messageParent(arguments,target)
}});
OSF.OUtil.finalizeProperties(this)
};
OSF.DialogHandler=function OSF_DialogHandler(){};
OSF.DDA.DialogEventArgs=function OSF_DDA_DialogEventArgs(message)
{
if(message[OSF.DDA.PropertyDescriptors.MessageType]==OSF.DialogMessageType.DialogMessageReceived)
OSF.OUtil.defineEnumerableProperties(this,{
type: {value: Microsoft.Office.WebExtension.EventType.DialogMessageReceived},
message: {value: message[OSF.DDA.PropertyDescriptors.MessageContent]}
});
else
OSF.OUtil.defineEnumerableProperties(this,{
type: {value: Microsoft.Office.WebExtension.EventType.DialogEventReceived},
error: {value: message[OSF.DDA.PropertyDescriptors.MessageType]}
})
};
OSF.DDA.AsyncMethodCalls.define({
method: OSF.DDA.AsyncMethodNames.DisplayDialogAsync,
requiredArguments: [{
name: Microsoft.Office.WebExtension.Parameters.Url,
types: ["string"]
}],
supportedOptions: [{
name: Microsoft.Office.WebExtension.Parameters.Width,
value: {
types: ["number"],
defaultValue: 99
}
},{
name: Microsoft.Office.WebExtension.Parameters.Height,
value: {
types: ["number"],
defaultValue: 99
}
},{
name: Microsoft.Office.WebExtension.Parameters.RequireHTTPs,
value: {
types: ["boolean"],
defaultValue: true
}
},{
name: Microsoft.Office.WebExtension.Parameters.XFrameDenySafe,
value: {
types: ["boolean"],
defaultValue: true
}
}],
privateStateCallbacks: [],
onSucceeded: function(args, caller, callArgs)
{
var targetId=args[Microsoft.Office.WebExtension.Parameters.Id];
var eventDispatch=args[Microsoft.Office.WebExtension.Parameters.Data];
var dialog=new OSF.DialogHandler;
var closeDialog=OSF.DDA.AsyncMethodNames.CloseAsync.displayName;
OSF.OUtil.defineEnumerableProperty(dialog,closeDialog,{value: function()
{
var closeDialogfunction=OSF._OfficeAppFactory.getHostFacade()[OSF.DDA.DispIdHost.Methods.CloseDialog];
closeDialogfunction(arguments,targetId,eventDispatch,dialog)
}});
var addHandler=OSF.DDA.SyncMethodNames.AddMessageHandler.displayName;
OSF.OUtil.defineEnumerableProperty(dialog,addHandler,{value: function()
{
var syncMethodCall=OSF.DDA.SyncMethodCalls[OSF.DDA.SyncMethodNames.AddMessageHandler.id];
var callArgs=syncMethodCall.verifyAndExtractCall(arguments,dialog,eventDispatch);
var eventType=callArgs[Microsoft.Office.WebExtension.Parameters.EventType];
var handler=callArgs[Microsoft.Office.WebExtension.Parameters.Handler];
return eventDispatch.addEventHandlerAndFireQueuedEvent(eventType,handler)
}});
return dialog
},
checkCallArgs: function(callArgs, caller, stateInfo)
{
if(callArgs[Microsoft.Office.WebExtension.Parameters.Width] <=0)
callArgs[Microsoft.Office.WebExtension.Parameters.Width]=1;
if(callArgs[Microsoft.Office.WebExtension.Parameters.Width] > 100)
callArgs[Microsoft.Office.WebExtension.Parameters.Width]=99;
if(callArgs[Microsoft.Office.WebExtension.Parameters.Height] <=0)
callArgs[Microsoft.Office.WebExtension.Parameters.Height]=1;
if(callArgs[Microsoft.Office.WebExtension.Parameters.Height] > 100)
callArgs[Microsoft.Office.WebExtension.Parameters.Height]=99;
return callArgs
}
});
OSF.DDA.AsyncMethodCalls.define({
method: OSF.DDA.AsyncMethodNames.CloseAsync,
requiredArguments: [],
supportedOptions: [],
privateStateCallbacks: []
});
OSF.DDA.SyncMethodCalls.define({
method: OSF.DDA.SyncMethodNames.MessageParent,
requiredArguments: [{
name: Microsoft.Office.WebExtension.Parameters.MessageToParent,
types: ["string","number","boolean"]
}],
supportedOptions: []
});
OSF.DDA.SyncMethodCalls.define({
method: OSF.DDA.SyncMethodNames.AddMessageHandler,
requiredArguments: [{
name: Microsoft.Office.WebExtension.Parameters.EventType,
"enum": Microsoft.Office.WebExtension.EventType,
verify: function(eventType, caller, eventDispatch)
{
return eventDispatch.supportsEvent(eventType)
}
},{
name: Microsoft.Office.WebExtension.Parameters.Handler,
types: ["function"]
}],
supportedOptions: []
});
OSF.DDA.SafeArray.Delegate.messageParent=function OSF_DDA_SafeArray_Delegate$MessageParent(args)
{
try
{
if(args.onCalling)
args.onCalling();
var startTime=(new Date).getTime();
var result=OSF.ClientHostController.messageParent(args.hostCallArgs);
if(args.onReceiving)
args.onReceiving();
if(OSF.AppTelemetry)
OSF.AppTelemetry.onMethodDone(args.dispId,args.hostCallArgs,Math.abs((new Date).getTime() - startTime),result);
return result
}
catch(ex)
{
return OSF.DDA.SafeArray.Delegate._onExceptionSyncMethod(ex)
}
};
OSF.DDA.SafeArray.Delegate.ParameterMap.define({
type: OSF.DDA.EventDispId.dispidDialogMessageReceivedEvent,
fromHost: [{
name: OSF.DDA.EventDescriptors.DialogMessageReceivedEvent,
value: OSF.DDA.SafeArray.Delegate.ParameterMap.self
}],
isComplexType: true
});
OSF.DDA.SafeArray.Delegate.ParameterMap.define({
type: OSF.DDA.EventDescriptors.DialogMessageReceivedEvent,
fromHost: [{
name: OSF.DDA.PropertyDescriptors.MessageType,
value: 0
},{
name: OSF.DDA.PropertyDescriptors.MessageContent,
value: 1
}],
isComplexType: true
});
var OSFLog;
(function(OSFLog)
{
var BaseUsageData=function()
{
function BaseUsageData(table)
{
this._table=table;
this._fields={}
}
Object.defineProperty(BaseUsageData.prototype,"Fields",{
get: function()
{
return this._fields
},
enumerable: true,
configurable: true
});
Object.defineProperty(BaseUsageData.prototype,"Table",{
get: function()
{
return this._table
},
enumerable: true,
configurable: true
});
BaseUsageData.prototype.SerializeFields=function(){};
BaseUsageData.prototype.SetSerializedField=function(key, value)
{
if(typeof value !=="undefined" && value !==null)
this._serializedFields[key]=value.toString()
};
BaseUsageData.prototype.SerializeRow=function()
{
this._serializedFields={};
this.SetSerializedField("Table",this._table);
this.SerializeFields();
return JSON.stringify(this._serializedFields)
};
return BaseUsageData
}();
OSFLog.BaseUsageData=BaseUsageData;
var AppActivatedUsageData=function(_super)
{
__extends(AppActivatedUsageData,_super);
function AppActivatedUsageData()
{
_super.call(this,"AppActivated")
}
Object.defineProperty(AppActivatedUsageData.prototype,"CorrelationId",{
get: function()
{
return this.Fields["CorrelationId"]
},
set: function(value)
{
this.Fields["CorrelationId"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppActivatedUsageData.prototype,"SessionId",{
get: function()
{
return this.Fields["SessionId"]
},
set: function(value)
{
this.Fields["SessionId"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppActivatedUsageData.prototype,"AppId",{
get: function()
{
return this.Fields["AppId"]
},
set: function(value)
{
this.Fields["AppId"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppActivatedUsageData.prototype,"AppInstanceId",{
get: function()
{
return this.Fields["AppInstanceId"]
},
set: function(value)
{
this.Fields["AppInstanceId"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppActivatedUsageData.prototype,"AppURL",{
get: function()
{
return this.Fields["AppURL"]
},
set: function(value)
{
this.Fields["AppURL"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppActivatedUsageData.prototype,"AssetId",{
get: function()
{
return this.Fields["AssetId"]
},
set: function(value)
{
this.Fields["AssetId"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppActivatedUsageData.prototype,"Browser",{
get: function()
{
return this.Fields["Browser"]
},
set: function(value)
{
this.Fields["Browser"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppActivatedUsageData.prototype,"UserId",{
get: function()
{
return this.Fields["UserId"]
},
set: function(value)
{
this.Fields["UserId"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppActivatedUsageData.prototype,"Host",{
get: function()
{
return this.Fields["Host"]
},
set: function(value)
{
this.Fields["Host"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppActivatedUsageData.prototype,"HostVersion",{
get: function()
{
return this.Fields["HostVersion"]
},
set: function(value)
{
this.Fields["HostVersion"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppActivatedUsageData.prototype,"ClientId",{
get: function()
{
return this.Fields["ClientId"]
},
set: function(value)
{
this.Fields["ClientId"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppActivatedUsageData.prototype,"AppSizeWidth",{
get: function()
{
return this.Fields["AppSizeWidth"]
},
set: function(value)
{
this.Fields["AppSizeWidth"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppActivatedUsageData.prototype,"AppSizeHeight",{
get: function()
{
return this.Fields["AppSizeHeight"]
},
set: function(value)
{
this.Fields["AppSizeHeight"]=value
},
enumerable: true,
configurable: true
});
AppActivatedUsageData.prototype.SerializeFields=function()
{
this.SetSerializedField("CorrelationId",this.CorrelationId);
this.SetSerializedField("SessionId",this.SessionId);
this.SetSerializedField("AppId",this.AppId);
this.SetSerializedField("AppInstanceId",this.AppInstanceId);
this.SetSerializedField("AppURL",this.AppURL);
this.SetSerializedField("AssetId",this.AssetId);
this.SetSerializedField("Browser",this.Browser);
this.SetSerializedField("UserId",this.UserId);
this.SetSerializedField("Host",this.Host);
this.SetSerializedField("HostVersion",this.HostVersion);
this.SetSerializedField("ClientId",this.ClientId);
this.SetSerializedField("AppSizeWidth",this.AppSizeWidth);
this.SetSerializedField("AppSizeHeight",this.AppSizeHeight)
};
return AppActivatedUsageData
}(BaseUsageData);
OSFLog.AppActivatedUsageData=AppActivatedUsageData;
var ScriptLoadUsageData=function(_super)
{
__extends(ScriptLoadUsageData,_super);
function ScriptLoadUsageData()
{
_super.call(this,"ScriptLoad")
}
Object.defineProperty(ScriptLoadUsageData.prototype,"CorrelationId",{
get: function()
{
return this.Fields["CorrelationId"]
},
set: function(value)
{
this.Fields["CorrelationId"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(ScriptLoadUsageData.prototype,"SessionId",{
get: function()
{
return this.Fields["SessionId"]
},
set: function(value)
{
this.Fields["SessionId"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(ScriptLoadUsageData.prototype,"ScriptId",{
get: function()
{
return this.Fields["ScriptId"]
},
set: function(value)
{
this.Fields["ScriptId"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(ScriptLoadUsageData.prototype,"StartTime",{
get: function()
{
return this.Fields["StartTime"]
},
set: function(value)
{
this.Fields["StartTime"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(ScriptLoadUsageData.prototype,"ResponseTime",{
get: function()
{
return this.Fields["ResponseTime"]
},
set: function(value)
{
this.Fields["ResponseTime"]=value
},
enumerable: true,
configurable: true
});
ScriptLoadUsageData.prototype.SerializeFields=function()
{
this.SetSerializedField("CorrelationId",this.CorrelationId);
this.SetSerializedField("SessionId",this.SessionId);
this.SetSerializedField("ScriptId",this.ScriptId);
this.SetSerializedField("StartTime",this.StartTime);
this.SetSerializedField("ResponseTime",this.ResponseTime)
};
return ScriptLoadUsageData
}(BaseUsageData);
OSFLog.ScriptLoadUsageData=ScriptLoadUsageData;
var AppClosedUsageData=function(_super)
{
__extends(AppClosedUsageData,_super);
function AppClosedUsageData()
{
_super.call(this,"AppClosed")
}
Object.defineProperty(AppClosedUsageData.prototype,"CorrelationId",{
get: function()
{
return this.Fields["CorrelationId"]
},
set: function(value)
{
this.Fields["CorrelationId"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppClosedUsageData.prototype,"SessionId",{
get: function()
{
return this.Fields["SessionId"]
},
set: function(value)
{
this.Fields["SessionId"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppClosedUsageData.prototype,"FocusTime",{
get: function()
{
return this.Fields["FocusTime"]
},
set: function(value)
{
this.Fields["FocusTime"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppClosedUsageData.prototype,"AppSizeFinalWidth",{
get: function()
{
return this.Fields["AppSizeFinalWidth"]
},
set: function(value)
{
this.Fields["AppSizeFinalWidth"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppClosedUsageData.prototype,"AppSizeFinalHeight",{
get: function()
{
return this.Fields["AppSizeFinalHeight"]
},
set: function(value)
{
this.Fields["AppSizeFinalHeight"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppClosedUsageData.prototype,"OpenTime",{
get: function()
{
return this.Fields["OpenTime"]
},
set: function(value)
{
this.Fields["OpenTime"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppClosedUsageData.prototype,"CloseMethod",{
get: function()
{
return this.Fields["CloseMethod"]
},
set: function(value)
{
this.Fields["CloseMethod"]=value
},
enumerable: true,
configurable: true
});
AppClosedUsageData.prototype.SerializeFields=function()
{
this.SetSerializedField("CorrelationId",this.CorrelationId);
this.SetSerializedField("SessionId",this.SessionId);
this.SetSerializedField("FocusTime",this.FocusTime);
this.SetSerializedField("AppSizeFinalWidth",this.AppSizeFinalWidth);
this.SetSerializedField("AppSizeFinalHeight",this.AppSizeFinalHeight);
this.SetSerializedField("OpenTime",this.OpenTime);
this.SetSerializedField("CloseMethod",this.CloseMethod)
};
return AppClosedUsageData
}(BaseUsageData);
OSFLog.AppClosedUsageData=AppClosedUsageData;
var APIUsageUsageData=function(_super)
{
__extends(APIUsageUsageData,_super);
function APIUsageUsageData()
{
_super.call(this,"APIUsage")
}
Object.defineProperty(APIUsageUsageData.prototype,"CorrelationId",{
get: function()
{
return this.Fields["CorrelationId"]
},
set: function(value)
{
this.Fields["CorrelationId"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(APIUsageUsageData.prototype,"SessionId",{
get: function()
{
return this.Fields["SessionId"]
},
set: function(value)
{
this.Fields["SessionId"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(APIUsageUsageData.prototype,"APIType",{
get: function()
{
return this.Fields["APIType"]
},
set: function(value)
{
this.Fields["APIType"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(APIUsageUsageData.prototype,"APIID",{
get: function()
{
return this.Fields["APIID"]
},
set: function(value)
{
this.Fields["APIID"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(APIUsageUsageData.prototype,"Parameters",{
get: function()
{
return this.Fields["Parameters"]
},
set: function(value)
{
this.Fields["Parameters"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(APIUsageUsageData.prototype,"ResponseTime",{
get: function()
{
return this.Fields["ResponseTime"]
},
set: function(value)
{
this.Fields["ResponseTime"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(APIUsageUsageData.prototype,"ErrorType",{
get: function()
{
return this.Fields["ErrorType"]
},
set: function(value)
{
this.Fields["ErrorType"]=value
},
enumerable: true,
configurable: true
});
APIUsageUsageData.prototype.SerializeFields=function()
{
this.SetSerializedField("CorrelationId",this.CorrelationId);
this.SetSerializedField("SessionId",this.SessionId);
this.SetSerializedField("APIType",this.APIType);
this.SetSerializedField("APIID",this.APIID);
this.SetSerializedField("Parameters",this.Parameters);
this.SetSerializedField("ResponseTime",this.ResponseTime);
this.SetSerializedField("ErrorType",this.ErrorType)
};
return APIUsageUsageData
}(BaseUsageData);
OSFLog.APIUsageUsageData=APIUsageUsageData;
var AppInitializationUsageData=function(_super)
{
__extends(AppInitializationUsageData,_super);
function AppInitializationUsageData()
{
_super.call(this,"AppInitialization")
}
Object.defineProperty(AppInitializationUsageData.prototype,"CorrelationId",{
get: function()
{
return this.Fields["CorrelationId"]
},
set: function(value)
{
this.Fields["CorrelationId"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppInitializationUsageData.prototype,"SessionId",{
get: function()
{
return this.Fields["SessionId"]
},
set: function(value)
{
this.Fields["SessionId"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppInitializationUsageData.prototype,"SuccessCode",{
get: function()
{
return this.Fields["SuccessCode"]
},
set: function(value)
{
this.Fields["SuccessCode"]=value
},
enumerable: true,
configurable: true
});
Object.defineProperty(AppInitializationUsageData.prototype,"Message",{
get: function()
{
return this.Fields["Message"]
},
set: function(value)
{
this.Fields["Message"]=value
},
enumerable: true,
configurable: true
});
AppInitializationUsageData.prototype.SerializeFields=function()
{
this.SetSerializedField("CorrelationId",this.CorrelationId);
this.SetSerializedField("SessionId",this.SessionId);
this.SetSerializedField("SuccessCode",this.SuccessCode);
this.SetSerializedField("Message",this.Message)
};
return AppInitializationUsageData
}(BaseUsageData);
OSFLog.AppInitializationUsageData=AppInitializationUsageData
})(OSFLog || (OSFLog={}));
var Logger;
(function(Logger)
{
"use strict";
(function(TraceLevel)
{
TraceLevel[TraceLevel["info"]=0]="info";
TraceLevel[TraceLevel["warning"]=1]="warning";
TraceLevel[TraceLevel["error"]=2]="error"
})(Logger.TraceLevel || (Logger.TraceLevel={}));
var TraceLevel=Logger.TraceLevel;
(function(SendFlag)
{
SendFlag[SendFlag["none"]=0]="none";
SendFlag[SendFlag["flush"]=1]="flush"
})(Logger.SendFlag || (Logger.SendFlag={}));
var SendFlag=Logger.SendFlag;
function allowUploadingData()
{
if(OSF.Logger && OSF.Logger.ulsEndpoint)
OSF.Logger.ulsEndpoint.loadProxyFrame()
}
Logger.allowUploadingData=allowUploadingData;
function sendLog(traceLevel, message, flag)
{
if(OSF.Logger && OSF.Logger.ulsEndpoint)
{
var jsonObj={
traceLevel: traceLevel,
message: message,
flag: flag,
internalLog: true
};
var logs=JSON.stringify(jsonObj);
OSF.Logger.ulsEndpoint.writeLog(logs)
}
}
Logger.sendLog=sendLog;
function creatULSEndpoint()
{
try
{
return new ULSEndpointProxy
}
catch(e)
{
return null
}
}
var ULSEndpointProxy=function()
{
function ULSEndpointProxy()
{
var _this=this;
this.proxyFrame=null;
this.telemetryEndPoint="https://telemetryservice.firstpartyapps.oaspapps.com/telemetryservice/telemetryproxy.html";
this.buffer=[];
this.proxyFrameReady=false;
OSF.OUtil.addEventListener(window,"message",function(e)
{
return _this.tellProxyFrameReady(e)
});
setTimeout(function()
{
_this.loadProxyFrame()
},3e3)
}
ULSEndpointProxy.prototype.writeLog=function(log)
{
if(this.proxyFrameReady===true)
this.proxyFrame.contentWindow.postMessage(log,"*");
else if(this.buffer.length < 128)
this.buffer.push(log)
};
ULSEndpointProxy.prototype.loadProxyFrame=function()
{
if(this.proxyFrame==null)
{
this.proxyFrame=document.createElement("iframe");
this.proxyFrame.setAttribute("style","display:none");
this.proxyFrame.setAttribute("src",this.telemetryEndPoint);
document.head.appendChild(this.proxyFrame)
}
};
ULSEndpointProxy.prototype.tellProxyFrameReady=function(e)
{
var _this=this;
if(e.data==="ProxyFrameReadyToLog")
{
this.proxyFrameReady=true;
for(var i=0; i < this.buffer.length; i++)
this.writeLog(this.buffer[i]);
this.buffer.length=0;
OSF.OUtil.removeEventListener(window,"message",function(e)
{
return _this.tellProxyFrameReady(e)
})
}
else if(e.data==="ProxyFrameReadyToInit")
{
var initJson={
appName: "Office APPs",
sessionId: OSF.OUtil.Guid.generateNewGuid()
};
var initStr=JSON.stringify(initJson);
this.proxyFrame.contentWindow.postMessage(initStr,"*")
}
};
return ULSEndpointProxy
}();
if(!OSF.Logger)
OSF.Logger=Logger;
Logger.ulsEndpoint=creatULSEndpoint()
})(Logger || (Logger={}));
var OSFAppTelemetry;
(function(OSFAppTelemetry)
{
"use strict";
var appInfo;
var sessionId=OSF.OUtil.Guid.generateNewGuid();
var osfControlAppCorrelationId="";
var AppInfo=function()
{
function AppInfo(){}
return AppInfo
}();
var Event=function()
{
function Event(name, handler)
{
this.name=name;
this.handler=handler
}
return Event
}();
var AppStorage=function()
{
function AppStorage()
{
this.clientIDKey="Office API client";
this.logIdSetKey="Office App Log Id Set"
}
AppStorage.prototype.getClientId=function()
{
var clientId=this.getValue(this.clientIDKey);
if(!clientId || clientId.length <=0 || clientId.length > 40)
{
clientId=OSF.OUtil.Guid.generateNewGuid();
this.setValue(this.clientIDKey,clientId)
}
return clientId
};
AppStorage.prototype.saveLog=function(logId, log)
{
var logIdSet=this.getValue(this.logIdSetKey);
logIdSet=(logIdSet && logIdSet.length > 0 ? logIdSet+";" : "")+logId;
this.setValue(this.logIdSetKey,logIdSet);
this.setValue(logId,log)
};
AppStorage.prototype.enumerateLog=function(callback, clean)
{
var logIdSet=this.getValue(this.logIdSetKey);
if(logIdSet)
{
var ids=logIdSet.split(";");
for(var id in ids)
{
var logId=ids[id];
var log=this.getValue(logId);
if(log)
{
if(callback)
callback(logId,log);
if(clean)
this.remove(logId)
}
}
if(clean)
this.remove(this.logIdSetKey)
}
};
AppStorage.prototype.getValue=function(key)
{
var osfLocalStorage=OSF.OUtil.getLocalStorage();
var value="";
if(osfLocalStorage)
value=osfLocalStorage.getItem(key);
return value
};
AppStorage.prototype.setValue=function(key, value)
{
var osfLocalStorage=OSF.OUtil.getLocalStorage();
if(osfLocalStorage)
osfLocalStorage.setItem(key,value)
};
AppStorage.prototype.remove=function(key)
{
var osfLocalStorage=OSF.OUtil.getLocalStorage();
if(osfLocalStorage)
try
{
osfLocalStorage.removeItem(key)
}
catch(ex){}
};
return AppStorage
}();
var AppLogger=function()
{
function AppLogger(){}
AppLogger.prototype.LogData=function(data)
{
if(!OSF.Logger)
return;
OSF.Logger.sendLog(OSF.Logger.TraceLevel.info,data.SerializeRow(),OSF.Logger.SendFlag.none)
};
AppLogger.prototype.LogRawData=function(log)
{
if(!OSF.Logger)
return;
OSF.Logger.sendLog(OSF.Logger.TraceLevel.info,log,OSF.Logger.SendFlag.none)
};
return AppLogger
}();
function initialize(context)
{
if(!OSF.Logger)
return;
if(appInfo)
return;
appInfo=new AppInfo;
appInfo.hostVersion=context.get_appVersion();
appInfo.appId=context.get_id();
appInfo.host=context.get_appName();
appInfo.browser=window.navigator.userAgent;
appInfo.correlationId=context.get_correlationId();
appInfo.clientId=(new AppStorage).getClientId();
appInfo.appInstanceId=context.get_appInstanceId();
if(appInfo.appInstanceId)
appInfo.appInstanceId=appInfo.appInstanceId.replace(/[{}]/g,"").toLowerCase();
var index=location.href.indexOf("?");
appInfo.appURL=index==-1 ? location.href : location.href.substring(0,index);
(function getUserIdAndAssetIdFromToken(token, appInfo)
{
var xmlContent;
var parser;
var xmlDoc;
appInfo.assetId="";
appInfo.userId="";
try
{
xmlContent=decodeURIComponent(token);
parser=new DOMParser;
xmlDoc=parser.parseFromString(xmlContent,"text/xml");
appInfo.userId=xmlDoc.getElementsByTagName("t")[0].attributes.getNamedItem("cid").nodeValue;
appInfo.assetId=xmlDoc.getElementsByTagName("t")[0].attributes.getNamedItem("aid").nodeValue
}
catch(e){}
finally
{
xmlContent=null;
xmlDoc=null;
parser=null
}
})(context.get_eToken(),appInfo);
(function handleLifecycle()
{
var startTime=new Date;
var lastFocus=null;
var focusTime=0;
var finished=false;
var adjustFocusTime=function()
{
if(document.hasFocus())
{
if(lastFocus==null)
lastFocus=new Date
}
else if(lastFocus)
{
focusTime+=Math.abs((new Date).getTime() - lastFocus.getTime());
lastFocus=null
}
};
var eventList=[];
eventList.push(new Event("focus",adjustFocusTime));
eventList.push(new Event("blur",adjustFocusTime));
eventList.push(new Event("focusout",adjustFocusTime));
eventList.push(new Event("focusin",adjustFocusTime));
var exitFunction=function()
{
for(var i=0; i < eventList.length; i++)
OSF.OUtil.removeEventListener(window,eventList[i].name,eventList[i].handler);
eventList.length=0;
if(!finished)
{
if(document.hasFocus() && lastFocus)
{
focusTime+=Math.abs((new Date).getTime() - lastFocus.getTime());
lastFocus=null
}
OSFAppTelemetry.onAppClosed(Math.abs((new Date).getTime() - startTime.getTime()),focusTime);
finished=true
}
};
eventList.push(new Event("beforeunload",exitFunction));
eventList.push(new Event("unload",exitFunction));
for(var i=0; i < eventList.length; i++)
OSF.OUtil.addEventListener(window,eventList[i].name,eventList[i].handler);
adjustFocusTime()
})();
OSFAppTelemetry.onAppActivated()
}
OSFAppTelemetry.initialize=initialize;
function onAppActivated()
{
if(!appInfo)
return;
(new AppStorage).enumerateLog(function(id, log)
{
return(new AppLogger).LogRawData(log)
},true);
var data=new OSFLog.AppActivatedUsageData;
data.SessionId=sessionId;
data.AppId=appInfo.appId;
data.AssetId=appInfo.assetId;
data.AppURL=appInfo.appURL;
data.UserId=appInfo.userId;
data.ClientId=appInfo.clientId;
data.Browser=appInfo.browser;
data.Host=appInfo.host;
data.HostVersion=appInfo.hostVersion;
data.CorrelationId=appInfo.correlationId;
data.AppSizeWidth=window.innerWidth;
data.AppSizeHeight=window.innerHeight;
data.AppInstanceId=appInfo.appInstanceId;
(new AppLogger).LogData(data);
setTimeout(function()
{
if(!OSF.Logger)
return;
OSF.Logger.allowUploadingData()
},100)
}
OSFAppTelemetry.onAppActivated=onAppActivated;
function onScriptDone(scriptId, msStartTime, msResponseTime, appCorrelationId)
{
var data=new OSFLog.ScriptLoadUsageData;
data.CorrelationId=appCorrelationId;
data.SessionId=sessionId;
data.ScriptId=scriptId;
data.StartTime=msStartTime;
data.ResponseTime=msResponseTime;
(new AppLogger).LogData(data)
}
OSFAppTelemetry.onScriptDone=onScriptDone;
function onCallDone(apiType, id, parameters, msResponseTime, errorType)
{
if(!appInfo)
return;
var data=new OSFLog.APIUsageUsageData;
data.CorrelationId=osfControlAppCorrelationId;
data.SessionId=sessionId;
data.APIType=apiType;
data.APIID=id;
data.Parameters=parameters;
data.ResponseTime=msResponseTime;
data.ErrorType=errorType;
(new AppLogger).LogData(data)
}
OSFAppTelemetry.onCallDone=onCallDone;
function onMethodDone(id, args, msResponseTime, errorType)
{
var parameters=null;
if(args)
if(typeof args=="number")
parameters=String(args);
else if(typeof args==="object")
for(var index in args)
{
if(parameters !==null)
parameters+=",";
else
parameters="";
if(typeof args[index]=="number")
parameters+=String(args[index])
}
else
parameters="";
OSF.AppTelemetry.onCallDone("method",id,parameters,msResponseTime,errorType)
}
OSFAppTelemetry.onMethodDone=onMethodDone;
function onPropertyDone(propertyName, msResponseTime)
{
OSF.AppTelemetry.onCallDone("property",-1,propertyName,msResponseTime)
}
OSFAppTelemetry.onPropertyDone=onPropertyDone;
function onEventDone(id, errorType)
{
OSF.AppTelemetry.onCallDone("event",id,null,0,errorType)
}
OSFAppTelemetry.onEventDone=onEventDone;
function onRegisterDone(register, id, msResponseTime, errorType)
{
OSF.AppTelemetry.onCallDone(register ? "registerevent" : "unregisterevent",id,null,msResponseTime,errorType)
}
OSFAppTelemetry.onRegisterDone=onRegisterDone;
function onAppClosed(openTime, focusTime)
{
if(!appInfo)
return;
var data=new OSFLog.AppClosedUsageData;
data.CorrelationId=osfControlAppCorrelationId;
data.SessionId=sessionId;
data.FocusTime=focusTime;
data.OpenTime=openTime;
data.AppSizeFinalWidth=window.innerWidth;
data.AppSizeFinalHeight=window.innerHeight;
(new AppStorage).saveLog(sessionId,data.SerializeRow())
}
OSFAppTelemetry.onAppClosed=onAppClosed;
function setOsfControlAppCorrelationId(correlationId)
{
osfControlAppCorrelationId=correlationId
}
OSFAppTelemetry.setOsfControlAppCorrelationId=setOsfControlAppCorrelationId;
function doAppInitializationLogging(isException, message)
{
var data=new OSFLog.AppInitializationUsageData;
data.CorrelationId=osfControlAppCorrelationId;
data.SessionId=sessionId;
data.SuccessCode=isException ? 1 : 0;
data.Message=message;
(new AppLogger).LogData(data)
}
OSFAppTelemetry.doAppInitializationLogging=doAppInitializationLogging;
function logAppCommonMessage(message)
{
doAppInitializationLogging(false,message)
}
OSFAppTelemetry.logAppCommonMessage=logAppCommonMessage;
function logAppException(errorMessage)
{
doAppInitializationLogging(true,errorMessage)
}
OSFAppTelemetry.logAppException=logAppException;
OSF.AppTelemetry=OSFAppTelemetry
})(OSFAppTelemetry || (OSFAppTelemetry={}));
var OfficeExt;
(function(OfficeExt)
{
var AppCommand;
(function(AppCommand)
{
var AppCommandManager=function()
{
function AppCommandManager()
{
var _this=this;
this._pseudoDocument=null;
this._eventDispatch=null;
this._processAppCommandInvocation=function(args)
{
var verifyResult=_this._verifyManifestCallback(args.callbackName);
if(verifyResult.errorCode !=OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
{
_this._invokeAppCommandCompletedMethod(args.appCommandId,verifyResult.errorCode,"");
return
}
var eventObj=_this._constructEventObjectForCallback(args);
if(eventObj)
window.setTimeout(function()
{
verifyResult.callback(eventObj)
},0);
else
_this._invokeAppCommandCompletedMethod(args.appCommandId,OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError,"")
}
}
AppCommandManager.initializeOsfDda=function()
{
OSF.DDA.AsyncMethodNames.addNames({AppCommandInvocationCompletedAsync: "appCommandInvocationCompletedAsync"});
OSF.DDA.AsyncMethodCalls.define({
method: OSF.DDA.AsyncMethodNames.AppCommandInvocationCompletedAsync,
requiredArguments: [{
name: Microsoft.Office.WebExtension.Parameters.Id,
types: ["string"]
},{
name: Microsoft.Office.WebExtension.Parameters.Status,
types: ["number"]
},{
name: Microsoft.Office.WebExtension.Parameters.Data,
types: ["string"]
}]
});
OSF.OUtil.augmentList(OSF.DDA.EventDescriptors,{AppCommandInvokedEvent: "AppCommandInvokedEvent"});
OSF.OUtil.augmentList(Microsoft.Office.WebExtension.EventType,{AppCommandInvoked: "appCommandInvoked"});
OSF.OUtil.setNamespace("AppCommand",OSF.DDA);
OSF.DDA.AppCommand.AppCommandInvokedEventArgs=OfficeExt.AppCommand.AppCommandInvokedEventArgs
};
AppCommandManager.prototype.initializeAndChangeOnce=function(callback)
{
AppCommand.registerDdaFacade();
this._pseudoDocument={};
OSF.DDA.DispIdHost.addAsyncMethods(this._pseudoDocument,[OSF.DDA.AsyncMethodNames.AppCommandInvocationCompletedAsync,]);
this._eventDispatch=new OSF.EventDispatch([Microsoft.Office.WebExtension.EventType.AppCommandInvoked,]);
var onRegisterCompleted=function(result)
{
if(callback)
if(result.status=="succeeded")
callback(OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess);
else
callback(OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError)
};
OSF.DDA.DispIdHost.addEventSupport(this._pseudoDocument,this._eventDispatch);
this._pseudoDocument.addHandlerAsync(Microsoft.Office.WebExtension.EventType.AppCommandInvoked,this._processAppCommandInvocation,onRegisterCompleted)
};
AppCommandManager.prototype._verifyManifestCallback=function(callbackName)
{
var defaultResult={
callback: null,
errorCode: OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidCallback
};
callbackName=callbackName.trim();
try
{
var callList=callbackName.split(".");
var parentObject=window;
for(var i=0; i < callList.length - 1; i++)
if(parentObject[callList[i]] && typeof parentObject[callList[i]]=="object")
parentObject=parentObject[callList[i]];
else
return defaultResult;
var callbackFunc=parentObject[callList[callList.length - 1]];
if(typeof callbackFunc !="function")
return defaultResult
}
catch(e)
{
return defaultResult
}
return{
callback: callbackFunc,
errorCode: OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess
}
};
AppCommandManager.prototype._invokeAppCommandCompletedMethod=function(appCommandId, resultCode, data)
{
this._pseudoDocument.appCommandInvocationCompletedAsync(appCommandId,resultCode,data)
};
AppCommandManager.prototype._constructEventObjectForCallback=function(args)
{
var _this=this;
var eventObj=new AppCommandCallbackEventArgs;
try
{
var jsonData=JSON.parse(args.eventObjStr);
this._translateEventObjectInternal(jsonData,eventObj);
Object.defineProperty(eventObj,"completed",{
value: function()
{
var jsonString=JSON.stringify(eventObj);
_this._invokeAppCommandCompletedMethod(args.appCommandId,OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess,jsonString)
},
enumerable: true
})
}
catch(e)
{
eventObj=null
}
return eventObj
};
AppCommandManager.prototype._translateEventObjectInternal=function(input, output)
{
for(var key in input)
{
if(!input.hasOwnProperty(key))
continue;
var inputChild=input[key];
if(typeof inputChild=="object" && inputChild !=null)
{
OSF.OUtil.defineEnumerableProperty(output,key,{value: {}});
this._translateEventObjectInternal(inputChild,output[key])
}
else
Object.defineProperty(output,key,{
value: inputChild,
enumerable: true,
writable: true
})
}
};
AppCommandManager.prototype._constructObjectByTemplate=function(template, input)
{
var output={};
if(!template || !input)
return output;
for(var key in template)
if(template.hasOwnProperty(key))
{
output[key]=null;
if(input[key] !=null)
{
var templateChild=template[key];
var inputChild=input[key];
var inputChildType=typeof inputChild;
if(typeof templateChild=="object" && templateChild !=null)
output[key]=this._constructObjectByTemplate(templateChild,inputChild);
else if(inputChildType=="number" || inputChildType=="string" || inputChildType=="boolean")
output[key]=inputChild
}
}
return output
};
AppCommandManager.instance=function()
{
if(AppCommandManager._instance==null)
AppCommandManager._instance=new AppCommandManager;
return AppCommandManager._instance
};
AppCommandManager._instance=null;
return AppCommandManager
}();
AppCommand.AppCommandManager=AppCommandManager;
var AppCommandInvokedEventArgs=function()
{
function AppCommandInvokedEventArgs(appCommandId, callbackName, eventObjStr)
{
this.type=Microsoft.Office.WebExtension.EventType.AppCommandInvoked;
this.appCommandId=appCommandId;
this.callbackName=callbackName;
this.eventObjStr=eventObjStr
}
AppCommandInvokedEventArgs.create=function(eventProperties)
{
return new AppCommandInvokedEventArgs(eventProperties[AppCommand.AppCommandInvokedEventEnums.AppCommandId],eventProperties[AppCommand.AppCommandInvokedEventEnums.CallbackName],eventProperties[AppCommand.AppCommandInvokedEventEnums.EventObjStr])
};
return AppCommandInvokedEventArgs
}();
AppCommand.AppCommandInvokedEventArgs=AppCommandInvokedEventArgs;
var AppCommandCallbackEventArgs=function()
{
function AppCommandCallbackEventArgs(){}
return AppCommandCallbackEventArgs
}();
AppCommand.AppCommandCallbackEventArgs=AppCommandCallbackEventArgs;
AppCommand.AppCommandInvokedEventEnums={
AppCommandId: "appCommandId",
CallbackName: "callbackName",
EventObjStr: "eventObjStr"
}
})(AppCommand=OfficeExt.AppCommand || (OfficeExt.AppCommand={}))
})(OfficeExt || (OfficeExt={}));
OfficeExt.AppCommand.AppCommandManager.initializeOsfDda();
var OfficeExt;
(function(OfficeExt)
{
var AppCommand;
(function(AppCommand)
{
function registerDdaFacade()
{
if(OSF.DDA.SafeArray)
{
var parameterMap=OSF.DDA.SafeArray.Delegate.ParameterMap;
parameterMap.define({
type: OSF.DDA.MethodDispId.dispidAppCommandInvocationCompletedMethod,
toHost: [{
name: Microsoft.Office.WebExtension.Parameters.Id,
value: 0
},{
name: Microsoft.Office.WebExtension.Parameters.Status,
value: 1
},{
name: Microsoft.Office.WebExtension.Parameters.Data,
value: 2
}]
});
parameterMap.define({
type: OSF.DDA.EventDispId.dispidAppCommandInvokedEvent,
fromHost: [{
name: OSF.DDA.EventDescriptors.AppCommandInvokedEvent,
value: parameterMap.self
}],
isComplexType: true
});
parameterMap.define({
type: OSF.DDA.EventDescriptors.AppCommandInvokedEvent,
fromHost: [{
name: OfficeExt.AppCommand.AppCommandInvokedEventEnums.AppCommandId,
value: 0
},{
name: OfficeExt.AppCommand.AppCommandInvokedEventEnums.CallbackName,
value: 1
},{
name: OfficeExt.AppCommand.AppCommandInvokedEventEnums.EventObjStr,
value: 2
},],
isComplexType: true
})
}
}
AppCommand.registerDdaFacade=registerDdaFacade
})(AppCommand=OfficeExt.AppCommand || (OfficeExt.AppCommand={}))
})(OfficeExt || (OfficeExt={}));
var OfficeJsClient_OutlookWin32;
(function(OfficeJsClient_OutlookWin32)
{
function prepareApiSurface(appContext)
{
if(appContext.get_isDialog())
appContext.ui=new OSF.DDA.UI.ChildUI;
else
appContext.ui=new OSF.DDA.UI.ParentUI
}
OfficeJsClient_OutlookWin32.prepareApiSurface=prepareApiSurface;
function prepareRightAfterWebExtensionInitialize()
{
var appCommandHandler=OfficeExt.AppCommand.AppCommandManager.instance();
appCommandHandler.initializeAndChangeOnce()
}
OfficeJsClient_OutlookWin32.prepareRightAfterWebExtensionInitialize=prepareRightAfterWebExtensionInitialize
})(OfficeJsClient_OutlookWin32 || (OfficeJsClient_OutlookWin32={}));
OSF.InitializationHelper.prototype.prepareRightAfterWebExtensionInitialize=function OSF_InitializationHelper$prepareRightAfterWebExtensionInitialize()
{
OfficeJsClient_OutlookWin32.prepareRightAfterWebExtensionInitialize()
};
OSF.InitializationHelper.prototype.prepareApiSurface=function OSF_InitializationHelper$prepareApiSurface(appContext)
{
var license=new OSF.DDA.License(appContext.get_eToken());
if(appContext.get_appName()==OSF.AppName.OutlookWebApp)
{
OSF.WebApp._UpdateLinksForHostAndXdmInfo();
OSF._OfficeAppFactory.setContext(new OSF.DDA.OutlookContext(appContext,this._settings,license,appContext.appOM))
}
else
{
OfficeJsClient_OutlookWin32.prepareApiSurface(appContext);
OSF._OfficeAppFactory.setContext(new OSF.DDA.OutlookContext(appContext,this._settings,license,appContext.appOM,OSF.DDA.Theming ? OSF.DDA.Theming.getOfficeTheme : null,appContext.ui));
OSF._OfficeAppFactory.setHostFacade(new OSF.DDA.DispIdHost.Facade(OSF.DDA.DispIdHost.getClientDelegateMethods,OSF.DDA.SafeArray.Delegate.ParameterMap))
}
};
OSF.DDA.SettingsManager={
SerializedSettings: "serializedSettings",
DateJSONPrefix: "Date(",
DataJSONSuffix: ")",
serializeSettings: function OSF_DDA_SettingsManager$serializeSettings(settingsCollection)
{
var ret={};
for(var key in settingsCollection)
{
var value=settingsCollection[key];
try
{
if(JSON)
value=JSON.stringify(value,function dateReplacer(k, v)
{
return OSF.OUtil.isDate(this[k]) ? OSF.DDA.SettingsManager.DateJSONPrefix+this[k].getTime()+OSF.DDA.SettingsManager.DataJSONSuffix : v
});
else
value=Sys.Serialization.JavaScriptSerializer.serialize(value);
ret[key]=value
}
catch(ex){}
}
return ret
},
deserializeSettings: function OSF_DDA_SettingsManager$deserializeSettings(serializedSettings)
{
var ret={};
serializedSettings=serializedSettings || {};
for(var key in serializedSettings)
{
var value=serializedSettings[key];
try
{
if(JSON)
value=JSON.parse(value,function dateReviver(k, v)
{
var d;
if(typeof v==="string" && v && v.length > 6 && v.slice(0,5)===OSF.DDA.SettingsManager.DateJSONPrefix && v.slice(-1)===OSF.DDA.SettingsManager.DataJSONSuffix)
{
d=new Date(parseInt(v.slice(5,-1)));
if(d)
return d
}
return v
});
else
value=Sys.Serialization.JavaScriptSerializer.deserialize(value,true);
ret[key]=value
}
catch(ex){}
}
return ret
}
};
OSF.InitializationHelper.prototype.loadAppSpecificScriptAndCreateOM=function OSF_InitializationHelper$loadAppSpecificScriptAndCreateOM(appContext, appReady, basePath)
{
Type.registerNamespace("Microsoft.Office.WebExtension.MailboxEnums");
Microsoft.Office.WebExtension.MailboxEnums.EntityType={
MeetingSuggestion: "meetingSuggestion",
TaskSuggestion: "taskSuggestion",
Address: "address",
EmailAddress: "emailAddress",
Url: "url",
PhoneNumber: "phoneNumber",
Contact: "contact",
FlightReservations: "flightReservations",
ParcelDeliveries: "parcelDeliveries"
};
Microsoft.Office.WebExtension.MailboxEnums.ItemType={
Message: "message",
Appointment: "appointment"
};
Microsoft.Office.WebExtension.MailboxEnums.ResponseType={
None: "none",
Organizer: "organizer",
Tentative: "tentative",
Accepted: "accepted",
Declined: "declined"
};
Microsoft.Office.WebExtension.MailboxEnums.RecipientType={
Other: "other",
DistributionList: "distributionList",
User: "user",
ExternalUser: "externalUser"
};
Microsoft.Office.WebExtension.MailboxEnums.AttachmentType={
File: "file",
Item: "item",
Cloud: "cloud"
};
Microsoft.Office.WebExtension.MailboxEnums.BodyType={
Text: "text",
Html: "html"
};
Microsoft.Office.WebExtension.MailboxEnums.ItemNotificationMessageType={
ProgressIndicator: "progressIndicator",
InformationalMessage: "informationalMessage",
ErrorMessage: "errorMessage"
};
Microsoft.Office.WebExtension.CoercionType={
Text: "text",
Html: "html"
};
Microsoft.Office.WebExtension.MailboxEnums.UserProfileType={
Office365: "office365",
OutlookCom: "outlookCom",
Enterprise: "enterprise"
};
Microsoft.Office.WebExtension.MailboxEnums.RestVersion={
v1_0: "v1.0",
v2_0: "v2.0",
Beta: "beta"
};
Type.registerNamespace("OSF.DDA");
var OSF=window.OSF || {};
OSF.DDA=OSF.DDA || {};
window["OSF"]["DDA"]["OutlookAppOm"]=OSF.DDA.OutlookAppOm=function(officeAppContext, targetWindow, appReadyCallback)
{
this.$$d_displayContactCardAsync=Function.createDelegate(this,this.displayContactCardAsync);
this.$$d_displayNewMessageFormApi=Function.createDelegate(this,this.displayNewMessageFormApi);
this.$$d__displayNewAppointmentFormApi$p$0=Function.createDelegate(this,this._displayNewAppointmentFormApi$p$0);
this.$$d_windowOpenOverrideHandler=Function.createDelegate(this,this.windowOpenOverrideHandler);
this.$$d__getEwsUrl$p$0=Function.createDelegate(this,this._getEwsUrl$p$0);
this.$$d__getDiagnostics$p$0=Function.createDelegate(this,this._getDiagnostics$p$0);
this.$$d__getUserProfile$p$0=Function.createDelegate(this,this._getUserProfile$p$0);
this.$$d__getItem$p$0=Function.createDelegate(this,this._getItem$p$0);
this.$$d__callAppReadyCallback$p$0=Function.createDelegate(this,this._callAppReadyCallback$p$0);
this.$$d__getInitialDataResponseHandler$p$0=Function.createDelegate(this,this._getInitialDataResponseHandler$p$0);
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p=this;
this._officeAppContext$p$0=officeAppContext;
this._appReadyCallback$p$0=appReadyCallback;
var $$t_4=this;
var stringLoadedCallback=function()
{
if(appReadyCallback)
if(!officeAppContext["get_isDialog"]())
$$t_4.invokeHostMethod(1,null,$$t_4.$$d__getInitialDataResponseHandler$p$0);
else
window.setTimeout($$t_4.$$d__callAppReadyCallback$p$0,0)
};
if(this._areStringsLoaded$p$0())
stringLoadedCallback();
else
this._loadLocalizedScript$p$0(stringLoadedCallback)
};
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i=function(currentPermissionLevel)
{
if(!currentPermissionLevel)
throw Error.create(window["_u"]["ExtensibilityStrings"]["l_ElevatedPermissionNeeded_Text"]);
};
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i=function(value, minValue, maxValue, argumentName)
{
if(value < minValue || value > maxValue)
throw Error.argumentOutOfRange(argumentName);
};
window["OSF"]["DDA"]["OutlookAppOm"]._getHtmlBody$p=function(data)
{
var htmlBody="";
if("htmlBody" in data)
{
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidHtmlBody$p(data["htmlBody"]);
htmlBody=data["htmlBody"]
}
return htmlBody
};
window["OSF"]["DDA"]["OutlookAppOm"]._getAttachments$p=function(data)
{
var attachments=[];
if("attachments" in data)
{
attachments=data["attachments"];
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachmentsArray$p(attachments)
}
return attachments
};
window["OSF"]["DDA"]["OutlookAppOm"]._getOptionsAndCallback$p=function(data)
{
var args=[];
if("options" in data)
args[0]=data["options"];
if("callback" in data)
args[args["length"]]=data["callback"];
return args
};
window["OSF"]["DDA"]["OutlookAppOm"]._createAttachmentsDataForHost$p=function(attachments)
{
var attachmentsData=new Array(0);
if(Array.isInstanceOfType(attachments))
for(var i=0; i < attachments["length"]; i++)
if(Object.isInstanceOfType(attachments[i]))
{
var attachment=attachments[i];
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachment$p(attachment);
attachmentsData[i]=window["OSF"]["DDA"]["OutlookAppOm"]._createAttachmentData$p(attachment)
}
else
throw Error.argument("attachments");
return attachmentsData
};
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidHtmlBody$p=function(htmlBody)
{
if(!String.isInstanceOfType(htmlBody))
throw Error.argument("htmlBody");
if($h.ScriptHelpers.isNullOrUndefined(htmlBody))
throw Error.argument("htmlBody");
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(htmlBody["length"],0,window["OSF"]["DDA"]["OutlookAppOm"].maxBodyLength,"htmlBody")
};
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachmentsArray$p=function(attachments)
{
if(!Array.isInstanceOfType(attachments))
throw Error.argument("attachments");
};
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachment$p=function(attachment)
{
if(!Object.isInstanceOfType(attachment))
throw Error.argument("attachments");
if(!("type" in attachment) || !("name" in attachment))
throw Error.argument("attachments");
if(!("url" in attachment || "itemId" in attachment))
throw Error.argument("attachments");
};
window["OSF"]["DDA"]["OutlookAppOm"]._createAttachmentData$p=function(attachment)
{
var attachmentData=null;
if(attachment["type"]==="file")
{
var url=attachment["url"];
var name=attachment["name"];
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachmentUrlOrName$p(url,name);
attachmentData=window["OSF"]["DDA"]["OutlookAppOm"]._createFileAttachmentData$p(url,name)
}
else if(attachment["type"]==="item")
{
var itemId=window["OSF"]["DDA"]["OutlookAppOm"].getItemIdBasedOnHost(attachment["itemId"]);
var name=attachment["name"];
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachmentItemIdOrName$p(itemId,name);
attachmentData=window["OSF"]["DDA"]["OutlookAppOm"]._createItemAttachmentData$p(itemId,name)
}
else
throw Error.argument("attachments");
return attachmentData
};
window["OSF"]["DDA"]["OutlookAppOm"]._createFileAttachmentData$p=function(url, name)
{
return["file",name,url]
};
window["OSF"]["DDA"]["OutlookAppOm"]._createItemAttachmentData$p=function(itemId, name)
{
return["item",name,itemId]
};
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachmentUrlOrName$p=function(url, name)
{
if(!String.isInstanceOfType(url) || !String.isInstanceOfType(name))
throw Error.argument("attachments");
if(url["length"] > 2048)
throw Error.argumentOutOfRange("attachments",url["length"],window["_u"]["ExtensibilityStrings"]["l_AttachmentUrlTooLong_Text"]);
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachmentName$p(name)
};
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachmentItemIdOrName$p=function(itemId, name)
{
if(!String.isInstanceOfType(itemId) || !String.isInstanceOfType(name))
throw Error.argument("attachments");
if(itemId["length"] > 200)
throw Error.argumentOutOfRange("attachments",itemId["length"],window["_u"]["ExtensibilityStrings"]["l_AttachmentItemIdTooLong_Text"]);
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachmentName$p(name)
};
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachmentName$p=function(name)
{
if(name["length"] > 255)
throw Error.argumentOutOfRange("attachments",name["length"],window["_u"]["ExtensibilityStrings"]["l_AttachmentNameTooLong_Text"]);
};
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidRestVersion$p=function(restVersion)
{
if(!restVersion)
throw Error.argumentNull("restVersion");
if(restVersion !==window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RestVersion"]["v1_0"] && restVersion !==window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RestVersion"]["v2_0"] && restVersion !==window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RestVersion"]["Beta"])
throw Error.argument("restVersion");
};
window["OSF"]["DDA"]["OutlookAppOm"].getItemIdBasedOnHost=function(itemId)
{
if(window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._initialData$p$0 && window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._initialData$p$0.get__isRestIdSupported$i$0())
return window["OSF"]["DDA"]["OutlookAppOm"]._instance$p["convertToRestId"](itemId,window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RestVersion"]["v1_0"]);
return window["OSF"]["DDA"]["OutlookAppOm"]._instance$p["convertToEwsId"](itemId,window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RestVersion"]["v1_0"])
};
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnArgumentType$p=function(value, expectedType, argumentName)
{
if(Object["getType"](value) !==expectedType)
throw Error.argumentType(argumentName);
};
window["OSF"]["DDA"]["OutlookAppOm"]._validateOptionalStringParameter$p=function(value, minLength, maxLength, name)
{
if($h.ScriptHelpers.isNullOrUndefined(value))
return;
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnArgumentType$p(value,String,name);
var stringValue=value;
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(stringValue["length"],minLength,maxLength,name)
};
window["OSF"]["DDA"]["OutlookAppOm"]._convertToOutlookParameters$p=function(dispid, data)
{
var executeParameters=null;
switch(dispid)
{
case 1:
case 2:
case 12:
case 3:
case 14:
case 18:
case 26:
case 32:
case 41:
case 34:
break;
case 4:
var jsonProperty=window["JSON"]["stringify"](data["customProperties"]);
executeParameters=[jsonProperty];
break;
case 5:
executeParameters=[data["body"]];
break;
case 8:
case 9:
executeParameters=[data["itemId"]];
break;
case 7:
executeParameters=[window["OSF"]["DDA"]["OutlookAppOm"]._convertRecipientArrayParameterForOutlookForDisplayApi$p(data["requiredAttendees"]),window["OSF"]["DDA"]["OutlookAppOm"]._convertRecipientArrayParameterForOutlookForDisplayApi$p(data["optionalAttendees"]),data["start"],data["end"],data["location"],window["OSF"]["DDA"]["OutlookAppOm"]._convertRecipientArrayParameterForOutlookForDisplayApi$p(data["resources"]),data["subject"],data["body"]];
break;
case 44:
executeParameters=[window["OSF"]["DDA"]["OutlookAppOm"]._convertRecipientArrayParameterForOutlookForDisplayApi$p(data["toRecipients"]),window["OSF"]["DDA"]["OutlookAppOm"]._convertRecipientArrayParameterForOutlookForDisplayApi$p(data["ccRecipients"]),window["OSF"]["DDA"]["OutlookAppOm"]._convertRecipientArrayParameterForOutlookForDisplayApi$p(data["bccRecipients"]),data["subject"],data["htmlBody"],data["attachments"]];
break;
case 43:
executeParameters=[data["ewsIdOrEmail"]];
break;
case 40:
executeParameters=[data["extensionId"],data["consentState"]];
break;
case 11:
case 10:
executeParameters=[data["htmlBody"]];
break;
case 31:
case 30:
executeParameters=[data["htmlBody"],data["attachments"]];
break;
case 23:
case 13:
case 38:
case 29:
executeParameters=[data["data"],data["coercionType"]];
break;
case 37:
case 28:
executeParameters=[data["coercionType"]];
break;
case 17:
executeParameters=[data["subject"]];
break;
case 15:
executeParameters=[data["recipientField"]];
break;
case 22:
case 21:
executeParameters=[data["recipientField"],window["OSF"]["DDA"]["OutlookAppOm"]._convertComposeEmailDictionaryParameterForSetApi$p(data["recipientArray"])];
break;
case 19:
executeParameters=[data["itemId"],data["name"]];
break;
case 16:
executeParameters=[data["uri"],data["name"]];
break;
case 20:
executeParameters=[data["attachmentIndex"]];
break;
case 25:
executeParameters=[data["TimeProperty"],data["time"]];
break;
case 24:
executeParameters=[data["TimeProperty"]];
break;
case 27:
executeParameters=[data["location"]];
break;
case 33:
case 35:
executeParameters=[data["key"],data["type"],data["persistent"],data["message"],data["icon"]];
break;
case 36:
executeParameters=[data["key"]];
break;
default:
Sys.Debug.fail("Unexpected method dispid");
break
}
return executeParameters
};
window["OSF"]["DDA"]["OutlookAppOm"]._convertRecipientArrayParameterForOutlookForDisplayApi$p=function(array)
{
return array ? array["join"](";") : null
};
window["OSF"]["DDA"]["OutlookAppOm"]._convertComposeEmailDictionaryParameterForSetApi$p=function(recipients)
{
if(!recipients)
return null;
var results=new Array(recipients["length"]);
for(var i=0; i < recipients["length"]; i++)
results[i]=[recipients[i]["address"],recipients[i]["name"]];
return results
};
window["OSF"]["DDA"]["OutlookAppOm"]._validateAndNormalizeRecipientEmails$p=function(emailset, name)
{
if($h.ScriptHelpers.isNullOrUndefined(emailset))
return null;
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnArgumentType$p(emailset,Array,name);
var originalAttendees=emailset;
var updatedAttendees=null;
var normalizationNeeded=false;
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(originalAttendees["length"],0,window["OSF"]["DDA"]["OutlookAppOm"]._maxRecipients$p,String.format("{0}.length",name));
for(var i=0; i < originalAttendees["length"]; i++)
if($h.EmailAddressDetails.isInstanceOfType(originalAttendees[i]))
{
normalizationNeeded=true;
break
}
if(normalizationNeeded)
updatedAttendees=[];
for(var i=0; i < originalAttendees["length"]; i++)
if(normalizationNeeded)
{
updatedAttendees[i]=$h.EmailAddressDetails.isInstanceOfType(originalAttendees[i]) ? originalAttendees[i]["emailAddress"] : originalAttendees[i];
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnArgumentType$p(updatedAttendees[i],String,String.format("{0}[{1}]",name,i))
}
else
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnArgumentType$p(originalAttendees[i],String,String.format("{0}[{1}]",name,i));
return updatedAttendees
};
OSF.DDA.OutlookAppOm.prototype={
_initialData$p$0: null,
_item$p$0: null,
_userProfile$p$0: null,
_diagnostics$p$0: null,
_officeAppContext$p$0: null,
_appReadyCallback$p$0: null,
_clientEndPoint$p$0: null,
_hostItemType$p$0: 0,
get_clientEndPoint: function()
{
if(!this._clientEndPoint$p$0)
this._clientEndPoint$p$0=OSF._OfficeAppFactory["getClientEndPoint"]();
return this._clientEndPoint$p$0
},
set_clientEndPoint: function(value)
{
this._clientEndPoint$p$0=value;
return value
},
get_initialData: function()
{
return this._initialData$p$0
},
get__appName$i$0: function()
{
return this._officeAppContext$p$0["get_appName"]()
},
initialize: function(initialData)
{
var ItemTypeKey="itemType";
this._initialData$p$0=new $h.InitialData(initialData);
this._hostItemType$p$0=initialData[ItemTypeKey];
if(1===initialData[ItemTypeKey])
this._item$p$0=new $h.Message(this._initialData$p$0);
else if(3===initialData[ItemTypeKey])
this._item$p$0=new $h.MeetingRequest(this._initialData$p$0);
else if(2===initialData[ItemTypeKey])
this._item$p$0=new $h.Appointment(this._initialData$p$0);
else if(4===initialData[ItemTypeKey])
this._item$p$0=new $h.MessageCompose(this._initialData$p$0);
else if(5===initialData[ItemTypeKey])
this._item$p$0=new $h.AppointmentCompose(this._initialData$p$0);
else if(6===initialData[ItemTypeKey]);
else
Sys.Debug.trace("Unexpected item type was received from the host.");
this._userProfile$p$0=new $h.UserProfile(this._initialData$p$0);
this._diagnostics$p$0=new $h.Diagnostics(this._initialData$p$0,this._officeAppContext$p$0["get_appName"]());
this._initializeMethods$p$0();
$h.InitialData._defineReadOnlyProperty$i(this,"item",this.$$d__getItem$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"userProfile",this.$$d__getUserProfile$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"diagnostics",this.$$d__getDiagnostics$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"ewsUrl",this.$$d__getEwsUrl$p$0);
if(window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.get__appName$i$0()===64)
if(this._initialData$p$0.get__overrideWindowOpen$i$0())
window.open=this.$$d_windowOpenOverrideHandler
},
windowOpenOverrideHandler: function(url, targetName, features, replace)
{
this.invokeHostMethod(403,{launchUrl: url},null)
},
createAsyncResult: function(value, errorCode, detailedErrorCode, userContext, errorMessage)
{
var initArgs={};
var errorArgs=null;
initArgs[OSF.DDA.AsyncResultEnum.Properties["Value"]]=value;
initArgs[OSF.DDA.AsyncResultEnum.Properties["Context"]]=userContext;
if(0 !==errorCode)
{
errorArgs={};
var errorProperties=$h.OutlookErrorManager.getErrorArgs(detailedErrorCode);
errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties["Name"]]=errorProperties["name"];
errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties["Message"]]=!errorMessage ? errorProperties["message"] : errorMessage;
errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties["Code"]]=detailedErrorCode
}
return new OSF.DDA.AsyncResult(initArgs,errorArgs)
},
_throwOnMethodCallForInsufficientPermission$i$0: function(requiredPermissionLevel, methodName)
{
if(this._initialData$p$0._permissionLevel$p$0 < requiredPermissionLevel)
throw Error.create(String.format(window["_u"]["ExtensibilityStrings"]["l_ElevatedPermissionNeededForMethod_Text"],methodName));
},
_displayReplyForm$i$0: function(obj)
{
this._displayReplyFormHelper$p$0(obj,false)
},
_displayReplyAllForm$i$0: function(obj)
{
this._displayReplyFormHelper$p$0(obj,true)
},
_displayReplyFormHelper$p$0: function(obj, isReplyAll)
{
if(String.isInstanceOfType(obj))
this._doDisplayReplyForm$p$0(obj,isReplyAll);
else if(Object.isInstanceOfType(obj) && Object.getTypeName(obj)==="Object")
this._doDisplayReplyFormWithAttachments$p$0(obj,isReplyAll);
else
throw Error.argumentType();
},
_doDisplayReplyForm$p$0: function(htmlBody, isReplyAll)
{
if(!$h.ScriptHelpers.isNullOrUndefined(htmlBody))
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(htmlBody["length"],0,window["OSF"]["DDA"]["OutlookAppOm"].maxBodyLength,"htmlBody");
this.invokeHostMethod(isReplyAll ? 11 : 10,{htmlBody: htmlBody},null)
},
_doDisplayReplyFormWithAttachments$p$0: function(data, isReplyAll)
{
var htmlBody=window["OSF"]["DDA"]["OutlookAppOm"]._getHtmlBody$p(data);
var attachments=window["OSF"]["DDA"]["OutlookAppOm"]._getAttachments$p(data);
var parameters=$h.CommonParameters.parse(window["OSF"]["DDA"]["OutlookAppOm"]._getOptionsAndCallback$p(data),false);
var $$t_6=this;
this._standardInvokeHostMethod$i$0(isReplyAll ? 31 : 30,{
htmlBody: htmlBody,
attachments: window["OSF"]["DDA"]["OutlookAppOm"]._createAttachmentsDataForHost$p(attachments)
},function(rawInput)
{
return rawInput
},parameters._asyncContext$p$0,parameters._callback$p$0)
},
_standardInvokeHostMethod$i$0: function(dispid, data, format, userContext, callback)
{
var $$t_B=this;
this.invokeHostMethod(dispid,data,function(resultCode, response)
{
if(callback)
{
var asyncResult=null;
if(Object.isInstanceOfType(response))
{
var responseDictionary=response;
if("error" in responseDictionary || "data" in responseDictionary || "errorCode" in responseDictionary)
if(!responseDictionary["error"])
{
var formattedData=format ? format(responseDictionary["data"]) : responseDictionary["data"];
asyncResult=$$t_B.createAsyncResult(formattedData,0,0,userContext,null)
}
else
{
var errorCode=responseDictionary["errorCode"];
asyncResult=$$t_B.createAsyncResult(null,1,errorCode,userContext,null)
}
}
if(!asyncResult && resultCode)
asyncResult=$$t_B.createAsyncResult(null,1,9002,userContext,null);
callback(asyncResult)
}
})
},
invokeHostMethod: function(dispid, data, responseCallback)
{
if(64===this._officeAppContext$p$0["get_appName"]())
{
var args={ApiParams: data};
args["MethodData"]={
ControlId: OSF._OfficeAppFactory["getId"](),
DispatchId: dispid
};
if(dispid===1)
this.get_clientEndPoint()["invoke"]("GetInitialData",responseCallback,args);
else
this.get_clientEndPoint()["invoke"]("ExecuteMethod",responseCallback,args)
}
else if(!this._isOwaOnlyMethod$p$0(dispid))
{
var executeParameters=window["OSF"]["DDA"]["OutlookAppOm"]._convertToOutlookParameters$p(dispid,data);
var $$t_B=this;
OSF.ClientHostController["execute"](dispid,executeParameters,function(nativeData, resultCode)
{
if(responseCallback)
{
var responseData=nativeData.toArray();
var rawData=window["JSON"]["parse"](responseData[0]);
if(Object.isInstanceOfType(rawData))
{
var deserializedData=rawData;
if(responseData["length"] > 1 && responseData[1])
{
deserializedData["error"]=true;
deserializedData["errorCode"]=responseData[1]
}
else
deserializedData["error"]=false;
responseCallback(resultCode,deserializedData)
}
else if(Number.isInstanceOfType(rawData))
{
var returnDict={};
returnDict["error"]=true;
returnDict["errorCode"]=rawData;
responseCallback(resultCode,returnDict)
}
else
throw Error.notImplemented("Return data type from host must be Dictionary or int");
}
})
}
else if(responseCallback)
responseCallback(-2,null)
},
_dictionaryToDate$i$0: function(input)
{
var retValue=new Date(input["year"],input["month"],input["date"],input["hours"],input["minutes"],input["seconds"],!input["milliseconds"] ? 0 : input["milliseconds"]);
if(window["isNaN"](retValue["getTime"]()))
throw Error.format(window["_u"]["ExtensibilityStrings"]["l_InvalidDate_Text"]);
return retValue
},
_dateToDictionary$i$0: function(input)
{
var retValue={};
retValue["month"]=input["getMonth"]();
retValue["date"]=input["getDate"]();
retValue["year"]=input["getFullYear"]();
retValue["hours"]=input["getHours"]();
retValue["minutes"]=input["getMinutes"]();
retValue["seconds"]=input["getSeconds"]();
retValue["milliseconds"]=input["getMilliseconds"]();
return retValue
},
_isOwaOnlyMethod$p$0: function(dispId)
{
switch(dispId)
{
case 402:
case 401:
case 400:
case 403:
return true;
default:
return false
}
},
_displayNewAppointmentFormApi$p$0: function(parameters)
{
var normalizedRequiredAttendees=window["OSF"]["DDA"]["OutlookAppOm"]._validateAndNormalizeRecipientEmails$p(parameters["requiredAttendees"],"requiredAttendees");
var normalizedOptionalAttendees=window["OSF"]["DDA"]["OutlookAppOm"]._validateAndNormalizeRecipientEmails$p(parameters["optionalAttendees"],"optionalAttendees");
window["OSF"]["DDA"]["OutlookAppOm"]._validateOptionalStringParameter$p(parameters["location"],0,window["OSF"]["DDA"]["OutlookAppOm"]._maxLocationLength$p,"location");
window["OSF"]["DDA"]["OutlookAppOm"]._validateOptionalStringParameter$p(parameters["body"],0,window["OSF"]["DDA"]["OutlookAppOm"].maxBodyLength,"body");
window["OSF"]["DDA"]["OutlookAppOm"]._validateOptionalStringParameter$p(parameters["subject"],0,window["OSF"]["DDA"]["OutlookAppOm"]._maxSubjectLength$p,"subject");
if(!$h.ScriptHelpers.isNullOrUndefined(parameters["start"]))
{
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnArgumentType$p(parameters["start"],Date,"start");
var startDateTime=parameters["start"];
parameters["start"]=startDateTime["getTime"]();
if(!$h.ScriptHelpers.isNullOrUndefined(parameters["end"]))
{
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnArgumentType$p(parameters["end"],Date,"end");
var endDateTime=parameters["end"];
if(endDateTime < startDateTime)
throw Error.argumentOutOfRange("end",endDateTime,window["_u"]["ExtensibilityStrings"]["l_InvalidEventDates_Text"]);
parameters["end"]=endDateTime["getTime"]()
}
}
var updatedParameters=null;
if(normalizedRequiredAttendees || normalizedOptionalAttendees)
{
updatedParameters={};
var $$dict_7=parameters;
for(var $$key_8 in $$dict_7)
{
var entry={
key: $$key_8,
value: $$dict_7[$$key_8]
};
updatedParameters[entry["key"]]=entry["value"]
}
if(normalizedRequiredAttendees)
updatedParameters["requiredAttendees"]=normalizedRequiredAttendees;
if(normalizedOptionalAttendees)
updatedParameters["optionalAttendees"]=normalizedOptionalAttendees
}
this.invokeHostMethod(7,updatedParameters || parameters,null)
},
displayNewMessageFormApi: function(parameters)
{
var updatedParameters={};
if(parameters)
{
var normalizedToRecipients=window["OSF"]["DDA"]["OutlookAppOm"]._validateAndNormalizeRecipientEmails$p(parameters["toRecipients"],"toRecipients");
var normalizedCcRecipients=window["OSF"]["DDA"]["OutlookAppOm"]._validateAndNormalizeRecipientEmails$p(parameters["ccRecipients"],"ccRecipients");
var normalizedBccRecipients=window["OSF"]["DDA"]["OutlookAppOm"]._validateAndNormalizeRecipientEmails$p(parameters["bccRecipients"],"bccRecipients");
window["OSF"]["DDA"]["OutlookAppOm"]._validateOptionalStringParameter$p(parameters["htmlBody"],0,window["OSF"]["DDA"]["OutlookAppOm"].maxBodyLength,"htmlBody");
window["OSF"]["DDA"]["OutlookAppOm"]._validateOptionalStringParameter$p(parameters["subject"],0,window["OSF"]["DDA"]["OutlookAppOm"]._maxSubjectLength$p,"subject");
var attachments=window["OSF"]["DDA"]["OutlookAppOm"]._getAttachments$p(parameters);
var $$dict_7=parameters;
for(var $$key_8 in $$dict_7)
{
var entry={
key: $$key_8,
value: $$dict_7[$$key_8]
};
updatedParameters[entry["key"]]=entry["value"]
}
if(normalizedToRecipients)
updatedParameters["toRecipients"]=normalizedToRecipients;
if(normalizedCcRecipients)
updatedParameters["ccRecipients"]=normalizedCcRecipients;
if(normalizedBccRecipients)
updatedParameters["bccRecipients"]=normalizedBccRecipients;
if(attachments)
updatedParameters["attachments"]=window["OSF"]["DDA"]["OutlookAppOm"]._createAttachmentsDataForHost$p(attachments)
}
this.invokeHostMethod(44,updatedParameters || parameters,null)
},
displayContactCardAsync: function(ewsIdOrEmail, callback)
{
if($h.ScriptHelpers.isNullOrUndefined(ewsIdOrEmail))
throw Error.argumentNull("ewsIdOrEmail");
var asyncContext=null;
var asyncFunctionCallback=null;
if(callback)
{
var commonParameters=$h.CommonParameters.parse([callback],false);
asyncContext=commonParameters._asyncContext$p$0;
asyncFunctionCallback=commonParameters._callback$p$0
}
this._standardInvokeHostMethod$i$0(43,{ewsIdOrEmail: ewsIdOrEmail.trim()},null,asyncContext,asyncFunctionCallback)
},
_initializeMethods$p$0: function()
{
var currentInstance=this;
if($h.Item.isInstanceOfType(this._item$p$0) || this._hostItemType$p$0===6)
{
currentInstance["displayNewAppointmentForm"]=this.$$d__displayNewAppointmentFormApi$p$0;
currentInstance["displayNewMessageForm"]=this.$$d_displayNewMessageFormApi;
currentInstance["displayContactCardAsync"]=this.$$d_displayContactCardAsync
}
},
_getInitialDataResponseHandler$p$0: function(resultCode, data)
{
if(resultCode)
return;
this.initialize(data);
this["displayName"]="mailbox";
window.setTimeout(this.$$d__callAppReadyCallback$p$0,0)
},
_callAppReadyCallback$p$0: function()
{
this._appReadyCallback$p$0()
},
_invokeGetTokenMethodAsync$p$0: function(outlookDispid, methodName, callback, userContext)
{
if($h.ScriptHelpers.isNullOrUndefined(callback))
throw Error.argumentNull("callback");
var $$t_8=this;
this.invokeHostMethod(outlookDispid,null,function(resultCode, response)
{
var asyncResult;
if(resultCode)
asyncResult=$$t_8.createAsyncResult(null,1,9017,userContext,String.format(window["_u"]["ExtensibilityStrings"]["l_InternalProtocolError_Text"],resultCode));
else
{
var responseDictionary=response;
if(responseDictionary["wasSuccessful"])
asyncResult=$$t_8.createAsyncResult(responseDictionary["token"],0,0,userContext,null);
else
asyncResult=$$t_8.createAsyncResult(null,1,responseDictionary["errorCode"],userContext,responseDictionary["errorMessage"])
}
callback(asyncResult)
})
},
_getItem$p$0: function()
{
return this._item$p$0
},
_getUserProfile$p$0: function()
{
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._initialData$p$0._permissionLevel$p$0);
return this._userProfile$p$0
},
_getDiagnostics$p$0: function()
{
return this._diagnostics$p$0
},
_getEwsUrl$p$0: function()
{
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._initialData$p$0._permissionLevel$p$0);
return this._initialData$p$0.get__ewsUrl$i$0()
},
_findOffset$p$0: function(value)
{
var ranges=this._initialData$p$0.get__timeZoneOffsets$i$0();
for(var r=0; r < ranges["length"]; r++)
{
var range=ranges[r];
var start=window["parseInt"](range["start"]);
var end=window["parseInt"](range["end"]);
if(value["getTime"]() - start >=0 && value["getTime"]() - end < 0)
return window["parseInt"](range["offset"])
}
throw Error.format(window["_u"]["ExtensibilityStrings"]["l_InvalidDate_Text"]);
},
_areStringsLoaded$p$0: function()
{
var stringsLoaded=false;
try
{
stringsLoaded=!$h.ScriptHelpers.isNullOrUndefined(window["_u"]["ExtensibilityStrings"]["l_EwsRequestOversized_Text"])
}
catch($$e_1){}
return stringsLoaded
},
_loadLocalizedScript$p$0: function(stringLoadedCallback)
{
var url=null;
var baseUrl="";
var scripts=document.getElementsByTagName("script");
for(var i=scripts.length - 1; i >=0; i--)
{
var filename=null;
var attributes=scripts[i].attributes;
if(attributes)
{
var attribute=attributes.getNamedItem("src");
if(attribute)
filename=attribute.value;
if(filename)
{
var debug=false;
filename=filename["toLowerCase"]();
var officeIndex=filename["indexOf"]("office_strings.js");
if(officeIndex < 0)
{
officeIndex=filename["indexOf"]("office_strings.debug.js");
debug=true
}
if(officeIndex > 0 && officeIndex < filename["length"])
{
url=filename["replace"](debug ? "office_strings.debug.js" : "office_strings.js","outlook_strings.js");
var languageUrl=filename["substring"](0,officeIndex);
var lastIndexOfSlash=languageUrl["lastIndexOf"]("/",languageUrl["length"] - 2);
if(lastIndexOfSlash===-1)
lastIndexOfSlash=languageUrl["lastIndexOf"]("\\",languageUrl["length"] - 2);
if(lastIndexOfSlash !==-1 && languageUrl["length"] > lastIndexOfSlash+1)
baseUrl=languageUrl["substring"](0,lastIndexOfSlash+1);
break
}
}
}
}
if(url)
{
var head=document.getElementsByTagName("head")[0];
var scriptElement=null;
var $$t_H=this;
var scriptElementCallback=function()
{
if(stringLoadedCallback && (!scriptElement.readyState || scriptElement.readyState && (scriptElement.readyState==="loaded" || scriptElement.readyState==="complete")))
{
scriptElement.onload=null;
scriptElement.onreadystatechange=null;
stringLoadedCallback()
}
};
var $$t_I=this;
var failureCallback=function()
{
if(!$$t_I._areStringsLoaded$p$0())
{
var fallbackUrl=baseUrl+"en-us/"+"outlook_strings.js";
scriptElement.onload=null;
scriptElement.onreadystatechange=null;
scriptElement=$$t_I._createScriptElement$p$0(fallbackUrl);
scriptElement.onload=scriptElementCallback;
scriptElement.onreadystatechange=scriptElementCallback;
head.appendChild(scriptElement)
}
};
scriptElement=this._createScriptElement$p$0(url);
scriptElement.onload=scriptElementCallback;
scriptElement.onreadystatechange=scriptElementCallback;
window.setTimeout(failureCallback,2e3);
head.appendChild(scriptElement)
}
},
_createScriptElement$p$0: function(url)
{
var scriptElement=document.createElement("script");
scriptElement.type="text/javascript";
scriptElement.src=url;
return scriptElement
}
};
OSF.DDA.OutlookAppOm.prototype.makeEwsRequestAsync=function(data)
{
var args=[];
for(var $$pai_5=1; $$pai_5 < arguments["length"];++$$pai_5)
args[$$pai_5 - 1]=arguments[$$pai_5];
if($h.ScriptHelpers.isNullOrUndefined(data))
throw Error.argumentNull("data");
if(data["length"] > window["OSF"]["DDA"]["OutlookAppOm"]._maxEwsRequestSize$p)
throw Error.argument("data",window["_u"]["ExtensibilityStrings"]["l_EwsRequestOversized_Text"]);
this._throwOnMethodCallForInsufficientPermission$i$0(3,"makeEwsRequestAsync");
var parameters=$h.CommonParameters.parse(args,true,true);
var ewsRequest=new $h.EwsRequest(parameters._asyncContext$p$0);
var $$t_4=this;
ewsRequest.onreadystatechange=function()
{
if(4===ewsRequest.get__requestState$i$1())
parameters._callback$p$0(ewsRequest._asyncResult$p$0)
};
ewsRequest.send(data)
};
OSF.DDA.OutlookAppOm.prototype.recordDataPoint=function(data)
{
if($h.ScriptHelpers.isNullOrUndefined(data))
throw Error.argumentNull("data");
this.invokeHostMethod(402,data,null)
};
OSF.DDA.OutlookAppOm.prototype.recordTrace=function(data)
{
if($h.ScriptHelpers.isNullOrUndefined(data))
throw Error.argumentNull("data");
this.invokeHostMethod(401,data,null)
};
OSF.DDA.OutlookAppOm.prototype.trackCtq=function(data)
{
if($h.ScriptHelpers.isNullOrUndefined(data))
throw Error.argumentNull("data");
this.invokeHostMethod(400,data,null)
};
OSF.DDA.OutlookAppOm.prototype.convertToLocalClientTime=function(timeValue)
{
var date=new Date(timeValue["getTime"]());
var offset=date["getTimezoneOffset"]() * -1;
if(this._initialData$p$0 && this._initialData$p$0.get__timeZoneOffsets$i$0())
{
date["setUTCMinutes"](date["getUTCMinutes"]() - offset);
offset=this._findOffset$p$0(date);
date["setUTCMinutes"](date["getUTCMinutes"]()+offset)
}
var retValue=this._dateToDictionary$i$0(date);
retValue["timezoneOffset"]=offset;
return retValue
};
OSF.DDA.OutlookAppOm.prototype.convertToUtcClientTime=function(input)
{
var retValue=this._dictionaryToDate$i$0(input);
if(this._initialData$p$0 && this._initialData$p$0.get__timeZoneOffsets$i$0())
{
var offset=this._findOffset$p$0(retValue);
retValue["setUTCMinutes"](retValue["getUTCMinutes"]() - offset);
offset=!input["timezoneOffset"] ? retValue["getTimezoneOffset"]() * -1 : input["timezoneOffset"];
retValue["setUTCMinutes"](retValue["getUTCMinutes"]()+offset)
}
return retValue
};
OSF.DDA.OutlookAppOm.prototype.convertToRestId=function(itemId, restVersion)
{
if(!itemId)
throw Error.argumentNull("itemId");
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidRestVersion$p(restVersion);
return itemId["replace"](new RegExp("[/]","g"),"-")["replace"](new RegExp("[+]","g"),"_")
};
OSF.DDA.OutlookAppOm.prototype.convertToEwsId=function(itemId, restVersion)
{
if(!itemId)
throw Error.argumentNull("itemId");
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidRestVersion$p(restVersion);
return itemId["replace"](new RegExp("[-]","g"),"/")["replace"](new RegExp("[_]","g"),"+")
};
OSF.DDA.OutlookAppOm.prototype.getUserIdentityTokenAsync=function()
{
var args=[];
for(var $$pai_2=0; $$pai_2 < arguments["length"];++$$pai_2)
args[$$pai_2]=arguments[$$pai_2];
this._throwOnMethodCallForInsufficientPermission$i$0(1,"getUserIdentityTokenAsync");
var parameters=$h.CommonParameters.parse(args,true,true);
this._invokeGetTokenMethodAsync$p$0(2,"GetUserIdentityToken",parameters._callback$p$0,parameters._asyncContext$p$0)
};
OSF.DDA.OutlookAppOm.prototype.getCallbackTokenAsync=function()
{
var args=[];
for(var $$pai_2=0; $$pai_2 < arguments["length"];++$$pai_2)
args[$$pai_2]=arguments[$$pai_2];
this._throwOnMethodCallForInsufficientPermission$i$0(1,"getCallbackTokenAsync");
var parameters=$h.CommonParameters.parse(args,true,true);
this._invokeGetTokenMethodAsync$p$0(12,"GetCallbackToken",parameters._callback$p$0,parameters._asyncContext$p$0)
};
OSF.DDA.OutlookAppOm.prototype.displayMessageForm=function(itemId)
{
if($h.ScriptHelpers.isNullOrUndefined(itemId))
throw Error.argumentNull("itemId");
this.invokeHostMethod(8,{itemId: window["OSF"]["DDA"]["OutlookAppOm"].getItemIdBasedOnHost(itemId)},null)
};
OSF.DDA.OutlookAppOm.prototype.displayAppointmentForm=function(itemId)
{
if($h.ScriptHelpers.isNullOrUndefined(itemId))
throw Error.argumentNull("itemId");
this.invokeHostMethod(9,{itemId: window["OSF"]["DDA"]["OutlookAppOm"].getItemIdBasedOnHost(itemId)},null)
};
OSF.DDA.OutlookAppOm.prototype.RegisterConsentAsync=function(consentState)
{
if(consentState !==2 && consentState !==1 && consentState)
throw Error.argumentOutOfRange("consentState");
var parameters={};
parameters["consentState"]=consentState["toString"]();
parameters["extensionId"]=this["GetExtensionId"]();
this.invokeHostMethod(40,parameters,null)
};
OSF.DDA.OutlookAppOm.prototype.CloseApp=function()
{
this.invokeHostMethod(42,null,null)
};
OSF.DDA.OutlookAppOm.prototype.GetIsRead=function()
{
return this._initialData$p$0.get__isRead$i$0()
};
OSF.DDA.OutlookAppOm.prototype.GetEndNodeUrl=function()
{
return this._initialData$p$0.get__endNodeUrl$i$0()
};
OSF.DDA.OutlookAppOm.prototype.GetConsentMetadata=function()
{
return this._initialData$p$0.get__consentMetadata$i$0()
};
OSF.DDA.OutlookAppOm.prototype.GetEntryPointUrl=function()
{
return this._initialData$p$0.get__entryPointUrl$i$0()
};
OSF.DDA.OutlookAppOm.prototype.GetMarketplaceContentMarket=function()
{
return this._initialData$p$0.get__marketplaceContentMarket$i$0()
};
OSF.DDA.OutlookAppOm.prototype.GetMarketplaceAssetId=function()
{
return this._initialData$p$0.get__marketplaceAssetId$i$0()
};
OSF.DDA.OutlookAppOm.prototype.GetExtensionId=function()
{
return this._initialData$p$0.get__extensionId$i$0()
};
window["OSF"]["DDA"]["Settings"]=OSF.DDA.Settings=function(data)
{
this._rawData$p$0=data
};
window["OSF"]["DDA"]["Settings"]._convertFromRawSettings$p=function(rawSettings)
{
if(!rawSettings)
return{};
if(window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.get__appName$i$0()===8)
{
var outlookSettings=rawSettings["SettingsKey"];
if(outlookSettings)
return OSF.DDA.SettingsManager["deserializeSettings"](outlookSettings)
}
return rawSettings
};
OSF.DDA.Settings.prototype={
_rawData$p$0: null,
_settingsData$p$0: null,
get__data$p$0: function()
{
if(!this._settingsData$p$0)
{
this._settingsData$p$0=window["OSF"]["DDA"]["Settings"]._convertFromRawSettings$p(this._rawData$p$0);
this._rawData$p$0=null
}
return this._settingsData$p$0
},
_saveSettingsForOutlook$p$0: function(callback, userContext)
{
var storedException=null;
try
{
var serializedSettings=OSF.DDA.SettingsManager["serializeSettings"](this.get__data$p$0());
var jsonSettings=window["JSON"]["stringify"](serializedSettings);
var settingsObjectToSave={SettingsKey: jsonSettings};
OSF.DDA.ClientSettingsManager["write"](settingsObjectToSave)
}
catch(ex)
{
storedException=ex
}
if(callback)
{
var asyncResult;
if(storedException)
asyncResult=window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.createAsyncResult(null,1,9019,userContext,storedException["message"]);
else
asyncResult=window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.createAsyncResult(null,0,0,userContext,null);
callback(asyncResult)
}
},
_saveSettingsForOwa$p$0: function(callback, userContext)
{
var serializedSettings=OSF.DDA.SettingsManager["serializeSettings"](this.get__data$p$0());
var $$t_7=this;
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.invokeHostMethod(404,[serializedSettings],function(resultCode, response)
{
if(callback)
{
var asyncResult;
if(resultCode)
asyncResult=window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.createAsyncResult(null,1,9017,userContext,String.format(window["_u"]["ExtensibilityStrings"]["l_InternalProtocolError_Text"],resultCode));
else
{
var responseDictionary=response;
if(!responseDictionary["error"])
asyncResult=window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.createAsyncResult(null,0,0,userContext,null);
else
asyncResult=window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.createAsyncResult(null,1,9019,userContext,responseDictionary["errorMessage"])
}
callback(asyncResult)
}
})
}
};
OSF.DDA.Settings.prototype.get=function(name)
{
return this.get__data$p$0()[name]
};
OSF.DDA.Settings.prototype.set=function(name, value)
{
this.get__data$p$0()[name]=value
};
OSF.DDA.Settings.prototype.remove=function(name)
{
delete this.get__data$p$0()[name]
};
OSF.DDA.Settings.prototype.saveAsync=function()
{
var args=[];
for(var $$pai_4=0; $$pai_4 < arguments["length"];++$$pai_4)
args[$$pai_4]=arguments[$$pai_4];
var commonParameters=$h.CommonParameters.parse(args,false);
if(window["JSON"]["stringify"](OSF.DDA.SettingsManager["serializeSettings"](this.get__data$p$0()))["length"] > 32768)
{
var asyncResult=window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.createAsyncResult(null,1,9019,commonParameters._asyncContext$p$0,"");
var $$t_3=this;
window.setTimeout(function()
{
commonParameters._callback$p$0(asyncResult)
},0);
return
}
if(window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.get__appName$i$0()===64)
this._saveSettingsForOwa$p$0(commonParameters._callback$p$0,commonParameters._asyncContext$p$0);
else
this._saveSettingsForOutlook$p$0(commonParameters._callback$p$0,commonParameters._asyncContext$p$0)
};
Type.registerNamespace("$h");
var $h=window.$h || {};
Type.registerNamespace("Office.cast");
var Office=window.Office || {};
Office.cast=Office.cast || {};
$h.Appointment=function(dataDictionary)
{
this.$$d__getOrganizer$p$2=Function.createDelegate(this,this._getOrganizer$p$2);
this.$$d__getNormalizedSubject$p$2=Function.createDelegate(this,this._getNormalizedSubject$p$2);
this.$$d__getSubject$p$2=Function.createDelegate(this,this._getSubject$p$2);
this.$$d__getResources$p$2=Function.createDelegate(this,this._getResources$p$2);
this.$$d__getRequiredAttendees$p$2=Function.createDelegate(this,this._getRequiredAttendees$p$2);
this.$$d__getOptionalAttendees$p$2=Function.createDelegate(this,this._getOptionalAttendees$p$2);
this.$$d__getLocation$p$2=Function.createDelegate(this,this._getLocation$p$2);
this.$$d__getEnd$p$2=Function.createDelegate(this,this._getEnd$p$2);
this.$$d__getStart$p$2=Function.createDelegate(this,this._getStart$p$2);
$h.Appointment.initializeBase(this,[dataDictionary]);
$h.InitialData._defineReadOnlyProperty$i(this,"start",this.$$d__getStart$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"end",this.$$d__getEnd$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"location",this.$$d__getLocation$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"optionalAttendees",this.$$d__getOptionalAttendees$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"requiredAttendees",this.$$d__getRequiredAttendees$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"resources",this.$$d__getResources$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"subject",this.$$d__getSubject$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"normalizedSubject",this.$$d__getNormalizedSubject$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"organizer",this.$$d__getOrganizer$p$2)
};
$h.Appointment.prototype={
getItemType: function()
{
return window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ItemType"]["Appointment"]
},
_getStart$p$2: function()
{
return this._data$p$0.get__start$i$0()
},
_getEnd$p$2: function()
{
return this._data$p$0.get__end$i$0()
},
_getLocation$p$2: function()
{
return this._data$p$0.get__location$i$0()
},
_getOptionalAttendees$p$2: function()
{
return this._data$p$0.get__cc$i$0()
},
_getRequiredAttendees$p$2: function()
{
return this._data$p$0.get__to$i$0()
},
_getResources$p$2: function()
{
return this._data$p$0.get__resources$i$0()
},
_getSubject$p$2: function()
{
return this._data$p$0.get__subject$i$0()
},
_getNormalizedSubject$p$2: function()
{
return this._data$p$0.get__normalizedSubject$i$0()
},
_getOrganizer$p$2: function()
{
return this._data$p$0.get__organizer$i$0()
}
};
$h.Appointment.prototype.getEntities=function()
{
return this._data$p$0._getEntities$i$0()
};
$h.Appointment.prototype.getEntitiesByType=function(entityType)
{
return this._data$p$0._getEntitiesByType$i$0(entityType)
};
$h.Appointment.prototype.getRegExMatches=function()
{
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"getRegExMatches");
return this._data$p$0._getRegExMatches$i$0()
};
$h.Appointment.prototype.getFilteredEntitiesByName=function(name)
{
return this._data$p$0._getFilteredEntitiesByName$i$0(name)
};
$h.Appointment.prototype.getRegExMatchesByName=function(name)
{
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"getRegExMatchesByName");
return this._data$p$0._getRegExMatchesByName$i$0(name)
};
$h.Appointment.prototype.displayReplyForm=function(obj)
{
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._displayReplyForm$i$0(obj)
};
$h.Appointment.prototype.displayReplyAllForm=function(obj)
{
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._displayReplyAllForm$i$0(obj)
};
$h.AppointmentCompose=function(data)
{
this.$$d__getLocation$p$2=Function.createDelegate(this,this._getLocation$p$2);
this.$$d__getEnd$p$2=Function.createDelegate(this,this._getEnd$p$2);
this.$$d__getStart$p$2=Function.createDelegate(this,this._getStart$p$2);
this.$$d__getOptionalAttendees$p$2=Function.createDelegate(this,this._getOptionalAttendees$p$2);
this.$$d__getRequiredAttendees$p$2=Function.createDelegate(this,this._getRequiredAttendees$p$2);
$h.AppointmentCompose.initializeBase(this,[data]);
$h.InitialData._defineReadOnlyProperty$i(this,"requiredAttendees",this.$$d__getRequiredAttendees$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"optionalAttendees",this.$$d__getOptionalAttendees$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"start",this.$$d__getStart$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"end",this.$$d__getEnd$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"location",this.$$d__getLocation$p$2)
};
$h.AppointmentCompose.prototype={
_requiredAttendees$p$2: null,
_optionalAttendees$p$2: null,
_start$p$2: null,
_end$p$2: null,
_location$p$2: null,
getItemType: function()
{
return window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ItemType"]["Appointment"]
},
_getRequiredAttendees$p$2: function()
{
this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
if(!this._requiredAttendees$p$2)
this._requiredAttendees$p$2=new $h.ComposeRecipient(0,"requiredAttendees");
return this._requiredAttendees$p$2
},
_getOptionalAttendees$p$2: function()
{
this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
if(!this._optionalAttendees$p$2)
this._optionalAttendees$p$2=new $h.ComposeRecipient(1,"optionalAttendees");
return this._optionalAttendees$p$2
},
_getStart$p$2: function()
{
this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
if(!this._start$p$2)
this._start$p$2=new $h.ComposeTime(1);
return this._start$p$2
},
_getEnd$p$2: function()
{
this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
if(!this._end$p$2)
this._end$p$2=new $h.ComposeTime(2);
return this._end$p$2
},
_getLocation$p$2: function()
{
this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
if(!this._location$p$2)
this._location$p$2=new $h.ComposeLocation;
return this._location$p$2
}
};
$h.AttachmentConstants=function(){};
$h.AttachmentDetails=function(data)
{
this.$$d__getIsInline$p$0=Function.createDelegate(this,this._getIsInline$p$0);
this.$$d__getAttachmentType$p$0=Function.createDelegate(this,this._getAttachmentType$p$0);
this.$$d__getSize$p$0=Function.createDelegate(this,this._getSize$p$0);
this.$$d__getContentType$p$0=Function.createDelegate(this,this._getContentType$p$0);
this.$$d__getName$p$0=Function.createDelegate(this,this._getName$p$0);
this.$$d__getId$p$0=Function.createDelegate(this,this._getId$p$0);
this._data$p$0=data;
$h.InitialData._defineReadOnlyProperty$i(this,"id",this.$$d__getId$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"name",this.$$d__getName$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"contentType",this.$$d__getContentType$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"size",this.$$d__getSize$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"attachmentType",this.$$d__getAttachmentType$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"isInline",this.$$d__getIsInline$p$0)
};
$h.AttachmentDetails.prototype={
_data$p$0: null,
_getId$p$0: function()
{
return this._data$p$0["id"]
},
_getName$p$0: function()
{
return this._data$p$0["name"]
},
_getContentType$p$0: function()
{
return this._data$p$0["contentType"]
},
_getSize$p$0: function()
{
return this._data$p$0["size"]
},
_getAttachmentType$p$0: function()
{
var response=this._data$p$0["attachmentType"];
return response < $h.AttachmentDetails._attachmentTypeMap$p["length"] ? $h.AttachmentDetails._attachmentTypeMap$p[response] : window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["AttachmentType"]["File"]
},
_getIsInline$p$0: function()
{
return this._data$p$0["isInline"]
}
};
$h.Body=function(){};
$h.Body._tryMapToHostCoercionType$i=function(coercionType, hostCoercionType)
{
hostCoercionType.val=undefined;
if(coercionType===window["Microsoft"]["Office"]["WebExtension"]["CoercionType"]["Html"])
hostCoercionType.val=3;
else if(coercionType===window["Microsoft"]["Office"]["WebExtension"]["CoercionType"]["Text"])
hostCoercionType.val=0;
else
return false;
return true
};
$h.Body.prototype.getAsync=function(coercionType)
{
var args=[];
for(var $$pai_7=1; $$pai_7 < arguments["length"];++$$pai_7)
args[$$pai_7 - 1]=arguments[$$pai_7];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"body.getAsync");
var commonParameters=$h.CommonParameters.parse(args,true);
var hostCoercionType;
var $$t_5,
$$t_6;
if(!($$t_6=$h.Body._tryMapToHostCoercionType$i(coercionType,$$t_5={val: hostCoercionType}),hostCoercionType=$$t_5["val"],$$t_6))
throw Error.argument("coercionType");
var dataToHost={coercionType: hostCoercionType};
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(37,dataToHost,null,commonParameters._asyncContext$p$0,commonParameters._callback$p$0)
};
$h.ComposeBody=function()
{
$h.ComposeBody.initializeBase(this)
};
$h.ComposeBody._createParameterDictionaryToHost$i=function(data, parameters)
{
var dataToHost={data: data};
if(parameters._options$p$0 && !$h.ScriptHelpers.isNull(parameters._options$p$0["coercionType"]))
{
var hostCoercionType;
var $$t_4,
$$t_5;
if(!($$t_5=$h.Body._tryMapToHostCoercionType$i(parameters._options$p$0["coercionType"],$$t_4={val: hostCoercionType}),hostCoercionType=$$t_4["val"],$$t_5))
{
if(parameters._callback$p$0)
parameters._callback$p$0(window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.createAsyncResult(null,1,1e3,parameters._asyncContext$p$0,null));
return null
}
dataToHost["coercionType"]=hostCoercionType
}
else
dataToHost["coercionType"]=0;
return dataToHost
};
$h.ComposeBody.prototype.getTypeAsync=function()
{
var args=[];
for(var $$pai_2=0; $$pai_2 < arguments["length"];++$$pai_2)
args[$$pai_2]=arguments[$$pai_2];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"body.getTypeAsync");
var parameters=$h.CommonParameters.parse(args,true);
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(14,null,null,parameters._asyncContext$p$0,parameters._callback$p$0)
};
$h.ComposeBody.prototype.setSelectedDataAsync=function(data)
{
var args=[];
for(var $$pai_4=1; $$pai_4 < arguments["length"];++$$pai_4)
args[$$pai_4 - 1]=arguments[$$pai_4];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"body.setSelectedDataAsync");
var parameters=$h.CommonParameters.parse(args,false);
if(!String.isInstanceOfType(data))
throw Error.argumentType("data",Object["getType"](data),String);
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(data["length"],0,1e6,"data");
var dataToHost=$h.ComposeBody._createParameterDictionaryToHost$i(data,parameters);
if(!dataToHost)
return;
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(13,dataToHost,null,parameters._asyncContext$p$0,parameters._callback$p$0)
};
$h.ComposeBody.prototype.prependAsync=function(data)
{
var args=[];
for(var $$pai_4=1; $$pai_4 < arguments["length"];++$$pai_4)
args[$$pai_4 - 1]=arguments[$$pai_4];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"body.prependAsync");
var parameters=$h.CommonParameters.parse(args,false);
if(!String.isInstanceOfType(data))
throw Error.argumentType("data",Object["getType"](data),String);
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(data["length"],0,1e6,"data");
var dataToHost=$h.ComposeBody._createParameterDictionaryToHost$i(data,parameters);
if(!dataToHost)
return;
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(23,dataToHost,null,parameters._asyncContext$p$0,parameters._callback$p$0)
};
$h.ComposeBody.prototype.setAsync=function(data)
{
var args=[];
for(var $$pai_4=1; $$pai_4 < arguments["length"];++$$pai_4)
args[$$pai_4 - 1]=arguments[$$pai_4];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"body.setAsync");
var parameters=$h.CommonParameters.parse(args,false);
if(!String.isInstanceOfType(data))
throw Error.argumentType("data",Object["getType"](data),String);
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(data["length"],0,1e6,"data");
var dataToHost=$h.ComposeBody._createParameterDictionaryToHost$i(data,parameters);
if(!dataToHost)
return;
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(38,dataToHost,null,parameters._asyncContext$p$0,parameters._callback$p$0)
};
$h.ComposeItem=function(data)
{
this.$$d__getBody$p$1=Function.createDelegate(this,this._getBody$p$1);
this.$$d__getSubject$p$1=Function.createDelegate(this,this._getSubject$p$1);
$h.ComposeItem.initializeBase(this,[data]);
$h.InitialData._defineReadOnlyProperty$i(this,"subject",this.$$d__getSubject$p$1);
$h.InitialData._defineReadOnlyProperty$i(this,"body",this.$$d__getBody$p$1)
};
$h.ComposeItem.prototype={
_subject$p$1: null,
_body$p$1: null,
_getBody$p$1: function()
{
this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
if(!this._body$p$1)
this._body$p$1=new $h.ComposeBody;
return this._body$p$1
},
_getSubject$p$1: function()
{
this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
if(!this._subject$p$1)
this._subject$p$1=new $h.ComposeSubject;
return this._subject$p$1
}
};
$h.ComposeItem.prototype.addFileAttachmentAsync=function(uri, attachmentName)
{
var args=[];
for(var $$pai_5=2; $$pai_5 < arguments["length"];++$$pai_5)
args[$$pai_5 - 2]=arguments[$$pai_5];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"addFileAttachmentAsync");
if(!$h.ScriptHelpers.isNonEmptyString(uri))
throw Error.argument("uri");
if(!$h.ScriptHelpers.isNonEmptyString(attachmentName))
throw Error.argument("attachmentName");
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(uri["length"],0,2048,"uri");
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(attachmentName["length"],0,255,"attachmentName");
var commonParameters=$h.CommonParameters.parse(args,false);
var parameters={
uri: uri,
name: attachmentName,
__timeout__: 6e5
};
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(16,parameters,null,commonParameters._asyncContext$p$0,commonParameters._callback$p$0)
};
$h.ComposeItem.prototype.addItemAttachmentAsync=function(itemId, attachmentName)
{
var args=[];
for(var $$pai_5=2; $$pai_5 < arguments["length"];++$$pai_5)
args[$$pai_5 - 2]=arguments[$$pai_5];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"addItemAttachmentAsync");
if(!$h.ScriptHelpers.isNonEmptyString(itemId))
throw Error.argument("itemId");
if(!$h.ScriptHelpers.isNonEmptyString(attachmentName))
throw Error.argument("attachmentName");
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(itemId["length"],0,200,"itemId");
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(attachmentName["length"],0,255,"attachmentName");
var commonParameters=$h.CommonParameters.parse(args,false);
var parameters={
itemId: window["OSF"]["DDA"]["OutlookAppOm"].getItemIdBasedOnHost(itemId),
name: attachmentName,
__timeout__: 6e5
};
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(19,parameters,null,commonParameters._asyncContext$p$0,commonParameters._callback$p$0)
};
$h.ComposeItem.prototype.removeAttachmentAsync=function(attachmentId)
{
var args=[];
for(var $$pai_3=1; $$pai_3 < arguments["length"];++$$pai_3)
args[$$pai_3 - 1]=arguments[$$pai_3];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"removeAttachmentAsync");
if(!$h.ScriptHelpers.isNonEmptyString(attachmentId))
throw Error.argument("attachmentId");
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(attachmentId["length"],0,200,"attachmentId");
var commonParameters=$h.CommonParameters.parse(args,false);
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(20,{attachmentIndex: attachmentId},null,commonParameters._asyncContext$p$0,commonParameters._callback$p$0)
};
$h.ComposeItem.prototype.getSelectedDataAsync=function(coercionType)
{
var args=[];
for(var $$pai_7=1; $$pai_7 < arguments["length"];++$$pai_7)
args[$$pai_7 - 1]=arguments[$$pai_7];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"getSelectedDataAsync");
var commonParameters=$h.CommonParameters.parse(args,true);
var hostCoercionType;
var $$t_5,
$$t_6;
if(coercionType !==window["Microsoft"]["Office"]["WebExtension"]["CoercionType"]["Html"] && coercionType !==window["Microsoft"]["Office"]["WebExtension"]["CoercionType"]["Text"] || !($$t_6=$h.Body._tryMapToHostCoercionType$i(coercionType,$$t_5={val: hostCoercionType}),hostCoercionType=$$t_5["val"],$$t_6))
throw Error.argument("coercionType");
var dataToHost={coercionType: hostCoercionType};
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(28,dataToHost,null,commonParameters._asyncContext$p$0,commonParameters._callback$p$0)
};
$h.ComposeItem.prototype.setSelectedDataAsync=function(data)
{
var args=[];
for(var $$pai_4=1; $$pai_4 < arguments["length"];++$$pai_4)
args[$$pai_4 - 1]=arguments[$$pai_4];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"setSelectedDataAsync");
var parameters=$h.CommonParameters.parse(args,false);
if(!String.isInstanceOfType(data))
throw Error.argumentType("data",Object["getType"](data),String);
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(data["length"],0,1e6,"data");
var dataToHost=$h.ComposeBody._createParameterDictionaryToHost$i(data,parameters);
if(!dataToHost)
return;
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(29,dataToHost,null,parameters._asyncContext$p$0,parameters._callback$p$0)
};
$h.ComposeItem.prototype.close=function()
{
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(41,null,null,null,null)
};
$h.ComposeItem.prototype.saveAsync=function()
{
var args=[];
for(var $$pai_2=0; $$pai_2 < arguments["length"];++$$pai_2)
args[$$pai_2]=arguments[$$pai_2];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"saveAsync");
var parameters=$h.CommonParameters.parse(args,false);
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(32,null,null,parameters._asyncContext$p$0,parameters._callback$p$0)
};
$h.ComposeRecipient=function(type, propertyName)
{
this._type$p$0=type;
this._propertyName$p$0=propertyName
};
$h.ComposeRecipient._throwOnInvalidDisplayNameOrEmail$p=function(displayName, emailAddress)
{
if(!displayName && !emailAddress)
throw Error.argument("recipients");
if(displayName && displayName["length"] > 255)
throw Error.argumentOutOfRange("recipients",displayName["length"],window["_u"]["ExtensibilityStrings"]["l_DisplayNameTooLong_Text"]);
if(emailAddress && emailAddress["length"] > 571)
throw Error.argumentOutOfRange("recipients",emailAddress["length"],window["_u"]["ExtensibilityStrings"]["l_EmailAddressTooLong_Text"]);
};
$h.ComposeRecipient._getAsyncFormatter$p=function(rawInput)
{
var input=rawInput;
var output=[];
for(var i=0; i < input["length"]; i++)
{
var email=new $h.EmailAddressDetails(input[i]);
output[i]=email
}
return output
};
$h.ComposeRecipient._createEmailDictionaryForHost$p=function(address, name)
{
return{
address: address,
name: name
}
};
$h.ComposeRecipient.prototype={
_propertyName$p$0: null,
_type$p$0: 0,
setAddHelper: function(recipients, args, isSet)
{
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(recipients["length"],0,100,"recipients");
var parameters=$h.CommonParameters.parse(args,false);
var recipientData=[];
if(Array.isInstanceOfType(recipients))
for(var i=0; i < recipients["length"]; i++)
if(String.isInstanceOfType(recipients[i]))
{
$h.ComposeRecipient._throwOnInvalidDisplayNameOrEmail$p(recipients[i],recipients[i]);
recipientData[i]=$h.ComposeRecipient._createEmailDictionaryForHost$p(recipients[i],recipients[i])
}
else if($h.EmailAddressDetails.isInstanceOfType(recipients[i]))
{
var address=recipients[i];
$h.ComposeRecipient._throwOnInvalidDisplayNameOrEmail$p(address["displayName"],address["emailAddress"]);
recipientData[i]=$h.ComposeRecipient._createEmailDictionaryForHost$p(address["emailAddress"],address["displayName"])
}
else if(Object.isInstanceOfType(recipients[i]))
{
var input=recipients[i];
var emailAddress=input["emailAddress"];
var displayName=input["displayName"];
$h.ComposeRecipient._throwOnInvalidDisplayNameOrEmail$p(displayName,emailAddress);
recipientData[i]=$h.ComposeRecipient._createEmailDictionaryForHost$p(emailAddress,displayName)
}
else
throw Error.argument("recipients");
else
throw Error.argument("recipients");
var $$t_B=this;
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(isSet ? 21 : 22,{
recipientField: this._type$p$0,
recipientArray: recipientData
},function(rawInput)
{
return rawInput
},parameters._asyncContext$p$0,parameters._callback$p$0)
}
};
$h.ComposeRecipient.prototype.getAsync=function()
{
var args=[];
for(var $$pai_2=0; $$pai_2 < arguments["length"];++$$pai_2)
args[$$pai_2]=arguments[$$pai_2];
var parameters=$h.CommonParameters.parse(args,true);
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,this._propertyName$p$0+".getAsync");
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(15,{recipientField: this._type$p$0},$h.ComposeRecipient._getAsyncFormatter$p,parameters._asyncContext$p$0,parameters._callback$p$0)
};
$h.ComposeRecipient.prototype.setAsync=function(recipients)
{
var args=[];
for(var $$pai_2=1; $$pai_2 < arguments["length"];++$$pai_2)
args[$$pai_2 - 1]=arguments[$$pai_2];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,this._propertyName$p$0+".setAsync");
this.setAddHelper(recipients,args,true)
};
$h.ComposeRecipient.prototype.addAsync=function(recipients)
{
var args=[];
for(var $$pai_2=1; $$pai_2 < arguments["length"];++$$pai_2)
args[$$pai_2 - 1]=arguments[$$pai_2];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,this._propertyName$p$0+".addAsync");
this.setAddHelper(recipients,args,false)
};
$h.ComposeRecipient.RecipientField=function(){};
$h.ComposeRecipient.RecipientField.prototype={
to: 0,
cc: 1,
bcc: 2,
requiredAttendees: 0,
optionalAttendees: 1
};
$h.ComposeRecipient.RecipientField.registerEnum("$h.ComposeRecipient.RecipientField",false);
$h.ComposeLocation=function(){};
$h.ComposeLocation.prototype.getAsync=function()
{
var args=[];
for(var $$pai_2=0; $$pai_2 < arguments["length"];++$$pai_2)
args[$$pai_2]=arguments[$$pai_2];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"location.getAsync");
var parameters=$h.CommonParameters.parse(args,true);
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(26,null,null,parameters._asyncContext$p$0,parameters._callback$p$0)
};
$h.ComposeLocation.prototype.setAsync=function(location)
{
var args=[];
for(var $$pai_3=1; $$pai_3 < arguments["length"];++$$pai_3)
args[$$pai_3 - 1]=arguments[$$pai_3];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"location.setAsync");
var parameters=$h.CommonParameters.parse(args,false);
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(location["length"],0,255,"location");
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(27,{location: location},null,parameters._asyncContext$p$0,parameters._callback$p$0)
};
$h.ComposeSubject=function(){};
$h.ComposeSubject.prototype.getAsync=function()
{
var args=[];
for(var $$pai_2=0; $$pai_2 < arguments["length"];++$$pai_2)
args[$$pai_2]=arguments[$$pai_2];
var parameters=$h.CommonParameters.parse(args,true);
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"subject.getAsync");
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(18,null,null,parameters._asyncContext$p$0,parameters._callback$p$0)
};
$h.ComposeSubject.prototype.setAsync=function(data)
{
var args=[];
for(var $$pai_3=1; $$pai_3 < arguments["length"];++$$pai_3)
args[$$pai_3 - 1]=arguments[$$pai_3];
var parameters=$h.CommonParameters.parse(args,false);
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"subject.setAsync");
if(!String.isInstanceOfType(data))
throw Error.argument("data");
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(data["length"],0,255,"data");
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(17,{subject: data},null,parameters._asyncContext$p$0,parameters._callback$p$0)
};
$h.ComposeTime=function(type)
{
this.$$d__ticksToDateFormatter$p$0=Function.createDelegate(this,this._ticksToDateFormatter$p$0);
this._timeType$p$0=type
};
$h.ComposeTime.prototype={
_timeType$p$0: 0,
_ticksToDateFormatter$p$0: function(rawInput)
{
var ticks=rawInput;
return new Date(ticks)
},
_getPropertyName$p$0: function()
{
return this._timeType$p$0===1 ? "start" : "end"
}
};
$h.ComposeTime.prototype.getAsync=function()
{
var args=[];
for(var $$pai_2=0; $$pai_2 < arguments["length"];++$$pai_2)
args[$$pai_2]=arguments[$$pai_2];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,this._getPropertyName$p$0()+".getAsync");
var parameters=$h.CommonParameters.parse(args,true);
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(24,{TimeProperty: this._timeType$p$0},this.$$d__ticksToDateFormatter$p$0,parameters._asyncContext$p$0,parameters._callback$p$0)
};
$h.ComposeTime.prototype.setAsync=function(dateTime)
{
var args=[];
for(var $$pai_3=1; $$pai_3 < arguments["length"];++$$pai_3)
args[$$pai_3 - 1]=arguments[$$pai_3];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,this._getPropertyName$p$0()+".setAsync");
if(!Date.isInstanceOfType(dateTime))
throw Error.argumentType("dateTime",Object["getType"](dateTime),Date);
if(window["isNaN"](dateTime["getTime"]()))
throw Error.argument("dateTime");
if(dateTime["getTime"]() < -864e13 || dateTime["getTime"]() > 864e13)
throw Error.argumentOutOfRange("dateTime");
var parameters=$h.CommonParameters.parse(args,false);
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(25,{
TimeProperty: this._timeType$p$0,
time: dateTime["getTime"]()
},null,parameters._asyncContext$p$0,parameters._callback$p$0)
};
$h.ComposeTime.TimeType=function(){};
$h.ComposeTime.TimeType.prototype={
start: 1,
end: 2
};
$h.ComposeTime.TimeType.registerEnum("$h.ComposeTime.TimeType",false);
$h.Contact=function(data)
{
this.$$d__getContactString$p$0=Function.createDelegate(this,this._getContactString$p$0);
this.$$d__getAddresses$p$0=Function.createDelegate(this,this._getAddresses$p$0);
this.$$d__getUrls$p$0=Function.createDelegate(this,this._getUrls$p$0);
this.$$d__getEmailAddresses$p$0=Function.createDelegate(this,this._getEmailAddresses$p$0);
this.$$d__getPhoneNumbers$p$0=Function.createDelegate(this,this._getPhoneNumbers$p$0);
this.$$d__getBusinessName$p$0=Function.createDelegate(this,this._getBusinessName$p$0);
this.$$d__getPersonName$p$0=Function.createDelegate(this,this._getPersonName$p$0);
this._data$p$0=data;
$h.InitialData._defineReadOnlyProperty$i(this,"personName",this.$$d__getPersonName$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"businessName",this.$$d__getBusinessName$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"phoneNumbers",this.$$d__getPhoneNumbers$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"emailAddresses",this.$$d__getEmailAddresses$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"urls",this.$$d__getUrls$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"addresses",this.$$d__getAddresses$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"contactString",this.$$d__getContactString$p$0)
};
$h.Contact.prototype={
_data$p$0: null,
_phoneNumbers$p$0: null,
_getPersonName$p$0: function()
{
return this._data$p$0["PersonName"]
},
_getBusinessName$p$0: function()
{
return this._data$p$0["BusinessName"]
},
_getAddresses$p$0: function()
{
return $h.Entities._getExtractedStringProperty$i(this._data$p$0,"Addresses")
},
_getEmailAddresses$p$0: function()
{
return $h.Entities._getExtractedStringProperty$i(this._data$p$0,"EmailAddresses")
},
_getUrls$p$0: function()
{
return $h.Entities._getExtractedStringProperty$i(this._data$p$0,"Urls")
},
_getPhoneNumbers$p$0: function()
{
if(!this._phoneNumbers$p$0)
{
var $$t_1=this;
this._phoneNumbers$p$0=$h.Entities._getExtractedObjects$i($h.PhoneNumber,this._data$p$0,"PhoneNumbers",function(data)
{
return new $h.PhoneNumber(data)
})
}
return this._phoneNumbers$p$0
},
_getContactString$p$0: function()
{
return this._data$p$0["ContactString"]
}
};
$h.CustomProperties=function(data)
{
if($h.ScriptHelpers.isNullOrUndefined(data))
throw Error.argumentNull("data");
if(Array.isInstanceOfType(data))
{
var customPropertiesArray=data;
if(customPropertiesArray["length"] > 0)
this._data$p$0=customPropertiesArray[0];
else
throw Error.argument("data");
}
else
this._data$p$0=data
};
$h.CustomProperties.prototype={_data$p$0: null};
$h.CustomProperties.prototype.get=function(name)
{
var value=this._data$p$0[name];
if(typeof value==="string")
{
var valueString=value;
if(valueString["length"] > 6 && valueString.startsWith("Date(") && valueString.endsWith(")"))
{
var ticksString=valueString["substring"](5,valueString["length"] - 1);
var ticks=window["parseInt"](ticksString);
if(!window["isNaN"](ticks))
{
var dateTimeValue=new Date(ticks);
if(dateTimeValue)
value=dateTimeValue
}
}
}
return value
};
$h.CustomProperties.prototype.set=function(name, value)
{
if(window["OSF"]["OUtil"]["isDate"](value))
value="Date("+value["getTime"]()+")";
this._data$p$0[name]=value
};
$h.CustomProperties.prototype.remove=function(name)
{
delete this._data$p$0[name]
};
$h.CustomProperties.prototype.saveAsync=function()
{
var args=[];
for(var $$pai_4=0; $$pai_4 < arguments["length"];++$$pai_4)
args[$$pai_4]=arguments[$$pai_4];
var MaxCustomPropertiesLength=2500;
if(window["JSON"]["stringify"](this._data$p$0)["length"] > MaxCustomPropertiesLength)
throw Error.argument();
var parameters=$h.CommonParameters.parse(args,false,true);
var saveCustomProperties=new $h.SaveDictionaryRequest(parameters._callback$p$0,parameters._asyncContext$p$0);
saveCustomProperties._sendRequest$i$0(4,"SaveCustomProperties",{customProperties: this._data$p$0})
};
$h.Diagnostics=function(data, appName)
{
this.$$d__getOwaView$p$0=Function.createDelegate(this,this._getOwaView$p$0);
this.$$d__getHostVersion$p$0=Function.createDelegate(this,this._getHostVersion$p$0);
this.$$d__getHostName$p$0=Function.createDelegate(this,this._getHostName$p$0);
this._data$p$0=data;
this._appName$p$0=appName;
$h.InitialData._defineReadOnlyProperty$i(this,"hostName",this.$$d__getHostName$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"hostVersion",this.$$d__getHostVersion$p$0);
if(64===this._appName$p$0)
$h.InitialData._defineReadOnlyProperty$i(this,"OWAView",this.$$d__getOwaView$p$0)
};
$h.Diagnostics.prototype={
_data$p$0: null,
_appName$p$0: 0,
_getHostName$p$0: function()
{
if(8===this._appName$p$0)
return"Outlook";
else if(64===this._appName$p$0)
return"OutlookWebApp";
return null
},
_getHostVersion$p$0: function()
{
return this._data$p$0.get__hostVersion$i$0()
},
_getOwaView$p$0: function()
{
return this._data$p$0.get__owaView$i$0()
}
};
$h.EmailAddressDetails=function(data)
{
this.$$d__getRecipientType$p$0=Function.createDelegate(this,this._getRecipientType$p$0);
this.$$d__getAppointmentResponse$p$0=Function.createDelegate(this,this._getAppointmentResponse$p$0);
this.$$d__getDisplayName$p$0=Function.createDelegate(this,this._getDisplayName$p$0);
this.$$d__getEmailAddress$p$0=Function.createDelegate(this,this._getEmailAddress$p$0);
this._data$p$0=data;
$h.InitialData._defineReadOnlyProperty$i(this,"emailAddress",this.$$d__getEmailAddress$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"displayName",this.$$d__getDisplayName$p$0);
if($h.ScriptHelpers.dictionaryContainsKey(data,"appointmentResponse"))
$h.InitialData._defineReadOnlyProperty$i(this,"appointmentResponse",this.$$d__getAppointmentResponse$p$0);
if($h.ScriptHelpers.dictionaryContainsKey(data,"recipientType"))
$h.InitialData._defineReadOnlyProperty$i(this,"recipientType",this.$$d__getRecipientType$p$0)
};
$h.EmailAddressDetails._createFromEmailUserDictionary$i=function(data)
{
var emailAddressDetailsDictionary={};
var displayName=data["Name"];
var emailAddress=data["UserId"];
emailAddressDetailsDictionary["name"]=displayName || $h.EmailAddressDetails._emptyString$p;
emailAddressDetailsDictionary["address"]=emailAddress || $h.EmailAddressDetails._emptyString$p;
return new $h.EmailAddressDetails(emailAddressDetailsDictionary)
};
$h.EmailAddressDetails.prototype={
_data$p$0: null,
_getEmailAddress$p$0: function()
{
return this._data$p$0["address"]
},
_getDisplayName$p$0: function()
{
return this._data$p$0["name"]
},
_getAppointmentResponse$p$0: function()
{
var response=this._data$p$0["appointmentResponse"];
return response < $h.EmailAddressDetails._responseTypeMap$p["length"] ? $h.EmailAddressDetails._responseTypeMap$p[response] : window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ResponseType"]["None"]
},
_getRecipientType$p$0: function()
{
var response=this._data$p$0["recipientType"];
return response < $h.EmailAddressDetails._recipientTypeMap$p["length"] ? $h.EmailAddressDetails._recipientTypeMap$p[response] : window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RecipientType"]["Other"]
}
};
$h.EmailAddressDetails.prototype.toJSON=function()
{
var result={};
result["emailAddress"]=this._getEmailAddress$p$0();
result["displayName"]=this._getDisplayName$p$0();
if($h.ScriptHelpers.dictionaryContainsKey(this._data$p$0,"appointmentResponse"))
result["appointmentResponse"]=this._getAppointmentResponse$p$0();
if($h.ScriptHelpers.dictionaryContainsKey(this._data$p$0,"recipientType"))
result["recipientType"]=this._getRecipientType$p$0();
return result
};
$h.Entities=function(data, filteredEntitiesData, timeSent, permissionLevel)
{
this.$$d__createMeetingSuggestion$p$0=Function.createDelegate(this,this._createMeetingSuggestion$p$0);
this.$$d__getParcelDeliveries$p$0=Function.createDelegate(this,this._getParcelDeliveries$p$0);
this.$$d__getFlightReservations$p$0=Function.createDelegate(this,this._getFlightReservations$p$0);
this.$$d__getContacts$p$0=Function.createDelegate(this,this._getContacts$p$0);
this.$$d__getPhoneNumbers$p$0=Function.createDelegate(this,this._getPhoneNumbers$p$0);
this.$$d__getUrls$p$0=Function.createDelegate(this,this._getUrls$p$0);
this.$$d__getEmailAddresses$p$0=Function.createDelegate(this,this._getEmailAddresses$p$0);
this.$$d__getMeetingSuggestions$p$0=Function.createDelegate(this,this._getMeetingSuggestions$p$0);
this.$$d__getTaskSuggestions$p$0=Function.createDelegate(this,this._getTaskSuggestions$p$0);
this.$$d__getAddresses$p$0=Function.createDelegate(this,this._getAddresses$p$0);
this._data$p$0=data || {};
this._filteredData$p$0=filteredEntitiesData || {};
this._dateTimeSent$p$0=timeSent;
$h.InitialData._defineReadOnlyProperty$i(this,"addresses",this.$$d__getAddresses$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"taskSuggestions",this.$$d__getTaskSuggestions$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"meetingSuggestions",this.$$d__getMeetingSuggestions$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"emailAddresses",this.$$d__getEmailAddresses$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"urls",this.$$d__getUrls$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"phoneNumbers",this.$$d__getPhoneNumbers$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"contacts",this.$$d__getContacts$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"flightReservations",this.$$d__getFlightReservations$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"parcelDeliveries",this.$$d__getParcelDeliveries$p$0);
this._permissionLevel$p$0=permissionLevel
};
$h.Entities._getExtractedObjects$i=function(T, data, name, creator, removeDuplicates, stringPropertyName)
{
var results=null;
var extractedObjects=data[name];
if(!extractedObjects)
return new Array(0);
if(removeDuplicates)
extractedObjects=$h.Entities._removeDuplicate$p(Object,extractedObjects,$h.Entities._entityDictionaryEquals$p,stringPropertyName);
results=new Array(extractedObjects["length"]);
var count=0;
for(var $$arr_9=extractedObjects, $$len_A=$$arr_9["length"], $$idx_B=0; $$idx_B < $$len_A;++$$idx_B)
{
var extractedObject=$$arr_9[$$idx_B];
if(creator)
results[count++]=creator(extractedObject);
else
results[count++]=extractedObject
}
return results
};
$h.Entities._getExtractedStringProperty$i=function(data, name, removeDuplicate)
{
var extractedProperties=data[name];
if(!extractedProperties)
return new Array(0);
if(removeDuplicate)
extractedProperties=$h.Entities._removeDuplicate$p(String,extractedProperties,$h.Entities._stringEquals$p,null);
return extractedProperties
};
$h.Entities._createContact$p=function(data)
{
return new $h.Contact(data)
};
$h.Entities._createTaskSuggestion$p=function(data)
{
return new $h.TaskSuggestion(data)
};
$h.Entities._createPhoneNumber$p=function(data)
{
return new $h.PhoneNumber(data)
};
$h.Entities._entityDictionaryEquals$p=function(dictionary1, dictionary2, entityPropertyIdentifier)
{
if(dictionary1===dictionary2)
return true;
if(!dictionary1 || !dictionary2)
return false;
if(dictionary1[entityPropertyIdentifier]===dictionary2[entityPropertyIdentifier])
return true;
return false
};
$h.Entities._stringEquals$p=function(string1, string2, entityProperty)
{
return string1===string2
};
$h.Entities._removeDuplicate$p=function(T, array, entityEquals, entityPropertyIdentifier)
{
for(var matchIndex1=array["length"] - 1; matchIndex1 >=0; matchIndex1--)
{
var removeMatch=false;
for(var matchIndex2=matchIndex1 - 1; matchIndex2 >=0; matchIndex2--)
if(entityEquals(array[matchIndex1],array[matchIndex2],entityPropertyIdentifier))
{
removeMatch=true;
break
}
if(removeMatch)
Array.removeAt(array,matchIndex1)
}
return array
};
$h.Entities.prototype={
_dateTimeSent$p$0: null,
_data$p$0: null,
_filteredData$p$0: null,
_filteredEntitiesCache$p$0: null,
_permissionLevel$p$0: 0,
_taskSuggestions$p$0: null,
_meetingSuggestions$p$0: null,
_phoneNumbers$p$0: null,
_contacts$p$0: null,
_addresses$p$0: null,
_emailAddresses$p$0: null,
_urls$p$0: null,
_flightReservations$p$0: null,
_parcelDeliveries$p$0: null,
_getByType$i$0: function(entityType)
{
if(entityType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["EntityType"]["MeetingSuggestion"])
return this._getMeetingSuggestions$p$0();
else if(entityType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["EntityType"]["TaskSuggestion"])
return this._getTaskSuggestions$p$0();
else if(entityType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["EntityType"]["Address"])
return this._getAddresses$p$0();
else if(entityType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["EntityType"]["PhoneNumber"])
return this._getPhoneNumbers$p$0();
else if(entityType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["EntityType"]["EmailAddress"])
return this._getEmailAddresses$p$0();
else if(entityType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["EntityType"]["Url"])
return this._getUrls$p$0();
else if(entityType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["EntityType"]["Contact"])
return this._getContacts$p$0();
else if(entityType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["EntityType"]["FlightReservations"])
return this._getFlightReservations$p$0();
else if(entityType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["EntityType"]["ParcelDeliveries"])
return this._getParcelDeliveries$p$0();
return null
},
_getFilteredEntitiesByName$i$0: function(name)
{
if(!this._filteredEntitiesCache$p$0)
this._filteredEntitiesCache$p$0={};
if(!$h.ScriptHelpers.dictionaryContainsKey(this._filteredEntitiesCache$p$0,name))
{
var found=false;
for(var i=0; i < $h.Entities._allEntityKeys$p["length"]; i++)
{
var entityTypeKey=$h.Entities._allEntityKeys$p[i];
var perEntityTypeDictionary=this._filteredData$p$0[entityTypeKey];
if(!perEntityTypeDictionary)
continue;
if($h.ScriptHelpers.dictionaryContainsKey(perEntityTypeDictionary,name))
{
switch(entityTypeKey)
{
case"EmailAddresses":
case"Urls":
this._filteredEntitiesCache$p$0[name]=$h.Entities._getExtractedStringProperty$i(perEntityTypeDictionary,name);
break;
case"Addresses":
this._filteredEntitiesCache$p$0[name]=$h.Entities._getExtractedStringProperty$i(perEntityTypeDictionary,name,true);
break;
case"PhoneNumbers":
this._filteredEntitiesCache$p$0[name]=$h.Entities._getExtractedObjects$i($h.PhoneNumber,perEntityTypeDictionary,name,$h.Entities._createPhoneNumber$p,false,null);
break;
case"TaskSuggestions":
this._filteredEntitiesCache$p$0[name]=$h.Entities._getExtractedObjects$i($h.TaskSuggestion,perEntityTypeDictionary,name,$h.Entities._createTaskSuggestion$p,true,"TaskString");
break;
case"MeetingSuggestions":
this._filteredEntitiesCache$p$0[name]=$h.Entities._getExtractedObjects$i($h.MeetingSuggestion,perEntityTypeDictionary,name,this.$$d__createMeetingSuggestion$p$0,true,"MeetingString");
break;
case"Contacts":
this._filteredEntitiesCache$p$0[name]=$h.Entities._getExtractedObjects$i($h.Contact,perEntityTypeDictionary,name,$h.Entities._createContact$p,true,"ContactString");
break
}
found=true;
break
}
}
if(!found)
this._filteredEntitiesCache$p$0[name]=null
}
return this._filteredEntitiesCache$p$0[name]
},
_createMeetingSuggestion$p$0: function(data)
{
return new $h.MeetingSuggestion(data,this._dateTimeSent$p$0)
},
_getAddresses$p$0: function()
{
if(!this._addresses$p$0)
this._addresses$p$0=$h.Entities._getExtractedStringProperty$i(this._data$p$0,"Addresses",true);
return this._addresses$p$0
},
_getEmailAddresses$p$0: function()
{
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._permissionLevel$p$0);
if(!this._emailAddresses$p$0)
this._emailAddresses$p$0=$h.Entities._getExtractedStringProperty$i(this._data$p$0,"EmailAddresses",false);
return this._emailAddresses$p$0
},
_getUrls$p$0: function()
{
if(!this._urls$p$0)
this._urls$p$0=$h.Entities._getExtractedStringProperty$i(this._data$p$0,"Urls",false);
return this._urls$p$0
},
_getPhoneNumbers$p$0: function()
{
if(!this._phoneNumbers$p$0)
this._phoneNumbers$p$0=$h.Entities._getExtractedObjects$i($h.PhoneNumber,this._data$p$0,"PhoneNumbers",$h.Entities._createPhoneNumber$p);
return this._phoneNumbers$p$0
},
_getTaskSuggestions$p$0: function()
{
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._permissionLevel$p$0);
if(!this._taskSuggestions$p$0)
this._taskSuggestions$p$0=$h.Entities._getExtractedObjects$i($h.TaskSuggestion,this._data$p$0,"TaskSuggestions",$h.Entities._createTaskSuggestion$p,true,"TaskString");
return this._taskSuggestions$p$0
},
_getMeetingSuggestions$p$0: function()
{
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._permissionLevel$p$0);
if(!this._meetingSuggestions$p$0)
this._meetingSuggestions$p$0=$h.Entities._getExtractedObjects$i($h.MeetingSuggestion,this._data$p$0,"MeetingSuggestions",this.$$d__createMeetingSuggestion$p$0,true,"MeetingString");
return this._meetingSuggestions$p$0
},
_getContacts$p$0: function()
{
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._permissionLevel$p$0);
if(!this._contacts$p$0)
this._contacts$p$0=$h.Entities._getExtractedObjects$i($h.Contact,this._data$p$0,"Contacts",$h.Entities._createContact$p,true,"ContactString");
return this._contacts$p$0
},
_getParcelDeliveries$p$0: function()
{
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._permissionLevel$p$0);
if(!this._parcelDeliveries$p$0)
this._parcelDeliveries$p$0=$h.Entities._getExtractedObjects$i(Object,this._data$p$0,"ParcelDeliveries",null);
return this._parcelDeliveries$p$0
},
_getFlightReservations$p$0: function()
{
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._permissionLevel$p$0);
if(!this._flightReservations$p$0)
this._flightReservations$p$0=$h.Entities._getExtractedObjects$i(Object,this._data$p$0,"FlightReservations",null);
return this._flightReservations$p$0
}
};
$h.ReplyConstants=function(){};
$h.AsyncConstants=function(){};
window["Office"]["cast"]["item"]=Office.cast.item=function(){};
window["Office"]["cast"]["item"]["toItemRead"]=function(item)
{
if($h.Item.isInstanceOfType(item))
return item;
throw Error.argumentType();
};
window["Office"]["cast"]["item"]["toItemCompose"]=function(item)
{
if($h.ComposeItem.isInstanceOfType(item))
return item;
throw Error.argumentType();
};
window["Office"]["cast"]["item"]["toMessage"]=function(item)
{
return window["Office"]["cast"]["item"]["toMessageRead"](item)
};
window["Office"]["cast"]["item"]["toMessageRead"]=function(item)
{
if($h.Message.isInstanceOfType(item))
return item;
throw Error.argumentType();
};
window["Office"]["cast"]["item"]["toMessageCompose"]=function(item)
{
if($h.MessageCompose.isInstanceOfType(item))
return item;
throw Error.argumentType();
};
window["Office"]["cast"]["item"]["toMeetingRequest"]=function(item)
{
if($h.MeetingRequest.isInstanceOfType(item))
return item;
throw Error.argumentType();
};
window["Office"]["cast"]["item"]["toAppointment"]=function(item)
{
return window["Office"]["cast"]["item"]["toAppointmentRead"](item)
};
window["Office"]["cast"]["item"]["toAppointmentRead"]=function(item)
{
if($h.Appointment.isInstanceOfType(item))
return item;
throw Error.argumentType();
};
window["Office"]["cast"]["item"]["toAppointmentCompose"]=function(item)
{
if($h.AppointmentCompose.isInstanceOfType(item))
return item;
throw Error.argumentType();
};
$h.Item=function(data)
{
this.$$d__getBody$p$1=Function.createDelegate(this,this._getBody$p$1);
this.$$d__getAttachments$p$1=Function.createDelegate(this,this._getAttachments$p$1);
this.$$d__getItemClass$p$1=Function.createDelegate(this,this._getItemClass$p$1);
this.$$d__getItemId$p$1=Function.createDelegate(this,this._getItemId$p$1);
this.$$d__getDateTimeModified$p$1=Function.createDelegate(this,this._getDateTimeModified$p$1);
this.$$d__getDateTimeCreated$p$1=Function.createDelegate(this,this._getDateTimeCreated$p$1);
$h.Item.initializeBase(this,[data]);
$h.InitialData._defineReadOnlyProperty$i(this,"dateTimeCreated",this.$$d__getDateTimeCreated$p$1);
$h.InitialData._defineReadOnlyProperty$i(this,"dateTimeModified",this.$$d__getDateTimeModified$p$1);
$h.InitialData._defineReadOnlyProperty$i(this,"itemId",this.$$d__getItemId$p$1);
$h.InitialData._defineReadOnlyProperty$i(this,"itemClass",this.$$d__getItemClass$p$1);
$h.InitialData._defineReadOnlyProperty$i(this,"attachments",this.$$d__getAttachments$p$1);
$h.InitialData._defineReadOnlyProperty$i(this,"body",this.$$d__getBody$p$1)
};
$h.Item.prototype={
_body$p$1: null,
_getItemId$p$1: function()
{
return this._data$p$0.get__itemId$i$0()
},
_getItemClass$p$1: function()
{
return this._data$p$0.get__itemClass$i$0()
},
_getDateTimeCreated$p$1: function()
{
return this._data$p$0.get__dateTimeCreated$i$0()
},
_getDateTimeModified$p$1: function()
{
return this._data$p$0.get__dateTimeModified$i$0()
},
_getAttachments$p$1: function()
{
return this._data$p$0.get__attachments$i$0()
},
_getBody$p$1: function()
{
if(!this._body$p$1)
this._body$p$1=new $h.Body;
return this._body$p$1
}
};
$h.ItemBase=function(data)
{
this.$$d__createCustomProperties$i$0=Function.createDelegate(this,this._createCustomProperties$i$0);
this.$$d__getNotificationMessages$p$0=Function.createDelegate(this,this._getNotificationMessages$p$0);
this.$$d_getItemType=Function.createDelegate(this,this.getItemType);
this._data$p$0=data;
$h.InitialData._defineReadOnlyProperty$i(this,"itemType",this.$$d_getItemType);
$h.InitialData._defineReadOnlyProperty$i(this,"notificationMessages",this.$$d__getNotificationMessages$p$0)
};
$h.ItemBase.prototype={
_data$p$0: null,
_notificationMessages$p$0: null,
get_data: function()
{
return this._data$p$0
},
_createCustomProperties$i$0: function(data)
{
return new $h.CustomProperties(data)
},
_getNotificationMessages$p$0: function()
{
if(!this._notificationMessages$p$0)
this._notificationMessages$p$0=new $h.NotificationMessages;
return this._notificationMessages$p$0
}
};
$h.ItemBase.prototype.loadCustomPropertiesAsync=function()
{
var args=[];
for(var $$pai_3=0; $$pai_3 < arguments["length"];++$$pai_3)
args[$$pai_3]=arguments[$$pai_3];
var parameters=$h.CommonParameters.parse(args,true,true);
var loadCustomProperties=new $h._loadDictionaryRequest(this.$$d__createCustomProperties$i$0,"customProperties",parameters._callback$p$0,parameters._asyncContext$p$0);
loadCustomProperties._sendRequest$i$0(3,"LoadCustomProperties",{})
};
$h.MeetingRequest=function(data)
{
this.$$d__getRequiredAttendees$p$3=Function.createDelegate(this,this._getRequiredAttendees$p$3);
this.$$d__getOptionalAttendees$p$3=Function.createDelegate(this,this._getOptionalAttendees$p$3);
this.$$d__getLocation$p$3=Function.createDelegate(this,this._getLocation$p$3);
this.$$d__getEnd$p$3=Function.createDelegate(this,this._getEnd$p$3);
this.$$d__getStart$p$3=Function.createDelegate(this,this._getStart$p$3);
$h.MeetingRequest.initializeBase(this,[data]);
$h.InitialData._defineReadOnlyProperty$i(this,"start",this.$$d__getStart$p$3);
$h.InitialData._defineReadOnlyProperty$i(this,"end",this.$$d__getEnd$p$3);
$h.InitialData._defineReadOnlyProperty$i(this,"location",this.$$d__getLocation$p$3);
$h.InitialData._defineReadOnlyProperty$i(this,"optionalAttendees",this.$$d__getOptionalAttendees$p$3);
$h.InitialData._defineReadOnlyProperty$i(this,"requiredAttendees",this.$$d__getRequiredAttendees$p$3)
};
$h.MeetingRequest.prototype={
_getStart$p$3: function()
{
return this._data$p$0.get__start$i$0()
},
_getEnd$p$3: function()
{
return this._data$p$0.get__end$i$0()
},
_getLocation$p$3: function()
{
return this._data$p$0.get__location$i$0()
},
_getOptionalAttendees$p$3: function()
{
return this._data$p$0.get__cc$i$0()
},
_getRequiredAttendees$p$3: function()
{
return this._data$p$0.get__to$i$0()
}
};
$h.MeetingSuggestion=function(data, dateTimeSent)
{
this.$$d__getEndTime$p$0=Function.createDelegate(this,this._getEndTime$p$0);
this.$$d__getStartTime$p$0=Function.createDelegate(this,this._getStartTime$p$0);
this.$$d__getSubject$p$0=Function.createDelegate(this,this._getSubject$p$0);
this.$$d__getLocation$p$0=Function.createDelegate(this,this._getLocation$p$0);
this.$$d__getAttendees$p$0=Function.createDelegate(this,this._getAttendees$p$0);
this.$$d__getMeetingString$p$0=Function.createDelegate(this,this._getMeetingString$p$0);
this._data$p$0=data;
this._dateTimeSent$p$0=dateTimeSent;
$h.InitialData._defineReadOnlyProperty$i(this,"meetingString",this.$$d__getMeetingString$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"attendees",this.$$d__getAttendees$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"location",this.$$d__getLocation$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"subject",this.$$d__getSubject$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"start",this.$$d__getStartTime$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"end",this.$$d__getEndTime$p$0)
};
$h.MeetingSuggestion.prototype={
_dateTimeSent$p$0: null,
_data$p$0: null,
_attendees$p$0: null,
_getMeetingString$p$0: function()
{
return this._data$p$0["MeetingString"]
},
_getLocation$p$0: function()
{
return this._data$p$0["Location"]
},
_getSubject$p$0: function()
{
return this._data$p$0["Subject"]
},
_getStartTime$p$0: function()
{
var time=this._createDateTimeFromParameter$p$0("StartTime");
var resolvedTime=$h.MeetingSuggestionTimeDecoder.resolve(time,this._dateTimeSent$p$0);
if(resolvedTime["getTime"]() !==time["getTime"]())
return window["OSF"]["DDA"]["OutlookAppOm"]._instance$p["convertToUtcClientTime"](window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._dateToDictionary$i$0(resolvedTime));
return time
},
_getEndTime$p$0: function()
{
var time=this._createDateTimeFromParameter$p$0("EndTime");
var resolvedTime=$h.MeetingSuggestionTimeDecoder.resolve(time,this._dateTimeSent$p$0);
if(resolvedTime["getTime"]() !==time["getTime"]())
return window["OSF"]["DDA"]["OutlookAppOm"]._instance$p["convertToUtcClientTime"](window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._dateToDictionary$i$0(resolvedTime));
return time
},
_createDateTimeFromParameter$p$0: function(keyName)
{
var dateTimeString=this._data$p$0[keyName];
if(!dateTimeString)
return null;
return new Date(dateTimeString)
},
_getAttendees$p$0: function()
{
if(!this._attendees$p$0)
{
var $$t_1=this;
this._attendees$p$0=$h.Entities._getExtractedObjects$i($h.EmailAddressDetails,this._data$p$0,"Attendees",function(data)
{
return $h.EmailAddressDetails._createFromEmailUserDictionary$i(data)
})
}
return this._attendees$p$0
}
};
$h.MeetingSuggestionTimeDecoder=function(){};
$h.MeetingSuggestionTimeDecoder.resolve=function(inTime, sentTime)
{
if(!sentTime)
return inTime;
try
{
var tod;
var outDate;
var extractedDate;
var sentDate=new Date(sentTime["getFullYear"](),sentTime["getMonth"](),sentTime["getDate"](),0,0,0,0);
var $$t_7,
$$t_8,
$$t_9;
if(!($$t_9=$h.MeetingSuggestionTimeDecoder._decode$p(inTime,$$t_7={val: extractedDate},$$t_8={val: tod}),extractedDate=$$t_7["val"],tod=$$t_8["val"],$$t_9))
return inTime;
else
{
if($h._preciseDate.isInstanceOfType(extractedDate))
outDate=$h.MeetingSuggestionTimeDecoder._resolvePreciseDate$p(sentDate,extractedDate);
else if($h._relativeDate.isInstanceOfType(extractedDate))
outDate=$h.MeetingSuggestionTimeDecoder._resolveRelativeDate$p(sentDate,extractedDate);
else
outDate=sentDate;
if(window["isNaN"](outDate["getTime"]()))
return sentTime;
outDate["setMilliseconds"](outDate["getMilliseconds"]()+tod);
return outDate
}
}
catch($$e_6)
{
return sentTime
}
};
$h.MeetingSuggestionTimeDecoder._isNullOrUndefined$i=function(value)
{
return null===value || value===undefined
};
$h.MeetingSuggestionTimeDecoder._resolvePreciseDate$p=function(sentDate, precise)
{
var year=precise._year$i$1;
var month=!precise._month$i$1 ? sentDate["getMonth"]() : precise._month$i$1 - 1;
var day=precise._day$i$1;
if(!day)
return sentDate;
var candidate;
if($h.MeetingSuggestionTimeDecoder._isNullOrUndefined$i(year))
{
candidate=new Date(sentDate["getFullYear"](),month,day);
if(candidate["getTime"]() < sentDate["getTime"]())
candidate=new Date(sentDate["getFullYear"]()+1,month,day)
}
else
candidate=new Date(year < 50 ? 2e3+year : 1900+year,month,day);
if(candidate["getMonth"]() !==month)
return sentDate;
return candidate
};
$h.MeetingSuggestionTimeDecoder._resolveRelativeDate$p=function(sentDate, relative)
{
var date;
switch(relative._unit$i$1)
{
case 0:
date=new Date(sentDate["getFullYear"](),sentDate["getMonth"](),sentDate["getDate"]());
date["setDate"](date["getDate"]()+relative._offset$i$1);
return date;
case 5:
return $h.MeetingSuggestionTimeDecoder._findBestDateForWeekDate$p(sentDate,relative._offset$i$1,relative._tag$i$1);
case 2:
var days=1;
switch(relative._modifier$i$1)
{
case 1:
break;
case 2:
days=16;
break;
default:
if(!relative._offset$i$1)
days=sentDate["getDate"]();
break
}
date=new Date(sentDate["getFullYear"](),sentDate["getMonth"](),days);
date["setMonth"](date["getMonth"]()+relative._offset$i$1);
if(date["getTime"]() < sentDate["getTime"]())
date["setDate"](date["getDate"]()+sentDate["getDate"]() - 1);
return date;
case 1:
date=new Date(sentDate["getFullYear"](),sentDate["getMonth"](),sentDate["getDate"]());
date["setDate"](sentDate["getDate"]()+7 * relative._offset$i$1);
if(relative._modifier$i$1===1 || !relative._modifier$i$1)
{
date["setDate"](date["getDate"]()+1 - date["getDay"]());
if(date["getTime"]() < sentDate["getTime"]())
return sentDate;
return date
}
else if(relative._modifier$i$1===2)
{
date["setDate"](date["getDate"]()+5 - date["getDay"]());
return date
}
break;
case 4:
return $h.MeetingSuggestionTimeDecoder._findBestDateForWeekOfMonthDate$p(sentDate,relative);
case 3:
if(relative._offset$i$1 > 0)
return new Date(sentDate["getFullYear"]()+relative._offset$i$1,0,1);
break;
default:
break
}
return sentDate
};
$h.MeetingSuggestionTimeDecoder._findBestDateForWeekDate$p=function(sentDate, offset, tag)
{
if(offset > -5 && offset < 5)
{
var dayOfWeek;
var days;
dayOfWeek=(tag+6) % 7+1;
days=7 * offset+(dayOfWeek - sentDate["getDay"]());
sentDate["setDate"](sentDate["getDate"]()+days);
return sentDate
}
else
{
var days=(tag - sentDate["getDay"]()) % 7;
if(days < 0)
days+=7;
sentDate["setDate"](sentDate["getDate"]()+days);
return sentDate
}
};
$h.MeetingSuggestionTimeDecoder._findBestDateForWeekOfMonthDate$p=function(sentDate, relative)
{
var date;
var firstDay;
var newDate;
date=sentDate;
if(relative._tag$i$1 <=0 || relative._tag$i$1 > 12 || relative._offset$i$1 <=0 || relative._offset$i$1 > 5)
return sentDate;
var monthOffset=(12+relative._tag$i$1 - date["getMonth"]() - 1) % 12;
firstDay=new Date(date["getFullYear"](),date["getMonth"]()+monthOffset,1);
if(relative._modifier$i$1===1)
if(relative._offset$i$1===1 && firstDay["getDay"]() !==6 && firstDay["getDay"]())
return firstDay;
else
{
newDate=new Date(firstDay["getFullYear"](),firstDay["getMonth"](),firstDay["getDate"]());
newDate["setDate"](newDate["getDate"]()+(7+(1 - firstDay["getDay"]())) % 7);
if(firstDay["getDay"]() !==6 && firstDay["getDay"]() && firstDay["getDay"]() !==1)
newDate["setDate"](newDate["getDate"]() - 7);
newDate["setDate"](newDate["getDate"]()+7 * (relative._offset$i$1 - 1));
if(newDate["getMonth"]()+1 !==relative._tag$i$1)
return sentDate;
return newDate
}
else
{
newDate=new Date(firstDay["getFullYear"](),firstDay["getMonth"](),$h.MeetingSuggestionTimeDecoder._daysInMonth$p(firstDay["getMonth"](),firstDay["getFullYear"]()));
var offset=1 - newDate["getDay"]();
if(offset > 0)
offset=offset - 7;
newDate["setDate"](newDate["getDate"]()+offset);
newDate["setDate"](newDate["getDate"]()+7 * (1 - relative._offset$i$1));
if(newDate["getMonth"]()+1 !==relative._tag$i$1)
if(firstDay["getDay"]() !==6 && firstDay["getDay"]())
return firstDay;
else
return sentDate;
else
return newDate
}
};
$h.MeetingSuggestionTimeDecoder._decode$p=function(inDate, date, time)
{
var DateValueMask=32767;
date.val=null;
time.val=0;
if(!inDate)
return false;
time.val=$h.MeetingSuggestionTimeDecoder._getTimeOfDayInMillisecondsUTC$p(inDate);
var inDateAtMidnight=inDate["getTime"]() - time.val;
var value=(inDateAtMidnight - $h.MeetingSuggestionTimeDecoder._baseDate$p["getTime"]()) / 864e5;
if(value < 0)
return false;
else if(value >=262144)
return false;
else
{
var type=value >> 15;
value=value & DateValueMask;
switch(type)
{
case 0:
return $h.MeetingSuggestionTimeDecoder._decodePreciseDate$p(value,date);
case 1:
return $h.MeetingSuggestionTimeDecoder._decodeRelativeDate$p(value,date);
default:
return false
}
}
};
$h.MeetingSuggestionTimeDecoder._decodePreciseDate$p=function(value, date)
{
var c_SubTypeMask=7;
var c_MonthMask=15;
var c_DayMask=31;
var c_YearMask=127;
var year=null;
var month=0;
var day=0;
date.val=null;
var subType=value >> 12 & c_SubTypeMask;
if((subType & 4)===4)
{
year=value >> 5 & c_YearMask;
if((subType & 2)===2)
{
if((subType & 1)===1)
return false;
month=value >> 1 & c_MonthMask
}
}
else
{
if((subType & 2)===2)
month=value >> 8 & c_MonthMask;
if((subType & 1)===1)
day=value >> 3 & c_DayMask
}
date.val=new $h._preciseDate(day,month,year);
return true
};
$h.MeetingSuggestionTimeDecoder._decodeRelativeDate$p=function(value, date)
{
var TagMask=15;
var OffsetMask=63;
var UnitMask=7;
var ModifierMask=3;
var tag=value & TagMask;
value >>=4;
var offset=$h.MeetingSuggestionTimeDecoder._fromComplement$p(value & OffsetMask,6);
value >>=6;
var unit=value & UnitMask;
value >>=3;
var modifier=value & ModifierMask;
try
{
date.val=new $h._relativeDate(modifier,offset,unit,tag);
return true
}
catch($$e_A)
{
date.val=null;
return false
}
};
$h.MeetingSuggestionTimeDecoder._fromComplement$p=function(value, n)
{
var signed=1 << n - 1;
var mask=(1 << n) - 1;
if((value & signed)===signed)
return-((value ^ mask)+1);
else
return value
};
$h.MeetingSuggestionTimeDecoder._daysInMonth$p=function(month, year)
{
return 32 - new Date(year,month,32)["getDate"]()
};
$h.MeetingSuggestionTimeDecoder._getTimeOfDayInMillisecondsUTC$p=function(inputTime)
{
var timeOfDay=0;
timeOfDay+=inputTime["getUTCHours"]() * 3600;
timeOfDay+=inputTime["getUTCMinutes"]() * 60;
timeOfDay+=inputTime["getUTCSeconds"]();
timeOfDay *=1e3;
timeOfDay+=inputTime["getUTCMilliseconds"]();
return timeOfDay
};
$h._extractedDate=function(){};
$h._preciseDate=function(day, month, year)
{
$h._preciseDate.initializeBase(this);
if(day < 0 || day > 31)
throw Error.argumentOutOfRange("day");
if(month < 0 || month > 12)
throw Error.argumentOutOfRange("month");
this._day$i$1=day;
this._month$i$1=month;
if(!$h.MeetingSuggestionTimeDecoder._isNullOrUndefined$i(year))
{
if(!month && day)
throw Error.argument("Invalid arguments");
if(year < 0 || year > 2099)
throw Error.argumentOutOfRange("year");
this._year$i$1=year % 100
}
else if(!this._month$i$1 && !this._day$i$1)
throw Error.argument("Invalid datetime");
};
$h._preciseDate.prototype={
_day$i$1: 0,
_month$i$1: 0,
_year$i$1: null
};
$h._relativeDate=function(modifier, offset, unit, tag)
{
$h._relativeDate.initializeBase(this);
if(offset < -32 || offset > 31)
throw Error.argumentOutOfRange("offset");
if(tag < 0 || tag > 15)
throw Error.argumentOutOfRange("tag");
if(!unit && offset < 0)
throw Error.argument("unit & offset do not form a valid date");
this._modifier$i$1=modifier;
this._offset$i$1=offset;
this._unit$i$1=unit;
this._tag$i$1=tag
};
$h._relativeDate.prototype={
_modifier$i$1: 0,
_offset$i$1: 0,
_unit$i$1: 0,
_tag$i$1: 0
};
$h.Message=function(dataDictionary)
{
this.$$d__getConversationId$p$2=Function.createDelegate(this,this._getConversationId$p$2);
this.$$d__getInternetMessageId$p$2=Function.createDelegate(this,this._getInternetMessageId$p$2);
this.$$d__getCc$p$2=Function.createDelegate(this,this._getCc$p$2);
this.$$d__getTo$p$2=Function.createDelegate(this,this._getTo$p$2);
this.$$d__getFrom$p$2=Function.createDelegate(this,this._getFrom$p$2);
this.$$d__getSender$p$2=Function.createDelegate(this,this._getSender$p$2);
this.$$d__getNormalizedSubject$p$2=Function.createDelegate(this,this._getNormalizedSubject$p$2);
this.$$d__getSubject$p$2=Function.createDelegate(this,this._getSubject$p$2);
$h.Message.initializeBase(this,[dataDictionary]);
$h.InitialData._defineReadOnlyProperty$i(this,"subject",this.$$d__getSubject$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"normalizedSubject",this.$$d__getNormalizedSubject$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"sender",this.$$d__getSender$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"from",this.$$d__getFrom$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"to",this.$$d__getTo$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"cc",this.$$d__getCc$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"internetMessageId",this.$$d__getInternetMessageId$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"conversationId",this.$$d__getConversationId$p$2)
};
$h.Message.prototype={
getItemType: function()
{
return window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ItemType"]["Message"]
},
_getSubject$p$2: function()
{
return this._data$p$0.get__subject$i$0()
},
_getNormalizedSubject$p$2: function()
{
return this._data$p$0.get__normalizedSubject$i$0()
},
_getSender$p$2: function()
{
return this._data$p$0.get__sender$i$0()
},
_getFrom$p$2: function()
{
return this._data$p$0.get__from$i$0()
},
_getTo$p$2: function()
{
return this._data$p$0.get__to$i$0()
},
_getCc$p$2: function()
{
return this._data$p$0.get__cc$i$0()
},
_getInternetMessageId$p$2: function()
{
return this._data$p$0.get__internetMessageId$i$0()
},
_getConversationId$p$2: function()
{
return this._data$p$0.get__conversationId$i$0()
}
};
$h.Message.prototype.getEntities=function()
{
return this._data$p$0._getEntities$i$0()
};
$h.Message.prototype.getEntitiesByType=function(entityType)
{
return this._data$p$0._getEntitiesByType$i$0(entityType)
};
$h.Message.prototype.getFilteredEntitiesByName=function(name)
{
return this._data$p$0._getFilteredEntitiesByName$i$0(name)
};
$h.Message.prototype.getRegExMatches=function()
{
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"getRegExMatches");
return this._data$p$0._getRegExMatches$i$0()
};
$h.Message.prototype.getRegExMatchesByName=function(name)
{
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"getRegExMatchesByName");
return this._data$p$0._getRegExMatchesByName$i$0(name)
};
$h.Message.prototype.displayReplyForm=function(obj)
{
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._displayReplyForm$i$0(obj)
};
$h.Message.prototype.displayReplyAllForm=function(obj)
{
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._displayReplyAllForm$i$0(obj)
};
$h.MessageCompose=function(data)
{
this.$$d__getConversationId$p$2=Function.createDelegate(this,this._getConversationId$p$2);
this.$$d__getBcc$p$2=Function.createDelegate(this,this._getBcc$p$2);
this.$$d__getCc$p$2=Function.createDelegate(this,this._getCc$p$2);
this.$$d__getTo$p$2=Function.createDelegate(this,this._getTo$p$2);
$h.MessageCompose.initializeBase(this,[data]);
$h.InitialData._defineReadOnlyProperty$i(this,"to",this.$$d__getTo$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"cc",this.$$d__getCc$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"bcc",this.$$d__getBcc$p$2);
$h.InitialData._defineReadOnlyProperty$i(this,"conversationId",this.$$d__getConversationId$p$2)
};
$h.MessageCompose.prototype={
_to$p$2: null,
_cc$p$2: null,
_bcc$p$2: null,
getItemType: function()
{
return window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ItemType"]["Message"]
},
_getTo$p$2: function()
{
this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
if(!this._to$p$2)
this._to$p$2=new $h.ComposeRecipient(0,"to");
return this._to$p$2
},
_getCc$p$2: function()
{
this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
if(!this._cc$p$2)
this._cc$p$2=new $h.ComposeRecipient(1,"cc");
return this._cc$p$2
},
_getBcc$p$2: function()
{
this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
if(!this._bcc$p$2)
this._bcc$p$2=new $h.ComposeRecipient(2,"bcc");
return this._bcc$p$2
},
_getConversationId$p$2: function()
{
return this._data$p$0.get__conversationId$i$0()
}
};
$h.NotificationMessages=function(){};
$h.NotificationMessages._mapToHostItemNotificationMessageType$p=function(dataToHost)
{
var notificationType;
var hostItemNotificationMessageType;
notificationType=dataToHost["type"];
if(notificationType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ItemNotificationMessageType"]["ProgressIndicator"])
hostItemNotificationMessageType=1;
else if(notificationType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ItemNotificationMessageType"]["InformationalMessage"])
hostItemNotificationMessageType=0;
else if(notificationType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ItemNotificationMessageType"]["ErrorMessage"])
hostItemNotificationMessageType=2;
else
throw Error.argument("type");
dataToHost["type"]=hostItemNotificationMessageType
};
$h.NotificationMessages._validateKey$p=function(key)
{
if(!$h.ScriptHelpers.isNonEmptyString(key))
throw Error.argument("key");
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(key["length"],0,32,"key")
};
$h.NotificationMessages._validateDictionary$p=function(dictionary)
{
if(!$h.ScriptHelpers.isNonEmptyString(dictionary["type"]))
throw Error.argument("type");
if(dictionary["type"]===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ItemNotificationMessageType"]["InformationalMessage"])
{
if(!$h.ScriptHelpers.isNonEmptyString(dictionary["icon"]))
throw Error.argument("icon");
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(dictionary["icon"]["length"],0,32,"icon");
if($h.ScriptHelpers.isUndefined(dictionary["persistent"]))
throw Error.argument("persistent");
if(!Boolean.isInstanceOfType(dictionary["persistent"]))
throw Error.argumentType("persistent",Object["getType"](dictionary["persistent"]),Boolean);
}
else
{
if(!$h.ScriptHelpers.isUndefined(dictionary["icon"]))
throw Error.argument("icon");
if(!$h.ScriptHelpers.isUndefined(dictionary["persistent"]))
throw Error.argument("persistent");
}
if(!$h.ScriptHelpers.isNonEmptyString(dictionary["message"]))
throw Error.argument("message");
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(dictionary["message"]["length"],0,150,"message")
};
$h.NotificationMessages.prototype.addAsync=function(key, dictionary)
{
var args=[];
for(var $$pai_5=2; $$pai_5 < arguments["length"];++$$pai_5)
args[$$pai_5 - 2]=arguments[$$pai_5];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(0,"NotificationMessages.addAsync");
var commonParameters=$h.CommonParameters.parse(args,false);
$h.NotificationMessages._validateKey$p(key);
$h.NotificationMessages._validateDictionary$p(dictionary);
var dataToHost={};
dataToHost=$h.ScriptHelpers.deepClone(dictionary);
dataToHost["key"]=key;
$h.NotificationMessages._mapToHostItemNotificationMessageType$p(dataToHost);
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(33,dataToHost,null,commonParameters._asyncContext$p$0,commonParameters._callback$p$0)
};
$h.NotificationMessages.prototype.getAllAsync=function()
{
var args=[];
for(var $$pai_2=0; $$pai_2 < arguments["length"];++$$pai_2)
args[$$pai_2]=arguments[$$pai_2];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(0,"NotificationMessages.getAllAsync");
var commonParameters=$h.CommonParameters.parse(args,true);
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(34,null,null,commonParameters._asyncContext$p$0,commonParameters._callback$p$0)
};
$h.NotificationMessages.prototype.replaceAsync=function(key, dictionary)
{
var args=[];
for(var $$pai_5=2; $$pai_5 < arguments["length"];++$$pai_5)
args[$$pai_5 - 2]=arguments[$$pai_5];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(0,"NotificationMessages.replaceAsync");
var commonParameters=$h.CommonParameters.parse(args,false);
$h.NotificationMessages._validateKey$p(key);
$h.NotificationMessages._validateDictionary$p(dictionary);
var dataToHost={};
dataToHost=$h.ScriptHelpers.deepClone(dictionary);
dataToHost["key"]=key;
$h.NotificationMessages._mapToHostItemNotificationMessageType$p(dataToHost);
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(35,dataToHost,null,commonParameters._asyncContext$p$0,commonParameters._callback$p$0)
};
$h.NotificationMessages.prototype.removeAsync=function(key)
{
var args=[];
for(var $$pai_4=1; $$pai_4 < arguments["length"];++$$pai_4)
args[$$pai_4 - 1]=arguments[$$pai_4];
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(0,"NotificationMessages.removeAsync");
var commonParameters=$h.CommonParameters.parse(args,false);
$h.NotificationMessages._validateKey$p(key);
var dataToHost={key: key};
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(36,dataToHost,null,commonParameters._asyncContext$p$0,commonParameters._callback$p$0)
};
$h.OutlookErrorManager=function(){};
$h.OutlookErrorManager.getErrorArgs=function(errorCode)
{
if(!$h.OutlookErrorManager._isInitialized$p)
$h.OutlookErrorManager._initialize$p();
return OSF.DDA.ErrorCodeManager["getErrorArgs"](errorCode)
};
$h.OutlookErrorManager._initialize$p=function()
{
$h.OutlookErrorManager._addErrorMessage$p(9e3,"AttachmentSizeExceeded",window["_u"]["ExtensibilityStrings"]["l_AttachmentExceededSize_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9001,"NumberOfAttachmentsExceeded",window["_u"]["ExtensibilityStrings"]["l_ExceededMaxNumberOfAttachments_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9002,"InternalFormatError",window["_u"]["ExtensibilityStrings"]["l_InternalFormatError_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9003,"InvalidAttachmentId",window["_u"]["ExtensibilityStrings"]["l_InvalidAttachmentId_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9004,"InvalidAttachmentPath",window["_u"]["ExtensibilityStrings"]["l_InvalidAttachmentPath_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9005,"CannotAddAttachmentBeforeUpgrade",window["_u"]["ExtensibilityStrings"]["l_CannotAddAttachmentBeforeUpgrade_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9006,"AttachmentDeletedBeforeUploadCompletes",window["_u"]["ExtensibilityStrings"]["l_AttachmentDeletedBeforeUploadCompletes_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9007,"AttachmentUploadGeneralFailure",window["_u"]["ExtensibilityStrings"]["l_AttachmentUploadGeneralFailure_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9008,"AttachmentToDeleteDoesNotExist",window["_u"]["ExtensibilityStrings"]["l_DeleteAttachmentDoesNotExist_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9009,"AttachmentDeleteGeneralFailure",window["_u"]["ExtensibilityStrings"]["l_AttachmentDeleteGeneralFailure_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9010,"InvalidEndTime",window["_u"]["ExtensibilityStrings"]["l_InvalidEndTime_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9011,"HtmlSanitizationFailure",window["_u"]["ExtensibilityStrings"]["l_HtmlSanitizationFailure_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9012,"NumberOfRecipientsExceeded",String.format(window["_u"]["ExtensibilityStrings"]["l_NumberOfRecipientsExceeded_Text"],500));
$h.OutlookErrorManager._addErrorMessage$p(9013,"NoValidRecipientsProvided",window["_u"]["ExtensibilityStrings"]["l_NoValidRecipientsProvided_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9014,"CursorPositionChanged",window["_u"]["ExtensibilityStrings"]["l_CursorPositionChanged_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9016,"InvalidSelection",window["_u"]["ExtensibilityStrings"]["l_InvalidSelection_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9017,"AccessRestricted","");
$h.OutlookErrorManager._addErrorMessage$p(9018,"GenericTokenError","");
$h.OutlookErrorManager._addErrorMessage$p(9019,"GenericSettingsError","");
$h.OutlookErrorManager._addErrorMessage$p(9020,"GenericResponseError","");
$h.OutlookErrorManager._addErrorMessage$p(9021,"SaveError",window["_u"]["ExtensibilityStrings"]["l_SaveError_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9022,"MessageInDifferentStoreError",window["_u"]["ExtensibilityStrings"]["l_MessageInDifferentStoreError_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9023,"DuplicateNotificationKey",window["_u"]["ExtensibilityStrings"]["l_DuplicateNotificationKey_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9024,"NotificationKeyNotFound",window["_u"]["ExtensibilityStrings"]["l_NotificationKeyNotFound_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9025,"NumberOfNotificationsExceeded",window["_u"]["ExtensibilityStrings"]["l_NumberOfNotificationsExceeded_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9026,"PersistedNotificationArrayReadError",window["_u"]["ExtensibilityStrings"]["l_PersistedNotificationArrayReadError_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9027,"PersistedNotificationArraySaveError",window["_u"]["ExtensibilityStrings"]["l_PersistedNotificationArraySaveError_Text"]);
$h.OutlookErrorManager._addErrorMessage$p(9028,"CannotPersistPropertyInUnsavedDraftError",window["_u"]["ExtensibilityStrings"]["l_CannotPersistPropertyInUnsavedDraftError_Text"]);
$h.OutlookErrorManager._isInitialized$p=true
};
$h.OutlookErrorManager._addErrorMessage$p=function(errorCode, errorName, errorMessage)
{
OSF.DDA.ErrorCodeManager["addErrorMessage"](errorCode,{
name: errorName,
message: errorMessage
})
};
$h.OutlookErrorManager.OutlookErrorCodes=function(){};
$h.OutlookErrorManager.OsfDdaErrorCodes=function(){};
$h.PhoneNumber=function(data)
{
this.$$d__getPhoneType$p$0=Function.createDelegate(this,this._getPhoneType$p$0);
this.$$d__getOriginalPhoneString$p$0=Function.createDelegate(this,this._getOriginalPhoneString$p$0);
this.$$d__getPhoneString$p$0=Function.createDelegate(this,this._getPhoneString$p$0);
this._data$p$0=data;
$h.InitialData._defineReadOnlyProperty$i(this,"phoneString",this.$$d__getPhoneString$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"originalPhoneString",this.$$d__getOriginalPhoneString$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"type",this.$$d__getPhoneType$p$0)
};
$h.PhoneNumber.prototype={
_data$p$0: null,
_getPhoneString$p$0: function()
{
return this._data$p$0["PhoneString"]
},
_getOriginalPhoneString$p$0: function()
{
return this._data$p$0["OriginalPhoneString"]
},
_getPhoneType$p$0: function()
{
return this._data$p$0["Type"]
}
};
$h.TaskSuggestion=function(data)
{
this.$$d__getAssignees$p$0=Function.createDelegate(this,this._getAssignees$p$0);
this.$$d__getTaskString$p$0=Function.createDelegate(this,this._getTaskString$p$0);
this._data$p$0=data;
$h.InitialData._defineReadOnlyProperty$i(this,"taskString",this.$$d__getTaskString$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"assignees",this.$$d__getAssignees$p$0)
};
$h.TaskSuggestion.prototype={
_data$p$0: null,
_assignees$p$0: null,
_getTaskString$p$0: function()
{
return this._data$p$0["TaskString"]
},
_getAssignees$p$0: function()
{
if(!this._assignees$p$0)
{
var $$t_1=this;
this._assignees$p$0=$h.Entities._getExtractedObjects$i($h.EmailAddressDetails,this._data$p$0,"Assignees",function(data)
{
return $h.EmailAddressDetails._createFromEmailUserDictionary$i(data)
})
}
return this._assignees$p$0
}
};
$h.UserProfile=function(data)
{
this.$$d__getUserProfileType$p$0=Function.createDelegate(this,this._getUserProfileType$p$0);
this.$$d__getTimeZone$p$0=Function.createDelegate(this,this._getTimeZone$p$0);
this.$$d__getEmailAddress$p$0=Function.createDelegate(this,this._getEmailAddress$p$0);
this.$$d__getDisplayName$p$0=Function.createDelegate(this,this._getDisplayName$p$0);
this._data$p$0=data;
$h.InitialData._defineReadOnlyProperty$i(this,"displayName",this.$$d__getDisplayName$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"emailAddress",this.$$d__getEmailAddress$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"timeZone",this.$$d__getTimeZone$p$0);
$h.InitialData._defineReadOnlyProperty$i(this,"type",this.$$d__getUserProfileType$p$0)
};
$h.UserProfile.prototype={
_data$p$0: null,
_getUserProfileType$p$0: function()
{
return this._data$p$0.get__userProfileType$i$0()
},
_getDisplayName$p$0: function()
{
return this._data$p$0.get__userDisplayName$i$0()
},
_getEmailAddress$p$0: function()
{
return this._data$p$0.get__userEmailAddress$i$0()
},
_getTimeZone$p$0: function()
{
return this._data$p$0.get__userTimeZone$i$0()
}
};
$h.OutlookDispid=function(){};
$h.OutlookDispid.prototype={
owaOnlyMethod: 0,
getInitialData: 1,
getUserIdentityToken: 2,
loadCustomProperties: 3,
saveCustomProperties: 4,
ewsRequest: 5,
displayNewAppointmentForm: 7,
displayMessageForm: 8,
displayAppointmentForm: 9,
displayReplyForm: 10,
displayReplyAllForm: 11,
getCallbackToken: 12,
bodySetSelectedDataAsync: 13,
getBodyTypeAsync: 14,
getRecipientsAsync: 15,
addFileAttachmentAsync: 16,
setSubjectAsync: 17,
getSubjectAsync: 18,
addItemAttachmentAsync: 19,
removeAttachmentAsync: 20,
setRecipientsAsync: 21,
addRecipientsAsync: 22,
bodyPrependAsync: 23,
getTimeAsync: 24,
setTimeAsync: 25,
getLocationAsync: 26,
setLocationAsync: 27,
getSelectedDataAsync: 28,
setSelectedDataAsync: 29,
displayReplyFormWithAttachments: 30,
displayReplyAllFormWithAttachments: 31,
saveAsync: 32,
addNotficationMessageAsync: 33,
getAllNotficationMessagesAsync: 34,
replaceNotficationMessageAsync: 35,
removeNotficationMessageAsync: 36,
getBodyAsync: 37,
setBodyAsync: 38,
appCommands1: 39,
registerConsentAsync: 40,
close: 41,
closeApp: 42,
displayContactCardAsync: 43,
displayNewMessageForm: 44,
appCommands2: 94,
trackCtq: 400,
recordTrace: 401,
recordDataPoint: 402,
windowOpenOverrideHandler: 403,
saveSettingsRequest: 404
};
$h.OutlookDispid.registerEnum("$h.OutlookDispid",false);
$h.RequestState=function(){};
$h.RequestState.prototype={
unsent: 0,
opened: 1,
headersReceived: 2,
loading: 3,
done: 4
};
$h.RequestState.registerEnum("$h.RequestState",false);
$h.CommonParameters=function(options, callback, asyncContext)
{
this._options$p$0=options;
this._callback$p$0=callback;
this._asyncContext$p$0=asyncContext
};
$h.CommonParameters.parse=function(args, isCallbackRequired, tryLegacy)
{
var legacyParameters;
var $$t_8,
$$t_9;
if(tryLegacy && ($$t_9=$h.CommonParameters._tryParseLegacy$p(args,$$t_8={val: legacyParameters}),legacyParameters=$$t_8["val"],$$t_9))
return legacyParameters;
var argsLength=args["length"];
var options=null;
var callback=null;
var asyncContext=null;
if(argsLength===1)
if(Function.isInstanceOfType(args[0]))
callback=args[0];
else if(Object.isInstanceOfType(args[0]))
options=args[0];
else
throw Error.argumentType();
else if(argsLength===2)
{
if(!Object.isInstanceOfType(args[0]))
throw Error.argument("options");
if(!Function.isInstanceOfType(args[1]))
throw Error.argument("callback");
options=args[0];
callback=args[1]
}
else if(argsLength)
throw Error.parameterCount(window["_u"]["ExtensibilityStrings"]["l_ParametersNotAsExpected_Text"]);
if(isCallbackRequired && !callback)
throw Error.argumentNull("callback");
if(options && !$h.ScriptHelpers.isNullOrUndefined(options["asyncContext"]))
asyncContext=options["asyncContext"];
return new $h.CommonParameters(options,callback,asyncContext)
};
$h.CommonParameters._tryParseLegacy$p=function(args, commonParameters)
{
commonParameters.val=null;
var argsLength=args["length"];
var callback=null;
var userContext=null;
if(!argsLength || argsLength > 2)
return false;
if(!Function.isInstanceOfType(args[0]))
return false;
callback=args[0];
if(argsLength > 1)
userContext=args[1];
commonParameters.val=new $h.CommonParameters(null,callback,userContext);
return true
};
$h.CommonParameters.prototype={
_options$p$0: null,
_callback$p$0: null,
_asyncContext$p$0: null,
get_options: function()
{
return this._options$p$0
},
get_callback: function()
{
return this._callback$p$0
},
get_asyncContext: function()
{
return this._asyncContext$p$0
}
};
$h.EwsRequest=function(userContext)
{
$h.EwsRequest.initializeBase(this,[userContext])
};
$h.EwsRequest.prototype={
readyState: 1,
status: 0,
statusText: null,
onreadystatechange: null,
responseText: null,
get__statusCode$i$1: function()
{
return this.status
},
set__statusCode$i$1: function(value)
{
this.status=value;
return value
},
get__statusDescription$i$1: function()
{
return this.statusText
},
set__statusDescription$i$1: function(value)
{
this.statusText=value;
return value
},
get__requestState$i$1: function()
{
return this.readyState
},
set__requestState$i$1: function(value)
{
this.readyState=value;
return value
},
get_hasOnReadyStateChangeCallback: function()
{
return!$h.ScriptHelpers.isNullOrUndefined(this.onreadystatechange)
},
get__response$i$1: function()
{
return this.responseText
},
set__response$i$1: function(value)
{
this.responseText=value;
return value
},
send: function(data)
{
this._checkSendConditions$i$1();
if($h.ScriptHelpers.isNullOrUndefined(data))
this._throwInvalidStateException$i$1();
this._sendRequest$i$0(5,"EwsRequest",{body: data})
},
_callOnReadyStateChangeCallback$i$1: function()
{
if(!$h.ScriptHelpers.isNullOrUndefined(this.onreadystatechange))
this.onreadystatechange()
},
_parseExtraResponseData$i$1: function(response){},
executeExtraFailedResponseSteps: function(){}
};
$h.InitialData=function(data)
{
this._data$p$0=data;
this._permissionLevel$p$0=this._calculatePermissionLevel$p$0()
};
$h.InitialData._defineReadOnlyProperty$i=function(o, methodName, getter)
{
var propertyDescriptor={
get: getter,
configurable: false
};
Object.defineProperty(o,methodName,propertyDescriptor)
};
$h.InitialData.prototype={
_toRecipients$p$0: null,
_ccRecipients$p$0: null,
_attachments$p$0: null,
_resources$p$0: null,
_entities$p$0: null,
_data$p$0: null,
_permissionLevel$p$0: 0,
get__isRestIdSupported$i$0: function()
{
return this._data$p$0["isRestIdSupported"]
},
get__itemId$i$0: function()
{
return this._data$p$0["id"]
},
get__itemClass$i$0: function()
{
return this._data$p$0["itemClass"]
},
get__dateTimeCreated$i$0: function()
{
return new Date(this._data$p$0["dateTimeCreated"])
},
get__dateTimeModified$i$0: function()
{
return new Date(this._data$p$0["dateTimeModified"])
},
get__dateTimeSent$i$0: function()
{
return new Date(this._data$p$0["dateTimeSent"])
},
get__subject$i$0: function()
{
this._throwOnRestrictedPermissionLevel$i$0();
return this._data$p$0["subject"]
},
get__normalizedSubject$i$0: function()
{
this._throwOnRestrictedPermissionLevel$i$0();
return this._data$p$0["normalizedSubject"]
},
get__internetMessageId$i$0: function()
{
return this._data$p$0["internetMessageId"]
},
get__conversationId$i$0: function()
{
return this._data$p$0["conversationId"]
},
get__sender$i$0: function()
{
this._throwOnRestrictedPermissionLevel$i$0();
var sender=this._data$p$0["sender"];
return $h.ScriptHelpers.isNullOrUndefined(sender) ? null : new $h.EmailAddressDetails(sender)
},
get__from$i$0: function()
{
this._throwOnRestrictedPermissionLevel$i$0();
var from=this._data$p$0["from"];
return $h.ScriptHelpers.isNullOrUndefined(from) ? null : new $h.EmailAddressDetails(from)
},
get__to$i$0: function()
{
this._throwOnRestrictedPermissionLevel$i$0();
if(null===this._toRecipients$p$0)
this._toRecipients$p$0=this._createEmailAddressDetails$p$0("to");
return this._toRecipients$p$0
},
get__cc$i$0: function()
{
this._throwOnRestrictedPermissionLevel$i$0();
if(null===this._ccRecipients$p$0)
this._ccRecipients$p$0=this._createEmailAddressDetails$p$0("cc");
return this._ccRecipients$p$0
},
get__attachments$i$0: function()
{
this._throwOnRestrictedPermissionLevel$i$0();
if(null===this._attachments$p$0)
this._attachments$p$0=this._createAttachmentDetails$p$0();
return this._attachments$p$0
},
get__ewsUrl$i$0: function()
{
return this._data$p$0["ewsUrl"]
},
get__marketplaceAssetId$i$0: function()
{
return this._data$p$0["marketplaceAssetId"]
},
get__extensionId$i$0: function()
{
return this._data$p$0["extensionId"]
},
get__marketplaceContentMarket$i$0: function()
{
return this._data$p$0["marketplaceContentMarket"]
},
get__consentMetadata$i$0: function()
{
return this._data$p$0["consentMetadata"]
},
get__isRead$i$0: function()
{
return this._data$p$0["isRead"]
},
get__endNodeUrl$i$0: function()
{
return this._data$p$0["endNodeUrl"]
},
get__entryPointUrl$i$0: function()
{
return this._data$p$0["entryPointUrl"]
},
get__start$i$0: function()
{
return new Date(this._data$p$0["start"])
},
get__end$i$0: function()
{
return new Date(this._data$p$0["end"])
},
get__location$i$0: function()
{
return this._data$p$0["location"]
},
get__userProfileType$i$0: function()
{
return this._data$p$0["userProfileType"]
},
get__resources$i$0: function()
{
this._throwOnRestrictedPermissionLevel$i$0();
if(null===this._resources$p$0)
this._resources$p$0=this._createEmailAddressDetails$p$0("resources");
return this._resources$p$0
},
get__organizer$i$0: function()
{
this._throwOnRestrictedPermissionLevel$i$0();
var organizer=this._data$p$0["organizer"];
return $h.ScriptHelpers.isNullOrUndefined(organizer) ? null : new $h.EmailAddressDetails(organizer)
},
get__userDisplayName$i$0: function()
{
return this._data$p$0["userDisplayName"]
},
get__userEmailAddress$i$0: function()
{
return this._data$p$0["userEmailAddress"]
},
get__userTimeZone$i$0: function()
{
return this._data$p$0["userTimeZone"]
},
get__timeZoneOffsets$i$0: function()
{
return this._data$p$0["timeZoneOffsets"]
},
get__hostVersion$i$0: function()
{
return this._data$p$0["hostVersion"]
},
get__owaView$i$0: function()
{
return this._data$p$0["owaView"]
},
get__overrideWindowOpen$i$0: function()
{
return this._data$p$0["overrideWindowOpen"]
},
_getEntities$i$0: function()
{
if(!this._entities$p$0)
this._entities$p$0=new $h.Entities(this._data$p$0["entities"],this._data$p$0["filteredEntities"],this.get__dateTimeSent$i$0(),this._permissionLevel$p$0);
return this._entities$p$0
},
_getEntitiesByType$i$0: function(entityType)
{
var entites=this._getEntities$i$0();
return entites._getByType$i$0(entityType)
},
_getFilteredEntitiesByName$i$0: function(name)
{
var entities=this._getEntities$i$0();
return entities._getFilteredEntitiesByName$i$0(name)
},
_getRegExMatches$i$0: function()
{
if(!this._data$p$0["regExMatches"])
return null;
return this._data$p$0["regExMatches"]
},
_getRegExMatchesByName$i$0: function(regexName)
{
var regexMatches=this._getRegExMatches$i$0();
if(!regexMatches || !regexMatches[regexName])
return null;
return regexMatches[regexName]
},
_throwOnRestrictedPermissionLevel$i$0: function()
{
window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._permissionLevel$p$0)
},
_createEmailAddressDetails$p$0: function(key)
{
var to=this._data$p$0[key];
if($h.ScriptHelpers.isNullOrUndefined(to))
return[];
var recipients=[];
for(var i=0; i < to["length"]; i++)
if(!$h.ScriptHelpers.isNullOrUndefined(to[i]))
recipients[i]=new $h.EmailAddressDetails(to[i]);
return recipients
},
_createAttachmentDetails$p$0: function()
{
var attachments=this._data$p$0["attachments"];
if($h.ScriptHelpers.isNullOrUndefined(attachments))
return[];
var attachmentDetails=[];
for(var i=0; i < attachments["length"]; i++)
if(!$h.ScriptHelpers.isNullOrUndefined(attachments[i]))
attachmentDetails[i]=new $h.AttachmentDetails(attachments[i]);
return attachmentDetails
},
_calculatePermissionLevel$p$0: function()
{
var HostReadItem=1;
var HostReadWriteMailbox=2;
var HostReadWriteItem=3;
var permissionLevelFromHost=this._data$p$0["permissionLevel"];
if($h.ScriptHelpers.isUndefined(this._permissionLevel$p$0))
return 0;
switch(permissionLevelFromHost)
{
case HostReadItem:
return 1;
case HostReadWriteItem:
return 2;
case HostReadWriteMailbox:
return 3;
default:
return 0
}
}
};
$h._loadDictionaryRequest=function(createResultObject, dictionaryName, callback, userContext)
{
$h._loadDictionaryRequest.initializeBase(this,[userContext]);
this._createResultObject$p$1=createResultObject;
this._dictionaryName$p$1=dictionaryName;
this._callback$p$1=callback
};
$h._loadDictionaryRequest.prototype={
_dictionaryName$p$1: null,
_createResultObject$p$1: null,
_callback$p$1: null,
handleResponse: function(response)
{
if(response["wasSuccessful"])
{
var value=response[this._dictionaryName$p$1];
var responseData=window["JSON"]["parse"](value);
this.createAsyncResult(this._createResultObject$p$1(responseData),0,0,null)
}
else
this.createAsyncResult(null,1,9020,response["errorMessage"]);
this._callback$p$1(this._asyncResult$p$0)
}
};
$h.ProxyRequestBase=function(userContext)
{
$h.ProxyRequestBase.initializeBase(this,[userContext])
};
$h.ProxyRequestBase.prototype={
handleResponse: function(response)
{
if(!response["wasProxySuccessful"])
{
this.set__statusCode$i$1(500);
this.set__statusDescription$i$1("Error");
var errorMessage=response["errorMessage"];
this.set__response$i$1(errorMessage);
this.createAsyncResult(null,1,9020,errorMessage)
}
else
{
this.set__statusCode$i$1(response["statusCode"]);
this.set__statusDescription$i$1(response["statusDescription"]);
this.set__response$i$1(response["body"]);
this.createAsyncResult(this.get__response$i$1(),0,0,null)
}
this._parseExtraResponseData$i$1(response);
this._cycleReadyStateFromHeadersReceivedToLoadingToDone$i$1()
},
_throwInvalidStateException$i$1: function()
{
throw Error.create("DOMException",{
code: 11,
message: "INVALID_STATE_ERR"
});
},
_cycleReadyStateFromHeadersReceivedToLoadingToDone$i$1: function()
{
var $$t_0=this;
this._changeReadyState$i$1(2,function()
{
$$t_0._changeReadyState$i$1(3,function()
{
$$t_0._changeReadyState$i$1(4,null)
})
})
},
_changeReadyState$i$1: function(state, nextStep)
{
this.set__requestState$i$1(state);
var $$t_2=this;
window.setTimeout(function()
{
try
{
$$t_2._callOnReadyStateChangeCallback$i$1()
}
finally
{
if(!$h.ScriptHelpers.isNullOrUndefined(nextStep))
nextStep()
}
},0)
},
_checkSendConditions$i$1: function()
{
if(this.get__requestState$i$1() !==1)
this._throwInvalidStateException$i$1();
if(this._isSent$p$0)
this._throwInvalidStateException$i$1()
}
};
$h.RequestBase=function(userContext)
{
this._userContext$p$0=userContext
};
$h.RequestBase.prototype={
_isSent$p$0: false,
_asyncResult$p$0: null,
_userContext$p$0: null,
get_asyncResult: function()
{
return this._asyncResult$p$0
},
_sendRequest$i$0: function(dispid, methodName, dataToSend)
{
this._isSent$p$0=true;
var $$t_5=this;
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.invokeHostMethod(dispid,dataToSend,function(resultCode, response)
{
if(resultCode)
$$t_5.createAsyncResult(null,1,9017,String.format(window["_u"]["ExtensibilityStrings"]["l_InternalProtocolError_Text"],resultCode));
else
$$t_5.handleResponse(response)
})
},
createAsyncResult: function(value, errorCode, detailedErrorCode, errorDescription)
{
this._asyncResult$p$0=window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.createAsyncResult(value,errorCode,detailedErrorCode,this._userContext$p$0,errorDescription)
}
};
$h.SaveDictionaryRequest=function(callback, userContext)
{
$h.SaveDictionaryRequest.initializeBase(this,[userContext]);
if(!$h.ScriptHelpers.isNullOrUndefined(callback))
this._callback$p$1=callback
};
$h.SaveDictionaryRequest.prototype={
_callback$p$1: null,
handleResponse: function(response)
{
if(response["wasSuccessful"])
this.createAsyncResult(null,0,0,null);
else
this.createAsyncResult(null,1,9020,response["errorMessage"]);
if(!$h.ScriptHelpers.isNullOrUndefined(this._callback$p$1))
this._callback$p$1(this._asyncResult$p$0)
}
};
$h.ScriptHelpers=function(){};
$h.ScriptHelpers.isNull=function(value)
{
return null===value
};
$h.ScriptHelpers.isNullOrUndefined=function(value)
{
return $h.ScriptHelpers.isNull(value) || $h.ScriptHelpers.isUndefined(value)
};
$h.ScriptHelpers.isUndefined=function(value)
{
return value===undefined
};
$h.ScriptHelpers.dictionaryContainsKey=function(obj, keyName)
{
return Object.isInstanceOfType(obj) ? keyName in obj : false
};
$h.ScriptHelpers.isNonEmptyString=function(value)
{
if(!value)
return false;
return String.isInstanceOfType(value)
};
$h.ScriptHelpers.deepClone=function(obj)
{
return window["JSON"]["parse"](window["JSON"]["stringify"](obj))
};
window["OSF"]["DDA"]["OutlookAppOm"].registerClass("OSF.DDA.OutlookAppOm");
window["OSF"]["DDA"]["Settings"].registerClass("OSF.DDA.Settings");
$h.ItemBase.registerClass("$h.ItemBase");
$h.Item.registerClass("$h.Item",$h.ItemBase);
$h.Appointment.registerClass("$h.Appointment",$h.Item);
$h.ComposeItem.registerClass("$h.ComposeItem",$h.ItemBase);
$h.AppointmentCompose.registerClass("$h.AppointmentCompose",$h.ComposeItem);
$h.AttachmentConstants.registerClass("$h.AttachmentConstants");
$h.AttachmentDetails.registerClass("$h.AttachmentDetails");
$h.Body.registerClass("$h.Body");
$h.ComposeBody.registerClass("$h.ComposeBody",$h.Body);
$h.ComposeRecipient.registerClass("$h.ComposeRecipient");
$h.ComposeLocation.registerClass("$h.ComposeLocation");
$h.ComposeSubject.registerClass("$h.ComposeSubject");
$h.ComposeTime.registerClass("$h.ComposeTime");
$h.Contact.registerClass("$h.Contact");
$h.CustomProperties.registerClass("$h.CustomProperties");
$h.Diagnostics.registerClass("$h.Diagnostics");
$h.EmailAddressDetails.registerClass("$h.EmailAddressDetails");
$h.Entities.registerClass("$h.Entities");
$h.ReplyConstants.registerClass("$h.ReplyConstants");
$h.AsyncConstants.registerClass("$h.AsyncConstants");
window["Office"]["cast"]["item"].registerClass("Office.cast.item");
$h.Message.registerClass("$h.Message",$h.Item);
$h.MeetingRequest.registerClass("$h.MeetingRequest",$h.Message);
$h.MeetingSuggestion.registerClass("$h.MeetingSuggestion");
$h.MeetingSuggestionTimeDecoder.registerClass("$h.MeetingSuggestionTimeDecoder");
$h._extractedDate.registerClass("$h._extractedDate");
$h._preciseDate.registerClass("$h._preciseDate",$h._extractedDate);
$h._relativeDate.registerClass("$h._relativeDate",$h._extractedDate);
$h.MessageCompose.registerClass("$h.MessageCompose",$h.ComposeItem);
$h.NotificationMessages.registerClass("$h.NotificationMessages");
$h.OutlookErrorManager.registerClass("$h.OutlookErrorManager");
$h.OutlookErrorManager.OutlookErrorCodes.registerClass("$h.OutlookErrorManager.OutlookErrorCodes");
$h.OutlookErrorManager.OsfDdaErrorCodes.registerClass("$h.OutlookErrorManager.OsfDdaErrorCodes");
$h.PhoneNumber.registerClass("$h.PhoneNumber");
$h.TaskSuggestion.registerClass("$h.TaskSuggestion");
$h.UserProfile.registerClass("$h.UserProfile");
$h.CommonParameters.registerClass("$h.CommonParameters");
$h.RequestBase.registerClass("$h.RequestBase");
$h.ProxyRequestBase.registerClass("$h.ProxyRequestBase",$h.RequestBase);
$h.EwsRequest.registerClass("$h.EwsRequest",$h.ProxyRequestBase);
$h.InitialData.registerClass("$h.InitialData");
$h._loadDictionaryRequest.registerClass("$h._loadDictionaryRequest",$h.RequestBase);
$h.SaveDictionaryRequest.registerClass("$h.SaveDictionaryRequest",$h.RequestBase);
$h.ScriptHelpers.registerClass("$h.ScriptHelpers");
window["OSF"]["DDA"]["OutlookAppOm"].asyncMethodTimeoutKeyName="__timeout__";
window["OSF"]["DDA"]["OutlookAppOm"].ewsIdOrEmailParamName="ewsIdOrEmail";
window["OSF"]["DDA"]["OutlookAppOm"]._maxRecipients$p=100;
window["OSF"]["DDA"]["OutlookAppOm"]._maxSubjectLength$p=255;
window["OSF"]["DDA"]["OutlookAppOm"].maxBodyLength=32768;
window["OSF"]["DDA"]["OutlookAppOm"]._maxLocationLength$p=255;
window["OSF"]["DDA"]["OutlookAppOm"]._maxEwsRequestSize$p=1e6;
window["OSF"]["DDA"]["OutlookAppOm"].executeMethodName="ExecuteMethod";
window["OSF"]["DDA"]["OutlookAppOm"].getInitialDataMethodName="GetInitialData";
window["OSF"]["DDA"]["OutlookAppOm"].itemIdParameterName="itemId";
window["OSF"]["DDA"]["OutlookAppOm"].restVersionParameterName="restVersion";
window["OSF"]["DDA"]["OutlookAppOm"]._instance$p=null;
$h.AttachmentConstants.maxAttachmentNameLength=255;
$h.AttachmentConstants.maxUrlLength=2048;
$h.AttachmentConstants.maxItemIdLength=200;
$h.AttachmentConstants.maxRemoveIdLength=200;
$h.AttachmentConstants.attachmentParameterName="attachments";
$h.AttachmentConstants.attachmentTypeParameterName="type";
$h.AttachmentConstants.attachmentUrlParameterName="url";
$h.AttachmentConstants.attachmentItemIdParameterName="itemId";
$h.AttachmentConstants.attachmentNameParameterName="name";
$h.AttachmentConstants.attachmentTypeFileName="file";
$h.AttachmentConstants.attachmentTypeItemName="item";
$h.AttachmentDetails._attachmentTypeMap$p=[window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["AttachmentType"]["File"],window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["AttachmentType"]["Item"],window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["AttachmentType"]["Cloud"]];
$h.Body.coercionTypeParameterName="coercionType";
$h.ComposeRecipient.displayNameLengthLimit=255;
$h.ComposeRecipient.maxSmtpLength=571;
$h.ComposeRecipient.recipientsLimit=100;
$h.ComposeRecipient.totalRecipientsLimit=500;
$h.ComposeRecipient.addressParameterName="address";
$h.ComposeRecipient.nameParameterName="name";
$h.ComposeLocation.locationKey="location";
$h.ComposeLocation.maximumLocationLength=255;
$h.ComposeSubject.maximumSubjectLength=255;
$h.ComposeTime.timeTypeName="TimeProperty";
$h.ComposeTime.timeDataName="time";
$h.Diagnostics.outlookAppName="Outlook";
$h.Diagnostics.outlookWebAppName="OutlookWebApp";
$h.EmailAddressDetails._emptyString$p="";
$h.EmailAddressDetails._responseTypeMap$p=[window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ResponseType"]["None"],window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ResponseType"]["Organizer"],window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ResponseType"]["Tentative"],window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ResponseType"]["Accepted"],window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ResponseType"]["Declined"]];
$h.EmailAddressDetails._recipientTypeMap$p=[window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RecipientType"]["Other"],window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RecipientType"]["DistributionList"],window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RecipientType"]["User"],window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RecipientType"]["ExternalUser"]];
$h.Entities._allEntityKeys$p=["Addresses","EmailAddresses","Urls","PhoneNumbers","TaskSuggestions","MeetingSuggestions","Contacts","FlightReservations","ParcelDeliveries"];
$h.ReplyConstants.htmlBodyKeyName="htmlBody";
$h.AsyncConstants.optionsKeyName="options";
$h.AsyncConstants.callbackKeyName="callback";
$h.AsyncConstants.asyncResultKeyName="asyncResult";
$h.MeetingSuggestionTimeDecoder._baseDate$p=new Date("0001-01-01T00:00:00Z");
$h.NotificationMessages.maximumKeyLength=32;
$h.NotificationMessages.maximumIconLength=32;
$h.NotificationMessages.maximumMessageLength=150;
$h.NotificationMessages.notificationsKeyParameterName="key";
$h.NotificationMessages.notificationsTypeParameterName="type";
$h.NotificationMessages.notificationsIconParameterName="icon";
$h.NotificationMessages.notificationsMessageParameterName="message";
$h.NotificationMessages.notificationsPersistentParameterName="persistent";
$h.OutlookErrorManager.errorNameKey="name";
$h.OutlookErrorManager.errorMessageKey="message";
$h.OutlookErrorManager._isInitialized$p=false;
$h.OutlookErrorManager.OutlookErrorCodes.attachmentSizeExceeded=9e3;
$h.OutlookErrorManager.OutlookErrorCodes.numberOfAttachmentsExceeded=9001;
$h.OutlookErrorManager.OutlookErrorCodes.internalFormatError=9002;
$h.OutlookErrorManager.OutlookErrorCodes.invalidAttachmentId=9003;
$h.OutlookErrorManager.OutlookErrorCodes.invalidAttachmentPath=9004;
$h.OutlookErrorManager.OutlookErrorCodes.cannotAddAttachmentBeforeUpgrade=9005;
$h.OutlookErrorManager.OutlookErrorCodes.attachmentDeletedBeforeUploadCompletes=9006;
$h.OutlookErrorManager.OutlookErrorCodes.attachmentUploadGeneralFailure=9007;
$h.OutlookErrorManager.OutlookErrorCodes.attachmentToDeleteDoesNotExist=9008;
$h.OutlookErrorManager.OutlookErrorCodes.attachmentDeleteGeneralFailure=9009;
$h.OutlookErrorManager.OutlookErrorCodes.invalidEndTime=9010;
$h.OutlookErrorManager.OutlookErrorCodes.htmlSanitizationFailure=9011;
$h.OutlookErrorManager.OutlookErrorCodes.numberOfRecipientsExceeded=9012;
$h.OutlookErrorManager.OutlookErrorCodes.noValidRecipientsProvided=9013;
$h.OutlookErrorManager.OutlookErrorCodes.cursorPositionChanged=9014;
$h.OutlookErrorManager.OutlookErrorCodes.invalidSelection=9016;
$h.OutlookErrorManager.OutlookErrorCodes.accessRestricted=9017;
$h.OutlookErrorManager.OutlookErrorCodes.genericTokenError=9018;
$h.OutlookErrorManager.OutlookErrorCodes.genericSettingsError=9019;
$h.OutlookErrorManager.OutlookErrorCodes.genericResponseError=9020;
$h.OutlookErrorManager.OutlookErrorCodes.saveError=9021;
$h.OutlookErrorManager.OutlookErrorCodes.messageInDifferentStoreError=9022;
$h.OutlookErrorManager.OutlookErrorCodes.duplicateNotificationKey=9023;
$h.OutlookErrorManager.OutlookErrorCodes.notificationKeyNotFound=9024;
$h.OutlookErrorManager.OutlookErrorCodes.numberOfNotificationsExceeded=9025;
$h.OutlookErrorManager.OutlookErrorCodes.persistedNotificationArrayReadError=9026;
$h.OutlookErrorManager.OutlookErrorCodes.persistedNotificationArraySaveError=9027;
$h.OutlookErrorManager.OutlookErrorCodes.cannotPersistPropertyInUnsavedDraftError=9028;
$h.OutlookErrorManager.OutlookErrorCodes.ooeInvalidDataFormat=2006;
$h.OutlookErrorManager.OsfDdaErrorCodes.ooeCoercionTypeNotSupported=1e3;
$h.CommonParameters.asyncContextKeyName="asyncContext";
$h.InitialData.userProfileTypeKey="userProfileType";
$h.ScriptHelpers.emptyString="";
OSF.DDA.ErrorCodeManager.initializeErrorMessages(Strings.OfficeOM);
if(appContext.get_appName()==OSF.AppName.OutlookWebApp || appContext.get_appName()==OSF.AppName.OutlookIOS)
this._settings=this._initializeSettings(appContext,false);
else
this._settings=this._initializeSettings(false);
appContext.appOM=new OSF.DDA.OutlookAppOm(appContext,this._webAppState.wnd,appReady)
}