Files
outlook_pal_tools/outllook_pal_toolsWeb/Scripts/Office/1/visio-web-embedded.debug.js
T
2024-06-24 11:10:18 +02:00

15317 lines
700 KiB
JavaScript

/*
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.
*/
/*
* @overview es6-promise - a tiny implementation of Promises/A+.
* @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
* @license Licensed under MIT license
* See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE
* @version 2.3.0
*/
// Sources:
// osfweb: none
// runtime: 16.0\13326.10000
// core: 16.0\13326.10000
// host: 16.0.13327.34950
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b)
if (b.hasOwnProperty(p))
d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var OfficeExtension;
(function (OfficeExtension) {
var _Internal;
(function (_Internal) {
_Internal.OfficeRequire = function () {
return null;
}();
})(_Internal = OfficeExtension._Internal || (OfficeExtension._Internal = {}));
(function (_Internal) {
var PromiseImpl;
(function (PromiseImpl) {
function Init() {
return (function () {
"use strict";
function lib$es6$promise$utils$$objectOrFunction(x) {
return typeof x === 'function' || (typeof x === 'object' && x !== null);
}
function lib$es6$promise$utils$$isFunction(x) {
return typeof x === 'function';
}
function lib$es6$promise$utils$$isMaybeThenable(x) {
return typeof x === 'object' && x !== null;
}
var lib$es6$promise$utils$$_isArray;
if (!Array.isArray) {
lib$es6$promise$utils$$_isArray = function (x) {
return Object.prototype.toString.call(x) === '[object Array]';
};
}
else {
lib$es6$promise$utils$$_isArray = Array.isArray;
}
var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;
var lib$es6$promise$asap$$len = 0;
var lib$es6$promise$asap$$toString = {}.toString;
var lib$es6$promise$asap$$vertxNext;
var lib$es6$promise$asap$$customSchedulerFn;
var lib$es6$promise$asap$$asap = function asap(callback, arg) {
lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;
lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;
lib$es6$promise$asap$$len += 2;
if (lib$es6$promise$asap$$len === 2) {
if (lib$es6$promise$asap$$customSchedulerFn) {
lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);
}
else {
lib$es6$promise$asap$$scheduleFlush();
}
}
};
function lib$es6$promise$asap$$setScheduler(scheduleFn) {
lib$es6$promise$asap$$customSchedulerFn = scheduleFn;
}
function lib$es6$promise$asap$$setAsap(asapFn) {
lib$es6$promise$asap$$asap = asapFn;
}
var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;
var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};
var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;
var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&
typeof importScripts !== 'undefined' &&
typeof MessageChannel !== 'undefined';
function lib$es6$promise$asap$$useNextTick() {
var nextTick = process.nextTick;
var version = process.versions.node.match(/^(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)$/);
if (Array.isArray(version) && version[1] === '0' && version[2] === '10') {
nextTick = window.setImmediate;
}
return function () {
nextTick(lib$es6$promise$asap$$flush);
};
}
function lib$es6$promise$asap$$useVertxTimer() {
return function () {
lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);
};
}
function lib$es6$promise$asap$$useMutationObserver() {
var iterations = 0;
var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);
var node = document.createTextNode('');
observer.observe(node, { characterData: true });
return function () {
node.data = (iterations = ++iterations % 2);
};
}
function lib$es6$promise$asap$$useMessageChannel() {
var channel = new MessageChannel();
channel.port1.onmessage = lib$es6$promise$asap$$flush;
return function () {
channel.port2.postMessage(0);
};
}
function lib$es6$promise$asap$$useSetTimeout() {
return function () {
setTimeout(lib$es6$promise$asap$$flush, 1);
};
}
var lib$es6$promise$asap$$queue = new Array(1000);
function lib$es6$promise$asap$$flush() {
for (var i = 0; i < lib$es6$promise$asap$$len; i += 2) {
var callback = lib$es6$promise$asap$$queue[i];
var arg = lib$es6$promise$asap$$queue[i + 1];
callback(arg);
lib$es6$promise$asap$$queue[i] = undefined;
lib$es6$promise$asap$$queue[i + 1] = undefined;
}
lib$es6$promise$asap$$len = 0;
}
var lib$es6$promise$asap$$scheduleFlush;
if (lib$es6$promise$asap$$isNode) {
lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();
}
else if (lib$es6$promise$asap$$isWorker) {
lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();
}
else {
lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();
}
function lib$es6$promise$$internal$$noop() { }
var lib$es6$promise$$internal$$PENDING = void 0;
var lib$es6$promise$$internal$$FULFILLED = 1;
var lib$es6$promise$$internal$$REJECTED = 2;
var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();
function lib$es6$promise$$internal$$selfFullfillment() {
return new TypeError("You cannot resolve a promise with itself");
}
function lib$es6$promise$$internal$$cannotReturnOwn() {
return new TypeError('A promises callback cannot return that same promise.');
}
function lib$es6$promise$$internal$$getThen(promise) {
try {
return promise.then;
}
catch (error) {
lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;
return lib$es6$promise$$internal$$GET_THEN_ERROR;
}
}
function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {
try {
then.call(value, fulfillmentHandler, rejectionHandler);
}
catch (e) {
return e;
}
}
function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {
lib$es6$promise$asap$$asap(function (promise) {
var sealed = false;
var error = lib$es6$promise$$internal$$tryThen(then, thenable, function (value) {
if (sealed) {
return;
}
sealed = true;
if (thenable !== value) {
lib$es6$promise$$internal$$resolve(promise, value);
}
else {
lib$es6$promise$$internal$$fulfill(promise, value);
}
}, function (reason) {
if (sealed) {
return;
}
sealed = true;
lib$es6$promise$$internal$$reject(promise, reason);
}, 'Settle: ' + (promise._label || ' unknown promise'));
if (!sealed && error) {
sealed = true;
lib$es6$promise$$internal$$reject(promise, error);
}
}, promise);
}
function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {
if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {
lib$es6$promise$$internal$$fulfill(promise, thenable._result);
}
else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {
lib$es6$promise$$internal$$reject(promise, thenable._result);
}
else {
lib$es6$promise$$internal$$subscribe(thenable, undefined, function (value) {
lib$es6$promise$$internal$$resolve(promise, value);
}, function (reason) {
lib$es6$promise$$internal$$reject(promise, reason);
});
}
}
function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable) {
if (maybeThenable.constructor === promise.constructor) {
lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);
}
else {
var then = lib$es6$promise$$internal$$getThen(maybeThenable);
if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {
lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);
}
else if (then === undefined) {
lib$es6$promise$$internal$$fulfill(promise, maybeThenable);
}
else if (lib$es6$promise$utils$$isFunction(then)) {
lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);
}
else {
lib$es6$promise$$internal$$fulfill(promise, maybeThenable);
}
}
}
function lib$es6$promise$$internal$$resolve(promise, value) {
if (promise === value) {
lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFullfillment());
}
else if (lib$es6$promise$utils$$objectOrFunction(value)) {
lib$es6$promise$$internal$$handleMaybeThenable(promise, value);
}
else {
lib$es6$promise$$internal$$fulfill(promise, value);
}
}
function lib$es6$promise$$internal$$publishRejection(promise) {
if (promise._onerror) {
promise._onerror(promise._result);
}
lib$es6$promise$$internal$$publish(promise);
}
function lib$es6$promise$$internal$$fulfill(promise, value) {
if (promise._state !== lib$es6$promise$$internal$$PENDING) {
return;
}
promise._result = value;
promise._state = lib$es6$promise$$internal$$FULFILLED;
if (promise._subscribers.length !== 0) {
lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);
}
}
function lib$es6$promise$$internal$$reject(promise, reason) {
if (promise._state !== lib$es6$promise$$internal$$PENDING) {
return;
}
promise._state = lib$es6$promise$$internal$$REJECTED;
promise._result = reason;
lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);
}
function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {
var subscribers = parent._subscribers;
var length = subscribers.length;
parent._onerror = null;
subscribers[length] = child;
subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;
subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;
if (length === 0 && parent._state) {
lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);
}
}
function lib$es6$promise$$internal$$publish(promise) {
var subscribers = promise._subscribers;
var settled = promise._state;
if (subscribers.length === 0) {
return;
}
var child, callback, detail = promise._result;
for (var i = 0; i < subscribers.length; i += 3) {
child = subscribers[i];
callback = subscribers[i + settled];
if (child) {
lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);
}
else {
callback(detail);
}
}
promise._subscribers.length = 0;
}
function lib$es6$promise$$internal$$ErrorObject() {
this.error = null;
}
var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();
function lib$es6$promise$$internal$$tryCatch(callback, detail) {
try {
return callback(detail);
}
catch (e) {
lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;
return lib$es6$promise$$internal$$TRY_CATCH_ERROR;
}
}
function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {
var hasCallback = lib$es6$promise$utils$$isFunction(callback), value, error, succeeded, failed;
if (hasCallback) {
value = lib$es6$promise$$internal$$tryCatch(callback, detail);
if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {
failed = true;
error = value.error;
value = null;
}
else {
succeeded = true;
}
if (promise === value) {
lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());
return;
}
}
else {
value = detail;
succeeded = true;
}
if (promise._state !== lib$es6$promise$$internal$$PENDING) {
}
else if (hasCallback && succeeded) {
lib$es6$promise$$internal$$resolve(promise, value);
}
else if (failed) {
lib$es6$promise$$internal$$reject(promise, error);
}
else if (settled === lib$es6$promise$$internal$$FULFILLED) {
lib$es6$promise$$internal$$fulfill(promise, value);
}
else if (settled === lib$es6$promise$$internal$$REJECTED) {
lib$es6$promise$$internal$$reject(promise, value);
}
}
function lib$es6$promise$$internal$$initializePromise(promise, resolver) {
try {
resolver(function resolvePromise(value) {
lib$es6$promise$$internal$$resolve(promise, value);
}, function rejectPromise(reason) {
lib$es6$promise$$internal$$reject(promise, reason);
});
}
catch (e) {
lib$es6$promise$$internal$$reject(promise, e);
}
}
function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {
var enumerator = this;
enumerator._instanceConstructor = Constructor;
enumerator.promise = new Constructor(lib$es6$promise$$internal$$noop);
if (enumerator._validateInput(input)) {
enumerator._input = input;
enumerator.length = input.length;
enumerator._remaining = input.length;
enumerator._init();
if (enumerator.length === 0) {
lib$es6$promise$$internal$$fulfill(enumerator.promise, enumerator._result);
}
else {
enumerator.length = enumerator.length || 0;
enumerator._enumerate();
if (enumerator._remaining === 0) {
lib$es6$promise$$internal$$fulfill(enumerator.promise, enumerator._result);
}
}
}
else {
lib$es6$promise$$internal$$reject(enumerator.promise, enumerator._validationError());
}
}
lib$es6$promise$enumerator$$Enumerator.prototype._validateInput = function (input) {
return lib$es6$promise$utils$$isArray(input);
};
lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function () {
return new _Internal.Error('Array Methods must be provided an Array');
};
lib$es6$promise$enumerator$$Enumerator.prototype._init = function () {
this._result = new Array(this.length);
};
var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;
lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function () {
var enumerator = this;
var length = enumerator.length;
var promise = enumerator.promise;
var input = enumerator._input;
for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {
enumerator._eachEntry(input[i], i);
}
};
lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function (entry, i) {
var enumerator = this;
var c = enumerator._instanceConstructor;
if (lib$es6$promise$utils$$isMaybeThenable(entry)) {
if (entry.constructor === c && entry._state !== lib$es6$promise$$internal$$PENDING) {
entry._onerror = null;
enumerator._settledAt(entry._state, i, entry._result);
}
else {
enumerator._willSettleAt(c.resolve(entry), i);
}
}
else {
enumerator._remaining--;
enumerator._result[i] = entry;
}
};
lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function (state, i, value) {
var enumerator = this;
var promise = enumerator.promise;
if (promise._state === lib$es6$promise$$internal$$PENDING) {
enumerator._remaining--;
if (state === lib$es6$promise$$internal$$REJECTED) {
lib$es6$promise$$internal$$reject(promise, value);
}
else {
enumerator._result[i] = value;
}
}
if (enumerator._remaining === 0) {
lib$es6$promise$$internal$$fulfill(promise, enumerator._result);
}
};
lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function (promise, i) {
var enumerator = this;
lib$es6$promise$$internal$$subscribe(promise, undefined, function (value) {
enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);
}, function (reason) {
enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);
});
};
function lib$es6$promise$promise$all$$all(entries) {
return new lib$es6$promise$enumerator$$default(this, entries).promise;
}
var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;
function lib$es6$promise$promise$race$$race(entries) {
var Constructor = this;
var promise = new Constructor(lib$es6$promise$$internal$$noop);
if (!lib$es6$promise$utils$$isArray(entries)) {
lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));
return promise;
}
var length = entries.length;
function onFulfillment(value) {
lib$es6$promise$$internal$$resolve(promise, value);
}
function onRejection(reason) {
lib$es6$promise$$internal$$reject(promise, reason);
}
for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {
lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);
}
return promise;
}
var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;
function lib$es6$promise$promise$resolve$$resolve(object) {
var Constructor = this;
if (object && typeof object === 'object' && object.constructor === Constructor) {
return object;
}
var promise = new Constructor(lib$es6$promise$$internal$$noop);
lib$es6$promise$$internal$$resolve(promise, object);
return promise;
}
var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;
function lib$es6$promise$promise$reject$$reject(reason) {
var Constructor = this;
var promise = new Constructor(lib$es6$promise$$internal$$noop);
lib$es6$promise$$internal$$reject(promise, reason);
return promise;
}
var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;
var lib$es6$promise$promise$$counter = 0;
function lib$es6$promise$promise$$needsResolver() {
throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
}
function lib$es6$promise$promise$$needsNew() {
throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
}
var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;
function lib$es6$promise$promise$$Promise(resolver) {
this._id = lib$es6$promise$promise$$counter++;
this._state = undefined;
this._result = undefined;
this._subscribers = [];
if (lib$es6$promise$$internal$$noop !== resolver) {
if (!lib$es6$promise$utils$$isFunction(resolver)) {
lib$es6$promise$promise$$needsResolver();
}
if (!(this instanceof lib$es6$promise$promise$$Promise)) {
lib$es6$promise$promise$$needsNew();
}
lib$es6$promise$$internal$$initializePromise(this, resolver);
}
}
lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;
lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;
lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;
lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;
lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;
lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;
lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;
lib$es6$promise$promise$$Promise.prototype = {
constructor: lib$es6$promise$promise$$Promise,
then: function (onFulfillment, onRejection) {
var parent = this;
var state = parent._state;
if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {
return this;
}
var child = new this.constructor(lib$es6$promise$$internal$$noop);
var result = parent._result;
if (state) {
var callback = arguments[state - 1];
lib$es6$promise$asap$$asap(function () {
lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);
});
}
else {
lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);
}
return child;
},
'catch': function (onRejection) {
return this.then(null, onRejection);
}
};
return lib$es6$promise$promise$$default;
}).call(this);
}
PromiseImpl.Init = Init;
})(PromiseImpl = _Internal.PromiseImpl || (_Internal.PromiseImpl = {}));
})(_Internal = OfficeExtension._Internal || (OfficeExtension._Internal = {}));
(function (_Internal) {
function isEdgeLessThan14() {
var userAgent = window.navigator.userAgent;
var versionIdx = userAgent.indexOf("Edge/");
if (versionIdx >= 0) {
userAgent = userAgent.substring(versionIdx + 5, userAgent.length);
if (userAgent < "14.14393")
return true;
else
return false;
}
return false;
}
function determinePromise() {
if (typeof (window) === "undefined" && typeof (Promise) === "function") {
return Promise;
}
if (typeof (window) !== "undefined" && window.Promise) {
if (isEdgeLessThan14()) {
return _Internal.PromiseImpl.Init();
}
else {
return window.Promise;
}
}
else {
return _Internal.PromiseImpl.Init();
}
}
_Internal.OfficePromise = determinePromise();
})(_Internal = OfficeExtension._Internal || (OfficeExtension._Internal = {}));
var OfficePromise = _Internal.OfficePromise;
OfficeExtension.Promise = OfficePromise;
})(OfficeExtension || (OfficeExtension = {}));
var OfficeExtension;
(function (OfficeExtension_1) {
var SessionBase = (function () {
function SessionBase() {
}
SessionBase.prototype._resolveRequestUrlAndHeaderInfo = function () {
return CoreUtility._createPromiseFromResult(null);
};
SessionBase.prototype._createRequestExecutorOrNull = function () {
return null;
};
Object.defineProperty(SessionBase.prototype, "eventRegistration", {
get: function () {
return null;
},
enumerable: true,
configurable: true
});
return SessionBase;
}());
OfficeExtension_1.SessionBase = SessionBase;
var HttpUtility = (function () {
function HttpUtility() {
}
HttpUtility.setCustomSendRequestFunc = function (func) {
HttpUtility.s_customSendRequestFunc = func;
};
HttpUtility.xhrSendRequestFunc = function (request) {
return CoreUtility.createPromise(function (resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open(request.method, request.url);
xhr.onload = function () {
var resp = {
statusCode: xhr.status,
headers: CoreUtility._parseHttpResponseHeaders(xhr.getAllResponseHeaders()),
body: xhr.responseText
};
resolve(resp);
};
xhr.onerror = function () {
reject(new _Internal.RuntimeError({
code: CoreErrorCodes.connectionFailure,
httpStatusCode: xhr.status,
message: CoreUtility._getResourceString(CoreResourceStrings.connectionFailureWithStatus, xhr.statusText)
}));
};
if (request.headers) {
for (var key in request.headers) {
xhr.setRequestHeader(key, request.headers[key]);
}
}
xhr.send(CoreUtility._getRequestBodyText(request));
});
};
HttpUtility.fetchSendRequestFunc = function (request) {
var requestBodyText = CoreUtility._getRequestBodyText(request);
if (requestBodyText === '') {
requestBodyText = undefined;
}
return fetch(request.url, {
method: request.method,
headers: request.headers,
body: requestBodyText
})
.then(function (resp) {
return resp.text()
.then(function (body) {
var statusCode = resp.status;
var headers = {};
resp.headers.forEach(function (value, name) {
headers[name] = value;
});
var ret = { statusCode: statusCode, headers: headers, body: body };
return ret;
});
});
};
HttpUtility.sendRequest = function (request) {
HttpUtility.validateAndNormalizeRequest(request);
var func = HttpUtility.s_customSendRequestFunc;
if (!func) {
if (typeof (fetch) !== 'undefined') {
func = HttpUtility.fetchSendRequestFunc;
}
else {
func = HttpUtility.xhrSendRequestFunc;
}
}
return func(request);
};
HttpUtility.setCustomSendLocalDocumentRequestFunc = function (func) {
HttpUtility.s_customSendLocalDocumentRequestFunc = func;
};
HttpUtility.sendLocalDocumentRequest = function (request) {
HttpUtility.validateAndNormalizeRequest(request);
var func;
func = HttpUtility.s_customSendLocalDocumentRequestFunc || HttpUtility.officeJsSendLocalDocumentRequestFunc;
return func(request);
};
HttpUtility.officeJsSendLocalDocumentRequestFunc = function (request) {
request = CoreUtility._validateLocalDocumentRequest(request);
var requestSafeArray = CoreUtility._buildRequestMessageSafeArray(request);
return CoreUtility.createPromise(function (resolve, reject) {
OSF.DDA.RichApi.executeRichApiRequestAsync(requestSafeArray, function (asyncResult) {
var response;
if (asyncResult.status == 'succeeded') {
response = {
statusCode: RichApiMessageUtility.getResponseStatusCode(asyncResult),
headers: RichApiMessageUtility.getResponseHeaders(asyncResult),
body: RichApiMessageUtility.getResponseBody(asyncResult)
};
}
else {
response = RichApiMessageUtility.buildHttpResponseFromOfficeJsError(asyncResult.error.code, asyncResult.error.message);
}
CoreUtility.log('Response:');
CoreUtility.log(JSON.stringify(response));
resolve(response);
});
});
};
HttpUtility.validateAndNormalizeRequest = function (request) {
if (CoreUtility.isNullOrUndefined(request)) {
throw _Internal.RuntimeError._createInvalidArgError({
argumentName: 'request'
});
}
if (CoreUtility.isNullOrEmptyString(request.method)) {
request.method = 'GET';
}
request.method = request.method.toUpperCase();
};
HttpUtility.logRequest = function (request) {
if (CoreUtility._logEnabled) {
CoreUtility.log('---HTTP Request---');
CoreUtility.log(request.method + ' ' + request.url);
if (request.headers) {
for (var key in request.headers) {
CoreUtility.log(key + ': ' + request.headers[key]);
}
}
if (HttpUtility._logBodyEnabled) {
CoreUtility.log(CoreUtility._getRequestBodyText(request));
}
}
};
HttpUtility.logResponse = function (response) {
if (CoreUtility._logEnabled) {
CoreUtility.log('---HTTP Response---');
CoreUtility.log('' + response.statusCode);
if (response.headers) {
for (var key in response.headers) {
CoreUtility.log(key + ': ' + response.headers[key]);
}
}
if (HttpUtility._logBodyEnabled) {
CoreUtility.log(response.body);
}
}
};
HttpUtility._logBodyEnabled = false;
return HttpUtility;
}());
OfficeExtension_1.HttpUtility = HttpUtility;
var HostBridge = (function () {
function HostBridge(m_bridge) {
var _this = this;
this.m_bridge = m_bridge;
this.m_promiseResolver = {};
this.m_handlers = [];
this.m_bridge.onMessageFromHost = function (messageText) {
var message = JSON.parse(messageText);
if (message.type == 3) {
var genericMessageBody = message.message;
if (genericMessageBody && genericMessageBody.entries) {
for (var i = 0; i < genericMessageBody.entries.length; i++) {
var entryObjectOrArray = genericMessageBody.entries[i];
if (Array.isArray(entryObjectOrArray)) {
var entry = {
messageCategory: entryObjectOrArray[0],
messageType: entryObjectOrArray[1],
targetId: entryObjectOrArray[2],
message: entryObjectOrArray[3],
id: entryObjectOrArray[4]
};
genericMessageBody.entries[i] = entry;
}
}
}
}
_this.dispatchMessage(message);
};
}
HostBridge.init = function (bridge) {
if (typeof bridge !== 'object' || !bridge) {
return;
}
var instance = new HostBridge(bridge);
HostBridge.s_instance = instance;
HttpUtility.setCustomSendLocalDocumentRequestFunc(function (request) {
request = CoreUtility._validateLocalDocumentRequest(request);
var requestFlags = 0;
if (!CoreUtility.isReadonlyRestRequest(request.method)) {
requestFlags = 1;
}
var index = request.url.indexOf('?');
if (index >= 0) {
var query = request.url.substr(index + 1);
var flagsAndCustomData = CoreUtility._parseRequestFlagsAndCustomDataFromQueryStringIfAny(query);
if (flagsAndCustomData.flags >= 0) {
requestFlags = flagsAndCustomData.flags;
}
}
var bridgeMessage = {
id: HostBridge.nextId(),
type: 1,
flags: requestFlags,
message: request
};
return instance.sendMessageToHostAndExpectResponse(bridgeMessage).then(function (bridgeResponse) {
var responseInfo = bridgeResponse.message;
return responseInfo;
});
});
for (var i = 0; i < HostBridge.s_onInitedHandlers.length; i++) {
HostBridge.s_onInitedHandlers[i](instance);
}
};
Object.defineProperty(HostBridge, "instance", {
get: function () {
return HostBridge.s_instance;
},
enumerable: true,
configurable: true
});
HostBridge.prototype.sendMessageToHost = function (message) {
this.m_bridge.sendMessageToHost(JSON.stringify(message));
};
HostBridge.prototype.sendMessageToHostAndExpectResponse = function (message) {
var _this = this;
var ret = CoreUtility.createPromise(function (resolve, reject) {
_this.m_promiseResolver[message.id] = resolve;
});
this.m_bridge.sendMessageToHost(JSON.stringify(message));
return ret;
};
HostBridge.prototype.addHostMessageHandler = function (handler) {
this.m_handlers.push(handler);
};
HostBridge.prototype.removeHostMessageHandler = function (handler) {
var index = this.m_handlers.indexOf(handler);
if (index >= 0) {
this.m_handlers.splice(index, 1);
}
};
HostBridge.onInited = function (handler) {
HostBridge.s_onInitedHandlers.push(handler);
if (HostBridge.s_instance) {
handler(HostBridge.s_instance);
}
};
HostBridge.prototype.dispatchMessage = function (message) {
if (typeof message.id === 'number') {
var resolve = this.m_promiseResolver[message.id];
if (resolve) {
resolve(message);
delete this.m_promiseResolver[message.id];
return;
}
}
for (var i = 0; i < this.m_handlers.length; i++) {
this.m_handlers[i](message);
}
};
HostBridge.nextId = function () {
return HostBridge.s_nextId++;
};
HostBridge.s_onInitedHandlers = [];
HostBridge.s_nextId = 1;
return HostBridge;
}());
OfficeExtension_1.HostBridge = HostBridge;
if (typeof _richApiNativeBridge === 'object' && _richApiNativeBridge) {
HostBridge.init(_richApiNativeBridge);
}
var _Internal;
(function (_Internal) {
var RuntimeError = (function (_super) {
__extends(RuntimeError, _super);
function RuntimeError(error) {
var _this = _super.call(this, typeof error === 'string' ? error : error.message) || this;
Object.setPrototypeOf(_this, RuntimeError.prototype);
_this.name = 'RichApi.Error';
if (typeof error === 'string') {
_this.message = error;
}
else {
_this.code = error.code;
_this.message = error.message;
_this.traceMessages = error.traceMessages || [];
_this.innerError = error.innerError || null;
_this.debugInfo = _this._createDebugInfo(error.debugInfo || {});
_this.httpStatusCode = error.httpStatusCode;
_this.data = error.data;
}
if (CoreUtility.isNullOrUndefined(_this.httpStatusCode) || _this.httpStatusCode === 200) {
var mapping = {};
mapping[CoreErrorCodes.accessDenied] = 401;
mapping[CoreErrorCodes.connectionFailure] = 500;
mapping[CoreErrorCodes.generalException] = 500;
mapping[CoreErrorCodes.invalidArgument] = 400;
mapping[CoreErrorCodes.invalidObjectPath] = 400;
mapping[CoreErrorCodes.invalidOrTimedOutSession] = 408;
mapping[CoreErrorCodes.invalidRequestContext] = 400;
mapping[CoreErrorCodes.timeout] = 408;
mapping[CoreErrorCodes.valueNotLoaded] = 400;
_this.httpStatusCode = mapping[_this.code];
}
if (CoreUtility.isNullOrUndefined(_this.httpStatusCode)) {
_this.httpStatusCode = 500;
}
return _this;
}
RuntimeError.prototype.toString = function () {
return this.code + ': ' + this.message;
};
RuntimeError.prototype._createDebugInfo = function (partialDebugInfo) {
var debugInfo = {
code: this.code,
message: this.message
};
debugInfo.toString = function () {
return JSON.stringify(this);
};
for (var key in partialDebugInfo) {
debugInfo[key] = partialDebugInfo[key];
}
if (this.innerError) {
if (this.innerError instanceof _Internal.RuntimeError) {
debugInfo.innerError = this.innerError.debugInfo;
}
else {
debugInfo.innerError = this.innerError;
}
}
return debugInfo;
};
RuntimeError._createInvalidArgError = function (error) {
return new _Internal.RuntimeError({
code: CoreErrorCodes.invalidArgument,
httpStatusCode: 400,
message: CoreUtility.isNullOrEmptyString(error.argumentName)
? CoreUtility._getResourceString(CoreResourceStrings.invalidArgumentGeneric)
: CoreUtility._getResourceString(CoreResourceStrings.invalidArgument, error.argumentName),
debugInfo: error.errorLocation ? { errorLocation: error.errorLocation } : {},
innerError: error.innerError
});
};
return RuntimeError;
}(Error));
_Internal.RuntimeError = RuntimeError;
})(_Internal = OfficeExtension_1._Internal || (OfficeExtension_1._Internal = {}));
OfficeExtension_1.Error = _Internal.RuntimeError;
var CoreErrorCodes = (function () {
function CoreErrorCodes() {
}
CoreErrorCodes.apiNotFound = 'ApiNotFound';
CoreErrorCodes.accessDenied = 'AccessDenied';
CoreErrorCodes.generalException = 'GeneralException';
CoreErrorCodes.activityLimitReached = 'ActivityLimitReached';
CoreErrorCodes.invalidArgument = 'InvalidArgument';
CoreErrorCodes.connectionFailure = 'ConnectionFailure';
CoreErrorCodes.timeout = 'Timeout';
CoreErrorCodes.invalidOrTimedOutSession = 'InvalidOrTimedOutSession';
CoreErrorCodes.invalidObjectPath = 'InvalidObjectPath';
CoreErrorCodes.invalidRequestContext = 'InvalidRequestContext';
CoreErrorCodes.valueNotLoaded = 'ValueNotLoaded';
return CoreErrorCodes;
}());
OfficeExtension_1.CoreErrorCodes = CoreErrorCodes;
var CoreResourceStrings = (function () {
function CoreResourceStrings() {
}
CoreResourceStrings.apiNotFoundDetails = 'ApiNotFoundDetails';
CoreResourceStrings.connectionFailureWithStatus = 'ConnectionFailureWithStatus';
CoreResourceStrings.connectionFailureWithDetails = 'ConnectionFailureWithDetails';
CoreResourceStrings.invalidArgument = 'InvalidArgument';
CoreResourceStrings.invalidArgumentGeneric = 'InvalidArgumentGeneric';
CoreResourceStrings.timeout = 'Timeout';
CoreResourceStrings.invalidOrTimedOutSessionMessage = 'InvalidOrTimedOutSessionMessage';
CoreResourceStrings.invalidObjectPath = 'InvalidObjectPath';
CoreResourceStrings.invalidRequestContext = 'InvalidRequestContext';
CoreResourceStrings.valueNotLoaded = 'ValueNotLoaded';
return CoreResourceStrings;
}());
OfficeExtension_1.CoreResourceStrings = CoreResourceStrings;
var CoreConstants = (function () {
function CoreConstants() {
}
CoreConstants.flags = 'flags';
CoreConstants.sourceLibHeader = 'SdkVersion';
CoreConstants.processQuery = 'ProcessQuery';
CoreConstants.localDocument = 'http://document.localhost/';
CoreConstants.localDocumentApiPrefix = 'http://document.localhost/_api/';
CoreConstants.customData = 'customdata';
return CoreConstants;
}());
OfficeExtension_1.CoreConstants = CoreConstants;
var RichApiMessageUtility = (function () {
function RichApiMessageUtility() {
}
RichApiMessageUtility.buildMessageArrayForIRequestExecutor = function (customData, requestFlags, requestMessage, sourceLibHeaderValue) {
var requestMessageText = JSON.stringify(requestMessage.Body);
CoreUtility.log('Request:');
CoreUtility.log(requestMessageText);
var headers = {};
CoreUtility._copyHeaders(requestMessage.Headers, headers);
headers[CoreConstants.sourceLibHeader] = sourceLibHeaderValue;
var messageSafearray = RichApiMessageUtility.buildRequestMessageSafeArray(customData, requestFlags, 'POST', CoreConstants.processQuery, headers, requestMessageText);
return messageSafearray;
};
RichApiMessageUtility.buildResponseOnSuccess = function (responseBody, responseHeaders) {
var response = { HttpStatusCode: 200, ErrorCode: '', ErrorMessage: '', Headers: null, Body: null };
response.Body = JSON.parse(responseBody);
response.Headers = responseHeaders;
return response;
};
RichApiMessageUtility.buildResponseOnError = function (errorCode, message) {
var response = { HttpStatusCode: 500, ErrorCode: '', ErrorMessage: '', Headers: null, Body: null };
response.ErrorCode = CoreErrorCodes.generalException;
response.ErrorMessage = message;
if (errorCode == RichApiMessageUtility.OfficeJsErrorCode_ooeNoCapability) {
response.ErrorCode = CoreErrorCodes.accessDenied;
response.HttpStatusCode = 401;
}
else if (errorCode == RichApiMessageUtility.OfficeJsErrorCode_ooeActivityLimitReached) {
response.ErrorCode = CoreErrorCodes.activityLimitReached;
response.HttpStatusCode = 429;
}
else if (errorCode == RichApiMessageUtility.OfficeJsErrorCode_ooeInvalidOrTimedOutSession) {
response.ErrorCode = CoreErrorCodes.invalidOrTimedOutSession;
response.HttpStatusCode = 408;
response.ErrorMessage = CoreUtility._getResourceString(CoreResourceStrings.invalidOrTimedOutSessionMessage);
}
return response;
};
RichApiMessageUtility.buildHttpResponseFromOfficeJsError = function (errorCode, message) {
var statusCode = 500;
var errorBody = {};
errorBody['error'] = {};
errorBody['error']['code'] = CoreErrorCodes.generalException;
errorBody['error']['message'] = message;
if (errorCode === RichApiMessageUtility.OfficeJsErrorCode_ooeNoCapability) {
statusCode = 403;
errorBody['error']['code'] = CoreErrorCodes.accessDenied;
}
else if (errorCode === RichApiMessageUtility.OfficeJsErrorCode_ooeActivityLimitReached) {
statusCode = 429;
errorBody['error']['code'] = CoreErrorCodes.activityLimitReached;
}
return { statusCode: statusCode, headers: {}, body: JSON.stringify(errorBody) };
};
RichApiMessageUtility.buildRequestMessageSafeArray = function (customData, requestFlags, method, path, headers, body) {
var headerArray = [];
if (headers) {
for (var headerName in headers) {
headerArray.push(headerName);
headerArray.push(headers[headerName]);
}
}
var appPermission = 0;
var solutionId = '';
var instanceId = '';
var marketplaceType = '';
return [
customData,
method,
path,
headerArray,
body,
appPermission,
requestFlags,
solutionId,
instanceId,
marketplaceType
];
};
RichApiMessageUtility.getResponseBody = function (result) {
return RichApiMessageUtility.getResponseBodyFromSafeArray(result.value.data);
};
RichApiMessageUtility.getResponseHeaders = function (result) {
return RichApiMessageUtility.getResponseHeadersFromSafeArray(result.value.data);
};
RichApiMessageUtility.getResponseBodyFromSafeArray = function (data) {
var ret = data[2];
if (typeof ret === 'string') {
return ret;
}
var arr = ret;
return arr.join('');
};
RichApiMessageUtility.getResponseHeadersFromSafeArray = function (data) {
var arrayHeader = data[1];
if (!arrayHeader) {
return null;
}
var headers = {};
for (var i = 0; i < arrayHeader.length - 1; i += 2) {
headers[arrayHeader[i]] = arrayHeader[i + 1];
}
return headers;
};
RichApiMessageUtility.getResponseStatusCode = function (result) {
return RichApiMessageUtility.getResponseStatusCodeFromSafeArray(result.value.data);
};
RichApiMessageUtility.getResponseStatusCodeFromSafeArray = function (data) {
return data[0];
};
RichApiMessageUtility.OfficeJsErrorCode_ooeInvalidOrTimedOutSession = 5012;
RichApiMessageUtility.OfficeJsErrorCode_ooeActivityLimitReached = 5102;
RichApiMessageUtility.OfficeJsErrorCode_ooeNoCapability = 7000;
return RichApiMessageUtility;
}());
OfficeExtension_1.RichApiMessageUtility = RichApiMessageUtility;
(function (_Internal) {
function getPromiseType() {
if (typeof Promise !== 'undefined') {
return Promise;
}
if (typeof Office !== 'undefined') {
if (Office.Promise) {
return Office.Promise;
}
}
if (typeof OfficeExtension !== 'undefined') {
if (OfficeExtension.Promise) {
return OfficeExtension.Promise;
}
}
throw new _Internal.Error('No Promise implementation found');
}
_Internal.getPromiseType = getPromiseType;
})(_Internal = OfficeExtension_1._Internal || (OfficeExtension_1._Internal = {}));
var CoreUtility = (function () {
function CoreUtility() {
}
CoreUtility.log = function (message) {
if (CoreUtility._logEnabled && typeof console !== 'undefined' && console.log) {
console.log(message);
}
};
CoreUtility.checkArgumentNull = function (value, name) {
if (CoreUtility.isNullOrUndefined(value)) {
throw _Internal.RuntimeError._createInvalidArgError({ argumentName: name });
}
};
CoreUtility.isNullOrUndefined = function (value) {
if (value === null) {
return true;
}
if (typeof value === 'undefined') {
return true;
}
return false;
};
CoreUtility.isUndefined = function (value) {
if (typeof value === 'undefined') {
return true;
}
return false;
};
CoreUtility.isNullOrEmptyString = function (value) {
if (value === null) {
return true;
}
if (typeof value === 'undefined') {
return true;
}
if (value.length == 0) {
return true;
}
return false;
};
CoreUtility.isPlainJsonObject = function (value) {
if (CoreUtility.isNullOrUndefined(value)) {
return false;
}
if (typeof value !== 'object') {
return false;
}
if (Object.prototype.toString.apply(value) !== '[object Object]') {
return false;
}
if (value.constructor &&
!Object.prototype.hasOwnProperty.call(value, 'constructor') &&
!Object.prototype.hasOwnProperty.call(value.constructor.prototype, 'hasOwnProperty')) {
return false;
}
for (var key in value) {
if (!Object.prototype.hasOwnProperty.call(value, key)) {
return false;
}
}
return true;
};
CoreUtility.trim = function (str) {
return str.replace(new RegExp('^\\s+|\\s+$', 'g'), '');
};
CoreUtility.caseInsensitiveCompareString = function (str1, str2) {
if (CoreUtility.isNullOrUndefined(str1)) {
return CoreUtility.isNullOrUndefined(str2);
}
else {
if (CoreUtility.isNullOrUndefined(str2)) {
return false;
}
else {
return str1.toUpperCase() == str2.toUpperCase();
}
}
};
CoreUtility.isReadonlyRestRequest = function (method) {
return CoreUtility.caseInsensitiveCompareString(method, 'GET');
};
CoreUtility._getResourceString = function (resourceId, arg) {
var ret;
if (typeof window !== 'undefined' && window.Strings && window.Strings.OfficeOM) {
var stringName = 'L_' + resourceId;
var stringValue = window.Strings.OfficeOM[stringName];
if (stringValue) {
ret = stringValue;
}
}
if (!ret) {
ret = CoreUtility.s_resourceStringValues[resourceId];
}
if (!ret) {
ret = resourceId;
}
if (!CoreUtility.isNullOrUndefined(arg)) {
if (Array.isArray(arg)) {
var arrArg = arg;
ret = CoreUtility._formatString(ret, arrArg);
}
else {
ret = ret.replace('{0}', arg);
}
}
return ret;
};
CoreUtility._formatString = function (format, arrArg) {
return format.replace(/\{\d\}/g, function (v) {
var position = parseInt(v.substr(1, v.length - 2));
if (position < arrArg.length) {
return arrArg[position];
}
else {
throw _Internal.RuntimeError._createInvalidArgError({ argumentName: 'format' });
}
});
};
Object.defineProperty(CoreUtility, "Promise", {
get: function () {
return _Internal.getPromiseType();
},
enumerable: true,
configurable: true
});
CoreUtility.createPromise = function (executor) {
var ret = new CoreUtility.Promise(executor);
return ret;
};
CoreUtility._createPromiseFromResult = function (value) {
return CoreUtility.createPromise(function (resolve, reject) {
resolve(value);
});
};
CoreUtility._createPromiseFromException = function (reason) {
return CoreUtility.createPromise(function (resolve, reject) {
reject(reason);
});
};
CoreUtility._createTimeoutPromise = function (timeout) {
return CoreUtility.createPromise(function (resolve, reject) {
setTimeout(function () {
resolve(null);
}, timeout);
});
};
CoreUtility._createInvalidArgError = function (error) {
return _Internal.RuntimeError._createInvalidArgError(error);
};
CoreUtility._isLocalDocumentUrl = function (url) {
return CoreUtility._getLocalDocumentUrlPrefixLength(url) > 0;
};
CoreUtility._getLocalDocumentUrlPrefixLength = function (url) {
var localDocumentPrefixes = [
'http://document.localhost',
'https://document.localhost',
'//document.localhost'
];
var urlLower = url.toLowerCase().trim();
for (var i = 0; i < localDocumentPrefixes.length; i++) {
if (urlLower === localDocumentPrefixes[i]) {
return localDocumentPrefixes[i].length;
}
else if (urlLower.substr(0, localDocumentPrefixes[i].length + 1) === localDocumentPrefixes[i] + '/') {
return localDocumentPrefixes[i].length + 1;
}
}
return 0;
};
CoreUtility._validateLocalDocumentRequest = function (request) {
var index = CoreUtility._getLocalDocumentUrlPrefixLength(request.url);
if (index <= 0) {
throw _Internal.RuntimeError._createInvalidArgError({
argumentName: 'request'
});
}
var path = request.url.substr(index);
var pathLower = path.toLowerCase();
if (pathLower === '_api') {
path = '';
}
else if (pathLower.substr(0, '_api/'.length) === '_api/') {
path = path.substr('_api/'.length);
}
return {
method: request.method,
url: path,
headers: request.headers,
body: request.body
};
};
CoreUtility._parseRequestFlagsAndCustomDataFromQueryStringIfAny = function (queryString) {
var ret = { flags: -1, customData: '' };
var parts = queryString.split('&');
for (var i = 0; i < parts.length; i++) {
var keyvalue = parts[i].split('=');
if (keyvalue[0].toLowerCase() === CoreConstants.flags) {
var flags = parseInt(keyvalue[1]);
flags = flags & 4095;
ret.flags = flags;
}
else if (keyvalue[0].toLowerCase() === CoreConstants.customData) {
ret.customData = decodeURIComponent(keyvalue[1]);
}
}
return ret;
};
CoreUtility._getRequestBodyText = function (request) {
var body = '';
if (typeof request.body === 'string') {
body = request.body;
}
else if (request.body && typeof request.body === 'object') {
body = JSON.stringify(request.body);
}
return body;
};
CoreUtility._parseResponseBody = function (response) {
if (typeof response.body === 'string') {
var bodyText = CoreUtility.trim(response.body);
return JSON.parse(bodyText);
}
else {
return response.body;
}
};
CoreUtility._buildRequestMessageSafeArray = function (request) {
var requestFlags = 0;
if (!CoreUtility.isReadonlyRestRequest(request.method)) {
requestFlags = 1;
}
var customData = '';
if (request.url.substr(0, CoreConstants.processQuery.length).toLowerCase() ===
CoreConstants.processQuery.toLowerCase()) {
var index = request.url.indexOf('?');
if (index > 0) {
var queryString = request.url.substr(index + 1);
var flagsAndCustomData = CoreUtility._parseRequestFlagsAndCustomDataFromQueryStringIfAny(queryString);
if (flagsAndCustomData.flags >= 0) {
requestFlags = flagsAndCustomData.flags;
}
customData = flagsAndCustomData.customData;
}
}
return RichApiMessageUtility.buildRequestMessageSafeArray(customData, requestFlags, request.method, request.url, request.headers, CoreUtility._getRequestBodyText(request));
};
CoreUtility._parseHttpResponseHeaders = function (allResponseHeaders) {
var responseHeaders = {};
if (!CoreUtility.isNullOrEmptyString(allResponseHeaders)) {
var regex = new RegExp('\r?\n');
var entries = allResponseHeaders.split(regex);
for (var i = 0; i < entries.length; i++) {
var entry = entries[i];
if (entry != null) {
var index = entry.indexOf(':');
if (index > 0) {
var key = entry.substr(0, index);
var value = entry.substr(index + 1);
key = CoreUtility.trim(key);
value = CoreUtility.trim(value);
responseHeaders[key.toUpperCase()] = value;
}
}
}
}
return responseHeaders;
};
CoreUtility._parseErrorResponse = function (responseInfo) {
var errorObj = null;
if (CoreUtility.isPlainJsonObject(responseInfo.body)) {
errorObj = responseInfo.body;
}
else if (!CoreUtility.isNullOrEmptyString(responseInfo.body)) {
var errorResponseBody = CoreUtility.trim(responseInfo.body);
try {
errorObj = JSON.parse(errorResponseBody);
}
catch (e) {
CoreUtility.log('Error when parse ' + errorResponseBody);
}
}
var statusCode = responseInfo.statusCode.toString();
if (CoreUtility.isNullOrUndefined(errorObj) || typeof errorObj !== 'object' || !errorObj.error) {
return CoreUtility._createDefaultErrorResponse(statusCode);
}
var error = errorObj.error;
var innerError = error.innerError;
if (innerError && innerError.code) {
return CoreUtility._createErrorResponse(innerError.code, statusCode, innerError.message);
}
if (error.code) {
return CoreUtility._createErrorResponse(error.code, statusCode, error.message);
}
return CoreUtility._createDefaultErrorResponse(statusCode);
};
CoreUtility._createDefaultErrorResponse = function (statusCode) {
return {
errorCode: CoreErrorCodes.connectionFailure,
errorMessage: CoreUtility._getResourceString(CoreResourceStrings.connectionFailureWithStatus, statusCode)
};
};
CoreUtility._createErrorResponse = function (code, statusCode, message) {
return {
errorCode: code,
errorMessage: CoreUtility._getResourceString(CoreResourceStrings.connectionFailureWithDetails, [
statusCode,
code,
message
])
};
};
CoreUtility._copyHeaders = function (src, dest) {
if (src && dest) {
for (var key in src) {
dest[key] = src[key];
}
}
};
CoreUtility.addResourceStringValues = function (values) {
for (var key in values) {
CoreUtility.s_resourceStringValues[key] = values[key];
}
};
CoreUtility._logEnabled = false;
CoreUtility.s_resourceStringValues = {
ApiNotFoundDetails: 'The method or property {0} is part of the {1} requirement set, which is not available in your version of {2}.',
ConnectionFailureWithStatus: 'The request failed with status code of {0}.',
ConnectionFailureWithDetails: 'The request failed with status code of {0}, error code {1} and the following error message: {2}',
InvalidArgument: "The argument '{0}' doesn't work for this situation, is missing, or isn't in the right format.",
InvalidObjectPath: 'The object path \'{0}\' isn\'t working for what you\'re trying to do. If you\'re using the object across multiple "context.sync" calls and outside the sequential execution of a ".run" batch, please use the "context.trackedObjects.add()" and "context.trackedObjects.remove()" methods to manage the object\'s lifetime.',
InvalidRequestContext: 'Cannot use the object across different request contexts.',
Timeout: 'The operation has timed out.',
ValueNotLoaded: 'The value of the result object has not been loaded yet. Before reading the value property, call "context.sync()" on the associated request context.'
};
return CoreUtility;
}());
OfficeExtension_1.CoreUtility = CoreUtility;
var TestUtility = (function () {
function TestUtility() {
}
TestUtility.setMock = function (value) {
TestUtility.s_isMock = value;
};
TestUtility.isMock = function () {
return TestUtility.s_isMock;
};
return TestUtility;
}());
OfficeExtension_1.TestUtility = TestUtility;
OfficeExtension_1._internalConfig = {
showDisposeInfoInDebugInfo: false,
showInternalApiInDebugInfo: false,
enableEarlyDispose: true,
alwaysPolyfillClientObjectUpdateMethod: false,
alwaysPolyfillClientObjectRetrieveMethod: false,
enableConcurrentFlag: true,
enableUndoableFlag: true,
appendTypeNameToObjectPathInfo: false
};
OfficeExtension_1.config = {
extendedErrorLogging: false
};
var CommonActionFactory = (function () {
function CommonActionFactory() {
}
CommonActionFactory.createSetPropertyAction = function (context, parent, propertyName, value, flags) {
CommonUtility.validateObjectPath(parent);
var actionInfo = {
Id: context._nextId(),
ActionType: 4,
Name: propertyName,
ObjectPathId: parent._objectPath.objectPathInfo.Id,
ArgumentInfo: {}
};
var args = [value];
var referencedArgumentObjectPaths = CommonUtility.setMethodArguments(context, actionInfo.ArgumentInfo, args);
CommonUtility.validateReferencedObjectPaths(referencedArgumentObjectPaths);
var action = new Action(actionInfo, 0, flags);
action.referencedObjectPath = parent._objectPath;
action.referencedArgumentObjectPaths = referencedArgumentObjectPaths;
return parent._addAction(action);
};
CommonActionFactory.createQueryAction = function (context, parent, queryOption, resultHandler) {
CommonUtility.validateObjectPath(parent);
var actionInfo = {
Id: context._nextId(),
ActionType: 2,
Name: '',
ObjectPathId: parent._objectPath.objectPathInfo.Id,
QueryInfo: queryOption
};
var action = new Action(actionInfo, 1, 4);
action.referencedObjectPath = parent._objectPath;
return parent._addAction(action, resultHandler);
};
CommonActionFactory.createQueryAsJsonAction = function (context, parent, queryOption, resultHandler) {
CommonUtility.validateObjectPath(parent);
var actionInfo = {
Id: context._nextId(),
ActionType: 7,
Name: '',
ObjectPathId: parent._objectPath.objectPathInfo.Id,
QueryInfo: queryOption
};
var action = new Action(actionInfo, 1, 4);
action.referencedObjectPath = parent._objectPath;
return parent._addAction(action, resultHandler);
};
CommonActionFactory.createUpdateAction = function (context, parent, objectState) {
CommonUtility.validateObjectPath(parent);
var actionInfo = {
Id: context._nextId(),
ActionType: 9,
Name: '',
ObjectPathId: parent._objectPath.objectPathInfo.Id,
ObjectState: objectState
};
var action = new Action(actionInfo, 0, 0);
action.referencedObjectPath = parent._objectPath;
return parent._addAction(action);
};
return CommonActionFactory;
}());
OfficeExtension_1.CommonActionFactory = CommonActionFactory;
var ClientObjectBase = (function () {
function ClientObjectBase(contextBase, objectPath) {
this.m_contextBase = contextBase;
this.m_objectPath = objectPath;
}
Object.defineProperty(ClientObjectBase.prototype, "_objectPath", {
get: function () {
return this.m_objectPath;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ClientObjectBase.prototype, "_context", {
get: function () {
return this.m_contextBase;
},
enumerable: true,
configurable: true
});
ClientObjectBase.prototype._addAction = function (action, resultHandler) {
var _this = this;
if (resultHandler === void 0) {
resultHandler = null;
}
return CoreUtility.createPromise(function (resolve, reject) {
_this._context._addServiceApiAction(action, resultHandler, resolve, reject);
});
};
ClientObjectBase.prototype._retrieve = function (option, resultHandler) {
var shouldPolyfill = OfficeExtension_1._internalConfig.alwaysPolyfillClientObjectRetrieveMethod;
if (!shouldPolyfill) {
shouldPolyfill = !CommonUtility.isSetSupported('RichApiRuntime', '1.1');
}
var queryOption = ClientRequestContextBase._parseQueryOption(option);
if (shouldPolyfill) {
return CommonActionFactory.createQueryAction(this._context, this, queryOption, resultHandler);
}
return CommonActionFactory.createQueryAsJsonAction(this._context, this, queryOption, resultHandler);
};
ClientObjectBase.prototype._recursivelyUpdate = function (properties) {
var shouldPolyfill = OfficeExtension_1._internalConfig.alwaysPolyfillClientObjectUpdateMethod;
if (!shouldPolyfill) {
shouldPolyfill = !CommonUtility.isSetSupported('RichApiRuntime', '1.2');
}
try {
var scalarPropNames = this[CommonConstants.scalarPropertyNames];
if (!scalarPropNames) {
scalarPropNames = [];
}
var scalarPropUpdatable = this[CommonConstants.scalarPropertyUpdateable];
if (!scalarPropUpdatable) {
scalarPropUpdatable = [];
for (var i = 0; i < scalarPropNames.length; i++) {
scalarPropUpdatable.push(false);
}
}
var navigationPropNames = this[CommonConstants.navigationPropertyNames];
if (!navigationPropNames) {
navigationPropNames = [];
}
var scalarProps = {};
var navigationProps = {};
var scalarPropCount = 0;
for (var propName in properties) {
var index = scalarPropNames.indexOf(propName);
if (index >= 0) {
if (!scalarPropUpdatable[index]) {
throw new _Internal.RuntimeError({
code: CoreErrorCodes.invalidArgument,
httpStatusCode: 400,
message: CoreUtility._getResourceString(CommonResourceStrings.attemptingToSetReadOnlyProperty, propName),
debugInfo: {
errorLocation: propName
}
});
}
scalarProps[propName] = properties[propName];
++scalarPropCount;
}
else if (navigationPropNames.indexOf(propName) >= 0) {
navigationProps[propName] = properties[propName];
}
else {
throw new _Internal.RuntimeError({
code: CoreErrorCodes.invalidArgument,
httpStatusCode: 400,
message: CoreUtility._getResourceString(CommonResourceStrings.propertyDoesNotExist, propName),
debugInfo: {
errorLocation: propName
}
});
}
}
if (scalarPropCount > 0) {
if (shouldPolyfill) {
for (var i = 0; i < scalarPropNames.length; i++) {
var propName = scalarPropNames[i];
var propValue = scalarProps[propName];
if (!CommonUtility.isUndefined(propValue)) {
CommonActionFactory.createSetPropertyAction(this._context, this, propName, propValue);
}
}
}
else {
CommonActionFactory.createUpdateAction(this._context, this, scalarProps);
}
}
for (var propName in navigationProps) {
var navigationPropProxy = this[propName];
var navigationPropValue = navigationProps[propName];
navigationPropProxy._recursivelyUpdate(navigationPropValue);
}
}
catch (innerError) {
throw new _Internal.RuntimeError({
code: CoreErrorCodes.invalidArgument,
httpStatusCode: 400,
message: CoreUtility._getResourceString(CoreResourceStrings.invalidArgument, 'properties'),
debugInfo: {
errorLocation: this._className + '.update'
},
innerError: innerError
});
}
};
return ClientObjectBase;
}());
OfficeExtension_1.ClientObjectBase = ClientObjectBase;
var Action = (function () {
function Action(actionInfo, operationType, flags) {
this.m_actionInfo = actionInfo;
this.m_operationType = operationType;
this.m_flags = flags;
}
Object.defineProperty(Action.prototype, "actionInfo", {
get: function () {
return this.m_actionInfo;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Action.prototype, "operationType", {
get: function () {
return this.m_operationType;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Action.prototype, "flags", {
get: function () {
return this.m_flags;
},
enumerable: true,
configurable: true
});
return Action;
}());
OfficeExtension_1.Action = Action;
var ObjectPath = (function () {
function ObjectPath(objectPathInfo, parentObjectPath, isCollection, isInvalidAfterRequest, operationType, flags) {
this.m_objectPathInfo = objectPathInfo;
this.m_parentObjectPath = parentObjectPath;
this.m_isCollection = isCollection;
this.m_isInvalidAfterRequest = isInvalidAfterRequest;
this.m_isValid = true;
this.m_operationType = operationType;
this.m_flags = flags;
}
Object.defineProperty(ObjectPath.prototype, "id", {
get: function () {
var argumentInfo = this.m_objectPathInfo.ArgumentInfo;
if (!argumentInfo) {
return undefined;
}
var argument = argumentInfo.Arguments;
if (!argument) {
return undefined;
}
return argument[0];
},
enumerable: true,
configurable: true
});
Object.defineProperty(ObjectPath.prototype, "parent", {
get: function () {
var parent = this.m_parentObjectPath;
if (!parent) {
return undefined;
}
return parent;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ObjectPath.prototype, "parentId", {
get: function () {
return this.parent ? this.parent.id : undefined;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ObjectPath.prototype, "objectPathInfo", {
get: function () {
return this.m_objectPathInfo;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ObjectPath.prototype, "operationType", {
get: function () {
return this.m_operationType;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ObjectPath.prototype, "flags", {
get: function () {
return this.m_flags;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ObjectPath.prototype, "isCollection", {
get: function () {
return this.m_isCollection;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ObjectPath.prototype, "isInvalidAfterRequest", {
get: function () {
return this.m_isInvalidAfterRequest;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ObjectPath.prototype, "parentObjectPath", {
get: function () {
return this.m_parentObjectPath;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ObjectPath.prototype, "argumentObjectPaths", {
get: function () {
return this.m_argumentObjectPaths;
},
set: function (value) {
this.m_argumentObjectPaths = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ObjectPath.prototype, "isValid", {
get: function () {
return this.m_isValid;
},
set: function (value) {
this.m_isValid = value;
if (!value &&
this.m_objectPathInfo.ObjectPathType === 6 &&
this.m_savedObjectPathInfo) {
ObjectPath.copyObjectPathInfo(this.m_savedObjectPathInfo.pathInfo, this.m_objectPathInfo);
this.m_parentObjectPath = this.m_savedObjectPathInfo.parent;
this.m_isValid = true;
this.m_savedObjectPathInfo = null;
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(ObjectPath.prototype, "originalObjectPathInfo", {
get: function () {
return this.m_originalObjectPathInfo;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ObjectPath.prototype, "getByIdMethodName", {
get: function () {
return this.m_getByIdMethodName;
},
set: function (value) {
this.m_getByIdMethodName = value;
},
enumerable: true,
configurable: true
});
ObjectPath.prototype._updateAsNullObject = function () {
this.resetForUpdateUsingObjectData();
this.m_objectPathInfo.ObjectPathType = 7;
this.m_objectPathInfo.Name = '';
this.m_parentObjectPath = null;
};
ObjectPath.prototype.saveOriginalObjectPathInfo = function () {
if (OfficeExtension_1.config.extendedErrorLogging && !this.m_originalObjectPathInfo) {
this.m_originalObjectPathInfo = {};
ObjectPath.copyObjectPathInfo(this.m_objectPathInfo, this.m_originalObjectPathInfo);
}
};
ObjectPath.prototype.updateUsingObjectData = function (value, clientObject) {
var referenceId = value[CommonConstants.referenceId];
if (!CoreUtility.isNullOrEmptyString(referenceId)) {
if (!this.m_savedObjectPathInfo &&
!this.isInvalidAfterRequest &&
ObjectPath.isRestorableObjectPath(this.m_objectPathInfo.ObjectPathType)) {
var pathInfo = {};
ObjectPath.copyObjectPathInfo(this.m_objectPathInfo, pathInfo);
this.m_savedObjectPathInfo = {
pathInfo: pathInfo,
parent: this.m_parentObjectPath
};
}
this.saveOriginalObjectPathInfo();
this.resetForUpdateUsingObjectData();
this.m_objectPathInfo.ObjectPathType = 6;
this.m_objectPathInfo.Name = referenceId;
delete this.m_objectPathInfo.ParentObjectPathId;
this.m_parentObjectPath = null;
return;
}
if (clientObject) {
var collectionPropertyPath = clientObject[CommonConstants.collectionPropertyPath];
if (!CoreUtility.isNullOrEmptyString(collectionPropertyPath) && clientObject.context) {
var id = CommonUtility.tryGetObjectIdFromLoadOrRetrieveResult(value);
if (!CoreUtility.isNullOrUndefined(id)) {
var propNames = collectionPropertyPath.split('.');
var parent_1 = clientObject.context[propNames[0]];
for (var i = 1; i < propNames.length; i++) {
parent_1 = parent_1[propNames[i]];
}
this.saveOriginalObjectPathInfo();
this.resetForUpdateUsingObjectData();
this.m_parentObjectPath = parent_1._objectPath;
this.m_objectPathInfo.ParentObjectPathId = this.m_parentObjectPath.objectPathInfo.Id;
this.m_objectPathInfo.ObjectPathType = 5;
this.m_objectPathInfo.Name = '';
this.m_objectPathInfo.ArgumentInfo.Arguments = [id];
return;
}
}
}
var parentIsCollection = this.parentObjectPath && this.parentObjectPath.isCollection;
var getByIdMethodName = this.getByIdMethodName;
if (parentIsCollection || !CoreUtility.isNullOrEmptyString(getByIdMethodName)) {
var id = CommonUtility.tryGetObjectIdFromLoadOrRetrieveResult(value);
if (!CoreUtility.isNullOrUndefined(id)) {
this.saveOriginalObjectPathInfo();
this.resetForUpdateUsingObjectData();
if (!CoreUtility.isNullOrEmptyString(getByIdMethodName)) {
this.m_objectPathInfo.ObjectPathType = 3;
this.m_objectPathInfo.Name = getByIdMethodName;
}
else {
this.m_objectPathInfo.ObjectPathType = 5;
this.m_objectPathInfo.Name = '';
}
this.m_objectPathInfo.ArgumentInfo.Arguments = [id];
return;
}
}
};
ObjectPath.prototype.resetForUpdateUsingObjectData = function () {
this.m_isInvalidAfterRequest = false;
this.m_isValid = true;
this.m_operationType = 1;
this.m_flags = 4;
this.m_objectPathInfo.ArgumentInfo = {};
this.m_argumentObjectPaths = null;
this.m_getByIdMethodName = null;
};
ObjectPath.isRestorableObjectPath = function (objectPathType) {
return (objectPathType === 1 ||
objectPathType === 5 ||
objectPathType === 3 ||
objectPathType === 4);
};
ObjectPath.copyObjectPathInfo = function (src, dest) {
dest.Id = src.Id;
dest.ArgumentInfo = src.ArgumentInfo;
dest.Name = src.Name;
dest.ObjectPathType = src.ObjectPathType;
dest.ParentObjectPathId = src.ParentObjectPathId;
};
return ObjectPath;
}());
OfficeExtension_1.ObjectPath = ObjectPath;
var ClientRequestContextBase = (function () {
function ClientRequestContextBase() {
this.m_nextId = 0;
}
ClientRequestContextBase.prototype._nextId = function () {
return ++this.m_nextId;
};
ClientRequestContextBase.prototype._addServiceApiAction = function (action, resultHandler, resolve, reject) {
if (!this.m_serviceApiQueue) {
this.m_serviceApiQueue = new ServiceApiQueue(this);
}
this.m_serviceApiQueue.add(action, resultHandler, resolve, reject);
};
ClientRequestContextBase._parseQueryOption = function (option) {
var queryOption = {};
if (typeof option === 'string') {
var select = option;
queryOption.Select = CommonUtility._parseSelectExpand(select);
}
else if (Array.isArray(option)) {
queryOption.Select = option;
}
else if (typeof option === 'object') {
var loadOption = option;
if (ClientRequestContextBase.isLoadOption(loadOption)) {
if (typeof loadOption.select === 'string') {
queryOption.Select = CommonUtility._parseSelectExpand(loadOption.select);
}
else if (Array.isArray(loadOption.select)) {
queryOption.Select = loadOption.select;
}
else if (!CommonUtility.isNullOrUndefined(loadOption.select)) {
throw _Internal.RuntimeError._createInvalidArgError({ argumentName: 'option.select' });
}
if (typeof loadOption.expand === 'string') {
queryOption.Expand = CommonUtility._parseSelectExpand(loadOption.expand);
}
else if (Array.isArray(loadOption.expand)) {
queryOption.Expand = loadOption.expand;
}
else if (!CommonUtility.isNullOrUndefined(loadOption.expand)) {
throw _Internal.RuntimeError._createInvalidArgError({ argumentName: 'option.expand' });
}
if (typeof loadOption.top === 'number') {
queryOption.Top = loadOption.top;
}
else if (!CommonUtility.isNullOrUndefined(loadOption.top)) {
throw _Internal.RuntimeError._createInvalidArgError({ argumentName: 'option.top' });
}
if (typeof loadOption.skip === 'number') {
queryOption.Skip = loadOption.skip;
}
else if (!CommonUtility.isNullOrUndefined(loadOption.skip)) {
throw _Internal.RuntimeError._createInvalidArgError({ argumentName: 'option.skip' });
}
}
else {
queryOption = ClientRequestContextBase.parseStrictLoadOption(option);
}
}
else if (!CommonUtility.isNullOrUndefined(option)) {
throw _Internal.RuntimeError._createInvalidArgError({ argumentName: 'option' });
}
return queryOption;
};
ClientRequestContextBase.isLoadOption = function (loadOption) {
if (!CommonUtility.isUndefined(loadOption.select) &&
(typeof loadOption.select === 'string' || Array.isArray(loadOption.select)))
return true;
if (!CommonUtility.isUndefined(loadOption.expand) &&
(typeof loadOption.expand === 'string' || Array.isArray(loadOption.expand)))
return true;
if (!CommonUtility.isUndefined(loadOption.top) && typeof loadOption.top === 'number')
return true;
if (!CommonUtility.isUndefined(loadOption.skip) && typeof loadOption.skip === 'number')
return true;
for (var i in loadOption) {
return false;
}
return true;
};
ClientRequestContextBase.parseStrictLoadOption = function (option) {
var ret = { Select: [] };
ClientRequestContextBase.parseStrictLoadOptionHelper(ret, '', 'option', option);
return ret;
};
ClientRequestContextBase.combineQueryPath = function (pathPrefix, key, separator) {
if (pathPrefix.length === 0) {
return key;
}
else {
return pathPrefix + separator + key;
}
};
ClientRequestContextBase.parseStrictLoadOptionHelper = function (queryInfo, pathPrefix, argPrefix, option) {
for (var key in option) {
var value = option[key];
if (key === '$all') {
if (typeof value !== 'boolean') {
throw _Internal.RuntimeError._createInvalidArgError({
argumentName: ClientRequestContextBase.combineQueryPath(argPrefix, key, '.')
});
}
if (value) {
queryInfo.Select.push(ClientRequestContextBase.combineQueryPath(pathPrefix, '*', '/'));
}
}
else if (key === '$top') {
if (typeof value !== 'number' || pathPrefix.length > 0) {
throw _Internal.RuntimeError._createInvalidArgError({
argumentName: ClientRequestContextBase.combineQueryPath(argPrefix, key, '.')
});
}
queryInfo.Top = value;
}
else if (key === '$skip') {
if (typeof value !== 'number' || pathPrefix.length > 0) {
throw _Internal.RuntimeError._createInvalidArgError({
argumentName: ClientRequestContextBase.combineQueryPath(argPrefix, key, '.')
});
}
queryInfo.Skip = value;
}
else {
if (typeof value === 'boolean') {
if (value) {
queryInfo.Select.push(ClientRequestContextBase.combineQueryPath(pathPrefix, key, '/'));
}
}
else if (typeof value === 'object') {
ClientRequestContextBase.parseStrictLoadOptionHelper(queryInfo, ClientRequestContextBase.combineQueryPath(pathPrefix, key, '/'), ClientRequestContextBase.combineQueryPath(argPrefix, key, '.'), value);
}
else {
throw _Internal.RuntimeError._createInvalidArgError({
argumentName: ClientRequestContextBase.combineQueryPath(argPrefix, key, '.')
});
}
}
}
};
return ClientRequestContextBase;
}());
OfficeExtension_1.ClientRequestContextBase = ClientRequestContextBase;
var InstantiateActionUpdateObjectPathHandler = (function () {
function InstantiateActionUpdateObjectPathHandler(m_objectPath) {
this.m_objectPath = m_objectPath;
}
InstantiateActionUpdateObjectPathHandler.prototype._handleResult = function (value) {
if (CoreUtility.isNullOrUndefined(value)) {
this.m_objectPath._updateAsNullObject();
}
else {
this.m_objectPath.updateUsingObjectData(value, null);
}
};
return InstantiateActionUpdateObjectPathHandler;
}());
var ClientRequestBase = (function () {
function ClientRequestBase(context) {
this.m_contextBase = context;
this.m_actions = [];
this.m_actionResultHandler = {};
this.m_referencedObjectPaths = {};
this.m_instantiatedObjectPaths = {};
this.m_preSyncPromises = [];
}
ClientRequestBase.prototype.addAction = function (action) {
this.m_actions.push(action);
if (action.actionInfo.ActionType == 1) {
this.m_instantiatedObjectPaths[action.actionInfo.ObjectPathId] = action;
}
};
Object.defineProperty(ClientRequestBase.prototype, "hasActions", {
get: function () {
return this.m_actions.length > 0;
},
enumerable: true,
configurable: true
});
ClientRequestBase.prototype._getLastAction = function () {
return this.m_actions[this.m_actions.length - 1];
};
ClientRequestBase.prototype.ensureInstantiateObjectPath = function (objectPath) {
if (objectPath) {
if (this.m_instantiatedObjectPaths[objectPath.objectPathInfo.Id]) {
return;
}
this.ensureInstantiateObjectPath(objectPath.parentObjectPath);
this.ensureInstantiateObjectPaths(objectPath.argumentObjectPaths);
if (!this.m_instantiatedObjectPaths[objectPath.objectPathInfo.Id]) {
var actionInfo = {
Id: this.m_contextBase._nextId(),
ActionType: 1,
Name: '',
ObjectPathId: objectPath.objectPathInfo.Id
};
var instantiateAction = new Action(actionInfo, 1, 4);
instantiateAction.referencedObjectPath = objectPath;
this.addReferencedObjectPath(objectPath);
this.addAction(instantiateAction);
var resultHandler = new InstantiateActionUpdateObjectPathHandler(objectPath);
this.addActionResultHandler(instantiateAction, resultHandler);
}
}
};
ClientRequestBase.prototype.ensureInstantiateObjectPaths = function (objectPaths) {
if (objectPaths) {
for (var i = 0; i < objectPaths.length; i++) {
this.ensureInstantiateObjectPath(objectPaths[i]);
}
}
};
ClientRequestBase.prototype.addReferencedObjectPath = function (objectPath) {
if (!objectPath || this.m_referencedObjectPaths[objectPath.objectPathInfo.Id]) {
return;
}
if (!objectPath.isValid) {
throw new _Internal.RuntimeError({
code: CoreErrorCodes.invalidObjectPath,
httpStatusCode: 400,
message: CoreUtility._getResourceString(CoreResourceStrings.invalidObjectPath, CommonUtility.getObjectPathExpression(objectPath)),
debugInfo: {
errorLocation: CommonUtility.getObjectPathExpression(objectPath)
}
});
}
while (objectPath) {
this.m_referencedObjectPaths[objectPath.objectPathInfo.Id] = objectPath;
if (objectPath.objectPathInfo.ObjectPathType == 3) {
this.addReferencedObjectPaths(objectPath.argumentObjectPaths);
}
objectPath = objectPath.parentObjectPath;
}
};
ClientRequestBase.prototype.addReferencedObjectPaths = function (objectPaths) {
if (objectPaths) {
for (var i = 0; i < objectPaths.length; i++) {
this.addReferencedObjectPath(objectPaths[i]);
}
}
};
ClientRequestBase.prototype.addActionResultHandler = function (action, resultHandler) {
this.m_actionResultHandler[action.actionInfo.Id] = resultHandler;
};
ClientRequestBase.prototype.aggregrateRequestFlags = function (requestFlags, operationType, flags) {
if (operationType === 0) {
requestFlags = requestFlags | 1;
if ((flags & 2) === 0) {
requestFlags = requestFlags & ~16;
}
if ((flags & 8) === 0) {
requestFlags = requestFlags & ~256;
}
requestFlags = requestFlags & ~4;
}
if (flags & 1) {
requestFlags = requestFlags | 2;
}
if ((flags & 4) === 0) {
requestFlags = requestFlags & ~4;
}
return requestFlags;
};
ClientRequestBase.prototype.finallyNormalizeFlags = function (requestFlags) {
if ((requestFlags & 1) === 0) {
requestFlags = requestFlags & ~16;
requestFlags = requestFlags & ~256;
}
if (!OfficeExtension_1._internalConfig.enableConcurrentFlag) {
requestFlags = requestFlags & ~4;
}
if (!OfficeExtension_1._internalConfig.enableUndoableFlag) {
requestFlags = requestFlags & ~16;
}
if (!CommonUtility.isSetSupported('RichApiRuntimeFlag', '1.1')) {
requestFlags = requestFlags & ~4;
requestFlags = requestFlags & ~16;
}
if (!CommonUtility.isSetSupported('RichApiRuntimeFlag', '1.2')) {
requestFlags = requestFlags & ~256;
}
if (typeof this.m_flagsForTesting === 'number') {
requestFlags = this.m_flagsForTesting;
}
return requestFlags;
};
ClientRequestBase.prototype.buildRequestMessageBodyAndRequestFlags = function () {
if (OfficeExtension_1._internalConfig.enableEarlyDispose) {
ClientRequestBase._calculateLastUsedObjectPathIds(this.m_actions);
}
var requestFlags = 4 |
16 |
256;
var objectPaths = {};
for (var i in this.m_referencedObjectPaths) {
requestFlags = this.aggregrateRequestFlags(requestFlags, this.m_referencedObjectPaths[i].operationType, this.m_referencedObjectPaths[i].flags);
objectPaths[i] = this.m_referencedObjectPaths[i].objectPathInfo;
}
var actions = [];
var hasKeepReference = false;
for (var index = 0; index < this.m_actions.length; index++) {
var action = this.m_actions[index];
if (action.actionInfo.ActionType === 3 &&
action.actionInfo.Name === CommonConstants.keepReference) {
hasKeepReference = true;
}
requestFlags = this.aggregrateRequestFlags(requestFlags, action.operationType, action.flags);
actions.push(action.actionInfo);
}
requestFlags = this.finallyNormalizeFlags(requestFlags);
var body = {
AutoKeepReference: this.m_contextBase._autoCleanup && hasKeepReference,
Actions: actions,
ObjectPaths: objectPaths
};
return {
body: body,
flags: requestFlags
};
};
ClientRequestBase.prototype.processResponse = function (actionResults) {
if (actionResults) {
for (var i = 0; i < actionResults.length; i++) {
var actionResult = actionResults[i];
var handler = this.m_actionResultHandler[actionResult.ActionId];
if (handler) {
handler._handleResult(actionResult.Value);
}
}
}
};
ClientRequestBase.prototype.invalidatePendingInvalidObjectPaths = function () {
for (var i in this.m_referencedObjectPaths) {
if (this.m_referencedObjectPaths[i].isInvalidAfterRequest) {
this.m_referencedObjectPaths[i].isValid = false;
}
}
};
ClientRequestBase.prototype._addPreSyncPromise = function (value) {
this.m_preSyncPromises.push(value);
};
Object.defineProperty(ClientRequestBase.prototype, "_preSyncPromises", {
get: function () {
return this.m_preSyncPromises;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ClientRequestBase.prototype, "_actions", {
get: function () {
return this.m_actions;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ClientRequestBase.prototype, "_objectPaths", {
get: function () {
return this.m_referencedObjectPaths;
},
enumerable: true,
configurable: true
});
ClientRequestBase.prototype._removeKeepReferenceAction = function (objectPathId) {
for (var i = this.m_actions.length - 1; i >= 0; i--) {
var actionInfo = this.m_actions[i].actionInfo;
if (actionInfo.ObjectPathId === objectPathId &&
actionInfo.ActionType === 3 &&
actionInfo.Name === CommonConstants.keepReference) {
this.m_actions.splice(i, 1);
break;
}
}
};
ClientRequestBase._updateLastUsedActionIdOfObjectPathId = function (lastUsedActionIdOfObjectPathId, objectPath, actionId) {
while (objectPath) {
if (lastUsedActionIdOfObjectPathId[objectPath.objectPathInfo.Id]) {
return;
}
lastUsedActionIdOfObjectPathId[objectPath.objectPathInfo.Id] = actionId;
var argumentObjectPaths = objectPath.argumentObjectPaths;
if (argumentObjectPaths) {
var argumentObjectPathsLength = argumentObjectPaths.length;
for (var i = 0; i < argumentObjectPathsLength; i++) {
ClientRequestBase._updateLastUsedActionIdOfObjectPathId(lastUsedActionIdOfObjectPathId, argumentObjectPaths[i], actionId);
}
}
objectPath = objectPath.parentObjectPath;
}
};
ClientRequestBase._calculateLastUsedObjectPathIds = function (actions) {
var lastUsedActionIdOfObjectPathId = {};
var actionsLength = actions.length;
for (var index = actionsLength - 1; index >= 0; --index) {
var action = actions[index];
var actionId = action.actionInfo.Id;
if (action.referencedObjectPath) {
ClientRequestBase._updateLastUsedActionIdOfObjectPathId(lastUsedActionIdOfObjectPathId, action.referencedObjectPath, actionId);
}
var referencedObjectPaths = action.referencedArgumentObjectPaths;
if (referencedObjectPaths) {
var referencedObjectPathsLength = referencedObjectPaths.length;
for (var refIndex = 0; refIndex < referencedObjectPathsLength; refIndex++) {
ClientRequestBase._updateLastUsedActionIdOfObjectPathId(lastUsedActionIdOfObjectPathId, referencedObjectPaths[refIndex], actionId);
}
}
}
var lastUsedObjectPathIdsOfAction = {};
for (var key in lastUsedActionIdOfObjectPathId) {
var actionId = lastUsedActionIdOfObjectPathId[key];
var objectPathIds = lastUsedObjectPathIdsOfAction[actionId];
if (!objectPathIds) {
objectPathIds = [];
lastUsedObjectPathIdsOfAction[actionId] = objectPathIds;
}
objectPathIds.push(parseInt(key));
}
for (var index = 0; index < actionsLength; index++) {
var action = actions[index];
var lastUsedObjectPathIds = lastUsedObjectPathIdsOfAction[action.actionInfo.Id];
if (lastUsedObjectPathIds && lastUsedObjectPathIds.length > 0) {
action.actionInfo.L = lastUsedObjectPathIds;
}
else if (action.actionInfo.L) {
delete action.actionInfo.L;
}
}
};
return ClientRequestBase;
}());
OfficeExtension_1.ClientRequestBase = ClientRequestBase;
var ClientResult = (function () {
function ClientResult(m_type) {
this.m_type = m_type;
}
Object.defineProperty(ClientResult.prototype, "value", {
get: function () {
if (!this.m_isLoaded) {
throw new _Internal.RuntimeError({
code: CoreErrorCodes.valueNotLoaded,
httpStatusCode: 400,
message: CoreUtility._getResourceString(CoreResourceStrings.valueNotLoaded),
debugInfo: {
errorLocation: 'clientResult.value'
}
});
}
return this.m_value;
},
enumerable: true,
configurable: true
});
ClientResult.prototype._handleResult = function (value) {
this.m_isLoaded = true;
if (typeof value === 'object' && value && value._IsNull) {
return;
}
if (this.m_type === 1) {
this.m_value = CommonUtility.adjustToDateTime(value);
}
else {
this.m_value = value;
}
};
return ClientResult;
}());
OfficeExtension_1.ClientResult = ClientResult;
var ServiceApiQueue = (function () {
function ServiceApiQueue(m_context) {
this.m_context = m_context;
this.m_actions = [];
}
ServiceApiQueue.prototype.add = function (action, resultHandler, resolve, reject) {
var _this = this;
this.m_actions.push({ action: action, resultHandler: resultHandler, resolve: resolve, reject: reject });
if (this.m_actions.length === 1) {
setTimeout(function () { return _this.processActions(); }, 0);
}
};
ServiceApiQueue.prototype.processActions = function () {
var _this = this;
if (this.m_actions.length === 0) {
return;
}
var actions = this.m_actions;
this.m_actions = [];
var request = new ClientRequestBase(this.m_context);
for (var i = 0; i < actions.length; i++) {
var action = actions[i];
request.ensureInstantiateObjectPath(action.action.referencedObjectPath);
request.ensureInstantiateObjectPaths(action.action.referencedArgumentObjectPaths);
request.addAction(action.action);
request.addReferencedObjectPath(action.action.referencedObjectPath);
request.addReferencedObjectPaths(action.action.referencedArgumentObjectPaths);
}
var _a = request.buildRequestMessageBodyAndRequestFlags(), body = _a.body, flags = _a.flags;
var requestMessage = {
Url: CoreConstants.localDocumentApiPrefix,
Headers: null,
Body: body
};
CoreUtility.log('Request:');
CoreUtility.log(JSON.stringify(body));
var executor = new HttpRequestExecutor();
executor
.executeAsync(this.m_context._customData, flags, requestMessage)
.then(function (response) {
_this.processResponse(request, actions, response);
})["catch"](function (ex) {
for (var i = 0; i < actions.length; i++) {
var action = actions[i];
action.reject(ex);
}
});
};
ServiceApiQueue.prototype.processResponse = function (request, actions, response) {
var error = this.getErrorFromResponse(response);
var actionResults = null;
if (response.Body.Results) {
actionResults = response.Body.Results;
}
else if (response.Body.ProcessedResults && response.Body.ProcessedResults.Results) {
actionResults = response.Body.ProcessedResults.Results;
}
if (!actionResults) {
actionResults = [];
}
this.processActionResults(request, actions, actionResults, error);
};
ServiceApiQueue.prototype.getErrorFromResponse = function (response) {
if (!CoreUtility.isNullOrEmptyString(response.ErrorCode)) {
return new _Internal.RuntimeError({
code: response.ErrorCode,
httpStatusCode: response.HttpStatusCode,
message: response.ErrorMessage
});
}
if (response.Body && response.Body.Error) {
return new _Internal.RuntimeError({
code: response.Body.Error.Code,
httpStatusCode: response.Body.Error.HttpStatusCode,
message: response.Body.Error.Message
});
}
return null;
};
ServiceApiQueue.prototype.processActionResults = function (request, actions, actionResults, err) {
request.processResponse(actionResults);
for (var i = 0; i < actions.length; i++) {
var action = actions[i];
var actionId = action.action.actionInfo.Id;
var hasResult = false;
for (var j = 0; j < actionResults.length; j++) {
if (actionId == actionResults[j].ActionId) {
var resultValue = actionResults[j].Value;
if (action.resultHandler) {
action.resultHandler._handleResult(resultValue);
resultValue = action.resultHandler.value;
}
if (action.resolve) {
action.resolve(resultValue);
}
hasResult = true;
break;
}
}
if (!hasResult && action.reject) {
if (err) {
action.reject(err);
}
else {
action.reject('No response for the action.');
}
}
}
};
return ServiceApiQueue;
}());
var HttpRequestExecutor = (function () {
function HttpRequestExecutor() {
}
HttpRequestExecutor.prototype.getRequestUrl = function (baseUrl, requestFlags) {
if (baseUrl.charAt(baseUrl.length - 1) != '/') {
baseUrl = baseUrl + '/';
}
baseUrl = baseUrl + CoreConstants.processQuery;
baseUrl = baseUrl + '?' + CoreConstants.flags + '=' + requestFlags.toString();
return baseUrl;
};
HttpRequestExecutor.prototype.executeAsync = function (customData, requestFlags, requestMessage) {
var url = this.getRequestUrl(requestMessage.Url, requestFlags);
var requestInfo = {
method: 'POST',
url: url,
headers: {},
body: requestMessage.Body
};
requestInfo.headers[CoreConstants.sourceLibHeader] = HttpRequestExecutor.SourceLibHeaderValue;
requestInfo.headers['CONTENT-TYPE'] = 'application/json';
if (requestMessage.Headers) {
for (var key in requestMessage.Headers) {
requestInfo.headers[key] = requestMessage.Headers[key];
}
}
var sendRequestFunc = CoreUtility._isLocalDocumentUrl(requestInfo.url)
? HttpUtility.sendLocalDocumentRequest
: HttpUtility.sendRequest;
return sendRequestFunc(requestInfo).then(function (responseInfo) {
var response;
if (responseInfo.statusCode === 200) {
response = {
HttpStatusCode: responseInfo.statusCode,
ErrorCode: null,
ErrorMessage: null,
Headers: responseInfo.headers,
Body: CoreUtility._parseResponseBody(responseInfo)
};
}
else {
CoreUtility.log('Error Response:' + responseInfo.body);
var error = CoreUtility._parseErrorResponse(responseInfo);
response = {
HttpStatusCode: responseInfo.statusCode,
ErrorCode: error.errorCode,
ErrorMessage: error.errorMessage,
Headers: responseInfo.headers,
Body: null
};
}
return response;
});
};
HttpRequestExecutor.SourceLibHeaderValue = 'officejs-rest';
return HttpRequestExecutor;
}());
OfficeExtension_1.HttpRequestExecutor = HttpRequestExecutor;
var CommonConstants = (function (_super) {
__extends(CommonConstants, _super);
function CommonConstants() {
return _super !== null && _super.apply(this, arguments) || this;
}
CommonConstants.collectionPropertyPath = '_collectionPropertyPath';
CommonConstants.id = 'Id';
CommonConstants.idLowerCase = 'id';
CommonConstants.idPrivate = '_Id';
CommonConstants.keepReference = '_KeepReference';
CommonConstants.objectPathIdPrivate = '_ObjectPathId';
CommonConstants.referenceId = '_ReferenceId';
CommonConstants.items = '_Items';
CommonConstants.itemsLowerCase = 'items';
CommonConstants.scalarPropertyNames = '_scalarPropertyNames';
CommonConstants.scalarPropertyOriginalNames = '_scalarPropertyOriginalNames';
CommonConstants.navigationPropertyNames = '_navigationPropertyNames';
CommonConstants.scalarPropertyUpdateable = '_scalarPropertyUpdateable';
return CommonConstants;
}(CoreConstants));
OfficeExtension_1.CommonConstants = CommonConstants;
var CommonUtility = (function (_super) {
__extends(CommonUtility, _super);
function CommonUtility() {
return _super !== null && _super.apply(this, arguments) || this;
}
CommonUtility.validateObjectPath = function (clientObject) {
var objectPath = clientObject._objectPath;
while (objectPath) {
if (!objectPath.isValid) {
throw new _Internal.RuntimeError({
code: CoreErrorCodes.invalidObjectPath,
httpStatusCode: 400,
message: CoreUtility._getResourceString(CoreResourceStrings.invalidObjectPath, CommonUtility.getObjectPathExpression(objectPath)),
debugInfo: {
errorLocation: CommonUtility.getObjectPathExpression(objectPath)
}
});
}
objectPath = objectPath.parentObjectPath;
}
};
CommonUtility.validateReferencedObjectPaths = function (objectPaths) {
if (objectPaths) {
for (var i = 0; i < objectPaths.length; i++) {
var objectPath = objectPaths[i];
while (objectPath) {
if (!objectPath.isValid) {
throw new _Internal.RuntimeError({
code: CoreErrorCodes.invalidObjectPath,
httpStatusCode: 400,
message: CoreUtility._getResourceString(CoreResourceStrings.invalidObjectPath, CommonUtility.getObjectPathExpression(objectPath))
});
}
objectPath = objectPath.parentObjectPath;
}
}
}
};
CommonUtility._toCamelLowerCase = function (name) {
if (CoreUtility.isNullOrEmptyString(name)) {
return name;
}
var index = 0;
while (index < name.length && name.charCodeAt(index) >= 65 && name.charCodeAt(index) <= 90) {
index++;
}
if (index < name.length) {
return name.substr(0, index).toLowerCase() + name.substr(index);
}
else {
return name.toLowerCase();
}
};
CommonUtility.adjustToDateTime = function (value) {
if (CoreUtility.isNullOrUndefined(value)) {
return null;
}
if (typeof value === 'string') {
return new Date(value);
}
if (Array.isArray(value)) {
var arr = value;
for (var i = 0; i < arr.length; i++) {
arr[i] = CommonUtility.adjustToDateTime(arr[i]);
}
return arr;
}
throw CoreUtility._createInvalidArgError({ argumentName: 'date' });
};
CommonUtility.tryGetObjectIdFromLoadOrRetrieveResult = function (value) {
var id = value[CommonConstants.id];
if (CoreUtility.isNullOrUndefined(id)) {
id = value[CommonConstants.idLowerCase];
}
if (CoreUtility.isNullOrUndefined(id)) {
id = value[CommonConstants.idPrivate];
}
return id;
};
CommonUtility.getObjectPathExpression = function (objectPath) {
var ret = '';
while (objectPath) {
switch (objectPath.objectPathInfo.ObjectPathType) {
case 1:
ret = ret;
break;
case 2:
ret = 'new()' + (ret.length > 0 ? '.' : '') + ret;
break;
case 3:
ret = CommonUtility.normalizeName(objectPath.objectPathInfo.Name) + '()' + (ret.length > 0 ? '.' : '') + ret;
break;
case 4:
ret = CommonUtility.normalizeName(objectPath.objectPathInfo.Name) + (ret.length > 0 ? '.' : '') + ret;
break;
case 5:
ret = 'getItem()' + (ret.length > 0 ? '.' : '') + ret;
break;
case 6:
ret = '_reference()' + (ret.length > 0 ? '.' : '') + ret;
break;
}
objectPath = objectPath.parentObjectPath;
}
return ret;
};
CommonUtility.setMethodArguments = function (context, argumentInfo, args) {
if (CoreUtility.isNullOrUndefined(args)) {
return null;
}
var referencedObjectPaths = new Array();
var referencedObjectPathIds = new Array();
var hasOne = CommonUtility.collectObjectPathInfos(context, args, referencedObjectPaths, referencedObjectPathIds);
argumentInfo.Arguments = args;
if (hasOne) {
argumentInfo.ReferencedObjectPathIds = referencedObjectPathIds;
}
return referencedObjectPaths;
};
CommonUtility.validateContext = function (context, obj) {
if (context && obj && obj._context !== context) {
throw new _Internal.RuntimeError({
code: CoreErrorCodes.invalidRequestContext,
httpStatusCode: 400,
message: CoreUtility._getResourceString(CoreResourceStrings.invalidRequestContext)
});
}
};
CommonUtility.isSetSupported = function (apiSetName, apiSetVersion) {
if (typeof window !== 'undefined' &&
window.Office &&
window.Office.context &&
window.Office.context.requirements) {
return window.Office.context.requirements.isSetSupported(apiSetName, apiSetVersion);
}
return true;
};
CommonUtility.throwIfApiNotSupported = function (apiFullName, apiSetName, apiSetVersion, hostName) {
if (!CommonUtility._doApiNotSupportedCheck) {
return;
}
if (!CommonUtility.isSetSupported(apiSetName, apiSetVersion)) {
var message = CoreUtility._getResourceString(CoreResourceStrings.apiNotFoundDetails, [
apiFullName,
apiSetName + ' ' + apiSetVersion,
hostName
]);
throw new _Internal.RuntimeError({
code: CoreErrorCodes.apiNotFound,
httpStatusCode: 404,
message: message,
debugInfo: { errorLocation: apiFullName }
});
}
};
CommonUtility.calculateApiFlags = function (apiFlags, undoableApiSetName, undoableApiSetVersion) {
if (!CommonUtility.isSetSupported(undoableApiSetName, undoableApiSetVersion)) {
apiFlags = apiFlags & (~2);
}
return apiFlags;
};
CommonUtility._parseSelectExpand = function (select) {
var args = [];
if (!CoreUtility.isNullOrEmptyString(select)) {
var propertyNames = select.split(',');
for (var i = 0; i < propertyNames.length; i++) {
var propertyName = propertyNames[i];
propertyName = sanitizeForAnyItemsSlash(propertyName.trim());
if (propertyName.length > 0) {
args.push(propertyName);
}
}
}
return args;
function sanitizeForAnyItemsSlash(propertyName) {
var propertyNameLower = propertyName.toLowerCase();
if (propertyNameLower === 'items' || propertyNameLower === 'items/') {
return '*';
}
var itemsSlashLength = 6;
var isItemsSlashOrItemsDot = propertyNameLower.substr(0, itemsSlashLength) === 'items/' ||
propertyNameLower.substr(0, itemsSlashLength) === 'items.';
if (isItemsSlashOrItemsDot) {
propertyName = propertyName.substr(itemsSlashLength);
}
return propertyName.replace(new RegExp('[/.]items[/.]', 'gi'), '/');
}
};
CommonUtility.changePropertyNameToCamelLowerCase = function (value) {
var charCodeUnderscore = 95;
if (Array.isArray(value)) {
var ret = [];
for (var i = 0; i < value.length; i++) {
ret.push(this.changePropertyNameToCamelLowerCase(value[i]));
}
return ret;
}
else if (typeof value === 'object' && value !== null) {
var ret = {};
for (var key in value) {
var propValue = value[key];
if (key === CommonConstants.items) {
ret = {};
ret[CommonConstants.itemsLowerCase] = this.changePropertyNameToCamelLowerCase(propValue);
break;
}
else {
var propName = CommonUtility._toCamelLowerCase(key);
ret[propName] = this.changePropertyNameToCamelLowerCase(propValue);
}
}
return ret;
}
else {
return value;
}
};
CommonUtility.purifyJson = function (value) {
var charCodeUnderscore = 95;
if (Array.isArray(value)) {
var ret = [];
for (var i = 0; i < value.length; i++) {
ret.push(this.purifyJson(value[i]));
}
return ret;
}
else if (typeof value === 'object' && value !== null) {
var ret = {};
for (var key in value) {
if (key.charCodeAt(0) !== charCodeUnderscore) {
var propValue = value[key];
if (typeof propValue === 'object' && propValue !== null && Array.isArray(propValue['items'])) {
propValue = propValue['items'];
}
ret[key] = this.purifyJson(propValue);
}
}
return ret;
}
else {
return value;
}
};
CommonUtility.collectObjectPathInfos = function (context, args, referencedObjectPaths, referencedObjectPathIds) {
var hasOne = false;
for (var i = 0; i < args.length; i++) {
if (args[i] instanceof ClientObjectBase) {
var clientObject = args[i];
CommonUtility.validateContext(context, clientObject);
args[i] = clientObject._objectPath.objectPathInfo.Id;
referencedObjectPathIds.push(clientObject._objectPath.objectPathInfo.Id);
referencedObjectPaths.push(clientObject._objectPath);
hasOne = true;
}
else if (Array.isArray(args[i])) {
var childArrayObjectPathIds = new Array();
var childArrayHasOne = CommonUtility.collectObjectPathInfos(context, args[i], referencedObjectPaths, childArrayObjectPathIds);
if (childArrayHasOne) {
referencedObjectPathIds.push(childArrayObjectPathIds);
hasOne = true;
}
else {
referencedObjectPathIds.push(0);
}
}
else if (CoreUtility.isPlainJsonObject(args[i])) {
referencedObjectPathIds.push(0);
CommonUtility.replaceClientObjectPropertiesWithObjectPathIds(args[i], referencedObjectPaths);
}
else {
referencedObjectPathIds.push(0);
}
}
return hasOne;
};
CommonUtility.replaceClientObjectPropertiesWithObjectPathIds = function (value, referencedObjectPaths) {
var _a, _b;
for (var key in value) {
var propValue = value[key];
if (propValue instanceof ClientObjectBase) {
referencedObjectPaths.push(propValue._objectPath);
value[key] = (_a = {}, _a[CommonConstants.objectPathIdPrivate] = propValue._objectPath.objectPathInfo.Id, _a);
}
else if (Array.isArray(propValue)) {
for (var i = 0; i < propValue.length; i++) {
if (propValue[i] instanceof ClientObjectBase) {
var elem = propValue[i];
referencedObjectPaths.push(elem._objectPath);
propValue[i] = (_b = {}, _b[CommonConstants.objectPathIdPrivate] = elem._objectPath.objectPathInfo.Id, _b);
}
else if (CoreUtility.isPlainJsonObject(propValue[i])) {
CommonUtility.replaceClientObjectPropertiesWithObjectPathIds(propValue[i], referencedObjectPaths);
}
}
}
else if (CoreUtility.isPlainJsonObject(propValue)) {
CommonUtility.replaceClientObjectPropertiesWithObjectPathIds(propValue, referencedObjectPaths);
}
else {
}
}
};
CommonUtility.normalizeName = function (name) {
return name.substr(0, 1).toLowerCase() + name.substr(1);
};
CommonUtility._doApiNotSupportedCheck = false;
return CommonUtility;
}(CoreUtility));
OfficeExtension_1.CommonUtility = CommonUtility;
var CommonResourceStrings = (function (_super) {
__extends(CommonResourceStrings, _super);
function CommonResourceStrings() {
return _super !== null && _super.apply(this, arguments) || this;
}
CommonResourceStrings.propertyDoesNotExist = 'PropertyDoesNotExist';
CommonResourceStrings.attemptingToSetReadOnlyProperty = 'AttemptingToSetReadOnlyProperty';
return CommonResourceStrings;
}(CoreResourceStrings));
OfficeExtension_1.CommonResourceStrings = CommonResourceStrings;
var ClientRetrieveResult = (function (_super) {
__extends(ClientRetrieveResult, _super);
function ClientRetrieveResult(m_shouldPolyfill) {
var _this = _super.call(this) || this;
_this.m_shouldPolyfill = m_shouldPolyfill;
return _this;
}
ClientRetrieveResult.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (this.m_shouldPolyfill) {
this.m_value = CommonUtility.changePropertyNameToCamelLowerCase(this.m_value);
}
this.m_value = this.removeItemNodes(this.m_value);
};
ClientRetrieveResult.prototype.removeItemNodes = function (value) {
if (typeof value === 'object' && value !== null && value[CommonConstants.itemsLowerCase]) {
value = value[CommonConstants.itemsLowerCase];
}
return CommonUtility.purifyJson(value);
};
return ClientRetrieveResult;
}(ClientResult));
OfficeExtension_1.ClientRetrieveResult = ClientRetrieveResult;
var TraceActionResultHandler = (function () {
function TraceActionResultHandler(callback) {
this.callback = callback;
}
TraceActionResultHandler.prototype._handleResult = function (value) {
if (this.callback) {
this.callback();
}
};
return TraceActionResultHandler;
}());
var ClientResultCallback = (function (_super) {
__extends(ClientResultCallback, _super);
function ClientResultCallback(callback) {
var _this = _super.call(this) || this;
_this.callback = callback;
return _this;
}
ClientResultCallback.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
this.callback();
};
return ClientResultCallback;
}(ClientResult));
OfficeExtension_1.ClientResultCallback = ClientResultCallback;
var OperationalApiHelper = (function () {
function OperationalApiHelper() {
}
OperationalApiHelper.invokeMethod = function (obj, methodName, operationType, args, flags, resultProcessType) {
if (operationType === void 0) {
operationType = 0;
}
if (args === void 0) {
args = [];
}
if (flags === void 0) {
flags = 0;
}
if (resultProcessType === void 0) {
resultProcessType = 0;
}
return CoreUtility.createPromise(function (resolve, reject) {
var result = new ClientResult();
var actionInfo = {
Id: obj._context._nextId(),
ActionType: 3,
Name: methodName,
ObjectPathId: obj._objectPath.objectPathInfo.Id,
ArgumentInfo: {}
};
var referencedArgumentObjectPaths = CommonUtility.setMethodArguments(obj._context, actionInfo.ArgumentInfo, args);
var action = new Action(actionInfo, operationType, flags);
action.referencedObjectPath = obj._objectPath;
action.referencedArgumentObjectPaths = referencedArgumentObjectPaths;
obj._context._addServiceApiAction(action, result, resolve, reject);
});
};
OperationalApiHelper.invokeMethodWithClientResultCallback = function (callback, obj, methodName) {
var operationType = 0;
var args = [];
var flags = 0;
return CoreUtility.createPromise(function (resolve, reject) {
var result = new ClientResultCallback(callback);
var actionInfo = {
Id: obj._context._nextId(),
ActionType: 3,
Name: methodName,
ObjectPathId: obj._objectPath.objectPathInfo.Id,
ArgumentInfo: {}
};
var referencedArgumentObjectPaths = CommonUtility.setMethodArguments(obj._context, actionInfo.ArgumentInfo, args);
var action = new Action(actionInfo, operationType, flags);
action.referencedObjectPath = obj._objectPath;
action.referencedArgumentObjectPaths = referencedArgumentObjectPaths;
obj._context._addServiceApiAction(action, result, resolve, reject);
});
};
OperationalApiHelper.invokeRetrieve = function (obj, select) {
var shouldPolyfill = OfficeExtension_1._internalConfig.alwaysPolyfillClientObjectRetrieveMethod;
if (!shouldPolyfill) {
shouldPolyfill = !CommonUtility.isSetSupported('RichApiRuntime', '1.1');
}
var option;
if (typeof select[0] === 'object' && select[0].hasOwnProperty('$all')) {
if (!select[0]['$all']) {
throw OfficeExtension_1.Error._createInvalidArgError({});
}
option = select[0];
}
else {
option = OperationalApiHelper._parseSelectOption(select);
}
return obj._retrieve(option, new ClientRetrieveResult(shouldPolyfill));
};
OperationalApiHelper._parseSelectOption = function (select) {
if (!select || !select[0]) {
throw OfficeExtension_1.Error._createInvalidArgError({});
}
var parsedSelect = select[0] && typeof select[0] !== 'string' ? select[0] : select;
return Array.isArray(parsedSelect) ? parsedSelect : OperationalApiHelper.parseRecursiveSelect(parsedSelect);
};
OperationalApiHelper.parseRecursiveSelect = function (select) {
var deconstruct = function (selectObj) {
return Object.keys(selectObj).reduce(function (scalars, name) {
var value = selectObj[name];
if (typeof value === 'object') {
return scalars.concat(deconstruct(value).map(function (postfix) { return name + "/" + postfix; }));
}
if (value) {
return scalars.concat(name);
}
return scalars;
}, []);
};
return deconstruct(select);
};
OperationalApiHelper.invokeRecursiveUpdate = function (obj, properties) {
return CoreUtility.createPromise(function (resolve, reject) {
obj._recursivelyUpdate(properties);
var actionInfo = {
Id: obj._context._nextId(),
ActionType: 5,
Name: 'Trace',
ObjectPathId: 0
};
var action = new Action(actionInfo, 1, 4);
obj._context._addServiceApiAction(action, null, resolve, reject);
});
};
OperationalApiHelper.createRootServiceObject = function (type, context) {
var objectPathInfo = {
Id: context._nextId(),
ObjectPathType: 1,
Name: ''
};
var objectPath = new ObjectPath(objectPathInfo, null, false, false, 1, 4);
return new type(context, objectPath);
};
OperationalApiHelper.createTopLevelServiceObject = function (type, context, typeName, isCollection, flags) {
var objectPathInfo = {
Id: context._nextId(),
ObjectPathType: 2,
Name: typeName
};
var objectPath = new ObjectPath(objectPathInfo, null, isCollection, false, 1, flags | 4);
return new type(context, objectPath);
};
OperationalApiHelper.createPropertyObject = function (type, parent, propertyName, isCollection, flags) {
var objectPathInfo = {
Id: parent._context._nextId(),
ObjectPathType: 4,
Name: propertyName,
ParentObjectPathId: parent._objectPath.objectPathInfo.Id
};
var objectPath = new ObjectPath(objectPathInfo, parent._objectPath, isCollection, false, 1, flags | 4);
return new type(parent._context, objectPath);
};
OperationalApiHelper.createIndexerObject = function (type, parent, args) {
var objectPathInfo = {
Id: parent._context._nextId(),
ObjectPathType: 5,
Name: '',
ParentObjectPathId: parent._objectPath.objectPathInfo.Id,
ArgumentInfo: {}
};
objectPathInfo.ArgumentInfo.Arguments = args;
var objectPath = new ObjectPath(objectPathInfo, parent._objectPath, false, false, 1, 4);
return new type(parent._context, objectPath);
};
OperationalApiHelper.createMethodObject = function (type, parent, methodName, operationType, args, isCollection, isInvalidAfterRequest, getByIdMethodName, flags) {
var id = parent._context._nextId();
var objectPathInfo = {
Id: id,
ObjectPathType: 3,
Name: methodName,
ParentObjectPathId: parent._objectPath.objectPathInfo.Id,
ArgumentInfo: {}
};
var argumentObjectPaths = CommonUtility.setMethodArguments(parent._context, objectPathInfo.ArgumentInfo, args);
var objectPath = new ObjectPath(objectPathInfo, parent._objectPath, isCollection, isInvalidAfterRequest, operationType, flags);
objectPath.argumentObjectPaths = argumentObjectPaths;
objectPath.getByIdMethodName = getByIdMethodName;
var o = new type(parent._context, objectPath);
return o;
};
OperationalApiHelper.createAndInstantiateMethodObject = function (type, parent, methodName, operationType, args, isCollection, isInvalidAfterRequest, getByIdMethodName, flags) {
return CoreUtility.createPromise(function (resolve, reject) {
var objectPathInfo = {
Id: parent._context._nextId(),
ObjectPathType: 3,
Name: methodName,
ParentObjectPathId: parent._objectPath.objectPathInfo.Id,
ArgumentInfo: {}
};
var argumentObjectPaths = CommonUtility.setMethodArguments(parent._context, objectPathInfo.ArgumentInfo, args);
var objectPath = new ObjectPath(objectPathInfo, parent._objectPath, isCollection, isInvalidAfterRequest, operationType, flags);
objectPath.argumentObjectPaths = argumentObjectPaths;
objectPath.getByIdMethodName = getByIdMethodName;
var result = new ClientResult();
var actionInfo = {
Id: parent._context._nextId(),
ActionType: 1,
Name: '',
ObjectPathId: objectPath.objectPathInfo.Id,
QueryInfo: {}
};
var action = new Action(actionInfo, 1, 4);
action.referencedObjectPath = objectPath;
parent._context._addServiceApiAction(action, result, function () { return resolve(new type(parent._context, objectPath)); }, reject);
});
};
OperationalApiHelper.createTraceAction = function (context, callback) {
return CoreUtility.createPromise(function (resolve, reject) {
var actionInfo = {
Id: context._nextId(),
ActionType: 5,
Name: 'Trace',
ObjectPathId: 0
};
var action = new Action(actionInfo, 1, 4);
var result = new TraceActionResultHandler(callback);
context._addServiceApiAction(action, result, resolve, reject);
});
};
OperationalApiHelper.localDocumentContext = new ClientRequestContextBase();
return OperationalApiHelper;
}());
OfficeExtension_1.OperationalApiHelper = OperationalApiHelper;
var GenericEventRegistryOperational = (function () {
function GenericEventRegistryOperational(eventId, targetId, eventArgumentTransform) {
this.eventId = eventId;
this.targetId = targetId;
this.eventArgumentTransform = eventArgumentTransform;
this.registeredCallbacks = [];
}
GenericEventRegistryOperational.prototype.add = function (callback) {
if (this.hasZero()) {
GenericEventRegistration.getGenericEventRegistration().register(this.eventId, this.targetId, this.registerCallback);
}
this.registeredCallbacks.push(callback);
};
GenericEventRegistryOperational.prototype.remove = function (callback) {
var index = this.registeredCallbacks.lastIndexOf(callback);
if (index !== -1) {
this.registeredCallbacks.splice(index, 1);
}
};
GenericEventRegistryOperational.prototype.removeAll = function () {
this.registeredCallbacks = [];
GenericEventRegistration.getGenericEventRegistration().unregister(this.eventId, this.targetId, this.registerCallback);
};
GenericEventRegistryOperational.prototype.hasZero = function () {
return this.registeredCallbacks.length === 0;
};
Object.defineProperty(GenericEventRegistryOperational.prototype, "registerCallback", {
get: function () {
var i = this;
if (!this.outsideCallback) {
this.outsideCallback = function (argument) {
i.call(argument);
};
}
return this.outsideCallback;
},
enumerable: true,
configurable: true
});
GenericEventRegistryOperational.prototype.call = function (rawEventArguments) {
var _this = this;
this.eventArgumentTransform(rawEventArguments).then(function (eventArguments) {
var promises = _this.registeredCallbacks.map(function (callback) { return GenericEventRegistryOperational.callCallback(callback, eventArguments); });
CoreUtility.Promise.all(promises);
});
};
GenericEventRegistryOperational.callCallback = function (callback, eventArguments) {
return CoreUtility._createPromiseFromResult(null)
.then(GenericEventRegistryOperational.wrapCallbackInFunction(callback, eventArguments))["catch"](function (e) {
CoreUtility.log('Error when invoke handler: ' + JSON.stringify(e));
});
};
GenericEventRegistryOperational.wrapCallbackInFunction = function (callback, args) {
return function () { return callback(args); };
};
return GenericEventRegistryOperational;
}());
OfficeExtension_1.GenericEventRegistryOperational = GenericEventRegistryOperational;
var GlobalEventRegistryOperational = (function () {
function GlobalEventRegistryOperational() {
this.eventToTargetToHandlerMap = {};
}
Object.defineProperty(GlobalEventRegistryOperational, "globalEventRegistry", {
get: function () {
if (!GlobalEventRegistryOperational.singleton) {
GlobalEventRegistryOperational.singleton = new GlobalEventRegistryOperational();
}
return GlobalEventRegistryOperational.singleton;
},
enumerable: true,
configurable: true
});
GlobalEventRegistryOperational.getGlobalEventRegistry = function (eventId, targetId, eventArgumentTransform) {
var global = GlobalEventRegistryOperational.globalEventRegistry;
var mapGlobal = global.eventToTargetToHandlerMap;
if (!mapGlobal.hasOwnProperty(eventId)) {
mapGlobal[eventId] = {};
}
var mapEvent = mapGlobal[eventId];
if (!mapEvent.hasOwnProperty(targetId)) {
mapEvent[targetId] = new GenericEventRegistryOperational(eventId, targetId, eventArgumentTransform);
}
var target = mapEvent[targetId];
return target;
};
GlobalEventRegistryOperational.singleton = undefined;
return GlobalEventRegistryOperational;
}());
OfficeExtension_1.GlobalEventRegistryOperational = GlobalEventRegistryOperational;
var GenericEventHandlerOperational = (function () {
function GenericEventHandlerOperational(genericEventInfo) {
this.genericEventInfo = genericEventInfo;
}
GenericEventHandlerOperational.prototype.add = function (callback) {
var _this = this;
var eventRegistered = undefined;
var promise = CoreUtility.createPromise(function (resolve) {
eventRegistered = resolve;
});
var addCallback = function () {
var eventId = _this.genericEventInfo.eventType;
var targetId = _this.genericEventInfo.getTargetIdFunc();
var event = GlobalEventRegistryOperational.getGlobalEventRegistry(eventId, targetId, _this.genericEventInfo.eventArgsTransformFunc);
event.add(callback);
eventRegistered();
};
this.register();
this.createTrace(addCallback);
return promise;
};
GenericEventHandlerOperational.prototype.remove = function (callback) {
var _this = this;
var removeCallback = function () {
var eventId = _this.genericEventInfo.eventType;
var targetId = _this.genericEventInfo.getTargetIdFunc();
var event = GlobalEventRegistryOperational.getGlobalEventRegistry(eventId, targetId, _this.genericEventInfo.eventArgsTransformFunc);
event.remove(callback);
};
this.register();
this.createTrace(removeCallback);
};
GenericEventHandlerOperational.prototype.removeAll = function () {
var _this = this;
var removeAllCallback = function () {
var eventId = _this.genericEventInfo.eventType;
var targetId = _this.genericEventInfo.getTargetIdFunc();
var event = GlobalEventRegistryOperational.getGlobalEventRegistry(eventId, targetId, _this.genericEventInfo.eventArgsTransformFunc);
event.removeAll();
};
this.unregister();
this.createTrace(removeAllCallback);
};
GenericEventHandlerOperational.prototype.createTrace = function (callback) {
OperationalApiHelper.createTraceAction(this.genericEventInfo.object._context, callback);
};
GenericEventHandlerOperational.prototype.register = function () {
var operationType = 0;
var args = [];
var flags = 0;
OperationalApiHelper.invokeMethod(this.genericEventInfo.object, this.genericEventInfo.register, operationType, args, flags);
if (!GenericEventRegistration.getGenericEventRegistration().isReady) {
GenericEventRegistration.getGenericEventRegistration().ready();
}
};
GenericEventHandlerOperational.prototype.unregister = function () {
OperationalApiHelper.invokeMethod(this.genericEventInfo.object, this.genericEventInfo.unregister);
};
return GenericEventHandlerOperational;
}());
OfficeExtension_1.GenericEventHandlerOperational = GenericEventHandlerOperational;
var EventHelper = (function () {
function EventHelper() {
}
EventHelper.invokeOn = function (eventHandler, callback, options) {
var promiseResolve = undefined;
var promise = CoreUtility.createPromise(function (resolve, reject) {
promiseResolve = resolve;
});
eventHandler.add(callback).then(function () {
promiseResolve({});
});
return promise;
};
EventHelper.invokeOff = function (genericEventHandlersOpObj, eventHandler, eventName, callback) {
if (!eventName && !callback) {
var allGenericEventHandlersOp = Object.keys(genericEventHandlersOpObj).map(function (eventName) { return genericEventHandlersOpObj[eventName]; });
return EventHelper.invokeAllOff(allGenericEventHandlersOp);
}
if (!eventName) {
return CoreUtility._createPromiseFromException(eventName + " must be supplied if handler is supplied.");
}
if (callback) {
eventHandler.remove(callback);
}
else {
eventHandler.removeAll();
}
return CoreUtility.createPromise(function (resolve, reject) { return resolve(); });
};
EventHelper.invokeAllOff = function (allGenericEventHandlersOperational) {
allGenericEventHandlersOperational.forEach(function (genericEventHandlerOperational) {
genericEventHandlerOperational.removeAll();
});
return CoreUtility.createPromise(function (resolve, reject) { return resolve(); });
};
return EventHelper;
}());
OfficeExtension_1.EventHelper = EventHelper;
var ErrorCodes = (function (_super) {
__extends(ErrorCodes, _super);
function ErrorCodes() {
return _super !== null && _super.apply(this, arguments) || this;
}
ErrorCodes.propertyNotLoaded = 'PropertyNotLoaded';
ErrorCodes.runMustReturnPromise = 'RunMustReturnPromise';
ErrorCodes.cannotRegisterEvent = 'CannotRegisterEvent';
ErrorCodes.invalidOrTimedOutSession = 'InvalidOrTimedOutSession';
ErrorCodes.cannotUpdateReadOnlyProperty = 'CannotUpdateReadOnlyProperty';
return ErrorCodes;
}(CoreErrorCodes));
OfficeExtension_1.ErrorCodes = ErrorCodes;
var TraceMarkerActionResultHandler = (function () {
function TraceMarkerActionResultHandler(callback) {
this.m_callback = callback;
}
TraceMarkerActionResultHandler.prototype._handleResult = function (value) {
if (this.m_callback) {
this.m_callback();
}
};
return TraceMarkerActionResultHandler;
}());
var ActionFactory = (function (_super) {
__extends(ActionFactory, _super);
function ActionFactory() {
return _super !== null && _super.apply(this, arguments) || this;
}
ActionFactory.createMethodAction = function (context, parent, methodName, operationType, args, flags) {
Utility.validateObjectPath(parent);
var actionInfo = {
Id: context._nextId(),
ActionType: 3,
Name: methodName,
ObjectPathId: parent._objectPath.objectPathInfo.Id,
ArgumentInfo: {}
};
var referencedArgumentObjectPaths = Utility.setMethodArguments(context, actionInfo.ArgumentInfo, args);
Utility.validateReferencedObjectPaths(referencedArgumentObjectPaths);
var action = new Action(actionInfo, operationType, Utility._fixupApiFlags(flags));
action.referencedObjectPath = parent._objectPath;
action.referencedArgumentObjectPaths = referencedArgumentObjectPaths;
parent._addAction(action);
return action;
};
ActionFactory.createRecursiveQueryAction = function (context, parent, query) {
Utility.validateObjectPath(parent);
var actionInfo = {
Id: context._nextId(),
ActionType: 6,
Name: '',
ObjectPathId: parent._objectPath.objectPathInfo.Id,
RecursiveQueryInfo: query
};
var action = new Action(actionInfo, 1, 4);
action.referencedObjectPath = parent._objectPath;
parent._addAction(action);
return action;
};
ActionFactory.createEnsureUnchangedAction = function (context, parent, objectState) {
Utility.validateObjectPath(parent);
var actionInfo = {
Id: context._nextId(),
ActionType: 8,
Name: '',
ObjectPathId: parent._objectPath.objectPathInfo.Id,
ObjectState: objectState
};
var action = new Action(actionInfo, 1, 4);
action.referencedObjectPath = parent._objectPath;
parent._addAction(action);
return action;
};
ActionFactory.createInstantiateAction = function (context, obj) {
Utility.validateObjectPath(obj);
context._pendingRequest.ensureInstantiateObjectPath(obj._objectPath.parentObjectPath);
context._pendingRequest.ensureInstantiateObjectPaths(obj._objectPath.argumentObjectPaths);
var actionInfo = {
Id: context._nextId(),
ActionType: 1,
Name: '',
ObjectPathId: obj._objectPath.objectPathInfo.Id
};
var action = new Action(actionInfo, 1, 4);
action.referencedObjectPath = obj._objectPath;
obj._addAction(action, new InstantiateActionResultHandler(obj), true);
return action;
};
ActionFactory.createTraceAction = function (context, message, addTraceMessage) {
var actionInfo = {
Id: context._nextId(),
ActionType: 5,
Name: 'Trace',
ObjectPathId: 0
};
var ret = new Action(actionInfo, 1, 4);
context._pendingRequest.addAction(ret);
if (addTraceMessage) {
context._pendingRequest.addTrace(actionInfo.Id, message);
}
return ret;
};
ActionFactory.createTraceMarkerForCallback = function (context, callback) {
var action = ActionFactory.createTraceAction(context, null, false);
context._pendingRequest.addActionResultHandler(action, new TraceMarkerActionResultHandler(callback));
};
return ActionFactory;
}(CommonActionFactory));
OfficeExtension_1.ActionFactory = ActionFactory;
var ClientObject = (function (_super) {
__extends(ClientObject, _super);
function ClientObject(context, objectPath) {
var _this = _super.call(this, context, objectPath) || this;
Utility.checkArgumentNull(context, 'context');
_this.m_context = context;
if (_this._objectPath) {
if (!context._processingResult && context._pendingRequest) {
ActionFactory.createInstantiateAction(context, _this);
if (context._autoCleanup && _this._KeepReference) {
context.trackedObjects._autoAdd(_this);
}
}
if (OfficeExtension_1._internalConfig.appendTypeNameToObjectPathInfo && _this._objectPath.objectPathInfo && _this._className) {
_this._objectPath.objectPathInfo.T = _this._className;
}
}
return _this;
}
Object.defineProperty(ClientObject.prototype, "context", {
get: function () {
return this.m_context;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ClientObject.prototype, "isNull", {
get: function () {
if (typeof (this.m_isNull) === 'undefined' && TestUtility.isMock()) {
return false;
}
Utility.throwIfNotLoaded('isNull', this._isNull, null, this._isNull);
return this._isNull;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ClientObject.prototype, "isNullObject", {
get: function () {
if (typeof (this.m_isNull) === 'undefined' && TestUtility.isMock()) {
return false;
}
Utility.throwIfNotLoaded('isNullObject', this._isNull, null, this._isNull);
return this._isNull;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ClientObject.prototype, "_isNull", {
get: function () {
return this.m_isNull;
},
set: function (value) {
this.m_isNull = value;
if (value && this._objectPath) {
this._objectPath._updateAsNullObject();
}
},
enumerable: true,
configurable: true
});
ClientObject.prototype._addAction = function (action, resultHandler, isInstantiationEnsured) {
if (resultHandler === void 0) {
resultHandler = null;
}
if (!isInstantiationEnsured) {
this.context._pendingRequest.ensureInstantiateObjectPath(this._objectPath);
this.context._pendingRequest.ensureInstantiateObjectPaths(action.referencedArgumentObjectPaths);
}
this.context._pendingRequest.addAction(action);
this.context._pendingRequest.addReferencedObjectPath(this._objectPath);
this.context._pendingRequest.addReferencedObjectPaths(action.referencedArgumentObjectPaths);
this.context._pendingRequest.addActionResultHandler(action, resultHandler);
return CoreUtility._createPromiseFromResult(null);
};
ClientObject.prototype._handleResult = function (value) {
this._isNull = Utility.isNullOrUndefined(value);
this.context.trackedObjects._autoTrackIfNecessaryWhenHandleObjectResultValue(this, value);
};
ClientObject.prototype._handleIdResult = function (value) {
this._isNull = Utility.isNullOrUndefined(value);
Utility.fixObjectPathIfNecessary(this, value);
this.context.trackedObjects._autoTrackIfNecessaryWhenHandleObjectResultValue(this, value);
};
ClientObject.prototype._handleRetrieveResult = function (value, result) {
this._handleIdResult(value);
};
ClientObject.prototype._recursivelySet = function (input, options, scalarWriteablePropertyNames, objectPropertyNames, notAllowedToBeSetPropertyNames) {
var isClientObject = input instanceof ClientObject;
var originalInput = input;
if (isClientObject) {
if (Object.getPrototypeOf(this) === Object.getPrototypeOf(input)) {
input = JSON.parse(JSON.stringify(input));
}
else {
throw _Internal.RuntimeError._createInvalidArgError({
argumentName: 'properties',
errorLocation: this._className + '.set'
});
}
}
try {
var prop;
for (var i = 0; i < scalarWriteablePropertyNames.length; i++) {
prop = scalarWriteablePropertyNames[i];
if (input.hasOwnProperty(prop)) {
if (typeof input[prop] !== 'undefined') {
this[prop] = input[prop];
}
}
}
for (var i = 0; i < objectPropertyNames.length; i++) {
prop = objectPropertyNames[i];
if (input.hasOwnProperty(prop)) {
if (typeof input[prop] !== 'undefined') {
var dataToPassToSet = isClientObject ? originalInput[prop] : input[prop];
this[prop].set(dataToPassToSet, options);
}
}
}
var throwOnReadOnly = !isClientObject;
if (options && !Utility.isNullOrUndefined(throwOnReadOnly)) {
throwOnReadOnly = options.throwOnReadOnly;
}
for (var i = 0; i < notAllowedToBeSetPropertyNames.length; i++) {
prop = notAllowedToBeSetPropertyNames[i];
if (input.hasOwnProperty(prop)) {
if (typeof input[prop] !== 'undefined' && throwOnReadOnly) {
throw new _Internal.RuntimeError({
code: CoreErrorCodes.invalidArgument,
httpStatusCode: 400,
message: CoreUtility._getResourceString(ResourceStrings.cannotApplyPropertyThroughSetMethod, prop),
debugInfo: {
errorLocation: prop
}
});
}
}
}
for (prop in input) {
if (scalarWriteablePropertyNames.indexOf(prop) < 0 && objectPropertyNames.indexOf(prop) < 0) {
var propertyDescriptor = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(this), prop);
if (!propertyDescriptor) {
throw new _Internal.RuntimeError({
code: CoreErrorCodes.invalidArgument,
httpStatusCode: 400,
message: CoreUtility._getResourceString(CommonResourceStrings.propertyDoesNotExist, prop),
debugInfo: {
errorLocation: prop
}
});
}
if (throwOnReadOnly && !propertyDescriptor.set) {
throw new _Internal.RuntimeError({
code: CoreErrorCodes.invalidArgument,
httpStatusCode: 400,
message: CoreUtility._getResourceString(CommonResourceStrings.attemptingToSetReadOnlyProperty, prop),
debugInfo: {
errorLocation: prop
}
});
}
}
}
}
catch (innerError) {
throw new _Internal.RuntimeError({
code: CoreErrorCodes.invalidArgument,
httpStatusCode: 400,
message: CoreUtility._getResourceString(CoreResourceStrings.invalidArgument, 'properties'),
debugInfo: {
errorLocation: this._className + '.set'
},
innerError: innerError
});
}
};
return ClientObject;
}(ClientObjectBase));
OfficeExtension_1.ClientObject = ClientObject;
var HostBridgeRequestExecutor = (function () {
function HostBridgeRequestExecutor(session) {
this.m_session = session;
}
HostBridgeRequestExecutor.prototype.executeAsync = function (customData, requestFlags, requestMessage) {
var httpRequestInfo = {
url: CoreConstants.processQuery,
method: 'POST',
headers: requestMessage.Headers,
body: requestMessage.Body
};
var message = {
id: HostBridge.nextId(),
type: 1,
flags: requestFlags,
message: httpRequestInfo
};
CoreUtility.log(JSON.stringify(message));
return this.m_session.sendMessageToHost(message).then(function (nativeBridgeResponse) {
CoreUtility.log('Received response: ' + JSON.stringify(nativeBridgeResponse));
var responseInfo = nativeBridgeResponse.message;
var response;
if (responseInfo.statusCode === 200) {
response = {
HttpStatusCode: responseInfo.statusCode,
ErrorCode: null,
ErrorMessage: null,
Headers: responseInfo.headers,
Body: CoreUtility._parseResponseBody(responseInfo)
};
}
else {
CoreUtility.log('Error Response:' + responseInfo.body);
var error = CoreUtility._parseErrorResponse(responseInfo);
response = {
HttpStatusCode: responseInfo.statusCode,
ErrorCode: error.errorCode,
ErrorMessage: error.errorMessage,
Headers: responseInfo.headers,
Body: null
};
}
return response;
});
};
return HostBridgeRequestExecutor;
}());
var HostBridgeSession = (function (_super) {
__extends(HostBridgeSession, _super);
function HostBridgeSession(m_bridge) {
var _this = _super.call(this) || this;
_this.m_bridge = m_bridge;
_this.m_bridge.addHostMessageHandler(function (message) {
if (message.type === 3) {
GenericEventRegistration.getGenericEventRegistration()._handleRichApiMessage(message.message);
}
});
return _this;
}
HostBridgeSession.getInstanceIfHostBridgeInited = function () {
if (HostBridge.instance) {
if (CoreUtility.isNullOrUndefined(HostBridgeSession.s_instance) ||
HostBridgeSession.s_instance.m_bridge !== HostBridge.instance) {
HostBridgeSession.s_instance = new HostBridgeSession(HostBridge.instance);
}
return HostBridgeSession.s_instance;
}
return null;
};
HostBridgeSession.prototype._resolveRequestUrlAndHeaderInfo = function () {
return CoreUtility._createPromiseFromResult(null);
};
HostBridgeSession.prototype._createRequestExecutorOrNull = function () {
CoreUtility.log('NativeBridgeSession::CreateRequestExecutor');
return new HostBridgeRequestExecutor(this);
};
Object.defineProperty(HostBridgeSession.prototype, "eventRegistration", {
get: function () {
return GenericEventRegistration.getGenericEventRegistration();
},
enumerable: true,
configurable: true
});
HostBridgeSession.prototype.sendMessageToHost = function (message) {
return this.m_bridge.sendMessageToHostAndExpectResponse(message);
};
return HostBridgeSession;
}(SessionBase));
OfficeExtension_1.HostBridgeSession = HostBridgeSession;
var ClientRequestContext = (function (_super) {
__extends(ClientRequestContext, _super);
function ClientRequestContext(url) {
var _this = _super.call(this) || this;
_this.m_customRequestHeaders = {};
_this.m_batchMode = 0;
_this._onRunFinishedNotifiers = [];
if (SessionBase._overrideSession) {
_this.m_requestUrlAndHeaderInfoResolver = SessionBase._overrideSession;
}
else {
if (Utility.isNullOrUndefined(url) || (typeof url === 'string' && url.length === 0)) {
url = ClientRequestContext.defaultRequestUrlAndHeaders;
if (!url) {
url = { url: CoreConstants.localDocument, headers: {} };
}
}
if (typeof url === 'string') {
_this.m_requestUrlAndHeaderInfo = { url: url, headers: {} };
}
else if (ClientRequestContext.isRequestUrlAndHeaderInfoResolver(url)) {
_this.m_requestUrlAndHeaderInfoResolver = url;
}
else if (ClientRequestContext.isRequestUrlAndHeaderInfo(url)) {
var requestInfo = url;
_this.m_requestUrlAndHeaderInfo = { url: requestInfo.url, headers: {} };
CoreUtility._copyHeaders(requestInfo.headers, _this.m_requestUrlAndHeaderInfo.headers);
}
else {
throw _Internal.RuntimeError._createInvalidArgError({ argumentName: 'url' });
}
}
if (!_this.m_requestUrlAndHeaderInfoResolver &&
_this.m_requestUrlAndHeaderInfo &&
CoreUtility._isLocalDocumentUrl(_this.m_requestUrlAndHeaderInfo.url) &&
HostBridgeSession.getInstanceIfHostBridgeInited()) {
_this.m_requestUrlAndHeaderInfo = null;
_this.m_requestUrlAndHeaderInfoResolver = HostBridgeSession.getInstanceIfHostBridgeInited();
}
if (_this.m_requestUrlAndHeaderInfoResolver instanceof SessionBase) {
_this.m_session = _this.m_requestUrlAndHeaderInfoResolver;
}
_this._processingResult = false;
_this._customData = Constants.iterativeExecutor;
_this.sync = _this.sync.bind(_this);
return _this;
}
Object.defineProperty(ClientRequestContext.prototype, "session", {
get: function () {
return this.m_session;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ClientRequestContext.prototype, "eventRegistration", {
get: function () {
if (this.m_session) {
return this.m_session.eventRegistration;
}
return _Internal.officeJsEventRegistration;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ClientRequestContext.prototype, "_url", {
get: function () {
if (this.m_requestUrlAndHeaderInfo) {
return this.m_requestUrlAndHeaderInfo.url;
}
return null;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ClientRequestContext.prototype, "_pendingRequest", {
get: function () {
if (this.m_pendingRequest == null) {
this.m_pendingRequest = new ClientRequest(this);
}
return this.m_pendingRequest;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ClientRequestContext.prototype, "debugInfo", {
get: function () {
var prettyPrinter = new RequestPrettyPrinter(this._rootObjectPropertyName, this._pendingRequest._objectPaths, this._pendingRequest._actions, OfficeExtension_1._internalConfig.showDisposeInfoInDebugInfo);
var statements = prettyPrinter.process();
return { pendingStatements: statements };
},
enumerable: true,
configurable: true
});
Object.defineProperty(ClientRequestContext.prototype, "trackedObjects", {
get: function () {
if (!this.m_trackedObjects) {
this.m_trackedObjects = new TrackedObjects(this);
}
return this.m_trackedObjects;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ClientRequestContext.prototype, "requestHeaders", {
get: function () {
return this.m_customRequestHeaders;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ClientRequestContext.prototype, "batchMode", {
get: function () {
return this.m_batchMode;
},
enumerable: true,
configurable: true
});
ClientRequestContext.prototype.ensureInProgressBatchIfBatchMode = function () {
if (this.m_batchMode === 1 && !this.m_explicitBatchInProgress) {
throw Utility.createRuntimeError(CoreErrorCodes.generalException, CoreUtility._getResourceString(ResourceStrings.notInsideBatch), null);
}
};
ClientRequestContext.prototype.load = function (clientObj, option) {
Utility.validateContext(this, clientObj);
var queryOption = ClientRequestContext._parseQueryOption(option);
CommonActionFactory.createQueryAction(this, clientObj, queryOption, clientObj);
};
ClientRequestContext.prototype.loadRecursive = function (clientObj, options, maxDepth) {
if (!Utility.isPlainJsonObject(options)) {
throw _Internal.RuntimeError._createInvalidArgError({ argumentName: 'options' });
}
var quries = {};
for (var key in options) {
quries[key] = ClientRequestContext._parseQueryOption(options[key]);
}
var action = ActionFactory.createRecursiveQueryAction(this, clientObj, { Queries: quries, MaxDepth: maxDepth });
this._pendingRequest.addActionResultHandler(action, clientObj);
};
ClientRequestContext.prototype.trace = function (message) {
ActionFactory.createTraceAction(this, message, true);
};
ClientRequestContext.prototype._processOfficeJsErrorResponse = function (officeJsErrorCode, response) { };
ClientRequestContext.prototype.ensureRequestUrlAndHeaderInfo = function () {
var _this = this;
return Utility._createPromiseFromResult(null).then(function () {
if (!_this.m_requestUrlAndHeaderInfo) {
return _this.m_requestUrlAndHeaderInfoResolver._resolveRequestUrlAndHeaderInfo().then(function (value) {
_this.m_requestUrlAndHeaderInfo = value;
if (!_this.m_requestUrlAndHeaderInfo) {
_this.m_requestUrlAndHeaderInfo = { url: CoreConstants.localDocument, headers: {} };
}
if (Utility.isNullOrEmptyString(_this.m_requestUrlAndHeaderInfo.url)) {
_this.m_requestUrlAndHeaderInfo.url = CoreConstants.localDocument;
}
if (!_this.m_requestUrlAndHeaderInfo.headers) {
_this.m_requestUrlAndHeaderInfo.headers = {};
}
if (typeof _this.m_requestUrlAndHeaderInfoResolver._createRequestExecutorOrNull === 'function') {
var executor = _this.m_requestUrlAndHeaderInfoResolver._createRequestExecutorOrNull();
if (executor) {
_this._requestExecutor = executor;
}
}
});
}
});
};
ClientRequestContext.prototype.syncPrivateMain = function () {
var _this = this;
return this.ensureRequestUrlAndHeaderInfo().then(function () {
var req = _this._pendingRequest;
_this.m_pendingRequest = null;
return _this.processPreSyncPromises(req).then(function () { return _this.syncPrivate(req); });
});
};
ClientRequestContext.prototype.syncPrivate = function (req) {
var _this = this;
if (TestUtility.isMock()) {
return CoreUtility._createPromiseFromResult(null);
}
if (!req.hasActions) {
return this.processPendingEventHandlers(req);
}
var _a = req.buildRequestMessageBodyAndRequestFlags(), msgBody = _a.body, requestFlags = _a.flags;
if (this._requestFlagModifier) {
requestFlags |= this._requestFlagModifier;
}
if (!this._requestExecutor) {
if (CoreUtility._isLocalDocumentUrl(this.m_requestUrlAndHeaderInfo.url)) {
this._requestExecutor = new OfficeJsRequestExecutor(this);
}
else {
this._requestExecutor = new HttpRequestExecutor();
}
}
var requestExecutor = this._requestExecutor;
var headers = {};
CoreUtility._copyHeaders(this.m_requestUrlAndHeaderInfo.headers, headers);
CoreUtility._copyHeaders(this.m_customRequestHeaders, headers);
delete this.m_customRequestHeaders[Constants.officeScriptEventId];
var requestExecutorRequestMessage = {
Url: this.m_requestUrlAndHeaderInfo.url,
Headers: headers,
Body: msgBody
};
req.invalidatePendingInvalidObjectPaths();
var errorFromResponse = null;
var errorFromProcessEventHandlers = null;
this._lastSyncStart = typeof performance === 'undefined' ? 0 : performance.now();
this._lastRequestFlags = requestFlags;
return requestExecutor
.executeAsync(this._customData, requestFlags, requestExecutorRequestMessage)
.then(function (response) {
_this._lastSyncEnd = typeof performance === 'undefined' ? 0 : performance.now();
errorFromResponse = _this.processRequestExecutorResponseMessage(req, response);
return _this.processPendingEventHandlers(req)["catch"](function (ex) {
CoreUtility.log('Error in processPendingEventHandlers');
CoreUtility.log(JSON.stringify(ex));
errorFromProcessEventHandlers = ex;
});
})
.then(function () {
if (errorFromResponse) {
CoreUtility.log('Throw error from response: ' + JSON.stringify(errorFromResponse));
throw errorFromResponse;
}
if (errorFromProcessEventHandlers) {
CoreUtility.log('Throw error from ProcessEventHandler: ' + JSON.stringify(errorFromProcessEventHandlers));
var transformedError = null;
if (errorFromProcessEventHandlers instanceof _Internal.RuntimeError) {
transformedError = errorFromProcessEventHandlers;
transformedError.traceMessages = req._responseTraceMessages;
}
else {
var message = null;
if (typeof errorFromProcessEventHandlers === 'string') {
message = errorFromProcessEventHandlers;
}
else {
message = errorFromProcessEventHandlers.message;
}
if (Utility.isNullOrEmptyString(message)) {
message = CoreUtility._getResourceString(ResourceStrings.cannotRegisterEvent);
}
transformedError = new _Internal.RuntimeError({
code: ErrorCodes.cannotRegisterEvent,
httpStatusCode: 400,
message: message,
traceMessages: req._responseTraceMessages
});
}
throw transformedError;
}
});
};
ClientRequestContext.prototype.processRequestExecutorResponseMessage = function (req, response) {
if (response.Body && response.Body.TraceIds) {
req._setResponseTraceIds(response.Body.TraceIds);
}
var traceMessages = req._responseTraceMessages;
var errorStatementInfo = null;
if (response.Body) {
if (response.Body.Error && response.Body.Error.ActionIndex >= 0) {
var prettyPrinter = new RequestPrettyPrinter(this._rootObjectPropertyName, req._objectPaths, req._actions, false, true);
var debugInfoStatementInfo = prettyPrinter.processForDebugStatementInfo(response.Body.Error.ActionIndex);
errorStatementInfo = {
statement: debugInfoStatementInfo.statement,
surroundingStatements: debugInfoStatementInfo.surroundingStatements,
fullStatements: ['Please enable config.extendedErrorLogging to see full statements.']
};
if (OfficeExtension_1.config.extendedErrorLogging) {
prettyPrinter = new RequestPrettyPrinter(this._rootObjectPropertyName, req._objectPaths, req._actions, false, false);
errorStatementInfo.fullStatements = prettyPrinter.process();
}
}
var actionResults = null;
if (response.Body.Results) {
actionResults = response.Body.Results;
}
else if (response.Body.ProcessedResults && response.Body.ProcessedResults.Results) {
actionResults = response.Body.ProcessedResults.Results;
}
if (actionResults) {
this._processingResult = true;
try {
req.processResponse(actionResults);
}
finally {
this._processingResult = false;
}
}
}
if (!Utility.isNullOrEmptyString(response.ErrorCode)) {
return new _Internal.RuntimeError({
code: response.ErrorCode,
httpStatusCode: response.HttpStatusCode,
message: response.ErrorMessage,
traceMessages: traceMessages
});
}
else if (response.Body && response.Body.Error) {
var debugInfo = {
errorLocation: response.Body.Error.Location
};
if (errorStatementInfo) {
debugInfo.statement = errorStatementInfo.statement;
debugInfo.surroundingStatements = errorStatementInfo.surroundingStatements;
debugInfo.fullStatements = errorStatementInfo.fullStatements;
}
return new _Internal.RuntimeError({
code: response.Body.Error.Code,
httpStatusCode: response.Body.Error.HttpStatusCode,
message: response.Body.Error.Message,
traceMessages: traceMessages,
debugInfo: debugInfo
});
}
return null;
};
ClientRequestContext.prototype.processPendingEventHandlers = function (req) {
var ret = Utility._createPromiseFromResult(null);
for (var i = 0; i < req._pendingProcessEventHandlers.length; i++) {
var eventHandlers = req._pendingProcessEventHandlers[i];
ret = ret.then(this.createProcessOneEventHandlersFunc(eventHandlers, req));
}
return ret;
};
ClientRequestContext.prototype.createProcessOneEventHandlersFunc = function (eventHandlers, req) {
return function () { return eventHandlers._processRegistration(req); };
};
ClientRequestContext.prototype.processPreSyncPromises = function (req) {
var ret = Utility._createPromiseFromResult(null);
for (var i = 0; i < req._preSyncPromises.length; i++) {
var p = req._preSyncPromises[i];
ret = ret.then(this.createProcessOneProSyncFunc(p));
}
return ret;
};
ClientRequestContext.prototype.createProcessOneProSyncFunc = function (p) {
return function () { return p; };
};
ClientRequestContext.prototype.sync = function (passThroughValue) {
if (TestUtility.isMock()) {
return CoreUtility._createPromiseFromResult(passThroughValue);
}
return this.syncPrivateMain().then(function () { return passThroughValue; });
};
ClientRequestContext.prototype.batch = function (batchBody) {
var _this = this;
if (this.m_batchMode !== 1) {
return CoreUtility._createPromiseFromException(Utility.createRuntimeError(CoreErrorCodes.generalException, null, null));
}
if (this.m_explicitBatchInProgress) {
return CoreUtility._createPromiseFromException(Utility.createRuntimeError(CoreErrorCodes.generalException, CoreUtility._getResourceString(ResourceStrings.pendingBatchInProgress), null));
}
if (Utility.isNullOrUndefined(batchBody)) {
return Utility._createPromiseFromResult(null);
}
this.m_explicitBatchInProgress = true;
var previousRequest = this.m_pendingRequest;
this.m_pendingRequest = new ClientRequest(this);
var batchBodyResult;
try {
batchBodyResult = batchBody(this._rootObject, this);
}
catch (ex) {
this.m_explicitBatchInProgress = false;
this.m_pendingRequest = previousRequest;
return CoreUtility._createPromiseFromException(ex);
}
var request;
var batchBodyResultPromise;
if (typeof batchBodyResult === 'object' && batchBodyResult && typeof batchBodyResult.then === 'function') {
batchBodyResultPromise = Utility._createPromiseFromResult(null)
.then(function () {
return batchBodyResult;
})
.then(function (result) {
_this.m_explicitBatchInProgress = false;
request = _this.m_pendingRequest;
_this.m_pendingRequest = previousRequest;
return result;
})["catch"](function (ex) {
_this.m_explicitBatchInProgress = false;
request = _this.m_pendingRequest;
_this.m_pendingRequest = previousRequest;
return CoreUtility._createPromiseFromException(ex);
});
}
else {
this.m_explicitBatchInProgress = false;
request = this.m_pendingRequest;
this.m_pendingRequest = previousRequest;
batchBodyResultPromise = Utility._createPromiseFromResult(batchBodyResult);
}
return batchBodyResultPromise.then(function (result) {
return _this.ensureRequestUrlAndHeaderInfo()
.then(function () {
return _this.syncPrivate(request);
})
.then(function () {
return result;
});
});
};
ClientRequestContext._run = function (ctxInitializer, runBody, numCleanupAttempts, retryDelay, onCleanupSuccess, onCleanupFailure) {
if (numCleanupAttempts === void 0) {
numCleanupAttempts = 3;
}
if (retryDelay === void 0) {
retryDelay = 5000;
}
return ClientRequestContext._runCommon('run', null, ctxInitializer, 0, runBody, numCleanupAttempts, retryDelay, null, onCleanupSuccess, onCleanupFailure);
};
ClientRequestContext.isValidRequestInfo = function (value) {
return (typeof value === 'string' ||
ClientRequestContext.isRequestUrlAndHeaderInfo(value) ||
ClientRequestContext.isRequestUrlAndHeaderInfoResolver(value));
};
ClientRequestContext.isRequestUrlAndHeaderInfo = function (value) {
return (typeof value === 'object' &&
value !== null &&
Object.getPrototypeOf(value) === Object.getPrototypeOf({}) &&
!Utility.isNullOrUndefined(value.url));
};
ClientRequestContext.isRequestUrlAndHeaderInfoResolver = function (value) {
return typeof value === 'object' && value !== null && typeof value._resolveRequestUrlAndHeaderInfo === 'function';
};
ClientRequestContext._runBatch = function (functionName, receivedRunArgs, ctxInitializer, onBeforeRun, numCleanupAttempts, retryDelay, onCleanupSuccess, onCleanupFailure) {
if (numCleanupAttempts === void 0) {
numCleanupAttempts = 3;
}
if (retryDelay === void 0) {
retryDelay = 5000;
}
return ClientRequestContext._runBatchCommon(0, functionName, receivedRunArgs, ctxInitializer, numCleanupAttempts, retryDelay, onBeforeRun, onCleanupSuccess, onCleanupFailure);
};
ClientRequestContext._runExplicitBatch = function (functionName, receivedRunArgs, ctxInitializer, onBeforeRun, numCleanupAttempts, retryDelay, onCleanupSuccess, onCleanupFailure) {
if (numCleanupAttempts === void 0) {
numCleanupAttempts = 3;
}
if (retryDelay === void 0) {
retryDelay = 5000;
}
return ClientRequestContext._runBatchCommon(1, functionName, receivedRunArgs, ctxInitializer, numCleanupAttempts, retryDelay, onBeforeRun, onCleanupSuccess, onCleanupFailure);
};
ClientRequestContext._runBatchCommon = function (batchMode, functionName, receivedRunArgs, ctxInitializer, numCleanupAttempts, retryDelay, onBeforeRun, onCleanupSuccess, onCleanupFailure) {
if (numCleanupAttempts === void 0) {
numCleanupAttempts = 3;
}
if (retryDelay === void 0) {
retryDelay = 5000;
}
var ctxRetriever;
var batch;
var requestInfo = null;
var previousObjects = null;
var argOffset = 0;
var options = null;
if (receivedRunArgs.length > 0) {
if (ClientRequestContext.isValidRequestInfo(receivedRunArgs[0])) {
requestInfo = receivedRunArgs[0];
argOffset = 1;
}
else if (Utility.isPlainJsonObject(receivedRunArgs[0])) {
options = receivedRunArgs[0];
requestInfo = options.session;
if (requestInfo != null && !ClientRequestContext.isValidRequestInfo(requestInfo)) {
return ClientRequestContext.createErrorPromise(functionName);
}
previousObjects = options.previousObjects;
argOffset = 1;
}
}
if (receivedRunArgs.length == argOffset + 1) {
batch = receivedRunArgs[argOffset + 0];
}
else if (options == null && receivedRunArgs.length == argOffset + 2) {
previousObjects = receivedRunArgs[argOffset + 0];
batch = receivedRunArgs[argOffset + 1];
}
else {
return ClientRequestContext.createErrorPromise(functionName);
}
if (previousObjects != null) {
if (previousObjects instanceof ClientObject) {
ctxRetriever = function () { return previousObjects.context; };
}
else if (previousObjects instanceof ClientRequestContext) {
ctxRetriever = function () { return previousObjects; };
}
else if (Array.isArray(previousObjects)) {
var array = previousObjects;
if (array.length == 0) {
return ClientRequestContext.createErrorPromise(functionName);
}
for (var i = 0; i < array.length; i++) {
if (!(array[i] instanceof ClientObject)) {
return ClientRequestContext.createErrorPromise(functionName);
}
if (array[i].context != array[0].context) {
return ClientRequestContext.createErrorPromise(functionName, ResourceStrings.invalidRequestContext);
}
}
ctxRetriever = function () { return array[0].context; };
}
else {
return ClientRequestContext.createErrorPromise(functionName);
}
}
else {
ctxRetriever = ctxInitializer;
}
var onBeforeRunWithOptions = null;
if (onBeforeRun) {
onBeforeRunWithOptions = function (context) { return onBeforeRun(options || {}, context); };
}
return ClientRequestContext._runCommon(functionName, requestInfo, ctxRetriever, batchMode, batch, numCleanupAttempts, retryDelay, onBeforeRunWithOptions, onCleanupSuccess, onCleanupFailure);
};
ClientRequestContext.createErrorPromise = function (functionName, code) {
if (code === void 0) {
code = CoreResourceStrings.invalidArgument;
}
return CoreUtility._createPromiseFromException(Utility.createRuntimeError(code, CoreUtility._getResourceString(code), functionName));
};
ClientRequestContext._runCommon = function (functionName, requestInfo, ctxRetriever, batchMode, runBody, numCleanupAttempts, retryDelay, onBeforeRun, onCleanupSuccess, onCleanupFailure) {
if (SessionBase._overrideSession) {
requestInfo = SessionBase._overrideSession;
}
var starterPromise = CoreUtility.createPromise(function (resolve, reject) {
resolve();
});
var ctx;
var succeeded = false;
var resultOrError;
var previousBatchMode;
return starterPromise
.then(function () {
ctx = ctxRetriever(requestInfo);
if (ctx._autoCleanup) {
return new OfficeExtension_1.Promise(function (resolve, reject) {
ctx._onRunFinishedNotifiers.push(function () {
ctx._autoCleanup = true;
resolve();
});
});
}
else {
ctx._autoCleanup = true;
}
})
.then(function () {
if (typeof runBody !== 'function') {
return ClientRequestContext.createErrorPromise(functionName);
}
previousBatchMode = ctx.m_batchMode;
ctx.m_batchMode = batchMode;
if (onBeforeRun) {
onBeforeRun(ctx);
}
var runBodyResult;
if (batchMode == 1) {
runBodyResult = runBody(ctx.batch.bind(ctx));
}
else {
runBodyResult = runBody(ctx);
}
if (Utility.isNullOrUndefined(runBodyResult) || typeof runBodyResult.then !== 'function') {
Utility.throwError(ResourceStrings.runMustReturnPromise);
}
return runBodyResult;
})
.then(function (runBodyResult) {
if (batchMode === 1) {
return runBodyResult;
}
else {
return ctx.sync(runBodyResult);
}
})
.then(function (result) {
succeeded = true;
resultOrError = result;
})["catch"](function (error) {
resultOrError = error;
})
.then(function () {
var itemsToRemove = ctx.trackedObjects._retrieveAndClearAutoCleanupList();
ctx._autoCleanup = false;
ctx.m_batchMode = previousBatchMode;
for (var key in itemsToRemove) {
itemsToRemove[key]._objectPath.isValid = false;
}
var cleanupCounter = 0;
if (Utility._synchronousCleanup || ClientRequestContext.isRequestUrlAndHeaderInfoResolver(requestInfo)) {
return attemptCleanup();
}
else {
attemptCleanup();
}
function attemptCleanup() {
cleanupCounter++;
var savedPendingRequest = ctx.m_pendingRequest;
var savedBatchMode = ctx.m_batchMode;
var request = new ClientRequest(ctx);
ctx.m_pendingRequest = request;
ctx.m_batchMode = 0;
try {
for (var key in itemsToRemove) {
ctx.trackedObjects.remove(itemsToRemove[key]);
}
}
finally {
ctx.m_batchMode = savedBatchMode;
ctx.m_pendingRequest = savedPendingRequest;
}
return ctx
.syncPrivate(request)
.then(function () {
if (onCleanupSuccess) {
onCleanupSuccess(cleanupCounter);
}
})["catch"](function () {
if (onCleanupFailure) {
onCleanupFailure(cleanupCounter);
}
if (cleanupCounter < numCleanupAttempts) {
setTimeout(function () {
attemptCleanup();
}, retryDelay);
}
});
}
})
.then(function () {
if (ctx._onRunFinishedNotifiers && ctx._onRunFinishedNotifiers.length > 0) {
var func = ctx._onRunFinishedNotifiers.shift();
func();
}
if (succeeded) {
return resultOrError;
}
else {
throw resultOrError;
}
});
};
return ClientRequestContext;
}(ClientRequestContextBase));
OfficeExtension_1.ClientRequestContext = ClientRequestContext;
var RetrieveResultImpl = (function () {
function RetrieveResultImpl(m_proxy, m_shouldPolyfill) {
this.m_proxy = m_proxy;
this.m_shouldPolyfill = m_shouldPolyfill;
var scalarPropertyNames = m_proxy[Constants.scalarPropertyNames];
var navigationPropertyNames = m_proxy[Constants.navigationPropertyNames];
var typeName = m_proxy[Constants.className];
var isCollection = m_proxy[Constants.isCollection];
if (scalarPropertyNames) {
for (var i = 0; i < scalarPropertyNames.length; i++) {
Utility.definePropertyThrowUnloadedException(this, typeName, scalarPropertyNames[i]);
}
}
if (navigationPropertyNames) {
for (var i = 0; i < navigationPropertyNames.length; i++) {
Utility.definePropertyThrowUnloadedException(this, typeName, navigationPropertyNames[i]);
}
}
if (isCollection) {
Utility.definePropertyThrowUnloadedException(this, typeName, Constants.itemsLowerCase);
}
}
Object.defineProperty(RetrieveResultImpl.prototype, "$proxy", {
get: function () {
return this.m_proxy;
},
enumerable: true,
configurable: true
});
Object.defineProperty(RetrieveResultImpl.prototype, "$isNullObject", {
get: function () {
if (!this.m_isLoaded) {
throw new _Internal.RuntimeError({
code: ErrorCodes.valueNotLoaded,
httpStatusCode: 400,
message: CoreUtility._getResourceString(ResourceStrings.valueNotLoaded),
debugInfo: {
errorLocation: 'retrieveResult.$isNullObject'
}
});
}
return this.m_isNullObject;
},
enumerable: true,
configurable: true
});
RetrieveResultImpl.prototype.toJSON = function () {
if (!this.m_isLoaded) {
return undefined;
}
if (this.m_isNullObject) {
return null;
}
if (Utility.isUndefined(this.m_json)) {
this.m_json = Utility.purifyJson(this.m_value);
}
return this.m_json;
};
RetrieveResultImpl.prototype.toString = function () {
return JSON.stringify(this.toJSON());
};
RetrieveResultImpl.prototype._handleResult = function (value) {
this.m_isLoaded = true;
if (value === null || (typeof value === 'object' && value && value._IsNull)) {
this.m_isNullObject = true;
value = null;
}
else {
this.m_isNullObject = false;
}
if (this.m_shouldPolyfill) {
value = Utility.changePropertyNameToCamelLowerCase(value);
}
this.m_value = value;
this.m_proxy._handleRetrieveResult(value, this);
};
return RetrieveResultImpl;
}());
var Constants = (function (_super) {
__extends(Constants, _super);
function Constants() {
return _super !== null && _super.apply(this, arguments) || this;
}
Constants.getItemAt = 'GetItemAt';
Constants.index = '_Index';
Constants.iterativeExecutor = 'IterativeExecutor';
Constants.isTracked = '_IsTracked';
Constants.eventMessageCategory = 65536;
Constants.eventWorkbookId = 'Workbook';
Constants.eventSourceRemote = 'Remote';
Constants.proxy = '$proxy';
Constants.className = '_className';
Constants.isCollection = '_isCollection';
Constants.collectionPropertyPath = '_collectionPropertyPath';
Constants.objectPathInfoDoNotKeepReferenceFieldName = 'D';
Constants.officeScriptEventId = 'X-OfficeScriptEventId';
Constants.officeScriptFireRecordingEvent = 'X-OfficeScriptFireRecordingEvent';
return Constants;
}(CommonConstants));
OfficeExtension_1.Constants = Constants;
var ClientRequest = (function (_super) {
__extends(ClientRequest, _super);
function ClientRequest(context) {
var _this = _super.call(this, context) || this;
_this.m_context = context;
_this.m_pendingProcessEventHandlers = [];
_this.m_pendingEventHandlerActions = {};
_this.m_traceInfos = {};
_this.m_responseTraceIds = {};
_this.m_responseTraceMessages = [];
return _this;
}
Object.defineProperty(ClientRequest.prototype, "traceInfos", {
get: function () {
return this.m_traceInfos;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ClientRequest.prototype, "_responseTraceMessages", {
get: function () {
return this.m_responseTraceMessages;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ClientRequest.prototype, "_responseTraceIds", {
get: function () {
return this.m_responseTraceIds;
},
enumerable: true,
configurable: true
});
ClientRequest.prototype._setResponseTraceIds = function (value) {
if (value) {
for (var i = 0; i < value.length; i++) {
var traceId = value[i];
this.m_responseTraceIds[traceId] = traceId;
var message = this.m_traceInfos[traceId];
if (!CoreUtility.isNullOrUndefined(message)) {
this.m_responseTraceMessages.push(message);
}
}
}
};
ClientRequest.prototype.addTrace = function (actionId, message) {
this.m_traceInfos[actionId] = message;
};
ClientRequest.prototype._addPendingEventHandlerAction = function (eventHandlers, action) {
if (!this.m_pendingEventHandlerActions[eventHandlers._id]) {
this.m_pendingEventHandlerActions[eventHandlers._id] = [];
this.m_pendingProcessEventHandlers.push(eventHandlers);
}
this.m_pendingEventHandlerActions[eventHandlers._id].push(action);
};
Object.defineProperty(ClientRequest.prototype, "_pendingProcessEventHandlers", {
get: function () {
return this.m_pendingProcessEventHandlers;
},
enumerable: true,
configurable: true
});
ClientRequest.prototype._getPendingEventHandlerActions = function (eventHandlers) {
return this.m_pendingEventHandlerActions[eventHandlers._id];
};
return ClientRequest;
}(ClientRequestBase));
OfficeExtension_1.ClientRequest = ClientRequest;
var EventHandlers = (function () {
function EventHandlers(context, parentObject, name, eventInfo) {
var _this = this;
this.m_id = context._nextId();
this.m_context = context;
this.m_name = name;
this.m_handlers = [];
this.m_registered = false;
this.m_eventInfo = eventInfo;
this.m_callback = function (args) {
_this.m_eventInfo.eventArgsTransformFunc(args).then(function (newArgs) { return _this.fireEvent(newArgs); });
};
}
Object.defineProperty(EventHandlers.prototype, "_registered", {
get: function () {
return this.m_registered;
},
enumerable: true,
configurable: true
});
Object.defineProperty(EventHandlers.prototype, "_id", {
get: function () {
return this.m_id;
},
enumerable: true,
configurable: true
});
Object.defineProperty(EventHandlers.prototype, "_handlers", {
get: function () {
return this.m_handlers;
},
enumerable: true,
configurable: true
});
Object.defineProperty(EventHandlers.prototype, "_context", {
get: function () {
return this.m_context;
},
enumerable: true,
configurable: true
});
Object.defineProperty(EventHandlers.prototype, "_callback", {
get: function () {
return this.m_callback;
},
enumerable: true,
configurable: true
});
EventHandlers.prototype.add = function (handler) {
var action = ActionFactory.createTraceAction(this.m_context, null, false);
this.m_context._pendingRequest._addPendingEventHandlerAction(this, {
id: action.actionInfo.Id,
handler: handler,
operation: 0
});
return new EventHandlerResult(this.m_context, this, handler);
};
EventHandlers.prototype.remove = function (handler) {
var action = ActionFactory.createTraceAction(this.m_context, null, false);
this.m_context._pendingRequest._addPendingEventHandlerAction(this, {
id: action.actionInfo.Id,
handler: handler,
operation: 1
});
};
EventHandlers.prototype.removeAll = function () {
var action = ActionFactory.createTraceAction(this.m_context, null, false);
this.m_context._pendingRequest._addPendingEventHandlerAction(this, {
id: action.actionInfo.Id,
handler: null,
operation: 2
});
};
EventHandlers.prototype._processRegistration = function (req) {
var _this = this;
var ret = CoreUtility._createPromiseFromResult(null);
var actions = req._getPendingEventHandlerActions(this);
if (!actions) {
return ret;
}
var handlersResult = [];
for (var i = 0; i < this.m_handlers.length; i++) {
handlersResult.push(this.m_handlers[i]);
}
var hasChange = false;
for (var i = 0; i < actions.length; i++) {
if (req._responseTraceIds[actions[i].id]) {
hasChange = true;
switch (actions[i].operation) {
case 0:
handlersResult.push(actions[i].handler);
break;
case 1:
for (var index = handlersResult.length - 1; index >= 0; index--) {
if (handlersResult[index] === actions[i].handler) {
handlersResult.splice(index, 1);
break;
}
}
break;
case 2:
handlersResult = [];
break;
}
}
}
if (hasChange) {
if (!this.m_registered && handlersResult.length > 0) {
ret = ret.then(function () { return _this.m_eventInfo.registerFunc(_this.m_callback); }).then(function () { return (_this.m_registered = true); });
}
else if (this.m_registered && handlersResult.length == 0) {
ret = ret
.then(function () { return _this.m_eventInfo.unregisterFunc(_this.m_callback); })["catch"](function (ex) {
CoreUtility.log('Error when unregister event: ' + JSON.stringify(ex));
})
.then(function () { return (_this.m_registered = false); });
}
ret = ret.then(function () { return (_this.m_handlers = handlersResult); });
}
return ret;
};
EventHandlers.prototype.fireEvent = function (args) {
var promises = [];
for (var i = 0; i < this.m_handlers.length; i++) {
var handler = this.m_handlers[i];
var p = CoreUtility._createPromiseFromResult(null)
.then(this.createFireOneEventHandlerFunc(handler, args))["catch"](function (ex) {
CoreUtility.log('Error when invoke handler: ' + JSON.stringify(ex));
});
promises.push(p);
}
CoreUtility.Promise.all(promises);
};
EventHandlers.prototype.createFireOneEventHandlerFunc = function (handler, args) {
return function () { return handler(args); };
};
return EventHandlers;
}());
OfficeExtension_1.EventHandlers = EventHandlers;
var EventHandlerResult = (function () {
function EventHandlerResult(context, handlers, handler) {
this.m_context = context;
this.m_allHandlers = handlers;
this.m_handler = handler;
}
Object.defineProperty(EventHandlerResult.prototype, "context", {
get: function () {
return this.m_context;
},
enumerable: true,
configurable: true
});
EventHandlerResult.prototype.remove = function () {
if (this.m_allHandlers && this.m_handler) {
this.m_allHandlers.remove(this.m_handler);
this.m_allHandlers = null;
this.m_handler = null;
}
};
return EventHandlerResult;
}());
OfficeExtension_1.EventHandlerResult = EventHandlerResult;
(function (_Internal) {
var OfficeJsEventRegistration = (function () {
function OfficeJsEventRegistration() {
}
OfficeJsEventRegistration.prototype.register = function (eventId, targetId, handler) {
switch (eventId) {
case 4:
return Utility.promisify(function (callback) { return Office.context.document.bindings.getByIdAsync(targetId, callback); }).then(function (officeBinding) {
return Utility.promisify(function (callback) {
return officeBinding.addHandlerAsync(Office.EventType.BindingDataChanged, handler, callback);
});
});
case 3:
return Utility.promisify(function (callback) { return Office.context.document.bindings.getByIdAsync(targetId, callback); }).then(function (officeBinding) {
return Utility.promisify(function (callback) {
return officeBinding.addHandlerAsync(Office.EventType.BindingSelectionChanged, handler, callback);
});
});
case 2:
return Utility.promisify(function (callback) {
return Office.context.document.addHandlerAsync(Office.EventType.DocumentSelectionChanged, handler, callback);
});
case 1:
return Utility.promisify(function (callback) {
return Office.context.document.settings.addHandlerAsync(Office.EventType.SettingsChanged, handler, callback);
});
case 5:
return OSF.DDA.RichApi.richApiMessageManager.register(handler);
case 13:
return Utility.promisify(function (callback) {
return Office.context.document.addHandlerAsync(Office.EventType.ObjectDeleted, handler, { id: targetId }, callback);
});
case 14:
return Utility.promisify(function (callback) {
return Office.context.document.addHandlerAsync(Office.EventType.ObjectSelectionChanged, handler, { id: targetId }, callback);
});
case 15:
return Utility.promisify(function (callback) {
return Office.context.document.addHandlerAsync(Office.EventType.ObjectDataChanged, handler, { id: targetId }, callback);
});
case 16:
return Utility.promisify(function (callback) {
return Office.context.document.addHandlerAsync(Office.EventType.ContentControlAdded, handler, { id: targetId }, callback);
});
default:
throw _Internal.RuntimeError._createInvalidArgError({ argumentName: 'eventId' });
}
};
OfficeJsEventRegistration.prototype.unregister = function (eventId, targetId, handler) {
switch (eventId) {
case 4:
return Utility.promisify(function (callback) { return Office.context.document.bindings.getByIdAsync(targetId, callback); }).then(function (officeBinding) {
return Utility.promisify(function (callback) {
return officeBinding.removeHandlerAsync(Office.EventType.BindingDataChanged, { handler: handler }, callback);
});
});
case 3:
return Utility.promisify(function (callback) { return Office.context.document.bindings.getByIdAsync(targetId, callback); }).then(function (officeBinding) {
return Utility.promisify(function (callback) {
return officeBinding.removeHandlerAsync(Office.EventType.BindingSelectionChanged, { handler: handler }, callback);
});
});
case 2:
return Utility.promisify(function (callback) {
return Office.context.document.removeHandlerAsync(Office.EventType.DocumentSelectionChanged, { handler: handler }, callback);
});
case 1:
return Utility.promisify(function (callback) {
return Office.context.document.settings.removeHandlerAsync(Office.EventType.SettingsChanged, { handler: handler }, callback);
});
case 5:
return Utility.promisify(function (callback) {
return OSF.DDA.RichApi.richApiMessageManager.removeHandlerAsync('richApiMessage', { handler: handler }, callback);
});
case 13:
return Utility.promisify(function (callback) {
return Office.context.document.removeHandlerAsync(Office.EventType.ObjectDeleted, { id: targetId, handler: handler }, callback);
});
case 14:
return Utility.promisify(function (callback) {
return Office.context.document.removeHandlerAsync(Office.EventType.ObjectSelectionChanged, { id: targetId, handler: handler }, callback);
});
case 15:
return Utility.promisify(function (callback) {
return Office.context.document.removeHandlerAsync(Office.EventType.ObjectDataChanged, { id: targetId, handler: handler }, callback);
});
case 16:
return Utility.promisify(function (callback) {
return Office.context.document.removeHandlerAsync(Office.EventType.ContentControlAdded, { id: targetId, handler: handler }, callback);
});
default:
throw _Internal.RuntimeError._createInvalidArgError({ argumentName: 'eventId' });
}
};
return OfficeJsEventRegistration;
}());
_Internal.officeJsEventRegistration = new OfficeJsEventRegistration();
})(_Internal = OfficeExtension_1._Internal || (OfficeExtension_1._Internal = {}));
var EventRegistration = (function () {
function EventRegistration(registerEventImpl, unregisterEventImpl) {
this.m_handlersByEventByTarget = {};
this.m_registerEventImpl = registerEventImpl;
this.m_unregisterEventImpl = unregisterEventImpl;
}
EventRegistration.getTargetIdOrDefault = function (targetId) {
if (Utility.isNullOrUndefined(targetId)) {
return '';
}
return targetId;
};
EventRegistration.prototype.getHandlers = function (eventId, targetId) {
targetId = EventRegistration.getTargetIdOrDefault(targetId);
var handlersById = this.m_handlersByEventByTarget[eventId];
if (!handlersById) {
handlersById = {};
this.m_handlersByEventByTarget[eventId] = handlersById;
}
var handlers = handlersById[targetId];
if (!handlers) {
handlers = [];
handlersById[targetId] = handlers;
}
return handlers;
};
EventRegistration.prototype.callHandlers = function (eventId, targetId, argument) {
var funcs = this.getHandlers(eventId, targetId);
for (var i = 0; i < funcs.length; i++) {
funcs[i](argument);
}
};
EventRegistration.prototype.hasHandlers = function (eventId, targetId) {
return this.getHandlers(eventId, targetId).length > 0;
};
EventRegistration.prototype.register = function (eventId, targetId, handler) {
if (!handler) {
throw _Internal.RuntimeError._createInvalidArgError({ argumentName: 'handler' });
}
var handlers = this.getHandlers(eventId, targetId);
handlers.push(handler);
if (handlers.length === 1) {
return this.m_registerEventImpl(eventId, targetId);
}
return Utility._createPromiseFromResult(null);
};
EventRegistration.prototype.unregister = function (eventId, targetId, handler) {
if (!handler) {
throw _Internal.RuntimeError._createInvalidArgError({ argumentName: 'handler' });
}
var handlers = this.getHandlers(eventId, targetId);
for (var index = handlers.length - 1; index >= 0; index--) {
if (handlers[index] === handler) {
handlers.splice(index, 1);
break;
}
}
if (handlers.length === 0) {
return this.m_unregisterEventImpl(eventId, targetId);
}
return Utility._createPromiseFromResult(null);
};
return EventRegistration;
}());
OfficeExtension_1.EventRegistration = EventRegistration;
var GenericEventRegistration = (function () {
function GenericEventRegistration() {
this.m_eventRegistration = new EventRegistration(this._registerEventImpl.bind(this), this._unregisterEventImpl.bind(this));
this.m_richApiMessageHandler = this._handleRichApiMessage.bind(this);
}
GenericEventRegistration.prototype.ready = function () {
var _this = this;
if (!this.m_ready) {
if (GenericEventRegistration._testReadyImpl) {
this.m_ready = GenericEventRegistration._testReadyImpl().then(function () {
_this.m_isReady = true;
});
}
else if (HostBridge.instance) {
this.m_ready = Utility._createPromiseFromResult(null).then(function () {
_this.m_isReady = true;
});
}
else {
this.m_ready = _Internal.officeJsEventRegistration
.register(5, '', this.m_richApiMessageHandler)
.then(function () {
_this.m_isReady = true;
});
}
}
return this.m_ready;
};
Object.defineProperty(GenericEventRegistration.prototype, "isReady", {
get: function () {
return this.m_isReady;
},
enumerable: true,
configurable: true
});
GenericEventRegistration.prototype.register = function (eventId, targetId, handler) {
var _this = this;
return this.ready().then(function () { return _this.m_eventRegistration.register(eventId, targetId, handler); });
};
GenericEventRegistration.prototype.unregister = function (eventId, targetId, handler) {
var _this = this;
return this.ready().then(function () { return _this.m_eventRegistration.unregister(eventId, targetId, handler); });
};
GenericEventRegistration.prototype._registerEventImpl = function (eventId, targetId) {
return Utility._createPromiseFromResult(null);
};
GenericEventRegistration.prototype._unregisterEventImpl = function (eventId, targetId) {
return Utility._createPromiseFromResult(null);
};
GenericEventRegistration.prototype._handleRichApiMessage = function (msg) {
if (msg && msg.entries) {
for (var entryIndex = 0; entryIndex < msg.entries.length; entryIndex++) {
var entry = msg.entries[entryIndex];
if (entry.messageCategory == Constants.eventMessageCategory) {
if (CoreUtility._logEnabled) {
CoreUtility.log(JSON.stringify(entry));
}
var eventId = entry.messageType;
var targetId = entry.targetId;
var hasHandlers = this.m_eventRegistration.hasHandlers(eventId, targetId);
if (hasHandlers) {
var arg = JSON.parse(entry.message);
if (entry.isRemoteOverride) {
arg.source = Constants.eventSourceRemote;
}
this.m_eventRegistration.callHandlers(eventId, targetId, arg);
}
}
}
}
};
GenericEventRegistration.getGenericEventRegistration = function () {
if (!GenericEventRegistration.s_genericEventRegistration) {
GenericEventRegistration.s_genericEventRegistration = new GenericEventRegistration();
}
return GenericEventRegistration.s_genericEventRegistration;
};
GenericEventRegistration.richApiMessageEventCategory = 65536;
return GenericEventRegistration;
}());
OfficeExtension_1.GenericEventRegistration = GenericEventRegistration;
function _testSetRichApiMessageReadyImpl(impl) {
GenericEventRegistration._testReadyImpl = impl;
}
OfficeExtension_1._testSetRichApiMessageReadyImpl = _testSetRichApiMessageReadyImpl;
function _testTriggerRichApiMessageEvent(msg) {
GenericEventRegistration.getGenericEventRegistration()._handleRichApiMessage(msg);
}
OfficeExtension_1._testTriggerRichApiMessageEvent = _testTriggerRichApiMessageEvent;
var GenericEventHandlers = (function (_super) {
__extends(GenericEventHandlers, _super);
function GenericEventHandlers(context, parentObject, name, eventInfo) {
var _this = _super.call(this, context, parentObject, name, eventInfo) || this;
_this.m_genericEventInfo = eventInfo;
return _this;
}
GenericEventHandlers.prototype.add = function (handler) {
var _this = this;
if (this._handlers.length == 0 && this.m_genericEventInfo.registerFunc) {
this.m_genericEventInfo.registerFunc();
}
if (!GenericEventRegistration.getGenericEventRegistration().isReady) {
this._context._pendingRequest._addPreSyncPromise(GenericEventRegistration.getGenericEventRegistration().ready());
}
ActionFactory.createTraceMarkerForCallback(this._context, function () {
_this._handlers.push(handler);
if (_this._handlers.length == 1) {
GenericEventRegistration.getGenericEventRegistration().register(_this.m_genericEventInfo.eventType, _this.m_genericEventInfo.getTargetIdFunc(), _this._callback);
}
});
return new EventHandlerResult(this._context, this, handler);
};
GenericEventHandlers.prototype.remove = function (handler) {
var _this = this;
if (this._handlers.length == 1 && this.m_genericEventInfo.unregisterFunc) {
this.m_genericEventInfo.unregisterFunc();
}
ActionFactory.createTraceMarkerForCallback(this._context, function () {
var handlers = _this._handlers;
for (var index = handlers.length - 1; index >= 0; index--) {
if (handlers[index] === handler) {
handlers.splice(index, 1);
break;
}
}
if (handlers.length == 0) {
GenericEventRegistration.getGenericEventRegistration().unregister(_this.m_genericEventInfo.eventType, _this.m_genericEventInfo.getTargetIdFunc(), _this._callback);
}
});
};
GenericEventHandlers.prototype.removeAll = function () { };
return GenericEventHandlers;
}(EventHandlers));
OfficeExtension_1.GenericEventHandlers = GenericEventHandlers;
var InstantiateActionResultHandler = (function () {
function InstantiateActionResultHandler(clientObject) {
this.m_clientObject = clientObject;
}
InstantiateActionResultHandler.prototype._handleResult = function (value) {
this.m_clientObject._handleIdResult(value);
};
return InstantiateActionResultHandler;
}());
var ObjectPathFactory = (function () {
function ObjectPathFactory() {
}
ObjectPathFactory.createGlobalObjectObjectPath = function (context) {
var objectPathInfo = {
Id: context._nextId(),
ObjectPathType: 1,
Name: ''
};
return new ObjectPath(objectPathInfo, null, false, false, 1, 4);
};
ObjectPathFactory.createNewObjectObjectPath = function (context, typeName, isCollection, flags) {
var objectPathInfo = {
Id: context._nextId(),
ObjectPathType: 2,
Name: typeName
};
var ret = new ObjectPath(objectPathInfo, null, isCollection, false, 1, Utility._fixupApiFlags(flags));
return ret;
};
ObjectPathFactory.createPropertyObjectPath = function (context, parent, propertyName, isCollection, isInvalidAfterRequest, flags) {
var objectPathInfo = {
Id: context._nextId(),
ObjectPathType: 4,
Name: propertyName,
ParentObjectPathId: parent._objectPath.objectPathInfo.Id
};
var ret = new ObjectPath(objectPathInfo, parent._objectPath, isCollection, isInvalidAfterRequest, 1, Utility._fixupApiFlags(flags));
return ret;
};
ObjectPathFactory.createIndexerObjectPath = function (context, parent, args) {
var objectPathInfo = {
Id: context._nextId(),
ObjectPathType: 5,
Name: '',
ParentObjectPathId: parent._objectPath.objectPathInfo.Id,
ArgumentInfo: {}
};
objectPathInfo.ArgumentInfo.Arguments = args;
return new ObjectPath(objectPathInfo, parent._objectPath, false, false, 1, 4);
};
ObjectPathFactory.createIndexerObjectPathUsingParentPath = function (context, parentObjectPath, args) {
var objectPathInfo = {
Id: context._nextId(),
ObjectPathType: 5,
Name: '',
ParentObjectPathId: parentObjectPath.objectPathInfo.Id,
ArgumentInfo: {}
};
objectPathInfo.ArgumentInfo.Arguments = args;
return new ObjectPath(objectPathInfo, parentObjectPath, false, false, 1, 4);
};
ObjectPathFactory.createMethodObjectPath = function (context, parent, methodName, operationType, args, isCollection, isInvalidAfterRequest, getByIdMethodName, flags) {
var objectPathInfo = {
Id: context._nextId(),
ObjectPathType: 3,
Name: methodName,
ParentObjectPathId: parent._objectPath.objectPathInfo.Id,
ArgumentInfo: {}
};
var argumentObjectPaths = Utility.setMethodArguments(context, objectPathInfo.ArgumentInfo, args);
var ret = new ObjectPath(objectPathInfo, parent._objectPath, isCollection, isInvalidAfterRequest, operationType, Utility._fixupApiFlags(flags));
ret.argumentObjectPaths = argumentObjectPaths;
ret.getByIdMethodName = getByIdMethodName;
return ret;
};
ObjectPathFactory.createReferenceIdObjectPath = function (context, referenceId) {
var objectPathInfo = {
Id: context._nextId(),
ObjectPathType: 6,
Name: referenceId,
ArgumentInfo: {}
};
var ret = new ObjectPath(objectPathInfo, null, false, false, 1, 4);
return ret;
};
ObjectPathFactory.createChildItemObjectPathUsingIndexerOrGetItemAt = function (hasIndexerMethod, context, parent, childItem, index) {
var id = Utility.tryGetObjectIdFromLoadOrRetrieveResult(childItem);
if (hasIndexerMethod && !Utility.isNullOrUndefined(id)) {
return ObjectPathFactory.createChildItemObjectPathUsingIndexer(context, parent, childItem);
}
else {
return ObjectPathFactory.createChildItemObjectPathUsingGetItemAt(context, parent, childItem, index);
}
};
ObjectPathFactory.createChildItemObjectPathUsingIndexer = function (context, parent, childItem) {
var id = Utility.tryGetObjectIdFromLoadOrRetrieveResult(childItem);
var objectPathInfo = (objectPathInfo = {
Id: context._nextId(),
ObjectPathType: 5,
Name: '',
ParentObjectPathId: parent._objectPath.objectPathInfo.Id,
ArgumentInfo: {}
});
objectPathInfo.ArgumentInfo.Arguments = [id];
return new ObjectPath(objectPathInfo, parent._objectPath, false, false, 1, 4);
};
ObjectPathFactory.createChildItemObjectPathUsingGetItemAt = function (context, parent, childItem, index) {
var indexFromServer = childItem[Constants.index];
if (indexFromServer) {
index = indexFromServer;
}
var objectPathInfo = {
Id: context._nextId(),
ObjectPathType: 3,
Name: Constants.getItemAt,
ParentObjectPathId: parent._objectPath.objectPathInfo.Id,
ArgumentInfo: {}
};
objectPathInfo.ArgumentInfo.Arguments = [index];
return new ObjectPath(objectPathInfo, parent._objectPath, false, false, 1, 4);
};
return ObjectPathFactory;
}());
OfficeExtension_1.ObjectPathFactory = ObjectPathFactory;
var OfficeJsRequestExecutor = (function () {
function OfficeJsRequestExecutor(context) {
this.m_context = context;
}
OfficeJsRequestExecutor.prototype.executeAsync = function (customData, requestFlags, requestMessage) {
var _this = this;
var messageSafearray = RichApiMessageUtility.buildMessageArrayForIRequestExecutor(customData, requestFlags, requestMessage, OfficeJsRequestExecutor.SourceLibHeaderValue);
return new OfficeExtension_1.Promise(function (resolve, reject) {
OSF.DDA.RichApi.executeRichApiRequestAsync(messageSafearray, function (result) {
CoreUtility.log('Response:');
CoreUtility.log(JSON.stringify(result));
var response;
if (result.status == 'succeeded') {
response = RichApiMessageUtility.buildResponseOnSuccess(RichApiMessageUtility.getResponseBody(result), RichApiMessageUtility.getResponseHeaders(result));
}
else {
response = RichApiMessageUtility.buildResponseOnError(result.error.code, result.error.message);
_this.m_context._processOfficeJsErrorResponse(result.error.code, response);
}
resolve(response);
});
});
};
OfficeJsRequestExecutor.SourceLibHeaderValue = 'officejs';
return OfficeJsRequestExecutor;
}());
var TrackedObjects = (function () {
function TrackedObjects(context) {
this._autoCleanupList = {};
this.m_context = context;
}
TrackedObjects.prototype.add = function (param) {
var _this = this;
if (Array.isArray(param)) {
param.forEach(function (item) { return _this._addCommon(item, true); });
}
else {
this._addCommon(param, true);
}
};
TrackedObjects.prototype._autoAdd = function (object) {
this._addCommon(object, false);
this._autoCleanupList[object._objectPath.objectPathInfo.Id] = object;
};
TrackedObjects.prototype._autoTrackIfNecessaryWhenHandleObjectResultValue = function (object, resultValue) {
var shouldAutoTrack = this.m_context._autoCleanup &&
!object[Constants.isTracked] &&
object !== this.m_context._rootObject &&
resultValue &&
!Utility.isNullOrEmptyString(resultValue[Constants.referenceId]);
if (shouldAutoTrack) {
this._autoCleanupList[object._objectPath.objectPathInfo.Id] = object;
object[Constants.isTracked] = true;
}
};
TrackedObjects.prototype._addCommon = function (object, isExplicitlyAdded) {
if (object[Constants.isTracked]) {
if (isExplicitlyAdded && this.m_context._autoCleanup) {
delete this._autoCleanupList[object._objectPath.objectPathInfo.Id];
}
return;
}
var referenceId = object[Constants.referenceId];
var donotKeepReference = object._objectPath.objectPathInfo[Constants.objectPathInfoDoNotKeepReferenceFieldName];
if (donotKeepReference) {
throw Utility.createRuntimeError(CoreErrorCodes.generalException, CoreUtility._getResourceString(ResourceStrings.objectIsUntracked), null);
}
if (Utility.isNullOrEmptyString(referenceId) && object._KeepReference) {
object._KeepReference();
ActionFactory.createInstantiateAction(this.m_context, object);
if (isExplicitlyAdded && this.m_context._autoCleanup) {
delete this._autoCleanupList[object._objectPath.objectPathInfo.Id];
}
object[Constants.isTracked] = true;
}
};
TrackedObjects.prototype.remove = function (param) {
var _this = this;
if (Array.isArray(param)) {
param.forEach(function (item) { return _this._removeCommon(item); });
}
else {
this._removeCommon(param);
}
};
TrackedObjects.prototype._removeCommon = function (object) {
object._objectPath.objectPathInfo[Constants.objectPathInfoDoNotKeepReferenceFieldName] = true;
object.context._pendingRequest._removeKeepReferenceAction(object._objectPath.objectPathInfo.Id);
var referenceId = object[Constants.referenceId];
if (!Utility.isNullOrEmptyString(referenceId)) {
var rootObject = this.m_context._rootObject;
if (rootObject._RemoveReference) {
rootObject._RemoveReference(referenceId);
}
}
delete object[Constants.isTracked];
};
TrackedObjects.prototype._retrieveAndClearAutoCleanupList = function () {
var list = this._autoCleanupList;
this._autoCleanupList = {};
return list;
};
return TrackedObjects;
}());
OfficeExtension_1.TrackedObjects = TrackedObjects;
var RequestPrettyPrinter = (function () {
function RequestPrettyPrinter(globalObjName, referencedObjectPaths, actions, showDispose, removePII) {
if (!globalObjName) {
globalObjName = 'root';
}
this.m_globalObjName = globalObjName;
this.m_referencedObjectPaths = referencedObjectPaths;
this.m_actions = actions;
this.m_statements = [];
this.m_variableNameForObjectPathMap = {};
this.m_variableNameToObjectPathMap = {};
this.m_declaredObjectPathMap = {};
this.m_showDispose = showDispose;
this.m_removePII = removePII;
}
RequestPrettyPrinter.prototype.process = function () {
if (this.m_showDispose) {
ClientRequest._calculateLastUsedObjectPathIds(this.m_actions);
}
for (var i = 0; i < this.m_actions.length; i++) {
this.processOneAction(this.m_actions[i]);
}
return this.m_statements;
};
RequestPrettyPrinter.prototype.processForDebugStatementInfo = function (actionIndex) {
if (this.m_showDispose) {
ClientRequest._calculateLastUsedObjectPathIds(this.m_actions);
}
var surroundingCount = 5;
this.m_statements = [];
var oneStatement = '';
var statementIndex = -1;
for (var i = 0; i < this.m_actions.length; i++) {
this.processOneAction(this.m_actions[i]);
if (actionIndex == i) {
statementIndex = this.m_statements.length - 1;
}
if (statementIndex >= 0 && this.m_statements.length > statementIndex + surroundingCount + 1) {
break;
}
}
if (statementIndex < 0) {
return null;
}
var startIndex = statementIndex - surroundingCount;
if (startIndex < 0) {
startIndex = 0;
}
var endIndex = statementIndex + 1 + surroundingCount;
if (endIndex > this.m_statements.length) {
endIndex = this.m_statements.length;
}
var surroundingStatements = [];
if (startIndex != 0) {
surroundingStatements.push('...');
}
for (var i_1 = startIndex; i_1 < statementIndex; i_1++) {
surroundingStatements.push(this.m_statements[i_1]);
}
surroundingStatements.push('// >>>>>');
surroundingStatements.push(this.m_statements[statementIndex]);
surroundingStatements.push('// <<<<<');
for (var i_2 = statementIndex + 1; i_2 < endIndex; i_2++) {
surroundingStatements.push(this.m_statements[i_2]);
}
if (endIndex < this.m_statements.length) {
surroundingStatements.push('...');
}
return {
statement: this.m_statements[statementIndex],
surroundingStatements: surroundingStatements
};
};
RequestPrettyPrinter.prototype.processOneAction = function (action) {
var actionInfo = action.actionInfo;
switch (actionInfo.ActionType) {
case 1:
this.processInstantiateAction(action);
break;
case 3:
this.processMethodAction(action);
break;
case 2:
this.processQueryAction(action);
break;
case 7:
this.processQueryAsJsonAction(action);
break;
case 6:
this.processRecursiveQueryAction(action);
break;
case 4:
this.processSetPropertyAction(action);
break;
case 5:
this.processTraceAction(action);
break;
case 8:
this.processEnsureUnchangedAction(action);
break;
case 9:
this.processUpdateAction(action);
break;
}
};
RequestPrettyPrinter.prototype.processInstantiateAction = function (action) {
var objId = action.actionInfo.ObjectPathId;
var objPath = this.m_referencedObjectPaths[objId];
var varName = this.getObjVarName(objId);
if (!this.m_declaredObjectPathMap[objId]) {
var statement = 'var ' + varName + ' = ' + this.buildObjectPathExpressionWithParent(objPath) + ';';
statement = this.appendDisposeCommentIfRelevant(statement, action);
this.m_statements.push(statement);
this.m_declaredObjectPathMap[objId] = varName;
}
else {
var statement = '// Instantiate {' + varName + '}';
statement = this.appendDisposeCommentIfRelevant(statement, action);
this.m_statements.push(statement);
}
};
RequestPrettyPrinter.prototype.processMethodAction = function (action) {
var methodName = action.actionInfo.Name;
if (methodName === '_KeepReference') {
if (!OfficeExtension_1._internalConfig.showInternalApiInDebugInfo) {
return;
}
methodName = 'track';
}
var statement = this.getObjVarName(action.actionInfo.ObjectPathId) +
'.' +
Utility._toCamelLowerCase(methodName) +
'(' +
this.buildArgumentsExpression(action.actionInfo.ArgumentInfo) +
');';
statement = this.appendDisposeCommentIfRelevant(statement, action);
this.m_statements.push(statement);
};
RequestPrettyPrinter.prototype.processQueryAction = function (action) {
var queryExp = this.buildQueryExpression(action);
var statement = this.getObjVarName(action.actionInfo.ObjectPathId) + '.load(' + queryExp + ');';
statement = this.appendDisposeCommentIfRelevant(statement, action);
this.m_statements.push(statement);
};
RequestPrettyPrinter.prototype.processQueryAsJsonAction = function (action) {
var queryExp = this.buildQueryExpression(action);
var statement = this.getObjVarName(action.actionInfo.ObjectPathId) + '.retrieve(' + queryExp + ');';
statement = this.appendDisposeCommentIfRelevant(statement, action);
this.m_statements.push(statement);
};
RequestPrettyPrinter.prototype.processRecursiveQueryAction = function (action) {
var queryExp = '';
if (action.actionInfo.RecursiveQueryInfo) {
queryExp = JSON.stringify(action.actionInfo.RecursiveQueryInfo);
}
var statement = this.getObjVarName(action.actionInfo.ObjectPathId) + '.loadRecursive(' + queryExp + ');';
statement = this.appendDisposeCommentIfRelevant(statement, action);
this.m_statements.push(statement);
};
RequestPrettyPrinter.prototype.processSetPropertyAction = function (action) {
var statement = this.getObjVarName(action.actionInfo.ObjectPathId) +
'.' +
Utility._toCamelLowerCase(action.actionInfo.Name) +
' = ' +
this.buildArgumentsExpression(action.actionInfo.ArgumentInfo) +
';';
statement = this.appendDisposeCommentIfRelevant(statement, action);
this.m_statements.push(statement);
};
RequestPrettyPrinter.prototype.processTraceAction = function (action) {
var statement = 'context.trace();';
statement = this.appendDisposeCommentIfRelevant(statement, action);
this.m_statements.push(statement);
};
RequestPrettyPrinter.prototype.processEnsureUnchangedAction = function (action) {
var statement = this.getObjVarName(action.actionInfo.ObjectPathId) +
'.ensureUnchanged(' +
JSON.stringify(action.actionInfo.ObjectState) +
');';
statement = this.appendDisposeCommentIfRelevant(statement, action);
this.m_statements.push(statement);
};
RequestPrettyPrinter.prototype.processUpdateAction = function (action) {
var statement = this.getObjVarName(action.actionInfo.ObjectPathId) +
'.update(' +
JSON.stringify(action.actionInfo.ObjectState) +
');';
statement = this.appendDisposeCommentIfRelevant(statement, action);
this.m_statements.push(statement);
};
RequestPrettyPrinter.prototype.appendDisposeCommentIfRelevant = function (statement, action) {
var _this = this;
if (this.m_showDispose) {
var lastUsedObjectPathIds = action.actionInfo.L;
if (lastUsedObjectPathIds && lastUsedObjectPathIds.length > 0) {
var objectNamesToDispose = lastUsedObjectPathIds.map(function (item) { return _this.getObjVarName(item); }).join(', ');
return statement + ' // And then dispose {' + objectNamesToDispose + '}';
}
}
return statement;
};
RequestPrettyPrinter.prototype.buildQueryExpression = function (action) {
if (action.actionInfo.QueryInfo) {
var option = {};
option.select = action.actionInfo.QueryInfo.Select;
option.expand = action.actionInfo.QueryInfo.Expand;
option.skip = action.actionInfo.QueryInfo.Skip;
option.top = action.actionInfo.QueryInfo.Top;
if (typeof option.top === 'undefined' &&
typeof option.skip === 'undefined' &&
typeof option.expand === 'undefined') {
if (typeof option.select === 'undefined') {
return '';
}
else {
return JSON.stringify(option.select);
}
}
else {
return JSON.stringify(option);
}
}
return '';
};
RequestPrettyPrinter.prototype.buildObjectPathExpressionWithParent = function (objPath) {
var hasParent = objPath.objectPathInfo.ObjectPathType == 5 ||
objPath.objectPathInfo.ObjectPathType == 3 ||
objPath.objectPathInfo.ObjectPathType == 4;
if (hasParent && objPath.objectPathInfo.ParentObjectPathId) {
return (this.getObjVarName(objPath.objectPathInfo.ParentObjectPathId) + '.' + this.buildObjectPathExpression(objPath));
}
return this.buildObjectPathExpression(objPath);
};
RequestPrettyPrinter.prototype.buildObjectPathExpression = function (objPath) {
var expr = this.buildObjectPathInfoExpression(objPath.objectPathInfo);
var originalObjectPathInfo = objPath.originalObjectPathInfo;
if (originalObjectPathInfo) {
expr = expr + ' /* originally ' + this.buildObjectPathInfoExpression(originalObjectPathInfo) + ' */';
}
return expr;
};
RequestPrettyPrinter.prototype.buildObjectPathInfoExpression = function (objectPathInfo) {
switch (objectPathInfo.ObjectPathType) {
case 1:
return 'context.' + this.m_globalObjName;
case 5:
return 'getItem(' + this.buildArgumentsExpression(objectPathInfo.ArgumentInfo) + ')';
case 3:
return (Utility._toCamelLowerCase(objectPathInfo.Name) +
'(' +
this.buildArgumentsExpression(objectPathInfo.ArgumentInfo) +
')');
case 2:
return objectPathInfo.Name + '.newObject()';
case 7:
return 'null';
case 4:
return Utility._toCamelLowerCase(objectPathInfo.Name);
case 6:
return ('context.' + this.m_globalObjName + '._getObjectByReferenceId(' + JSON.stringify(objectPathInfo.Name) + ')');
}
};
RequestPrettyPrinter.prototype.buildArgumentsExpression = function (args) {
var ret = '';
if (!args.Arguments || args.Arguments.length === 0) {
return ret;
}
if (this.m_removePII) {
if (typeof args.Arguments[0] === 'undefined') {
return ret;
}
return '...';
}
for (var i = 0; i < args.Arguments.length; i++) {
if (i > 0) {
ret = ret + ', ';
}
ret =
ret +
this.buildArgumentLiteral(args.Arguments[i], args.ReferencedObjectPathIds ? args.ReferencedObjectPathIds[i] : null);
}
if (ret === 'undefined') {
ret = '';
}
return ret;
};
RequestPrettyPrinter.prototype.buildArgumentLiteral = function (value, objectPathId) {
if (typeof value == 'number' && value === objectPathId) {
return this.getObjVarName(objectPathId);
}
else {
return JSON.stringify(value);
}
};
RequestPrettyPrinter.prototype.getObjVarNameBase = function (objectPathId) {
var ret = 'v';
var objPath = this.m_referencedObjectPaths[objectPathId];
if (objPath) {
switch (objPath.objectPathInfo.ObjectPathType) {
case 1:
ret = this.m_globalObjName;
break;
case 4:
ret = Utility._toCamelLowerCase(objPath.objectPathInfo.Name);
break;
case 3:
var methodName = objPath.objectPathInfo.Name;
if (methodName.length > 3 && methodName.substr(0, 3) === 'Get') {
methodName = methodName.substr(3);
}
ret = Utility._toCamelLowerCase(methodName);
break;
case 5:
var parentName = this.getObjVarNameBase(objPath.objectPathInfo.ParentObjectPathId);
if (parentName.charAt(parentName.length - 1) === 's') {
ret = parentName.substr(0, parentName.length - 1);
}
else {
ret = parentName + 'Item';
}
break;
}
}
return ret;
};
RequestPrettyPrinter.prototype.getObjVarName = function (objectPathId) {
if (this.m_variableNameForObjectPathMap[objectPathId]) {
return this.m_variableNameForObjectPathMap[objectPathId];
}
var ret = this.getObjVarNameBase(objectPathId);
if (!this.m_variableNameToObjectPathMap[ret]) {
this.m_variableNameForObjectPathMap[objectPathId] = ret;
this.m_variableNameToObjectPathMap[ret] = objectPathId;
return ret;
}
var i = 1;
while (this.m_variableNameToObjectPathMap[ret + i.toString()]) {
i++;
}
ret = ret + i.toString();
this.m_variableNameForObjectPathMap[objectPathId] = ret;
this.m_variableNameToObjectPathMap[ret] = objectPathId;
return ret;
};
return RequestPrettyPrinter;
}());
var ResourceStrings = (function (_super) {
__extends(ResourceStrings, _super);
function ResourceStrings() {
return _super !== null && _super.apply(this, arguments) || this;
}
ResourceStrings.cannotRegisterEvent = 'CannotRegisterEvent';
ResourceStrings.connectionFailureWithStatus = 'ConnectionFailureWithStatus';
ResourceStrings.connectionFailureWithDetails = 'ConnectionFailureWithDetails';
ResourceStrings.propertyNotLoaded = 'PropertyNotLoaded';
ResourceStrings.runMustReturnPromise = 'RunMustReturnPromise';
ResourceStrings.moreInfoInnerError = 'MoreInfoInnerError';
ResourceStrings.cannotApplyPropertyThroughSetMethod = 'CannotApplyPropertyThroughSetMethod';
ResourceStrings.invalidOperationInCellEditMode = 'InvalidOperationInCellEditMode';
ResourceStrings.objectIsUntracked = 'ObjectIsUntracked';
ResourceStrings.customFunctionDefintionMissing = 'CustomFunctionDefintionMissing';
ResourceStrings.customFunctionImplementationMissing = 'CustomFunctionImplementationMissing';
ResourceStrings.customFunctionNameContainsBadChars = 'CustomFunctionNameContainsBadChars';
ResourceStrings.customFunctionNameCannotSplit = 'CustomFunctionNameCannotSplit';
ResourceStrings.customFunctionUnexpectedNumberOfEntriesInResultBatch = 'CustomFunctionUnexpectedNumberOfEntriesInResultBatch';
ResourceStrings.customFunctionCancellationHandlerMissing = 'CustomFunctionCancellationHandlerMissing';
ResourceStrings.customFunctionInvalidFunction = 'CustomFunctionInvalidFunction';
ResourceStrings.customFunctionInvalidFunctionMapping = 'CustomFunctionInvalidFunctionMapping';
ResourceStrings.customFunctionWindowMissing = 'CustomFunctionWindowMissing';
ResourceStrings.customFunctionDefintionMissingOnWindow = 'CustomFunctionDefintionMissingOnWindow';
ResourceStrings.pendingBatchInProgress = 'PendingBatchInProgress';
ResourceStrings.notInsideBatch = 'NotInsideBatch';
ResourceStrings.cannotUpdateReadOnlyProperty = 'CannotUpdateReadOnlyProperty';
return ResourceStrings;
}(CommonResourceStrings));
OfficeExtension_1.ResourceStrings = ResourceStrings;
CoreUtility.addResourceStringValues({
CannotRegisterEvent: 'The event handler cannot be registered.',
PropertyNotLoaded: "The property '{0}' is not available. Before reading the property's value, call the load method on the containing object and call \"context.sync()\" on the associated request context.",
RunMustReturnPromise: 'The batch function passed to the ".run" method didn\'t return a promise. The function must return a promise, so that any automatically-tracked objects can be released at the completion of the batch operation. Typically, you return a promise by returning the response from "context.sync()".',
InvalidOrTimedOutSessionMessage: 'Your Office Online session has expired or is invalid. To continue, refresh the page.',
InvalidOperationInCellEditMode: 'Excel is in cell-editing mode. Please exit the edit mode by pressing ENTER or TAB or selecting another cell, and then try again.',
CustomFunctionDefintionMissing: "A property with the name '{0}' that represents the function's definition must exist on Excel.Script.CustomFunctions.",
CustomFunctionDefintionMissingOnWindow: "A property with the name '{0}' that represents the function's definition must exist on the window object.",
CustomFunctionImplementationMissing: "The property with the name '{0}' on Excel.Script.CustomFunctions that represents the function's definition must contain a 'call' property that implements the function.",
CustomFunctionNameContainsBadChars: 'The function name may only contain letters, digits, underscores, and periods.',
CustomFunctionNameCannotSplit: 'The function name must contain a non-empty namespace and a non-empty short name.',
CustomFunctionUnexpectedNumberOfEntriesInResultBatch: "The batching function returned a number of results that doesn't match the number of parameter value sets that were passed into it.",
CustomFunctionCancellationHandlerMissing: 'The cancellation handler onCanceled is missing in the function. The handler must be present as the function is defined as cancelable.',
CustomFunctionInvalidFunction: "The property with the name '{0}' that represents the function's definition is not a valid function.",
CustomFunctionInvalidFunctionMapping: "The property with the name '{0}' on CustomFunctionMappings that represents the function's definition is not a valid function.",
CustomFunctionWindowMissing: 'The window object was not found.',
PendingBatchInProgress: 'There is a pending batch in progress. The batch method may not be called inside another batch, or simultaneously with another batch.',
NotInsideBatch: 'Operations may not be invoked outside of a batch method.',
CannotUpdateReadOnlyProperty: "The property '{0}' is read-only and it cannot be updated.",
ObjectIsUntracked: 'The object is untracked.'
});
var Utility = (function (_super) {
__extends(Utility, _super);
function Utility() {
return _super !== null && _super.apply(this, arguments) || this;
}
Utility.fixObjectPathIfNecessary = function (clientObject, value) {
if (clientObject && clientObject._objectPath && value) {
clientObject._objectPath.updateUsingObjectData(value, clientObject);
}
};
Utility.load = function (clientObj, option) {
clientObj.context.load(clientObj, option);
return clientObj;
};
Utility.loadAndSync = function (clientObj, option) {
clientObj.context.load(clientObj, option);
return clientObj.context.sync().then(function () { return clientObj; });
};
Utility.retrieve = function (clientObj, option) {
var shouldPolyfill = OfficeExtension_1._internalConfig.alwaysPolyfillClientObjectRetrieveMethod;
if (!shouldPolyfill) {
shouldPolyfill = !Utility.isSetSupported('RichApiRuntime', '1.1');
}
var result = new RetrieveResultImpl(clientObj, shouldPolyfill);
clientObj._retrieve(option, result);
return result;
};
Utility.retrieveAndSync = function (clientObj, option) {
var result = Utility.retrieve(clientObj, option);
return clientObj.context.sync().then(function () { return result; });
};
Utility.toJson = function (clientObj, scalarProperties, navigationProperties, collectionItemsIfAny) {
var result = {};
for (var prop in scalarProperties) {
var value = scalarProperties[prop];
if (typeof value !== 'undefined') {
result[prop] = value;
}
}
for (var prop in navigationProperties) {
var value = navigationProperties[prop];
if (typeof value !== 'undefined') {
if (value[Utility.fieldName_isCollection] && typeof value[Utility.fieldName_m__items] !== 'undefined') {
result[prop] = value.toJSON()['items'];
}
else {
result[prop] = value.toJSON();
}
}
}
if (collectionItemsIfAny) {
result['items'] = collectionItemsIfAny.map(function (item) { return item.toJSON(); });
}
return result;
};
Utility.throwError = function (resourceId, arg, errorLocation) {
throw new _Internal.RuntimeError({
code: resourceId,
httpStatusCode: 400,
message: CoreUtility._getResourceString(resourceId, arg),
debugInfo: errorLocation ? { errorLocation: errorLocation } : undefined
});
};
Utility.createRuntimeError = function (code, message, location, httpStatusCode, data) {
return new _Internal.RuntimeError({
code: code,
httpStatusCode: httpStatusCode,
message: message,
debugInfo: { errorLocation: location },
data: data
});
};
Utility.throwIfNotLoaded = function (propertyName, fieldValue, entityName, isNull) {
if (!isNull &&
CoreUtility.isUndefined(fieldValue) &&
propertyName.charCodeAt(0) != Utility.s_underscoreCharCode) {
throw Utility.createPropertyNotLoadedException(entityName, propertyName);
}
};
Utility.createPropertyNotLoadedException = function (entityName, propertyName) {
return new _Internal.RuntimeError({
code: ErrorCodes.propertyNotLoaded,
httpStatusCode: 400,
message: CoreUtility._getResourceString(ResourceStrings.propertyNotLoaded, propertyName),
debugInfo: entityName ? { errorLocation: entityName + '.' + propertyName } : undefined
});
};
Utility.createCannotUpdateReadOnlyPropertyException = function (entityName, propertyName) {
return new _Internal.RuntimeError({
code: ErrorCodes.cannotUpdateReadOnlyProperty,
httpStatusCode: 400,
message: CoreUtility._getResourceString(ResourceStrings.cannotUpdateReadOnlyProperty, propertyName),
debugInfo: entityName ? { errorLocation: entityName + '.' + propertyName } : undefined
});
};
Utility.promisify = function (action) {
return new OfficeExtension_1.Promise(function (resolve, reject) {
var callback = function (result) {
if (result.status == 'failed') {
reject(result.error);
}
else {
resolve(result.value);
}
};
action(callback);
});
};
Utility._addActionResultHandler = function (clientObj, action, resultHandler) {
clientObj.context._pendingRequest.addActionResultHandler(action, resultHandler);
};
Utility._handleNavigationPropertyResults = function (clientObj, objectValue, propertyNames) {
for (var i = 0; i < propertyNames.length - 1; i += 2) {
if (!CoreUtility.isUndefined(objectValue[propertyNames[i + 1]])) {
clientObj[propertyNames[i]]._handleResult(objectValue[propertyNames[i + 1]]);
}
}
};
Utility._fixupApiFlags = function (flags) {
if (typeof flags === 'boolean') {
if (flags) {
flags = 1;
}
else {
flags = 0;
}
}
return flags;
};
Utility.definePropertyThrowUnloadedException = function (obj, typeName, propertyName) {
Object.defineProperty(obj, propertyName, {
configurable: true,
enumerable: true,
get: function () {
throw Utility.createPropertyNotLoadedException(typeName, propertyName);
},
set: function () {
throw Utility.createCannotUpdateReadOnlyPropertyException(typeName, propertyName);
}
});
};
Utility.defineReadOnlyPropertyWithValue = function (obj, propertyName, value) {
Object.defineProperty(obj, propertyName, {
configurable: true,
enumerable: true,
get: function () {
return value;
},
set: function () {
throw Utility.createCannotUpdateReadOnlyPropertyException(null, propertyName);
}
});
};
Utility.processRetrieveResult = function (proxy, value, result, childItemCreateFunc) {
if (CoreUtility.isNullOrUndefined(value)) {
return;
}
if (childItemCreateFunc) {
var data = value[Constants.itemsLowerCase];
if (Array.isArray(data)) {
var itemsResult = [];
for (var i = 0; i < data.length; i++) {
var itemProxy = childItemCreateFunc(data[i], i);
var itemResult = {};
itemResult[Constants.proxy] = itemProxy;
itemProxy._handleRetrieveResult(data[i], itemResult);
itemsResult.push(itemResult);
}
Utility.defineReadOnlyPropertyWithValue(result, Constants.itemsLowerCase, itemsResult);
}
}
else {
var scalarPropertyNames = proxy[Constants.scalarPropertyNames];
var navigationPropertyNames = proxy[Constants.navigationPropertyNames];
var typeName = proxy[Constants.className];
if (scalarPropertyNames) {
for (var i = 0; i < scalarPropertyNames.length; i++) {
var propName = scalarPropertyNames[i];
var propValue = value[propName];
if (CoreUtility.isUndefined(propValue)) {
Utility.definePropertyThrowUnloadedException(result, typeName, propName);
}
else {
Utility.defineReadOnlyPropertyWithValue(result, propName, propValue);
}
}
}
if (navigationPropertyNames) {
for (var i = 0; i < navigationPropertyNames.length; i++) {
var propName = navigationPropertyNames[i];
var propValue = value[propName];
if (CoreUtility.isUndefined(propValue)) {
Utility.definePropertyThrowUnloadedException(result, typeName, propName);
}
else {
var propProxy = proxy[propName];
var propResult = {};
propProxy._handleRetrieveResult(propValue, propResult);
propResult[Constants.proxy] = propProxy;
if (Array.isArray(propResult[Constants.itemsLowerCase])) {
propResult = propResult[Constants.itemsLowerCase];
}
Utility.defineReadOnlyPropertyWithValue(result, propName, propResult);
}
}
}
}
};
Utility.setMockData = function (clientObj, value, childItemCreateFunc, setItemsFunc) {
if (CoreUtility.isNullOrUndefined(value)) {
clientObj._handleResult(value);
return;
}
if (clientObj[Constants.scalarPropertyOriginalNames]) {
var result = {};
var scalarPropertyOriginalNames = clientObj[Constants.scalarPropertyOriginalNames];
var scalarPropertyNames = clientObj[Constants.scalarPropertyNames];
for (var i = 0; i < scalarPropertyNames.length; i++) {
if (typeof (value[scalarPropertyNames[i]]) !== 'undefined') {
result[scalarPropertyOriginalNames[i]] = value[scalarPropertyNames[i]];
}
}
clientObj._handleResult(result);
}
if (clientObj[Constants.navigationPropertyNames]) {
var navigationPropertyNames = clientObj[Constants.navigationPropertyNames];
for (var i = 0; i < navigationPropertyNames.length; i++) {
if (typeof (value[navigationPropertyNames[i]]) !== 'undefined') {
var navigationPropValue = clientObj[navigationPropertyNames[i]];
if (navigationPropValue.setMockData) {
navigationPropValue.setMockData(value[navigationPropertyNames[i]]);
}
}
}
}
if (clientObj[Constants.isCollection] && childItemCreateFunc) {
var itemsData = Array.isArray(value) ? value : value[Constants.itemsLowerCase];
if (Array.isArray(itemsData)) {
var items = [];
for (var i = 0; i < itemsData.length; i++) {
var item = childItemCreateFunc(itemsData, i);
Utility.setMockData(item, itemsData[i]);
items.push(item);
}
setItemsFunc(items);
}
}
};
Utility.applyMixin = function (derived, base) {
Object.getOwnPropertyNames(base.prototype).forEach(function (name) {
if (name !== 'constructor') {
Object.defineProperty(derived.prototype, name, Object.getOwnPropertyDescriptor(base.prototype, name));
}
});
};
Utility.fieldName_m__items = 'm__items';
Utility.fieldName_isCollection = '_isCollection';
Utility._synchronousCleanup = false;
Utility.s_underscoreCharCode = '_'.charCodeAt(0);
return Utility;
}(CommonUtility));
OfficeExtension_1.Utility = Utility;
var BatchApiHelper = (function () {
function BatchApiHelper() {
}
BatchApiHelper.invokeMethod = function (obj, methodName, operationType, args, flags, resultProcessType) {
var action = ActionFactory.createMethodAction(obj.context, obj, methodName, operationType, args, flags);
var result = new ClientResult(resultProcessType);
Utility._addActionResultHandler(obj, action, result);
return result;
};
BatchApiHelper.invokeEnsureUnchanged = function (obj, objectState) {
ActionFactory.createEnsureUnchangedAction(obj.context, obj, objectState);
};
BatchApiHelper.invokeSetProperty = function (obj, propName, propValue, flags) {
ActionFactory.createSetPropertyAction(obj.context, obj, propName, propValue, flags);
};
BatchApiHelper.createRootServiceObject = function (type, context) {
var objectPath = ObjectPathFactory.createGlobalObjectObjectPath(context);
return new type(context, objectPath);
};
BatchApiHelper.createObjectFromReferenceId = function (type, context, referenceId) {
var objectPath = ObjectPathFactory.createReferenceIdObjectPath(context, referenceId);
return new type(context, objectPath);
};
BatchApiHelper.createTopLevelServiceObject = function (type, context, typeName, isCollection, flags) {
var objectPath = ObjectPathFactory.createNewObjectObjectPath(context, typeName, isCollection, flags);
return new type(context, objectPath);
};
BatchApiHelper.createPropertyObject = function (type, parent, propertyName, isCollection, flags) {
var objectPath = ObjectPathFactory.createPropertyObjectPath(parent.context, parent, propertyName, isCollection, false, flags);
return new type(parent.context, objectPath);
};
BatchApiHelper.createIndexerObject = function (type, parent, args) {
var objectPath = ObjectPathFactory.createIndexerObjectPath(parent.context, parent, args);
return new type(parent.context, objectPath);
};
BatchApiHelper.createMethodObject = function (type, parent, methodName, operationType, args, isCollection, isInvalidAfterRequest, getByIdMethodName, flags) {
var objectPath = ObjectPathFactory.createMethodObjectPath(parent.context, parent, methodName, operationType, args, isCollection, isInvalidAfterRequest, getByIdMethodName, flags);
return new type(parent.context, objectPath);
};
BatchApiHelper.createChildItemObject = function (type, hasIndexerMethod, parent, chileItem, index) {
var objectPath = ObjectPathFactory.createChildItemObjectPathUsingIndexerOrGetItemAt(hasIndexerMethod, parent.context, parent, chileItem, index);
return new type(parent.context, objectPath);
};
return BatchApiHelper;
}());
OfficeExtension_1.BatchApiHelper = BatchApiHelper;
var LibraryBuilder = (function () {
function LibraryBuilder(options) {
this.m_namespaceMap = {};
this.m_namespace = options.metadata.name;
this.m_targetNamespaceObject = options.targetNamespaceObject;
this.m_namespaceMap[this.m_namespace] = options.targetNamespaceObject;
if (options.namespaceMap) {
for (var ns in options.namespaceMap) {
this.m_namespaceMap[ns] = options.namespaceMap[ns];
}
}
this.m_defaultApiSetName = options.metadata.defaultApiSetName;
this.m_hostName = options.metadata.hostName;
var metadata = options.metadata;
if (metadata.enumTypes) {
for (var i = 0; i < metadata.enumTypes.length; i++) {
this.buildEnumType(metadata.enumTypes[i]);
}
}
if (metadata.apiSets) {
for (var i = 0; i < metadata.apiSets.length; i++) {
var elem = metadata.apiSets[i];
if (Array.isArray(elem)) {
metadata.apiSets[i] = {
version: elem[0],
name: elem[1] || this.m_defaultApiSetName
};
}
}
this.m_apiSets = metadata.apiSets;
}
this.m_strings = metadata.strings;
if (metadata.clientObjectTypes) {
for (var i = 0; i < metadata.clientObjectTypes.length; i++) {
var elem = metadata.clientObjectTypes[i];
if (Array.isArray(elem)) {
this.ensureArraySize(elem, 11);
metadata.clientObjectTypes[i] = {
name: this.getString(elem[0]),
behaviorFlags: elem[1],
collectionPropertyPath: this.getString(elem[6]),
newObjectServerTypeFullName: this.getString(elem[9]),
newObjectApiFlags: elem[10],
childItemTypeFullName: this.getString(elem[7]),
scalarProperties: elem[2],
navigationProperties: elem[3],
scalarMethods: elem[4],
navigationMethods: elem[5],
events: elem[8]
};
}
this.buildClientObjectType(metadata.clientObjectTypes[i], options.fullyInitialize);
}
}
}
LibraryBuilder.prototype.ensureArraySize = function (value, size) {
var count = size - value.length;
while (count > 0) {
value.push(0);
count--;
}
};
LibraryBuilder.prototype.getString = function (ordinalOrValue) {
if (typeof (ordinalOrValue) === "number") {
if (ordinalOrValue > 0) {
return this.m_strings[ordinalOrValue - 1];
}
return null;
}
return ordinalOrValue;
};
LibraryBuilder.prototype.buildEnumType = function (elem) {
var enumType;
if (Array.isArray(elem)) {
enumType = {
name: elem[0],
fields: elem[2]
};
if (!enumType.fields) {
enumType.fields = {};
}
var fieldsWithCamelUpperCaseValue = elem[1];
if (Array.isArray(fieldsWithCamelUpperCaseValue)) {
for (var index = 0; index < fieldsWithCamelUpperCaseValue.length; index++) {
enumType.fields[fieldsWithCamelUpperCaseValue[index]] = this.toSimpleCamelUpperCase(fieldsWithCamelUpperCaseValue[index]);
}
}
}
else {
enumType = elem;
}
this.m_targetNamespaceObject[enumType.name] = enumType.fields;
};
LibraryBuilder.prototype.buildClientObjectType = function (typeInfo, fullyInitialize) {
var thisBuilder = this;
var type = function (context, objectPath) {
ClientObject.apply(this, arguments);
if (!thisBuilder.m_targetNamespaceObject[typeInfo.name]._typeInited) {
thisBuilder.buildPrototype(thisBuilder.m_targetNamespaceObject[typeInfo.name], typeInfo);
thisBuilder.m_targetNamespaceObject[typeInfo.name]._typeInited = true;
}
if (OfficeExtension_1._internalConfig.appendTypeNameToObjectPathInfo) {
if (this._objectPath && this._objectPath.objectPathInfo && this._className) {
this._objectPath.objectPathInfo.T = this._className;
}
}
};
this.m_targetNamespaceObject[typeInfo.name] = type;
this.extendsType(type, ClientObject);
this.buildNewObject(type, typeInfo);
if ((typeInfo.behaviorFlags & 2) !== 0) {
type.prototype._KeepReference = function () {
BatchApiHelper.invokeMethod(this, "_KeepReference", 1, [], 0, 0);
};
}
if ((typeInfo.behaviorFlags & 32) !== 0) {
var func = this.getFunction(LibraryBuilder.CustomizationCodeNamespace + "." + typeInfo.name + "_StaticCustomize");
func.call(null, type);
}
if (fullyInitialize) {
this.buildPrototype(type, typeInfo);
type._typeInited = true;
}
};
LibraryBuilder.prototype.extendsType = function (d, b) {
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
LibraryBuilder.prototype.findObjectUnderPath = function (top, paths, pathStartIndex) {
var obj = top;
for (var i = pathStartIndex; i < paths.length; i++) {
if (typeof (obj) !== 'object') {
throw new OfficeExtension_1.Error("Cannot find " + paths.join("."));
}
obj = obj[paths[i]];
}
return obj;
};
LibraryBuilder.prototype.getFunction = function (fullName) {
var ret = this.resolveObjectByFullName(fullName);
if (typeof (ret) !== 'function') {
throw new OfficeExtension_1.Error("Cannot find function or type: " + fullName);
}
return ret;
};
LibraryBuilder.prototype.resolveObjectByFullName = function (fullName) {
var parts = fullName.split('.');
if (parts.length === 1) {
return this.m_targetNamespaceObject[parts[0]];
}
var rootName = parts[0];
if (rootName === this.m_namespace) {
return this.findObjectUnderPath(this.m_targetNamespaceObject, parts, 1);
}
if (this.m_namespaceMap[rootName]) {
return this.findObjectUnderPath(this.m_namespaceMap[rootName], parts, 1);
}
return this.findObjectUnderPath(this.m_targetNamespaceObject, parts, 0);
};
LibraryBuilder.prototype.evaluateSimpleExpression = function (expression, thisObj) {
if (Utility.isNullOrUndefined(expression)) {
return null;
}
var paths = expression.split('.');
if (paths.length === 3 && paths[0] === 'OfficeExtension' && paths[1] === 'Constants') {
return Constants[paths[2]];
}
if (paths[0] === 'this') {
var obj = thisObj;
for (var i = 1; i < paths.length; i++) {
if (paths[i] == 'toString()') {
obj = obj.toString();
}
else if (paths[i].substr(paths[i].length - 2) === "()") {
obj = obj[paths[i].substr(0, paths[i].length - 2)]();
}
else {
obj = obj[paths[i]];
}
}
return obj;
}
throw new OfficeExtension_1.Error("Cannot evaluate: " + expression);
};
LibraryBuilder.prototype.evaluateEventTargetId = function (targetIdExpression, thisObj) {
if (Utility.isNullOrEmptyString(targetIdExpression)) {
return '';
}
return this.evaluateSimpleExpression(targetIdExpression, thisObj);
};
LibraryBuilder.prototype.isAllDigits = function (expression) {
var charZero = '0'.charCodeAt(0);
var charNine = '9'.charCodeAt(0);
for (var i = 0; i < expression.length; i++) {
if (expression.charCodeAt(i) < charZero ||
expression.charCodeAt(i) > charNine) {
return false;
}
}
return true;
};
LibraryBuilder.prototype.evaluateEventType = function (eventTypeExpression) {
if (Utility.isNullOrEmptyString(eventTypeExpression)) {
return 0;
}
if (this.isAllDigits(eventTypeExpression)) {
return parseInt(eventTypeExpression);
}
var ret = this.resolveObjectByFullName(eventTypeExpression);
if (typeof (ret) !== 'number') {
throw new OfficeExtension_1.Error("Invalid event type: " + eventTypeExpression);
}
return ret;
};
LibraryBuilder.prototype.buildPrototype = function (type, typeInfo) {
this.buildScalarProperties(type, typeInfo);
this.buildNavigationProperties(type, typeInfo);
this.buildScalarMethods(type, typeInfo);
this.buildNavigationMethods(type, typeInfo);
this.buildEvents(type, typeInfo);
this.buildHandleResult(type, typeInfo);
this.buildHandleIdResult(type, typeInfo);
this.buildHandleRetrieveResult(type, typeInfo);
this.buildLoad(type, typeInfo);
this.buildRetrieve(type, typeInfo);
this.buildSetMockData(type, typeInfo);
this.buildEnsureUnchanged(type, typeInfo);
this.buildUpdate(type, typeInfo);
this.buildSet(type, typeInfo);
this.buildToJSON(type, typeInfo);
this.buildItems(type, typeInfo);
this.buildTypeMetadataInfo(type, typeInfo);
this.buildTrackUntrack(type, typeInfo);
this.buildMixin(type, typeInfo);
};
LibraryBuilder.prototype.toSimpleCamelUpperCase = function (name) {
return name.substr(0, 1).toUpperCase() + name.substr(1);
};
LibraryBuilder.prototype.ensureOriginalName = function (member) {
if (member.originalName === null) {
member.originalName = this.toSimpleCamelUpperCase(member.name);
}
};
LibraryBuilder.prototype.getFieldName = function (member) {
return "m_" + member.name;
};
LibraryBuilder.prototype.throwIfApiNotSupported = function (typeInfo, member) {
if (this.m_apiSets && member.apiSetInfoOrdinal > 0) {
var apiSetInfo = this.m_apiSets[member.apiSetInfoOrdinal - 1];
if (apiSetInfo) {
Utility.throwIfApiNotSupported(typeInfo.name + "." + member.name, apiSetInfo.name, apiSetInfo.version, this.m_hostName);
}
}
};
LibraryBuilder.prototype.buildScalarProperties = function (type, typeInfo) {
if (Array.isArray(typeInfo.scalarProperties)) {
for (var i = 0; i < typeInfo.scalarProperties.length; i++) {
var elem = typeInfo.scalarProperties[i];
if (Array.isArray(elem)) {
this.ensureArraySize(elem, 6);
typeInfo.scalarProperties[i] = {
name: this.getString(elem[0]),
behaviorFlags: elem[1],
apiSetInfoOrdinal: elem[2],
originalName: this.getString(elem[3]),
setMethodApiFlags: elem[4],
undoableApiSetInfoOrdinal: elem[5]
};
}
this.buildScalarProperty(type, typeInfo, typeInfo.scalarProperties[i]);
}
}
};
LibraryBuilder.prototype.calculateApiFlags = function (apiFlags, undoableApiSetInfoOrdinal) {
if (undoableApiSetInfoOrdinal > 0) {
var undoableApiSetInfo = this.m_apiSets[undoableApiSetInfoOrdinal - 1];
if (undoableApiSetInfo) {
apiFlags = CommonUtility.calculateApiFlags(apiFlags, undoableApiSetInfo.name, undoableApiSetInfo.version);
}
}
return apiFlags;
};
LibraryBuilder.prototype.buildScalarProperty = function (type, typeInfo, propInfo) {
this.ensureOriginalName(propInfo);
var thisBuilder = this;
var fieldName = this.getFieldName(propInfo);
var descriptor = {
get: function () {
Utility.throwIfNotLoaded(propInfo.name, this[fieldName], typeInfo.name, this._isNull);
thisBuilder.throwIfApiNotSupported(typeInfo, propInfo);
return this[fieldName];
},
enumerable: true,
configurable: true
};
if ((propInfo.behaviorFlags & 2) === 0) {
descriptor.set = function (value) {
if (propInfo.behaviorFlags & 4) {
var customizationFunc = thisBuilder.getFunction(LibraryBuilder.CustomizationCodeNamespace + "." + typeInfo.name + "_" + propInfo.originalName + "_Set");
var handled = customizationFunc.call(this, this, value).handled;
if (handled) {
return;
}
}
this[fieldName] = value;
var apiFlags = thisBuilder.calculateApiFlags(propInfo.setMethodApiFlags, propInfo.undoableApiSetInfoOrdinal);
BatchApiHelper.invokeSetProperty(this, propInfo.originalName, value, apiFlags);
};
}
Object.defineProperty(type.prototype, propInfo.name, descriptor);
};
LibraryBuilder.prototype.buildNavigationProperties = function (type, typeInfo) {
if (Array.isArray(typeInfo.navigationProperties)) {
for (var i = 0; i < typeInfo.navigationProperties.length; i++) {
var elem = typeInfo.navigationProperties[i];
if (Array.isArray(elem)) {
this.ensureArraySize(elem, 8);
typeInfo.navigationProperties[i] = {
name: this.getString(elem[0]),
behaviorFlags: elem[2],
apiSetInfoOrdinal: elem[3],
originalName: this.getString(elem[4]),
getMethodApiFlags: elem[5],
setMethodApiFlags: elem[6],
propertyTypeFullName: this.getString(elem[1]),
undoableApiSetInfoOrdinal: elem[7]
};
}
this.buildNavigationProperty(type, typeInfo, typeInfo.navigationProperties[i]);
}
}
};
LibraryBuilder.prototype.buildNavigationProperty = function (type, typeInfo, propInfo) {
this.ensureOriginalName(propInfo);
var thisBuilder = this;
var fieldName = this.getFieldName(propInfo);
var descriptor = {
get: function () {
if (!this[thisBuilder.getFieldName(propInfo)]) {
thisBuilder.throwIfApiNotSupported(typeInfo, propInfo);
this[fieldName] = BatchApiHelper.createPropertyObject(thisBuilder.getFunction(propInfo.propertyTypeFullName), this, propInfo.originalName, (propInfo.behaviorFlags & 16) !== 0, propInfo.getMethodApiFlags);
}
if (propInfo.behaviorFlags & 64) {
var customizationFunc = thisBuilder.getFunction(LibraryBuilder.CustomizationCodeNamespace + "." + typeInfo.name + "_" + propInfo.originalName + "_Get");
customizationFunc.call(this, this, this[fieldName]);
}
return this[fieldName];
},
enumerable: true,
configurable: true
};
if ((propInfo.behaviorFlags & 2) === 0) {
descriptor.set = function (value) {
if (propInfo.behaviorFlags & 4) {
var customizationFunc = thisBuilder.getFunction(LibraryBuilder.CustomizationCodeNamespace + "." + typeInfo.name + "_" + propInfo.originalName + "_Set");
var handled = customizationFunc.call(this, this, value).handled;
if (handled) {
return;
}
}
this[fieldName] = value;
var apiFlags = thisBuilder.calculateApiFlags(propInfo.setMethodApiFlags, propInfo.undoableApiSetInfoOrdinal);
BatchApiHelper.invokeSetProperty(this, propInfo.originalName, value, apiFlags);
};
}
Object.defineProperty(type.prototype, propInfo.name, descriptor);
};
LibraryBuilder.prototype.buildScalarMethods = function (type, typeInfo) {
if (Array.isArray(typeInfo.scalarMethods)) {
for (var i = 0; i < typeInfo.scalarMethods.length; i++) {
var elem = typeInfo.scalarMethods[i];
if (Array.isArray(elem)) {
this.ensureArraySize(elem, 7);
typeInfo.scalarMethods[i] = {
name: this.getString(elem[0]),
behaviorFlags: elem[2],
apiSetInfoOrdinal: elem[3],
originalName: this.getString(elem[5]),
apiFlags: elem[4],
parameterCount: elem[1],
undoableApiSetInfoOrdinal: elem[6]
};
}
this.buildScalarMethod(type, typeInfo, typeInfo.scalarMethods[i]);
}
}
};
LibraryBuilder.prototype.buildScalarMethod = function (type, typeInfo, methodInfo) {
this.ensureOriginalName(methodInfo);
var thisBuilder = this;
type.prototype[methodInfo.name] = function () {
var args = [];
if ((methodInfo.behaviorFlags & 64) && methodInfo.parameterCount > 0) {
for (var i = 0; i < methodInfo.parameterCount - 1; i++) {
args.push(arguments[i]);
}
var rest = [];
for (var i = methodInfo.parameterCount - 1; i < arguments.length; i++) {
rest.push(arguments[i]);
}
args.push(rest);
}
else {
for (var i = 0; i < arguments.length; i++) {
args.push(arguments[i]);
}
}
if (methodInfo.behaviorFlags & 1) {
var customizationFunc = thisBuilder.getFunction(LibraryBuilder.CustomizationCodeNamespace + "." + typeInfo.name + "_" + methodInfo.originalName);
var applyArgs = [this];
for (var i = 0; i < args.length; i++) {
applyArgs.push(args[i]);
}
var _a = customizationFunc.apply(this, applyArgs), handled = _a.handled, result = _a.result;
if (handled) {
return result;
}
}
thisBuilder.throwIfApiNotSupported(typeInfo, methodInfo);
var resultProcessType = 0;
if (methodInfo.behaviorFlags & 32) {
resultProcessType = 1;
}
var operationType = 0;
if (methodInfo.behaviorFlags & 2) {
operationType = 1;
}
var apiFlags = thisBuilder.calculateApiFlags(methodInfo.apiFlags, methodInfo.undoableApiSetInfoOrdinal);
return BatchApiHelper.invokeMethod(this, methodInfo.originalName, operationType, args, apiFlags, resultProcessType);
};
};
LibraryBuilder.prototype.buildNavigationMethods = function (type, typeInfo) {
if (Array.isArray(typeInfo.navigationMethods)) {
for (var i = 0; i < typeInfo.navigationMethods.length; i++) {
var elem = typeInfo.navigationMethods[i];
if (Array.isArray(elem)) {
this.ensureArraySize(elem, 9);
typeInfo.navigationMethods[i] = {
name: this.getString(elem[0]),
behaviorFlags: elem[3],
apiSetInfoOrdinal: elem[4],
originalName: this.getString(elem[6]),
apiFlags: elem[5],
parameterCount: elem[2],
returnTypeFullName: this.getString(elem[1]),
returnObjectGetByIdMethodName: this.getString(elem[7]),
undoableApiSetInfoOrdinal: elem[8]
};
}
this.buildNavigationMethod(type, typeInfo, typeInfo.navigationMethods[i]);
}
}
};
LibraryBuilder.prototype.buildNavigationMethod = function (type, typeInfo, methodInfo) {
this.ensureOriginalName(methodInfo);
var thisBuilder = this;
type.prototype[methodInfo.name] = function () {
var args = [];
if ((methodInfo.behaviorFlags & 64) && methodInfo.parameterCount > 0) {
for (var i = 0; i < methodInfo.parameterCount - 1; i++) {
args.push(arguments[i]);
}
var rest = [];
for (var i = methodInfo.parameterCount - 1; i < arguments.length; i++) {
rest.push(arguments[i]);
}
args.push(rest);
}
else {
for (var i = 0; i < arguments.length; i++) {
args.push(arguments[i]);
}
}
if (methodInfo.behaviorFlags & 1) {
var customizationFunc = thisBuilder.getFunction(LibraryBuilder.CustomizationCodeNamespace + "." + typeInfo.name + "_" + methodInfo.originalName);
var applyArgs = [this];
for (var i = 0; i < args.length; i++) {
applyArgs.push(args[i]);
}
var _a = customizationFunc.apply(this, applyArgs), handled = _a.handled, result = _a.result;
if (handled) {
return result;
}
}
thisBuilder.throwIfApiNotSupported(typeInfo, methodInfo);
if ((methodInfo.behaviorFlags & 16) !== 0) {
return BatchApiHelper.createIndexerObject(thisBuilder.getFunction(methodInfo.returnTypeFullName), this, args);
}
else {
var operationType = 0;
if (methodInfo.behaviorFlags & 2) {
operationType = 1;
}
var apiFlags = thisBuilder.calculateApiFlags(methodInfo.apiFlags, methodInfo.undoableApiSetInfoOrdinal);
return BatchApiHelper.createMethodObject(thisBuilder.getFunction(methodInfo.returnTypeFullName), this, methodInfo.originalName, operationType, args, (methodInfo.behaviorFlags & 4) !== 0, (methodInfo.behaviorFlags & 8) !== 0, methodInfo.returnObjectGetByIdMethodName, apiFlags);
}
};
};
LibraryBuilder.prototype.buildHandleResult = function (type, typeInfo) {
var thisBuilder = this;
type.prototype._handleResult = function (value) {
ClientObject.prototype._handleResult.call(this, value);
if (Utility.isNullOrUndefined(value)) {
return;
}
Utility.fixObjectPathIfNecessary(this, value);
if (typeInfo.behaviorFlags & 8) {
var customizationFunc = thisBuilder.getFunction(LibraryBuilder.CustomizationCodeNamespace + "." + typeInfo.name + "_HandleResult");
customizationFunc.call(this, this, value);
}
if (typeInfo.scalarProperties) {
for (var i_3 = 0; i_3 < typeInfo.scalarProperties.length; i_3++) {
if (!Utility.isUndefined(value[typeInfo.scalarProperties[i_3].originalName])) {
if ((typeInfo.scalarProperties[i_3].behaviorFlags & 8) !== 0) {
this[thisBuilder.getFieldName(typeInfo.scalarProperties[i_3])] = Utility.adjustToDateTime(value[typeInfo.scalarProperties[i_3].originalName]);
}
else {
this[thisBuilder.getFieldName(typeInfo.scalarProperties[i_3])] = value[typeInfo.scalarProperties[i_3].originalName];
}
}
}
}
if (typeInfo.navigationProperties) {
var propNames = [];
for (var i_4 = 0; i_4 < typeInfo.navigationProperties.length; i_4++) {
propNames.push(typeInfo.navigationProperties[i_4].name);
propNames.push(typeInfo.navigationProperties[i_4].originalName);
}
Utility._handleNavigationPropertyResults(this, value, propNames);
}
if ((typeInfo.behaviorFlags & 1) !== 0) {
var hasIndexerMethod = thisBuilder.hasIndexMethod(typeInfo);
if (!Utility.isNullOrUndefined(value[Constants.items])) {
this.m__items = [];
var _data = value[Constants.items];
var childItemType = thisBuilder.getFunction(typeInfo.childItemTypeFullName);
for (var i = 0; i < _data.length; i++) {
var _item = BatchApiHelper.createChildItemObject(childItemType, hasIndexerMethod, this, _data[i], i);
_item._handleResult(_data[i]);
this.m__items.push(_item);
}
}
}
};
};
LibraryBuilder.prototype.buildHandleRetrieveResult = function (type, typeInfo) {
var thisBuilder = this;
type.prototype._handleRetrieveResult = function (value, result) {
ClientObject.prototype._handleRetrieveResult.call(this, value, result);
if (Utility.isNullOrUndefined(value)) {
return;
}
if (typeInfo.scalarProperties) {
for (var i = 0; i < typeInfo.scalarProperties.length; i++) {
if (typeInfo.scalarProperties[i].behaviorFlags & 8) {
if (!Utility.isNullOrUndefined(value[typeInfo.scalarProperties[i].name])) {
value[typeInfo.scalarProperties[i].name] = Utility.adjustToDateTime(value[typeInfo.scalarProperties[i].name]);
}
}
}
}
if (typeInfo.behaviorFlags & 1) {
var hasIndexerMethod_1 = thisBuilder.hasIndexMethod(typeInfo);
var childItemType_1 = thisBuilder.getFunction(typeInfo.childItemTypeFullName);
var thisObj_1 = this;
Utility.processRetrieveResult(thisObj_1, value, result, function (childItemData, index) { return BatchApiHelper.createChildItemObject(childItemType_1, hasIndexerMethod_1, thisObj_1, childItemData, index); });
}
else {
Utility.processRetrieveResult(this, value, result);
}
};
};
LibraryBuilder.prototype.buildHandleIdResult = function (type, typeInfo) {
var thisBuilder = this;
type.prototype._handleIdResult = function (value) {
ClientObject.prototype._handleIdResult.call(this, value);
if (Utility.isNullOrUndefined(value)) {
return;
}
if (typeInfo.behaviorFlags & 16) {
var customizationFunc = thisBuilder.getFunction(LibraryBuilder.CustomizationCodeNamespace + "." + typeInfo.name + "_HandleIdResult");
customizationFunc.call(this, this, value);
}
if (typeInfo.scalarProperties) {
for (var i = 0; i < typeInfo.scalarProperties.length; i++) {
var propName = typeInfo.scalarProperties[i].originalName;
if (propName === "Id" || propName === "_Id" || propName === "_ReferenceId") {
if (!Utility.isNullOrUndefined(value[typeInfo.scalarProperties[i].originalName])) {
this[thisBuilder.getFieldName(typeInfo.scalarProperties[i])] = value[typeInfo.scalarProperties[i].originalName];
}
}
}
}
};
};
LibraryBuilder.prototype.buildLoad = function (type, typeInfo) {
type.prototype.load = function (options) {
return Utility.load(this, options);
};
};
LibraryBuilder.prototype.buildRetrieve = function (type, typeInfo) {
type.prototype.retrieve = function (options) {
return Utility.retrieve(this, options);
};
};
LibraryBuilder.prototype.buildNewObject = function (type, typeInfo) {
if (!Utility.isNullOrEmptyString(typeInfo.newObjectServerTypeFullName)) {
type.newObject = function (context) {
return BatchApiHelper.createTopLevelServiceObject(type, context, typeInfo.newObjectServerTypeFullName, (typeInfo.behaviorFlags & 1) !== 0, typeInfo.newObjectApiFlags);
};
}
};
LibraryBuilder.prototype.buildSetMockData = function (type, typeInfo) {
var thisBuilder = this;
if (typeInfo.behaviorFlags & 1) {
var hasIndexMethod_1 = thisBuilder.hasIndexMethod(typeInfo);
type.prototype.setMockData = function (data) {
var thisObj = this;
Utility.setMockData(thisObj, data, function (childItemData, index) {
return BatchApiHelper.createChildItemObject(thisBuilder.getFunction(typeInfo.childItemTypeFullName), hasIndexMethod_1, thisObj, childItemData, index);
}, function (items) {
thisObj.m__items = items;
});
};
}
else {
type.prototype.setMockData = function (data) {
Utility.setMockData(this, data);
};
}
};
LibraryBuilder.prototype.buildEnsureUnchanged = function (type, typeInfo) {
type.prototype.ensureUnchanged = function (data) {
BatchApiHelper.invokeEnsureUnchanged(this, data);
};
};
LibraryBuilder.prototype.buildUpdate = function (type, typeInfo) {
type.prototype.update = function (properties) {
this._recursivelyUpdate(properties);
};
};
LibraryBuilder.prototype.buildSet = function (type, typeInfo) {
if ((typeInfo.behaviorFlags & 1) !== 0) {
return;
}
var notAllowedToBeSetPropertyNames = [];
var allowedScalarPropertyNames = [];
if (typeInfo.scalarProperties) {
for (var i = 0; i < typeInfo.scalarProperties.length; i++) {
if ((typeInfo.scalarProperties[i].behaviorFlags & 2) === 0 &&
(typeInfo.scalarProperties[i].behaviorFlags & 1) !== 0) {
allowedScalarPropertyNames.push(typeInfo.scalarProperties[i].name);
}
else {
notAllowedToBeSetPropertyNames.push(typeInfo.scalarProperties[i].name);
}
}
}
var allowedNavigationPropertyNames = [];
if (typeInfo.navigationProperties) {
for (var i = 0; i < typeInfo.navigationProperties.length; i++) {
if ((typeInfo.navigationProperties[i].behaviorFlags & 16) !== 0) {
notAllowedToBeSetPropertyNames.push(typeInfo.navigationProperties[i].name);
}
else if ((typeInfo.navigationProperties[i].behaviorFlags & 1) === 0) {
notAllowedToBeSetPropertyNames.push(typeInfo.navigationProperties[i].name);
}
else if ((typeInfo.navigationProperties[i].behaviorFlags & 32) === 0) {
notAllowedToBeSetPropertyNames.push(typeInfo.navigationProperties[i].name);
}
else {
allowedNavigationPropertyNames.push(typeInfo.navigationProperties[i].name);
}
}
}
if (allowedNavigationPropertyNames.length === 0 && allowedScalarPropertyNames.length === 0) {
return;
}
type.prototype.set = function (properties, options) {
this._recursivelySet(properties, options, allowedScalarPropertyNames, allowedNavigationPropertyNames, notAllowedToBeSetPropertyNames);
};
};
LibraryBuilder.prototype.buildItems = function (type, typeInfo) {
if ((typeInfo.behaviorFlags & 1) === 0) {
return;
}
Object.defineProperty(type.prototype, "items", {
get: function () {
Utility.throwIfNotLoaded("items", this.m__items, typeInfo.name, this._isNull);
return this.m__items;
},
enumerable: true,
configurable: true
});
};
LibraryBuilder.prototype.buildToJSON = function (type, typeInfo) {
var thisBuilder = this;
if ((typeInfo.behaviorFlags & 1) !== 0) {
type.prototype.toJSON = function () {
return Utility.toJson(this, {}, {}, this.m__items);
};
return;
}
else {
type.prototype.toJSON = function () {
var scalarProperties = {};
if (typeInfo.scalarProperties) {
for (var i = 0; i < typeInfo.scalarProperties.length; i++) {
if ((typeInfo.scalarProperties[i].behaviorFlags & 1) !== 0) {
scalarProperties[typeInfo.scalarProperties[i].name] = this[thisBuilder.getFieldName(typeInfo.scalarProperties[i])];
}
}
}
var navProperties = {};
if (typeInfo.navigationProperties) {
for (var i = 0; i < typeInfo.navigationProperties.length; i++) {
if ((typeInfo.navigationProperties[i].behaviorFlags & 1) !== 0) {
navProperties[typeInfo.navigationProperties[i].name] = this[thisBuilder.getFieldName(typeInfo.navigationProperties[i])];
}
}
}
return Utility.toJson(this, scalarProperties, navProperties);
};
}
};
LibraryBuilder.prototype.buildTypeMetadataInfo = function (type, typeInfo) {
Object.defineProperty(type.prototype, "_className", {
get: function () {
return typeInfo.name;
},
enumerable: true,
configurable: true
});
Object.defineProperty(type.prototype, "_isCollection", {
get: function () {
return (typeInfo.behaviorFlags & 1) !== 0;
},
enumerable: true,
configurable: true
});
if (!Utility.isNullOrEmptyString(typeInfo.collectionPropertyPath)) {
Object.defineProperty(type.prototype, "_collectionPropertyPath", {
get: function () {
return typeInfo.collectionPropertyPath;
},
enumerable: true,
configurable: true
});
}
if (typeInfo.scalarProperties && typeInfo.scalarProperties.length > 0) {
Object.defineProperty(type.prototype, "_scalarPropertyNames", {
get: function () {
if (!this.m__scalarPropertyNames) {
this.m__scalarPropertyNames = typeInfo.scalarProperties.map(function (p) { return p.name; });
}
return this.m__scalarPropertyNames;
},
enumerable: true,
configurable: true
});
Object.defineProperty(type.prototype, "_scalarPropertyOriginalNames", {
get: function () {
if (!this.m__scalarPropertyOriginalNames) {
this.m__scalarPropertyOriginalNames = typeInfo.scalarProperties.map(function (p) { return p.originalName; });
}
return this.m__scalarPropertyOriginalNames;
},
enumerable: true,
configurable: true
});
Object.defineProperty(type.prototype, "_scalarPropertyUpdateable", {
get: function () {
if (!this.m__scalarPropertyUpdateable) {
this.m__scalarPropertyUpdateable = typeInfo.scalarProperties.map(function (p) { return (p.behaviorFlags & 2) === 0; });
}
return this.m__scalarPropertyUpdateable;
},
enumerable: true,
configurable: true
});
}
if (typeInfo.navigationProperties && typeInfo.navigationProperties.length > 0) {
Object.defineProperty(type.prototype, "_navigationPropertyNames", {
get: function () {
if (!this.m__navigationPropertyNames) {
this.m__navigationPropertyNames = typeInfo.navigationProperties.map(function (p) { return p.name; });
}
return this.m__navigationPropertyNames;
},
enumerable: true,
configurable: true
});
}
};
LibraryBuilder.prototype.buildTrackUntrack = function (type, typeInfo) {
if (typeInfo.behaviorFlags & 2) {
type.prototype.track = function () {
this.context.trackedObjects.add(this);
return this;
};
type.prototype.untrack = function () {
this.context.trackedObjects.remove(this);
return this;
};
}
};
LibraryBuilder.prototype.buildMixin = function (type, typeInfo) {
if (typeInfo.behaviorFlags & 4) {
var mixinType = this.getFunction(typeInfo.name + 'Custom');
Utility.applyMixin(type, mixinType);
}
};
LibraryBuilder.prototype.getOnEventName = function (name) {
if (name[0] === '_') {
return '_on' + name.substr(1);
}
return 'on' + name;
};
LibraryBuilder.prototype.buildEvents = function (type, typeInfo) {
if (typeInfo.events) {
for (var i = 0; i < typeInfo.events.length; i++) {
var elem = typeInfo.events[i];
if (Array.isArray(elem)) {
this.ensureArraySize(elem, 7);
typeInfo.events[i] = {
name: this.getString(elem[0]),
behaviorFlags: elem[1],
apiSetInfoOrdinal: elem[2],
typeExpression: this.getString(elem[3]),
targetIdExpression: this.getString(elem[4]),
register: this.getString(elem[5]),
unregister: this.getString(elem[6])
};
}
this.buildEvent(type, typeInfo, typeInfo.events[i]);
}
}
};
LibraryBuilder.prototype.buildEvent = function (type, typeInfo, evt) {
if (evt.behaviorFlags & 1) {
this.buildV0Event(type, typeInfo, evt);
}
else {
this.buildV2Event(type, typeInfo, evt);
}
};
LibraryBuilder.prototype.buildV2Event = function (type, typeInfo, evt) {
var thisBuilder = this;
var eventName = this.getOnEventName(evt.name);
var fieldName = this.getFieldName(evt);
Object.defineProperty(type.prototype, eventName, {
get: function () {
if (!this[fieldName]) {
thisBuilder.throwIfApiNotSupported(typeInfo, evt);
var thisObj = this;
var registerFunc = null;
if (evt.register !== 'null') {
registerFunc = this[evt.register].bind(this);
}
var unregisterFunc = null;
if (evt.unregister !== 'null') {
unregisterFunc = this[evt.unregister].bind(this);
}
var getTargetIdFunc = function () {
return thisBuilder.evaluateEventTargetId(evt.targetIdExpression, thisObj);
};
var func = null;
if (evt.behaviorFlags & 2) {
func = thisBuilder.getFunction(LibraryBuilder.CustomizationCodeNamespace + "." + typeInfo.name + "_" + evt.name + "_EventArgsTransform");
}
var eventArgsTransformFunc = function (value) {
if (func) {
value = func.call(thisObj, thisObj, value);
}
return Utility._createPromiseFromResult(value);
};
var eventType = thisBuilder.evaluateEventType(evt.typeExpression);
this[fieldName] = new GenericEventHandlers(this.context, this, evt.name, {
eventType: eventType,
getTargetIdFunc: getTargetIdFunc,
registerFunc: registerFunc,
unregisterFunc: unregisterFunc,
eventArgsTransformFunc: eventArgsTransformFunc
});
}
return this[fieldName];
},
enumerable: true,
configurable: true
});
};
LibraryBuilder.prototype.buildV0Event = function (type, typeInfo, evt) {
var thisBuilder = this;
var eventName = this.getOnEventName(evt.name);
var fieldName = this.getFieldName(evt);
Object.defineProperty(type.prototype, eventName, {
get: function () {
if (!this[fieldName]) {
thisBuilder.throwIfApiNotSupported(typeInfo, evt);
var thisObj = this;
var registerFunc = null;
if (Utility.isNullOrEmptyString(evt.register)) {
var eventType_1 = thisBuilder.evaluateEventType(evt.typeExpression);
registerFunc =
function (handlerCallback) {
var targetId = thisBuilder.evaluateEventTargetId(evt.targetIdExpression, thisObj);
return thisObj.context.eventRegistration.register(eventType_1, targetId, handlerCallback);
};
}
else if (evt.register !== 'null') {
var func_1 = thisBuilder.getFunction(evt.register);
registerFunc =
function (handlerCallback) {
return func_1.call(thisObj, thisObj, handlerCallback);
};
}
var unregisterFunc = null;
if (Utility.isNullOrEmptyString(evt.unregister)) {
var eventType_2 = thisBuilder.evaluateEventType(evt.typeExpression);
unregisterFunc =
function (handlerCallback) {
var targetId = thisBuilder.evaluateEventTargetId(evt.targetIdExpression, thisObj);
return thisObj.context.eventRegistration.unregister(eventType_2, targetId, handlerCallback);
};
}
else if (evt.unregister !== 'null') {
var func_2 = thisBuilder.getFunction(evt.unregister);
unregisterFunc =
function (handlerCallback) {
return func_2.call(thisObj, thisObj, handlerCallback);
};
}
var func = null;
if (evt.behaviorFlags & 2) {
func = thisBuilder.getFunction(LibraryBuilder.CustomizationCodeNamespace + "." + typeInfo.name + "_" + evt.name + "_EventArgsTransform");
}
var eventArgsTransformFunc = function (value) {
if (func) {
value = func.call(thisObj, thisObj, value);
}
return Utility._createPromiseFromResult(value);
};
this[fieldName] = new EventHandlers(this.context, this, evt.name, {
registerFunc: registerFunc,
unregisterFunc: unregisterFunc,
eventArgsTransformFunc: eventArgsTransformFunc
});
}
return this[fieldName];
},
enumerable: true,
configurable: true
});
};
LibraryBuilder.prototype.hasIndexMethod = function (typeInfo) {
var ret = false;
if (typeInfo.navigationMethods) {
for (var i = 0; i < typeInfo.navigationMethods.length; i++) {
if ((typeInfo.navigationMethods[i].behaviorFlags & 16) !== 0) {
ret = true;
break;
}
}
}
return ret;
};
LibraryBuilder.CustomizationCodeNamespace = "_CC";
return LibraryBuilder;
}());
OfficeExtension_1.LibraryBuilder = LibraryBuilder;
var versionToken = 1;
var internalConfiguration = {
invokeRequestModifier: function (request) {
request.DdaMethod.Version = versionToken;
return request;
},
invokeResponseModifier: function (args) {
versionToken = args.Version;
if (args.Error) {
args.error = {};
args.error.Code = args.Error;
}
return args;
}
};
var CommunicationConstants;
(function (CommunicationConstants) {
CommunicationConstants["SendingId"] = "sId";
CommunicationConstants["RespondingId"] = "rId";
CommunicationConstants["CommandKey"] = "command";
CommunicationConstants["SessionInfoKey"] = "sessionInfo";
CommunicationConstants["ParamsKey"] = "params";
CommunicationConstants["ApiReadyCommand"] = "apiready";
CommunicationConstants["ExecuteMethodCommand"] = "executeMethod";
CommunicationConstants["GetAppContextCommand"] = "getAppContext";
CommunicationConstants["RegisterEventCommand"] = "registerEvent";
CommunicationConstants["UnregisterEventCommand"] = "unregisterEvent";
CommunicationConstants["FireEventCommand"] = "fireEvent";
})(CommunicationConstants || (CommunicationConstants = {}));
var EmbeddedConstants = (function () {
function EmbeddedConstants() {
}
EmbeddedConstants.sessionContext = 'sc';
EmbeddedConstants.embeddingPageOrigin = 'EmbeddingPageOrigin';
EmbeddedConstants.embeddingPageSessionInfo = 'EmbeddingPageSessionInfo';
return EmbeddedConstants;
}());
OfficeExtension_1.EmbeddedConstants = EmbeddedConstants;
var EmbeddedSession = (function (_super) {
__extends(EmbeddedSession, _super);
function EmbeddedSession(url, options) {
var _this = _super.call(this) || this;
_this.m_chosenWindow = null;
_this.m_chosenOrigin = null;
_this.m_enabled = true;
_this.m_onMessageHandler = _this._onMessage.bind(_this);
_this.m_callbackList = {};
_this.m_id = 0;
_this.m_timeoutId = -1;
_this.m_appContext = null;
_this.m_url = url;
_this.m_options = options;
if (!_this.m_options) {
_this.m_options = { sessionKey: Math.random().toString() };
}
if (!_this.m_options.sessionKey) {
_this.m_options.sessionKey = Math.random().toString();
}
if (!_this.m_options.container) {
_this.m_options.container = document.body;
}
if (!_this.m_options.timeoutInMilliseconds) {
_this.m_options.timeoutInMilliseconds = 60000;
}
if (!_this.m_options.height) {
_this.m_options.height = '400px';
}
if (!_this.m_options.width) {
_this.m_options.width = '100%';
}
if (!(_this.m_options.webApplication &&
_this.m_options.webApplication.accessToken &&
_this.m_options.webApplication.accessTokenTtl)) {
_this.m_options.webApplication = null;
}
return _this;
}
EmbeddedSession.prototype._getIFrameSrc = function () {
var origin = window.location.protocol + '//' + window.location.host;
var toAppend = EmbeddedConstants.embeddingPageOrigin +
'=' +
encodeURIComponent(origin) +
'&' +
EmbeddedConstants.embeddingPageSessionInfo +
'=' +
encodeURIComponent(this.m_options.sessionKey);
var useHash = false;
if (this.m_url.toLowerCase().indexOf('/_layouts/preauth.aspx') > 0 ||
this.m_url.toLowerCase().indexOf('/_layouts/15/preauth.aspx') > 0) {
useHash = true;
}
var a = document.createElement('a');
a.href = this.m_url;
if (this.m_options.webApplication) {
var toAppendWAC = EmbeddedConstants.embeddingPageOrigin +
'=' +
origin +
'&' +
EmbeddedConstants.embeddingPageSessionInfo +
'=' +
this.m_options.sessionKey;
if (a.search.length === 0 || a.search === '?') {
a.search = '?' + EmbeddedConstants.sessionContext + '=' + encodeURIComponent(toAppendWAC);
}
else {
a.search = a.search + '&' + EmbeddedConstants.sessionContext + '=' + encodeURIComponent(toAppendWAC);
}
}
else if (useHash) {
if (a.hash.length === 0 || a.hash === '#') {
a.hash = '#' + toAppend;
}
else {
a.hash = a.hash + '&' + toAppend;
}
}
else {
if (a.search.length === 0 || a.search === '?') {
a.search = '?' + toAppend;
}
else {
a.search = a.search + '&' + toAppend;
}
}
var iframeSrc = a.href;
return iframeSrc;
};
EmbeddedSession.prototype.init = function () {
var _this = this;
window.addEventListener('message', this.m_onMessageHandler);
var iframeSrc = this._getIFrameSrc();
return CoreUtility.createPromise(function (resolve, reject) {
var iframeElement = document.createElement('iframe');
if (_this.m_options.id) {
iframeElement.id = _this.m_options.id;
iframeElement.name = _this.m_options.id;
}
iframeElement.style.height = _this.m_options.height;
iframeElement.style.width = _this.m_options.width;
if (!_this.m_options.webApplication) {
iframeElement.src = iframeSrc;
_this.m_options.container.appendChild(iframeElement);
}
else {
var webApplicationForm = document.createElement('form');
webApplicationForm.setAttribute('action', iframeSrc);
webApplicationForm.setAttribute('method', 'post');
webApplicationForm.setAttribute('target', iframeElement.name);
_this.m_options.container.appendChild(webApplicationForm);
var token_input = document.createElement('input');
token_input.setAttribute('type', 'hidden');
token_input.setAttribute('name', 'access_token');
token_input.setAttribute('value', _this.m_options.webApplication.accessToken);
webApplicationForm.appendChild(token_input);
var token_ttl_input = document.createElement('input');
token_ttl_input.setAttribute('type', 'hidden');
token_ttl_input.setAttribute('name', 'access_token_ttl');
token_ttl_input.setAttribute('value', _this.m_options.webApplication.accessTokenTtl);
webApplicationForm.appendChild(token_ttl_input);
_this.m_options.container.appendChild(iframeElement);
webApplicationForm.submit();
}
_this.m_timeoutId = window.setTimeout(function () {
_this.close();
var err = Utility.createRuntimeError(CoreErrorCodes.timeout, CoreUtility._getResourceString(CoreResourceStrings.timeout), 'EmbeddedSession.init');
reject(err);
}, _this.m_options.timeoutInMilliseconds);
_this.m_promiseResolver = resolve;
});
};
EmbeddedSession.prototype._invoke = function (method, callback, params) {
if (!this.m_enabled) {
callback(5001, null);
return;
}
if (internalConfiguration.invokeRequestModifier) {
params = internalConfiguration.invokeRequestModifier(params);
}
this._sendMessageWithCallback(this.m_id++, method, params, function (args) {
if (internalConfiguration.invokeResponseModifier) {
args = internalConfiguration.invokeResponseModifier(args);
}
var errorCode = args['Error'];
delete args['Error'];
callback(errorCode || 0, args);
});
};
EmbeddedSession.prototype.close = function () {
window.removeEventListener('message', this.m_onMessageHandler);
window.clearTimeout(this.m_timeoutId);
this.m_enabled = false;
};
Object.defineProperty(EmbeddedSession.prototype, "eventRegistration", {
get: function () {
if (!this.m_sessionEventManager) {
this.m_sessionEventManager = new EventRegistration(this._registerEventImpl.bind(this), this._unregisterEventImpl.bind(this));
}
return this.m_sessionEventManager;
},
enumerable: true,
configurable: true
});
EmbeddedSession.prototype._createRequestExecutorOrNull = function () {
return new EmbeddedRequestExecutor(this);
};
EmbeddedSession.prototype._resolveRequestUrlAndHeaderInfo = function () {
return CoreUtility._createPromiseFromResult(null);
};
EmbeddedSession.prototype._registerEventImpl = function (eventId, targetId) {
var _this = this;
return CoreUtility.createPromise(function (resolve, reject) {
_this._sendMessageWithCallback(_this.m_id++, CommunicationConstants.RegisterEventCommand, { EventId: eventId, TargetId: targetId }, function () {
resolve(null);
});
});
};
EmbeddedSession.prototype._unregisterEventImpl = function (eventId, targetId) {
var _this = this;
return CoreUtility.createPromise(function (resolve, reject) {
_this._sendMessageWithCallback(_this.m_id++, CommunicationConstants.UnregisterEventCommand, { EventId: eventId, TargetId: targetId }, function () {
resolve();
});
});
};
EmbeddedSession.prototype._onMessage = function (event) {
var _this = this;
if (!this.m_enabled) {
return;
}
if (this.m_chosenWindow && (this.m_chosenWindow !== event.source || this.m_chosenOrigin !== event.origin)) {
return;
}
var eventData = event.data;
if (eventData && eventData[CommunicationConstants.CommandKey] === CommunicationConstants.ApiReadyCommand) {
if (!this.m_chosenWindow &&
this._isValidDescendant(event.source) &&
eventData[CommunicationConstants.SessionInfoKey] === this.m_options.sessionKey) {
this.m_chosenWindow = event.source;
this.m_chosenOrigin = event.origin;
this._sendMessageWithCallback(this.m_id++, CommunicationConstants.GetAppContextCommand, null, function (appContext) {
_this._setupContext(appContext);
window.clearTimeout(_this.m_timeoutId);
_this.m_promiseResolver();
});
}
return;
}
if (eventData && eventData[CommunicationConstants.CommandKey] === CommunicationConstants.FireEventCommand) {
var msg = eventData[CommunicationConstants.ParamsKey];
var eventId = msg['EventId'];
var targetId = msg['TargetId'];
var data = msg['Data'];
if (this.m_sessionEventManager) {
var handlers = this.m_sessionEventManager.getHandlers(eventId, targetId);
for (var i = 0; i < handlers.length; i++) {
handlers[i](data);
}
}
return;
}
if (eventData && eventData.hasOwnProperty(CommunicationConstants.RespondingId)) {
var rId = eventData[CommunicationConstants.RespondingId];
var callback = this.m_callbackList[rId];
if (typeof callback === 'function') {
callback(eventData[CommunicationConstants.ParamsKey]);
}
delete this.m_callbackList[rId];
}
};
EmbeddedSession.prototype._sendMessageWithCallback = function (id, command, data, callback) {
this.m_callbackList[id] = callback;
var message = {};
message[CommunicationConstants.SendingId] = id;
message[CommunicationConstants.CommandKey] = command;
message[CommunicationConstants.ParamsKey] = data;
this.m_chosenWindow.postMessage(JSON.stringify(message), this.m_chosenOrigin);
};
EmbeddedSession.prototype._isValidDescendant = function (wnd) {
var container = this.m_options.container || document.body;
function doesFrameWindow(containerWindow) {
if (containerWindow === wnd) {
return true;
}
for (var i = 0, len = containerWindow.frames.length; i < len; i++) {
if (doesFrameWindow(containerWindow.frames[i])) {
return true;
}
}
return false;
}
var iframes = container.getElementsByTagName('iframe');
for (var i = 0, len = iframes.length; i < len; i++) {
if (doesFrameWindow(iframes[i].contentWindow)) {
return true;
}
}
return false;
};
EmbeddedSession.prototype._setupContext = function (appContext) {
if (!(this.m_appContext = appContext)) {
return;
}
};
return EmbeddedSession;
}(SessionBase));
OfficeExtension_1.EmbeddedSession = EmbeddedSession;
var EmbeddedRequestExecutor = (function () {
function EmbeddedRequestExecutor(session) {
this.m_session = session;
}
EmbeddedRequestExecutor.prototype.executeAsync = function (customData, requestFlags, requestMessage) {
var _this = this;
var messageSafearray = RichApiMessageUtility.buildMessageArrayForIRequestExecutor(customData, requestFlags, requestMessage, EmbeddedRequestExecutor.SourceLibHeaderValue);
return CoreUtility.createPromise(function (resolve, reject) {
_this.m_session._invoke(CommunicationConstants.ExecuteMethodCommand, function (status, result) {
CoreUtility.log('Response:');
CoreUtility.log(JSON.stringify(result));
var response;
if (status == 0) {
response = RichApiMessageUtility.buildResponseOnSuccess(RichApiMessageUtility.getResponseBodyFromSafeArray(result.Data), RichApiMessageUtility.getResponseHeadersFromSafeArray(result.Data));
}
else {
response = RichApiMessageUtility.buildResponseOnError(result.error.Code, result.error.Message);
}
resolve(response);
}, EmbeddedRequestExecutor._transformMessageArrayIntoParams(messageSafearray));
});
};
EmbeddedRequestExecutor._transformMessageArrayIntoParams = function (msgArray) {
return {
ArrayData: msgArray,
DdaMethod: {
DispatchId: EmbeddedRequestExecutor.DispidExecuteRichApiRequestMethod
}
};
};
EmbeddedRequestExecutor.DispidExecuteRichApiRequestMethod = 93;
EmbeddedRequestExecutor.SourceLibHeaderValue = 'Embedded';
return EmbeddedRequestExecutor;
}());
})(OfficeExtension || (OfficeExtension = {}));
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b)
if (b.hasOwnProperty(p))
d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try {
step(generator.next(value));
}
catch (e) {
reject(e);
} }
function rejected(value) { try {
step(generator["throw"](value));
}
catch (e) {
reject(e);
} }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function () { if (t[0] & 1)
throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f)
throw new TypeError("Generator is already executing.");
while (_)
try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
return t;
if (y = 0, t)
op = [op[0] & 2, t.value];
switch (op[0]) {
case 0:
case 1:
t = op;
break;
case 4:
_.label++;
return { value: op[1], done: false };
case 5:
_.label++;
y = op[1];
op = [0];
continue;
case 7:
op = _.ops.pop();
_.trys.pop();
continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
_ = 0;
continue;
}
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
_.label = op[1];
break;
}
if (op[0] === 6 && _.label < t[1]) {
_.label = t[1];
t = op;
break;
}
if (t && _.label < t[2]) {
_.label = t[2];
_.ops.push(op);
break;
}
if (t[2])
_.ops.pop();
_.trys.pop();
continue;
}
op = body.call(thisArg, _);
}
catch (e) {
op = [6, e];
y = 0;
}
finally {
f = t = 0;
}
if (op[0] & 5)
throw op[1];
return { value: op[0] ? op[1] : void 0, done: true };
}
};
var OfficeCore;
(function (OfficeCore) {
var _hostName = "OfficeCore";
var _defaultApiSetName = "AgaveVisualApi";
var _createPropertyObject = OfficeExtension.BatchApiHelper.createPropertyObject;
var _createMethodObject = OfficeExtension.BatchApiHelper.createMethodObject;
var _createIndexerObject = OfficeExtension.BatchApiHelper.createIndexerObject;
var _createRootServiceObject = OfficeExtension.BatchApiHelper.createRootServiceObject;
var _createTopLevelServiceObject = OfficeExtension.BatchApiHelper.createTopLevelServiceObject;
var _createChildItemObject = OfficeExtension.BatchApiHelper.createChildItemObject;
var _invokeMethod = OfficeExtension.BatchApiHelper.invokeMethod;
var _invokeEnsureUnchanged = OfficeExtension.BatchApiHelper.invokeEnsureUnchanged;
var _invokeSetProperty = OfficeExtension.BatchApiHelper.invokeSetProperty;
var _isNullOrUndefined = OfficeExtension.Utility.isNullOrUndefined;
var _isUndefined = OfficeExtension.Utility.isUndefined;
var _throwIfNotLoaded = OfficeExtension.Utility.throwIfNotLoaded;
var _throwIfApiNotSupported = OfficeExtension.Utility.throwIfApiNotSupported;
var _load = OfficeExtension.Utility.load;
var _retrieve = OfficeExtension.Utility.retrieve;
var _toJson = OfficeExtension.Utility.toJson;
var _fixObjectPathIfNecessary = OfficeExtension.Utility.fixObjectPathIfNecessary;
var _handleNavigationPropertyResults = OfficeExtension.Utility._handleNavigationPropertyResults;
var _adjustToDateTime = OfficeExtension.Utility.adjustToDateTime;
var _processRetrieveResult = OfficeExtension.Utility.processRetrieveResult;
var _typeBiShim = "BiShim";
var BiShim = (function (_super) {
__extends(BiShim, _super);
function BiShim() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(BiShim.prototype, "_className", {
get: function () {
return "BiShim";
},
enumerable: true,
configurable: true
});
BiShim.prototype.initialize = function (capabilities) {
_invokeMethod(this, "Initialize", 0, [capabilities], 0, 0);
};
BiShim.prototype.getData = function () {
return _invokeMethod(this, "getData", 1, [], 4, 0);
};
BiShim.prototype.setVisualObjects = function (visualObjects) {
_invokeMethod(this, "setVisualObjects", 0, [visualObjects], 2, 0);
};
BiShim.prototype.setVisualObjectsToPersist = function (visualObjectsToPersist) {
_invokeMethod(this, "setVisualObjectsToPersist", 0, [visualObjectsToPersist], 2, 0);
};
BiShim.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
};
BiShim.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
BiShim.newObject = function (context) {
return _createTopLevelServiceObject(OfficeCore.BiShim, context, "Microsoft.AgaveVisual.BiShim", false, 4);
};
BiShim.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return BiShim;
}(OfficeExtension.ClientObject));
OfficeCore.BiShim = BiShim;
var AgaveVisualErrorCodes;
(function (AgaveVisualErrorCodes) {
AgaveVisualErrorCodes["generalException1"] = "GeneralException";
})(AgaveVisualErrorCodes = OfficeCore.AgaveVisualErrorCodes || (OfficeCore.AgaveVisualErrorCodes = {}));
})(OfficeCore || (OfficeCore = {}));
var OfficeCore;
(function (OfficeCore) {
var _hostName = "OfficeCore";
var _defaultApiSetName = "ExperimentApi";
var _createPropertyObject = OfficeExtension.BatchApiHelper.createPropertyObject;
var _createMethodObject = OfficeExtension.BatchApiHelper.createMethodObject;
var _createIndexerObject = OfficeExtension.BatchApiHelper.createIndexerObject;
var _createRootServiceObject = OfficeExtension.BatchApiHelper.createRootServiceObject;
var _createTopLevelServiceObject = OfficeExtension.BatchApiHelper.createTopLevelServiceObject;
var _createChildItemObject = OfficeExtension.BatchApiHelper.createChildItemObject;
var _invokeMethod = OfficeExtension.BatchApiHelper.invokeMethod;
var _invokeEnsureUnchanged = OfficeExtension.BatchApiHelper.invokeEnsureUnchanged;
var _invokeSetProperty = OfficeExtension.BatchApiHelper.invokeSetProperty;
var _isNullOrUndefined = OfficeExtension.Utility.isNullOrUndefined;
var _isUndefined = OfficeExtension.Utility.isUndefined;
var _throwIfNotLoaded = OfficeExtension.Utility.throwIfNotLoaded;
var _throwIfApiNotSupported = OfficeExtension.Utility.throwIfApiNotSupported;
var _load = OfficeExtension.Utility.load;
var _retrieve = OfficeExtension.Utility.retrieve;
var _toJson = OfficeExtension.Utility.toJson;
var _fixObjectPathIfNecessary = OfficeExtension.Utility.fixObjectPathIfNecessary;
var _handleNavigationPropertyResults = OfficeExtension.Utility._handleNavigationPropertyResults;
var _adjustToDateTime = OfficeExtension.Utility.adjustToDateTime;
var _processRetrieveResult = OfficeExtension.Utility.processRetrieveResult;
var _typeFlightingService = "FlightingService";
var FlightingService = (function (_super) {
__extends(FlightingService, _super);
function FlightingService() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(FlightingService.prototype, "_className", {
get: function () {
return "FlightingService";
},
enumerable: true,
configurable: true
});
FlightingService.prototype.getClientSessionId = function () {
return _invokeMethod(this, "GetClientSessionId", 1, [], 4, 0);
};
FlightingService.prototype.getDeferredFlights = function () {
return _invokeMethod(this, "GetDeferredFlights", 1, [], 4, 0);
};
FlightingService.prototype.getFeature = function (featureName, type, defaultValue, possibleValues) {
return _createMethodObject(OfficeCore.ABType, this, "GetFeature", 1, [featureName, type, defaultValue, possibleValues], false, false, null, 4);
};
FlightingService.prototype.getFeatureGate = function (featureName, scope) {
return _createMethodObject(OfficeCore.ABType, this, "GetFeatureGate", 1, [featureName, scope], false, false, null, 4);
};
FlightingService.prototype.resetOverride = function (featureName) {
_invokeMethod(this, "ResetOverride", 0, [featureName], 0, 0);
};
FlightingService.prototype.setOverride = function (featureName, type, value) {
_invokeMethod(this, "SetOverride", 0, [featureName, type, value], 0, 0);
};
FlightingService.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
};
FlightingService.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
FlightingService.newObject = function (context) {
return _createTopLevelServiceObject(OfficeCore.FlightingService, context, "Microsoft.Experiment.FlightingService", false, 4);
};
FlightingService.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return FlightingService;
}(OfficeExtension.ClientObject));
OfficeCore.FlightingService = FlightingService;
var _typeABType = "ABType";
var ABType = (function (_super) {
__extends(ABType, _super);
function ABType() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(ABType.prototype, "_className", {
get: function () {
return "ABType";
},
enumerable: true,
configurable: true
});
Object.defineProperty(ABType.prototype, "_scalarPropertyNames", {
get: function () {
return ["value"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(ABType.prototype, "value", {
get: function () {
_throwIfNotLoaded("value", this._V, _typeABType, this._isNull);
return this._V;
},
enumerable: true,
configurable: true
});
ABType.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["Value"])) {
this._V = obj["Value"];
}
};
ABType.prototype.load = function (option) {
return _load(this, option);
};
ABType.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
ABType.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
ABType.prototype.toJSON = function () {
return _toJson(this, {
"value": this._V
}, {});
};
ABType.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return ABType;
}(OfficeExtension.ClientObject));
OfficeCore.ABType = ABType;
var FeatureType;
(function (FeatureType) {
FeatureType["boolean"] = "Boolean";
FeatureType["integer"] = "Integer";
FeatureType["string"] = "String";
})(FeatureType = OfficeCore.FeatureType || (OfficeCore.FeatureType = {}));
var ExperimentErrorCodes;
(function (ExperimentErrorCodes) {
ExperimentErrorCodes["generalException"] = "GeneralException";
})(ExperimentErrorCodes = OfficeCore.ExperimentErrorCodes || (OfficeCore.ExperimentErrorCodes = {}));
})(OfficeCore || (OfficeCore = {}));
var OfficeCore;
(function (OfficeCore) {
OfficeCore.OfficeOnlineDomainList = [
"*.dod.online.office365.us",
"*.gov.online.office365.us",
"*.officeapps-df.live.com",
"*.officeapps.live.com",
"*.online.office.de",
"*.partner.officewebapps.cn"
];
function isHostOriginTrusted() {
if (typeof window.external === 'undefined' ||
typeof window.external.GetContext === 'undefined') {
var hostUrl = OSF.getClientEndPoint()._targetUrl;
var hostname_1 = getHostNameFromUrl(hostUrl);
if (hostUrl.indexOf("https:") != 0) {
return false;
}
OfficeCore.OfficeOnlineDomainList.forEach(function (domain) {
if (domain.indexOf("*.") == 0) {
domain = domain.substring(2);
}
if (hostname_1.indexOf(domain) == hostname_1.length - domain.length) {
return true;
}
});
return false;
}
return true;
}
OfficeCore.isHostOriginTrusted = isHostOriginTrusted;
function getHostNameFromUrl(url) {
var hostName = "";
hostName = url.split("/")[2];
hostName = hostName.split(":")[0];
hostName = hostName.split("?")[0];
return hostName;
}
})(OfficeCore || (OfficeCore = {}));
var OfficeCore;
(function (OfficeCore) {
var FirstPartyApis = (function () {
function FirstPartyApis(context) {
this.context = context;
}
Object.defineProperty(FirstPartyApis.prototype, "roamingSettings", {
get: function () {
if (!this.m_roamingSettings) {
this.m_roamingSettings = OfficeCore.AuthenticationService.newObject(this.context).roamingSettings;
}
return this.m_roamingSettings;
},
enumerable: true,
configurable: true
});
Object.defineProperty(FirstPartyApis.prototype, "tap", {
get: function () {
if (!this.m_tap) {
this.m_tap = OfficeCore.Tap.newObject(this.context);
}
return this.m_tap;
},
enumerable: true,
configurable: true
});
Object.defineProperty(FirstPartyApis.prototype, "skill", {
get: function () {
if (!this.m_skill) {
this.m_skill = OfficeCore.Skill.newObject(this.context);
}
return this.m_skill;
},
enumerable: true,
configurable: true
});
return FirstPartyApis;
}());
OfficeCore.FirstPartyApis = FirstPartyApis;
var RequestContext = (function (_super) {
__extends(RequestContext, _super);
function RequestContext(url) {
return _super.call(this, url) || this;
}
Object.defineProperty(RequestContext.prototype, "firstParty", {
get: function () {
if (!this.m_firstPartyApis) {
this.m_firstPartyApis = new FirstPartyApis(this);
}
return this.m_firstPartyApis;
},
enumerable: true,
configurable: true
});
Object.defineProperty(RequestContext.prototype, "flighting", {
get: function () {
return this.flightingService;
},
enumerable: true,
configurable: true
});
Object.defineProperty(RequestContext.prototype, "telemetry", {
get: function () {
if (!this.m_telemetry) {
this.m_telemetry = OfficeCore.TelemetryService.newObject(this);
}
return this.m_telemetry;
},
enumerable: true,
configurable: true
});
Object.defineProperty(RequestContext.prototype, "ribbon", {
get: function () {
if (!this.m_ribbon) {
this.m_ribbon = OfficeCore.DynamicRibbon.newObject(this);
}
return this.m_ribbon;
},
enumerable: true,
configurable: true
});
Object.defineProperty(RequestContext.prototype, "bi", {
get: function () {
if (!this.m_biShim) {
this.m_biShim = OfficeCore.BiShim.newObject(this);
}
return this.m_biShim;
},
enumerable: true,
configurable: true
});
Object.defineProperty(RequestContext.prototype, "flightingService", {
get: function () {
if (!this.m_flightingService) {
this.m_flightingService = OfficeCore.FlightingService.newObject(this);
}
return this.m_flightingService;
},
enumerable: true,
configurable: true
});
return RequestContext;
}(OfficeExtension.ClientRequestContext));
OfficeCore.RequestContext = RequestContext;
function run(arg1, arg2) {
return OfficeExtension.ClientRequestContext._runBatch("OfficeCore.run", arguments, function (requestInfo) { return new OfficeCore.RequestContext(requestInfo); });
}
OfficeCore.run = run;
})(OfficeCore || (OfficeCore = {}));
var Office;
(function (Office) {
var license;
(function (license_1) {
function _createRequestContext() {
var context = new OfficeCore.RequestContext();
if (OSF._OfficeAppFactory.getHostInfo().hostPlatform == 'web') {
context._customData = 'WacPartition';
}
return context;
}
function isFeatureEnabled(feature, fallbackValue) {
return __awaiter(this, void 0, void 0, function () {
var context, license, isEnabled;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
context = _createRequestContext();
license = OfficeCore.License.newObject(context);
isEnabled = license.isFeatureEnabled(feature, fallbackValue);
return [4, context.sync()];
case 1:
_a.sent();
return [2, isEnabled.value];
}
});
});
}
license_1.isFeatureEnabled = isFeatureEnabled;
function getFeatureTier(feature, fallbackValue) {
return __awaiter(this, void 0, void 0, function () {
var context, license, tier;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
context = _createRequestContext();
license = OfficeCore.License.newObject(context);
tier = license.getFeatureTier(feature, fallbackValue);
return [4, context.sync()];
case 1:
_a.sent();
return [2, tier.value];
}
});
});
}
license_1.getFeatureTier = getFeatureTier;
function isFreemiumUpsellEnabled() {
return __awaiter(this, void 0, void 0, function () {
var context, license, isFreemiumUpsellEnabled;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
context = _createRequestContext();
license = OfficeCore.License.newObject(context);
isFreemiumUpsellEnabled = license.isFreemiumUpsellEnabled();
return [4, context.sync()];
case 1:
_a.sent();
return [2, isFreemiumUpsellEnabled.value];
}
});
});
}
license_1.isFreemiumUpsellEnabled = isFreemiumUpsellEnabled;
function launchUpsellExperience(experienceId) {
return __awaiter(this, void 0, void 0, function () {
var context, license;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
context = _createRequestContext();
license = OfficeCore.License.newObject(context);
license.launchUpsellExperience(experienceId);
return [4, context.sync()];
case 1:
_a.sent();
return [2];
}
});
});
}
license_1.launchUpsellExperience = launchUpsellExperience;
function onFeatureStateChanged(feature, listener) {
return __awaiter(this, void 0, void 0, function () {
var context, license, licenseFeature, removeListener;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
context = _createRequestContext();
license = OfficeCore.License.newObject(context);
licenseFeature = license.getLicenseFeature(feature);
licenseFeature.onStateChanged.add(listener);
removeListener = function () {
licenseFeature.onStateChanged.remove(listener);
return null;
};
return [4, context.sync()];
case 1:
_a.sent();
return [2, removeListener];
}
});
});
}
license_1.onFeatureStateChanged = onFeatureStateChanged;
})(license = Office.license || (Office.license = {}));
})(Office || (Office = {}));
var OfficeCore;
(function (OfficeCore) {
var _hostName = "Office";
var _defaultApiSetName = "OfficeSharedApi";
var _createPropertyObject = OfficeExtension.BatchApiHelper.createPropertyObject;
var _createMethodObject = OfficeExtension.BatchApiHelper.createMethodObject;
var _createIndexerObject = OfficeExtension.BatchApiHelper.createIndexerObject;
var _createRootServiceObject = OfficeExtension.BatchApiHelper.createRootServiceObject;
var _createTopLevelServiceObject = OfficeExtension.BatchApiHelper.createTopLevelServiceObject;
var _createChildItemObject = OfficeExtension.BatchApiHelper.createChildItemObject;
var _invokeMethod = OfficeExtension.BatchApiHelper.invokeMethod;
var _invokeEnsureUnchanged = OfficeExtension.BatchApiHelper.invokeEnsureUnchanged;
var _invokeSetProperty = OfficeExtension.BatchApiHelper.invokeSetProperty;
var _isNullOrUndefined = OfficeExtension.Utility.isNullOrUndefined;
var _isUndefined = OfficeExtension.Utility.isUndefined;
var _throwIfNotLoaded = OfficeExtension.Utility.throwIfNotLoaded;
var _throwIfApiNotSupported = OfficeExtension.Utility.throwIfApiNotSupported;
var _load = OfficeExtension.Utility.load;
var _retrieve = OfficeExtension.Utility.retrieve;
var _toJson = OfficeExtension.Utility.toJson;
var _fixObjectPathIfNecessary = OfficeExtension.Utility.fixObjectPathIfNecessary;
var _handleNavigationPropertyResults = OfficeExtension.Utility._handleNavigationPropertyResults;
var _adjustToDateTime = OfficeExtension.Utility.adjustToDateTime;
var _processRetrieveResult = OfficeExtension.Utility.processRetrieveResult;
var _setMockData = OfficeExtension.Utility.setMockData;
var _calculateApiFlags = OfficeExtension.CommonUtility.calculateApiFlags;
var _typeSkill = "Skill";
var Skill = (function (_super) {
__extends(Skill, _super);
function Skill() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(Skill.prototype, "_className", {
get: function () {
return "Skill";
},
enumerable: true,
configurable: true
});
Skill.prototype.executeAction = function (paneId, actionId, actionDescriptor) {
return _invokeMethod(this, "ExecuteAction", 1, [paneId, actionId, actionDescriptor], 4 | 1, 0);
};
Skill.prototype.notifyPaneEvent = function (paneId, eventDescriptor) {
_invokeMethod(this, "NotifyPaneEvent", 1, [paneId, eventDescriptor], 4 | 1, 0);
};
Skill.prototype.registerHostSkillEvent = function () {
_invokeMethod(this, "RegisterHostSkillEvent", 0, [], 1, 0);
};
Skill.prototype.testFireEvent = function () {
_invokeMethod(this, "TestFireEvent", 0, [], 1, 0);
};
Skill.prototype.unregisterHostSkillEvent = function () {
_invokeMethod(this, "UnregisterHostSkillEvent", 0, [], 1, 0);
};
Skill.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
};
Skill.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
Skill.newObject = function (context) {
return _createTopLevelServiceObject(OfficeCore.Skill, context, "Microsoft.SkillApi.Skill", false, 4);
};
Object.defineProperty(Skill.prototype, "onHostSkillEvent", {
get: function () {
var _this = this;
if (!this.m_hostSkillEvent) {
this.m_hostSkillEvent = new OfficeExtension.GenericEventHandlers(this.context, this, "HostSkillEvent", {
eventType: 65538,
registerFunc: function () { return _this.registerHostSkillEvent(); },
unregisterFunc: function () { return _this.unregisterHostSkillEvent(); },
getTargetIdFunc: function () { return ""; },
eventArgsTransformFunc: function (value) {
var event = _CC.Skill_HostSkillEvent_EventArgsTransform(_this, value);
return OfficeExtension.Utility._createPromiseFromResult(event);
}
});
}
return this.m_hostSkillEvent;
},
enumerable: true,
configurable: true
});
Skill.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return Skill;
}(OfficeExtension.ClientObject));
OfficeCore.Skill = Skill;
var _CC;
(function (_CC) {
function Skill_HostSkillEvent_EventArgsTransform(thisObj, args) {
var transformedArgs = {
type: args.type,
data: args.data
};
return transformedArgs;
}
_CC.Skill_HostSkillEvent_EventArgsTransform = Skill_HostSkillEvent_EventArgsTransform;
})(_CC = OfficeCore._CC || (OfficeCore._CC = {}));
var SkillErrorCodes;
(function (SkillErrorCodes) {
SkillErrorCodes["generalException"] = "GeneralException";
})(SkillErrorCodes = OfficeCore.SkillErrorCodes || (OfficeCore.SkillErrorCodes = {}));
})(OfficeCore || (OfficeCore = {}));
var OfficeCore;
(function (OfficeCore) {
var _hostName = "OfficeCore";
var _defaultApiSetName = "TelemetryApi";
var _createPropertyObject = OfficeExtension.BatchApiHelper.createPropertyObject;
var _createMethodObject = OfficeExtension.BatchApiHelper.createMethodObject;
var _createIndexerObject = OfficeExtension.BatchApiHelper.createIndexerObject;
var _createRootServiceObject = OfficeExtension.BatchApiHelper.createRootServiceObject;
var _createTopLevelServiceObject = OfficeExtension.BatchApiHelper.createTopLevelServiceObject;
var _createChildItemObject = OfficeExtension.BatchApiHelper.createChildItemObject;
var _invokeMethod = OfficeExtension.BatchApiHelper.invokeMethod;
var _invokeEnsureUnchanged = OfficeExtension.BatchApiHelper.invokeEnsureUnchanged;
var _invokeSetProperty = OfficeExtension.BatchApiHelper.invokeSetProperty;
var _isNullOrUndefined = OfficeExtension.Utility.isNullOrUndefined;
var _isUndefined = OfficeExtension.Utility.isUndefined;
var _throwIfNotLoaded = OfficeExtension.Utility.throwIfNotLoaded;
var _throwIfApiNotSupported = OfficeExtension.Utility.throwIfApiNotSupported;
var _load = OfficeExtension.Utility.load;
var _retrieve = OfficeExtension.Utility.retrieve;
var _toJson = OfficeExtension.Utility.toJson;
var _fixObjectPathIfNecessary = OfficeExtension.Utility.fixObjectPathIfNecessary;
var _handleNavigationPropertyResults = OfficeExtension.Utility._handleNavigationPropertyResults;
var _adjustToDateTime = OfficeExtension.Utility.adjustToDateTime;
var _processRetrieveResult = OfficeExtension.Utility.processRetrieveResult;
var _typeTelemetryService = "TelemetryService";
var TelemetryService = (function (_super) {
__extends(TelemetryService, _super);
function TelemetryService() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(TelemetryService.prototype, "_className", {
get: function () {
return "TelemetryService";
},
enumerable: true,
configurable: true
});
TelemetryService.prototype.sendTelemetryEvent = function (telemetryProperties, eventName, eventContract, eventFlags, value) {
_invokeMethod(this, "SendTelemetryEvent", 1, [telemetryProperties, eventName, eventContract, eventFlags, value], 4, 0);
};
TelemetryService.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
};
TelemetryService.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
TelemetryService.newObject = function (context) {
return _createTopLevelServiceObject(OfficeCore.TelemetryService, context, "Microsoft.Telemetry.TelemetryService", false, 4);
};
TelemetryService.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return TelemetryService;
}(OfficeExtension.ClientObject));
OfficeCore.TelemetryService = TelemetryService;
var DataFieldType;
(function (DataFieldType) {
DataFieldType["unset"] = "Unset";
DataFieldType["string"] = "String";
DataFieldType["boolean"] = "Boolean";
DataFieldType["int64"] = "Int64";
DataFieldType["double"] = "Double";
})(DataFieldType = OfficeCore.DataFieldType || (OfficeCore.DataFieldType = {}));
var TelemetryErrorCodes;
(function (TelemetryErrorCodes) {
TelemetryErrorCodes["generalException"] = "GeneralException";
})(TelemetryErrorCodes = OfficeCore.TelemetryErrorCodes || (OfficeCore.TelemetryErrorCodes = {}));
})(OfficeCore || (OfficeCore = {}));
var OfficeFirstPartyAuth;
(function (OfficeFirstPartyAuth) {
var ErrorCode = (function () {
function ErrorCode() {
}
ErrorCode.GetAuthContextAsyncMissing = "GetAuthContextAsyncMissing";
ErrorCode.CannotGetAuthContext = "CannotGetAuthContext";
ErrorCode.PackageNotLoaded = "PackageNotLoaded";
ErrorCode.FailedToLoad = "FailedToLoad";
return ErrorCode;
}());
var WebAuthReplyUrlsStorageKey = "officeWebAuthReplyUrls";
var retrievedAuthContext = false;
var errorMessage;
OfficeFirstPartyAuth.debugging = false;
function load(replyUrl) {
return new OfficeExtension.CoreUtility.Promise(function (resolve, reject) {
if (OSF.WebAuth && OSF._OfficeAppFactory.getHostInfo().hostPlatform == "web") {
try {
if (!Office || !Office.context || !Office.context.webAuth) {
reject({ code: ErrorCode.GetAuthContextAsyncMissing, message: (typeof (Strings) !== 'undefined' && Strings.OfficeOM.L_ImplicitGetAuthContextMissing) ? Strings.OfficeOM.L_ImplicitGetAuthContextMissing : "" });
}
Office.context.webAuth.getAuthContextAsync(function (result) {
if (result.status === "succeeded") {
retrievedAuthContext = true;
var authContext = result.value;
if (!authContext || authContext.isAnonymous) {
reject({ code: ErrorCode.CannotGetAuthContext, message: (typeof (Strings) !== 'undefined' && Strings.OfficeOM.L_ImplicitGetAuthContextMissing) ? Strings.OfficeOM.L_ImplicitGetAuthContextMissing : "" });
return;
}
var isMsa = authContext.authorityType.toLowerCase() === 'msa';
OSF.WebAuth.config = {
idp: authContext.authorityType.toLowerCase(),
appIds: [isMsa ? (authContext.msaAppId) ? authContext.msaAppId : authContext.appId : authContext.appId],
authority: (OfficeFirstPartyAuth.authorityOverride) ? OfficeFirstPartyAuth.authorityOverride : authContext.authority,
redirectUri: (replyUrl) ? replyUrl : null,
upn: authContext.upn,
enableConsoleLogging: OfficeFirstPartyAuth.debugging,
telemetryInstance: 'otel',
telemetry: { HashedUserId: authContext.userId }
};
var succeeded = false;
var loadResult = OSF.WebAuth.load(function (loaded) {
if (loaded) {
succeeded = true;
resolve();
}
reject({ code: ErrorCode.PackageNotLoaded, message: (typeof (Strings) !== 'undefined' && Strings.OfficeOM.L_ImplicitNotLoaded) ? Strings.OfficeOM.L_ImplicitNotLoaded : "" });
});
logLoadEvent(loadResult, succeeded);
var finalReplyUrl = (replyUrl) ? replyUrl : window.location.href.split("?")[0];
var replyUrls = sessionStorage.getItem(WebAuthReplyUrlsStorageKey);
if (replyUrls || replyUrls === "") {
replyUrls = finalReplyUrl;
}
else {
replyUrls += ", " + finalReplyUrl;
}
sessionStorage.setItem(WebAuthReplyUrlsStorageKey, replyUrls);
}
else {
retrievedAuthContext = false;
OSF.WebAuth.config = null;
errorMessage = JSON.stringify(result);
reject({ code: ErrorCode.FailedToLoad, message: errorMessage });
}
});
}
catch (e) {
retrievedAuthContext = false;
OSF.WebAuth.config = null;
errorMessage = e;
OSF.WebAuth.load(function (loaded) {
if (loaded) {
resolve();
}
reject({ code: ErrorCode.FailedToLoad, message: errorMessage });
});
}
}
else {
resolve();
}
});
}
OfficeFirstPartyAuth.load = load;
function getAccessToken(options, behaviorOption) {
return new OfficeExtension.CoreUtility.Promise(function (resolve, reject) {
if (OSF._OfficeAppFactory.getHostInfo().hostPlatform == "web") {
Office.context.webAuth.getAuthContextAsync(function (result) {
var supportsAuthToken = false;
if (result.status === "succeeded") {
retrievedAuthContext = true;
var authContext = result.value;
if (authContext.supportsAuthToken) {
supportsAuthToken = true;
}
}
if (!supportsAuthToken) {
if (OSF.WebAuth && OSF.WebAuth.loaded) {
if (behaviorOption && behaviorOption.forceRefresh) {
OSF.WebAuth.clearCache();
}
var identityType_1 = (OSF.WebAuth.config.idp.toLowerCase() == "msa")
? OfficeCore.IdentityType.microsoftAccount
: OfficeCore.IdentityType.organizationAccount;
if (OSF.WebAuth.config.appIds[0]) {
OSF.WebAuth.getToken(options.resource, OSF.WebAuth.config.appIds[0], OSF._OfficeAppFactory.getHostInfo().osfControlAppCorrelationId, (behaviorOption && behaviorOption.popup) ? behaviorOption.popup : null).then(function (result) {
logAcquireEvent(result, true, options.resource, (behaviorOption && behaviorOption.popup) ? behaviorOption.popup : null);
resolve({ accessToken: result.Token, tokenIdenityType: identityType_1 });
})["catch"](function (result) {
logAcquireEvent(result, false, options.resource, (behaviorOption && behaviorOption.popup) ? behaviorOption.popup : null, result.ErrorCode);
reject({ code: result.ErrorCode, message: result.ErrorMessage });
});
}
}
else {
logUnexpectedAcquireEvent(OSF.WebAuth.loaded, OSF.WebAuth.loadAttempts);
}
}
else {
var context = new OfficeCore.RequestContext();
var auth = OfficeCore.AuthenticationService.newObject(context);
context._customData = "WacPartition";
var result_1 = auth.getAccessToken(options, null);
context.sync().then(function () {
resolve(result_1.value);
});
}
});
}
else {
var context_1 = new OfficeCore.RequestContext();
var auth_1 = OfficeCore.AuthenticationService.newObject(context_1);
var handler_1 = auth_1.onTokenReceived.add(function (arg) {
if (!OfficeExtension.CoreUtility.isNullOrUndefined(arg)) {
handler_1.remove();
context_1.sync()["catch"](function () {
});
if (arg.code == 0) {
resolve(arg.tokenValue);
}
else {
if (OfficeExtension.CoreUtility.isNullOrUndefined(arg.errorInfo)) {
reject({ code: arg.code });
}
else {
try {
reject(JSON.parse(arg.errorInfo));
}
catch (e) {
reject({ code: arg.code, message: arg.errorInfo });
}
}
}
}
return null;
});
context_1.sync()
.then(function () {
var apiResult = auth_1.getAccessToken(options, auth_1._targetId);
return context_1.sync()
.then(function () {
if (OfficeExtension.CoreUtility.isNullOrUndefined(apiResult.value)) {
return null;
}
var tokenValue = apiResult.value.accessToken;
if (!OfficeExtension.CoreUtility.isNullOrUndefined(tokenValue)) {
resolve(apiResult.value);
}
});
})["catch"](function (e) {
reject(e);
});
}
});
}
OfficeFirstPartyAuth.getAccessToken = getAccessToken;
function getPrimaryIdentityInfo() {
var context = new OfficeCore.RequestContext();
var auth = OfficeCore.AuthenticationService.newObject(context);
context._customData = "WacPartition";
var result = auth.getPrimaryIdentityInfo();
return context.sync().then(function () { return result.value; });
}
OfficeFirstPartyAuth.getPrimaryIdentityInfo = getPrimaryIdentityInfo;
function getIdentities() {
var context = new OfficeCore.RequestContext();
var auth_service = OfficeCore.AuthenticationService.newObject(context);
var result = auth_service.getIdentities();
return context.sync().then(function () { return result.value; });
}
OfficeFirstPartyAuth.getIdentities = getIdentities;
function logLoadEvent(result, succeeded) {
if (OfficeFirstPartyAuth.debugging) {
console.log("Logging Implicit load event");
}
if (typeof OTel !== "undefined") {
OTel.OTelLogger.onTelemetryLoaded(function () {
var telemetryData = [
oteljs.makeStringDataField('IdentityProvider', OSF.WebAuth.config.idp),
oteljs.makeStringDataField('AppId', OSF.WebAuth.config.appIds[0]),
oteljs.makeBooleanDataField('Js', typeof Implicit !== "undefined" ? true : false),
oteljs.makeBooleanDataField('Result', succeeded)
];
if (OSF.WebAuth.config.telemetry) {
for (var key in OSF.WebAuth.config.telemetry) {
telemetryData.push(oteljs.makeStringDataField(key, OSF.WebAuth.config.telemetry[key]));
}
}
if (result && result.Telemetry) {
for (var key in result.Telemetry) {
if (!result.Telemetry[key]) {
continue;
}
switch (key) {
case 'succeeded':
telemetryData.push(oteljs.makeBooleanDataField(key, result.Telemetry[key]));
break;
case 'loadedApplicationCount':
telemetryData.push(oteljs.makeInt64DataField(key, result.Telemetry[key]));
break;
case 'timeToLoad':
telemetryData.push(oteljs.makeInt64DataField(key, result.Telemetry[key]));
break;
default:
telemetryData.push(oteljs.makeStringDataField(key, result.Telemetry[key]));
}
}
}
OTel.OTelLogger.sendTelemetryEvent({
eventName: "Office.Extensibility.OfficeJs.OfficeFirstPartyAuth.Load",
dataFields: telemetryData,
eventFlags: {
dataCategories: oteljs.DataCategories.ProductServiceUsage
}
});
});
}
}
function logAcquireEvent(result, succeeded, target, popup, message) {
if (OfficeFirstPartyAuth.debugging) {
console.log("Logging Implicit acquire event");
}
if (typeof OTel !== "undefined") {
OTel.OTelLogger.onTelemetryLoaded(function () {
var telemetryData = [
oteljs.makeStringDataField('IdentityProvider', OSF.WebAuth.config.idp),
oteljs.makeStringDataField('AppId', OSF.WebAuth.config.appIds[0]),
oteljs.makeStringDataField('Target', target),
oteljs.makeBooleanDataField('Popup', (typeof popup === "boolean") ? popup : false),
oteljs.makeBooleanDataField('Result', succeeded),
oteljs.makeStringDataField('Error', message)
];
if (OSF.WebAuth.config.telemetry) {
for (var key in OSF.WebAuth.config.telemetry) {
telemetryData.push(oteljs.makeStringDataField(key, OSF.WebAuth.config.telemetry[key]));
}
}
if (result && result.Telemetry) {
for (var key in result.Telemetry) {
if (!result.Telemetry[key]) {
continue;
}
switch (key) {
case 'succeeded':
telemetryData.push(oteljs.makeBooleanDataField(key, result.Telemetry[key]));
break;
case 'timeToGetToken':
telemetryData.push(oteljs.makeInt64DataField(key, result.Telemetry[key]));
break;
default:
telemetryData.push(oteljs.makeStringDataField(key, result.Telemetry[key]));
}
}
}
OTel.OTelLogger.sendTelemetryEvent({
eventName: "Office.Extensibility.OfficeJs.OfficeFirstPartyAuth.GetAccessToken",
dataFields: telemetryData,
eventFlags: {
dataCategories: oteljs.DataCategories.ProductServiceUsage
}
});
});
}
}
function logUnexpectedAcquireEvent(loaded, loadAttempts) {
if (OfficeFirstPartyAuth.debugging) {
console.log("Logging Implicit unexpected acquire event");
}
if (typeof OTel !== "undefined") {
OTel.OTelLogger.onTelemetryLoaded(function () {
var telemetryData = [
oteljs.makeBooleanDataField('Loaded', loaded),
oteljs.makeInt64DataField('LoadAttempts', loadAttempts)
];
OTel.OTelLogger.sendTelemetryEvent({
eventName: "Office.Extensibility.OfficeJs.OfficeFirstPartyAuth.UnexpectedAcquire",
dataFields: telemetryData,
eventFlags: {
dataCategories: oteljs.DataCategories.ProductServiceUsage
}
});
});
}
}
function loadWebAuthForReplyPage() {
try {
if (typeof (window) === "undefined" || !window.sessionStorage) {
return;
}
var webAuthRedirectUrls = sessionStorage.getItem(WebAuthReplyUrlsStorageKey);
if (webAuthRedirectUrls !== null && webAuthRedirectUrls.indexOf(window.location.origin + window.location.pathname) !== -1) {
load();
}
}
catch (ex) {
console.error(ex);
}
}
if (typeof (window) !== "undefined" && window.OSF) {
loadWebAuthForReplyPage();
}
})(OfficeFirstPartyAuth || (OfficeFirstPartyAuth = {}));
var OfficeCore;
(function (OfficeCore) {
var _hostName = "Office";
var _defaultApiSetName = "OfficeSharedApi";
var _createPropertyObject = OfficeExtension.BatchApiHelper.createPropertyObject;
var _createMethodObject = OfficeExtension.BatchApiHelper.createMethodObject;
var _createIndexerObject = OfficeExtension.BatchApiHelper.createIndexerObject;
var _createRootServiceObject = OfficeExtension.BatchApiHelper.createRootServiceObject;
var _createTopLevelServiceObject = OfficeExtension.BatchApiHelper.createTopLevelServiceObject;
var _createChildItemObject = OfficeExtension.BatchApiHelper.createChildItemObject;
var _invokeMethod = OfficeExtension.BatchApiHelper.invokeMethod;
var _invokeEnsureUnchanged = OfficeExtension.BatchApiHelper.invokeEnsureUnchanged;
var _invokeSetProperty = OfficeExtension.BatchApiHelper.invokeSetProperty;
var _isNullOrUndefined = OfficeExtension.Utility.isNullOrUndefined;
var _isUndefined = OfficeExtension.Utility.isUndefined;
var _throwIfNotLoaded = OfficeExtension.Utility.throwIfNotLoaded;
var _throwIfApiNotSupported = OfficeExtension.Utility.throwIfApiNotSupported;
var _load = OfficeExtension.Utility.load;
var _retrieve = OfficeExtension.Utility.retrieve;
var _toJson = OfficeExtension.Utility.toJson;
var _fixObjectPathIfNecessary = OfficeExtension.Utility.fixObjectPathIfNecessary;
var _handleNavigationPropertyResults = OfficeExtension.Utility._handleNavigationPropertyResults;
var _adjustToDateTime = OfficeExtension.Utility.adjustToDateTime;
var _processRetrieveResult = OfficeExtension.Utility.processRetrieveResult;
var _setMockData = OfficeExtension.Utility.setMockData;
var _calculateApiFlags = OfficeExtension.CommonUtility.calculateApiFlags;
var IdentityType;
(function (IdentityType) {
IdentityType["organizationAccount"] = "OrganizationAccount";
IdentityType["microsoftAccount"] = "MicrosoftAccount";
IdentityType["unsupported"] = "Unsupported";
})(IdentityType = OfficeCore.IdentityType || (OfficeCore.IdentityType = {}));
var _typeAuthenticationService = "AuthenticationService";
var AuthenticationService = (function (_super) {
__extends(AuthenticationService, _super);
function AuthenticationService() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(AuthenticationService.prototype, "_className", {
get: function () {
return "AuthenticationService";
},
enumerable: true,
configurable: true
});
Object.defineProperty(AuthenticationService.prototype, "_navigationPropertyNames", {
get: function () {
return ["roamingSettings"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(AuthenticationService.prototype, "roamingSettings", {
get: function () {
if (!this._R) {
this._R = _createPropertyObject(OfficeCore.RoamingSettingCollection, this, "RoamingSettings", false, 4);
}
return this._R;
},
enumerable: true,
configurable: true
});
AuthenticationService.prototype.getAccessToken = function (tokenParameters, targetId) {
return _invokeMethod(this, "GetAccessToken", 1, [tokenParameters, targetId], 4 | 1, 0);
};
AuthenticationService.prototype.getIdentities = function () {
_throwIfApiNotSupported("AuthenticationService.getIdentities", "FirstPartyAuthentication", "1.3", _hostName);
return _invokeMethod(this, "GetIdentities", 1, [], 4 | 1, 0);
};
AuthenticationService.prototype.getPrimaryIdentityInfo = function () {
_throwIfApiNotSupported("AuthenticationService.getPrimaryIdentityInfo", "FirstPartyAuthentication", "1.2", _hostName);
return _invokeMethod(this, "GetPrimaryIdentityInfo", 1, [], 4 | 1, 0);
};
AuthenticationService.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
_handleNavigationPropertyResults(this, obj, ["roamingSettings", "RoamingSettings"]);
};
AuthenticationService.prototype.load = function (options) {
return _load(this, options);
};
AuthenticationService.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
AuthenticationService.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
AuthenticationService.newObject = function (context) {
return _createTopLevelServiceObject(OfficeCore.AuthenticationService, context, "Microsoft.Authentication.AuthenticationService", false, 4);
};
Object.defineProperty(AuthenticationService.prototype, "onTokenReceived", {
get: function () {
var _this = this;
_throwIfApiNotSupported("AuthenticationService.onTokenReceived", "FirstPartyAuthentication", "1.2", _hostName);
if (!this.m_tokenReceived) {
this.m_tokenReceived = new OfficeExtension.GenericEventHandlers(this.context, this, "TokenReceived", {
eventType: 3001,
registerFunc: function () { return OfficeExtension.Utility._createPromiseFromResult(null); },
unregisterFunc: function () { return OfficeExtension.Utility._createPromiseFromResult(null); },
getTargetIdFunc: function () { return _this._targetId; },
eventArgsTransformFunc: function (value) {
var event = _CC.AuthenticationService_TokenReceived_EventArgsTransform(_this, value);
return OfficeExtension.Utility._createPromiseFromResult(event);
}
});
}
return this.m_tokenReceived;
},
enumerable: true,
configurable: true
});
AuthenticationService.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return AuthenticationService;
}(OfficeExtension.ClientObject));
OfficeCore.AuthenticationService = AuthenticationService;
var AuthenticationServiceCustom = (function () {
function AuthenticationServiceCustom() {
}
Object.defineProperty(AuthenticationServiceCustom.prototype, "_targetId", {
get: function () {
if (this.m_targetId == undefined) {
if (typeof (OSF) !== 'undefined' && OSF.OUtil) {
this.m_targetId = OSF.OUtil.Guid.generateNewGuid();
}
else {
this.m_targetId = "" + this.context._nextId();
}
}
return this.m_targetId;
},
enumerable: true,
configurable: true
});
return AuthenticationServiceCustom;
}());
OfficeCore.AuthenticationServiceCustom = AuthenticationServiceCustom;
OfficeExtension.Utility.applyMixin(AuthenticationService, AuthenticationServiceCustom);
var _CC;
(function (_CC) {
function AuthenticationService_TokenReceived_EventArgsTransform(thisObj, args) {
var value = args;
var newArgs = {
tokenValue: value.tokenValue,
code: value.code,
errorInfo: value.errorInfo
};
return newArgs;
}
_CC.AuthenticationService_TokenReceived_EventArgsTransform = AuthenticationService_TokenReceived_EventArgsTransform;
})(_CC = OfficeCore._CC || (OfficeCore._CC = {}));
var _typeRoamingSetting = "RoamingSetting";
var RoamingSetting = (function (_super) {
__extends(RoamingSetting, _super);
function RoamingSetting() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(RoamingSetting.prototype, "_className", {
get: function () {
return "RoamingSetting";
},
enumerable: true,
configurable: true
});
Object.defineProperty(RoamingSetting.prototype, "_scalarPropertyNames", {
get: function () {
return ["id", "value"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(RoamingSetting.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["Id", "Value"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(RoamingSetting.prototype, "_scalarPropertyUpdateable", {
get: function () {
return [false, true];
},
enumerable: true,
configurable: true
});
Object.defineProperty(RoamingSetting.prototype, "id", {
get: function () {
_throwIfNotLoaded("id", this._I, _typeRoamingSetting, this._isNull);
return this._I;
},
enumerable: true,
configurable: true
});
Object.defineProperty(RoamingSetting.prototype, "value", {
get: function () {
_throwIfNotLoaded("value", this._V, _typeRoamingSetting, this._isNull);
return this._V;
},
set: function (value) {
this._V = value;
_invokeSetProperty(this, "Value", value, 0);
},
enumerable: true,
configurable: true
});
RoamingSetting.prototype.set = function (properties, options) {
this._recursivelySet(properties, options, ["value"], [], []);
};
RoamingSetting.prototype.update = function (properties) {
this._recursivelyUpdate(properties);
};
RoamingSetting.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["Id"])) {
this._I = obj["Id"];
}
if (!_isUndefined(obj["Value"])) {
this._V = obj["Value"];
}
};
RoamingSetting.prototype.load = function (options) {
return _load(this, options);
};
RoamingSetting.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
RoamingSetting.prototype._handleIdResult = function (value) {
_super.prototype._handleIdResult.call(this, value);
if (_isNullOrUndefined(value)) {
return;
}
if (!_isUndefined(value["Id"])) {
this._I = value["Id"];
}
};
RoamingSetting.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
RoamingSetting.prototype.toJSON = function () {
return _toJson(this, {
"id": this._I,
"value": this._V
}, {});
};
RoamingSetting.prototype.setMockData = function (data) {
_setMockData(this, data);
};
RoamingSetting.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return RoamingSetting;
}(OfficeExtension.ClientObject));
OfficeCore.RoamingSetting = RoamingSetting;
var _typeRoamingSettingCollection = "RoamingSettingCollection";
var RoamingSettingCollection = (function (_super) {
__extends(RoamingSettingCollection, _super);
function RoamingSettingCollection() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(RoamingSettingCollection.prototype, "_className", {
get: function () {
return "RoamingSettingCollection";
},
enumerable: true,
configurable: true
});
RoamingSettingCollection.prototype.getItem = function (id) {
return _createMethodObject(OfficeCore.RoamingSetting, this, "GetItem", 1, [id], false, false, null, 4);
};
RoamingSettingCollection.prototype.getItemOrNullObject = function (id) {
return _createMethodObject(OfficeCore.RoamingSetting, this, "GetItemOrNullObject", 1, [id], false, false, null, 4);
};
RoamingSettingCollection.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
};
RoamingSettingCollection.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
RoamingSettingCollection.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return RoamingSettingCollection;
}(OfficeExtension.ClientObject));
OfficeCore.RoamingSettingCollection = RoamingSettingCollection;
var ServiceProvider;
(function (ServiceProvider) {
ServiceProvider["ariaBrowserPipeUrl"] = "AriaBrowserPipeUrl";
ServiceProvider["ariaUploadUrl"] = "AriaUploadUrl";
ServiceProvider["ariaVNextUploadUrl"] = "AriaVNextUploadUrl";
ServiceProvider["lokiAutoDiscoverUrl"] = "LokiAutoDiscoverUrl";
})(ServiceProvider = OfficeCore.ServiceProvider || (OfficeCore.ServiceProvider = {}));
var _typeServiceUrlProvider = "ServiceUrlProvider";
var ServiceUrlProvider = (function (_super) {
__extends(ServiceUrlProvider, _super);
function ServiceUrlProvider() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(ServiceUrlProvider.prototype, "_className", {
get: function () {
return "ServiceUrlProvider";
},
enumerable: true,
configurable: true
});
ServiceUrlProvider.prototype.getServiceUrl = function (emailAddress, provider) {
return _invokeMethod(this, "GetServiceUrl", 1, [emailAddress, provider], 4, 0);
};
ServiceUrlProvider.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
};
ServiceUrlProvider.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
ServiceUrlProvider.newObject = function (context) {
return _createTopLevelServiceObject(OfficeCore.ServiceUrlProvider, context, "Microsoft.DesktopCompliance.ServiceUrlProvider", false, 4);
};
ServiceUrlProvider.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return ServiceUrlProvider;
}(OfficeExtension.ClientObject));
OfficeCore.ServiceUrlProvider = ServiceUrlProvider;
var _typeLinkedIn = "LinkedIn";
var LinkedIn = (function (_super) {
__extends(LinkedIn, _super);
function LinkedIn() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(LinkedIn.prototype, "_className", {
get: function () {
return "LinkedIn";
},
enumerable: true,
configurable: true
});
LinkedIn.prototype.isEnabledForOffice = function () {
return _invokeMethod(this, "IsEnabledForOffice", 1, [], 4, 0);
};
LinkedIn.prototype.recordLinkedInSettingsCompliance = function (featureName, isEnabled) {
_invokeMethod(this, "RecordLinkedInSettingsCompliance", 0, [featureName, isEnabled], 0, 0);
};
LinkedIn.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
};
LinkedIn.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
LinkedIn.newObject = function (context) {
return _createTopLevelServiceObject(OfficeCore.LinkedIn, context, "Microsoft.DesktopCompliance.LinkedIn", false, 4);
};
LinkedIn.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return LinkedIn;
}(OfficeExtension.ClientObject));
OfficeCore.LinkedIn = LinkedIn;
var _typeNetworkUsage = "NetworkUsage";
var NetworkUsage = (function (_super) {
__extends(NetworkUsage, _super);
function NetworkUsage() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(NetworkUsage.prototype, "_className", {
get: function () {
return "NetworkUsage";
},
enumerable: true,
configurable: true
});
NetworkUsage.prototype.isInDisconnectedMode = function () {
return _invokeMethod(this, "IsInDisconnectedMode", 1, [], 4, 0);
};
NetworkUsage.prototype.isInOnlineMode = function () {
return _invokeMethod(this, "IsInOnlineMode", 1, [], 4, 0);
};
NetworkUsage.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
};
NetworkUsage.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
NetworkUsage.newObject = function (context) {
return _createTopLevelServiceObject(OfficeCore.NetworkUsage, context, "Microsoft.DesktopCompliance.NetworkUsage", false, 4);
};
NetworkUsage.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return NetworkUsage;
}(OfficeExtension.ClientObject));
OfficeCore.NetworkUsage = NetworkUsage;
var _typeDynamicRibbon = "DynamicRibbon";
var DynamicRibbon = (function (_super) {
__extends(DynamicRibbon, _super);
function DynamicRibbon() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(DynamicRibbon.prototype, "_className", {
get: function () {
return "DynamicRibbon";
},
enumerable: true,
configurable: true
});
Object.defineProperty(DynamicRibbon.prototype, "_navigationPropertyNames", {
get: function () {
return ["buttons"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(DynamicRibbon.prototype, "buttons", {
get: function () {
if (!this._B) {
this._B = _createPropertyObject(OfficeCore.RibbonButtonCollection, this, "Buttons", true, 4);
}
return this._B;
},
enumerable: true,
configurable: true
});
DynamicRibbon.prototype.executeRequestCreate = function (jsonCreate) {
_throwIfApiNotSupported("DynamicRibbon.executeRequestCreate", "DynamicRibbon", "1.2", _hostName);
_invokeMethod(this, "ExecuteRequestCreate", 1, [jsonCreate], 4, 0);
};
DynamicRibbon.prototype.executeRequestUpdate = function (jsonUpdate) {
_invokeMethod(this, "ExecuteRequestUpdate", 1, [jsonUpdate], 4, 0);
};
DynamicRibbon.prototype.getButton = function (id) {
return _createMethodObject(OfficeCore.RibbonButton, this, "GetButton", 1, [id], false, false, null, 4);
};
DynamicRibbon.prototype.getTab = function (id) {
return _createMethodObject(OfficeCore.RibbonTab, this, "GetTab", 1, [id], false, false, null, 4);
};
DynamicRibbon.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
_handleNavigationPropertyResults(this, obj, ["buttons", "Buttons"]);
};
DynamicRibbon.prototype.load = function (options) {
return _load(this, options);
};
DynamicRibbon.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
DynamicRibbon.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
DynamicRibbon.newObject = function (context) {
return _createTopLevelServiceObject(OfficeCore.DynamicRibbon, context, "Microsoft.DynamicRibbon.DynamicRibbon", false, 4);
};
DynamicRibbon.prototype.toJSON = function () {
return _toJson(this, {}, {
"buttons": this._B
});
};
return DynamicRibbon;
}(OfficeExtension.ClientObject));
OfficeCore.DynamicRibbon = DynamicRibbon;
var _typeRibbonTab = "RibbonTab";
var RibbonTab = (function (_super) {
__extends(RibbonTab, _super);
function RibbonTab() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(RibbonTab.prototype, "_className", {
get: function () {
return "RibbonTab";
},
enumerable: true,
configurable: true
});
Object.defineProperty(RibbonTab.prototype, "_scalarPropertyNames", {
get: function () {
return ["id"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(RibbonTab.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["Id"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(RibbonTab.prototype, "id", {
get: function () {
_throwIfNotLoaded("id", this._I, _typeRibbonTab, this._isNull);
return this._I;
},
enumerable: true,
configurable: true
});
RibbonTab.prototype.setVisibility = function (visibility) {
_invokeMethod(this, "SetVisibility", 0, [visibility], 0, 0);
};
RibbonTab.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["Id"])) {
this._I = obj["Id"];
}
};
RibbonTab.prototype.load = function (options) {
return _load(this, options);
};
RibbonTab.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
RibbonTab.prototype._handleIdResult = function (value) {
_super.prototype._handleIdResult.call(this, value);
if (_isNullOrUndefined(value)) {
return;
}
if (!_isUndefined(value["Id"])) {
this._I = value["Id"];
}
};
RibbonTab.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
RibbonTab.prototype.toJSON = function () {
return _toJson(this, {
"id": this._I
}, {});
};
RibbonTab.prototype.setMockData = function (data) {
_setMockData(this, data);
};
RibbonTab.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return RibbonTab;
}(OfficeExtension.ClientObject));
OfficeCore.RibbonTab = RibbonTab;
var _typeRibbonButton = "RibbonButton";
var RibbonButton = (function (_super) {
__extends(RibbonButton, _super);
function RibbonButton() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(RibbonButton.prototype, "_className", {
get: function () {
return "RibbonButton";
},
enumerable: true,
configurable: true
});
Object.defineProperty(RibbonButton.prototype, "_scalarPropertyNames", {
get: function () {
return ["id", "enabled", "label"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(RibbonButton.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["Id", "Enabled", "Label"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(RibbonButton.prototype, "_scalarPropertyUpdateable", {
get: function () {
return [false, true, false];
},
enumerable: true,
configurable: true
});
Object.defineProperty(RibbonButton.prototype, "enabled", {
get: function () {
_throwIfNotLoaded("enabled", this._E, _typeRibbonButton, this._isNull);
return this._E;
},
set: function (value) {
this._E = value;
_invokeSetProperty(this, "Enabled", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RibbonButton.prototype, "id", {
get: function () {
_throwIfNotLoaded("id", this._I, _typeRibbonButton, this._isNull);
return this._I;
},
enumerable: true,
configurable: true
});
Object.defineProperty(RibbonButton.prototype, "label", {
get: function () {
_throwIfNotLoaded("label", this._L, _typeRibbonButton, this._isNull);
return this._L;
},
enumerable: true,
configurable: true
});
RibbonButton.prototype.set = function (properties, options) {
this._recursivelySet(properties, options, ["enabled"], [], []);
};
RibbonButton.prototype.update = function (properties) {
this._recursivelyUpdate(properties);
};
RibbonButton.prototype.setEnabled = function (enabled) {
_invokeMethod(this, "SetEnabled", 0, [enabled], 0, 0);
};
RibbonButton.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["Enabled"])) {
this._E = obj["Enabled"];
}
if (!_isUndefined(obj["Id"])) {
this._I = obj["Id"];
}
if (!_isUndefined(obj["Label"])) {
this._L = obj["Label"];
}
};
RibbonButton.prototype.load = function (options) {
return _load(this, options);
};
RibbonButton.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
RibbonButton.prototype._handleIdResult = function (value) {
_super.prototype._handleIdResult.call(this, value);
if (_isNullOrUndefined(value)) {
return;
}
if (!_isUndefined(value["Id"])) {
this._I = value["Id"];
}
};
RibbonButton.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
RibbonButton.prototype.toJSON = function () {
return _toJson(this, {
"enabled": this._E,
"id": this._I,
"label": this._L
}, {});
};
RibbonButton.prototype.setMockData = function (data) {
_setMockData(this, data);
};
RibbonButton.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return RibbonButton;
}(OfficeExtension.ClientObject));
OfficeCore.RibbonButton = RibbonButton;
var _typeRibbonButtonCollection = "RibbonButtonCollection";
var RibbonButtonCollection = (function (_super) {
__extends(RibbonButtonCollection, _super);
function RibbonButtonCollection() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(RibbonButtonCollection.prototype, "_className", {
get: function () {
return "RibbonButtonCollection";
},
enumerable: true,
configurable: true
});
Object.defineProperty(RibbonButtonCollection.prototype, "_isCollection", {
get: function () {
return true;
},
enumerable: true,
configurable: true
});
Object.defineProperty(RibbonButtonCollection.prototype, "items", {
get: function () {
_throwIfNotLoaded("items", this.m__items, _typeRibbonButtonCollection, this._isNull);
return this.m__items;
},
enumerable: true,
configurable: true
});
RibbonButtonCollection.prototype.getCount = function () {
return _invokeMethod(this, "GetCount", 1, [], 4, 0);
};
RibbonButtonCollection.prototype.getItem = function (key) {
return _createIndexerObject(OfficeCore.RibbonButton, this, [key]);
};
RibbonButtonCollection.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isNullOrUndefined(obj[OfficeExtension.Constants.items])) {
this.m__items = [];
var _data = obj[OfficeExtension.Constants.items];
for (var i = 0; i < _data.length; i++) {
var _item = _createChildItemObject(OfficeCore.RibbonButton, true, this, _data[i], i);
_item._handleResult(_data[i]);
this.m__items.push(_item);
}
}
};
RibbonButtonCollection.prototype.load = function (options) {
return _load(this, options);
};
RibbonButtonCollection.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
RibbonButtonCollection.prototype._handleRetrieveResult = function (value, result) {
var _this = this;
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result, function (childItemData, index) { return _createChildItemObject(OfficeCore.RibbonButton, true, _this, childItemData, index); });
};
RibbonButtonCollection.prototype.toJSON = function () {
return _toJson(this, {}, {}, this.m__items);
};
RibbonButtonCollection.prototype.setMockData = function (data) {
var _this = this;
_setMockData(this, data, function (childItemData, index) { return _createChildItemObject(OfficeCore.RibbonButton, true, _this, childItemData, index); }, function (items) { return _this.m__items = items; });
};
return RibbonButtonCollection;
}(OfficeExtension.ClientObject));
OfficeCore.RibbonButtonCollection = RibbonButtonCollection;
var TimeStringFormat;
(function (TimeStringFormat) {
TimeStringFormat["shortTime"] = "ShortTime";
TimeStringFormat["longTime"] = "LongTime";
TimeStringFormat["shortDate"] = "ShortDate";
TimeStringFormat["longDate"] = "LongDate";
})(TimeStringFormat = OfficeCore.TimeStringFormat || (OfficeCore.TimeStringFormat = {}));
var _typeLocaleApi = "LocaleApi";
var LocaleApi = (function (_super) {
__extends(LocaleApi, _super);
function LocaleApi() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(LocaleApi.prototype, "_className", {
get: function () {
return "LocaleApi";
},
enumerable: true,
configurable: true
});
LocaleApi.prototype.formatDateTimeString = function (localeName, value, format) {
return _invokeMethod(this, "FormatDateTimeString", 1, [localeName, value, format], 4, 0);
};
LocaleApi.prototype.getLocaleDateTimeFormattingInfo = function (localeName) {
return _invokeMethod(this, "GetLocaleDateTimeFormattingInfo", 1, [localeName], 4, 0);
};
LocaleApi.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
};
LocaleApi.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
LocaleApi.newObject = function (context) {
return _createTopLevelServiceObject(OfficeCore.LocaleApi, context, "Microsoft.LocaleApi.LocaleApi", false, 4);
};
LocaleApi.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return LocaleApi;
}(OfficeExtension.ClientObject));
OfficeCore.LocaleApi = LocaleApi;
var _typeComment = "Comment";
var Comment = (function (_super) {
__extends(Comment, _super);
function Comment() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(Comment.prototype, "_className", {
get: function () {
return "Comment";
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "_scalarPropertyNames", {
get: function () {
return ["id", "text", "created", "level", "resolved", "author", "mentions"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["Id", "Text", "Created", "Level", "Resolved", "Author", "Mentions"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "_scalarPropertyUpdateable", {
get: function () {
return [false, true, false, false, true, false, false];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "_navigationPropertyNames", {
get: function () {
return ["parent", "parentOrNullObject", "replies"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "parent", {
get: function () {
if (!this._P) {
this._P = _createPropertyObject(OfficeCore.Comment, this, "Parent", false, 4);
}
return this._P;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "parentOrNullObject", {
get: function () {
if (!this._Pa) {
this._Pa = _createPropertyObject(OfficeCore.Comment, this, "ParentOrNullObject", false, 4);
}
return this._Pa;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "replies", {
get: function () {
if (!this._R) {
this._R = _createPropertyObject(OfficeCore.CommentCollection, this, "Replies", true, 4);
}
return this._R;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "author", {
get: function () {
_throwIfNotLoaded("author", this._A, _typeComment, this._isNull);
return this._A;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "created", {
get: function () {
_throwIfNotLoaded("created", this._C, _typeComment, this._isNull);
return this._C;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "id", {
get: function () {
_throwIfNotLoaded("id", this._I, _typeComment, this._isNull);
return this._I;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "level", {
get: function () {
_throwIfNotLoaded("level", this._L, _typeComment, this._isNull);
return this._L;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "mentions", {
get: function () {
_throwIfNotLoaded("mentions", this._M, _typeComment, this._isNull);
return this._M;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "resolved", {
get: function () {
_throwIfNotLoaded("resolved", this._Re, _typeComment, this._isNull);
return this._Re;
},
set: function (value) {
this._Re = value;
_invokeSetProperty(this, "Resolved", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "text", {
get: function () {
_throwIfNotLoaded("text", this._T, _typeComment, this._isNull);
return this._T;
},
set: function (value) {
this._T = value;
_invokeSetProperty(this, "Text", value, 0);
},
enumerable: true,
configurable: true
});
Comment.prototype.set = function (properties, options) {
this._recursivelySet(properties, options, ["text", "resolved"], [], [
"parent",
"parentOrNullObject",
"replies"
]);
};
Comment.prototype.update = function (properties) {
this._recursivelyUpdate(properties);
};
Comment.prototype["delete"] = function () {
_invokeMethod(this, "Delete", 0, [], 0, 0);
};
Comment.prototype.getParentOrSelf = function () {
return _createMethodObject(OfficeCore.Comment, this, "GetParentOrSelf", 1, [], false, false, null, 4);
};
Comment.prototype.getRichText = function (format) {
return _invokeMethod(this, "GetRichText", 1, [format], 4, 0);
};
Comment.prototype.reply = function (text, format) {
return _createMethodObject(OfficeCore.Comment, this, "Reply", 0, [text, format], false, false, null, 0);
};
Comment.prototype.setRichText = function (text, format) {
return _invokeMethod(this, "SetRichText", 0, [text, format], 0, 0);
};
Comment.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["Author"])) {
this._A = obj["Author"];
}
if (!_isUndefined(obj["Created"])) {
this._C = _adjustToDateTime(obj["Created"]);
}
if (!_isUndefined(obj["Id"])) {
this._I = obj["Id"];
}
if (!_isUndefined(obj["Level"])) {
this._L = obj["Level"];
}
if (!_isUndefined(obj["Mentions"])) {
this._M = obj["Mentions"];
}
if (!_isUndefined(obj["Resolved"])) {
this._Re = obj["Resolved"];
}
if (!_isUndefined(obj["Text"])) {
this._T = obj["Text"];
}
_handleNavigationPropertyResults(this, obj, ["parent", "Parent", "parentOrNullObject", "ParentOrNullObject", "replies", "Replies"]);
};
Comment.prototype.load = function (options) {
return _load(this, options);
};
Comment.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
Comment.prototype._handleIdResult = function (value) {
_super.prototype._handleIdResult.call(this, value);
if (_isNullOrUndefined(value)) {
return;
}
if (!_isUndefined(value["Id"])) {
this._I = value["Id"];
}
};
Comment.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
if (_isNullOrUndefined(value))
return;
var obj = value;
if (!_isUndefined(obj["Created"])) {
obj["created"] = _adjustToDateTime(obj["created"]);
}
_processRetrieveResult(this, value, result);
};
Comment.prototype.toJSON = function () {
return _toJson(this, {
"author": this._A,
"created": this._C,
"id": this._I,
"level": this._L,
"mentions": this._M,
"resolved": this._Re,
"text": this._T
}, {
"replies": this._R
});
};
Comment.prototype.setMockData = function (data) {
_setMockData(this, data);
};
Comment.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return Comment;
}(OfficeExtension.ClientObject));
OfficeCore.Comment = Comment;
var _typeCommentCollection = "CommentCollection";
var CommentCollection = (function (_super) {
__extends(CommentCollection, _super);
function CommentCollection() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(CommentCollection.prototype, "_className", {
get: function () {
return "CommentCollection";
},
enumerable: true,
configurable: true
});
Object.defineProperty(CommentCollection.prototype, "_isCollection", {
get: function () {
return true;
},
enumerable: true,
configurable: true
});
Object.defineProperty(CommentCollection.prototype, "items", {
get: function () {
_throwIfNotLoaded("items", this.m__items, _typeCommentCollection, this._isNull);
return this.m__items;
},
enumerable: true,
configurable: true
});
CommentCollection.prototype.getCount = function () {
return _invokeMethod(this, "GetCount", 1, [], 4, 0);
};
CommentCollection.prototype.getItem = function (id) {
return _createIndexerObject(OfficeCore.Comment, this, [id]);
};
CommentCollection.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isNullOrUndefined(obj[OfficeExtension.Constants.items])) {
this.m__items = [];
var _data = obj[OfficeExtension.Constants.items];
for (var i = 0; i < _data.length; i++) {
var _item = _createChildItemObject(OfficeCore.Comment, true, this, _data[i], i);
_item._handleResult(_data[i]);
this.m__items.push(_item);
}
}
};
CommentCollection.prototype.load = function (options) {
return _load(this, options);
};
CommentCollection.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
CommentCollection.prototype._handleRetrieveResult = function (value, result) {
var _this = this;
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result, function (childItemData, index) { return _createChildItemObject(OfficeCore.Comment, true, _this, childItemData, index); });
};
CommentCollection.prototype.toJSON = function () {
return _toJson(this, {}, {}, this.m__items);
};
CommentCollection.prototype.setMockData = function (data) {
var _this = this;
_setMockData(this, data, function (childItemData, index) { return _createChildItemObject(OfficeCore.Comment, true, _this, childItemData, index); }, function (items) { return _this.m__items = items; });
};
return CommentCollection;
}(OfficeExtension.ClientObject));
OfficeCore.CommentCollection = CommentCollection;
var CommentTextFormat;
(function (CommentTextFormat) {
CommentTextFormat["plain"] = "Plain";
CommentTextFormat["markdown"] = "Markdown";
CommentTextFormat["delta"] = "Delta";
})(CommentTextFormat = OfficeCore.CommentTextFormat || (OfficeCore.CommentTextFormat = {}));
var PersonaCardPerfPoint;
(function (PersonaCardPerfPoint) {
PersonaCardPerfPoint["placeHolderRendered"] = "PlaceHolderRendered";
PersonaCardPerfPoint["initialCardRendered"] = "InitialCardRendered";
})(PersonaCardPerfPoint = OfficeCore.PersonaCardPerfPoint || (OfficeCore.PersonaCardPerfPoint = {}));
var UnifiedCommunicationAvailability;
(function (UnifiedCommunicationAvailability) {
UnifiedCommunicationAvailability["notSet"] = "NotSet";
UnifiedCommunicationAvailability["free"] = "Free";
UnifiedCommunicationAvailability["idle"] = "Idle";
UnifiedCommunicationAvailability["busy"] = "Busy";
UnifiedCommunicationAvailability["idleBusy"] = "IdleBusy";
UnifiedCommunicationAvailability["doNotDisturb"] = "DoNotDisturb";
UnifiedCommunicationAvailability["unalertable"] = "Unalertable";
UnifiedCommunicationAvailability["unavailable"] = "Unavailable";
})(UnifiedCommunicationAvailability = OfficeCore.UnifiedCommunicationAvailability || (OfficeCore.UnifiedCommunicationAvailability = {}));
var UnifiedCommunicationStatus;
(function (UnifiedCommunicationStatus) {
UnifiedCommunicationStatus["online"] = "Online";
UnifiedCommunicationStatus["notOnline"] = "NotOnline";
UnifiedCommunicationStatus["away"] = "Away";
UnifiedCommunicationStatus["busy"] = "Busy";
UnifiedCommunicationStatus["beRightBack"] = "BeRightBack";
UnifiedCommunicationStatus["onThePhone"] = "OnThePhone";
UnifiedCommunicationStatus["outToLunch"] = "OutToLunch";
UnifiedCommunicationStatus["inAMeeting"] = "InAMeeting";
UnifiedCommunicationStatus["outOfOffice"] = "OutOfOffice";
UnifiedCommunicationStatus["doNotDisturb"] = "DoNotDisturb";
UnifiedCommunicationStatus["inAConference"] = "InAConference";
UnifiedCommunicationStatus["getting"] = "Getting";
UnifiedCommunicationStatus["notABuddy"] = "NotABuddy";
UnifiedCommunicationStatus["disconnected"] = "Disconnected";
UnifiedCommunicationStatus["notInstalled"] = "NotInstalled";
UnifiedCommunicationStatus["urgentInterruptionsOnly"] = "UrgentInterruptionsOnly";
UnifiedCommunicationStatus["mayBeAvailable"] = "MayBeAvailable";
UnifiedCommunicationStatus["idle"] = "Idle";
UnifiedCommunicationStatus["inPresentation"] = "InPresentation";
})(UnifiedCommunicationStatus = OfficeCore.UnifiedCommunicationStatus || (OfficeCore.UnifiedCommunicationStatus = {}));
var UnifiedCommunicationPresence;
(function (UnifiedCommunicationPresence) {
UnifiedCommunicationPresence["free"] = "Free";
UnifiedCommunicationPresence["busy"] = "Busy";
UnifiedCommunicationPresence["idle"] = "Idle";
UnifiedCommunicationPresence["doNotDistrub"] = "DoNotDistrub";
UnifiedCommunicationPresence["blocked"] = "Blocked";
UnifiedCommunicationPresence["notSet"] = "NotSet";
UnifiedCommunicationPresence["outOfOffice"] = "OutOfOffice";
})(UnifiedCommunicationPresence = OfficeCore.UnifiedCommunicationPresence || (OfficeCore.UnifiedCommunicationPresence = {}));
var FreeBusyCalendarState;
(function (FreeBusyCalendarState) {
FreeBusyCalendarState["unknown"] = "Unknown";
FreeBusyCalendarState["free"] = "Free";
FreeBusyCalendarState["busy"] = "Busy";
FreeBusyCalendarState["elsewhere"] = "Elsewhere";
FreeBusyCalendarState["tentative"] = "Tentative";
FreeBusyCalendarState["outOfOffice"] = "OutOfOffice";
})(FreeBusyCalendarState = OfficeCore.FreeBusyCalendarState || (OfficeCore.FreeBusyCalendarState = {}));
var PersonaType;
(function (PersonaType) {
PersonaType["unknown"] = "Unknown";
PersonaType["enterprise"] = "Enterprise";
PersonaType["contact"] = "Contact";
PersonaType["bot"] = "Bot";
PersonaType["phoneOnly"] = "PhoneOnly";
PersonaType["oneOff"] = "OneOff";
PersonaType["distributionList"] = "DistributionList";
PersonaType["personalDistributionList"] = "PersonalDistributionList";
PersonaType["anonymous"] = "Anonymous";
PersonaType["unifiedGroup"] = "UnifiedGroup";
})(PersonaType = OfficeCore.PersonaType || (OfficeCore.PersonaType = {}));
var PhoneType;
(function (PhoneType) {
PhoneType["workPhone"] = "WorkPhone";
PhoneType["homePhone"] = "HomePhone";
PhoneType["mobilePhone"] = "MobilePhone";
PhoneType["businessFax"] = "BusinessFax";
PhoneType["otherPhone"] = "OtherPhone";
})(PhoneType = OfficeCore.PhoneType || (OfficeCore.PhoneType = {}));
var AddressType;
(function (AddressType) {
AddressType["workAddress"] = "WorkAddress";
AddressType["homeAddress"] = "HomeAddress";
AddressType["otherAddress"] = "OtherAddress";
})(AddressType = OfficeCore.AddressType || (OfficeCore.AddressType = {}));
var MemberType;
(function (MemberType) {
MemberType["unknown"] = "Unknown";
MemberType["individual"] = "Individual";
MemberType["group"] = "Group";
})(MemberType = OfficeCore.MemberType || (OfficeCore.MemberType = {}));
var _typeMemberInfoList = "MemberInfoList";
var MemberInfoList = (function (_super) {
__extends(MemberInfoList, _super);
function MemberInfoList() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(MemberInfoList.prototype, "_className", {
get: function () {
return "MemberInfoList";
},
enumerable: true,
configurable: true
});
Object.defineProperty(MemberInfoList.prototype, "_scalarPropertyNames", {
get: function () {
return ["isWarmedUp", "isWarmingUp"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(MemberInfoList.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["IsWarmedUp", "IsWarmingUp"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(MemberInfoList.prototype, "isWarmedUp", {
get: function () {
_throwIfNotLoaded("isWarmedUp", this._I, _typeMemberInfoList, this._isNull);
return this._I;
},
enumerable: true,
configurable: true
});
Object.defineProperty(MemberInfoList.prototype, "isWarmingUp", {
get: function () {
_throwIfNotLoaded("isWarmingUp", this._Is, _typeMemberInfoList, this._isNull);
return this._Is;
},
enumerable: true,
configurable: true
});
MemberInfoList.prototype.getPersonaForMember = function (memberCookie) {
return _createMethodObject(OfficeCore.Persona, this, "GetPersonaForMember", 1, [memberCookie], false, false, null, 4);
};
MemberInfoList.prototype.items = function () {
return _invokeMethod(this, "Items", 1, [], 4, 0);
};
MemberInfoList.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["IsWarmedUp"])) {
this._I = obj["IsWarmedUp"];
}
if (!_isUndefined(obj["IsWarmingUp"])) {
this._Is = obj["IsWarmingUp"];
}
};
MemberInfoList.prototype.load = function (options) {
return _load(this, options);
};
MemberInfoList.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
MemberInfoList.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
MemberInfoList.prototype.toJSON = function () {
return _toJson(this, {
"isWarmedUp": this._I,
"isWarmingUp": this._Is
}, {});
};
MemberInfoList.prototype.setMockData = function (data) {
_setMockData(this, data);
};
MemberInfoList.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return MemberInfoList;
}(OfficeExtension.ClientObject));
OfficeCore.MemberInfoList = MemberInfoList;
var PersonaDataUpdated;
(function (PersonaDataUpdated) {
PersonaDataUpdated["hostId"] = "HostId";
PersonaDataUpdated["type"] = "Type";
PersonaDataUpdated["photo"] = "Photo";
PersonaDataUpdated["personaInfo"] = "PersonaInfo";
PersonaDataUpdated["unifiedCommunicationInfo"] = "UnifiedCommunicationInfo";
PersonaDataUpdated["organization"] = "Organization";
PersonaDataUpdated["unifiedGroupInfo"] = "UnifiedGroupInfo";
PersonaDataUpdated["members"] = "Members";
PersonaDataUpdated["membership"] = "Membership";
PersonaDataUpdated["capabilities"] = "Capabilities";
PersonaDataUpdated["customizations"] = "Customizations";
PersonaDataUpdated["viewableSources"] = "ViewableSources";
PersonaDataUpdated["placeholder"] = "Placeholder";
})(PersonaDataUpdated = OfficeCore.PersonaDataUpdated || (OfficeCore.PersonaDataUpdated = {}));
var _typePersonaActions = "PersonaActions";
var PersonaActions = (function (_super) {
__extends(PersonaActions, _super);
function PersonaActions() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(PersonaActions.prototype, "_className", {
get: function () {
return "PersonaActions";
},
enumerable: true,
configurable: true
});
PersonaActions.prototype.addContact = function () {
_invokeMethod(this, "AddContact", 0, [], 0, 0);
};
PersonaActions.prototype.callPhoneNumber = function (contactNumber) {
_invokeMethod(this, "CallPhoneNumber", 0, [contactNumber], 0, 0);
};
PersonaActions.prototype.composeEmail = function (emailAddress) {
_invokeMethod(this, "ComposeEmail", 0, [emailAddress], 0, 0);
};
PersonaActions.prototype.composeInstantMessage = function (sipAddress) {
_invokeMethod(this, "ComposeInstantMessage", 0, [sipAddress], 0, 0);
};
PersonaActions.prototype.editContact = function () {
_invokeMethod(this, "EditContact", 0, [], 0, 0);
};
PersonaActions.prototype.editContactByIdentifier = function (identifier) {
_invokeMethod(this, "EditContactByIdentifier", 0, [identifier], 0, 0);
};
PersonaActions.prototype.getChangePhotoUrlAndOpenInBrowser = function () {
_invokeMethod(this, "GetChangePhotoUrlAndOpenInBrowser", 0, [], 0, 0);
};
PersonaActions.prototype.hideHoverCardForPersona = function () {
_invokeMethod(this, "HideHoverCardForPersona", 0, [], 0, 0);
};
PersonaActions.prototype.openGroupCalendar = function () {
_invokeMethod(this, "OpenGroupCalendar", 0, [], 0, 0);
};
PersonaActions.prototype.openLinkContactUx = function () {
_invokeMethod(this, "OpenLinkContactUx", 0, [], 0, 0);
};
PersonaActions.prototype.openOutlookProperties = function () {
_invokeMethod(this, "OpenOutlookProperties", 0, [], 0, 0);
};
PersonaActions.prototype.pinPersonaToQuickContacts = function () {
_invokeMethod(this, "PinPersonaToQuickContacts", 0, [], 0, 0);
};
PersonaActions.prototype.scheduleMeeting = function () {
_invokeMethod(this, "ScheduleMeeting", 0, [], 0, 0);
};
PersonaActions.prototype.showContactCard = function (pointToShowX, pointToShowY, personaRectTop, personaRectLeft, personaRectWidth, personaRectHeight) {
_invokeMethod(this, "ShowContactCard", 0, [pointToShowX, pointToShowY, personaRectTop, personaRectLeft, personaRectWidth, personaRectHeight], 0, 0);
};
PersonaActions.prototype.showContextMenu = function (pointToShowX, pointToShowY, personaRectTop, personaRectLeft, personaRectWidth, personaRectHeight) {
_invokeMethod(this, "ShowContextMenu", 0, [pointToShowX, pointToShowY, personaRectTop, personaRectLeft, personaRectWidth, personaRectHeight], 0, 0);
};
PersonaActions.prototype.showExpandedCard = function (pointToShowX, pointToShowY, personaRectTop, personaRectLeft, personaRectWidth, personaRectHeight) {
_invokeMethod(this, "ShowExpandedCard", 0, [pointToShowX, pointToShowY, personaRectTop, personaRectLeft, personaRectWidth, personaRectHeight], 0, 0);
};
PersonaActions.prototype.showHoverCardForPersona = function (pointToShowX, pointToShowY, personaRectTop, personaRectLeft, personaRectWidth, personaRectHeight) {
_invokeMethod(this, "ShowHoverCardForPersona", 0, [pointToShowX, pointToShowY, personaRectTop, personaRectLeft, personaRectWidth, personaRectHeight], 0, 0);
};
PersonaActions.prototype.startAudioCall = function () {
_invokeMethod(this, "StartAudioCall", 0, [], 0, 0);
};
PersonaActions.prototype.startVideoCall = function () {
_invokeMethod(this, "StartVideoCall", 0, [], 0, 0);
};
PersonaActions.prototype.subscribeToGroup = function () {
_invokeMethod(this, "SubscribeToGroup", 0, [], 0, 0);
};
PersonaActions.prototype.toggleTagForAlerts = function () {
_invokeMethod(this, "ToggleTagForAlerts", 0, [], 0, 0);
};
PersonaActions.prototype.unsubscribeFromGroup = function () {
_invokeMethod(this, "UnsubscribeFromGroup", 0, [], 0, 0);
};
PersonaActions.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
};
PersonaActions.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
PersonaActions.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return PersonaActions;
}(OfficeExtension.ClientObject));
OfficeCore.PersonaActions = PersonaActions;
var _typePersonaInfoSource = "PersonaInfoSource";
var PersonaInfoSource = (function (_super) {
__extends(PersonaInfoSource, _super);
function PersonaInfoSource() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(PersonaInfoSource.prototype, "_className", {
get: function () {
return "PersonaInfoSource";
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "_scalarPropertyNames", {
get: function () {
return ["displayName", "email", "emailAddresses", "sipAddresses", "birthday", "birthdays", "title", "jobInfoDepartment", "companyName", "office", "linkedTitles", "linkedDepartments", "linkedCompanyNames", "linkedOffices", "phones", "addresses", "webSites", "notes"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["DisplayName", "Email", "EmailAddresses", "SipAddresses", "Birthday", "Birthdays", "Title", "JobInfoDepartment", "CompanyName", "Office", "LinkedTitles", "LinkedDepartments", "LinkedCompanyNames", "LinkedOffices", "Phones", "Addresses", "WebSites", "Notes"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "addresses", {
get: function () {
_throwIfNotLoaded("addresses", this._A, _typePersonaInfoSource, this._isNull);
return this._A;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "birthday", {
get: function () {
_throwIfNotLoaded("birthday", this._B, _typePersonaInfoSource, this._isNull);
return this._B;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "birthdays", {
get: function () {
_throwIfNotLoaded("birthdays", this._Bi, _typePersonaInfoSource, this._isNull);
return this._Bi;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "companyName", {
get: function () {
_throwIfNotLoaded("companyName", this._C, _typePersonaInfoSource, this._isNull);
return this._C;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "displayName", {
get: function () {
_throwIfNotLoaded("displayName", this._D, _typePersonaInfoSource, this._isNull);
return this._D;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "email", {
get: function () {
_throwIfNotLoaded("email", this._E, _typePersonaInfoSource, this._isNull);
return this._E;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "emailAddresses", {
get: function () {
_throwIfNotLoaded("emailAddresses", this._Em, _typePersonaInfoSource, this._isNull);
return this._Em;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "jobInfoDepartment", {
get: function () {
_throwIfNotLoaded("jobInfoDepartment", this._J, _typePersonaInfoSource, this._isNull);
return this._J;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "linkedCompanyNames", {
get: function () {
_throwIfNotLoaded("linkedCompanyNames", this._L, _typePersonaInfoSource, this._isNull);
return this._L;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "linkedDepartments", {
get: function () {
_throwIfNotLoaded("linkedDepartments", this._Li, _typePersonaInfoSource, this._isNull);
return this._Li;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "linkedOffices", {
get: function () {
_throwIfNotLoaded("linkedOffices", this._Lin, _typePersonaInfoSource, this._isNull);
return this._Lin;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "linkedTitles", {
get: function () {
_throwIfNotLoaded("linkedTitles", this._Link, _typePersonaInfoSource, this._isNull);
return this._Link;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "notes", {
get: function () {
_throwIfNotLoaded("notes", this._N, _typePersonaInfoSource, this._isNull);
return this._N;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "office", {
get: function () {
_throwIfNotLoaded("office", this._O, _typePersonaInfoSource, this._isNull);
return this._O;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "phones", {
get: function () {
_throwIfNotLoaded("phones", this._P, _typePersonaInfoSource, this._isNull);
return this._P;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "sipAddresses", {
get: function () {
_throwIfNotLoaded("sipAddresses", this._S, _typePersonaInfoSource, this._isNull);
return this._S;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "title", {
get: function () {
_throwIfNotLoaded("title", this._T, _typePersonaInfoSource, this._isNull);
return this._T;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfoSource.prototype, "webSites", {
get: function () {
_throwIfNotLoaded("webSites", this._W, _typePersonaInfoSource, this._isNull);
return this._W;
},
enumerable: true,
configurable: true
});
PersonaInfoSource.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["Addresses"])) {
this._A = obj["Addresses"];
}
if (!_isUndefined(obj["Birthday"])) {
this._B = obj["Birthday"];
}
if (!_isUndefined(obj["Birthdays"])) {
this._Bi = obj["Birthdays"];
}
if (!_isUndefined(obj["CompanyName"])) {
this._C = obj["CompanyName"];
}
if (!_isUndefined(obj["DisplayName"])) {
this._D = obj["DisplayName"];
}
if (!_isUndefined(obj["Email"])) {
this._E = obj["Email"];
}
if (!_isUndefined(obj["EmailAddresses"])) {
this._Em = obj["EmailAddresses"];
}
if (!_isUndefined(obj["JobInfoDepartment"])) {
this._J = obj["JobInfoDepartment"];
}
if (!_isUndefined(obj["LinkedCompanyNames"])) {
this._L = obj["LinkedCompanyNames"];
}
if (!_isUndefined(obj["LinkedDepartments"])) {
this._Li = obj["LinkedDepartments"];
}
if (!_isUndefined(obj["LinkedOffices"])) {
this._Lin = obj["LinkedOffices"];
}
if (!_isUndefined(obj["LinkedTitles"])) {
this._Link = obj["LinkedTitles"];
}
if (!_isUndefined(obj["Notes"])) {
this._N = obj["Notes"];
}
if (!_isUndefined(obj["Office"])) {
this._O = obj["Office"];
}
if (!_isUndefined(obj["Phones"])) {
this._P = obj["Phones"];
}
if (!_isUndefined(obj["SipAddresses"])) {
this._S = obj["SipAddresses"];
}
if (!_isUndefined(obj["Title"])) {
this._T = obj["Title"];
}
if (!_isUndefined(obj["WebSites"])) {
this._W = obj["WebSites"];
}
};
PersonaInfoSource.prototype.load = function (options) {
return _load(this, options);
};
PersonaInfoSource.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
PersonaInfoSource.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
PersonaInfoSource.prototype.toJSON = function () {
return _toJson(this, {
"addresses": this._A,
"birthday": this._B,
"birthdays": this._Bi,
"companyName": this._C,
"displayName": this._D,
"email": this._E,
"emailAddresses": this._Em,
"jobInfoDepartment": this._J,
"linkedCompanyNames": this._L,
"linkedDepartments": this._Li,
"linkedOffices": this._Lin,
"linkedTitles": this._Link,
"notes": this._N,
"office": this._O,
"phones": this._P,
"sipAddresses": this._S,
"title": this._T,
"webSites": this._W
}, {});
};
PersonaInfoSource.prototype.setMockData = function (data) {
_setMockData(this, data);
};
PersonaInfoSource.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return PersonaInfoSource;
}(OfficeExtension.ClientObject));
OfficeCore.PersonaInfoSource = PersonaInfoSource;
var _typePersonaInfo = "PersonaInfo";
var PersonaInfo = (function (_super) {
__extends(PersonaInfo, _super);
function PersonaInfo() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(PersonaInfo.prototype, "_className", {
get: function () {
return "PersonaInfo";
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "_scalarPropertyNames", {
get: function () {
return ["displayName", "email", "emailAddresses", "sipAddresses", "birthday", "birthdays", "title", "jobInfoDepartment", "companyName", "office", "linkedTitles", "linkedDepartments", "linkedCompanyNames", "linkedOffices", "webSites", "notes", "isPersonResolved"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["DisplayName", "Email", "EmailAddresses", "SipAddresses", "Birthday", "Birthdays", "Title", "JobInfoDepartment", "CompanyName", "Office", "LinkedTitles", "LinkedDepartments", "LinkedCompanyNames", "LinkedOffices", "WebSites", "Notes", "IsPersonResolved"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "_navigationPropertyNames", {
get: function () {
return ["sources"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "sources", {
get: function () {
if (!this._So) {
this._So = _createPropertyObject(OfficeCore.PersonaInfoSource, this, "Sources", false, 4);
}
return this._So;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "birthday", {
get: function () {
_throwIfNotLoaded("birthday", this._B, _typePersonaInfo, this._isNull);
return this._B;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "birthdays", {
get: function () {
_throwIfNotLoaded("birthdays", this._Bi, _typePersonaInfo, this._isNull);
return this._Bi;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "companyName", {
get: function () {
_throwIfNotLoaded("companyName", this._C, _typePersonaInfo, this._isNull);
return this._C;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "displayName", {
get: function () {
_throwIfNotLoaded("displayName", this._D, _typePersonaInfo, this._isNull);
return this._D;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "email", {
get: function () {
_throwIfNotLoaded("email", this._E, _typePersonaInfo, this._isNull);
return this._E;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "emailAddresses", {
get: function () {
_throwIfNotLoaded("emailAddresses", this._Em, _typePersonaInfo, this._isNull);
return this._Em;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "isPersonResolved", {
get: function () {
_throwIfNotLoaded("isPersonResolved", this._I, _typePersonaInfo, this._isNull);
return this._I;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "jobInfoDepartment", {
get: function () {
_throwIfNotLoaded("jobInfoDepartment", this._J, _typePersonaInfo, this._isNull);
return this._J;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "linkedCompanyNames", {
get: function () {
_throwIfNotLoaded("linkedCompanyNames", this._L, _typePersonaInfo, this._isNull);
return this._L;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "linkedDepartments", {
get: function () {
_throwIfNotLoaded("linkedDepartments", this._Li, _typePersonaInfo, this._isNull);
return this._Li;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "linkedOffices", {
get: function () {
_throwIfNotLoaded("linkedOffices", this._Lin, _typePersonaInfo, this._isNull);
return this._Lin;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "linkedTitles", {
get: function () {
_throwIfNotLoaded("linkedTitles", this._Link, _typePersonaInfo, this._isNull);
return this._Link;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "notes", {
get: function () {
_throwIfNotLoaded("notes", this._N, _typePersonaInfo, this._isNull);
return this._N;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "office", {
get: function () {
_throwIfNotLoaded("office", this._O, _typePersonaInfo, this._isNull);
return this._O;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "sipAddresses", {
get: function () {
_throwIfNotLoaded("sipAddresses", this._S, _typePersonaInfo, this._isNull);
return this._S;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "title", {
get: function () {
_throwIfNotLoaded("title", this._T, _typePersonaInfo, this._isNull);
return this._T;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaInfo.prototype, "webSites", {
get: function () {
_throwIfNotLoaded("webSites", this._W, _typePersonaInfo, this._isNull);
return this._W;
},
enumerable: true,
configurable: true
});
PersonaInfo.prototype.getAddresses = function () {
return _invokeMethod(this, "GetAddresses", 1, [], 4, 0);
};
PersonaInfo.prototype.getPhones = function () {
return _invokeMethod(this, "GetPhones", 1, [], 4, 0);
};
PersonaInfo.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["Birthday"])) {
this._B = _adjustToDateTime(obj["Birthday"]);
}
if (!_isUndefined(obj["Birthdays"])) {
this._Bi = _adjustToDateTime(obj["Birthdays"]);
}
if (!_isUndefined(obj["CompanyName"])) {
this._C = obj["CompanyName"];
}
if (!_isUndefined(obj["DisplayName"])) {
this._D = obj["DisplayName"];
}
if (!_isUndefined(obj["Email"])) {
this._E = obj["Email"];
}
if (!_isUndefined(obj["EmailAddresses"])) {
this._Em = obj["EmailAddresses"];
}
if (!_isUndefined(obj["IsPersonResolved"])) {
this._I = obj["IsPersonResolved"];
}
if (!_isUndefined(obj["JobInfoDepartment"])) {
this._J = obj["JobInfoDepartment"];
}
if (!_isUndefined(obj["LinkedCompanyNames"])) {
this._L = obj["LinkedCompanyNames"];
}
if (!_isUndefined(obj["LinkedDepartments"])) {
this._Li = obj["LinkedDepartments"];
}
if (!_isUndefined(obj["LinkedOffices"])) {
this._Lin = obj["LinkedOffices"];
}
if (!_isUndefined(obj["LinkedTitles"])) {
this._Link = obj["LinkedTitles"];
}
if (!_isUndefined(obj["Notes"])) {
this._N = obj["Notes"];
}
if (!_isUndefined(obj["Office"])) {
this._O = obj["Office"];
}
if (!_isUndefined(obj["SipAddresses"])) {
this._S = obj["SipAddresses"];
}
if (!_isUndefined(obj["Title"])) {
this._T = obj["Title"];
}
if (!_isUndefined(obj["WebSites"])) {
this._W = obj["WebSites"];
}
_handleNavigationPropertyResults(this, obj, ["sources", "Sources"]);
};
PersonaInfo.prototype.load = function (options) {
return _load(this, options);
};
PersonaInfo.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
PersonaInfo.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
if (_isNullOrUndefined(value))
return;
var obj = value;
if (!_isUndefined(obj["Birthday"])) {
obj["birthday"] = _adjustToDateTime(obj["birthday"]);
}
if (!_isUndefined(obj["Birthdays"])) {
obj["birthdays"] = _adjustToDateTime(obj["birthdays"]);
}
_processRetrieveResult(this, value, result);
};
PersonaInfo.prototype.toJSON = function () {
return _toJson(this, {
"birthday": this._B,
"birthdays": this._Bi,
"companyName": this._C,
"displayName": this._D,
"email": this._E,
"emailAddresses": this._Em,
"isPersonResolved": this._I,
"jobInfoDepartment": this._J,
"linkedCompanyNames": this._L,
"linkedDepartments": this._Li,
"linkedOffices": this._Lin,
"linkedTitles": this._Link,
"notes": this._N,
"office": this._O,
"sipAddresses": this._S,
"title": this._T,
"webSites": this._W
}, {
"sources": this._So
});
};
PersonaInfo.prototype.setMockData = function (data) {
_setMockData(this, data);
};
PersonaInfo.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return PersonaInfo;
}(OfficeExtension.ClientObject));
OfficeCore.PersonaInfo = PersonaInfo;
var _typePersonaUnifiedCommunicationInfo = "PersonaUnifiedCommunicationInfo";
var PersonaUnifiedCommunicationInfo = (function (_super) {
__extends(PersonaUnifiedCommunicationInfo, _super);
function PersonaUnifiedCommunicationInfo() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "_className", {
get: function () {
return "PersonaUnifiedCommunicationInfo";
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "_scalarPropertyNames", {
get: function () {
return ["availability", "status", "isSelf", "isTagged", "customStatusString", "isBlocked", "presenceTooltip", "isOutOfOffice", "outOfOfficeNote", "timezone", "meetingLocation", "meetingSubject", "timezoneBias", "idleStartTime", "overallCapability", "isOnBuddyList", "presenceNote", "voiceMailUri", "availabilityText", "availabilityTooltip", "isDurationInAvailabilityText", "freeBusyStatus", "calendarState", "presence"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["Availability", "Status", "IsSelf", "IsTagged", "CustomStatusString", "IsBlocked", "PresenceTooltip", "IsOutOfOffice", "OutOfOfficeNote", "Timezone", "MeetingLocation", "MeetingSubject", "TimezoneBias", "IdleStartTime", "OverallCapability", "IsOnBuddyList", "PresenceNote", "VoiceMailUri", "AvailabilityText", "AvailabilityTooltip", "IsDurationInAvailabilityText", "FreeBusyStatus", "CalendarState", "Presence"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "availability", {
get: function () {
_throwIfNotLoaded("availability", this._A, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._A;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "availabilityText", {
get: function () {
_throwIfNotLoaded("availabilityText", this._Av, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._Av;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "availabilityTooltip", {
get: function () {
_throwIfNotLoaded("availabilityTooltip", this._Ava, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._Ava;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "calendarState", {
get: function () {
_throwIfNotLoaded("calendarState", this._C, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._C;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "customStatusString", {
get: function () {
_throwIfNotLoaded("customStatusString", this._Cu, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._Cu;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "freeBusyStatus", {
get: function () {
_throwIfNotLoaded("freeBusyStatus", this._F, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._F;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "idleStartTime", {
get: function () {
_throwIfNotLoaded("idleStartTime", this._I, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._I;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "isBlocked", {
get: function () {
_throwIfNotLoaded("isBlocked", this._Is, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._Is;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "isDurationInAvailabilityText", {
get: function () {
_throwIfNotLoaded("isDurationInAvailabilityText", this._IsD, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._IsD;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "isOnBuddyList", {
get: function () {
_throwIfNotLoaded("isOnBuddyList", this._IsO, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._IsO;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "isOutOfOffice", {
get: function () {
_throwIfNotLoaded("isOutOfOffice", this._IsOu, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._IsOu;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "isSelf", {
get: function () {
_throwIfNotLoaded("isSelf", this._IsS, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._IsS;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "isTagged", {
get: function () {
_throwIfNotLoaded("isTagged", this._IsT, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._IsT;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "meetingLocation", {
get: function () {
_throwIfNotLoaded("meetingLocation", this._M, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._M;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "meetingSubject", {
get: function () {
_throwIfNotLoaded("meetingSubject", this._Me, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._Me;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "outOfOfficeNote", {
get: function () {
_throwIfNotLoaded("outOfOfficeNote", this._O, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._O;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "overallCapability", {
get: function () {
_throwIfNotLoaded("overallCapability", this._Ov, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._Ov;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "presence", {
get: function () {
_throwIfNotLoaded("presence", this._P, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._P;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "presenceNote", {
get: function () {
_throwIfNotLoaded("presenceNote", this._Pr, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._Pr;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "presenceTooltip", {
get: function () {
_throwIfNotLoaded("presenceTooltip", this._Pre, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._Pre;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "status", {
get: function () {
_throwIfNotLoaded("status", this._S, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._S;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "timezone", {
get: function () {
_throwIfNotLoaded("timezone", this._T, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._T;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "timezoneBias", {
get: function () {
_throwIfNotLoaded("timezoneBias", this._Ti, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._Ti;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaUnifiedCommunicationInfo.prototype, "voiceMailUri", {
get: function () {
_throwIfNotLoaded("voiceMailUri", this._V, _typePersonaUnifiedCommunicationInfo, this._isNull);
return this._V;
},
enumerable: true,
configurable: true
});
PersonaUnifiedCommunicationInfo.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["Availability"])) {
this._A = obj["Availability"];
}
if (!_isUndefined(obj["AvailabilityText"])) {
this._Av = obj["AvailabilityText"];
}
if (!_isUndefined(obj["AvailabilityTooltip"])) {
this._Ava = obj["AvailabilityTooltip"];
}
if (!_isUndefined(obj["CalendarState"])) {
this._C = obj["CalendarState"];
}
if (!_isUndefined(obj["CustomStatusString"])) {
this._Cu = obj["CustomStatusString"];
}
if (!_isUndefined(obj["FreeBusyStatus"])) {
this._F = obj["FreeBusyStatus"];
}
if (!_isUndefined(obj["IdleStartTime"])) {
this._I = _adjustToDateTime(obj["IdleStartTime"]);
}
if (!_isUndefined(obj["IsBlocked"])) {
this._Is = obj["IsBlocked"];
}
if (!_isUndefined(obj["IsDurationInAvailabilityText"])) {
this._IsD = obj["IsDurationInAvailabilityText"];
}
if (!_isUndefined(obj["IsOnBuddyList"])) {
this._IsO = obj["IsOnBuddyList"];
}
if (!_isUndefined(obj["IsOutOfOffice"])) {
this._IsOu = obj["IsOutOfOffice"];
}
if (!_isUndefined(obj["IsSelf"])) {
this._IsS = obj["IsSelf"];
}
if (!_isUndefined(obj["IsTagged"])) {
this._IsT = obj["IsTagged"];
}
if (!_isUndefined(obj["MeetingLocation"])) {
this._M = obj["MeetingLocation"];
}
if (!_isUndefined(obj["MeetingSubject"])) {
this._Me = obj["MeetingSubject"];
}
if (!_isUndefined(obj["OutOfOfficeNote"])) {
this._O = obj["OutOfOfficeNote"];
}
if (!_isUndefined(obj["OverallCapability"])) {
this._Ov = obj["OverallCapability"];
}
if (!_isUndefined(obj["Presence"])) {
this._P = obj["Presence"];
}
if (!_isUndefined(obj["PresenceNote"])) {
this._Pr = obj["PresenceNote"];
}
if (!_isUndefined(obj["PresenceTooltip"])) {
this._Pre = obj["PresenceTooltip"];
}
if (!_isUndefined(obj["Status"])) {
this._S = obj["Status"];
}
if (!_isUndefined(obj["Timezone"])) {
this._T = obj["Timezone"];
}
if (!_isUndefined(obj["TimezoneBias"])) {
this._Ti = obj["TimezoneBias"];
}
if (!_isUndefined(obj["VoiceMailUri"])) {
this._V = obj["VoiceMailUri"];
}
};
PersonaUnifiedCommunicationInfo.prototype.load = function (options) {
return _load(this, options);
};
PersonaUnifiedCommunicationInfo.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
PersonaUnifiedCommunicationInfo.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
if (_isNullOrUndefined(value))
return;
var obj = value;
if (!_isUndefined(obj["IdleStartTime"])) {
obj["idleStartTime"] = _adjustToDateTime(obj["idleStartTime"]);
}
_processRetrieveResult(this, value, result);
};
PersonaUnifiedCommunicationInfo.prototype.toJSON = function () {
return _toJson(this, {
"availability": this._A,
"availabilityText": this._Av,
"availabilityTooltip": this._Ava,
"calendarState": this._C,
"customStatusString": this._Cu,
"freeBusyStatus": this._F,
"idleStartTime": this._I,
"isBlocked": this._Is,
"isDurationInAvailabilityText": this._IsD,
"isOnBuddyList": this._IsO,
"isOutOfOffice": this._IsOu,
"isSelf": this._IsS,
"isTagged": this._IsT,
"meetingLocation": this._M,
"meetingSubject": this._Me,
"outOfOfficeNote": this._O,
"overallCapability": this._Ov,
"presence": this._P,
"presenceNote": this._Pr,
"presenceTooltip": this._Pre,
"status": this._S,
"timezone": this._T,
"timezoneBias": this._Ti,
"voiceMailUri": this._V
}, {});
};
PersonaUnifiedCommunicationInfo.prototype.setMockData = function (data) {
_setMockData(this, data);
};
PersonaUnifiedCommunicationInfo.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return PersonaUnifiedCommunicationInfo;
}(OfficeExtension.ClientObject));
OfficeCore.PersonaUnifiedCommunicationInfo = PersonaUnifiedCommunicationInfo;
var _typePersonaPhotoInfo = "PersonaPhotoInfo";
var PersonaPhotoInfo = (function (_super) {
__extends(PersonaPhotoInfo, _super);
function PersonaPhotoInfo() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(PersonaPhotoInfo.prototype, "_className", {
get: function () {
return "PersonaPhotoInfo";
},
enumerable: true,
configurable: true
});
PersonaPhotoInfo.prototype.getImageUri = function (uriScheme) {
return _invokeMethod(this, "getImageUri", 1, [uriScheme], 4, 0);
};
PersonaPhotoInfo.prototype.getImageUriWithMetadata = function (uriScheme) {
return _invokeMethod(this, "getImageUriWithMetadata", 1, [uriScheme], 4, 0);
};
PersonaPhotoInfo.prototype.getPlaceholderUri = function (uriScheme) {
return _invokeMethod(this, "getPlaceholderUri", 1, [uriScheme], 4, 0);
};
PersonaPhotoInfo.prototype.setPlaceholderColor = function (color) {
_invokeMethod(this, "setPlaceholderColor", 0, [color], 0, 0);
};
PersonaPhotoInfo.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
};
PersonaPhotoInfo.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
PersonaPhotoInfo.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return PersonaPhotoInfo;
}(OfficeExtension.ClientObject));
OfficeCore.PersonaPhotoInfo = PersonaPhotoInfo;
var _typePersonaCollection = "PersonaCollection";
var PersonaCollection = (function (_super) {
__extends(PersonaCollection, _super);
function PersonaCollection() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(PersonaCollection.prototype, "_className", {
get: function () {
return "PersonaCollection";
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaCollection.prototype, "_isCollection", {
get: function () {
return true;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaCollection.prototype, "items", {
get: function () {
_throwIfNotLoaded("items", this.m__items, _typePersonaCollection, this._isNull);
return this.m__items;
},
enumerable: true,
configurable: true
});
PersonaCollection.prototype.getCount = function () {
return _invokeMethod(this, "GetCount", 1, [], 4, 0);
};
PersonaCollection.prototype.getItem = function (index) {
return _createIndexerObject(OfficeCore.Persona, this, [index]);
};
PersonaCollection.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isNullOrUndefined(obj[OfficeExtension.Constants.items])) {
this.m__items = [];
var _data = obj[OfficeExtension.Constants.items];
for (var i = 0; i < _data.length; i++) {
var _item = _createChildItemObject(OfficeCore.Persona, true, this, _data[i], i);
_item._handleResult(_data[i]);
this.m__items.push(_item);
}
}
};
PersonaCollection.prototype.load = function (options) {
return _load(this, options);
};
PersonaCollection.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
PersonaCollection.prototype._handleRetrieveResult = function (value, result) {
var _this = this;
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result, function (childItemData, index) { return _createChildItemObject(OfficeCore.Persona, true, _this, childItemData, index); });
};
PersonaCollection.prototype.toJSON = function () {
return _toJson(this, {}, {}, this.m__items);
};
PersonaCollection.prototype.setMockData = function (data) {
var _this = this;
_setMockData(this, data, function (childItemData, index) { return _createChildItemObject(OfficeCore.Persona, true, _this, childItemData, index); }, function (items) { return _this.m__items = items; });
};
return PersonaCollection;
}(OfficeExtension.ClientObject));
OfficeCore.PersonaCollection = PersonaCollection;
var _typePersonaOrganizationInfo = "PersonaOrganizationInfo";
var PersonaOrganizationInfo = (function (_super) {
__extends(PersonaOrganizationInfo, _super);
function PersonaOrganizationInfo() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(PersonaOrganizationInfo.prototype, "_className", {
get: function () {
return "PersonaOrganizationInfo";
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaOrganizationInfo.prototype, "_scalarPropertyNames", {
get: function () {
return ["isWarmedUp", "isWarmingUp"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaOrganizationInfo.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["IsWarmedUp", "IsWarmingUp"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaOrganizationInfo.prototype, "_navigationPropertyNames", {
get: function () {
return ["hierarchy", "manager", "directReports"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaOrganizationInfo.prototype, "directReports", {
get: function () {
if (!this._D) {
this._D = _createPropertyObject(OfficeCore.PersonaCollection, this, "DirectReports", true, 4);
}
return this._D;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaOrganizationInfo.prototype, "hierarchy", {
get: function () {
if (!this._H) {
this._H = _createPropertyObject(OfficeCore.PersonaCollection, this, "Hierarchy", true, 4);
}
return this._H;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaOrganizationInfo.prototype, "manager", {
get: function () {
if (!this._M) {
this._M = _createPropertyObject(OfficeCore.Persona, this, "Manager", false, 4);
}
return this._M;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaOrganizationInfo.prototype, "isWarmedUp", {
get: function () {
_throwIfNotLoaded("isWarmedUp", this._I, _typePersonaOrganizationInfo, this._isNull);
return this._I;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaOrganizationInfo.prototype, "isWarmingUp", {
get: function () {
_throwIfNotLoaded("isWarmingUp", this._Is, _typePersonaOrganizationInfo, this._isNull);
return this._Is;
},
enumerable: true,
configurable: true
});
PersonaOrganizationInfo.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["IsWarmedUp"])) {
this._I = obj["IsWarmedUp"];
}
if (!_isUndefined(obj["IsWarmingUp"])) {
this._Is = obj["IsWarmingUp"];
}
_handleNavigationPropertyResults(this, obj, ["directReports", "DirectReports", "hierarchy", "Hierarchy", "manager", "Manager"]);
};
PersonaOrganizationInfo.prototype.load = function (options) {
return _load(this, options);
};
PersonaOrganizationInfo.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
PersonaOrganizationInfo.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
PersonaOrganizationInfo.prototype.toJSON = function () {
return _toJson(this, {
"isWarmedUp": this._I,
"isWarmingUp": this._Is
}, {});
};
PersonaOrganizationInfo.prototype.setMockData = function (data) {
_setMockData(this, data);
};
PersonaOrganizationInfo.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return PersonaOrganizationInfo;
}(OfficeExtension.ClientObject));
OfficeCore.PersonaOrganizationInfo = PersonaOrganizationInfo;
var CustomizedData;
(function (CustomizedData) {
CustomizedData["email"] = "Email";
CustomizedData["workPhone"] = "WorkPhone";
CustomizedData["workPhone2"] = "WorkPhone2";
CustomizedData["workFax"] = "WorkFax";
CustomizedData["mobilePhone"] = "MobilePhone";
CustomizedData["homePhone"] = "HomePhone";
CustomizedData["homePhone2"] = "HomePhone2";
CustomizedData["otherPhone"] = "OtherPhone";
CustomizedData["sipAddress"] = "SipAddress";
CustomizedData["profile"] = "Profile";
CustomizedData["office"] = "Office";
CustomizedData["company"] = "Company";
CustomizedData["workAddress"] = "WorkAddress";
CustomizedData["homeAddress"] = "HomeAddress";
CustomizedData["otherAddress"] = "OtherAddress";
CustomizedData["birthday"] = "Birthday";
})(CustomizedData = OfficeCore.CustomizedData || (OfficeCore.CustomizedData = {}));
var _typeUnifiedGroupInfo = "UnifiedGroupInfo";
var UnifiedGroupInfo = (function (_super) {
__extends(UnifiedGroupInfo, _super);
function UnifiedGroupInfo() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(UnifiedGroupInfo.prototype, "_className", {
get: function () {
return "UnifiedGroupInfo";
},
enumerable: true,
configurable: true
});
Object.defineProperty(UnifiedGroupInfo.prototype, "_scalarPropertyNames", {
get: function () {
return ["description", "oneDrive", "oneNote", "isPublic", "amIOwner", "amIMember", "amISubscribed", "memberCount", "ownerCount", "hasGuests", "site", "planner", "classification", "subscriptionEnabled"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(UnifiedGroupInfo.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["Description", "OneDrive", "OneNote", "IsPublic", "AmIOwner", "AmIMember", "AmISubscribed", "MemberCount", "OwnerCount", "HasGuests", "Site", "Planner", "Classification", "SubscriptionEnabled"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(UnifiedGroupInfo.prototype, "_scalarPropertyUpdateable", {
get: function () {
return [true, true, true, true, true, true, true, true, true, true, true, true, true, true];
},
enumerable: true,
configurable: true
});
Object.defineProperty(UnifiedGroupInfo.prototype, "amIMember", {
get: function () {
_throwIfNotLoaded("amIMember", this._A, _typeUnifiedGroupInfo, this._isNull);
return this._A;
},
set: function (value) {
this._A = value;
_invokeSetProperty(this, "AmIMember", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(UnifiedGroupInfo.prototype, "amIOwner", {
get: function () {
_throwIfNotLoaded("amIOwner", this._Am, _typeUnifiedGroupInfo, this._isNull);
return this._Am;
},
set: function (value) {
this._Am = value;
_invokeSetProperty(this, "AmIOwner", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(UnifiedGroupInfo.prototype, "amISubscribed", {
get: function () {
_throwIfNotLoaded("amISubscribed", this._AmI, _typeUnifiedGroupInfo, this._isNull);
return this._AmI;
},
set: function (value) {
this._AmI = value;
_invokeSetProperty(this, "AmISubscribed", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(UnifiedGroupInfo.prototype, "classification", {
get: function () {
_throwIfNotLoaded("classification", this._C, _typeUnifiedGroupInfo, this._isNull);
return this._C;
},
set: function (value) {
this._C = value;
_invokeSetProperty(this, "Classification", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(UnifiedGroupInfo.prototype, "description", {
get: function () {
_throwIfNotLoaded("description", this._D, _typeUnifiedGroupInfo, this._isNull);
return this._D;
},
set: function (value) {
this._D = value;
_invokeSetProperty(this, "Description", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(UnifiedGroupInfo.prototype, "hasGuests", {
get: function () {
_throwIfNotLoaded("hasGuests", this._H, _typeUnifiedGroupInfo, this._isNull);
return this._H;
},
set: function (value) {
this._H = value;
_invokeSetProperty(this, "HasGuests", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(UnifiedGroupInfo.prototype, "isPublic", {
get: function () {
_throwIfNotLoaded("isPublic", this._I, _typeUnifiedGroupInfo, this._isNull);
return this._I;
},
set: function (value) {
this._I = value;
_invokeSetProperty(this, "IsPublic", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(UnifiedGroupInfo.prototype, "memberCount", {
get: function () {
_throwIfNotLoaded("memberCount", this._M, _typeUnifiedGroupInfo, this._isNull);
return this._M;
},
set: function (value) {
this._M = value;
_invokeSetProperty(this, "MemberCount", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(UnifiedGroupInfo.prototype, "oneDrive", {
get: function () {
_throwIfNotLoaded("oneDrive", this._O, _typeUnifiedGroupInfo, this._isNull);
return this._O;
},
set: function (value) {
this._O = value;
_invokeSetProperty(this, "OneDrive", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(UnifiedGroupInfo.prototype, "oneNote", {
get: function () {
_throwIfNotLoaded("oneNote", this._On, _typeUnifiedGroupInfo, this._isNull);
return this._On;
},
set: function (value) {
this._On = value;
_invokeSetProperty(this, "OneNote", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(UnifiedGroupInfo.prototype, "ownerCount", {
get: function () {
_throwIfNotLoaded("ownerCount", this._Ow, _typeUnifiedGroupInfo, this._isNull);
return this._Ow;
},
set: function (value) {
this._Ow = value;
_invokeSetProperty(this, "OwnerCount", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(UnifiedGroupInfo.prototype, "planner", {
get: function () {
_throwIfNotLoaded("planner", this._P, _typeUnifiedGroupInfo, this._isNull);
return this._P;
},
set: function (value) {
this._P = value;
_invokeSetProperty(this, "Planner", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(UnifiedGroupInfo.prototype, "site", {
get: function () {
_throwIfNotLoaded("site", this._S, _typeUnifiedGroupInfo, this._isNull);
return this._S;
},
set: function (value) {
this._S = value;
_invokeSetProperty(this, "Site", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(UnifiedGroupInfo.prototype, "subscriptionEnabled", {
get: function () {
_throwIfNotLoaded("subscriptionEnabled", this._Su, _typeUnifiedGroupInfo, this._isNull);
return this._Su;
},
set: function (value) {
this._Su = value;
_invokeSetProperty(this, "SubscriptionEnabled", value, 0);
},
enumerable: true,
configurable: true
});
UnifiedGroupInfo.prototype.set = function (properties, options) {
this._recursivelySet(properties, options, ["description", "oneDrive", "oneNote", "isPublic", "amIOwner", "amIMember", "amISubscribed", "memberCount", "ownerCount", "hasGuests", "site", "planner", "classification", "subscriptionEnabled"], [], []);
};
UnifiedGroupInfo.prototype.update = function (properties) {
this._recursivelyUpdate(properties);
};
UnifiedGroupInfo.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["AmIMember"])) {
this._A = obj["AmIMember"];
}
if (!_isUndefined(obj["AmIOwner"])) {
this._Am = obj["AmIOwner"];
}
if (!_isUndefined(obj["AmISubscribed"])) {
this._AmI = obj["AmISubscribed"];
}
if (!_isUndefined(obj["Classification"])) {
this._C = obj["Classification"];
}
if (!_isUndefined(obj["Description"])) {
this._D = obj["Description"];
}
if (!_isUndefined(obj["HasGuests"])) {
this._H = obj["HasGuests"];
}
if (!_isUndefined(obj["IsPublic"])) {
this._I = obj["IsPublic"];
}
if (!_isUndefined(obj["MemberCount"])) {
this._M = obj["MemberCount"];
}
if (!_isUndefined(obj["OneDrive"])) {
this._O = obj["OneDrive"];
}
if (!_isUndefined(obj["OneNote"])) {
this._On = obj["OneNote"];
}
if (!_isUndefined(obj["OwnerCount"])) {
this._Ow = obj["OwnerCount"];
}
if (!_isUndefined(obj["Planner"])) {
this._P = obj["Planner"];
}
if (!_isUndefined(obj["Site"])) {
this._S = obj["Site"];
}
if (!_isUndefined(obj["SubscriptionEnabled"])) {
this._Su = obj["SubscriptionEnabled"];
}
};
UnifiedGroupInfo.prototype.load = function (options) {
return _load(this, options);
};
UnifiedGroupInfo.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
UnifiedGroupInfo.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
UnifiedGroupInfo.prototype.toJSON = function () {
return _toJson(this, {
"amIMember": this._A,
"amIOwner": this._Am,
"amISubscribed": this._AmI,
"classification": this._C,
"description": this._D,
"hasGuests": this._H,
"isPublic": this._I,
"memberCount": this._M,
"oneDrive": this._O,
"oneNote": this._On,
"ownerCount": this._Ow,
"planner": this._P,
"site": this._S,
"subscriptionEnabled": this._Su
}, {});
};
UnifiedGroupInfo.prototype.setMockData = function (data) {
_setMockData(this, data);
};
UnifiedGroupInfo.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return UnifiedGroupInfo;
}(OfficeExtension.ClientObject));
OfficeCore.UnifiedGroupInfo = UnifiedGroupInfo;
var _typePersona = "Persona";
var PersonaPromiseType;
(function (PersonaPromiseType) {
PersonaPromiseType[PersonaPromiseType["immediate"] = 0] = "immediate";
PersonaPromiseType[PersonaPromiseType["load"] = 3] = "load";
})(PersonaPromiseType = OfficeCore.PersonaPromiseType || (OfficeCore.PersonaPromiseType = {}));
var PersonaInfoAndSource = (function () {
function PersonaInfoAndSource() {
}
return PersonaInfoAndSource;
}());
OfficeCore.PersonaInfoAndSource = PersonaInfoAndSource;
;
var Persona = (function (_super) {
__extends(Persona, _super);
function Persona() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(Persona.prototype, "_className", {
get: function () {
return "Persona";
},
enumerable: true,
configurable: true
});
Object.defineProperty(Persona.prototype, "_scalarPropertyNames", {
get: function () {
return ["hostId", "type", "capabilities", "diagnosticId", "instanceId"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Persona.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["HostId", "Type", "Capabilities", "DiagnosticId", "InstanceId"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Persona.prototype, "_navigationPropertyNames", {
get: function () {
return ["photo", "personaInfo", "unifiedCommunicationInfo", "organization", "unifiedGroupInfo", "actions"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Persona.prototype, "actions", {
get: function () {
if (!this._A) {
this._A = _createPropertyObject(OfficeCore.PersonaActions, this, "Actions", false, 4);
}
return this._A;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Persona.prototype, "organization", {
get: function () {
if (!this._O) {
this._O = _createPropertyObject(OfficeCore.PersonaOrganizationInfo, this, "Organization", false, 4);
}
return this._O;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Persona.prototype, "personaInfo", {
get: function () {
if (!this._P) {
this._P = _createPropertyObject(OfficeCore.PersonaInfo, this, "PersonaInfo", false, 4);
}
return this._P;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Persona.prototype, "photo", {
get: function () {
if (!this._Ph) {
this._Ph = _createPropertyObject(OfficeCore.PersonaPhotoInfo, this, "Photo", false, 4);
}
return this._Ph;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Persona.prototype, "unifiedCommunicationInfo", {
get: function () {
if (!this._U) {
this._U = _createPropertyObject(OfficeCore.PersonaUnifiedCommunicationInfo, this, "UnifiedCommunicationInfo", false, 4);
}
return this._U;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Persona.prototype, "unifiedGroupInfo", {
get: function () {
if (!this._Un) {
this._Un = _createPropertyObject(OfficeCore.UnifiedGroupInfo, this, "UnifiedGroupInfo", false, 4);
}
return this._Un;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Persona.prototype, "capabilities", {
get: function () {
_throwIfNotLoaded("capabilities", this._C, _typePersona, this._isNull);
return this._C;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Persona.prototype, "diagnosticId", {
get: function () {
_throwIfNotLoaded("diagnosticId", this._D, _typePersona, this._isNull);
return this._D;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Persona.prototype, "hostId", {
get: function () {
_throwIfNotLoaded("hostId", this._H, _typePersona, this._isNull);
return this._H;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Persona.prototype, "instanceId", {
get: function () {
_throwIfNotLoaded("instanceId", this._I, _typePersona, this._isNull);
return this._I;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Persona.prototype, "type", {
get: function () {
_throwIfNotLoaded("type", this._T, _typePersona, this._isNull);
return this._T;
},
enumerable: true,
configurable: true
});
Persona.prototype.set = function (properties, options) {
this._recursivelySet(properties, options, [], ["unifiedGroupInfo"], [
"actions",
"organization",
"personaInfo",
"photo",
"unifiedCommunicationInfo"
]);
};
Persona.prototype.update = function (properties) {
this._recursivelyUpdate(properties);
};
Persona.prototype.dispose = function () {
_invokeMethod(this, "Dispose", 0, [], 0, 0);
};
Persona.prototype.getCustomizations = function () {
return _invokeMethod(this, "GetCustomizations", 1, [], 4, 0);
};
Persona.prototype.getMembers = function () {
return _createMethodObject(OfficeCore.MemberInfoList, this, "GetMembers", 1, [], false, false, null, 4);
};
Persona.prototype.getMembership = function () {
return _createMethodObject(OfficeCore.MemberInfoList, this, "GetMembership", 1, [], false, false, null, 4);
};
Persona.prototype.getViewableSources = function () {
return _invokeMethod(this, "GetViewableSources", 1, [], 4, 0);
};
Persona.prototype.reportTimeForRender = function (perfpoint, millisecUTC) {
_invokeMethod(this, "ReportTimeForRender", 0, [perfpoint, millisecUTC], 0, 0);
};
Persona.prototype.warmup = function (dataToWarmUp) {
_invokeMethod(this, "Warmup", 0, [dataToWarmUp], 0, 0);
};
Persona.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["Capabilities"])) {
this._C = obj["Capabilities"];
}
if (!_isUndefined(obj["DiagnosticId"])) {
this._D = obj["DiagnosticId"];
}
if (!_isUndefined(obj["HostId"])) {
this._H = obj["HostId"];
}
if (!_isUndefined(obj["InstanceId"])) {
this._I = obj["InstanceId"];
}
if (!_isUndefined(obj["Type"])) {
this._T = obj["Type"];
}
_handleNavigationPropertyResults(this, obj, ["actions", "Actions", "organization", "Organization", "personaInfo", "PersonaInfo", "photo", "Photo", "unifiedCommunicationInfo", "UnifiedCommunicationInfo", "unifiedGroupInfo", "UnifiedGroupInfo"]);
};
Persona.prototype.load = function (options) {
return _load(this, options);
};
Persona.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
Persona.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
Persona.prototype.toJSON = function () {
return _toJson(this, {
"capabilities": this._C,
"diagnosticId": this._D,
"hostId": this._H,
"instanceId": this._I,
"type": this._T
}, {
"organization": this._O,
"personaInfo": this._P,
"unifiedCommunicationInfo": this._U,
"unifiedGroupInfo": this._Un
});
};
Persona.prototype.setMockData = function (data) {
_setMockData(this, data);
};
Persona.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return Persona;
}(OfficeExtension.ClientObject));
OfficeCore.Persona = Persona;
var PersonaCustom = (function () {
function PersonaCustom() {
}
PersonaCustom.prototype.performAsyncOperation = function (type, waitFor, action, check) {
var _this = this;
if (type == PersonaPromiseType.immediate) {
action();
return;
}
check().then(function (isWarmedUp) {
if (isWarmedUp) {
action();
}
else {
var persona = _this;
persona.load("hostId");
persona.context.sync().then(function () {
var hostId = persona.hostId;
_this.getPersonaLifetime().then(function (personaLifetime) {
var eventHandler = function (args) {
return new OfficeExtension.CoreUtility.Promise(function (resolve, reject) {
if (args.sendingPersonaHostId == hostId) {
for (var index = 0; index < args.dataUpdated.length; ++index) {
var updated = args.dataUpdated[index];
if (waitFor == updated) {
check().then(function (isWarmedUp) {
if (isWarmedUp) {
action();
personaLifetime.onPersonaUpdated.remove(eventHandler);
persona.context.sync();
}
resolve(isWarmedUp);
});
return;
}
}
}
resolve(false);
});
};
personaLifetime.onPersonaUpdated.add(eventHandler);
persona.context.sync();
});
});
}
});
};
PersonaCustom.prototype.getOrganizationAsync = function (type) {
var _this = this;
return new OfficeExtension.CoreUtility.Promise(function (resolve, reject) {
var persona = _this;
var action = function () {
var organization = persona.organization;
organization.load("*");
persona.context.sync().then(function () {
resolve(organization);
});
};
var check = function () {
return new OfficeExtension.CoreUtility.Promise(function (isWarmedUpResolve, isWarmedUpReject) {
var organization = persona.organization;
organization.load("isWarmedUp");
persona.context.sync().then(function () {
isWarmedUpResolve(organization.isWarmedUp);
});
});
};
_this.performAsyncOperation(type, PersonaDataUpdated.organization, action, check);
});
};
PersonaCustom.prototype.getIsPersonaInfoResolvedCheck = function () {
var persona = this;
return new OfficeExtension.CoreUtility.Promise(function (resolve, reject) {
var info = persona.personaInfo;
info.load("isPersonResolved");
persona.context.sync().then(function () {
resolve(info.isPersonResolved);
});
});
};
PersonaCustom.prototype.getPersonaInfoAsync = function (type) {
var _this = this;
return new OfficeExtension.CoreUtility.Promise(function (resolve, reject) {
var persona = _this;
var action = function () {
var info = persona.personaInfo;
info.load();
persona.context.sync().then(function () {
resolve(info);
});
};
var check = function () {
return _this.getIsPersonaInfoResolvedCheck();
};
_this.performAsyncOperation(type, PersonaDataUpdated.personaInfo, action, check);
});
};
PersonaCustom.prototype.getPersonaInfoWithSourceAsync = function (type) {
var _this = this;
return new OfficeExtension.CoreUtility.Promise(function (resolve, reject) {
var persona = _this;
var action = function () {
var result = new PersonaInfoAndSource();
result.info = persona.personaInfo;
result.info.load();
result.source = persona.personaInfo.sources;
result.source.load();
persona.context.sync().then(function () {
resolve(result);
});
};
var check = function () {
return _this.getIsPersonaInfoResolvedCheck();
};
_this.performAsyncOperation(type, PersonaDataUpdated.personaInfo, action, check);
});
};
PersonaCustom.prototype.getUnifiedCommunicationInfo = function (type) {
var _this = this;
return new OfficeExtension.CoreUtility.Promise(function (resolve, reject) {
var persona = _this;
var action = function () {
var ucInfo = persona.unifiedCommunicationInfo;
ucInfo.load("*");
persona.context.sync().then(function () {
resolve(ucInfo);
});
};
var check = function () {
return _this.getIsPersonaInfoResolvedCheck();
};
_this.performAsyncOperation(type, PersonaDataUpdated.personaInfo, action, check);
});
};
PersonaCustom.prototype.getUnifiedGroupInfoAsync = function (type) {
var _this = this;
return new OfficeExtension.CoreUtility.Promise(function (resolve, reject) {
var persona = _this;
var action = function () {
var group = persona.unifiedGroupInfo;
group.load("*");
persona.context.sync().then(function () {
resolve(group);
});
};
var check = function () {
return _this.getIsPersonaInfoResolvedCheck();
};
_this.performAsyncOperation(type, PersonaDataUpdated.personaInfo, action, check);
});
};
PersonaCustom.prototype.getTypeAsync = function (type) {
var _this = this;
return new OfficeExtension.CoreUtility.Promise(function (resolve, reject) {
var persona = _this;
var action = function () {
persona.load("type");
persona.context.sync().then(function () {
resolve(OfficeCore.PersonaType[persona.type.valueOf()]);
});
};
var check = function () {
return _this.getIsPersonaInfoResolvedCheck();
};
_this.performAsyncOperation(type, PersonaDataUpdated.personaInfo, action, check);
});
};
PersonaCustom.prototype.getCustomizationsAsync = function (type) {
var _this = this;
return new OfficeExtension.CoreUtility.Promise(function (resolve, reject) {
var persona = _this;
var action = function () {
var customizations = persona.getCustomizations();
persona.context.sync().then(function () {
resolve(customizations.value);
});
};
var check = function () {
return _this.getIsPersonaInfoResolvedCheck();
};
_this.performAsyncOperation(type, PersonaDataUpdated.personaInfo, action, check);
});
};
PersonaCustom.prototype.getMembersAsync = function (type) {
var _this = this;
return new OfficeExtension.CoreUtility.Promise(function (resolve, rejcet) {
var persona = _this;
var action = function () {
var members = persona.getMembers();
members.load("isWarmedUp");
persona.context.sync().then(function () {
resolve(members);
});
};
var check = function () {
return new OfficeExtension.CoreUtility.Promise(function (isWarmedUpResolve, isWarmedUpReject) {
var members = persona.getMembers();
members.load("isWarmedUp");
persona.context.sync().then(function () {
isWarmedUpResolve(members.isWarmedUp);
});
});
};
_this.performAsyncOperation(type, PersonaDataUpdated.members, action, check);
});
};
PersonaCustom.prototype.getMembershipAsync = function (type) {
var _this = this;
return new OfficeExtension.CoreUtility.Promise(function (resolve, reject) {
var persona = _this;
var action = function () {
var membership = persona.getMembership();
membership.load("*");
persona.context.sync().then(function () {
resolve(membership);
});
};
var check = function () {
return new OfficeExtension.CoreUtility.Promise(function (isWarmedUpResolve) {
var membership = persona.getMembership();
membership.load("isWarmedUp");
persona.context.sync().then(function () {
isWarmedUpResolve(membership.isWarmedUp);
});
});
};
_this.performAsyncOperation(type, PersonaDataUpdated.membership, action, check);
});
};
PersonaCustom.prototype.getPersonaLifetime = function () {
var _this = this;
return new OfficeExtension.CoreUtility.Promise(function (resolve, reject) {
var persona = _this;
persona.load("instanceId");
persona.context.sync().then(function () {
var peopleApi = new PeopleApiContext(persona.context, persona.instanceId);
peopleApi.getPersonaLifetime().then(function (lifetime) {
resolve(lifetime);
});
});
});
};
return PersonaCustom;
}());
OfficeCore.PersonaCustom = PersonaCustom;
OfficeExtension.Utility.applyMixin(Persona, PersonaCustom);
var _typePersonaLifetime = "PersonaLifetime";
var PersonaLifetime = (function (_super) {
__extends(PersonaLifetime, _super);
function PersonaLifetime() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(PersonaLifetime.prototype, "_className", {
get: function () {
return "PersonaLifetime";
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaLifetime.prototype, "_scalarPropertyNames", {
get: function () {
return ["instanceId"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaLifetime.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["InstanceId"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(PersonaLifetime.prototype, "instanceId", {
get: function () {
_throwIfNotLoaded("instanceId", this._I, _typePersonaLifetime, this._isNull);
return this._I;
},
enumerable: true,
configurable: true
});
PersonaLifetime.prototype.getPersona = function (hostId) {
return _createMethodObject(OfficeCore.Persona, this, "GetPersona", 1, [hostId], false, false, null, 4);
};
PersonaLifetime.prototype.getPersonaForOrgByEntryId = function (entryId, name, sip, smtp) {
return _createMethodObject(OfficeCore.Persona, this, "GetPersonaForOrgByEntryId", 1, [entryId, name, sip, smtp], false, false, null, 4);
};
PersonaLifetime.prototype.getPersonaForOrgEntry = function (name, sip, smtp, entryId) {
return _createMethodObject(OfficeCore.Persona, this, "GetPersonaForOrgEntry", 1, [name, sip, smtp, entryId], false, false, null, 4);
};
PersonaLifetime.prototype.getPolicies = function () {
return _invokeMethod(this, "GetPolicies", 1, [], 4, 0);
};
PersonaLifetime.prototype._RegisterPersonaUpdatedEvent = function () {
_invokeMethod(this, "_RegisterPersonaUpdatedEvent", 0, [], 0, 0);
};
PersonaLifetime.prototype._UnregisterPersonaUpdatedEvent = function () {
_invokeMethod(this, "_UnregisterPersonaUpdatedEvent", 0, [], 0, 0);
};
PersonaLifetime.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["InstanceId"])) {
this._I = obj["InstanceId"];
}
};
PersonaLifetime.prototype.load = function (options) {
return _load(this, options);
};
PersonaLifetime.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
PersonaLifetime.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
Object.defineProperty(PersonaLifetime.prototype, "onPersonaUpdated", {
get: function () {
var _this = this;
if (!this.m_personaUpdated) {
this.m_personaUpdated = new OfficeExtension.GenericEventHandlers(this.context, this, "PersonaUpdated", {
eventType: 3502,
registerFunc: function () { return _this._RegisterPersonaUpdatedEvent(); },
unregisterFunc: function () { return _this._UnregisterPersonaUpdatedEvent(); },
getTargetIdFunc: function () { return _this.instanceId; },
eventArgsTransformFunc: function (value) {
var event = {
dataUpdated: value.dataUpdated,
sendingPersonaHostId: value.sendingPersonaHostId
};
return OfficeExtension.Utility._createPromiseFromResult(event);
}
});
}
return this.m_personaUpdated;
},
enumerable: true,
configurable: true
});
PersonaLifetime.prototype.toJSON = function () {
return _toJson(this, {
"instanceId": this._I
}, {});
};
PersonaLifetime.prototype.setMockData = function (data) {
_setMockData(this, data);
};
PersonaLifetime.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return PersonaLifetime;
}(OfficeExtension.ClientObject));
OfficeCore.PersonaLifetime = PersonaLifetime;
var _typeLokiTokenProvider = "LokiTokenProvider";
var LokiTokenProvider = (function (_super) {
__extends(LokiTokenProvider, _super);
function LokiTokenProvider() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(LokiTokenProvider.prototype, "_className", {
get: function () {
return "LokiTokenProvider";
},
enumerable: true,
configurable: true
});
Object.defineProperty(LokiTokenProvider.prototype, "_scalarPropertyNames", {
get: function () {
return ["emailOrUpn", "instanceId"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(LokiTokenProvider.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["EmailOrUpn", "InstanceId"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(LokiTokenProvider.prototype, "emailOrUpn", {
get: function () {
_throwIfNotLoaded("emailOrUpn", this._E, _typeLokiTokenProvider, this._isNull);
return this._E;
},
enumerable: true,
configurable: true
});
Object.defineProperty(LokiTokenProvider.prototype, "instanceId", {
get: function () {
_throwIfNotLoaded("instanceId", this._I, _typeLokiTokenProvider, this._isNull);
return this._I;
},
enumerable: true,
configurable: true
});
LokiTokenProvider.prototype.requestClientAccessToken = function () {
_invokeMethod(this, "RequestClientAccessToken", 0, [], 0, 0);
};
LokiTokenProvider.prototype.requestIdentityUniqueId = function () {
_invokeMethod(this, "RequestIdentityUniqueId", 0, [], 0, 0);
};
LokiTokenProvider.prototype.requestToken = function () {
_invokeMethod(this, "RequestToken", 0, [], 0, 0);
};
LokiTokenProvider.prototype._RegisterClientAccessTokenAvailableEvent = function () {
_invokeMethod(this, "_RegisterClientAccessTokenAvailableEvent", 0, [], 0, 0);
};
LokiTokenProvider.prototype._RegisterIdentityUniqueIdAvailableEvent = function () {
_invokeMethod(this, "_RegisterIdentityUniqueIdAvailableEvent", 0, [], 0, 0);
};
LokiTokenProvider.prototype._RegisterLokiTokenAvailableEvent = function () {
_invokeMethod(this, "_RegisterLokiTokenAvailableEvent", 0, [], 0, 0);
};
LokiTokenProvider.prototype._UnregisterClientAccessTokenAvailableEvent = function () {
_invokeMethod(this, "_UnregisterClientAccessTokenAvailableEvent", 0, [], 0, 0);
};
LokiTokenProvider.prototype._UnregisterIdentityUniqueIdAvailableEvent = function () {
_invokeMethod(this, "_UnregisterIdentityUniqueIdAvailableEvent", 0, [], 0, 0);
};
LokiTokenProvider.prototype._UnregisterLokiTokenAvailableEvent = function () {
_invokeMethod(this, "_UnregisterLokiTokenAvailableEvent", 0, [], 0, 0);
};
LokiTokenProvider.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["EmailOrUpn"])) {
this._E = obj["EmailOrUpn"];
}
if (!_isUndefined(obj["InstanceId"])) {
this._I = obj["InstanceId"];
}
};
LokiTokenProvider.prototype.load = function (options) {
return _load(this, options);
};
LokiTokenProvider.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
LokiTokenProvider.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
Object.defineProperty(LokiTokenProvider.prototype, "onClientAccessTokenAvailable", {
get: function () {
var _this = this;
if (!this.m_clientAccessTokenAvailable) {
this.m_clientAccessTokenAvailable = new OfficeExtension.GenericEventHandlers(this.context, this, "ClientAccessTokenAvailable", {
eventType: 3505,
registerFunc: function () { return _this._RegisterClientAccessTokenAvailableEvent(); },
unregisterFunc: function () { return _this._UnregisterClientAccessTokenAvailableEvent(); },
getTargetIdFunc: function () { return _this.instanceId; },
eventArgsTransformFunc: function (value) {
var event = {
clientAccessToken: value.clientAccessToken,
isAvailable: value.isAvailable,
tokenTTLInSeconds: value.tokenTTLInSeconds
};
return OfficeExtension.Utility._createPromiseFromResult(event);
}
});
}
return this.m_clientAccessTokenAvailable;
},
enumerable: true,
configurable: true
});
Object.defineProperty(LokiTokenProvider.prototype, "onIdentityUniqueIdAvailable", {
get: function () {
var _this = this;
if (!this.m_identityUniqueIdAvailable) {
this.m_identityUniqueIdAvailable = new OfficeExtension.GenericEventHandlers(this.context, this, "IdentityUniqueIdAvailable", {
eventType: 3504,
registerFunc: function () { return _this._RegisterIdentityUniqueIdAvailableEvent(); },
unregisterFunc: function () { return _this._UnregisterIdentityUniqueIdAvailableEvent(); },
getTargetIdFunc: function () { return _this.instanceId; },
eventArgsTransformFunc: function (value) {
var event = {
isAvailable: value.isAvailable,
uniqueId: value.uniqueId
};
return OfficeExtension.Utility._createPromiseFromResult(event);
}
});
}
return this.m_identityUniqueIdAvailable;
},
enumerable: true,
configurable: true
});
Object.defineProperty(LokiTokenProvider.prototype, "onLokiTokenAvailable", {
get: function () {
var _this = this;
if (!this.m_lokiTokenAvailable) {
this.m_lokiTokenAvailable = new OfficeExtension.GenericEventHandlers(this.context, this, "LokiTokenAvailable", {
eventType: 3503,
registerFunc: function () { return _this._RegisterLokiTokenAvailableEvent(); },
unregisterFunc: function () { return _this._UnregisterLokiTokenAvailableEvent(); },
getTargetIdFunc: function () { return _this.instanceId; },
eventArgsTransformFunc: function (value) {
var event = {
isAvailable: value.isAvailable,
lokiAutoDiscoverUrl: value.lokiAutoDiscoverUrl,
lokiToken: value.lokiToken
};
return OfficeExtension.Utility._createPromiseFromResult(event);
}
});
}
return this.m_lokiTokenAvailable;
},
enumerable: true,
configurable: true
});
LokiTokenProvider.prototype.toJSON = function () {
return _toJson(this, {
"emailOrUpn": this._E,
"instanceId": this._I
}, {});
};
LokiTokenProvider.prototype.setMockData = function (data) {
_setMockData(this, data);
};
LokiTokenProvider.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return LokiTokenProvider;
}(OfficeExtension.ClientObject));
OfficeCore.LokiTokenProvider = LokiTokenProvider;
var _typeLokiTokenProviderFactory = "LokiTokenProviderFactory";
var LokiTokenProviderFactory = (function (_super) {
__extends(LokiTokenProviderFactory, _super);
function LokiTokenProviderFactory() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(LokiTokenProviderFactory.prototype, "_className", {
get: function () {
return "LokiTokenProviderFactory";
},
enumerable: true,
configurable: true
});
LokiTokenProviderFactory.prototype.getLokiTokenProvider = function (accountName) {
return _createMethodObject(OfficeCore.LokiTokenProvider, this, "GetLokiTokenProvider", 1, [accountName], false, false, null, 4);
};
LokiTokenProviderFactory.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
};
LokiTokenProviderFactory.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
LokiTokenProviderFactory.newObject = function (context) {
return _createTopLevelServiceObject(OfficeCore.LokiTokenProviderFactory, context, "Microsoft.People.LokiTokenProviderFactory", false, 4);
};
LokiTokenProviderFactory.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return LokiTokenProviderFactory;
}(OfficeExtension.ClientObject));
OfficeCore.LokiTokenProviderFactory = LokiTokenProviderFactory;
var _typeServiceContext = "ServiceContext";
var PeopleApiContext = (function () {
function PeopleApiContext(context, instanceId) {
this.context = context;
this.instanceId = instanceId;
}
Object.defineProperty(PeopleApiContext.prototype, "serviceContext", {
get: function () {
if (!this.m_serviceConext) {
this.m_serviceConext = OfficeCore.ServiceContext.newObject(this.context);
}
return this.m_serviceConext;
},
enumerable: true,
configurable: true
});
PeopleApiContext.prototype.getPersonaLifetime = function () {
var _this = this;
return new OfficeExtension.CoreUtility.Promise(function (resolve, reject) {
var lifetime = _this.serviceContext.getPersonaLifetime(_this.instanceId);
_this.context.sync().then(function () {
lifetime.load("instanceId");
_this.context.sync().then(function () {
resolve(lifetime);
});
});
});
};
PeopleApiContext.prototype.getInitialPersona = function () {
var _this = this;
return new OfficeExtension.CoreUtility.Promise(function (resolve, reject) {
var persona = _this.serviceContext.getInitialPersona(_this.instanceId);
_this.context.sync().then(function () {
resolve(persona);
});
});
};
PeopleApiContext.prototype.getLokiTokenProvider = function () {
var _this = this;
return new OfficeExtension.CoreUtility.Promise(function (resolve, reject) {
var provider = _this.serviceContext.getLokiTokenProvider(_this.instanceId);
_this.context.sync().then(function () {
provider.load("instanceId");
_this.context.sync().then(function () {
resolve(provider);
});
});
});
};
return PeopleApiContext;
}());
OfficeCore.PeopleApiContext = PeopleApiContext;
var ServiceContext = (function (_super) {
__extends(ServiceContext, _super);
function ServiceContext() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(ServiceContext.prototype, "_className", {
get: function () {
return "ServiceContext";
},
enumerable: true,
configurable: true
});
ServiceContext.prototype.accountEmailOrUpn = function (instanceId) {
return _invokeMethod(this, "AccountEmailOrUpn", 1, [instanceId], 4, 0);
};
ServiceContext.prototype.dispose = function (instance) {
_invokeMethod(this, "Dispose", 0, [instance], 0, 0);
};
ServiceContext.prototype.getInitialPersona = function (instanceId) {
return _createMethodObject(OfficeCore.Persona, this, "GetInitialPersona", 1, [instanceId], false, false, null, 4);
};
ServiceContext.prototype.getLokiTokenProvider = function (instanceId) {
return _createMethodObject(OfficeCore.LokiTokenProvider, this, "GetLokiTokenProvider", 1, [instanceId], false, false, null, 4);
};
ServiceContext.prototype.getPersonaLifetime = function (instanceId) {
return _createMethodObject(OfficeCore.PersonaLifetime, this, "GetPersonaLifetime", 1, [instanceId], false, false, null, 4);
};
ServiceContext.prototype.getPersonaPolicies = function () {
return _invokeMethod(this, "GetPersonaPolicies", 1, [], 4, 0);
};
ServiceContext.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
};
ServiceContext.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
ServiceContext.newObject = function (context) {
return _createTopLevelServiceObject(OfficeCore.ServiceContext, context, "Microsoft.People.ServiceContext", false, 4);
};
ServiceContext.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return ServiceContext;
}(OfficeExtension.ClientObject));
OfficeCore.ServiceContext = ServiceContext;
var _typeRichapiPcxFeatureChecks = "RichapiPcxFeatureChecks";
var RichapiPcxFeatureChecks = (function (_super) {
__extends(RichapiPcxFeatureChecks, _super);
function RichapiPcxFeatureChecks() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(RichapiPcxFeatureChecks.prototype, "_className", {
get: function () {
return "RichapiPcxFeatureChecks";
},
enumerable: true,
configurable: true
});
RichapiPcxFeatureChecks.prototype.isAddChangePhotoLinkOnLpcPersonaImageFlightEnabled = function () {
return _invokeMethod(this, "IsAddChangePhotoLinkOnLpcPersonaImageFlightEnabled", 1, [], 4, 0);
};
RichapiPcxFeatureChecks.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
};
RichapiPcxFeatureChecks.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
RichapiPcxFeatureChecks.newObject = function (context) {
return _createTopLevelServiceObject(OfficeCore.RichapiPcxFeatureChecks, context, "Microsoft.People.RichapiPcxFeatureChecks", false, 4);
};
RichapiPcxFeatureChecks.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return RichapiPcxFeatureChecks;
}(OfficeExtension.ClientObject));
OfficeCore.RichapiPcxFeatureChecks = RichapiPcxFeatureChecks;
var _typeTap = "Tap";
var Tap = (function (_super) {
__extends(Tap, _super);
function Tap() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(Tap.prototype, "_className", {
get: function () {
return "Tap";
},
enumerable: true,
configurable: true
});
Tap.prototype.getEnterpriseUserInfo = function () {
return _invokeMethod(this, "GetEnterpriseUserInfo", 1, [], 4 | 1, 0);
};
Tap.prototype.getMruFriendlyPath = function (documentUrl) {
return _invokeMethod(this, "GetMruFriendlyPath", 1, [documentUrl], 4 | 1, 0);
};
Tap.prototype.launchFileUrlInOfficeApp = function (documentUrl, useUniversalAsBackup) {
return _invokeMethod(this, "LaunchFileUrlInOfficeApp", 1, [documentUrl, useUniversalAsBackup], 4 | 1, 0);
};
Tap.prototype.performLocalSearch = function (query, numResultsRequested, supportedFileExtensions, documentUrlToExclude) {
return _invokeMethod(this, "PerformLocalSearch", 1, [query, numResultsRequested, supportedFileExtensions, documentUrlToExclude], 4 | 1, 0);
};
Tap.prototype.readSearchCache = function (keyword, expiredHours, filterObjectType) {
return _invokeMethod(this, "ReadSearchCache", 1, [keyword, expiredHours, filterObjectType], 4 | 1, 0);
};
Tap.prototype.writeSearchCache = function (fileContent, keyword, filterObjectType) {
return _invokeMethod(this, "WriteSearchCache", 1, [fileContent, keyword, filterObjectType], 4 | 1, 0);
};
Tap.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
};
Tap.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
Tap.newObject = function (context) {
return _createTopLevelServiceObject(OfficeCore.Tap, context, "Microsoft.TapRichApi.Tap", false, 4);
};
Tap.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return Tap;
}(OfficeExtension.ClientObject));
OfficeCore.Tap = Tap;
var ObjectType;
(function (ObjectType) {
ObjectType["unknown"] = "Unknown";
ObjectType["chart"] = "Chart";
ObjectType["smartArt"] = "SmartArt";
ObjectType["table"] = "Table";
ObjectType["image"] = "Image";
ObjectType["slide"] = "Slide";
ObjectType["ole"] = "OLE";
ObjectType["text"] = "Text";
})(ObjectType = OfficeCore.ObjectType || (OfficeCore.ObjectType = {}));
var _typeAppRuntimePersistenceService = "AppRuntimePersistenceService";
var AppRuntimePersistenceService = (function (_super) {
__extends(AppRuntimePersistenceService, _super);
function AppRuntimePersistenceService() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(AppRuntimePersistenceService.prototype, "_className", {
get: function () {
return "AppRuntimePersistenceService";
},
enumerable: true,
configurable: true
});
AppRuntimePersistenceService.prototype.getAppRuntimeStartState = function () {
return _invokeMethod(this, "GetAppRuntimeStartState", 1, [], 4, 0);
};
AppRuntimePersistenceService.prototype.setAppRuntimeStartState = function (appRuntimeState) {
_invokeMethod(this, "SetAppRuntimeStartState", 0, [appRuntimeState], 0, 0);
};
AppRuntimePersistenceService.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
};
AppRuntimePersistenceService.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
AppRuntimePersistenceService.newObject = function (context) {
return _createTopLevelServiceObject(OfficeCore.AppRuntimePersistenceService, context, "Microsoft.AppRuntime.AppRuntimePersistenceService", false, 4);
};
AppRuntimePersistenceService.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return AppRuntimePersistenceService;
}(OfficeExtension.ClientObject));
OfficeCore.AppRuntimePersistenceService = AppRuntimePersistenceService;
var _typeAppRuntimeService = "AppRuntimeService";
var AppRuntimeService = (function (_super) {
__extends(AppRuntimeService, _super);
function AppRuntimeService() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(AppRuntimeService.prototype, "_className", {
get: function () {
return "AppRuntimeService";
},
enumerable: true,
configurable: true
});
AppRuntimeService.prototype.getAppRuntimeState = function () {
return _invokeMethod(this, "GetAppRuntimeState", 1, [], 4, 0);
};
AppRuntimeService.prototype.setAppRuntimeState = function (appRuntimeState) {
_invokeMethod(this, "SetAppRuntimeState", 0, [appRuntimeState], 0, 0);
};
AppRuntimeService.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
};
AppRuntimeService.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
AppRuntimeService.newObject = function (context) {
return _createTopLevelServiceObject(OfficeCore.AppRuntimeService, context, "Microsoft.AppRuntime.AppRuntimeService", false, 4);
};
Object.defineProperty(AppRuntimeService.prototype, "onVisibilityChanged", {
get: function () {
if (!this.m_visibilityChanged) {
this.m_visibilityChanged = new OfficeExtension.GenericEventHandlers(this.context, this, "VisibilityChanged", {
eventType: 65539,
registerFunc: function () { return OfficeExtension.Utility._createPromiseFromResult(null); },
unregisterFunc: function () { return OfficeExtension.Utility._createPromiseFromResult(null); },
getTargetIdFunc: function () { return ""; },
eventArgsTransformFunc: function (value) {
var event = {
visibility: value.visibility
};
return OfficeExtension.Utility._createPromiseFromResult(event);
}
});
}
return this.m_visibilityChanged;
},
enumerable: true,
configurable: true
});
AppRuntimeService.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return AppRuntimeService;
}(OfficeExtension.ClientObject));
OfficeCore.AppRuntimeService = AppRuntimeService;
var AppRuntimeState;
(function (AppRuntimeState) {
AppRuntimeState["inactive"] = "Inactive";
AppRuntimeState["background"] = "Background";
AppRuntimeState["visible"] = "Visible";
})(AppRuntimeState = OfficeCore.AppRuntimeState || (OfficeCore.AppRuntimeState = {}));
var Visibility;
(function (Visibility) {
Visibility["hidden"] = "Hidden";
Visibility["visible"] = "Visible";
})(Visibility = OfficeCore.Visibility || (OfficeCore.Visibility = {}));
var LicenseFeatureTier;
(function (LicenseFeatureTier) {
LicenseFeatureTier["unknown"] = "Unknown";
LicenseFeatureTier["basic"] = "Basic";
LicenseFeatureTier["premium"] = "Premium";
})(LicenseFeatureTier = OfficeCore.LicenseFeatureTier || (OfficeCore.LicenseFeatureTier = {}));
var _typeLicense = "License";
var License = (function (_super) {
__extends(License, _super);
function License() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(License.prototype, "_className", {
get: function () {
return "License";
},
enumerable: true,
configurable: true
});
License.prototype.getFeatureTier = function (feature, fallbackValue) {
return _invokeMethod(this, "GetFeatureTier", 1, [feature, fallbackValue], 4, 0);
};
License.prototype.getLicenseFeature = function (feature) {
return _createMethodObject(OfficeCore.LicenseFeature, this, "GetLicenseFeature", 1, [feature], false, false, null, 4);
};
License.prototype.isFeatureEnabled = function (feature, fallbackValue) {
return _invokeMethod(this, "IsFeatureEnabled", 1, [feature, fallbackValue], 4, 0);
};
License.prototype.isFreemiumUpsellEnabled = function () {
return _invokeMethod(this, "IsFreemiumUpsellEnabled", 1, [], 4, 0);
};
License.prototype.launchUpsellExperience = function (experienceId) {
_invokeMethod(this, "LaunchUpsellExperience", 1, [experienceId], 4, 0);
};
License.prototype._TestFireStateChangedEvent = function (feature) {
_invokeMethod(this, "_TestFireStateChangedEvent", 0, [feature], 1, 0);
};
License.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
};
License.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
License.newObject = function (context) {
return _createTopLevelServiceObject(OfficeCore.License, context, "Microsoft.Office.Licensing.License", false, 4);
};
License.prototype.toJSON = function () {
return _toJson(this, {}, {});
};
return License;
}(OfficeExtension.ClientObject));
OfficeCore.License = License;
var _typeLicenseFeature = "LicenseFeature";
var LicenseFeature = (function (_super) {
__extends(LicenseFeature, _super);
function LicenseFeature() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(LicenseFeature.prototype, "_className", {
get: function () {
return "LicenseFeature";
},
enumerable: true,
configurable: true
});
Object.defineProperty(LicenseFeature.prototype, "_scalarPropertyNames", {
get: function () {
return ["id"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(LicenseFeature.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["Id"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(LicenseFeature.prototype, "id", {
get: function () {
_throwIfNotLoaded("id", this._I, _typeLicenseFeature, this._isNull);
return this._I;
},
enumerable: true,
configurable: true
});
LicenseFeature.prototype._RegisterStateChange = function () {
_invokeMethod(this, "_RegisterStateChange", 1, [], 4, 0);
};
LicenseFeature.prototype._UnregisterStateChange = function () {
_invokeMethod(this, "_UnregisterStateChange", 1, [], 4, 0);
};
LicenseFeature.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["Id"])) {
this._I = obj["Id"];
}
};
LicenseFeature.prototype.load = function (options) {
return _load(this, options);
};
LicenseFeature.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
LicenseFeature.prototype._handleIdResult = function (value) {
_super.prototype._handleIdResult.call(this, value);
if (_isNullOrUndefined(value)) {
return;
}
if (!_isUndefined(value["Id"])) {
this._I = value["Id"];
}
};
LicenseFeature.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
Object.defineProperty(LicenseFeature.prototype, "onStateChanged", {
get: function () {
var _this = this;
if (!this.m_stateChanged) {
this.m_stateChanged = new OfficeExtension.GenericEventHandlers(this.context, this, "StateChanged", {
eventType: 1,
registerFunc: function () { return _this._RegisterStateChange(); },
unregisterFunc: function () { return _this._UnregisterStateChange(); },
getTargetIdFunc: function () { return _this.id; },
eventArgsTransformFunc: function (value) {
var event = _CC.LicenseFeature_StateChanged_EventArgsTransform(_this, value);
return OfficeExtension.Utility._createPromiseFromResult(event);
}
});
}
return this.m_stateChanged;
},
enumerable: true,
configurable: true
});
LicenseFeature.prototype.toJSON = function () {
return _toJson(this, {
"id": this._I
}, {});
};
LicenseFeature.prototype.setMockData = function (data) {
_setMockData(this, data);
};
LicenseFeature.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return LicenseFeature;
}(OfficeExtension.ClientObject));
OfficeCore.LicenseFeature = LicenseFeature;
(function (_CC) {
function LicenseFeature_StateChanged_EventArgsTransform(thisObj, args) {
var newArgs = {
feature: args.featureName,
isEnabled: args.isEnabled,
tier: args.tierName
};
if (args.tierName) {
newArgs.tier = args.tierName == 0 ? LicenseFeatureTier.unknown :
args.tierName == 1 ? LicenseFeatureTier.basic :
args.tierName == 2 ? LicenseFeatureTier.premium :
args.tierName;
}
return newArgs;
}
_CC.LicenseFeature_StateChanged_EventArgsTransform = LicenseFeature_StateChanged_EventArgsTransform;
})(_CC = OfficeCore._CC || (OfficeCore._CC = {}));
var ErrorCodes;
(function (ErrorCodes) {
ErrorCodes["apiNotAvailable"] = "ApiNotAvailable";
ErrorCodes["clientError"] = "ClientError";
ErrorCodes["controlIdNotFound"] = "ControlIdNotFound";
ErrorCodes["entryIdRequired"] = "EntryIdRequired";
ErrorCodes["generalException"] = "GeneralException";
ErrorCodes["hostRestartNeeded"] = "HostRestartNeeded";
ErrorCodes["instanceNotFound"] = "InstanceNotFound";
ErrorCodes["interactiveFlowAborted"] = "InteractiveFlowAborted";
ErrorCodes["invalidArgument"] = "InvalidArgument";
ErrorCodes["invalidGrant"] = "InvalidGrant";
ErrorCodes["invalidResourceUrl"] = "InvalidResourceUrl";
ErrorCodes["objectNotFound"] = "ObjectNotFound";
ErrorCodes["resourceNotSupported"] = "ResourceNotSupported";
ErrorCodes["serverError"] = "ServerError";
ErrorCodes["serviceUrlNotFound"] = "ServiceUrlNotFound";
ErrorCodes["ticketInvalidParams"] = "TicketInvalidParams";
ErrorCodes["ticketNetworkError"] = "TicketNetworkError";
ErrorCodes["ticketUnauthorized"] = "TicketUnauthorized";
ErrorCodes["ticketUninitialized"] = "TicketUninitialized";
ErrorCodes["ticketUnknownError"] = "TicketUnknownError";
ErrorCodes["unexpectedError"] = "UnexpectedError";
ErrorCodes["unsupportedUserIdentity"] = "UnsupportedUserIdentity";
ErrorCodes["userNotSignedIn"] = "UserNotSignedIn";
})(ErrorCodes = OfficeCore.ErrorCodes || (OfficeCore.ErrorCodes = {}));
var Interfaces;
(function (Interfaces) {
})(Interfaces = OfficeCore.Interfaces || (OfficeCore.Interfaces = {}));
})(OfficeCore || (OfficeCore = {}));
var Office;
(function (Office) {
var VisibilityMode;
(function (VisibilityMode) {
VisibilityMode["hidden"] = "Hidden";
VisibilityMode["taskpane"] = "Taskpane";
})(VisibilityMode = Office.VisibilityMode || (Office.VisibilityMode = {}));
var StartupBehavior;
(function (StartupBehavior) {
StartupBehavior["none"] = "None";
StartupBehavior["load"] = "Load";
})(StartupBehavior = Office.StartupBehavior || (Office.StartupBehavior = {}));
var addin;
(function (addin) {
function _createRequestContext(wacPartition) {
var context = new OfficeCore.RequestContext();
context._requestFlagModifier |= 64;
if (wacPartition) {
context._customData = 'WacPartition';
}
return context;
}
function setStartupBehavior(behavior) {
return __awaiter(this, void 0, void 0, function () {
var state, context, appRuntimePersistenceService;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (behavior !== StartupBehavior.load && behavior !== StartupBehavior.none) {
throw OfficeExtension.Utility.createRuntimeError(OfficeExtension.ErrorCodes.invalidArgument, null, null);
}
state = (behavior == StartupBehavior.load ? OfficeCore.AppRuntimeState.background : OfficeCore.AppRuntimeState.inactive);
context = _createRequestContext(false);
appRuntimePersistenceService = OfficeCore.AppRuntimePersistenceService.newObject(context);
appRuntimePersistenceService.setAppRuntimeStartState(state);
return [4, context.sync()];
case 1:
_a.sent();
return [2];
}
});
});
}
addin.setStartupBehavior = setStartupBehavior;
function getStartupBehavior() {
return __awaiter(this, void 0, void 0, function () {
var context, appRuntimePersistenceService, stateResult, state, ret;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
context = _createRequestContext(false);
appRuntimePersistenceService = OfficeCore.AppRuntimePersistenceService.newObject(context);
stateResult = appRuntimePersistenceService.getAppRuntimeStartState();
return [4, context.sync()];
case 1:
_a.sent();
state = stateResult.value;
ret = (state == OfficeCore.AppRuntimeState.inactive ? StartupBehavior.none : StartupBehavior.load);
return [2, ret];
}
});
});
}
addin.getStartupBehavior = getStartupBehavior;
function _setState(state) {
return __awaiter(this, void 0, void 0, function () {
var context, appRuntimeService;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
context = _createRequestContext(true);
appRuntimeService = OfficeCore.AppRuntimeService.newObject(context);
appRuntimeService.setAppRuntimeState(state);
return [4, context.sync()];
case 1:
_a.sent();
return [2];
}
});
});
}
function _getState() {
return __awaiter(this, void 0, void 0, function () {
var context, appRuntimeService, stateResult;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
context = _createRequestContext(true);
appRuntimeService = OfficeCore.AppRuntimeService.newObject(context);
stateResult = appRuntimeService.getAppRuntimeState();
return [4, context.sync()];
case 1:
_a.sent();
return [2, stateResult.value];
}
});
});
}
addin._getState = _getState;
function showAsTaskpane() {
return _setState(OfficeCore.AppRuntimeState.visible);
}
addin.showAsTaskpane = showAsTaskpane;
function hide() {
return _setState(OfficeCore.AppRuntimeState.background);
}
addin.hide = hide;
var _appRuntimeEvent;
function _getAppRuntimeEventService() {
if (!_appRuntimeEvent) {
var context = _createRequestContext(true);
_appRuntimeEvent = OfficeCore.AppRuntimeService.newObject(context);
}
return _appRuntimeEvent;
}
function _convertVisibilityToVisibilityMode(visibility) {
if (visibility === OfficeCore.Visibility.visible) {
return VisibilityMode.taskpane;
}
return VisibilityMode.hidden;
}
function onVisibilityModeChanged(listener) {
return __awaiter(this, void 0, void 0, function () {
var eventService, registrationToken, ret;
var _this = this;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
eventService = _getAppRuntimeEventService();
registrationToken = eventService.onVisibilityChanged.add(function (args) {
if (listener) {
var msg = {
visibilityMode: _convertVisibilityToVisibilityMode(args.visibility)
};
listener(msg);
}
return null;
});
return [4, eventService.context.sync()];
case 1:
_a.sent();
ret = function () {
return __awaiter(_this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
registrationToken.remove();
return [4, eventService.context.sync()];
case 1:
_a.sent();
return [2];
}
});
});
};
return [2, ret];
}
});
});
}
addin.onVisibilityModeChanged = onVisibilityModeChanged;
})(addin = Office.addin || (Office.addin = {}));
})(Office || (Office = {}));
var Office;
(function (Office) {
var ribbon;
(function (ribbon_1) {
function _createRequestContext() {
var context = new OfficeCore.RequestContext();
if (OSF._OfficeAppFactory.getHostInfo().hostPlatform == 'web') {
context._customData = 'WacPartition';
}
return context;
}
function requestUpdate(input) {
var requestContext = _createRequestContext();
var ribbon = requestContext.ribbon;
function processControls(parent) {
parent.controls
.filter(function (control) { return !(!control.id); })
.forEach(function (control) {
var ribbonControl = ribbon.getButton(control.id);
if (control.enabled !== undefined && control.enabled !== null) {
ribbonControl.enabled = control.enabled;
}
});
}
input.tabs
.filter(function (tab) { return !(!tab.id); })
.forEach(function (tab) {
var ribbonTab = ribbon.getTab(tab.id);
if (tab.visible !== undefined && tab.visible !== null) {
ribbonTab.setVisibility(tab.visible);
}
if (!!tab.groups && !!tab.groups.length) {
tab.groups
.filter(function (group) { return !(!group.id); })
.forEach(function (group) {
processControls(group);
});
}
else {
processControls(tab);
}
});
return requestContext.sync();
}
ribbon_1.requestUpdate = requestUpdate;
function requestCreateControls(input) {
var requestContext = _createRequestContext();
var ribbon = requestContext.ribbon;
var delay = function (milliseconds) {
return new Promise(function (resolve, _) { return setTimeout(function () { return resolve(); }, milliseconds); });
};
ribbon.executeRequestCreate(JSON.stringify(input));
return delay(250)
.then(function () { return requestContext.sync(); });
}
ribbon_1.requestCreateControls = requestCreateControls;
})(ribbon = Office.ribbon || (Office.ribbon = {}));
})(Office || (Office = {}));
var OfficeCore;
(function (OfficeCore) {
var _hostName = "Office";
var _defaultApiSetName = "OfficeSharedApi";
var _createPropertyObject = OfficeExtension.BatchApiHelper.createPropertyObject;
var _createMethodObject = OfficeExtension.BatchApiHelper.createMethodObject;
var _createIndexerObject = OfficeExtension.BatchApiHelper.createIndexerObject;
var _createRootServiceObject = OfficeExtension.BatchApiHelper.createRootServiceObject;
var _createTopLevelServiceObject = OfficeExtension.BatchApiHelper.createTopLevelServiceObject;
var _createChildItemObject = OfficeExtension.BatchApiHelper.createChildItemObject;
var _invokeMethod = OfficeExtension.BatchApiHelper.invokeMethod;
var _invokeEnsureUnchanged = OfficeExtension.BatchApiHelper.invokeEnsureUnchanged;
var _invokeSetProperty = OfficeExtension.BatchApiHelper.invokeSetProperty;
var _isNullOrUndefined = OfficeExtension.Utility.isNullOrUndefined;
var _isUndefined = OfficeExtension.Utility.isUndefined;
var _throwIfNotLoaded = OfficeExtension.Utility.throwIfNotLoaded;
var _throwIfApiNotSupported = OfficeExtension.Utility.throwIfApiNotSupported;
var _load = OfficeExtension.Utility.load;
var _retrieve = OfficeExtension.Utility.retrieve;
var _toJson = OfficeExtension.Utility.toJson;
var _fixObjectPathIfNecessary = OfficeExtension.Utility.fixObjectPathIfNecessary;
var _handleNavigationPropertyResults = OfficeExtension.Utility._handleNavigationPropertyResults;
var _adjustToDateTime = OfficeExtension.Utility.adjustToDateTime;
var _processRetrieveResult = OfficeExtension.Utility.processRetrieveResult;
var _setMockData = OfficeExtension.Utility.setMockData;
var _calculateApiFlags = OfficeExtension.CommonUtility.calculateApiFlags;
var AddinInternalServiceErrorCodes;
(function (AddinInternalServiceErrorCodes) {
AddinInternalServiceErrorCodes["generalException"] = "GeneralException";
})(AddinInternalServiceErrorCodes || (AddinInternalServiceErrorCodes = {}));
var _libraryMetadataInternalServiceApi = { "version": "1.0.0",
"name": "OfficeCore",
"defaultApiSetName": "OfficeSharedApi",
"hostName": "Office",
"apiSets": [],
"strings": ["AddinInternalService"],
"enumTypes": [],
"clientObjectTypes": [[1,
0,
0,
0,
[["notifyActionHandlerReady",
0,
2,
0,
4]],
0,
0,
0,
0,
"Microsoft.InternalService.AddinInternalService",
4]] };
var _builder = new OfficeExtension.LibraryBuilder({ metadata: _libraryMetadataInternalServiceApi, targetNamespaceObject: OfficeCore });
})(OfficeCore || (OfficeCore = {}));
var Office;
(function (Office) {
var actionProxy;
(function (actionProxy) {
var _isNullOrUndefined = OfficeExtension.Utility.isNullOrUndefined;
var _association;
var ActionMessageCategory = 2;
var ActionDispatchMessageType = 1000;
function init() {
setActionAssociation(Office.actions._association);
var context = new OfficeExtension.ClientRequestContext();
return context.eventRegistration.register(5, "", _handleMessage);
}
function setActionAssociation(association) {
_association = association;
}
function _getFunction(functionName) {
if (functionName) {
var nameUpperCase = functionName.toUpperCase();
var call = _association.mappings[nameUpperCase];
if (!_isNullOrUndefined(call) && typeof (call) === "function") {
return call;
}
}
throw OfficeExtension.Utility.createRuntimeError("invalidOperation", "sourceData", "ActionProxy._getFunction");
}
function _handleMessage(args) {
try {
OfficeExtension.Utility.log('ActionProxy._handleMessage');
OfficeExtension.Utility.checkArgumentNull(args, "args");
var entryArray = args.entries;
var invocationArray = [];
for (var i = 0; i < entryArray.length; i++) {
if (entryArray[i].messageCategory !== ActionMessageCategory) {
continue;
}
if (typeof (entryArray[i].message) === 'string') {
entryArray[i].message = JSON.parse(entryArray[i].message);
}
if (entryArray[i].messageType === ActionDispatchMessageType) {
var actionsArgs = null;
var actionName = entryArray[i].message[0];
var call = _getFunction(actionName);
if (entryArray[i].message.length >= 2) {
var actionArgsJson = entryArray[i].message[1];
if (actionArgsJson) {
if (_isJsonObjectString(actionArgsJson)) {
actionsArgs = JSON.parse(actionArgsJson);
}
else {
actionsArgs = actionArgsJson;
}
}
}
call.apply(null, [actionsArgs]);
}
else {
OfficeExtension.Utility.log('ActionProxy._handleMessage unknown message type ' + entryArray[i].messageType);
}
}
}
catch (ex) {
_tryLog(ex);
throw ex;
}
return OfficeExtension.Utility._createPromiseFromResult(null);
}
function _isJsonObjectString(value) {
if (typeof value === 'string' && value[0] === '{') {
return true;
}
return false;
}
function toLogMessage(ex) {
var ret = 'Unknown Error';
if (ex) {
try {
if (ex.toString) {
ret = ex.toString();
}
ret = ret + ' ' + JSON.stringify(ex);
}
catch (otherEx) {
ret = 'Unexpected Error';
}
}
return ret;
}
function _tryLog(ex) {
var message = toLogMessage(ex);
OfficeExtension.Utility.log(message);
}
function notifyActionHandlerReady() {
var context = new OfficeExtension.ClientRequestContext();
var addinInternalService = OfficeCore.AddinInternalService.newObject(context);
context._customData = 'WacPartition';
addinInternalService.notifyActionHandlerReady();
return context.sync();
}
function handlerOnReadyInternal() {
try {
Microsoft.Office.WebExtension.onReadyInternal()
.then(function () {
return init();
})
.then(function () {
if (OSF._OfficeAppFactory.getHostInfo().hostPlatform === "web" &&
OSF._OfficeAppFactory.getHostInfo().hostType !== "excel") {
return;
}
else {
return notifyActionHandlerReady();
}
});
}
catch (ex) {
}
}
function initOnce() {
OfficeExtension.Utility.log('ActionProxy.initOnce');
if (typeof (document) !== 'undefined') {
if (document.readyState && document.readyState !== 'loading') {
OfficeExtension.Utility.log('ActionProxy.initOnce: document.readyState is not loading state');
handlerOnReadyInternal();
}
else if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", function () {
OfficeExtension.Utility.log('ActionProxy.initOnce: DOMContentLoaded event triggered');
handlerOnReadyInternal();
});
}
}
}
initOnce();
})(actionProxy || (actionProxy = {}));
})(Office || (Office = {}));
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b)
if (b.hasOwnProperty(p))
d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var Visio;
(function (Visio) {
var _hostName = "Visio";
var _defaultApiSetName = "";
var _createPropertyObject = OfficeExtension.BatchApiHelper.createPropertyObject;
var _createMethodObject = OfficeExtension.BatchApiHelper.createMethodObject;
var _createIndexerObject = OfficeExtension.BatchApiHelper.createIndexerObject;
var _createRootServiceObject = OfficeExtension.BatchApiHelper.createRootServiceObject;
var _createTopLevelServiceObject = OfficeExtension.BatchApiHelper.createTopLevelServiceObject;
var _createChildItemObject = OfficeExtension.BatchApiHelper.createChildItemObject;
var _invokeMethod = OfficeExtension.BatchApiHelper.invokeMethod;
var _invokeEnsureUnchanged = OfficeExtension.BatchApiHelper.invokeEnsureUnchanged;
var _invokeSetProperty = OfficeExtension.BatchApiHelper.invokeSetProperty;
var _isNullOrUndefined = OfficeExtension.Utility.isNullOrUndefined;
var _isUndefined = OfficeExtension.Utility.isUndefined;
var _throwIfNotLoaded = OfficeExtension.Utility.throwIfNotLoaded;
var _throwIfApiNotSupported = OfficeExtension.Utility.throwIfApiNotSupported;
var _load = OfficeExtension.Utility.load;
var _retrieve = OfficeExtension.Utility.retrieve;
var _toJson = OfficeExtension.Utility.toJson;
var _fixObjectPathIfNecessary = OfficeExtension.Utility.fixObjectPathIfNecessary;
var _handleNavigationPropertyResults = OfficeExtension.Utility._handleNavigationPropertyResults;
var _adjustToDateTime = OfficeExtension.Utility.adjustToDateTime;
var _processRetrieveResult = OfficeExtension.Utility.processRetrieveResult;
var _setMockData = OfficeExtension.Utility.setMockData;
var _typeApplication = "Application";
var Application = (function (_super) {
__extends(Application, _super);
function Application() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(Application.prototype, "_className", {
get: function () {
return "Application";
},
enumerable: true,
configurable: true
});
Object.defineProperty(Application.prototype, "_scalarPropertyNames", {
get: function () {
return ["showBorders", "showToolbars"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Application.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["ShowBorders", "ShowToolbars"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Application.prototype, "_scalarPropertyUpdateable", {
get: function () {
return [true, true];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Application.prototype, "showBorders", {
get: function () {
_throwIfNotLoaded("showBorders", this._S, _typeApplication, this._isNull);
return this._S;
},
set: function (value) {
this._S = value;
_invokeSetProperty(this, "ShowBorders", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(Application.prototype, "showToolbars", {
get: function () {
_throwIfNotLoaded("showToolbars", this._Sh, _typeApplication, this._isNull);
return this._Sh;
},
set: function (value) {
this._Sh = value;
_invokeSetProperty(this, "ShowToolbars", value, 0);
},
enumerable: true,
configurable: true
});
Application.prototype.set = function (properties, options) {
this._recursivelySet(properties, options, ["showBorders", "showToolbars"], [], []);
};
Application.prototype.update = function (properties) {
this._recursivelyUpdate(properties);
};
Application.prototype.showToolbar = function (id, show) {
_invokeMethod(this, "ShowToolbar", 0, [id, show], 0, 0);
};
Application.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["ShowBorders"])) {
this._S = obj["ShowBorders"];
}
if (!_isUndefined(obj["ShowToolbars"])) {
this._Sh = obj["ShowToolbars"];
}
};
Application.prototype.load = function (options) {
return _load(this, options);
};
Application.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
Application.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
Application.prototype.toJSON = function () {
return _toJson(this, {
"showBorders": this._S,
"showToolbars": this._Sh
}, {});
};
Application.prototype.setMockData = function (data) {
_setMockData(this, data);
};
Application.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return Application;
}(OfficeExtension.ClientObject));
Visio.Application = Application;
var _typeDocument = "Document";
var Document = (function (_super) {
__extends(Document, _super);
function Document() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(Document.prototype, "_className", {
get: function () {
return "Document";
},
enumerable: true,
configurable: true
});
Object.defineProperty(Document.prototype, "_navigationPropertyNames", {
get: function () {
return ["view", "application", "pages"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Document.prototype, "application", {
get: function () {
if (!this._A) {
this._A = _createPropertyObject(Visio.Application, this, "Application", false, 4);
}
return this._A;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Document.prototype, "pages", {
get: function () {
if (!this._P) {
this._P = _createPropertyObject(Visio.PageCollection, this, "Pages", true, 4);
}
return this._P;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Document.prototype, "view", {
get: function () {
if (!this._V) {
this._V = _createPropertyObject(Visio.DocumentView, this, "View", false, 4);
}
return this._V;
},
enumerable: true,
configurable: true
});
Document.prototype.set = function (properties, options) {
this._recursivelySet(properties, options, [], ["view", "application"], [
"pages"
]);
};
Document.prototype.update = function (properties) {
this._recursivelyUpdate(properties);
};
Document.prototype.getActivePage = function () {
return _createMethodObject(Visio.Page, this, "GetActivePage", 1, [], false, false, null, 4);
};
Document.prototype.setActivePage = function (PageName) {
_invokeMethod(this, "SetActivePage", 1, [PageName], 4, 0);
};
Document.prototype.showTaskPane = function (taskPaneType, initialProps, show) {
_invokeMethod(this, "ShowTaskPane", 1, [taskPaneType, initialProps, show], 4, 0);
};
Document.prototype.startDataRefresh = function () {
_invokeMethod(this, "StartDataRefresh", 1, [], 4, 0);
};
Document.prototype._RegisterDataVisualizerDiagramOperationCompletedEvent = function () {
_invokeMethod(this, "_RegisterDataVisualizerDiagramOperationCompletedEvent", 0, [], 0, 0);
};
Document.prototype._UnregisterDataVisualizerDiagramOperationCompletedEvent = function () {
_invokeMethod(this, "_UnregisterDataVisualizerDiagramOperationCompletedEvent", 0, [], 0, 0);
};
Document.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
_handleNavigationPropertyResults(this, obj, ["application", "Application", "pages", "Pages", "view", "View"]);
};
Document.prototype.load = function (options) {
return _load(this, options);
};
Document.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
Document.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
Object.defineProperty(Document.prototype, "onDataRefreshComplete", {
get: function () {
var _this = this;
if (!this.m_dataRefreshComplete) {
this.m_dataRefreshComplete = new OfficeExtension.EventHandlers(this.context, this, "DataRefreshComplete", {
registerFunc: function (handlerCallback) {
return _this.context.eventRegistration.register(3, "", handlerCallback);
},
unregisterFunc: function (handlerCallback) {
return _this.context.eventRegistration.unregister(3, "", handlerCallback);
},
eventArgsTransformFunc: function (args) {
var evt = {
document: this,
success: args.ddaBinding.Object.success
};
return OfficeExtension.Utility._createPromiseFromResult(evt);
}
});
}
return this.m_dataRefreshComplete;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Document.prototype, "onDataVisualizerDiagramOperationCompleted", {
get: function () {
if (!this.m_dataVisualizerDiagramOperationCompleted) {
this.m_dataVisualizerDiagramOperationCompleted = new OfficeExtension.EventHandlers(this.context, this, "DataVisualizerDiagramOperationCompleted", null);
}
return this.m_dataVisualizerDiagramOperationCompleted;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Document.prototype, "onDocumentError", {
get: function () {
var _this = this;
if (!this.m_documentError) {
this.m_documentError = new OfficeExtension.EventHandlers(this.context, this, "DocumentError", {
registerFunc: function (handlerCallback) {
return _this.context.eventRegistration.register(15, "", handlerCallback);
},
unregisterFunc: function (handlerCallback) {
return _this.context.eventRegistration.unregister(15, "", handlerCallback);
},
eventArgsTransformFunc: function (args) {
return OfficeExtension.Utility._createPromiseFromResult(args.ddaBinding.Object);
}
});
}
return this.m_documentError;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Document.prototype, "onDocumentLoadComplete", {
get: function () {
var _this = this;
if (!this.m_documentLoadComplete) {
this.m_documentLoadComplete = new OfficeExtension.EventHandlers(this.context, this, "DocumentLoadComplete", {
registerFunc: function (handlerCallback) {
return _this.context.eventRegistration.register(7, "", handlerCallback);
},
unregisterFunc: function (handlerCallback) {
return _this.context.eventRegistration.unregister(7, "", handlerCallback);
},
eventArgsTransformFunc: function (args) {
var evt = {
success: args.ddaBinding.Object.success
};
return OfficeExtension.Utility._createPromiseFromResult(evt);
}
});
}
return this.m_documentLoadComplete;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Document.prototype, "onPageLoadComplete", {
get: function () {
var _this = this;
if (!this.m_pageLoadComplete) {
this.m_pageLoadComplete = new OfficeExtension.EventHandlers(this.context, this, "PageLoadComplete", {
registerFunc: function (handlerCallback) {
return _this.context.eventRegistration.register(1, "", handlerCallback);
},
unregisterFunc: function (handlerCallback) {
return _this.context.eventRegistration.unregister(1, "", handlerCallback);
},
eventArgsTransformFunc: function (args) {
return OfficeExtension.Utility._createPromiseFromResult(args.ddaBinding.Object);
}
});
}
return this.m_pageLoadComplete;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Document.prototype, "onSelectionChanged", {
get: function () {
var _this = this;
if (!this.m_selectionChanged) {
this.m_selectionChanged = new OfficeExtension.EventHandlers(this.context, this, "SelectionChanged", {
registerFunc: function (handlerCallback) {
return _this.context.eventRegistration.register(2, "", handlerCallback);
},
unregisterFunc: function (handlerCallback) {
return _this.context.eventRegistration.unregister(2, "", handlerCallback);
},
eventArgsTransformFunc: function (args) {
return OfficeExtension.Utility._createPromiseFromResult(args.ddaBinding.Object);
}
});
}
return this.m_selectionChanged;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Document.prototype, "onShapeMouseEnter", {
get: function () {
var _this = this;
if (!this.m_shapeMouseEnter) {
this.m_shapeMouseEnter = new OfficeExtension.EventHandlers(this.context, this, "ShapeMouseEnter", {
registerFunc: function (handlerCallback) {
return _this.context.eventRegistration.register(4, "", handlerCallback);
},
unregisterFunc: function (handlerCallback) {
return _this.context.eventRegistration.unregister(4, "", handlerCallback);
},
eventArgsTransformFunc: function (args) {
return OfficeExtension.Utility._createPromiseFromResult(args.ddaBinding.Object);
}
});
}
return this.m_shapeMouseEnter;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Document.prototype, "onShapeMouseLeave", {
get: function () {
var _this = this;
if (!this.m_shapeMouseLeave) {
this.m_shapeMouseLeave = new OfficeExtension.EventHandlers(this.context, this, "ShapeMouseLeave", {
registerFunc: function (handlerCallback) {
return _this.context.eventRegistration.register(5, "", handlerCallback);
},
unregisterFunc: function (handlerCallback) {
return _this.context.eventRegistration.unregister(5, "", handlerCallback);
},
eventArgsTransformFunc: function (args) {
return OfficeExtension.Utility._createPromiseFromResult(args.ddaBinding.Object);
}
});
}
return this.m_shapeMouseLeave;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Document.prototype, "onTaskPaneStateChanged", {
get: function () {
var _this = this;
if (!this.m_taskPaneStateChanged) {
this.m_taskPaneStateChanged = new OfficeExtension.EventHandlers(this.context, this, "TaskPaneStateChanged", {
registerFunc: function (handlerCallback) {
return _this.context.eventRegistration.register(18, "", handlerCallback);
},
unregisterFunc: function (handlerCallback) {
return _this.context.eventRegistration.unregister(18, "", handlerCallback);
},
eventArgsTransformFunc: function (args) {
return OfficeExtension.Utility._createPromiseFromResult(args.ddaBinding.Object);
}
});
}
return this.m_taskPaneStateChanged;
},
enumerable: true,
configurable: true
});
Document.prototype.toJSON = function () {
return _toJson(this, {}, {
"application": this._A,
"pages": this._P,
"view": this._V
});
};
Document.prototype.setMockData = function (data) {
_setMockData(this, data);
};
Document.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return Document;
}(OfficeExtension.ClientObject));
Visio.Document = Document;
var _typeDocumentView = "DocumentView";
var DocumentView = (function (_super) {
__extends(DocumentView, _super);
function DocumentView() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(DocumentView.prototype, "_className", {
get: function () {
return "DocumentView";
},
enumerable: true,
configurable: true
});
Object.defineProperty(DocumentView.prototype, "_scalarPropertyNames", {
get: function () {
return ["disableHyperlinks", "disableZoom", "disablePan", "hideDiagramBoundary", "disablePanZoomWindow"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(DocumentView.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["DisableHyperlinks", "DisableZoom", "DisablePan", "HideDiagramBoundary", "DisablePanZoomWindow"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(DocumentView.prototype, "_scalarPropertyUpdateable", {
get: function () {
return [true, true, true, true, true];
},
enumerable: true,
configurable: true
});
Object.defineProperty(DocumentView.prototype, "disableHyperlinks", {
get: function () {
_throwIfNotLoaded("disableHyperlinks", this._D, _typeDocumentView, this._isNull);
return this._D;
},
set: function (value) {
this._D = value;
_invokeSetProperty(this, "DisableHyperlinks", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(DocumentView.prototype, "disablePan", {
get: function () {
_throwIfNotLoaded("disablePan", this._Di, _typeDocumentView, this._isNull);
return this._Di;
},
set: function (value) {
this._Di = value;
_invokeSetProperty(this, "DisablePan", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(DocumentView.prototype, "disablePanZoomWindow", {
get: function () {
_throwIfNotLoaded("disablePanZoomWindow", this._Dis, _typeDocumentView, this._isNull);
return this._Dis;
},
set: function (value) {
this._Dis = value;
_invokeSetProperty(this, "DisablePanZoomWindow", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(DocumentView.prototype, "disableZoom", {
get: function () {
_throwIfNotLoaded("disableZoom", this._Disa, _typeDocumentView, this._isNull);
return this._Disa;
},
set: function (value) {
this._Disa = value;
_invokeSetProperty(this, "DisableZoom", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(DocumentView.prototype, "hideDiagramBoundary", {
get: function () {
_throwIfNotLoaded("hideDiagramBoundary", this._H, _typeDocumentView, this._isNull);
return this._H;
},
set: function (value) {
this._H = value;
_invokeSetProperty(this, "HideDiagramBoundary", value, 0);
},
enumerable: true,
configurable: true
});
DocumentView.prototype.set = function (properties, options) {
this._recursivelySet(properties, options, ["disableHyperlinks", "disableZoom", "disablePan", "hideDiagramBoundary", "disablePanZoomWindow"], [], []);
};
DocumentView.prototype.update = function (properties) {
this._recursivelyUpdate(properties);
};
DocumentView.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["DisableHyperlinks"])) {
this._D = obj["DisableHyperlinks"];
}
if (!_isUndefined(obj["DisablePan"])) {
this._Di = obj["DisablePan"];
}
if (!_isUndefined(obj["DisablePanZoomWindow"])) {
this._Dis = obj["DisablePanZoomWindow"];
}
if (!_isUndefined(obj["DisableZoom"])) {
this._Disa = obj["DisableZoom"];
}
if (!_isUndefined(obj["HideDiagramBoundary"])) {
this._H = obj["HideDiagramBoundary"];
}
};
DocumentView.prototype.load = function (options) {
return _load(this, options);
};
DocumentView.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
DocumentView.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
DocumentView.prototype.toJSON = function () {
return _toJson(this, {
"disableHyperlinks": this._D,
"disablePan": this._Di,
"disablePanZoomWindow": this._Dis,
"disableZoom": this._Disa,
"hideDiagramBoundary": this._H
}, {});
};
DocumentView.prototype.setMockData = function (data) {
_setMockData(this, data);
};
DocumentView.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return DocumentView;
}(OfficeExtension.ClientObject));
Visio.DocumentView = DocumentView;
var _typePage = "Page";
var Page = (function (_super) {
__extends(Page, _super);
function Page() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(Page.prototype, "_className", {
get: function () {
return "Page";
},
enumerable: true,
configurable: true
});
Object.defineProperty(Page.prototype, "_scalarPropertyNames", {
get: function () {
return ["index", "name", "isBackground", "width", "height"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Page.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["Index", "Name", "IsBackground", "Width", "Height"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Page.prototype, "_navigationPropertyNames", {
get: function () {
return ["shapes", "view", "comments", "allShapes", "dataVisualizerDiagrams"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Page.prototype, "allShapes", {
get: function () {
if (!this._A) {
this._A = _createPropertyObject(Visio.ShapeCollection, this, "AllShapes", true, 4);
}
return this._A;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Page.prototype, "comments", {
get: function () {
if (!this._C) {
this._C = _createPropertyObject(Visio.CommentCollection, this, "Comments", true, 4);
}
return this._C;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Page.prototype, "dataVisualizerDiagrams", {
get: function () {
if (!this._D) {
this._D = _createPropertyObject(Visio.DataVisualizerDiagramCollection, this, "DataVisualizerDiagrams", true, 4);
}
return this._D;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Page.prototype, "shapes", {
get: function () {
if (!this._S) {
this._S = _createPropertyObject(Visio.ShapeCollection, this, "Shapes", true, 4);
}
return this._S;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Page.prototype, "view", {
get: function () {
if (!this._V) {
this._V = _createPropertyObject(Visio.PageView, this, "View", false, 4);
}
return this._V;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Page.prototype, "height", {
get: function () {
_throwIfNotLoaded("height", this._H, _typePage, this._isNull);
return this._H;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Page.prototype, "index", {
get: function () {
_throwIfNotLoaded("index", this._I, _typePage, this._isNull);
return this._I;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Page.prototype, "isBackground", {
get: function () {
_throwIfNotLoaded("isBackground", this._Is, _typePage, this._isNull);
return this._Is;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Page.prototype, "name", {
get: function () {
_throwIfNotLoaded("name", this._N, _typePage, this._isNull);
return this._N;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Page.prototype, "width", {
get: function () {
_throwIfNotLoaded("width", this._W, _typePage, this._isNull);
return this._W;
},
enumerable: true,
configurable: true
});
Page.prototype.set = function (properties, options) {
this._recursivelySet(properties, options, [], ["view"], [
"allShapes",
"comments",
"dataVisualizerDiagrams",
"shapes"
]);
};
Page.prototype.update = function (properties) {
this._recursivelyUpdate(properties);
};
Page.prototype.activate = function () {
_invokeMethod(this, "Activate", 1, [], 4, 0);
};
Page.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["Height"])) {
this._H = obj["Height"];
}
if (!_isUndefined(obj["Index"])) {
this._I = obj["Index"];
}
if (!_isUndefined(obj["IsBackground"])) {
this._Is = obj["IsBackground"];
}
if (!_isUndefined(obj["Name"])) {
this._N = obj["Name"];
}
if (!_isUndefined(obj["Width"])) {
this._W = obj["Width"];
}
_handleNavigationPropertyResults(this, obj, ["allShapes", "AllShapes", "comments", "Comments", "dataVisualizerDiagrams", "DataVisualizerDiagrams", "shapes", "Shapes", "view", "View"]);
};
Page.prototype.load = function (options) {
return _load(this, options);
};
Page.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
Page.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
Page.prototype.toJSON = function () {
return _toJson(this, {
"height": this._H,
"index": this._I,
"isBackground": this._Is,
"name": this._N,
"width": this._W
}, {
"allShapes": this._A,
"comments": this._C,
"dataVisualizerDiagrams": this._D,
"shapes": this._S,
"view": this._V
});
};
Page.prototype.setMockData = function (data) {
_setMockData(this, data);
};
Page.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return Page;
}(OfficeExtension.ClientObject));
Visio.Page = Page;
var _typePageView = "PageView";
var PageView = (function (_super) {
__extends(PageView, _super);
function PageView() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(PageView.prototype, "_className", {
get: function () {
return "PageView";
},
enumerable: true,
configurable: true
});
Object.defineProperty(PageView.prototype, "_scalarPropertyNames", {
get: function () {
return ["zoom"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(PageView.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["Zoom"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(PageView.prototype, "_scalarPropertyUpdateable", {
get: function () {
return [true];
},
enumerable: true,
configurable: true
});
Object.defineProperty(PageView.prototype, "zoom", {
get: function () {
_throwIfNotLoaded("zoom", this._Z, _typePageView, this._isNull);
return this._Z;
},
set: function (value) {
this._Z = value;
_invokeSetProperty(this, "Zoom", value, 0);
},
enumerable: true,
configurable: true
});
PageView.prototype.set = function (properties, options) {
this._recursivelySet(properties, options, ["zoom"], [], []);
};
PageView.prototype.update = function (properties) {
this._recursivelyUpdate(properties);
};
PageView.prototype.centerViewportOnShape = function (ShapeId) {
_invokeMethod(this, "CenterViewportOnShape", 1, [ShapeId], 4, 0);
};
PageView.prototype.fitToWindow = function () {
_invokeMethod(this, "FitToWindow", 1, [], 4, 0);
};
PageView.prototype.getPosition = function () {
return _invokeMethod(this, "GetPosition", 1, [], 4, 0);
};
PageView.prototype.getSelection = function () {
return _createMethodObject(Visio.Selection, this, "GetSelection", 1, [], false, false, null, 4);
};
PageView.prototype.isShapeInViewport = function (Shape) {
return _invokeMethod(this, "IsShapeInViewport", 1, [Shape], 4, 0);
};
PageView.prototype.setPosition = function (Position) {
_invokeMethod(this, "SetPosition", 1, [Position], 4, 0);
};
PageView.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["Zoom"])) {
this._Z = obj["Zoom"];
}
};
PageView.prototype.load = function (options) {
return _load(this, options);
};
PageView.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
PageView.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
PageView.prototype.toJSON = function () {
return _toJson(this, {
"zoom": this._Z
}, {});
};
PageView.prototype.setMockData = function (data) {
_setMockData(this, data);
};
PageView.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return PageView;
}(OfficeExtension.ClientObject));
Visio.PageView = PageView;
var _typePageCollection = "PageCollection";
var PageCollection = (function (_super) {
__extends(PageCollection, _super);
function PageCollection() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(PageCollection.prototype, "_className", {
get: function () {
return "PageCollection";
},
enumerable: true,
configurable: true
});
Object.defineProperty(PageCollection.prototype, "_isCollection", {
get: function () {
return true;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PageCollection.prototype, "items", {
get: function () {
_throwIfNotLoaded("items", this.m__items, _typePageCollection, this._isNull);
return this.m__items;
},
enumerable: true,
configurable: true
});
PageCollection.prototype.getCount = function () {
return _invokeMethod(this, "GetCount", 1, [], 4, 0);
};
PageCollection.prototype.getItem = function (key) {
return _createIndexerObject(Visio.Page, this, [key]);
};
PageCollection.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isNullOrUndefined(obj[OfficeExtension.Constants.items])) {
this.m__items = [];
var _data = obj[OfficeExtension.Constants.items];
for (var i = 0; i < _data.length; i++) {
var _item = _createChildItemObject(Visio.Page, true, this, _data[i], i);
_item._handleResult(_data[i]);
this.m__items.push(_item);
}
}
};
PageCollection.prototype.load = function (options) {
return _load(this, options);
};
PageCollection.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
PageCollection.prototype._handleRetrieveResult = function (value, result) {
var _this = this;
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result, function (childItemData, index) { return _createChildItemObject(Visio.Page, true, _this, childItemData, index); });
};
PageCollection.prototype.toJSON = function () {
return _toJson(this, {}, {}, this.m__items);
};
PageCollection.prototype.setMockData = function (data) {
var _this = this;
_setMockData(this, data, function (childItemData, index) { return _createChildItemObject(Visio.Page, true, _this, childItemData, index); }, function (items) { return _this.m__items = items; });
};
return PageCollection;
}(OfficeExtension.ClientObject));
Visio.PageCollection = PageCollection;
var _typeShapeCollection = "ShapeCollection";
var ShapeCollection = (function (_super) {
__extends(ShapeCollection, _super);
function ShapeCollection() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(ShapeCollection.prototype, "_className", {
get: function () {
return "ShapeCollection";
},
enumerable: true,
configurable: true
});
Object.defineProperty(ShapeCollection.prototype, "_isCollection", {
get: function () {
return true;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ShapeCollection.prototype, "items", {
get: function () {
_throwIfNotLoaded("items", this.m__items, _typeShapeCollection, this._isNull);
return this.m__items;
},
enumerable: true,
configurable: true
});
ShapeCollection.prototype.getCount = function () {
return _invokeMethod(this, "GetCount", 1, [], 4, 0);
};
ShapeCollection.prototype.getItem = function (key) {
return _createIndexerObject(Visio.Shape, this, [key]);
};
ShapeCollection.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isNullOrUndefined(obj[OfficeExtension.Constants.items])) {
this.m__items = [];
var _data = obj[OfficeExtension.Constants.items];
for (var i = 0; i < _data.length; i++) {
var _item = _createChildItemObject(Visio.Shape, true, this, _data[i], i);
_item._handleResult(_data[i]);
this.m__items.push(_item);
}
}
};
ShapeCollection.prototype.load = function (options) {
return _load(this, options);
};
ShapeCollection.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
ShapeCollection.prototype._handleRetrieveResult = function (value, result) {
var _this = this;
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result, function (childItemData, index) { return _createChildItemObject(Visio.Shape, true, _this, childItemData, index); });
};
ShapeCollection.prototype.toJSON = function () {
return _toJson(this, {}, {}, this.m__items);
};
ShapeCollection.prototype.setMockData = function (data) {
var _this = this;
_setMockData(this, data, function (childItemData, index) { return _createChildItemObject(Visio.Shape, true, _this, childItemData, index); }, function (items) { return _this.m__items = items; });
};
return ShapeCollection;
}(OfficeExtension.ClientObject));
Visio.ShapeCollection = ShapeCollection;
var _typeShape = "Shape";
var Shape = (function (_super) {
__extends(Shape, _super);
function Shape() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(Shape.prototype, "_className", {
get: function () {
return "Shape";
},
enumerable: true,
configurable: true
});
Object.defineProperty(Shape.prototype, "_scalarPropertyNames", {
get: function () {
return ["name", "id", "text", "select", "isBoundToData"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Shape.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["Name", "Id", "Text", "Select", "IsBoundToData"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Shape.prototype, "_scalarPropertyUpdateable", {
get: function () {
return [false, false, false, true, false];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Shape.prototype, "_navigationPropertyNames", {
get: function () {
return ["hyperlinks", "shapeDataItems", "view", "subShapes", "comments"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Shape.prototype, "comments", {
get: function () {
if (!this._C) {
this._C = _createPropertyObject(Visio.CommentCollection, this, "Comments", true, 4);
}
return this._C;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Shape.prototype, "hyperlinks", {
get: function () {
if (!this._H) {
this._H = _createPropertyObject(Visio.HyperlinkCollection, this, "Hyperlinks", true, 4);
}
return this._H;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Shape.prototype, "shapeDataItems", {
get: function () {
if (!this._Sh) {
this._Sh = _createPropertyObject(Visio.ShapeDataItemCollection, this, "ShapeDataItems", true, 4);
}
return this._Sh;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Shape.prototype, "subShapes", {
get: function () {
if (!this._Su) {
this._Su = _createPropertyObject(Visio.ShapeCollection, this, "SubShapes", true, 4);
}
return this._Su;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Shape.prototype, "view", {
get: function () {
if (!this._V) {
this._V = _createPropertyObject(Visio.ShapeView, this, "View", false, 4);
}
return this._V;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Shape.prototype, "id", {
get: function () {
_throwIfNotLoaded("id", this._I, _typeShape, this._isNull);
return this._I;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Shape.prototype, "isBoundToData", {
get: function () {
_throwIfNotLoaded("isBoundToData", this._Is, _typeShape, this._isNull);
return this._Is;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Shape.prototype, "name", {
get: function () {
_throwIfNotLoaded("name", this._N, _typeShape, this._isNull);
return this._N;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Shape.prototype, "select", {
get: function () {
_throwIfNotLoaded("select", this._S, _typeShape, this._isNull);
return this._S;
},
set: function (value) {
this._S = value;
_invokeSetProperty(this, "Select", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(Shape.prototype, "text", {
get: function () {
_throwIfNotLoaded("text", this._T, _typeShape, this._isNull);
return this._T;
},
enumerable: true,
configurable: true
});
Shape.prototype.set = function (properties, options) {
this._recursivelySet(properties, options, ["select"], ["view"], [
"comments",
"hyperlinks",
"shapeDataItems",
"subShapes"
]);
};
Shape.prototype.update = function (properties) {
this._recursivelyUpdate(properties);
};
Shape.prototype.getBounds = function () {
return _invokeMethod(this, "GetBounds", 1, [], 4, 0);
};
Shape.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["Id"])) {
this._I = obj["Id"];
}
if (!_isUndefined(obj["IsBoundToData"])) {
this._Is = obj["IsBoundToData"];
}
if (!_isUndefined(obj["Name"])) {
this._N = obj["Name"];
}
if (!_isUndefined(obj["Select"])) {
this._S = obj["Select"];
}
if (!_isUndefined(obj["Text"])) {
this._T = obj["Text"];
}
_handleNavigationPropertyResults(this, obj, ["comments", "Comments", "hyperlinks", "Hyperlinks", "shapeDataItems", "ShapeDataItems", "subShapes", "SubShapes", "view", "View"]);
};
Shape.prototype.load = function (options) {
return _load(this, options);
};
Shape.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
Shape.prototype._handleIdResult = function (value) {
_super.prototype._handleIdResult.call(this, value);
if (_isNullOrUndefined(value)) {
return;
}
if (!_isUndefined(value["Id"])) {
this._I = value["Id"];
}
};
Shape.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
Shape.prototype.toJSON = function () {
return _toJson(this, {
"id": this._I,
"isBoundToData": this._Is,
"name": this._N,
"select": this._S,
"text": this._T
}, {
"comments": this._C,
"hyperlinks": this._H,
"shapeDataItems": this._Sh,
"subShapes": this._Su,
"view": this._V
});
};
Shape.prototype.setMockData = function (data) {
_setMockData(this, data);
};
Shape.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return Shape;
}(OfficeExtension.ClientObject));
Visio.Shape = Shape;
var _typeShapeView = "ShapeView";
var ShapeView = (function (_super) {
__extends(ShapeView, _super);
function ShapeView() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(ShapeView.prototype, "_className", {
get: function () {
return "ShapeView";
},
enumerable: true,
configurable: true
});
Object.defineProperty(ShapeView.prototype, "_scalarPropertyNames", {
get: function () {
return ["highlight"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(ShapeView.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["Highlight"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(ShapeView.prototype, "_scalarPropertyUpdateable", {
get: function () {
return [true];
},
enumerable: true,
configurable: true
});
Object.defineProperty(ShapeView.prototype, "highlight", {
get: function () {
_throwIfNotLoaded("highlight", this._H, _typeShapeView, this._isNull);
return this._H;
},
set: function (value) {
this._H = value;
_invokeSetProperty(this, "Highlight", value, 0);
},
enumerable: true,
configurable: true
});
ShapeView.prototype.set = function (properties, options) {
this._recursivelySet(properties, options, ["highlight"], [], []);
};
ShapeView.prototype.update = function (properties) {
this._recursivelyUpdate(properties);
};
ShapeView.prototype.addOverlay = function (OverlayType, Content, OverlayHorizontalAlignment, OverlayVerticalAlignment, Width, Height) {
return _invokeMethod(this, "AddOverlay", 1, [OverlayType, Content, OverlayHorizontalAlignment, OverlayVerticalAlignment, Width, Height], 4, 0);
};
ShapeView.prototype.removeOverlay = function (OverlayId) {
_invokeMethod(this, "RemoveOverlay", 1, [OverlayId], 4, 0);
};
ShapeView.prototype.showOverlay = function (overlayId, show) {
_invokeMethod(this, "ShowOverlay", 1, [overlayId, show], 4, 0);
};
ShapeView.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["Highlight"])) {
this._H = obj["Highlight"];
}
};
ShapeView.prototype.load = function (options) {
return _load(this, options);
};
ShapeView.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
ShapeView.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
ShapeView.prototype.toJSON = function () {
return _toJson(this, {
"highlight": this._H
}, {});
};
ShapeView.prototype.setMockData = function (data) {
_setMockData(this, data);
};
ShapeView.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return ShapeView;
}(OfficeExtension.ClientObject));
Visio.ShapeView = ShapeView;
var _typeShapeDataItemCollection = "ShapeDataItemCollection";
var ShapeDataItemCollection = (function (_super) {
__extends(ShapeDataItemCollection, _super);
function ShapeDataItemCollection() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(ShapeDataItemCollection.prototype, "_className", {
get: function () {
return "ShapeDataItemCollection";
},
enumerable: true,
configurable: true
});
Object.defineProperty(ShapeDataItemCollection.prototype, "_isCollection", {
get: function () {
return true;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ShapeDataItemCollection.prototype, "items", {
get: function () {
_throwIfNotLoaded("items", this.m__items, _typeShapeDataItemCollection, this._isNull);
return this.m__items;
},
enumerable: true,
configurable: true
});
ShapeDataItemCollection.prototype.getCount = function () {
return _invokeMethod(this, "GetCount", 1, [], 4, 0);
};
ShapeDataItemCollection.prototype.getItem = function (key) {
return _createIndexerObject(Visio.ShapeDataItem, this, [key]);
};
ShapeDataItemCollection.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isNullOrUndefined(obj[OfficeExtension.Constants.items])) {
this.m__items = [];
var _data = obj[OfficeExtension.Constants.items];
for (var i = 0; i < _data.length; i++) {
var _item = _createChildItemObject(Visio.ShapeDataItem, true, this, _data[i], i);
_item._handleResult(_data[i]);
this.m__items.push(_item);
}
}
};
ShapeDataItemCollection.prototype.load = function (options) {
return _load(this, options);
};
ShapeDataItemCollection.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
ShapeDataItemCollection.prototype._handleRetrieveResult = function (value, result) {
var _this = this;
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result, function (childItemData, index) { return _createChildItemObject(Visio.ShapeDataItem, true, _this, childItemData, index); });
};
ShapeDataItemCollection.prototype.toJSON = function () {
return _toJson(this, {}, {}, this.m__items);
};
ShapeDataItemCollection.prototype.setMockData = function (data) {
var _this = this;
_setMockData(this, data, function (childItemData, index) { return _createChildItemObject(Visio.ShapeDataItem, true, _this, childItemData, index); }, function (items) { return _this.m__items = items; });
};
return ShapeDataItemCollection;
}(OfficeExtension.ClientObject));
Visio.ShapeDataItemCollection = ShapeDataItemCollection;
var _typeShapeDataItem = "ShapeDataItem";
var ShapeDataItem = (function (_super) {
__extends(ShapeDataItem, _super);
function ShapeDataItem() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(ShapeDataItem.prototype, "_className", {
get: function () {
return "ShapeDataItem";
},
enumerable: true,
configurable: true
});
Object.defineProperty(ShapeDataItem.prototype, "_scalarPropertyNames", {
get: function () {
return ["label", "value", "format", "formattedValue"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(ShapeDataItem.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["Label", "Value", "Format", "FormattedValue"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(ShapeDataItem.prototype, "format", {
get: function () {
_throwIfNotLoaded("format", this._F, _typeShapeDataItem, this._isNull);
return this._F;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ShapeDataItem.prototype, "formattedValue", {
get: function () {
_throwIfNotLoaded("formattedValue", this._Fo, _typeShapeDataItem, this._isNull);
return this._Fo;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ShapeDataItem.prototype, "label", {
get: function () {
_throwIfNotLoaded("label", this._L, _typeShapeDataItem, this._isNull);
return this._L;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ShapeDataItem.prototype, "value", {
get: function () {
_throwIfNotLoaded("value", this._V, _typeShapeDataItem, this._isNull);
return this._V;
},
enumerable: true,
configurable: true
});
ShapeDataItem.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["Format"])) {
this._F = obj["Format"];
}
if (!_isUndefined(obj["FormattedValue"])) {
this._Fo = obj["FormattedValue"];
}
if (!_isUndefined(obj["Label"])) {
this._L = obj["Label"];
}
if (!_isUndefined(obj["Value"])) {
this._V = obj["Value"];
}
};
ShapeDataItem.prototype.load = function (options) {
return _load(this, options);
};
ShapeDataItem.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
ShapeDataItem.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
ShapeDataItem.prototype.toJSON = function () {
return _toJson(this, {
"format": this._F,
"formattedValue": this._Fo,
"label": this._L,
"value": this._V
}, {});
};
ShapeDataItem.prototype.setMockData = function (data) {
_setMockData(this, data);
};
ShapeDataItem.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return ShapeDataItem;
}(OfficeExtension.ClientObject));
Visio.ShapeDataItem = ShapeDataItem;
var _typeHyperlinkCollection = "HyperlinkCollection";
var HyperlinkCollection = (function (_super) {
__extends(HyperlinkCollection, _super);
function HyperlinkCollection() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(HyperlinkCollection.prototype, "_className", {
get: function () {
return "HyperlinkCollection";
},
enumerable: true,
configurable: true
});
Object.defineProperty(HyperlinkCollection.prototype, "_isCollection", {
get: function () {
return true;
},
enumerable: true,
configurable: true
});
Object.defineProperty(HyperlinkCollection.prototype, "items", {
get: function () {
_throwIfNotLoaded("items", this.m__items, _typeHyperlinkCollection, this._isNull);
return this.m__items;
},
enumerable: true,
configurable: true
});
HyperlinkCollection.prototype.getCount = function () {
return _invokeMethod(this, "GetCount", 1, [], 4, 0);
};
HyperlinkCollection.prototype.getItem = function (Key) {
return _createIndexerObject(Visio.Hyperlink, this, [Key]);
};
HyperlinkCollection.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isNullOrUndefined(obj[OfficeExtension.Constants.items])) {
this.m__items = [];
var _data = obj[OfficeExtension.Constants.items];
for (var i = 0; i < _data.length; i++) {
var _item = _createChildItemObject(Visio.Hyperlink, true, this, _data[i], i);
_item._handleResult(_data[i]);
this.m__items.push(_item);
}
}
};
HyperlinkCollection.prototype.load = function (options) {
return _load(this, options);
};
HyperlinkCollection.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
HyperlinkCollection.prototype._handleRetrieveResult = function (value, result) {
var _this = this;
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result, function (childItemData, index) { return _createChildItemObject(Visio.Hyperlink, true, _this, childItemData, index); });
};
HyperlinkCollection.prototype.toJSON = function () {
return _toJson(this, {}, {}, this.m__items);
};
HyperlinkCollection.prototype.setMockData = function (data) {
var _this = this;
_setMockData(this, data, function (childItemData, index) { return _createChildItemObject(Visio.Hyperlink, true, _this, childItemData, index); }, function (items) { return _this.m__items = items; });
};
return HyperlinkCollection;
}(OfficeExtension.ClientObject));
Visio.HyperlinkCollection = HyperlinkCollection;
var _typeHyperlink = "Hyperlink";
var Hyperlink = (function (_super) {
__extends(Hyperlink, _super);
function Hyperlink() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(Hyperlink.prototype, "_className", {
get: function () {
return "Hyperlink";
},
enumerable: true,
configurable: true
});
Object.defineProperty(Hyperlink.prototype, "_scalarPropertyNames", {
get: function () {
return ["address", "subAddress", "description", "extraInfo"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Hyperlink.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["Address", "SubAddress", "Description", "ExtraInfo"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Hyperlink.prototype, "address", {
get: function () {
_throwIfNotLoaded("address", this._A, _typeHyperlink, this._isNull);
return this._A;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Hyperlink.prototype, "description", {
get: function () {
_throwIfNotLoaded("description", this._D, _typeHyperlink, this._isNull);
return this._D;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Hyperlink.prototype, "extraInfo", {
get: function () {
_throwIfNotLoaded("extraInfo", this._E, _typeHyperlink, this._isNull);
return this._E;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Hyperlink.prototype, "subAddress", {
get: function () {
_throwIfNotLoaded("subAddress", this._S, _typeHyperlink, this._isNull);
return this._S;
},
enumerable: true,
configurable: true
});
Hyperlink.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["Address"])) {
this._A = obj["Address"];
}
if (!_isUndefined(obj["Description"])) {
this._D = obj["Description"];
}
if (!_isUndefined(obj["ExtraInfo"])) {
this._E = obj["ExtraInfo"];
}
if (!_isUndefined(obj["SubAddress"])) {
this._S = obj["SubAddress"];
}
};
Hyperlink.prototype.load = function (options) {
return _load(this, options);
};
Hyperlink.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
Hyperlink.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
Hyperlink.prototype.toJSON = function () {
return _toJson(this, {
"address": this._A,
"description": this._D,
"extraInfo": this._E,
"subAddress": this._S
}, {});
};
Hyperlink.prototype.setMockData = function (data) {
_setMockData(this, data);
};
Hyperlink.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return Hyperlink;
}(OfficeExtension.ClientObject));
Visio.Hyperlink = Hyperlink;
var _typeCommentCollection = "CommentCollection";
var CommentCollection = (function (_super) {
__extends(CommentCollection, _super);
function CommentCollection() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(CommentCollection.prototype, "_className", {
get: function () {
return "CommentCollection";
},
enumerable: true,
configurable: true
});
Object.defineProperty(CommentCollection.prototype, "_isCollection", {
get: function () {
return true;
},
enumerable: true,
configurable: true
});
Object.defineProperty(CommentCollection.prototype, "items", {
get: function () {
_throwIfNotLoaded("items", this.m__items, _typeCommentCollection, this._isNull);
return this.m__items;
},
enumerable: true,
configurable: true
});
CommentCollection.prototype.getCount = function () {
return _invokeMethod(this, "GetCount", 1, [], 4, 0);
};
CommentCollection.prototype.getItem = function (key) {
return _createIndexerObject(Visio.Comment, this, [key]);
};
CommentCollection.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isNullOrUndefined(obj[OfficeExtension.Constants.items])) {
this.m__items = [];
var _data = obj[OfficeExtension.Constants.items];
for (var i = 0; i < _data.length; i++) {
var _item = _createChildItemObject(Visio.Comment, true, this, _data[i], i);
_item._handleResult(_data[i]);
this.m__items.push(_item);
}
}
};
CommentCollection.prototype.load = function (options) {
return _load(this, options);
};
CommentCollection.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
CommentCollection.prototype._handleRetrieveResult = function (value, result) {
var _this = this;
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result, function (childItemData, index) { return _createChildItemObject(Visio.Comment, true, _this, childItemData, index); });
};
CommentCollection.prototype.toJSON = function () {
return _toJson(this, {}, {}, this.m__items);
};
CommentCollection.prototype.setMockData = function (data) {
var _this = this;
_setMockData(this, data, function (childItemData, index) { return _createChildItemObject(Visio.Comment, true, _this, childItemData, index); }, function (items) { return _this.m__items = items; });
};
return CommentCollection;
}(OfficeExtension.ClientObject));
Visio.CommentCollection = CommentCollection;
var _typeComment = "Comment";
var Comment = (function (_super) {
__extends(Comment, _super);
function Comment() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(Comment.prototype, "_className", {
get: function () {
return "Comment";
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "_scalarPropertyNames", {
get: function () {
return ["author", "text", "date"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["Author", "Text", "Date"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "_scalarPropertyUpdateable", {
get: function () {
return [true, true, true];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "author", {
get: function () {
_throwIfNotLoaded("author", this._A, _typeComment, this._isNull);
return this._A;
},
set: function (value) {
this._A = value;
_invokeSetProperty(this, "Author", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "date", {
get: function () {
_throwIfNotLoaded("date", this._D, _typeComment, this._isNull);
return this._D;
},
set: function (value) {
this._D = value;
_invokeSetProperty(this, "Date", value, 0);
},
enumerable: true,
configurable: true
});
Object.defineProperty(Comment.prototype, "text", {
get: function () {
_throwIfNotLoaded("text", this._T, _typeComment, this._isNull);
return this._T;
},
set: function (value) {
this._T = value;
_invokeSetProperty(this, "Text", value, 0);
},
enumerable: true,
configurable: true
});
Comment.prototype.set = function (properties, options) {
this._recursivelySet(properties, options, ["author", "text", "date"], [], []);
};
Comment.prototype.update = function (properties) {
this._recursivelyUpdate(properties);
};
Comment.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["Author"])) {
this._A = obj["Author"];
}
if (!_isUndefined(obj["Date"])) {
this._D = obj["Date"];
}
if (!_isUndefined(obj["Text"])) {
this._T = obj["Text"];
}
};
Comment.prototype.load = function (options) {
return _load(this, options);
};
Comment.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
Comment.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
Comment.prototype.toJSON = function () {
return _toJson(this, {
"author": this._A,
"date": this._D,
"text": this._T
}, {});
};
Comment.prototype.setMockData = function (data) {
_setMockData(this, data);
};
Comment.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return Comment;
}(OfficeExtension.ClientObject));
Visio.Comment = Comment;
var _typeSelection = "Selection";
var Selection = (function (_super) {
__extends(Selection, _super);
function Selection() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(Selection.prototype, "_className", {
get: function () {
return "Selection";
},
enumerable: true,
configurable: true
});
Object.defineProperty(Selection.prototype, "_navigationPropertyNames", {
get: function () {
return ["shapes"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(Selection.prototype, "shapes", {
get: function () {
if (!this._S) {
this._S = _createPropertyObject(Visio.ShapeCollection, this, "Shapes", true, 4);
}
return this._S;
},
enumerable: true,
configurable: true
});
Selection.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
_handleNavigationPropertyResults(this, obj, ["shapes", "Shapes"]);
};
Selection.prototype.load = function (options) {
return _load(this, options);
};
Selection.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
Selection.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
Selection.prototype.toJSON = function () {
return _toJson(this, {}, {
"shapes": this._S
});
};
return Selection;
}(OfficeExtension.ClientObject));
Visio.Selection = Selection;
var _typeDataVisualizerDiagramCollection = "DataVisualizerDiagramCollection";
var DataVisualizerDiagramCollection = (function (_super) {
__extends(DataVisualizerDiagramCollection, _super);
function DataVisualizerDiagramCollection() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(DataVisualizerDiagramCollection.prototype, "_className", {
get: function () {
return "DataVisualizerDiagramCollection";
},
enumerable: true,
configurable: true
});
Object.defineProperty(DataVisualizerDiagramCollection.prototype, "_isCollection", {
get: function () {
return true;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DataVisualizerDiagramCollection.prototype, "items", {
get: function () {
_throwIfNotLoaded("items", this.m__items, _typeDataVisualizerDiagramCollection, this._isNull);
return this.m__items;
},
enumerable: true,
configurable: true
});
DataVisualizerDiagramCollection.prototype.add = function (data, settings) {
return _createMethodObject(Visio.DataVisualizerDiagram, this, "Add", 1, [data, settings], false, true, null, 4);
};
DataVisualizerDiagramCollection.prototype.addPreferred = function (data, diagramType) {
return _createMethodObject(Visio.DataVisualizerDiagram, this, "AddPreferred", 0, [data, diagramType], false, false, null, 0);
};
DataVisualizerDiagramCollection.prototype.getCount = function () {
return _invokeMethod(this, "GetCount", 1, [], 4, 0);
};
DataVisualizerDiagramCollection.prototype.getItem = function (key) {
return _createIndexerObject(Visio.DataVisualizerDiagram, this, [key]);
};
DataVisualizerDiagramCollection.prototype.getItemAt = function (index) {
return _createMethodObject(Visio.DataVisualizerDiagram, this, "GetItemAt", 1, [index], false, false, null, 4);
};
DataVisualizerDiagramCollection.prototype.getItemOrNullObject = function (key) {
return _createMethodObject(Visio.DataVisualizerDiagram, this, "GetItemOrNullObject", 1, [key], false, false, null, 4);
};
DataVisualizerDiagramCollection.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isNullOrUndefined(obj[OfficeExtension.Constants.items])) {
this.m__items = [];
var _data = obj[OfficeExtension.Constants.items];
for (var i = 0; i < _data.length; i++) {
var _item = _createChildItemObject(Visio.DataVisualizerDiagram, true, this, _data[i], i);
_item._handleResult(_data[i]);
this.m__items.push(_item);
}
}
};
DataVisualizerDiagramCollection.prototype.load = function (options) {
return _load(this, options);
};
DataVisualizerDiagramCollection.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
DataVisualizerDiagramCollection.prototype._handleRetrieveResult = function (value, result) {
var _this = this;
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result, function (childItemData, index) { return _createChildItemObject(Visio.DataVisualizerDiagram, true, _this, childItemData, index); });
};
DataVisualizerDiagramCollection.prototype.toJSON = function () {
return _toJson(this, {}, {}, this.m__items);
};
DataVisualizerDiagramCollection.prototype.setMockData = function (data) {
var _this = this;
_setMockData(this, data, function (childItemData, index) { return _createChildItemObject(Visio.DataVisualizerDiagram, true, _this, childItemData, index); }, function (items) { return _this.m__items = items; });
};
return DataVisualizerDiagramCollection;
}(OfficeExtension.ClientObject));
Visio.DataVisualizerDiagramCollection = DataVisualizerDiagramCollection;
var _typeDataVisualizerDiagram = "DataVisualizerDiagram";
var DataVisualizerDiagram = (function (_super) {
__extends(DataVisualizerDiagram, _super);
function DataVisualizerDiagram() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(DataVisualizerDiagram.prototype, "_className", {
get: function () {
return "DataVisualizerDiagram";
},
enumerable: true,
configurable: true
});
Object.defineProperty(DataVisualizerDiagram.prototype, "_scalarPropertyNames", {
get: function () {
return ["id", "mappings", "type", "dataHeaders"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(DataVisualizerDiagram.prototype, "_scalarPropertyOriginalNames", {
get: function () {
return ["ID", "Mappings", "Type", "DataHeaders"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(DataVisualizerDiagram.prototype, "_navigationPropertyNames", {
get: function () {
return ["page"];
},
enumerable: true,
configurable: true
});
Object.defineProperty(DataVisualizerDiagram.prototype, "page", {
get: function () {
if (!this._P) {
this._P = _createPropertyObject(Visio.Page, this, "Page", false, 4);
}
return this._P;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DataVisualizerDiagram.prototype, "dataHeaders", {
get: function () {
_throwIfNotLoaded("dataHeaders", this._D, _typeDataVisualizerDiagram, this._isNull);
return this._D;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DataVisualizerDiagram.prototype, "id", {
get: function () {
_throwIfNotLoaded("id", this._I, _typeDataVisualizerDiagram, this._isNull);
return this._I;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DataVisualizerDiagram.prototype, "mappings", {
get: function () {
_throwIfNotLoaded("mappings", this._M, _typeDataVisualizerDiagram, this._isNull);
return this._M;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DataVisualizerDiagram.prototype, "type", {
get: function () {
_throwIfNotLoaded("type", this._T, _typeDataVisualizerDiagram, this._isNull);
return this._T;
},
enumerable: true,
configurable: true
});
DataVisualizerDiagram.prototype.set = function (properties, options) {
this._recursivelySet(properties, options, [], ["page"], []);
};
DataVisualizerDiagram.prototype["delete"] = function () {
_invokeMethod(this, "Delete", 1, [], 4, 0);
};
DataVisualizerDiagram.prototype.getDataColumnValuesAsString = function (columnName) {
return _invokeMethod(this, "GetDataColumnValuesAsString", 1, [columnName], 4, 0);
};
DataVisualizerDiagram.prototype.setConnection = function (connectionInfo) {
_invokeMethod(this, "SetConnection", 1, [connectionInfo], 4, 0);
};
DataVisualizerDiagram.prototype.update = function (data, mappings, ignoreConflicts) {
_invokeMethod(this, "Update", 1, [data, mappings, ignoreConflicts], 4, 0);
};
DataVisualizerDiagram.prototype.updateMappings = function (mappings) {
_invokeMethod(this, "UpdateMappings", 1, [mappings], 4, 0);
};
DataVisualizerDiagram.prototype._handleResult = function (value) {
_super.prototype._handleResult.call(this, value);
if (_isNullOrUndefined(value))
return;
var obj = value;
_fixObjectPathIfNecessary(this, obj);
if (!_isUndefined(obj["DataHeaders"])) {
this._D = obj["DataHeaders"];
}
if (!_isUndefined(obj["ID"])) {
this._I = obj["ID"];
}
if (!_isUndefined(obj["Mappings"])) {
this._M = obj["Mappings"];
}
if (!_isUndefined(obj["Type"])) {
this._T = obj["Type"];
}
_handleNavigationPropertyResults(this, obj, ["page", "Page"]);
};
DataVisualizerDiagram.prototype.load = function (options) {
return _load(this, options);
};
DataVisualizerDiagram.prototype.retrieve = function (option) {
return _retrieve(this, option);
};
DataVisualizerDiagram.prototype._handleRetrieveResult = function (value, result) {
_super.prototype._handleRetrieveResult.call(this, value, result);
_processRetrieveResult(this, value, result);
};
DataVisualizerDiagram.prototype.toJSON = function () {
return _toJson(this, {
"dataHeaders": this._D,
"id": this._I,
"mappings": this._M,
"type": this._T
}, {
"page": this._P
});
};
DataVisualizerDiagram.prototype.setMockData = function (data) {
_setMockData(this, data);
};
DataVisualizerDiagram.prototype.ensureUnchanged = function (data) {
_invokeEnsureUnchanged(this, data);
return;
};
return DataVisualizerDiagram;
}(OfficeExtension.ClientObject));
Visio.DataVisualizerDiagram = DataVisualizerDiagram;
var OverlayHorizontalAlignment;
(function (OverlayHorizontalAlignment) {
OverlayHorizontalAlignment["left"] = "Left";
OverlayHorizontalAlignment["center"] = "Center";
OverlayHorizontalAlignment["right"] = "Right";
})(OverlayHorizontalAlignment = Visio.OverlayHorizontalAlignment || (Visio.OverlayHorizontalAlignment = {}));
var OverlayVerticalAlignment;
(function (OverlayVerticalAlignment) {
OverlayVerticalAlignment["top"] = "Top";
OverlayVerticalAlignment["middle"] = "Middle";
OverlayVerticalAlignment["bottom"] = "Bottom";
})(OverlayVerticalAlignment = Visio.OverlayVerticalAlignment || (Visio.OverlayVerticalAlignment = {}));
var OverlayType;
(function (OverlayType) {
OverlayType["text"] = "Text";
OverlayType["image"] = "Image";
OverlayType["html"] = "Html";
})(OverlayType = Visio.OverlayType || (Visio.OverlayType = {}));
var ToolBarType;
(function (ToolBarType) {
ToolBarType["commandBar"] = "CommandBar";
ToolBarType["pageNavigationBar"] = "PageNavigationBar";
ToolBarType["statusBar"] = "StatusBar";
})(ToolBarType = Visio.ToolBarType || (Visio.ToolBarType = {}));
var DataVisualizerDiagramResultType;
(function (DataVisualizerDiagramResultType) {
DataVisualizerDiagramResultType["success"] = "Success";
DataVisualizerDiagramResultType["unexpected"] = "Unexpected";
DataVisualizerDiagramResultType["validationError"] = "ValidationError";
DataVisualizerDiagramResultType["conflictError"] = "ConflictError";
})(DataVisualizerDiagramResultType = Visio.DataVisualizerDiagramResultType || (Visio.DataVisualizerDiagramResultType = {}));
var DataVisualizerDiagramOperationType;
(function (DataVisualizerDiagramOperationType) {
DataVisualizerDiagramOperationType["unknown"] = "Unknown";
DataVisualizerDiagramOperationType["create"] = "Create";
DataVisualizerDiagramOperationType["updateMappings"] = "UpdateMappings";
DataVisualizerDiagramOperationType["updateData"] = "UpdateData";
DataVisualizerDiagramOperationType["update"] = "Update";
DataVisualizerDiagramOperationType["delete"] = "Delete";
})(DataVisualizerDiagramOperationType = Visio.DataVisualizerDiagramOperationType || (Visio.DataVisualizerDiagramOperationType = {}));
var DataVisualizerDiagramType;
(function (DataVisualizerDiagramType) {
DataVisualizerDiagramType["unknown"] = "Unknown";
DataVisualizerDiagramType["basicFlowchart"] = "BasicFlowchart";
DataVisualizerDiagramType["crossFunctionalFlowchart_Horizontal"] = "CrossFunctionalFlowchart_Horizontal";
DataVisualizerDiagramType["crossFunctionalFlowchart_Vertical"] = "CrossFunctionalFlowchart_Vertical";
DataVisualizerDiagramType["audit"] = "Audit";
DataVisualizerDiagramType["orgChart"] = "OrgChart";
DataVisualizerDiagramType["network"] = "Network";
})(DataVisualizerDiagramType = Visio.DataVisualizerDiagramType || (Visio.DataVisualizerDiagramType = {}));
var ColumnType;
(function (ColumnType) {
ColumnType["unknown"] = "Unknown";
ColumnType["string"] = "String";
ColumnType["number"] = "Number";
ColumnType["date"] = "Date";
ColumnType["currency"] = "Currency";
})(ColumnType = Visio.ColumnType || (Visio.ColumnType = {}));
var DataSourceType;
(function (DataSourceType) {
DataSourceType["unknown"] = "Unknown";
DataSourceType["excel"] = "Excel";
})(DataSourceType = Visio.DataSourceType || (Visio.DataSourceType = {}));
var CrossFunctionalFlowchartOrientation;
(function (CrossFunctionalFlowchartOrientation) {
CrossFunctionalFlowchartOrientation["horizontal"] = "Horizontal";
CrossFunctionalFlowchartOrientation["vertical"] = "Vertical";
})(CrossFunctionalFlowchartOrientation = Visio.CrossFunctionalFlowchartOrientation || (Visio.CrossFunctionalFlowchartOrientation = {}));
var LayoutVariant;
(function (LayoutVariant) {
LayoutVariant["unknown"] = "Unknown";
LayoutVariant["pageDefault"] = "PageDefault";
LayoutVariant["flowchart_TopToBottom"] = "Flowchart_TopToBottom";
LayoutVariant["flowchart_BottomToTop"] = "Flowchart_BottomToTop";
LayoutVariant["flowchart_LeftToRight"] = "Flowchart_LeftToRight";
LayoutVariant["flowchart_RightToLeft"] = "Flowchart_RightToLeft";
LayoutVariant["wideTree_DownThenRight"] = "WideTree_DownThenRight";
LayoutVariant["wideTree_DownThenLeft"] = "WideTree_DownThenLeft";
LayoutVariant["wideTree_RightThenDown"] = "WideTree_RightThenDown";
LayoutVariant["wideTree_LeftThenDown"] = "WideTree_LeftThenDown";
})(LayoutVariant = Visio.LayoutVariant || (Visio.LayoutVariant = {}));
var DataValidationErrorType;
(function (DataValidationErrorType) {
DataValidationErrorType["none"] = "None";
DataValidationErrorType["columnNotMapped"] = "ColumnNotMapped";
DataValidationErrorType["uniqueIdColumnError"] = "UniqueIdColumnError";
DataValidationErrorType["swimlaneColumnError"] = "SwimlaneColumnError";
DataValidationErrorType["delimiterError"] = "DelimiterError";
DataValidationErrorType["connectorColumnError"] = "ConnectorColumnError";
DataValidationErrorType["connectorColumnMappedElsewhere"] = "ConnectorColumnMappedElsewhere";
DataValidationErrorType["connectorLabelColumnMappedElsewhere"] = "ConnectorLabelColumnMappedElsewhere";
DataValidationErrorType["connectorColumnAndConnectorLabelMappedElsewhere"] = "ConnectorColumnAndConnectorLabelMappedElsewhere";
})(DataValidationErrorType = Visio.DataValidationErrorType || (Visio.DataValidationErrorType = {}));
var ConnectorDirection;
(function (ConnectorDirection) {
ConnectorDirection["fromTarget"] = "FromTarget";
ConnectorDirection["toTarget"] = "ToTarget";
})(ConnectorDirection = Visio.ConnectorDirection || (Visio.ConnectorDirection = {}));
var TaskPaneType;
(function (TaskPaneType) {
TaskPaneType["none"] = "None";
TaskPaneType["dataVisualizerProcessMappings"] = "DataVisualizerProcessMappings";
TaskPaneType["dataVisualizerOrgChartMappings"] = "DataVisualizerOrgChartMappings";
})(TaskPaneType = Visio.TaskPaneType || (Visio.TaskPaneType = {}));
var EventType;
(function (EventType) {
EventType["dataVisualizerDiagramOperationCompleted"] = "DataVisualizerDiagramOperationCompleted";
})(EventType = Visio.EventType || (Visio.EventType = {}));
var ErrorCodes;
(function (ErrorCodes) {
ErrorCodes["accessDenied"] = "AccessDenied";
ErrorCodes["generalException"] = "GeneralException";
ErrorCodes["invalidArgument"] = "InvalidArgument";
ErrorCodes["itemNotFound"] = "ItemNotFound";
ErrorCodes["notImplemented"] = "NotImplemented";
ErrorCodes["unsupportedOperation"] = "UnsupportedOperation";
})(ErrorCodes = Visio.ErrorCodes || (Visio.ErrorCodes = {}));
var Interfaces;
(function (Interfaces) {
})(Interfaces = Visio.Interfaces || (Visio.Interfaces = {}));
})(Visio || (Visio = {}));
Object.defineProperty(OfficeExtension.SessionBase, "_overrideSession", {
get: function () {
if (this._overrideSessionInternal) {
return this._overrideSessionInternal;
}
if (OfficeExtension.ClientRequestContext) {
return (OfficeExtension.ClientRequestContext)._overrideSession;
}
return undefined;
},
set: function (value) {
this._overrideSessionInternal = value;
},
enumerable: true,
configurable: true
});
var Visio;
(function (Visio) {
var RequestContext = (function (_super) {
__extends(RequestContext, _super);
function RequestContext(url) {
var _this = _super.call(this, url) || this;
_this.m_document = new Visio.Document(_this, OfficeExtension.ObjectPathFactory.createGlobalObjectObjectPath(_this));
_this._rootObject = _this.m_document;
return _this;
}
Object.defineProperty(RequestContext.prototype, "document", {
get: function () {
return this.m_document;
},
enumerable: true,
configurable: true
});
return RequestContext;
}(OfficeCore.RequestContext));
Visio.RequestContext = RequestContext;
function run(arg1, arg2, arg3) {
return OfficeExtension.ClientRequestContext._runBatch("Visio.run", arguments, function (requestInfo) {
var ret = new Visio.RequestContext(requestInfo);
return ret;
});
}
Visio.run = run;
})(Visio || (Visio = {}));
OfficeExtension.Utility._doApiNotSupportedCheck = true;