@microsoft/teams-js 2.31.1 → 2.32.0-beta.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (23) hide show
  1. package/dist/esm/packages/teams-js/dts/internal/telemetry.d.ts +2 -0
  2. package/dist/esm/packages/teams-js/dts/private/index.d.ts +1 -0
  3. package/dist/esm/packages/teams-js/dts/private/otherAppStateChange.d.ts +14 -0
  4. package/dist/esm/packages/teams-js/dts/private/store.d.ts +123 -0
  5. package/dist/esm/packages/teams-js/dts/public/dialog/adaptiveCard/adaptiveCard.d.ts +0 -4
  6. package/dist/esm/packages/teams-js/dts/public/dialog/adaptiveCard/bot.d.ts +0 -5
  7. package/dist/esm/packages/teams-js/dts/public/dialog/dialog.d.ts +0 -7
  8. package/dist/esm/packages/teams-js/dts/public/dialog/update.d.ts +0 -5
  9. package/dist/esm/packages/teams-js/dts/public/dialog/url/bot.d.ts +0 -5
  10. package/dist/esm/packages/teams-js/dts/public/dialog/url/parentCommunication.d.ts +0 -9
  11. package/dist/esm/packages/teams-js/dts/public/dialog/url/url.d.ts +0 -6
  12. package/dist/esm/packages/teams-js/dts/public/runtime.d.ts +1 -0
  13. package/dist/esm/packages/teams-js/src/index.js +1 -1
  14. package/dist/esm/packages/teams-js/src/private/otherAppStateChange.js +1 -1
  15. package/dist/esm/packages/teams-js/src/private/store.js +1 -0
  16. package/dist/esm/packages/teams-js/src/public/nestedAppAuth.js +1 -1
  17. package/dist/esm/packages/teams-js/src/public/runtime.js +1 -1
  18. package/dist/esm/packages/teams-js/src/public/version.js +1 -1
  19. package/dist/umd/MicrosoftTeams.js +175 -40
  20. package/dist/umd/MicrosoftTeams.js.map +1 -1
  21. package/dist/umd/MicrosoftTeams.min.js +1 -1
  22. package/dist/umd/MicrosoftTeams.min.js.map +1 -1
  23. package/package.json +1 -50
@@ -927,6 +927,7 @@ __webpack_require__.d(__webpack_exports__, {
927
927
  shareDeepLink: () => (/* reexport */ publicAPIs_shareDeepLink),
928
928
  sharing: () => (/* reexport */ sharing_namespaceObject),
929
929
  stageView: () => (/* reexport */ stageView_namespaceObject),
930
+ store: () => (/* reexport */ store_namespaceObject),
930
931
  tasks: () => (/* reexport */ tasks_namespaceObject),
931
932
  teams: () => (/* reexport */ teams_namespaceObject),
932
933
  teamsCore: () => (/* reexport */ teamsAPIs_namespaceObject),
@@ -1328,6 +1329,7 @@ var otherAppStateChange_namespaceObject = {};
1328
1329
  __webpack_require__.r(otherAppStateChange_namespaceObject);
1329
1330
  __webpack_require__.d(otherAppStateChange_namespaceObject, {
1330
1331
  isSupported: () => (otherAppStateChange_isSupported),
1332
+ notifyInstallCompleted: () => (notifyInstallCompleted),
1331
1333
  registerAppInstallationHandler: () => (registerAppInstallationHandler),
1332
1334
  unregisterAppInstallationHandler: () => (unregisterAppInstallationHandler)
1333
1335
  });
@@ -1434,6 +1436,18 @@ __webpack_require__.d(hostEntity_namespaceObject, {
1434
1436
  tab: () => (tab_namespaceObject)
1435
1437
  });
1436
1438
 
1439
+ // NAMESPACE OBJECT: ./src/private/store.ts
1440
+ var store_namespaceObject = {};
1441
+ __webpack_require__.r(store_namespaceObject);
1442
+ __webpack_require__.d(store_namespaceObject, {
1443
+ StoreDialogType: () => (StoreDialogType),
1444
+ errorInvalidDialogType: () => (errorInvalidDialogType),
1445
+ errorMissingAppId: () => (errorMissingAppId),
1446
+ errorMissingCollectionId: () => (errorMissingCollectionId),
1447
+ isSupported: () => (store_isSupported),
1448
+ openStoreExperience: () => (openStoreExperience)
1449
+ });
1450
+
1437
1451
  // NAMESPACE OBJECT: ./src/public/appInstallDialog.ts
1438
1452
  var appInstallDialog_namespaceObject = {};
1439
1453
  __webpack_require__.r(appInstallDialog_namespaceObject);
@@ -3326,6 +3340,12 @@ const mapTeamsVersionToSupportedCapabilities = {
3326
3340
  hostClientTypes: [HostClientType.android, HostClientType.ios],
3327
3341
  },
3328
3342
  ],
3343
+ '2.1.1': [
3344
+ {
3345
+ capability: { nestedAppAuth: {} },
3346
+ hostClientTypes: [HostClientType.android, HostClientType.ios, HostClientType.ipados],
3347
+ },
3348
+ ],
3329
3349
  };
3330
3350
  const generateBackCompatRuntimeConfigLogger = runtimeLogger.extend('generateBackCompatRuntimeConfig');
3331
3351
  /**
@@ -3455,7 +3475,7 @@ function isSerializable(arg) {
3455
3475
  * @hidden
3456
3476
  * Package version.
3457
3477
  */
3458
- const version = "2.31.1";
3478
+ const version = "2.32.0-beta.0";
3459
3479
 
3460
3480
  ;// ./src/internal/internalAPIs.ts
3461
3481
 
@@ -4752,7 +4772,6 @@ var DataResidency;
4752
4772
  /**
4753
4773
  * Module to update the dialog
4754
4774
  *
4755
- * @beta
4756
4775
  * @module
4757
4776
  */
4758
4777
 
@@ -4763,8 +4782,6 @@ var DataResidency;
4763
4782
  * Update dimensions - height/width of a dialog.
4764
4783
  *
4765
4784
  * @param dimensions - An object containing width and height properties.
4766
- *
4767
- * @beta
4768
4785
  */
4769
4786
  function resize(dimensions) {
4770
4787
  updateResizeHelper(getApiVersionTag(dialogTelemetryVersionNumber, "dialog.update.resize" /* ApiName.Dialog_Update_Resize */), dimensions);
@@ -4774,8 +4791,6 @@ function resize(dimensions) {
4774
4791
  * @returns boolean to represent whether dialog.update capabilty is supported
4775
4792
  *
4776
4793
  * @throws Error if {@linkcode app.initialize} has not successfully completed
4777
- *
4778
- * @beta
4779
4794
  */
4780
4795
  function update_isSupported() {
4781
4796
  return ensureInitialized(runtime) && runtime.supports.dialog
@@ -4789,7 +4804,6 @@ function update_isSupported() {
4789
4804
  /**
4790
4805
  * Module to open a dialog that sends results to the bot framework
4791
4806
  *
4792
- * @beta
4793
4807
  * @module
4794
4808
  */
4795
4809
 
@@ -4804,8 +4818,6 @@ function update_isSupported() {
4804
4818
  * @param messageFromChildHandler - Handler that triggers if dialog sends a message to the app.
4805
4819
  *
4806
4820
  * @returns a function that can be used to send messages to the dialog.
4807
- *
4808
- * @beta
4809
4821
  */
4810
4822
  function bot_open(botUrlDialogInfo, submitHandler, messageFromChildHandler) {
4811
4823
  botUrlOpenHelper(getApiVersionTag(dialogTelemetryVersionNumber, "dialog.url.bot.open" /* ApiName.Dialog_Url_Bot_Open */), botUrlDialogInfo, submitHandler, messageFromChildHandler);
@@ -4816,8 +4828,6 @@ function bot_open(botUrlDialogInfo, submitHandler, messageFromChildHandler) {
4816
4828
  * @returns boolean to represent whether dialog.url.bot is supported
4817
4829
  *
4818
4830
  * @throws Error if {@linkcode app.initialize} has not successfully completed
4819
- *
4820
- * @beta
4821
4831
  */
4822
4832
  function bot_isSupported() {
4823
4833
  return (ensureInitialized(runtime) &&
@@ -4831,7 +4841,6 @@ function bot_isSupported() {
4831
4841
  * @remarks
4832
4842
  * Note that dialog can be invoked from parentless scenarios e.g. Search Message Extensions. The subcapability `parentCommunication` is not supported in such scenarios.
4833
4843
  *
4834
- * @beta
4835
4844
  * @module
4836
4845
  */
4837
4846
 
@@ -4848,8 +4857,6 @@ function bot_isSupported() {
4848
4857
  * This function is only intended to be called from code running within the dialog. Calling it from outside the dialog will have no effect.
4849
4858
  *
4850
4859
  * @param message - The message to send to the parent
4851
- *
4852
- * @beta
4853
4860
  */
4854
4861
  function sendMessageToParentFromDialog(
4855
4862
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -4864,8 +4871,6 @@ message) {
4864
4871
  * Send message to the dialog from the parent
4865
4872
  *
4866
4873
  * @param message - The message to send
4867
- *
4868
- * @beta
4869
4874
  */
4870
4875
  function sendMessageToDialog(
4871
4876
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -4883,8 +4888,6 @@ message) {
4883
4888
  * This function is only intended to be called from code running within the dialog. Calling it from outside the dialog will have no effect.
4884
4889
  *
4885
4890
  * @param listener - The listener that will be triggered.
4886
- *
4887
- * @beta
4888
4891
  */
4889
4892
  function registerOnMessageFromParent(listener) {
4890
4893
  ensureInitialized(runtime, FrameContexts.task);
@@ -4908,8 +4911,6 @@ function registerOnMessageFromParent(listener) {
4908
4911
  * @returns boolean to represent whether dialog.url.parentCommunication capability is supported
4909
4912
  *
4910
4913
  * @throws Error if {@linkcode app.initialize} has not successfully completed
4911
- *
4912
- * @beta
4913
4914
  */
4914
4915
  function parentCommunication_isSupported() {
4915
4916
  var _a, _b;
@@ -4934,8 +4935,6 @@ function parentCommunication_isSupported() {
4934
4935
  * @param urlDialogInfo - An object containing the parameters of the dialog module.
4935
4936
  * @param submitHandler - Handler that triggers when a dialog calls the {@linkcode submit} function or when the user closes the dialog.
4936
4937
  * @param messageFromChildHandler - Handler that triggers if dialog sends a message to the app.
4937
- *
4938
- * @beta
4939
4938
  */
4940
4939
  function url_open(urlDialogInfo, submitHandler, messageFromChildHandler) {
4941
4940
  urlOpenHelper(getApiVersionTag(dialogTelemetryVersionNumber, "dialog.url.open" /* ApiName.Dialog_Url_Open */), urlDialogInfo, submitHandler, messageFromChildHandler);
@@ -4950,8 +4949,6 @@ function url_open(urlDialogInfo, submitHandler, messageFromChildHandler) {
4950
4949
  * If this function is called from a dialog while {@link M365ContentAction} is set in the context object by the host, result will be ignored
4951
4950
  *
4952
4951
  * @param appIds - Valid application(s) that can receive the result of the submitted dialogs. Specifying this parameter helps prevent malicious apps from retrieving the dialog result. Multiple app IDs can be specified because a web app from a single underlying domain can power multiple apps across different environments and branding schemes.
4953
- *
4954
- * @beta
4955
4952
  */
4956
4953
  function url_submit(result, appIds) {
4957
4954
  urlSubmitHelper(getApiVersionTag(dialogTelemetryVersionNumber, "dialog.url.submit" /* ApiName.Dialog_Url_Submit */), result, appIds);
@@ -4962,8 +4959,6 @@ function url_submit(result, appIds) {
4962
4959
  * @returns boolean to represent whether dialog.url module is supported
4963
4960
  *
4964
4961
  * @throws Error if {@linkcode app.initialize} has not successfully completed
4965
- *
4966
- * @beta
4967
4962
  */
4968
4963
  function url_isSupported() {
4969
4964
  return ensureInitialized(runtime) && (runtime.supports.dialog && runtime.supports.dialog.url) !== undefined;
@@ -5112,7 +5107,6 @@ function handleDialogMessage(message) {
5112
5107
  /**
5113
5108
  * Module for interaction with adaptive card dialogs that need to communicate with the bot framework
5114
5109
  *
5115
- * @beta
5116
5110
  * @module
5117
5111
  */
5118
5112
 
@@ -5127,8 +5121,6 @@ function handleDialogMessage(message) {
5127
5121
  *
5128
5122
  * @param botAdaptiveCardDialogInfo - An object containing the parameters of the dialog module including completionBotId.
5129
5123
  * @param submitHandler - Handler that triggers when the dialog has been submitted or closed.
5130
- *
5131
- * @beta
5132
5124
  */
5133
5125
  function adaptiveCard_bot_open(botAdaptiveCardDialogInfo, submitHandler) {
5134
5126
  ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);
@@ -5146,8 +5138,6 @@ function adaptiveCard_bot_open(botAdaptiveCardDialogInfo, submitHandler) {
5146
5138
  * @returns boolean to represent whether dialog.adaptiveCard.bot is supported
5147
5139
  *
5148
5140
  * @throws Error if {@linkcode app.initialize} has not successfully completed
5149
- *
5150
- * @beta
5151
5141
  */
5152
5142
  function adaptiveCard_bot_isSupported() {
5153
5143
  const isAdaptiveCardVersionSupported = runtime.hostVersionsInfo &&
@@ -5164,7 +5154,6 @@ function adaptiveCard_bot_isSupported() {
5164
5154
  /* eslint-disable @typescript-eslint/no-unused-vars */
5165
5155
  /**
5166
5156
  * Subcapability for interacting with adaptive card dialogs
5167
- * @beta
5168
5157
  * @module
5169
5158
  */
5170
5159
 
@@ -5183,8 +5172,6 @@ function adaptiveCard_bot_isSupported() {
5183
5172
  *
5184
5173
  * @param adaptiveCardDialogInfo - An object containing the parameters of the dialog module {@link AdaptiveCardDialogInfo}.
5185
5174
  * @param submitHandler - Handler that triggers when a dialog fires an [Action.Submit](https://adaptivecards.io/explorer/Action.Submit.html) or when the user closes the dialog.
5186
- *
5187
- * @beta
5188
5175
  */
5189
5176
  function adaptiveCard_open(adaptiveCardDialogInfo, submitHandler) {
5190
5177
  ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);
@@ -5202,8 +5189,6 @@ function adaptiveCard_open(adaptiveCardDialogInfo, submitHandler) {
5202
5189
  * @returns boolean to represent whether dialog.adaptiveCard module is supported
5203
5190
  *
5204
5191
  * @throws Error if {@linkcode app.initialize} has not successfully completed
5205
- *
5206
- * @beta
5207
5192
  */
5208
5193
  function adaptiveCard_isSupported() {
5209
5194
  const isAdaptiveCardVersionSupported = runtime.hostVersionsInfo &&
@@ -5229,7 +5214,6 @@ function adaptiveCard_isSupported() {
5229
5214
  * @remarks Note that dialogs were previously called "task modules". While they have been renamed for clarity, the functionality has been maintained.
5230
5215
  * For more details, see [Dialogs](https://learn.microsoft.com/microsoftteams/platform/task-modules-and-cards/what-are-task-modules)
5231
5216
  *
5232
- * @beta
5233
5217
  * @module
5234
5218
  */
5235
5219
 
@@ -5248,8 +5232,6 @@ function adaptiveCard_isSupported() {
5248
5232
  * Function is called during app initialization
5249
5233
  * @internal
5250
5234
  * Limited to Microsoft-internal use
5251
- *
5252
- * @beta
5253
5235
  */
5254
5236
  function dialog_initialize() {
5255
5237
  registerHandler(getApiVersionTag(dialogTelemetryVersionNumber, "dialog.registerMessageForChildHandler" /* ApiName.Dialog_RegisterMessageForChildHandler */), 'messageForChild', handleDialogMessage, false);
@@ -9985,6 +9967,24 @@ function unregisterAppInstallationHandler() {
9985
9967
  sendMessageToParent(getApiVersionTag(otherAppStateChangeTelemetryVersionNumber, "otherApp.unregisterInstall" /* ApiName.OtherAppStateChange_UnregisterInstall */), "otherApp.unregisterInstall" /* ApiName.OtherAppStateChange_UnregisterInstall */);
9986
9968
  handlers_removeHandler("otherApp.install" /* ApiName.OtherAppStateChange_Install */);
9987
9969
  }
9970
+ /**
9971
+ * @hidden
9972
+ * @beta
9973
+ * @internal
9974
+ * Limited to Microsoft-internal use
9975
+ *
9976
+ * This function should be called by the Store App to notify the host that the
9977
+ * app with the given appId has been installed.
9978
+ *
9979
+ * @throws Error if {@link app.initialize} has not successfully completed or if the platform
9980
+ * does not support the otherAppStateChange capability.
9981
+ */
9982
+ function notifyInstallCompleted(appId) {
9983
+ if (!otherAppStateChange_isSupported()) {
9984
+ throw new Error(ErrorCode.NOT_SUPPORTED_ON_PLATFORM.toString());
9985
+ }
9986
+ return callFunctionInHost("otherApp.notifyInstallCompleted" /* ApiName.OtherAppStateChange_NotifyInstallCompleted */, [appId.toString()], getApiVersionTag(otherAppStateChangeTelemetryVersionNumber, "otherApp.notifyInstallCompleted" /* ApiName.OtherAppStateChange_NotifyInstallCompleted */));
9987
+ }
9988
9988
  /**
9989
9989
  * Checks if the otherAppStateChange capability is supported by the host
9990
9990
  * @returns boolean to represent whether the otherAppStateChange capability is supported
@@ -11970,6 +11970,123 @@ function hostEntity_isSupported() {
11970
11970
  }
11971
11971
 
11972
11972
 
11973
+ ;// ./src/private/store.ts
11974
+ var store_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
11975
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
11976
+ return new (P || (P = Promise))(function (resolve, reject) {
11977
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11978
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11979
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
11980
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
11981
+ });
11982
+ };
11983
+
11984
+
11985
+
11986
+
11987
+
11988
+
11989
+ /**
11990
+ * @beta
11991
+ * @hidden
11992
+ * @module
11993
+ * Namespace to open app store
11994
+ * @internal
11995
+ * Limited to Microsoft-internal use
11996
+ */
11997
+ const StoreVersionTagNum = "v2" /* ApiVersionNumber.V_2 */;
11998
+ /**
11999
+ * @beta
12000
+ * @hidden
12001
+ * Enum of store dialog type
12002
+ * @internal
12003
+ * Limited to Microsoft-internal use
12004
+ */
12005
+ var StoreDialogType;
12006
+ (function (StoreDialogType) {
12007
+ /**
12008
+ * open a store without navigation
12009
+ */
12010
+ StoreDialogType["FullStore"] = "fullstore";
12011
+ /**
12012
+ * open a store with navigation to a specific collection
12013
+ */
12014
+ StoreDialogType["SpecificStore"] = "specificstore";
12015
+ /**
12016
+ * open in-context-store
12017
+ */
12018
+ StoreDialogType["InContextStore"] = "ics";
12019
+ /**
12020
+ * open detail dialog (DD)
12021
+ */
12022
+ StoreDialogType["AppDetail"] = "appdetail";
12023
+ })(StoreDialogType || (StoreDialogType = {}));
12024
+ /**
12025
+ * @beta
12026
+ * @hidden
12027
+ * error message when getting invalid store dialog type
12028
+ * @internal
12029
+ * Limited to Microsoft-internal use
12030
+ */
12031
+ const errorInvalidDialogType = 'Invalid store dialog type, but type needed to specify store to open';
12032
+ /**
12033
+ * @beta
12034
+ * @hidden
12035
+ * error message when getting wrong app id or missing app id
12036
+ * @internal
12037
+ * Limited to Microsoft-internal use
12038
+ */
12039
+ const errorMissingAppId = 'No App Id present, but AppId needed to open AppDetail store';
12040
+ /**
12041
+ * @beta
12042
+ * @hidden
12043
+ * error message when getting wrong collection id or missing collection id
12044
+ * @internal
12045
+ * Limited to Microsoft-internal use
12046
+ */
12047
+ const errorMissingCollectionId = 'No Collection Id present, but CollectionId needed to open a store specific to a collection';
12048
+ /**
12049
+ * @beta
12050
+ * @hidden
12051
+ * Api to open a store
12052
+ *
12053
+ * @param openStoreParams - params to call openStoreExperience
12054
+ *
12055
+ * @internal
12056
+ * Limited to Microsoft-internal use
12057
+ */
12058
+ function openStoreExperience(openStoreParams) {
12059
+ return store_awaiter(this, void 0, void 0, function* () {
12060
+ ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);
12061
+ if (!store_isSupported()) {
12062
+ throw errorNotSupportedOnPlatform;
12063
+ }
12064
+ if (openStoreParams === undefined || !Object.values(StoreDialogType).includes(openStoreParams.dialogType)) {
12065
+ throw new Error(errorInvalidDialogType);
12066
+ }
12067
+ if (openStoreParams.dialogType === StoreDialogType.AppDetail && !(openStoreParams.appId instanceof AppId)) {
12068
+ throw new Error(errorMissingAppId);
12069
+ }
12070
+ if (openStoreParams.dialogType === StoreDialogType.SpecificStore && !openStoreParams.collectionId) {
12071
+ throw new Error(errorMissingCollectionId);
12072
+ }
12073
+ return callFunctionInHost("store.open" /* ApiName.Store_Open */, [
12074
+ openStoreParams.dialogType,
12075
+ openStoreParams.appId,
12076
+ openStoreParams.collectionId,
12077
+ ], getApiVersionTag(StoreVersionTagNum, "store.open" /* ApiName.Store_Open */));
12078
+ });
12079
+ }
12080
+ /**
12081
+ * Checks if the store capability is supported by the host
12082
+ * @returns boolean to represent whether the store capability is supported
12083
+ *
12084
+ * @throws Error if {@linkcode app.initialize} has not successfully completed
12085
+ */
12086
+ function store_isSupported() {
12087
+ return ensureInitialized(runtime) && !!runtime.supports.store;
12088
+ }
12089
+
11973
12090
  ;// ./src/private/index.ts
11974
12091
 
11975
12092
 
@@ -12006,6 +12123,8 @@ function hostEntity_isSupported() {
12006
12123
 
12007
12124
 
12008
12125
 
12126
+
12127
+
12009
12128
 
12010
12129
 
12011
12130
 
@@ -13145,6 +13264,8 @@ function clipboard_isSupported() {
13145
13264
  */
13146
13265
 
13147
13266
 
13267
+
13268
+
13148
13269
  /**
13149
13270
  * Checks if MSAL-NAA channel recommended by the host
13150
13271
  * @returns true if host is recommending NAA channel and false otherwise
@@ -13155,7 +13276,21 @@ function clipboard_isSupported() {
13155
13276
  */
13156
13277
  function isNAAChannelRecommended() {
13157
13278
  var _a;
13158
- return (_a = (ensureInitialized(runtime) && runtime.isNAAChannelRecommended)) !== null && _a !== void 0 ? _a : false;
13279
+ return ((_a = (ensureInitialized(runtime) &&
13280
+ (runtime.isNAAChannelRecommended || isNAAChannelRecommendedForLegacyTeamsMobile()))) !== null && _a !== void 0 ? _a : false);
13281
+ }
13282
+ function isNAAChannelRecommendedForLegacyTeamsMobile() {
13283
+ return ensureInitialized(runtime) &&
13284
+ isHostAndroidOrIOSOrIPadOS() &&
13285
+ runtime.isLegacyTeams &&
13286
+ runtime.supports.nestedAppAuth
13287
+ ? true
13288
+ : false;
13289
+ }
13290
+ function isHostAndroidOrIOSOrIPadOS() {
13291
+ return (GlobalVars.hostClientType === HostClientType.android ||
13292
+ GlobalVars.hostClientType === HostClientType.ios ||
13293
+ GlobalVars.hostClientType === HostClientType.ipados);
13159
13294
  }
13160
13295
 
13161
13296
  ;// ./src/public/geoLocation/map.ts