UNPKG

@microsoft/office-js

Version:
1,243 lines • 522 kB
/* Outlook Mac specific API library */ /* Version: 16.0.8809.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" && Sys.Serialization && Sys.Serialization.JavaScriptSerializer && typeof Sys.Serialization.JavaScriptSerializer.serialize === "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,"msAjaxString",{ get: function() { if(this._msAjaxString == null && this.isMsAjaxLoaded()) this._msAjaxString = 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.XdmFieldName = { ConversationUrl: "ConversationUrl", AppId: "AppId" }; OSF.WindowNameItemKeys = { BaseFrameName: "baseFrameName", HostInfo: "hostInfo", XdmInfo: "xdmInfo", SerializerVersion: "serializerVersion", AppContext: "appContext" }; OSF.OUtil = function() { var _uniqueId = -1; var _xdmInfoKey = "&_xdm_Info="; var _serializerVersionKey = "&_serializer_version="; var _xdmSessionKeyPrefix = "_xdm_"; var _serializerVersionKeyPrefix = "_serializer_version="; var _fragmentSeparator = "#"; var _fragmentInfoDelimiter = "&"; var _classN = "class"; 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 } function _reOrderTabbableElements(elements) { var bucket0 = []; var bucketPositive = []; var i; var len = elements.length; var ele; for(i = 0; i < len; i++) { ele = elements[i]; if(ele.tabIndex) { if(ele.tabIndex > 0) bucketPositive.push(ele); else if(ele.tabIndex === 0) bucket0.push(ele) } else bucket0.push(ele) } bucketPositive = bucketPositive.sort(function(left, right) { var diff = left.tabIndex - right.tabIndex; if(diff === 0) diff = bucketPositive.indexOf(left) - bucketPositive.indexOf(right); return diff }); return[].concat(bucketPositive,bucket0) } 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.setAttribute("crossOrigin","anonymous"); 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("_") }, getFrameName: function OSF_OUtil$getFrameName(cacheKey) { return _xdmSessionKeyPrefix + cacheKey + this.generateConversationId() }, addXdmInfoAsHash: function OSF_OUtil$addXdmInfoAsHash(url, xdmInfoValue) { return OSF.OUtil.addInfoAsHash(url,_xdmInfoKey,xdmInfoValue,false) }, addSerializerVersionAsHash: function OSF_OUtil$addSerializerVersionAsHash(url, serializerVersion) { return OSF.OUtil.addInfoAsHash(url,_serializerVersionKey,serializerVersion,true) }, addInfoAsHash: function OSF_OUtil$addInfoAsHash(url, keyName, infoValue, encodeInfo) { url = url.trim() || ""; var urlParts = url.split(_fragmentSeparator); var urlWithoutFragment = urlParts.shift(); var fragment = urlParts.join(_fragmentSeparator); var newFragment; if(encodeInfo) newFragment = [keyName,encodeURIComponent(infoValue),fragment].join(""); else newFragment = [fragment,keyName,infoValue].join(""); return[urlWithoutFragment,_fragmentSeparator,newFragment].join("") }, parseHostInfoFromWindowName: function OSF_OUtil$parseHostInfoFromWindowName(skipSessionStorage, windowName) { return OSF.OUtil.parseInfoFromWindowName(skipSessionStorage,windowName,OSF.WindowNameItemKeys.HostInfo) }, parseXdmInfo: function OSF_OUtil$parseXdmInfo(skipSessionStorage) { var xdmInfoValue = OSF.OUtil.parseXdmInfoWithGivenFragment(skipSessionStorage,window.location.hash); if(!xdmInfoValue) xdmInfoValue = OSF.OUtil.parseXdmInfoFromWindowName(skipSessionStorage,window.name); return xdmInfoValue }, parseXdmInfoFromWindowName: function OSF_OUtil$parseXdmInfoFromWindowName(skipSessionStorage, windowName) { return OSF.OUtil.parseInfoFromWindowName(skipSessionStorage,windowName,OSF.WindowNameItemKeys.XdmInfo) }, parseXdmInfoWithGivenFragment: function OSF_OUtil$parseXdmInfoWithGivenFragment(skipSessionStorage, fragment) { return OSF.OUtil.parseInfoWithGivenFragment(_xdmInfoKey,_xdmSessionKeyPrefix,false,skipSessionStorage,fragment) }, parseSerializerVersion: function OSF_OUtil$parseSerializerVersion(skipSessionStorage) { var serializerVersion = OSF.OUtil.parseSerializerVersionWithGivenFragment(skipSessionStorage,window.location.hash); if(isNaN(serializerVersion)) serializerVersion = OSF.OUtil.parseSerializerVersionFromWindowName(skipSessionStorage,window.name); return serializerVersion }, parseSerializerVersionFromWindowName: function OSF_OUtil$parseSerializerVersionFromWindowName(skipSessionStorage, windowName) { return parseInt(OSF.OUtil.parseInfoFromWindowName(skipSessionStorage,windowName,OSF.WindowNameItemKeys.SerializerVersion)) }, parseSerializerVersionWithGivenFragment: function OSF_OUtil$parseSerializerVersionWithGivenFragment(skipSessionStorage, fragment) { return parseInt(OSF.OUtil.parseInfoWithGivenFragment(_serializerVersionKey,_serializerVersionKeyPrefix,true,skipSessionStorage,fragment)) }, parseInfoFromWindowName: function OSF_OUtil$parseInfoFromWindowName(skipSessionStorage, windowName, infoKey) { try { var windowNameObj = JSON.parse(windowName); var infoValue = windowNameObj != null ? windowNameObj[infoKey] : null; var osfSessionStorage = _getSessionStorage(); if(!skipSessionStorage && osfSessionStorage && windowNameObj != null) { var sessionKey = windowNameObj[OSF.WindowNameItemKeys.BaseFrameName] + infoKey; if(infoValue) osfSessionStorage.setItem(sessionKey,infoValue); else infoValue = osfSessionStorage.getItem(sessionKey) } return infoValue } catch(Exception) { return null } }, parseInfoWithGivenFragment: function OSF_OUtil$parseInfoWithGivenFragment(infoKey, infoKeyPrefix, decodeInfo, skipSessionStorage, fragment) { var fragmentParts = fragment.split(infoKey); var infoValue = fragmentParts.length > 1 ? fragmentParts[fragmentParts.length - 1] : null; if(decodeInfo && infoValue != null) { if(infoValue.indexOf(_fragmentInfoDelimiter) >= 0) infoValue = infoValue.split(_fragmentInfoDelimiter)[0]; infoValue = decodeURIComponent(infoValue) } 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(infoValue) osfSessionStorage.setItem(sessionKey,infoValue); else infoValue = osfSessionStorage.getItem(sessionKey) } } return infoValue }, 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("|"); if(typeof items[1] == "undefined") items = strInfo.split("%7C"); return items }, getXdmFieldValue: function OSF_OUtil$getXdmFieldValue(xdmFieldName, skipSessionStorage) { var fieldValue = ""; var xdmInfoValue = OSF.OUtil.parseXdmInfo(skipSessionStorage); if(xdmInfoValue) { var items = OSF.OUtil.getInfoItems(xdmInfoValue); if(items != undefined && items.length >= 3) switch(xdmFieldName) { case OSF.XdmFieldName.ConversationUrl: fieldValue = items[2]; break; case OSF.XdmFieldName.AppId: fieldValue = items[1]; break } } return fieldValue }, 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 OsfMsAjaxFactory !== "undefined" && OsfMsAjaxFactory.msAjaxDebug && OsfMsAjaxFactory.msAjaxDebug.trace) 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 }, isChrome: function OSF_Outil$isChrome() { return window.navigator.userAgent.indexOf("Chrome") > 0 && !OSF.OUtil.isEdge() }, isEdge: function OSF_Outil$isEdge() { return window.navigator.userAgent.indexOf("Edge") > 0 }, isIE: function OSF_Outil$isIE() { return window.navigator.userAgent.indexOf("Trident") > 0 }, isFirefox: function OSF_Outil$isFirefox() { return window.navigator.userAgent.indexOf("Firefox") > 0 }, shallowCopy: function OSF_Outil$shallowCopy(sourceObj) { if(sourceObj == null) return null; else if(!(sourceObj instanceof Object)) return sourceObj; else if(Array.isArray(sourceObj)) { var copyArr = []; for(var i = 0; i < sourceObj.length; i++) copyArr.push(sourceObj[i]); return copyArr } else { var copyObj = sourceObj.constructor(); for(var property in sourceObj) if(sourceObj.hasOwnProperty(property)) copyObj[property] = sourceObj[property]; return copyObj } }, 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 }, addClass: function OSF_OUtil$addClass(elmt, val) { if(!OSF.OUtil.hasClass(elmt,val)) { var className = elmt.getAttribute(_classN); if(className) elmt.setAttribute(_classN,className + " " + val); else elmt.setAttribute(_classN,val) } }, removeClass: function OSF_OUtil$removeClass(elmt, val) { if(OSF.OUtil.hasClass(elmt,val)) { var className = elmt.getAttribute(_classN); var reg = new RegExp("(\\s|^)" + val + "(\\s|$)"); className = className.replace(reg,""); elmt.setAttribute(_classN,className) } }, hasClass: function OSF_OUtil$hasClass(elmt, clsName) { var className = elmt.getAttribute(_classN); return className && className.match(new RegExp("(\\s|^)" + clsName + "(\\s|$)")) }, focusToFirstTabbable: function OSF_OUtil$focusToFirstTabbable(all, backward) { var next; var focused = false; var candidate; var setFlag = function(e) { focused = true }; var findNextPos = function(allLen, currPos, backward) { if(currPos < 0 || currPos > allLen) return-1; else if(currPos === 0 && backward) return-1; else if(currPos === allLen - 1 && !backward) return-1; if(backward) return currPos - 1; else return currPos + 1 }; all = _reOrderTabbableElements(all); next = backward ? all.length - 1 : 0; if(all.length === 0) return null; while(!focused && next >= 0 && next < all.length) { candidate = all[next]; window.focus(); candidate.addEventListener("focus",setFlag); candidate.focus(); candidate.removeEventListener("focus",setFlag); next = findNextPos(all.length,next,backward); if(!focused && candidate === document.activeElement) focused = true } if(focused) return candidate; else return null }, focusToNextTabbable: function OSF_OUtil$focusToNextTabbable(all, curr, shift) { var currPos; var next; var focused = false; var candidate; var setFlag = function(e) { focused = true }; var findCurrPos = function(all, curr) { var i = 0; for(; i < all.length; i++) if(all[i] === curr) return i; return-1 }; var findNextPos = function(allLen, currPos, shift) { if(currPos < 0 || currPos > allLen) return-1; else if(currPos === 0 && shift) return-1; else if(currPos === allLen - 1 && !shift) return-1; if(shift) return currPos - 1; else return currPos + 1 }; all = _reOrderTabbableElements(all); currPos = findCurrPos(all,curr); next = findNextPos(all.length,currPos,shift); if(next < 0) return null; while(!focused && next >= 0 && next < all.length) { candidate = all[next]; candidate.addEventListener("focus",setFlag); candidate.focus(); candidate.removeEventListener("focus",setFlag); next = findNextPos(all.length,next,shift); if(!focused && candidate === document.activeElement) focused = true } if(focused) return candidate; else return null } } }(); 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.MessageIDs = { FetchBundleUrl: 0, LoadReactBundle: 1, LoadBundleSuccess: 2, LoadBundleError: 3 }; 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, OneNote: 262144, ExcelWinRT: 524288, WordWinRT: 1048576, PowerpointWinRT: 2097152, OutlookAndroid: 4194304, OneNoteWinRT: 8388608, ExcelAndroid: 8388609, VisioWebApp: 8388610, OneNoteIOS: 8388611 }; 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, PageIsReady: 10, TabIn: 11, TabInShift: 12, TabExit: 13, TabExitShift: 14, EscExit: 15, F2Exit: 16, ExitNoFocusable: 17, ExitNoFocusableShift: 18, MouseEnter: 19, MouseLeave: 20 }; OSF.SharedConstants = {NotificationConversationIdSuffix: "_ntf"}; OSF.DialogMessageType = { DialogMessageReceived: 0, DialogParentMessageReceived: 1, DialogClosed: 12006 }; OSF.OfficeAppContext = function OSF_OfficeAppContext(id, appName, appVersion, appUILocale, dataLocale, docUrl, clientMode, settings, reason, osfControlType, eToken, correlationId, appInstanceId, touchEnabled, commerceAllowed, appMinorVersion, requirementMatrix, hostCustomMessage, hostFullVersion, clientWindowHeight, clientWindowWidth, addinName, appDomains, dialogRequirementMatrix) { 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._hostCustomMessage = hostCustomMessage; this._hostFullVersion = hostFullVersion; this._isDialog = false; this._clientWindowHeight = clientWindowHeight; this._clientWindowWidth = clientWindowWidth; this._addinName = addinName; this._appDomains = appDomains; this._dialogRequirementMatrix = dialogRequirementMatrix; 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_dialogRequirementMatrix = function get_dialogRequirementMatrix() { return this._dialogRequirementMatrix }; t