@microsoft/office-js
Version:
Office JavaScript APIs
1,117 lines (1,115 loc) • 96.4 kB
JavaScript
/* Outlook specific API library */
/* Version: 15.0.4420.1017 Build Time: 03/31/2014 */
/*
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.
*/
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"
};
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"
};
Type.registerNamespace('OSF.DDA');
OSF.DDA.OutlookAppOm=function OSF_DDA_OutlookAppOm(officeAppContext, targetWindow, appReadyCallback) {
this.$$d__callAppReadyCallback$p$0=Function.createDelegate(this, this._callAppReadyCallback$p$0);
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__getInitialDataResponseHandler$p$0=Function.createDelegate(this, this._getInitialDataResponseHandler$p$0);
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) {
$$t_4._invokeHostMethod$i$0(1, 'GetInitialData', null, $$t_4.$$d__getInitialDataResponseHandler$p$0);
}
};
if (this._areStringsLoaded$p$0()) {
stringLoadedCallback();
}
else {
this._loadLocalizedScript$p$0(stringLoadedCallback);
}
}
OSF.DDA.OutlookAppOm._createAsyncResult$i=function OSF_DDA_OutlookAppOm$_createAsyncResult$i(value, errorCode, errorDescription, userContext) {
var initArgs={};
initArgs[OSF.DDA.AsyncResultEnum.Properties.Value]=value;
initArgs[OSF.DDA.AsyncResultEnum.Properties.Context]=userContext;
var errorArgs=null;
if (0 !==errorCode) {
errorArgs={};
errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Name]=errorCode;
errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Message]=errorDescription;
}
return new OSF.DDA.AsyncResult(initArgs, errorArgs);
}
OSF.DDA.OutlookAppOm._throwOnPropertyAccessForRestrictedPermission$i=function OSF_DDA_OutlookAppOm$_throwOnPropertyAccessForRestrictedPermission$i(currentPermissionLevel) {
if (!currentPermissionLevel) {
throw Error.create(_u.ExtensibilityStrings.l_ElevatedPermissionNeeded_Text);
}
}
OSF.DDA.OutlookAppOm._throwOnMethodCallForInsufficientPermission$i=function OSF_DDA_OutlookAppOm$_throwOnMethodCallForInsufficientPermission$i(currentPermissionLevel, requiredPermissionLevel, methodName) {
if (currentPermissionLevel < requiredPermissionLevel) {
throw Error.create(String.format(_u.ExtensibilityStrings.l_ElevatedPermissionNeededForMethod_Text, methodName));
}
}
OSF.DDA.OutlookAppOm._throwOnArgumentType$p=function OSF_DDA_OutlookAppOm$_throwOnArgumentType$p(value, expectedType, argumentName) {
if (Object.getType(value) !==expectedType) {
throw Error.argumentType(argumentName);
}
}
OSF.DDA.OutlookAppOm._throwOnOutOfRange$p=function OSF_DDA_OutlookAppOm$_throwOnOutOfRange$p(value, minValue, maxValue, argumentName) {
if (value < minValue || value > maxValue) {
throw Error.argumentOutOfRange(argumentName);
}
}
OSF.DDA.OutlookAppOm._validateOptionalStringParameter$p=function OSF_DDA_OutlookAppOm$_validateOptionalStringParameter$p(value, minLength, maxLength, name) {
if ($h.ScriptHelpers.isNullOrUndefined(value)) {
return;
}
OSF.DDA.OutlookAppOm._throwOnArgumentType$p(value, String, name);
var stringValue=value;
OSF.DDA.OutlookAppOm._throwOnOutOfRange$p(stringValue.length, minLength, maxLength, name);
}
OSF.DDA.OutlookAppOm._convertToOutlookParameters$p=function OSF_DDA_OutlookAppOm$_convertToOutlookParameters$p(dispid, data) {
var executeParameters=null;
switch (dispid) {
case 1:
case 2:
case 12:
case 3:
break;
case 4:
var jsonProperty=JSON.stringify(data['customProperties']);
executeParameters=[ jsonProperty ];
break;
case 5:
executeParameters=[ data['body'] ];
break;
case 8:
case 9:
executeParameters=[ data['itemId'] ];
break;
case 7:
executeParameters=[ OSF.DDA.OutlookAppOm._convertRecipientArrayParameterForOutlook$p(data['requiredAttendees']), OSF.DDA.OutlookAppOm._convertRecipientArrayParameterForOutlook$p(data['optionalAttendees']), data['start'], data['end'], data['location'], OSF.DDA.OutlookAppOm._convertRecipientArrayParameterForOutlook$p(data['resources']), data['subject'], data['body'] ];
break;
case 11:
case 10:
executeParameters=[ data['htmlBody'] ];
break;
default:
Sys.Debug.fail('Unexpected method dispid');
break;
}
return executeParameters;
}
OSF.DDA.OutlookAppOm._convertRecipientArrayParameterForOutlook$p=function OSF_DDA_OutlookAppOm$_convertRecipientArrayParameterForOutlook$p(array) {
return (array) ? array.join(';') : null;
}
OSF.DDA.OutlookAppOm._validateAndNormalizeRecipientEmails$p=function OSF_DDA_OutlookAppOm$_validateAndNormalizeRecipientEmails$p(emailset, name) {
if ($h.ScriptHelpers.isNullOrUndefined(emailset)) {
return null;
}
OSF.DDA.OutlookAppOm._throwOnArgumentType$p(emailset, Array, name);
var originalAttendees=emailset;
var updatedAttendees=null;
var normalizationNeeded=false;
OSF.DDA.OutlookAppOm._throwOnOutOfRange$p(originalAttendees.length, 0, 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];
OSF.DDA.OutlookAppOm._throwOnArgumentType$p(updatedAttendees[i], String, String.format('{0}[{1}]', name, i));
}
else {
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,
get__appName$i$0: function OSF_DDA_OutlookAppOm$get__appName$i$0() {
return this._officeAppContext$p$0.get_appName();
},
initialize: function OSF_DDA_OutlookAppOm$initialize(initialData) {
var ItemTypeKey='itemType';
this._initialData$p$0=new $h.InitialData(initialData);
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 {
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());
$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);
if (OSF.DDA.OutlookAppOm._instance$p.get__appName$i$0()===64) {
$h.InitialData._defineReadOnlyProperty$i(this, 'ewsUrl', this.$$d__getEwsUrl$p$0);
}
},
makeEwsRequestAsync: function OSF_DDA_OutlookAppOm$makeEwsRequestAsync(data, callback, userContext) {
if ($h.ScriptHelpers.isNullOrUndefined(data)) {
throw Error.argumentNull('data');
}
if (data.length > OSF.DDA.OutlookAppOm._maxEwsRequestSize$p) {
throw Error.argument('data', _u.ExtensibilityStrings.l_EwsRequestOversized_Text);
}
OSF.DDA.OutlookAppOm._throwOnMethodCallForInsufficientPermission$i(this._initialData$p$0.get__permissionLevel$i$0(), 2, 'makeEwsRequestAsync');
var ewsRequest=new $h.EwsRequest(userContext);
var $$t_4=this;
ewsRequest.onreadystatechange=function() {
if (4===ewsRequest.get__requestState$i$1()) {
callback(ewsRequest._asyncResult$p$0);
}
};
ewsRequest.send(data);
},
recordDataPoint: function OSF_DDA_OutlookAppOm$recordDataPoint(data) {
if ($h.ScriptHelpers.isNullOrUndefined(data)) {
throw Error.argumentNull('data');
}
this._invokeHostMethod$i$0(0, 'RecordDataPoint', data, null);
},
recordTrace: function OSF_DDA_OutlookAppOm$recordTrace(data) {
if ($h.ScriptHelpers.isNullOrUndefined(data)) {
throw Error.argumentNull('data');
}
this._invokeHostMethod$i$0(0, 'RecordTrace', data, null);
},
trackCtq: function OSF_DDA_OutlookAppOm$trackCtq(data) {
if ($h.ScriptHelpers.isNullOrUndefined(data)) {
throw Error.argumentNull('data');
}
this._invokeHostMethod$i$0(0, 'TrackCtq', data, null);
},
convertToLocalClientTime: function OSF_DDA_OutlookAppOm$convertToLocalClientTime(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;
},
convertToUtcClientTime: function OSF_DDA_OutlookAppOm$convertToUtcClientTime(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;
},
getUserIdentityTokenAsync: function OSF_DDA_OutlookAppOm$getUserIdentityTokenAsync(callback, userContext) {
OSF.DDA.OutlookAppOm._throwOnMethodCallForInsufficientPermission$i(this._initialData$p$0.get__permissionLevel$i$0(), 1, 'getUserIdentityTokenAsync');
this._invokeGetTokenMethodAsync$p$0(2, 'GetUserIdentityToken', callback, userContext);
},
getCallbackTokenAsync: function OSF_DDA_OutlookAppOm$getCallbackTokenAsync(callback, userContext) {
OSF.DDA.OutlookAppOm._throwOnMethodCallForInsufficientPermission$i(this._initialData$p$0.get__permissionLevel$i$0(), 1, 'getCallbackTokenAsync');
if (64 !==this._officeAppContext$p$0.get_appName()) {
throw Error.notImplemented('The getCallbackTokenAsync is not supported by outlook for now.');
}
this._invokeGetTokenMethodAsync$p$0(12, 'GetCallbackToken', callback, userContext);
},
displayMessageForm: function OSF_DDA_OutlookAppOm$displayMessageForm(itemId) {
if ($h.ScriptHelpers.isNullOrUndefined(itemId)) {
throw Error.argumentNull('itemId');
}
this._invokeHostMethod$i$0(8, 'DisplayExistingMessageForm', { itemId: itemId }, null);
},
displayAppointmentForm: function OSF_DDA_OutlookAppOm$displayAppointmentForm(itemId) {
if ($h.ScriptHelpers.isNullOrUndefined(itemId)) {
throw Error.argumentNull('itemId');
}
this._invokeHostMethod$i$0(9, 'DisplayExistingAppointmentForm', { itemId: itemId }, null);
},
displayNewAppointmentForm: function OSF_DDA_OutlookAppOm$displayNewAppointmentForm(parameters) {
var normalizedRequiredAttendees=OSF.DDA.OutlookAppOm._validateAndNormalizeRecipientEmails$p(parameters['requiredAttendees'], 'requiredAttendees');
var normalizedOptionalAttendees=OSF.DDA.OutlookAppOm._validateAndNormalizeRecipientEmails$p(parameters['optionalAttendees'], 'optionalAttendees');
OSF.DDA.OutlookAppOm._validateOptionalStringParameter$p(parameters['location'], 0, OSF.DDA.OutlookAppOm._maxLocationLength$p, 'location');
OSF.DDA.OutlookAppOm._validateOptionalStringParameter$p(parameters['body'], 0, OSF.DDA.OutlookAppOm._maxBodyLength$p, 'body');
OSF.DDA.OutlookAppOm._validateOptionalStringParameter$p(parameters['subject'], 0, OSF.DDA.OutlookAppOm._maxSubjectLength$p, 'subject');
if (!$h.ScriptHelpers.isNullOrUndefined(parameters['start'])) {
OSF.DDA.OutlookAppOm._throwOnArgumentType$p(parameters['start'], Date, 'start');
var startDateTime=parameters['start'];
parameters['start']=startDateTime.getTime();
if (!$h.ScriptHelpers.isNullOrUndefined(parameters['end'])) {
OSF.DDA.OutlookAppOm._throwOnArgumentType$p(parameters['end'], Date, 'end');
var endDateTime=parameters['end'];
if (endDateTime < startDateTime) {
throw Error.argumentOutOfRange('end', endDateTime, _u.ExtensibilityStrings.l_InvalidEventDates_Text);
}
parameters['end']=endDateTime.getTime();
}
}
var updatedParameters=null;
if (normalizedRequiredAttendees || normalizedOptionalAttendees) {
updatedParameters={};
var $$dict_6=parameters;
for (var $$key_7 in $$dict_6) {
var entry={ key: $$key_7, value: $$dict_6[$$key_7] };
updatedParameters[entry.key]=entry.value;
}
if (normalizedRequiredAttendees) {
updatedParameters['requiredAttendees']=normalizedRequiredAttendees;
}
if (normalizedOptionalAttendees) {
updatedParameters['optionalAttendees']=normalizedOptionalAttendees;
}
}
this._invokeHostMethod$i$0(7, 'DisplayNewAppointmentForm', updatedParameters || parameters, null);
},
_displayReplyForm$i$0: function OSF_DDA_OutlookAppOm$_displayReplyForm$i$0(htmlBody) {
if (!$h.ScriptHelpers.isNullOrUndefined(htmlBody)) {
OSF.DDA.OutlookAppOm._throwOnOutOfRange$p(htmlBody.length, 0, OSF.DDA.OutlookAppOm._maxBodyLength$p, 'htmlBody');
}
this._invokeHostMethod$i$0(10, 'DisplayReplyForm', { htmlBody: htmlBody }, null);
},
_displayReplyAllForm$i$0: function OSF_DDA_OutlookAppOm$_displayReplyAllForm$i$0(htmlBody) {
if (!$h.ScriptHelpers.isNullOrUndefined(htmlBody)) {
OSF.DDA.OutlookAppOm._throwOnOutOfRange$p(htmlBody.length, 0, OSF.DDA.OutlookAppOm._maxBodyLength$p, 'htmlBody');
}
this._invokeHostMethod$i$0(11, 'DisplayReplyAllForm', { htmlBody: htmlBody }, null);
},
_invokeHostMethod$i$0: function OSF_DDA_OutlookAppOm$_invokeHostMethod$i$0(dispid, name, data, responseCallback) {
if (64===this._officeAppContext$p$0.get_appName()) {
OSF._OfficeAppFactory.getClientEndPoint().invoke(name, responseCallback, data);
}
else if (dispid) {
var executeParameters=OSF.DDA.OutlookAppOm._convertToOutlookParameters$p(dispid, data);
var $$t_9=this;
window.external.Execute(dispid, executeParameters, function(nativeData, resultCode) {
if (responseCallback) {
var serializedData=nativeData.getItem(0);
var deserializedData=JSON.parse(serializedData);
responseCallback(resultCode, deserializedData);
}
});
}
else if (responseCallback) {
responseCallback(-2, null);
}
},
_dictionaryToDate$i$0: function OSF_DDA_OutlookAppOm$_dictionaryToDate$i$0(input) {
var retValue=new Date(input['year'], input['month'], input['date'], input['hours'], input['minutes'], input['seconds'], (!input['milliseconds']) ? 0 : input['milliseconds']);
if (isNaN(retValue.getTime())) {
throw Error.format(_u.ExtensibilityStrings.l_InvalidDate_Text);
}
return retValue;
},
_dateToDictionary$i$0: function OSF_DDA_OutlookAppOm$_dateToDictionary$i$0(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;
},
_getInitialDataResponseHandler$p$0: function OSF_DDA_OutlookAppOm$_getInitialDataResponseHandler$p$0(resultCode, data) {
if (resultCode) {
return;
}
this.initialize(data);
(this).displayName='mailbox';
window.setTimeout(this.$$d__callAppReadyCallback$p$0, 0);
},
_callAppReadyCallback$p$0: function OSF_DDA_OutlookAppOm$_callAppReadyCallback$p$0() {
this._appReadyCallback$p$0();
},
_invokeGetTokenMethodAsync$p$0: function OSF_DDA_OutlookAppOm$_invokeGetTokenMethodAsync$p$0(outlookDispid, methodName, callback, userContext) {
if ($h.ScriptHelpers.isNullOrUndefined(callback)) {
throw Error.argumentNull('callback');
}
var $$t_8=this;
this._invokeHostMethod$i$0(outlookDispid, methodName, null, function(resultCode, response) {
var asyncResult;
if (resultCode) {
asyncResult=OSF.DDA.OutlookAppOm._createAsyncResult$i(null, 1, String.format(_u.ExtensibilityStrings.l_InternalProtocolError_Text, resultCode), userContext);
}
else {
var responseDictionary=response;
if (responseDictionary['wasSuccessful']) {
asyncResult=OSF.DDA.OutlookAppOm._createAsyncResult$i(responseDictionary['token'], 0, null, userContext);
}
else {
asyncResult=OSF.DDA.OutlookAppOm._createAsyncResult$i(null, 1, responseDictionary['errorMessage'], userContext);
}
}
callback(asyncResult);
});
},
_getItem$p$0: function OSF_DDA_OutlookAppOm$_getItem$p$0() {
return this._item$p$0;
},
_getUserProfile$p$0: function OSF_DDA_OutlookAppOm$_getUserProfile$p$0() {
OSF.DDA.OutlookAppOm._throwOnPropertyAccessForRestrictedPermission$i(this._initialData$p$0.get__permissionLevel$i$0());
return this._userProfile$p$0;
},
_getDiagnostics$p$0: function OSF_DDA_OutlookAppOm$_getDiagnostics$p$0() {
return this._diagnostics$p$0;
},
_getEwsUrl$p$0: function OSF_DDA_OutlookAppOm$_getEwsUrl$p$0() {
OSF.DDA.OutlookAppOm._throwOnPropertyAccessForRestrictedPermission$i(this._initialData$p$0.get__permissionLevel$i$0());
return this._initialData$p$0.get__ewsUrl$i$0();
},
_findOffset$p$0: function OSF_DDA_OutlookAppOm$_findOffset$p$0(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=parseInt(range['start']);
var end=parseInt(range['end']);
if (value.getTime() - start >=0 && value.getTime() - end < 0) {
return parseInt(range['offset']);
}
}
throw Error.format(_u.ExtensibilityStrings.l_InvalidDate_Text);
},
_areStringsLoaded$p$0: function OSF_DDA_OutlookAppOm$_areStringsLoaded$p$0() {
var stringsLoaded=false;
try {
stringsLoaded=!$h.ScriptHelpers.isNullOrUndefined(_u.ExtensibilityStrings.l_EwsRequestOversized_Text);
}
catch ($$e_1) {
}
return stringsLoaded;
},
_loadLocalizedScript$p$0: function OSF_DDA_OutlookAppOm$_loadLocalizedScript$p$0(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, 2000);
head.appendChild(scriptElement);
}
},
_createScriptElement$p$0: function OSF_DDA_OutlookAppOm$_createScriptElement$p$0(url) {
var scriptElement=document.createElement('script');
scriptElement.type='text/javascript';
scriptElement.src=url;
return scriptElement;
}
}
OSF.DDA.Settings=function OSF_DDA_Settings(data) {
this._rawData$p$0=data;
}
OSF.DDA.Settings._convertFromRawSettings$p=function OSF_DDA_Settings$_convertFromRawSettings$p(rawSettings) {
if (!rawSettings) {
return {};
}
if (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 OSF_DDA_Settings$get__data$p$0() {
if (!this._settingsData$p$0) {
this._settingsData$p$0=OSF.DDA.Settings._convertFromRawSettings$p(this._rawData$p$0);
this._rawData$p$0=null;
}
return this._settingsData$p$0;
},
get: function OSF_DDA_Settings$get(name) {
return this.get__data$p$0()[name];
},
set: function OSF_DDA_Settings$set(name, value) {
this.get__data$p$0()[name]=value;
},
remove: function OSF_DDA_Settings$remove(name) {
delete this.get__data$p$0()[name];
},
saveAsync: function OSF_DDA_Settings$saveAsync() {
var args=[];
for (var $$pai_4=0; $$pai_4 < arguments.length;++$$pai_4) {
args[$$pai_4]=arguments[$$pai_4];
}
var callback=null;
var userContext=null;
if (args && args.length > 0) {
var currentArgument=args.length - 1;
if (Function.isInstanceOfType(args[currentArgument])) {
callback=args[currentArgument];
currentArgument--;
if (currentArgument >=0) {
userContext=(args[currentArgument])['asyncContext'];
}
}
}
if (OSF.DDA.OutlookAppOm._instance$p.get__appName$i$0()===64) {
this._saveSettingsForOwa$p$0(callback, userContext);
}
else {
this._saveSettingsForOutlook$p$0(callback, userContext);
}
},
_saveSettingsForOutlook$p$0: function OSF_DDA_Settings$_saveSettingsForOutlook$p$0(callback, userContext) {
var storedException=null;
try {
var serializedSettings=OSF.DDA.SettingsManager.serializeSettings(this.get__data$p$0());
var jsonSettings=JSON.stringify(serializedSettings);
var settingsObjectToSave={ SettingsKey: jsonSettings };
OSF.DDA.RichClientSettingsManager.write(settingsObjectToSave);
}
catch (ex) {
storedException=ex;
}
if (callback) {
var asyncResult;
if (storedException) {
asyncResult=OSF.DDA.OutlookAppOm._createAsyncResult$i(null, 1, storedException.message, userContext);
}
else {
asyncResult=OSF.DDA.OutlookAppOm._createAsyncResult$i(null, 0, null, userContext);
}
callback(asyncResult);
}
},
_saveSettingsForOwa$p$0: function OSF_DDA_Settings$_saveSettingsForOwa$p$0(callback, userContext) {
var serializedSettings=OSF.DDA.SettingsManager.serializeSettings(this.get__data$p$0());
var $$t_7=this;
OSF._OfficeAppFactory.getClientEndPoint().invoke('saveSettingsAsync', function(resultCode, response) {
if (callback) {
var asyncResult;
if (resultCode) {
asyncResult=OSF.DDA.OutlookAppOm._createAsyncResult$i(null, 1, String.format(_u.ExtensibilityStrings.l_InternalProtocolError_Text, resultCode), userContext);
}
else {
var responseDictionary=response;
if (!(responseDictionary['error'])) {
asyncResult=OSF.DDA.OutlookAppOm._createAsyncResult$i(null, 0, null, userContext);
}
else {
asyncResult=OSF.DDA.OutlookAppOm._createAsyncResult$i(null, 1, responseDictionary['errorMessage'], userContext);
}
}
callback(asyncResult);
}
}, [ serializedSettings ]);
}
}
Type.registerNamespace('$h');
$h.Appointment=function $h_Appointment(dataDictionary) {
this.$$d__getOrganizer$p$1=Function.createDelegate(this, this._getOrganizer$p$1);
this.$$d__getNormalizedSubject$p$1=Function.createDelegate(this, this._getNormalizedSubject$p$1);
this.$$d__getSubject$p$1=Function.createDelegate(this, this._getSubject$p$1);
this.$$d__getResources$p$1=Function.createDelegate(this, this._getResources$p$1);
this.$$d__getRequiredAttendees$p$1=Function.createDelegate(this, this._getRequiredAttendees$p$1);
this.$$d__getOptionalAttendees$p$1=Function.createDelegate(this, this._getOptionalAttendees$p$1);
this.$$d__getLocation$p$1=Function.createDelegate(this, this._getLocation$p$1);
this.$$d__getEnd$p$1=Function.createDelegate(this, this._getEnd$p$1);
this.$$d__getStart$p$1=Function.createDelegate(this, this._getStart$p$1);
$h.Appointment.initializeBase(this, [ dataDictionary ]);
$h.InitialData._defineReadOnlyProperty$i(this, 'start', this.$$d__getStart$p$1);
$h.InitialData._defineReadOnlyProperty$i(this, 'end', this.$$d__getEnd$p$1);
$h.InitialData._defineReadOnlyProperty$i(this, 'location', this.$$d__getLocation$p$1);
$h.InitialData._defineReadOnlyProperty$i(this, 'optionalAttendees', this.$$d__getOptionalAttendees$p$1);
$h.InitialData._defineReadOnlyProperty$i(this, 'requiredAttendees', this.$$d__getRequiredAttendees$p$1);
$h.InitialData._defineReadOnlyProperty$i(this, 'resources', this.$$d__getResources$p$1);
$h.InitialData._defineReadOnlyProperty$i(this, 'subject', this.$$d__getSubject$p$1);
$h.InitialData._defineReadOnlyProperty$i(this, 'normalizedSubject', this.$$d__getNormalizedSubject$p$1);
$h.InitialData._defineReadOnlyProperty$i(this, 'organizer', this.$$d__getOrganizer$p$1);
}
$h.Appointment.prototype={
getEntities: function $h_Appointment$getEntities() {
return this._data$p$0._getEntities$i$0();
},
getEntitiesByType: function $h_Appointment$getEntitiesByType(entityType) {
return this._data$p$0._getEntitiesByType$i$0(entityType);
},
getRegExMatches: function $h_Appointment$getRegExMatches() {
OSF.DDA.OutlookAppOm._throwOnMethodCallForInsufficientPermission$i(this._data$p$0.get__permissionLevel$i$0(), 1, 'getRegExMatches');
return this._data$p$0._getRegExMatches$i$0();
},
getFilteredEntitiesByName: function $h_Appointment$getFilteredEntitiesByName(name) {
return this._data$p$0._getFilteredEntitiesByName$i$0(name);
},
getRegExMatchesByName: function $h_Appointment$getRegExMatchesByName(name) {
OSF.DDA.OutlookAppOm._throwOnMethodCallForInsufficientPermission$i(this._data$p$0.get__permissionLevel$i$0(), 1, 'getRegExMatchesByName');
return this._data$p$0._getRegExMatchesByName$i$0(name);
},
displayReplyForm: function $h_Appointment$displayReplyForm(htmlBody) {
OSF.DDA.OutlookAppOm._instance$p._displayReplyForm$i$0(htmlBody);
},
displayReplyAllForm: function $h_Appointment$displayReplyAllForm(htmlBody) {
OSF.DDA.OutlookAppOm._instance$p._displayReplyAllForm$i$0(htmlBody);
},
getItemType: function $h_Appointment$getItemType() {
return Microsoft.Office.WebExtension.MailboxEnums.ItemType.Appointment;
},
_getStart$p$1: function $h_Appointment$_getStart$p$1() {
return this._data$p$0.get__start$i$0();
},
_getEnd$p$1: function $h_Appointment$_getEnd$p$1() {
return this._data$p$0.get__end$i$0();
},
_getLocation$p$1: function $h_Appointment$_getLocation$p$1() {
return this._data$p$0.get__location$i$0();
},
_getOptionalAttendees$p$1: function $h_Appointment$_getOptionalAttendees$p$1() {
return this._data$p$0.get__cc$i$0();
},
_getRequiredAttendees$p$1: function $h_Appointment$_getRequiredAttendees$p$1() {
return this._data$p$0.get__to$i$0();
},
_getResources$p$1: function $h_Appointment$_getResources$p$1() {
return this._data$p$0.get__resources$i$0();
},
_getSubject$p$1: function $h_Appointment$_getSubject$p$1() {
return this._data$p$0.get__subject$i$0();
},
_getNormalizedSubject$p$1: function $h_Appointment$_getNormalizedSubject$p$1() {
return this._data$p$0.get__normalizedSubject$i$0();
},
_getOrganizer$p$1: function $h_Appointment$_getOrganizer$p$1() {
return this._data$p$0.get__organizer$i$0();
}
}
$h.AttachmentDetails=function $h_AttachmentDetails(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 $h_AttachmentDetails$_getId$p$0() {
return this._data$p$0['id'];
},
_getName$p$0: function $h_AttachmentDetails$_getName$p$0() {
return this._data$p$0['name'];
},
_getContentType$p$0: function $h_AttachmentDetails$_getContentType$p$0() {
return this._data$p$0['contentType'];
},
_getSize$p$0: function $h_AttachmentDetails$_getSize$p$0() {
return this._data$p$0['size'];
},
_getAttachmentType$p$0: function $h_AttachmentDetails$_getAttachmentType$p$0() {
var response=this._data$p$0['attachmentType'];
return (response < $h.AttachmentDetails._attachmentTypeMap$p.length) ? $h.AttachmentDetails._attachmentTypeMap$p[response] : Microsoft.Office.WebExtension.MailboxEnums.AttachmentType.File;
},
_getIsInline$p$0: function $h_AttachmentDetails$_getIsInline$p$0() {
return this._data$p$0['isInline'];
}
}
$h.Contact=function $h_Contact(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 $h_Contact$_getPersonName$p$0() {
return this._data$p$0['PersonName'];
},
_getBusinessName$p$0: function $h_Contact$_getBusinessName$p$0() {
return this._data$p$0['BusinessName'];
},
_getAddresses$p$0: function $h_Contact$_getAddresses$p$0() {
return $h.Entities._getExtractedStringProperty$i(this._data$p$0, 'Addresses');
},
_getEmailAddresses$p$0: function $h_Contact$_getEmailAddresses$p$0() {
return $h.Entities._getExtractedStringProperty$i(this._data$p$0, 'EmailAddresses');
},
_getUrls$p$0: function $h_Contact$_getUrls$p$0() {
return $h.Entities._getExtractedStringProperty$i(this._data$p$0, 'Urls');
},
_getPhoneNumbers$p$0: function $h_Contact$_getPhoneNumbers$p$0() {
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 $h_Contact$_getContactString$p$0() {
return this._data$p$0['ContactString'];
}
}
$h.CustomProperties=function $h_CustomProperties(data) {
if ($h.ScriptHelpers.isNullOrUndefined(data)) {
throw Error.argumentNull('data');
}
this._data$p$0=data;
}
$h.CustomProperties.prototype={
_data$p$0: null,
get: function $h_CustomProperties$get(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=parseInt(ticksString);
if (!isNaN(ticks)) {
var dateTimeValue=new Date(ticks);
if (dateTimeValue) {
value=dateTimeValue;
}
}
}
}
return value;
},
set: function $h_CustomProperties$set(name, value) {
if (OSF.OUtil.isDate(value)) {
value='Date('+(value).getTime()+')';
}
this._data$p$0[name]=value;
},
remove: function $h_CustomProperties$remove(name) {
delete this._data$p$0[name];
},
saveAsync: function $h_CustomProperties$saveAsync(callback, userContext) {
var MaxCustomPropertiesLength=2500;
if (JSON.stringify(this._data$p$0).length > MaxCustomPropertiesLength) {
throw Error.argument();
}
var saveCustomProperties=new $h._saveDictionaryRequest(callback, userContext);
saveCustomProperties._sendRequest$i$0(4, 'SaveCustomProperties', { customProperties: this._data$p$0 });
}
}
$h.Diagnostics=function $h_Diagnostics(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 $h_Diagnostics$_getHostName$p$0() {
if (8===this._appName$p$0) {
return 'Outlook';
}
else if (64===this._appName$p$0) {
return 'OutlookWebApp';
}
return null;
},
_getHostVersion$p$0: function $h_Diagnostics$_getHostVersion$p$0() {
return this._data$p$0.get__hostVersion$i$0();
},
_getOwaView$p$0: function $h_Diagnostics$_getOwaView$p$0() {
return this._data$p$0.get__owaView$i$0();
}
}
$h.EmailAddressDetails=function $h_EmailAddressDetails(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 $h_EmailAddressDetails$_createFromEmailUserDictionary$i(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 $h_EmailAddressDetails$_getEmailAddress$p$0() {
return this._data$p$0['address'];
},
_getDisplayName$p$0: function $h_EmailAddressDetails$_getDisplayName$p$0() {
return this._data$p$0['name'];
},
_getAppointmentResponse$p$0: function $h_EmailAddressDetails$_getAppointmentResponse$p$0() {
var response=this._data$p$0['appointmentResponse'];
return (response < $h.EmailAddressDetails._responseTypeMap$p.length) ? $h.EmailAddressDetails._responseTypeMap$p[response] : Microsoft.Office.WebExtension.MailboxEnums.ResponseType.None;
},
_getRecipientType$p$0: function $h_EmailAddressDetails$_getRecipientType$p$0() {
var response=this._data$p$0['recipientType'];
return (response < $h.EmailAddressDetails._recipientTypeMap$p.length) ? $h.EmailAddressDetails._recipientTypeMap$p[response] : Microsoft.Office.WebExtension.MailboxEnums.RecipientType.Other;
}
}
$h.Entities=function $h_Entities(data, filteredEntitiesData, timeSent, permissionLevel) {
this.$$d__createMeetingSuggestion$p$0=Function.createDelegate(this, this._createMeetingSuggestion$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);
this._permissionLevel$p$0=permissionLevel;
}
$h.Entities._getExtractedObjects$i=function $h_Entities$_getExtractedObjects$i(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];
results[count++]=creator(extractedObject);
}
return results;
}
$h.Entities._getExtractedStringProperty$i=function $h_Entities$_getExtractedStringProperty$i(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 $h_Entities$_createContact$p(data) {
return new $h.Contact(data);
}
$h.Entities._createTaskSuggestion$p=function $h_Entities$_createTaskSuggestion$p(data) {
return new $h.TaskSuggestion(data);
}
$h.Entities._createPhoneNumber$p=function $h_Entities$_createPhoneNumber$p(data) {
return new $h.PhoneNumber(data);
}
$h.Entities._entityDictionaryEquals$p=function $h_Entities$_entityDictionaryEquals$p(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 $h_Entities$_stringEquals$p(string1, string2, entityProperty) {
return string1===string2;
}
$h.Entities._removeDuplicate$p=function $h_Entities$_removeDuplicate$p(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,
_getByType$i$0: function $h_Entities$_getByType$i$0(entityType) {
if (entityType===Microsoft.Office.WebExtension.MailboxEnums.EntityType.MeetingSuggestion) {
return this._getMeetingSuggestions$p$0();
}
else if (entityType===Microsoft.Office.WebExtension.MailboxEnums.EntityType.TaskSuggestion) {
return this._getTaskSuggestions$p$0();
}
else if (entityType===Microsoft.Office.WebExtension.MailboxEnums.EntityType.Address) {
return this._getAddresses$p$0();
}
else if (entityType===Microsoft.Office.WebExtension.MailboxEnums.EntityType.PhoneNumber) {
return this._getPhoneNumbers$p$0();
}
else if (entityType===Microsoft.Office.WebExtension.MailboxEnums.EntityType.EmailAddress) {
return this._getEmailAddresses$p$0();
}
else if (entityType===Microsoft.Office.WebExtension.MailboxEnums.EntityType.Url) {
return this._getUrls$p$0();
}
else if (entityType===Microsoft.Office.WebExtension.MailboxEnums.EntityType.Contact) {
return this._getContacts$p$0();
}
return null;
},
_getFilteredEntitiesByName$i$0: function $h_Entities$_getFilteredEntitiesByName$i$0(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 $h_Entities$_createMeetingSuggestion$p$0(data) {
return new $h.MeetingSuggestion(data, this._dateTimeSent$p$0);
},
_getAddresses$p$0: function $h_Entities$_getAddresses$p$0() {
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 $h_Entities$_getEmailAddresses$p$0() {
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 $h_Entities$_getUrls$p$0() {
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 $h_Entities$_getPhoneNumbers$p$0() {
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 $h_Entities$_getTaskSuggestions$p$0() {
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 $h_Entities$_getMeetingSuggestions$p$0() {
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 $h_Entities$_getContacts$p$0() {
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;
}
}
$h.Item=function $h_Item(data) {
this.$$d__createCustomProperties$i$0=Function.createDelegate(this, this._createCustomProperties$i$0);
this.$$d__getAttachments$p$0=Function.createDelegate(this, this._getAttachments$p$0);
this.$$d__getItemClass$p$0=Function.createDelegate(this, this._getItemClass$p$0);
this.$$d__getItemId$p$0=Function.createDelegate(this, this._getItemId$p$0);
this.$$d__getDateTimeModified$p$0=Function.createDelegate(this, this._getDateTimeModified$p$0);
this.$$d__getDateTimeCreated$p$0=Function.createDelegate(this, this._getDateTimeCreated$p$0);
this._data$p$0=data;
$h.InitialData._defineReadOnlyProperty$i(this, 'dateTimeCreated', this.$$d__getDateTimeCreated$p$0);
$h.InitialData._defineReadOnlyProperty$i(this, 'dateTimeModified', this.$$d__getDateTimeModified$p$0);
$h.InitialData._defineReadOnlyProperty$i(this, 'itemId', this.$$d__getItemId$p$0);
var