@microsoft/teams-js 2.0.0-beta.4-dev.19 → 2.0.0-beta.4-dev.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1063,10 +1063,10 @@ __webpack_require__.d(__webpack_exports__, {
1063
1063
  "appInitialization": () => (/* reexport */ appInitialization),
1064
1064
  "appInstallDialog": () => (/* reexport */ appInstallDialog),
1065
1065
  "authentication": () => (/* reexport */ authentication),
1066
- "bot": () => (/* reexport */ bot),
1067
1066
  "calendar": () => (/* reexport */ calendar),
1068
1067
  "call": () => (/* reexport */ call),
1069
1068
  "chat": () => (/* reexport */ chat),
1069
+ "conversation": () => (/* reexport */ conversation),
1070
1070
  "dialog": () => (/* reexport */ dialog),
1071
1071
  "enablePrintCapability": () => (/* reexport */ enablePrintCapability),
1072
1072
  "executeDeepLink": () => (/* reexport */ executeDeepLink),
@@ -1121,7 +1121,7 @@ __webpack_require__.d(__webpack_exports__, {
1121
1121
  });
1122
1122
 
1123
1123
  ;// CONCATENATED MODULE: ./src/internal/constants.ts
1124
- var version = "2.0.0-beta.4-dev.19";
1124
+ var version = "2.0.0-beta.4-dev.22";
1125
1125
  /**
1126
1126
  * @hidden
1127
1127
  * The client version when all SDK APIs started to check platform compatibility for the APIs was 1.6.0.
@@ -1237,6 +1237,20 @@ var validOrigins = [
1237
1237
  * @internal
1238
1238
  */
1239
1239
  var userOriginUrlValidationRegExp = /^https:\/\//;
1240
+ /**
1241
+ * @hidden
1242
+ * The protocol used for deep links into Teams
1243
+ *
1244
+ * @internal
1245
+ */
1246
+ var teamsDeepLinkProtocol = 'https';
1247
+ /**
1248
+ * @hidden
1249
+ * The host used for deep links into Teams
1250
+ *
1251
+ * @internal
1252
+ */
1253
+ var teamsDeepLinkHost = 'teams.microsoft.com';
1240
1254
 
1241
1255
  ;// CONCATENATED MODULE: ./src/internal/globalVars.ts
1242
1256
  var GlobalVars = /** @class */ (function () {
@@ -1809,137 +1823,6 @@ function processAdditionalValidOrigins(validMessageOrigins) {
1809
1823
  GlobalVars.additionalValidOrigins = combinedOriginUrls;
1810
1824
  }
1811
1825
 
1812
- ;// CONCATENATED MODULE: ./src/public/runtime.ts
1813
- /* eslint-disable @typescript-eslint/ban-types */
1814
-
1815
- var runtime = {
1816
- apiVersion: 1,
1817
- supports: {
1818
- appInstallDialog: undefined,
1819
- bot: undefined,
1820
- calendar: undefined,
1821
- call: undefined,
1822
- chat: {
1823
- conversation: undefined,
1824
- },
1825
- dialog: {
1826
- bot: undefined,
1827
- update: undefined,
1828
- },
1829
- location: undefined,
1830
- logs: undefined,
1831
- mail: undefined,
1832
- media: undefined,
1833
- meeting: undefined,
1834
- meetingRoom: undefined,
1835
- menus: undefined,
1836
- monetization: undefined,
1837
- notifications: undefined,
1838
- pages: {
1839
- appButton: undefined,
1840
- tabs: undefined,
1841
- config: undefined,
1842
- backStack: undefined,
1843
- fullTrust: undefined,
1844
- },
1845
- people: undefined,
1846
- remoteCamera: undefined,
1847
- sharing: undefined,
1848
- teams: {
1849
- fullTrust: undefined,
1850
- },
1851
- teamsCore: undefined,
1852
- video: undefined,
1853
- },
1854
- };
1855
- var teamsRuntimeConfig = {
1856
- apiVersion: 1,
1857
- isLegacyTeams: true,
1858
- supports: {
1859
- appInstallDialog: {},
1860
- appEntity: {},
1861
- bot: {},
1862
- call: {},
1863
- chat: {
1864
- conversation: {},
1865
- },
1866
- dialog: {
1867
- bot: {},
1868
- update: {},
1869
- },
1870
- files: {},
1871
- location: {},
1872
- logs: {},
1873
- media: {},
1874
- meeting: {},
1875
- meetingRoom: {},
1876
- menus: {},
1877
- monetization: {},
1878
- notifications: {},
1879
- pages: {
1880
- appButton: {},
1881
- tabs: {},
1882
- config: {},
1883
- backStack: {},
1884
- fullTrust: {},
1885
- },
1886
- people: {},
1887
- remoteCamera: {},
1888
- sharing: {},
1889
- teams: {
1890
- fullTrust: {},
1891
- },
1892
- teamsCore: {},
1893
- video: {},
1894
- },
1895
- };
1896
- function applyRuntimeConfig(runtimeConfig) {
1897
- runtime = deepFreeze(runtimeConfig);
1898
- }
1899
-
1900
- ;// CONCATENATED MODULE: ./src/private/logs.ts
1901
-
1902
-
1903
-
1904
-
1905
- /**
1906
- * @hidden
1907
- * Namespace to interact with the logging part of the SDK.
1908
- * This object is used to send the app logs on demand to the host client
1909
- *
1910
- * Hide from docs
1911
- *
1912
- * @internal
1913
- */
1914
- var logs;
1915
- (function (logs) {
1916
- /**
1917
- * @hidden
1918
- * Hide from docs
1919
- * ------
1920
- * Registers a handler for getting app log
1921
- *
1922
- * @param handler - The handler to invoke to get the app log
1923
- */
1924
- function registerGetLogHandler(handler) {
1925
- ensureInitialized();
1926
- if (handler) {
1927
- registerHandler('log.request', function () {
1928
- var log = handler();
1929
- sendMessageToParent('log.receive', [log]);
1930
- });
1931
- }
1932
- else {
1933
- removeHandler('log.request');
1934
- }
1935
- }
1936
- logs.registerGetLogHandler = registerGetLogHandler;
1937
- function isSupported() {
1938
- return runtime.supports.logs ? true : false;
1939
- }
1940
- logs.isSupported = isSupported;
1941
- })(logs || (logs = {}));
1942
-
1943
1826
  ;// CONCATENATED MODULE: ./src/private/privateAPIs.ts
1944
1827
  /* eslint-disable @typescript-eslint/no-explicit-any */
1945
1828
 
@@ -1950,7 +1833,7 @@ var logs;
1950
1833
  * @internal
1951
1834
  */
1952
1835
  function initializePrivateApis() {
1953
- //Keeping this API for any future usage, wherein privateAPIs need to be initialized
1836
+ // To maintain backwards compatability, this function cannot be deleted as it is callable
1954
1837
  }
1955
1838
  /**
1956
1839
  * @hidden
@@ -2420,6 +2303,170 @@ var authentication;
2420
2303
  }
2421
2304
  })(authentication || (authentication = {}));
2422
2305
 
2306
+ ;// CONCATENATED MODULE: ./src/public/runtime.ts
2307
+ /* eslint-disable @typescript-eslint/ban-types */
2308
+ var __assign = (undefined && undefined.__assign) || function () {
2309
+ __assign = Object.assign || function(t) {
2310
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
2311
+ s = arguments[i];
2312
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
2313
+ t[p] = s[p];
2314
+ }
2315
+ return t;
2316
+ };
2317
+ return __assign.apply(this, arguments);
2318
+ };
2319
+
2320
+
2321
+
2322
+ var runtime = {
2323
+ apiVersion: 1,
2324
+ supports: {
2325
+ appInstallDialog: undefined,
2326
+ calendar: undefined,
2327
+ call: undefined,
2328
+ chat: {
2329
+ conversation: undefined,
2330
+ },
2331
+ dialog: {
2332
+ bot: undefined,
2333
+ update: undefined,
2334
+ },
2335
+ location: undefined,
2336
+ logs: undefined,
2337
+ mail: undefined,
2338
+ media: undefined,
2339
+ meeting: undefined,
2340
+ meetingRoom: undefined,
2341
+ menus: undefined,
2342
+ monetization: undefined,
2343
+ notifications: undefined,
2344
+ pages: {
2345
+ appButton: undefined,
2346
+ tabs: undefined,
2347
+ config: undefined,
2348
+ backStack: undefined,
2349
+ fullTrust: undefined,
2350
+ },
2351
+ people: undefined,
2352
+ remoteCamera: undefined,
2353
+ sharing: undefined,
2354
+ teams: {
2355
+ fullTrust: {
2356
+ joinedTeams: undefined,
2357
+ },
2358
+ },
2359
+ teamsCore: undefined,
2360
+ video: undefined,
2361
+ },
2362
+ };
2363
+ var teamsRuntimeConfig = {
2364
+ apiVersion: 1,
2365
+ isLegacyTeams: true,
2366
+ supports: {
2367
+ appInstallDialog: {},
2368
+ appEntity: {},
2369
+ call: {},
2370
+ chat: {
2371
+ conversation: {},
2372
+ },
2373
+ dialog: {
2374
+ bot: {},
2375
+ update: {},
2376
+ },
2377
+ files: {},
2378
+ logs: {},
2379
+ media: {},
2380
+ meeting: {},
2381
+ meetingRoom: {},
2382
+ menus: {},
2383
+ monetization: {},
2384
+ notifications: {},
2385
+ pages: {
2386
+ appButton: {},
2387
+ tabs: {},
2388
+ config: {},
2389
+ backStack: {},
2390
+ fullTrust: {},
2391
+ },
2392
+ remoteCamera: {},
2393
+ sharing: {},
2394
+ teams: {
2395
+ fullTrust: {},
2396
+ },
2397
+ teamsCore: {},
2398
+ video: {},
2399
+ },
2400
+ };
2401
+ var v1HostClientTypes = [
2402
+ HostClientType.desktop,
2403
+ HostClientType.web,
2404
+ HostClientType.android,
2405
+ HostClientType.ios,
2406
+ HostClientType.rigel,
2407
+ HostClientType.surfaceHub,
2408
+ HostClientType.teamsRoomsWindows,
2409
+ HostClientType.teamsRoomsAndroid,
2410
+ HostClientType.teamsPhones,
2411
+ HostClientType.teamsDisplays,
2412
+ ];
2413
+ var versionConstants = {
2414
+ '1.9.0': [
2415
+ {
2416
+ capability: { location: {} },
2417
+ hostClientTypes: v1HostClientTypes,
2418
+ },
2419
+ ],
2420
+ '2.0.0': [
2421
+ {
2422
+ capability: { people: {} },
2423
+ hostClientTypes: v1HostClientTypes,
2424
+ },
2425
+ ],
2426
+ '2.0.1': [
2427
+ {
2428
+ capability: { teams: { fullTrust: { joinedTeams: {} } } },
2429
+ hostClientTypes: [
2430
+ HostClientType.android,
2431
+ HostClientType.teamsRoomsAndroid,
2432
+ HostClientType.teamsPhones,
2433
+ HostClientType.teamsDisplays,
2434
+ ],
2435
+ },
2436
+ ],
2437
+ };
2438
+ /**
2439
+ * @internal
2440
+ *
2441
+ * Generates and returns a runtime configuration for host clients which are not on the latest host SDK version
2442
+ * and do not provide their own runtime config. Their supported capabilities are based on the highest
2443
+ * client SDK version that they can support.
2444
+ *
2445
+ * @param highestSupportedVersion - The highest client SDK version that the host client can support.
2446
+ * @returns runtime which describes the APIs supported by the legacy host client.
2447
+ */
2448
+ function generateBackCompatRuntimeConfig(highestSupportedVersion) {
2449
+ var newSupports = __assign({}, teamsRuntimeConfig.supports);
2450
+ Object.keys(versionConstants).forEach(function (versionNumber) {
2451
+ if (compareSDKVersions(highestSupportedVersion, versionNumber) >= 0) {
2452
+ versionConstants[versionNumber].forEach(function (capabilityReqs) {
2453
+ if (capabilityReqs.hostClientTypes.includes(GlobalVars.hostClientType)) {
2454
+ newSupports = __assign(__assign({}, newSupports), capabilityReqs.capability);
2455
+ }
2456
+ });
2457
+ }
2458
+ });
2459
+ var backCompatRuntimeConfig = {
2460
+ apiVersion: 1,
2461
+ isLegacyTeams: true,
2462
+ supports: newSupports,
2463
+ };
2464
+ return backCompatRuntimeConfig;
2465
+ }
2466
+ function applyRuntimeConfig(runtimeConfig) {
2467
+ runtime = deepFreeze(runtimeConfig);
2468
+ }
2469
+
2423
2470
  ;// CONCATENATED MODULE: ./src/public/menus.ts
2424
2471
 
2425
2472
 
@@ -2745,7 +2792,7 @@ var app_app;
2745
2792
  }
2746
2793
  catch (e) {
2747
2794
  if (e instanceof SyntaxError) {
2748
- applyRuntimeConfig(teamsRuntimeConfig);
2795
+ applyRuntimeConfig(generateBackCompatRuntimeConfig(GlobalVars.clientSupportedSDKVersion));
2749
2796
  }
2750
2797
  else {
2751
2798
  throw e;
@@ -4009,89 +4056,48 @@ function createMessageEvent(func, args) {
4009
4056
  };
4010
4057
  }
4011
4058
 
4012
- ;// CONCATENATED MODULE: ./src/private/bot.ts
4013
- /* eslint-disable @typescript-eslint/no-explicit-any */
4059
+ ;// CONCATENATED MODULE: ./src/private/logs.ts
4060
+
4014
4061
 
4015
4062
 
4016
4063
 
4017
4064
  /**
4018
4065
  * @hidden
4019
- * Namespace to interact with bots using the SDK.
4066
+ * Namespace to interact with the logging part of the SDK.
4067
+ * This object is used to send the app logs on demand to the host client
4020
4068
  *
4021
- * @alpha
4069
+ * Hide from docs
4070
+ *
4071
+ * @internal
4022
4072
  */
4023
- var bot;
4024
- (function (bot) {
4073
+ var logs;
4074
+ (function (logs) {
4025
4075
  /**
4026
4076
  * @hidden
4027
- * Hide from docs until release.
4077
+ * Hide from docs
4028
4078
  * ------
4029
- * Sends query to bot in order to retrieve data.
4030
- *
4031
- * @param botRequest - query to send to bot.
4032
- * @param onSuccess - callback to invoke when data is retrieved from bot
4033
- * @param onError - callback to invoke should an error occur
4034
- */
4035
- function sendQuery(botRequest, onSuccess, onError) {
4036
- ensureInitialized();
4037
- sendMessageToParent('bot.executeQuery', [botRequest], function (success, response) {
4038
- if (success) {
4039
- onSuccess(response);
4040
- }
4041
- else {
4042
- onError(response);
4043
- }
4044
- });
4045
- }
4046
- bot.sendQuery = sendQuery;
4047
- /**
4048
- * @hidden
4049
- * Hide from docs until release.
4050
- * -----
4051
- * Retrieves list of support commands from bot
4052
- *
4053
- * @param onSuccess - callback to invoke when data is retrieved from bot
4054
- * @param onError - callback to invoke should an error occur
4055
- */
4056
- function getSupportedCommands(onSuccess, onError) {
4057
- ensureInitialized();
4058
- sendMessageToParent('bot.getSupportedCommands', function (success, response) {
4059
- if (success) {
4060
- onSuccess(response);
4061
- }
4062
- else {
4063
- onError(response);
4064
- }
4065
- });
4066
- }
4067
- bot.getSupportedCommands = getSupportedCommands;
4068
- /**
4069
- * @hidden
4070
- * Hide from docs until release.
4071
- * -----
4072
- * Authenticates a user for json tab
4079
+ * Registers a handler for getting app log
4073
4080
  *
4074
- * @param authRequest - callback to invoke when data is retrieved from bot
4075
- * @param onSuccess - callback to invoke when user is authenticated
4076
- * @param onError - callback to invoke should an error occur
4081
+ * @param handler - The handler to invoke to get the app log
4077
4082
  */
4078
- function authenticate(authRequest, onSuccess, onError) {
4083
+ function registerGetLogHandler(handler) {
4079
4084
  ensureInitialized();
4080
- sendMessageToParent('bot.authenticate', [authRequest], function (success, response) {
4081
- if (success) {
4082
- onSuccess(response);
4083
- }
4084
- else {
4085
- onError(response);
4086
- }
4087
- });
4085
+ if (handler) {
4086
+ registerHandler('log.request', function () {
4087
+ var log = handler();
4088
+ sendMessageToParent('log.receive', [log]);
4089
+ });
4090
+ }
4091
+ else {
4092
+ removeHandler('log.request');
4093
+ }
4088
4094
  }
4089
- bot.authenticate = authenticate;
4095
+ logs.registerGetLogHandler = registerGetLogHandler;
4090
4096
  function isSupported() {
4091
- return runtime.supports.bot ? true : false;
4097
+ return runtime.supports.logs ? true : false;
4092
4098
  }
4093
- bot.isSupported = isSupported;
4094
- })(bot || (bot = {}));
4099
+ logs.isSupported = isSupported;
4100
+ })(logs || (logs = {}));
4095
4101
 
4096
4102
  ;// CONCATENATED MODULE: ./src/private/interfaces.ts
4097
4103
  /**
@@ -4135,7 +4141,7 @@ var UserSettingTypes;
4135
4141
  UserSettingTypes["theme"] = "theme";
4136
4142
  })(UserSettingTypes || (UserSettingTypes = {}));
4137
4143
 
4138
- ;// CONCATENATED MODULE: ./src/private/chat.ts
4144
+ ;// CONCATENATED MODULE: ./src/private/conversation.ts
4139
4145
 
4140
4146
 
4141
4147
 
@@ -4147,66 +4153,63 @@ var UserSettingTypes;
4147
4153
  *
4148
4154
  * @alpha
4149
4155
  */
4150
- var chat;
4151
- (function (chat) {
4156
+ var conversation;
4157
+ (function (conversation) {
4152
4158
  /**
4153
4159
  * @hidden
4154
4160
  * Hide from docs
4155
4161
  * --------------
4156
- * Allows the user to open a chat with a single user and allows
4157
- * for the user to specify the message they wish to send.
4158
- *
4159
- *@param openChatRequest: {@link OpenSingleChatRequest}- a request object that contains a user's email as well as an optional message parameter.
4162
+ * Allows the user to start or continue a conversation with each subentity inside the tab
4160
4163
  *
4161
4164
  * @returns Promise resolved upon completion
4162
4165
  */
4163
- function openChat(openChatRequest) {
4166
+ function openConversation(openConversationRequest) {
4164
4167
  return new Promise(function (resolve) {
4165
4168
  ensureInitialized(FrameContexts.content);
4166
- var sendPromise = sendAndHandleStatusAndReason('chat.openChat', {
4167
- members: openChatRequest.user,
4168
- message: openChatRequest.message,
4169
+ var sendPromise = sendAndHandleStatusAndReason('conversations.openConversation', {
4170
+ title: openConversationRequest.title,
4171
+ subEntityId: openConversationRequest.subEntityId,
4172
+ conversationId: openConversationRequest.conversationId,
4173
+ channelId: openConversationRequest.channelId,
4174
+ entityId: openConversationRequest.entityId,
4169
4175
  });
4176
+ if (openConversationRequest.onStartConversation) {
4177
+ registerHandler('startConversation', function (subEntityId, conversationId, channelId, entityId) {
4178
+ return openConversationRequest.onStartConversation({
4179
+ subEntityId: subEntityId,
4180
+ conversationId: conversationId,
4181
+ channelId: channelId,
4182
+ entityId: entityId,
4183
+ });
4184
+ });
4185
+ }
4186
+ if (openConversationRequest.onCloseConversation) {
4187
+ registerHandler('closeConversation', function (subEntityId, conversationId, channelId, entityId) {
4188
+ return openConversationRequest.onCloseConversation({
4189
+ subEntityId: subEntityId,
4190
+ conversationId: conversationId,
4191
+ channelId: channelId,
4192
+ entityId: entityId,
4193
+ });
4194
+ });
4195
+ }
4170
4196
  resolve(sendPromise);
4171
4197
  });
4172
4198
  }
4173
- chat.openChat = openChat;
4199
+ conversation.openConversation = openConversation;
4174
4200
  /**
4175
4201
  * @hidden
4176
4202
  * Hide from docs
4177
4203
  * --------------
4178
- * Allows the user to create a chat with multiple users (2+) and allows
4179
- * for the user to specify a message and name the topic of the conversation. If
4180
- * only 1 user is provided into users array default back to origin openChat.
4181
- *
4182
- * @param openChatRequest: {@link OpenGroupChatRequest} - a request object that contains a list of user emails as well as optional parameters for message and topic (display name for the group chat).
4183
- *
4184
- * @returns Promise resolved upon completion
4204
+ * Allows the user to close the conversation in the right pane
4185
4205
  */
4186
- function openGroupChat(openChatRequest) {
4187
- return new Promise(function (resolve) {
4188
- if (openChatRequest.users.length < 1) {
4189
- throw Error('OpenGroupChat Failed: No users specified');
4190
- }
4191
- if (openChatRequest.users.length === 1) {
4192
- var chatRequest = {
4193
- user: openChatRequest.users[0],
4194
- message: openChatRequest.message,
4195
- };
4196
- openChat(chatRequest);
4197
- }
4198
- else {
4199
- ensureInitialized(FrameContexts.content);
4200
- var sendPromise = sendAndHandleStatusAndReason('chat.openChat', {
4201
- members: openChatRequest.users,
4202
- message: openChatRequest.message,
4203
- topic: openChatRequest.topic,
4204
- });
4205
- resolve(sendPromise);
4206
- }
4207
- });
4206
+ function closeConversation() {
4207
+ ensureInitialized(FrameContexts.content);
4208
+ sendMessageToParent('conversations.closeConversation');
4209
+ removeHandler('startConversation');
4210
+ removeHandler('closeConversation');
4208
4211
  }
4209
- chat.openGroupChat = openGroupChat;
4212
+ conversation.closeConversation = closeConversation;
4210
4213
  /**
4211
4214
  * @hidden
4212
4215
  * Hide from docs
@@ -4225,74 +4228,12 @@ var chat;
4225
4228
  resolve(sendAndUnwrap('getChatMembers'));
4226
4229
  });
4227
4230
  }
4228
- chat.getChatMembers = getChatMembers;
4231
+ conversation.getChatMembers = getChatMembers;
4229
4232
  function isSupported() {
4230
- return runtime.supports.chat ? true : false;
4233
+ return runtime.supports.chat.conversation ? true : false;
4231
4234
  }
4232
- chat.isSupported = isSupported;
4233
- var conversation;
4234
- (function (conversation) {
4235
- /**
4236
- * @hidden
4237
- * Hide from docs
4238
- * --------------
4239
- * Allows the user to start or continue a conversation with each subentity inside the tab
4240
- *
4241
- * @returns Promise resolved upon completion
4242
- */
4243
- function openConversation(openConversationRequest) {
4244
- return new Promise(function (resolve) {
4245
- ensureInitialized(FrameContexts.content);
4246
- var sendPromise = sendAndHandleStatusAndReason('conversations.openConversation', {
4247
- title: openConversationRequest.title,
4248
- subEntityId: openConversationRequest.subEntityId,
4249
- conversationId: openConversationRequest.conversationId,
4250
- channelId: openConversationRequest.channelId,
4251
- entityId: openConversationRequest.entityId,
4252
- });
4253
- if (openConversationRequest.onStartConversation) {
4254
- registerHandler('startConversation', function (subEntityId, conversationId, channelId, entityId) {
4255
- return openConversationRequest.onStartConversation({
4256
- subEntityId: subEntityId,
4257
- conversationId: conversationId,
4258
- channelId: channelId,
4259
- entityId: entityId,
4260
- });
4261
- });
4262
- }
4263
- if (openConversationRequest.onCloseConversation) {
4264
- registerHandler('closeConversation', function (subEntityId, conversationId, channelId, entityId) {
4265
- return openConversationRequest.onCloseConversation({
4266
- subEntityId: subEntityId,
4267
- conversationId: conversationId,
4268
- channelId: channelId,
4269
- entityId: entityId,
4270
- });
4271
- });
4272
- }
4273
- resolve(sendPromise);
4274
- });
4275
- }
4276
- conversation.openConversation = openConversation;
4277
- /**
4278
- * @hidden
4279
- * Hide from docs
4280
- * --------------
4281
- * Allows the user to close the conversation in the right pane
4282
- */
4283
- function closeConversation() {
4284
- ensureInitialized(FrameContexts.content);
4285
- sendMessageToParent('conversations.closeConversation');
4286
- removeHandler('startConversation');
4287
- removeHandler('closeConversation');
4288
- }
4289
- conversation.closeConversation = closeConversation;
4290
- function isSupported() {
4291
- return runtime.supports.chat.conversation ? true : false;
4292
- }
4293
- conversation.isSupported = isSupported;
4294
- })(conversation = chat.conversation || (chat.conversation = {}));
4295
- })(chat || (chat = {}));
4235
+ conversation.isSupported = isSupported;
4236
+ })(conversation || (conversation = {}));
4296
4237
 
4297
4238
  ;// CONCATENATED MODULE: ./src/public/appInstallDialog.ts
4298
4239
 
@@ -4321,6 +4262,76 @@ var appInstallDialog;
4321
4262
  appInstallDialog.isSupported = isSupported;
4322
4263
  })(appInstallDialog || (appInstallDialog = {}));
4323
4264
 
4265
+ ;// CONCATENATED MODULE: ./src/public/chat.ts
4266
+
4267
+
4268
+
4269
+
4270
+ /**
4271
+ * Contains functionality to start chat with others
4272
+ *
4273
+ * @beta
4274
+ */
4275
+ var chat;
4276
+ (function (chat) {
4277
+ /**
4278
+ * Allows the user to open a chat with a single user and allows
4279
+ * for the user to specify the message they wish to send.
4280
+ *
4281
+ * @param openChatRequest: {@link OpenSingleChatRequest}- a request object that contains a user's email as well as an optional message parameter.
4282
+ *
4283
+ * @returns Promise resolved upon completion
4284
+ */
4285
+ function openChat(openChatRequest) {
4286
+ return new Promise(function (resolve) {
4287
+ ensureInitialized(FrameContexts.content);
4288
+ var sendPromise = sendAndHandleStatusAndReason('chat.openChat', {
4289
+ members: openChatRequest.user,
4290
+ message: openChatRequest.message,
4291
+ });
4292
+ resolve(sendPromise);
4293
+ });
4294
+ }
4295
+ chat.openChat = openChat;
4296
+ /**
4297
+ * Allows the user to create a chat with multiple users (2+) and allows
4298
+ * for the user to specify a message and name the topic of the conversation. If
4299
+ * only 1 user is provided into users array default back to origin openChat.
4300
+ *
4301
+ * @param openChatRequest: {@link OpenGroupChatRequest} - a request object that contains a list of user emails as well as optional parameters for message and topic (display name for the group chat).
4302
+ *
4303
+ * @returns Promise resolved upon completion
4304
+ */
4305
+ function openGroupChat(openChatRequest) {
4306
+ return new Promise(function (resolve) {
4307
+ if (openChatRequest.users.length < 1) {
4308
+ throw Error('OpenGroupChat Failed: No users specified');
4309
+ }
4310
+ if (openChatRequest.users.length === 1) {
4311
+ var chatRequest = {
4312
+ user: openChatRequest.users[0],
4313
+ message: openChatRequest.message,
4314
+ };
4315
+ openChat(chatRequest);
4316
+ }
4317
+ else {
4318
+ ensureInitialized(FrameContexts.content);
4319
+ var sendPromise = sendAndHandleStatusAndReason('chat.openChat', {
4320
+ members: openChatRequest.users,
4321
+ message: openChatRequest.message,
4322
+ topic: openChatRequest.topic,
4323
+ });
4324
+ resolve(sendPromise);
4325
+ }
4326
+ });
4327
+ }
4328
+ chat.openGroupChat = openGroupChat;
4329
+ function isSupported() {
4330
+ return runtime.supports.chat ? true : false;
4331
+ }
4332
+ chat.isSupported = isSupported;
4333
+ })(chat || (chat = {}));
4334
+
4324
4335
  ;// CONCATENATED MODULE: ./src/public/dialog.ts
4325
4336
  /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
4326
4337
  /* eslint-disable @typescript-eslint/ban-types */
@@ -4330,13 +4341,21 @@ var appInstallDialog;
4330
4341
 
4331
4342
 
4332
4343
 
4344
+ /**
4345
+ * Namespace to interact with the dialog module-specific part of the SDK.
4346
+ *
4347
+ * @beta
4348
+ */
4333
4349
  var dialog;
4334
4350
  (function (dialog) {
4335
4351
  /**
4336
- * Allows an app to open the dialog module.
4352
+ * Allows app to open a url based dialog.
4353
+ *
4354
+ * @remarks
4355
+ * This function cannot be called from inside of a dialog
4337
4356
  *
4338
4357
  * @param urlDialogInfo - An object containing the parameters of the dialog module.
4339
- * @param submitHandler - This Handler is called when the dialog has been submitted or closed.
4358
+ * @param submitHandler - Handler that triggers when a dialog calls the {@linkcode submit} function or when the user closes the dialog.
4340
4359
  * @param messageFromChildHandler - Handler that triggers if dialog sends a message to the app.
4341
4360
  *
4342
4361
  * @returns a function that can be used to send messages to the dialog.
@@ -4348,6 +4367,7 @@ var dialog;
4348
4367
  }
4349
4368
  sendMessageToParent('tasks.startTask', [urlDialogInfo], function (err, result) {
4350
4369
  submitHandler({ err: err, result: result });
4370
+ removeHandler('messageForParent');
4351
4371
  });
4352
4372
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
4353
4373
  var sendMessageToDialog = function (message) {
@@ -4359,7 +4379,7 @@ var dialog;
4359
4379
  /**
4360
4380
  * Submit the dialog module.
4361
4381
  *
4362
- * @param result - Contains the result to be sent to the bot or the app. Typically a JSON object or a serialized version of it
4382
+ * @param result - The result to be sent to the bot or the app. Typically a JSON object or a serialized version of it
4363
4383
  * @param appIds - Helps to validate that the call originates from the same appId as the one that invoked the task module
4364
4384
  */
4365
4385
  function submit(result, appIds) {
@@ -4371,7 +4391,10 @@ var dialog;
4371
4391
  /**
4372
4392
  * Send message to the parent from dialog
4373
4393
  *
4374
- * @param message - The message to send
4394
+ * @remarks
4395
+ * This function is only called from inside of a dialog
4396
+ *
4397
+ * @param message - The message to send to the parent
4375
4398
  */
4376
4399
  function sendMessageToParentFromDialog(
4377
4400
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -4381,21 +4404,30 @@ var dialog;
4381
4404
  }
4382
4405
  dialog.sendMessageToParentFromDialog = sendMessageToParentFromDialog;
4383
4406
  /**
4384
- * Fucntion to call when an event is received from the Parent
4407
+ * Register a listener that will be triggered when a message is received from the app that opened the dialog.
4385
4408
  *
4386
- * @param type - The event to listen to. Currently the only supported type is 'message'.
4387
- * @param listener - listener - The listener that will be called.
4409
+ * @remarks
4410
+ * This function is only called from inside of a dialog.
4411
+ *
4412
+ * @param listener - The listener that will be triggered.
4388
4413
  */
4389
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
4390
4414
  function registerOnMessageFromParent(listener) {
4391
4415
  ensureInitialized();
4392
4416
  registerHandler('messageForChild', listener);
4393
4417
  }
4394
4418
  dialog.registerOnMessageFromParent = registerOnMessageFromParent;
4419
+ /**
4420
+ * Checks if dialog module is supported by the host
4421
+ *
4422
+ * @returns boolean to represent whether dialog module is supported
4423
+ */
4395
4424
  function isSupported() {
4396
4425
  return runtime.supports.dialog ? true : false;
4397
4426
  }
4398
4427
  dialog.isSupported = isSupported;
4428
+ /**
4429
+ * Namespace to update the dialog
4430
+ */
4399
4431
  var update;
4400
4432
  (function (update) {
4401
4433
  /**
@@ -4408,13 +4440,30 @@ var dialog;
4408
4440
  sendMessageToParent('tasks.updateTask', [dimensions]);
4409
4441
  }
4410
4442
  update.resize = resize;
4443
+ /**
4444
+ * Checks if dialog.update capability is supported by the host
4445
+ *
4446
+ * @returns boolean to represent whether dialog.update is supported
4447
+ */
4411
4448
  function isSupported() {
4412
4449
  return runtime.supports.dialog ? (runtime.supports.dialog.update ? true : false) : false;
4413
4450
  }
4414
4451
  update.isSupported = isSupported;
4415
4452
  })(update = dialog.update || (dialog.update = {}));
4453
+ /**
4454
+ * Namespace to open a dialog that sends results to the bot framework
4455
+ */
4416
4456
  var bot;
4417
4457
  (function (bot) {
4458
+ /**
4459
+ * Allows an app to open the dialog module using bot.
4460
+ *
4461
+ * @param botUrlDialogInfo - An object containing the parameters of the dialog module including completionBotId.
4462
+ * @param submitHandler - Handler that triggers when the dialog has been submitted or closed.
4463
+ * @param messageFromChildHandler - Handler that triggers if dialog sends a message to the app.
4464
+ *
4465
+ * @returns a function that can be used to send messages to the dialog.
4466
+ */
4418
4467
  function open(botUrlDialogInfo, submitHandler, messageFromChildHandler) {
4419
4468
  ensureInitialized(FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);
4420
4469
  if (messageFromChildHandler) {
@@ -4422,6 +4471,7 @@ var dialog;
4422
4471
  }
4423
4472
  sendMessageToParent('tasks.startTask', [botUrlDialogInfo], function (err, result) {
4424
4473
  submitHandler({ err: err, result: result });
4474
+ removeHandler('messageForParent');
4425
4475
  });
4426
4476
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
4427
4477
  var sendMessageToDialog = function (message) {
@@ -4430,6 +4480,11 @@ var dialog;
4430
4480
  return sendMessageToDialog;
4431
4481
  }
4432
4482
  bot.open = open;
4483
+ /**
4484
+ * Checks if dialog.bot capability is supported by the host
4485
+ *
4486
+ * @returns boolean to represent whether dialog.bot is supported
4487
+ */
4433
4488
  function isSupported() {
4434
4489
  return runtime.supports.dialog ? (runtime.supports.dialog.bot ? true : false) : false;
4435
4490
  }
@@ -5303,7 +5358,7 @@ var meeting;
5303
5358
  */
5304
5359
  function shareAppContentToStage(param1, param2) {
5305
5360
  var _a;
5306
- ensureInitialized(FrameContexts.sidePanel);
5361
+ ensureInitialized(FrameContexts.sidePanel, FrameContexts.meetingStage);
5307
5362
  var appContentUrl;
5308
5363
  var callback;
5309
5364
  if (typeof param1 === 'function') {
@@ -5328,7 +5383,7 @@ var meeting;
5328
5383
  });
5329
5384
  }
5330
5385
  function getAppContentStageSharingCapabilities(callback) {
5331
- ensureInitialized(FrameContexts.sidePanel);
5386
+ ensureInitialized(FrameContexts.sidePanel, FrameContexts.meetingStage);
5332
5387
  return callCallbackWithErrorOrResultOrNullFromPromiseAndReturnPromise(getAppContentStageSharingCapabilitiesHelper, callback);
5333
5388
  }
5334
5389
  meeting.getAppContentStageSharingCapabilities = getAppContentStageSharingCapabilities;
@@ -5342,7 +5397,7 @@ var meeting;
5342
5397
  });
5343
5398
  }
5344
5399
  function stopSharingAppContentToStage(callback) {
5345
- ensureInitialized(FrameContexts.sidePanel);
5400
+ ensureInitialized(FrameContexts.sidePanel, FrameContexts.meetingStage);
5346
5401
  return callCallbackWithErrorOrResultOrNullFromPromiseAndReturnPromise(stopSharingAppContentToStageHelper, callback);
5347
5402
  }
5348
5403
  meeting.stopSharingAppContentToStage = stopSharingAppContentToStage;
@@ -5356,7 +5411,7 @@ var meeting;
5356
5411
  });
5357
5412
  }
5358
5413
  function getAppContentStageSharingState(callback) {
5359
- ensureInitialized(FrameContexts.sidePanel);
5414
+ ensureInitialized(FrameContexts.sidePanel, FrameContexts.meetingStage);
5360
5415
  return callCallbackWithErrorOrResultOrNullFromPromiseAndReturnPromise(getAppContentStageSharingStateHelper, callback);
5361
5416
  }
5362
5417
  meeting.getAppContentStageSharingState = getAppContentStageSharingState;
@@ -5365,6 +5420,20 @@ var meeting;
5365
5420
  resolve(sendAndHandleSdkError('meeting.getAppContentStageSharingState'));
5366
5421
  });
5367
5422
  }
5423
+ /**
5424
+ * Registers a handler for changes to paticipant speaking states. If any participant is speaking, isSpeakingDetected
5425
+ * will be true. If no participants are speaking, isSpeakingDetected will be false. Only one handler can be registered
5426
+ * at a time. A subsequent registration replaces an existing registration.
5427
+ * @param handler The handler to invoke when the speaking state of any participant changes (start/stop speaking).
5428
+ */
5429
+ function registerSpeakingStateChangeHandler(handler) {
5430
+ if (!handler) {
5431
+ throw new Error('[registerSpeakingStateChangeHandler] Handler cannot be null');
5432
+ }
5433
+ ensureInitialized(FrameContexts.sidePanel, FrameContexts.meetingStage);
5434
+ registerHandler('meeting.speakingStateChanged', handler);
5435
+ }
5436
+ meeting.registerSpeakingStateChangeHandler = registerSpeakingStateChangeHandler;
5368
5437
  })(meeting || (meeting = {}));
5369
5438
 
5370
5439
  ;// CONCATENATED MODULE: ./src/public/monetization.ts
@@ -6437,7 +6506,8 @@ var tasks;
6437
6506
  (function (tasks) {
6438
6507
  /**
6439
6508
  * @deprecated
6440
- * As of 2.0.0-beta.4, please use {@link dialog.open(dialogInfo: DialogInfo, submitHandler?: DialogSubmitHandler, messageFromChildHandler?: PostMessageChannel): PostMessageChannel} instead.
6509
+ * As of 2.0.0-beta.4, please use {@link dialog.open(urlDialogInfo: UrlDialogInfo, submitHandler?: DialogSubmitHandler, messageFromChildHandler?: PostMessageChannel): PostMessageChannel} for url based dialogs
6510
+ * and {@link dialog.bot.open(botUrlDialogInfo: BotUrlDialogInfo, submitHandler?: DialogSubmitHandler, messageFromChildHandler?: PostMessageChannel): PostMessageChannel} for bot based dialogs.
6441
6511
  *
6442
6512
  * Allows an app to open the task module.
6443
6513
  *
@@ -6554,6 +6624,7 @@ var tasks;
6554
6624
 
6555
6625
 
6556
6626
 
6627
+
6557
6628
 
6558
6629
 
6559
6630
 
@@ -6830,12 +6901,18 @@ var files;
6830
6901
  /**
6831
6902
  * @hidden
6832
6903
  * Hide from docs
6833
- * ------
6834
- * Open download preference folder
6904
+ *
6905
+ * Open download preference folder if fileObjectId value is undefined else open folder containing the file with id fileObjectId
6906
+ * @param fileObjectId Id of the file whose containing folder should be opened
6907
+ * @param callback Callback that will be triggered post open download folder/path
6835
6908
  */
6836
- function openDownloadFolder() {
6909
+ function openDownloadFolder(fileObjectId, callback) {
6910
+ if (fileObjectId === void 0) { fileObjectId = undefined; }
6837
6911
  ensureInitialized(FrameContexts.content);
6838
- sendMessageToParent('files.openDownloadFolder', []);
6912
+ if (!callback) {
6913
+ throw new Error('[files.openDownloadFolder] Callback cannot be null');
6914
+ }
6915
+ sendMessageToParent('files.openDownloadFolder', [fileObjectId], callback);
6839
6916
  }
6840
6917
  files_1.openDownloadFolder = openDownloadFolder;
6841
6918
  })(files || (files = {}));
@@ -6855,30 +6932,43 @@ var legacy;
6855
6932
  (function (legacy) {
6856
6933
  var fullTrust;
6857
6934
  (function (fullTrust) {
6858
- /**
6859
- * @hidden
6860
- * Hide from docs
6861
- * ------
6862
- * Allows an app to retrieve information of all user joined teams
6863
- *
6864
- * @param teamInstanceParameters - OPTIONAL Flags that specify whether to scope call to favorite teams
6865
- * @returns Promise resolved containing information about the user joined teams or rejected with error
6866
- */
6867
- function getUserJoinedTeams(teamInstanceParameters) {
6868
- return new Promise(function (resolve) {
6869
- ensureInitialized();
6870
- if ((GlobalVars.hostClientType === HostClientType.android ||
6871
- GlobalVars.hostClientType === HostClientType.teamsRoomsAndroid ||
6872
- GlobalVars.hostClientType === HostClientType.teamsPhones ||
6873
- GlobalVars.hostClientType === HostClientType.teamsDisplays) &&
6874
- !isCurrentSDKVersionAtLeast(getUserJoinedTeamsSupportedAndroidClientVersion)) {
6875
- var oldPlatformError = { errorCode: ErrorCode.OLD_PLATFORM };
6876
- throw new Error(JSON.stringify(oldPlatformError));
6877
- }
6878
- resolve(sendAndUnwrap('getUserJoinedTeams', teamInstanceParameters));
6879
- });
6880
- }
6881
- fullTrust.getUserJoinedTeams = getUserJoinedTeams;
6935
+ var joinedTeams;
6936
+ (function (joinedTeams) {
6937
+ /**
6938
+ * @hidden
6939
+ * Hide from docs
6940
+ * ------
6941
+ * Allows an app to retrieve information of all user joined teams
6942
+ *
6943
+ * @param teamInstanceParameters - OPTIONAL Flags that specify whether to scope call to favorite teams
6944
+ * @returns Promise resolved containing information about the user joined teams or rejected with error
6945
+ */
6946
+ function getUserJoinedTeams(teamInstanceParameters) {
6947
+ return new Promise(function (resolve) {
6948
+ ensureInitialized();
6949
+ if ((GlobalVars.hostClientType === HostClientType.android ||
6950
+ GlobalVars.hostClientType === HostClientType.teamsRoomsAndroid ||
6951
+ GlobalVars.hostClientType === HostClientType.teamsPhones ||
6952
+ GlobalVars.hostClientType === HostClientType.teamsDisplays) &&
6953
+ !isCurrentSDKVersionAtLeast(getUserJoinedTeamsSupportedAndroidClientVersion)) {
6954
+ var oldPlatformError = { errorCode: ErrorCode.OLD_PLATFORM };
6955
+ throw new Error(JSON.stringify(oldPlatformError));
6956
+ }
6957
+ resolve(sendAndUnwrap('getUserJoinedTeams', teamInstanceParameters));
6958
+ });
6959
+ }
6960
+ joinedTeams.getUserJoinedTeams = getUserJoinedTeams;
6961
+ function isSupported() {
6962
+ return runtime.supports.teams
6963
+ ? runtime.supports.teams.fullTrust
6964
+ ? runtime.supports.teams.fullTrust.joinedTeams
6965
+ ? true
6966
+ : false
6967
+ : false
6968
+ : false;
6969
+ }
6970
+ joinedTeams.isSupported = isSupported;
6971
+ })(joinedTeams = fullTrust.joinedTeams || (fullTrust.joinedTeams = {}));
6882
6972
  /**
6883
6973
  * @hidden
6884
6974
  * Hide from docs
@@ -7353,7 +7443,6 @@ var teams;
7353
7443
 
7354
7444
 
7355
7445
 
7356
-
7357
7446
 
7358
7447
  ;// CONCATENATED MODULE: ./src/index.ts
7359
7448