@pitcher/js-api 1.22.0-alpha.6 → 1.22.0-beta.0
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.
- package/js-api.esm.js +472 -139
- package/js-api.esm.js.map +1 -1
- package/js-api.umd.min.js +10 -10
- package/js-api.umd.min.js.map +1 -1
- package/lib/api/canvases/canvases.queries.d.ts +5 -5
- package/lib/apps/browser/stores/api.d.ts +215 -84
- package/lib/apps/browser/stores/app.d.ts +7 -26
- package/lib/apps/browser/stores/upload.d.ts +34 -24
- package/lib/apps/browser/util/file.d.ts +2 -2
- package/lib/apps/canvas-builder/composables/useCanvas.d.ts +550 -460
- package/lib/apps/canvas-builder/composables/useCanvasExit.d.ts +3 -0
- package/lib/apps/canvas-builder/composables/useCanvasHistory.d.ts +86 -74
- package/lib/apps/canvas-builder/composables/useCanvasHooks.d.ts +4 -4
- package/lib/apps/canvas-builder/composables/useCanvasPages.d.ts +3 -3
- package/lib/apps/canvas-builder/composables/useCanvasSectionOverrides.d.ts +3 -3
- package/lib/apps/canvas-builder/composables/useCanvasTheme.d.ts +24 -17
- package/lib/apps/canvas-builder/composables/useCanvasVisibility.d.ts +2 -2
- package/lib/apps/canvas-builder/composables/useCollapsibles.d.ts +3 -3
- package/lib/apps/canvas-builder/composables/useComponentPermissions.d.ts +2 -2
- package/lib/apps/canvas-builder/composables/useContentSelector.d.ts +6 -4
- package/lib/apps/canvas-builder/composables/useInstalledEmbeddables.d.ts +15 -0
- package/lib/apps/canvas-builder/composables/useRecommendations.d.ts +5 -5
- package/lib/apps/canvas-builder/composables/useSectionPopularity.d.ts +2 -2
- package/lib/apps/canvas-builder/types/canvas.d.ts +19 -18
- package/lib/apps/canvas-builder/types/recommendations.types.d.ts +3 -3
- package/lib/apps/canvas-builder/util/canvas.util.d.ts +5 -4
- package/lib/apps/canvas-selector/appTypes.d.ts +9 -0
- package/lib/apps/content-selector/appTypes.d.ts +1 -0
- package/lib/apps/content-selector/stores/app.d.ts +8 -1
- package/lib/components/CFileViewer/CFileViewer.use.d.ts +2 -4
- package/lib/components/CFileViewer/CFileViewerFullScreen.use.d.ts +1 -1
- package/lib/components/canvases/CanvasesManagementBulk.use.d.ts +5 -5
- package/lib/components/filters/filter.util.d.ts +1 -1
- package/lib/components/savedCanvases/CSavedCanvasesManagementShareCanvas.use.d.ts +5 -3
- package/lib/composables/instanceTagsActions.use.d.ts +14 -0
- package/lib/composables/recentFiles.use.d.ts +1 -1
- package/lib/composables/suggestedTags.use.d.ts +3 -0
- package/lib/composables/tableColumnsSettings.use.d.ts +25 -0
- package/lib/composables/useCanvasOverlay.d.ts +20 -0
- package/lib/composables/useCanvasTablesPagination.d.ts +13 -0
- package/lib/composables/useConfirmation.d.ts +1 -0
- package/lib/composables/useElementHeightResize.d.ts +5 -0
- package/lib/composables/useFiles.d.ts +11 -0
- package/lib/constants/pitcherSettings.const.d.ts +4 -0
- package/lib/main.lib.d.ts +31 -21
- package/lib/sdk/api/HighLevelApi.d.ts +112 -14
- package/lib/sdk/api/modules/admin/canvas.admin.d.ts +53 -15
- package/lib/sdk/api/modules/admin/env.admin.d.ts +3 -2
- package/lib/sdk/api/modules/admin/files.admin.d.ts +43 -4
- package/lib/sdk/api/modules/admin/index.d.ts +53 -5
- package/lib/sdk/api/modules/admin/metadataTemplates.admin.d.ts +1 -2
- package/lib/sdk/api/modules/admin/types.admin.d.ts +132 -3
- package/lib/sdk/api/modules/canvas.d.ts +12 -14
- package/lib/sdk/api/modules/dsr/env.dsr.d.ts +4 -3
- package/lib/sdk/api/modules/dsr/index.d.ts +14 -3
- package/lib/sdk/api/modules/dsr/loading.dsr.d.ts +7 -1
- package/lib/sdk/api/modules/env.d.ts +16 -0
- package/lib/sdk/api/modules/favorites.d.ts +9 -0
- package/lib/sdk/api/modules/feedback.d.ts +3 -0
- package/lib/sdk/api/modules/files.d.ts +7 -4
- package/lib/sdk/api/modules/folders.d.ts +29 -0
- package/lib/sdk/api/modules/open.d.ts +6 -0
- package/lib/sdk/api/modules/sync.d.ts +1 -2
- package/lib/sdk/api/modules/ui/app-errors.ui.d.ts +13 -1
- package/lib/sdk/api/modules/ui/canvas.ui.d.ts +102 -8
- package/lib/sdk/api/modules/ui/content.ui.d.ts +52 -2
- package/lib/sdk/api/modules/ui/index.d.ts +150 -13
- package/lib/sdk/api/modules/ui/loading.ui.d.ts +9 -1
- package/lib/sdk/api/modules/ui/location.ui.d.ts +18 -1
- package/lib/sdk/api/modules/ui/post-call.ui.d.ts +35 -4
- package/lib/sdk/api/modules/ui/types.ui.d.ts +86 -8
- package/lib/sdk/api/modules/users.d.ts +6 -1
- package/lib/sdk/interfaces.d.ts +122 -3
- package/lib/sdk/main.d.ts +297 -151
- package/lib/sdk/payload.types.d.ts +134 -2
- package/lib/sdk/utils/httpFetch.d.ts +1 -1
- package/lib/sdk/utils/object.d.ts +1 -0
- package/lib/sdk/utils/object.spec.d.ts +1 -0
- package/lib/theme/light.d.ts +12 -0
- package/lib/types/app.d.ts +11 -0
- package/lib/types/call.d.ts +4 -3
- package/lib/types/files.d.ts +27 -1
- package/lib/types/filter.d.ts +5 -0
- package/lib/types/instance.types.d.ts +18 -0
- package/lib/types/{instanceSettings.d.ts → instanceSettings.types.d.ts} +10 -2
- package/lib/types/launchDarkly.types.d.ts +4 -4
- package/lib/types/organization.types.d.ts +2 -2
- package/lib/types/organizationSettings.types.d.ts +4 -0
- package/lib/types/recentFiles.types.d.ts +4 -1
- package/lib/types/users.d.ts +13 -0
- package/lib/util/fullscreen.util.d.ts +1 -1
- package/lib/util/string.d.ts +1 -0
- package/package.json +1 -1
- package/types/openapi/index.d.ts +23 -17
- package/types/openapi/models/AccessTypeEnum.d.ts +3 -1
- package/types/openapi/models/App.d.ts +1 -0
- package/types/openapi/models/AppRelease.d.ts +1 -0
- package/types/openapi/models/AppsDBEntry.d.ts +4 -0
- package/types/openapi/models/AppsDBEntryRequest.d.ts +3 -0
- package/types/openapi/models/Canvas.d.ts +10 -15
- package/types/openapi/models/CanvasCreate.d.ts +14 -12
- package/types/openapi/models/CanvasCreateRequest.d.ts +6 -5
- package/types/openapi/models/CanvasRecommendedFile.d.ts +6 -0
- package/types/openapi/models/CanvasRetrieve.d.ts +15 -13
- package/types/openapi/models/CanvasSection.d.ts +5 -2
- package/types/openapi/models/CanvasUpdate.d.ts +14 -12
- package/types/openapi/models/CanvasUpdateRequest.d.ts +5 -4
- package/types/openapi/models/CollaborationRoleEnum.d.ts +0 -4
- package/types/openapi/models/ContentDistributionGroupCreate.d.ts +1 -0
- package/types/openapi/models/DeletedApp.d.ts +1 -0
- package/types/openapi/models/{CanvasList.d.ts → DeletedCanvas.d.ts} +13 -9
- package/types/openapi/models/DeletedContentDistributionGroup.d.ts +1 -0
- package/types/openapi/models/DeletedEnvironment.d.ts +1 -0
- package/types/openapi/models/DeletedFavorite.d.ts +1 -0
- package/types/openapi/models/DeletedFile.d.ts +6 -0
- package/types/openapi/models/DeletedFolder.d.ts +4 -3
- package/types/openapi/models/DeletedInstance.d.ts +1 -0
- package/types/openapi/models/DeletedInstanceAssignmentGroup.d.ts +1 -0
- package/types/openapi/models/DeletedMetadataTemplate.d.ts +1 -0
- package/types/openapi/models/DeletedRegion.d.ts +1 -0
- package/types/openapi/models/Environment.d.ts +1 -0
- package/types/openapi/models/Favorite.d.ts +1 -0
- package/types/openapi/models/File.d.ts +6 -0
- package/types/openapi/models/FileCreate.d.ts +8 -0
- package/types/openapi/models/FileCreateRequest.d.ts +3 -0
- package/types/openapi/models/FilePermission.d.ts +4 -0
- package/types/openapi/models/FilePermissionRequest.d.ts +4 -0
- package/types/openapi/models/FileRetrieve.d.ts +8 -0
- package/types/openapi/models/FileRevision.d.ts +8 -0
- package/types/openapi/models/FileRevisionRequest.d.ts +3 -0
- package/types/openapi/models/FileUpdate.d.ts +8 -0
- package/types/openapi/models/FileUpdateRequest.d.ts +3 -0
- package/types/openapi/models/FileVersion.d.ts +5 -0
- package/types/openapi/models/Folder.d.ts +4 -3
- package/types/openapi/models/FolderCanvas.d.ts +11 -0
- package/types/openapi/models/FolderCreate.d.ts +8 -7
- package/types/openapi/models/FolderCreateRequest.d.ts +4 -2
- package/types/openapi/models/FolderFile.d.ts +3 -0
- package/types/openapi/models/FolderFolder.d.ts +5 -1
- package/types/openapi/models/FolderRetrieve.d.ts +8 -8
- package/types/openapi/models/FolderRule.d.ts +7 -0
- package/types/openapi/models/FolderRuleRequest.d.ts +7 -0
- package/types/openapi/models/FolderUpdate.d.ts +8 -8
- package/types/openapi/models/FolderUpdateRequest.d.ts +3 -0
- package/types/openapi/models/Instance.d.ts +1 -0
- package/types/openapi/models/InstanceUpdate.d.ts +1 -0
- package/types/openapi/models/MetadataTemplate.d.ts +1 -0
- package/types/openapi/models/OfflineSyncFolder.d.ts +17 -0
- package/types/openapi/models/OperatorEnum.d.ts +64 -0
- package/types/openapi/models/PaginatedCanvasList.d.ts +8 -0
- package/types/openapi/models/PaginatedFileRevisionList.d.ts +8 -0
- package/types/openapi/models/PaginatedOfflineSyncFolderList.d.ts +8 -0
- package/types/openapi/models/PatchedCanvasUpdateRequest.d.ts +5 -4
- package/types/openapi/models/PatchedFileRequest.d.ts +3 -0
- package/types/openapi/models/PatchedFileRevisionRequest.d.ts +3 -0
- package/types/openapi/models/PatchedFileUpdateRequest.d.ts +3 -0
- package/types/openapi/models/PatchedFolderUpdateRequest.d.ts +3 -0
- package/types/openapi/models/Region.d.ts +1 -0
- package/types/openapi/models/SearchFile.d.ts +3 -0
- package/types/openapi/models/SharedLink.d.ts +6 -5
- package/types/openapi/models/SharedLinkCanvas.d.ts +11 -0
- package/types/openapi/models/SharedLinkCanvasRequest.d.ts +8 -0
- package/types/openapi/models/SharedLinkCreate.d.ts +6 -5
- package/types/openapi/models/{SharedLinkInstanceSerialzier.d.ts → SharedLinkInstance.d.ts} +1 -1
- package/types/openapi/models/SharedLinkInstanceRequest.d.ts +5 -0
- package/types/openapi/models/{SharedLinkOrganizationSerialzier.d.ts → SharedLinkOrganization.d.ts} +1 -1
- package/types/openapi/models/SharedLinkOrganizationRequest.d.ts +6 -0
- package/lib/apps/canvas-builder/util/tsUtils.d.ts +0 -3
- package/lib/composables/useDetailsView.d.ts +0 -19
- package/lib/types/templateActions.d.ts +0 -10
- package/lib/util/gesture.util.d.ts +0 -6
- package/types/openapi/models/AppsDBGlobalEntry.d.ts +0 -8
- package/types/openapi/models/AppsDBGlobalEntryRequest.d.ts +0 -3
- package/types/openapi/models/AppsDBUserEntry.d.ts +0 -9
- package/types/openapi/models/AppsDBUserEntryRequest.d.ts +0 -3
- package/types/openapi/models/CanvasSectionRetrieve.d.ts +0 -7
- package/types/openapi/models/CanvasSectionRetrieveRequest.d.ts +0 -5
- package/types/openapi/models/FileRequest.d.ts +0 -13
- package/types/openapi/models/InstanceStorageCredentials.d.ts +0 -6
- package/types/openapi/models/MiniAccount.d.ts +0 -4
- package/types/openapi/models/PSPDFKitAuthPayload.d.ts +0 -3
- package/types/openapi/models/PSPDFKitAuthPayloadRequest.d.ts +0 -3
- package/types/openapi/models/PSPDFKitToken.d.ts +0 -7
- package/types/openapi/models/PSPDFKitTokenRequest.d.ts +0 -3
- package/types/openapi/models/PaginatedCanvasListList.d.ts +0 -8
package/js-api.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { camelCase, snakeCase, cloneDeep } from 'lodash-es';
|
|
1
|
+
import { camelCase, snakeCase, pickBy, cloneDeep, isEqual } from 'lodash-es';
|
|
2
2
|
|
|
3
3
|
function _mergeNamespaces(n, m) {
|
|
4
4
|
for (var i = 0; i < m.length; i++) {
|
|
@@ -2409,8 +2409,17 @@ function createCanvas$1(payload) {
|
|
|
2409
2409
|
function deleteCanvas(payload) {
|
|
2410
2410
|
return this.API.request("delete_canvas", payload);
|
|
2411
2411
|
}
|
|
2412
|
-
function updateCanvas$
|
|
2413
|
-
|
|
2412
|
+
function updateCanvas$2(payload) {
|
|
2413
|
+
let shouldDebug = false;
|
|
2414
|
+
if (typeof window !== "undefined") {
|
|
2415
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
2416
|
+
shouldDebug = urlParams.get("debug") === "true" || !!window.debug;
|
|
2417
|
+
}
|
|
2418
|
+
shouldDebug && console.info("JS API UPDATE CANVAS", payload);
|
|
2419
|
+
return this.API.request("update_canvas", payload).then((res) => {
|
|
2420
|
+
shouldDebug && console.info("JS API UPDATE CANVAS RESPONSE", res);
|
|
2421
|
+
return res;
|
|
2422
|
+
});
|
|
2414
2423
|
}
|
|
2415
2424
|
function getCanvas$1(payload) {
|
|
2416
2425
|
return this.API.request("get_canvas", payload);
|
|
@@ -2419,7 +2428,7 @@ function shareCanvas(payload) {
|
|
|
2419
2428
|
return this.API.request("share_canvas", payload);
|
|
2420
2429
|
}
|
|
2421
2430
|
|
|
2422
|
-
function getFiles(payload) {
|
|
2431
|
+
function getFiles$1(payload) {
|
|
2423
2432
|
const p = { ...payload };
|
|
2424
2433
|
if (p.type) {
|
|
2425
2434
|
p.type = Array.isArray(p.type) ? p.type : [p.type];
|
|
@@ -2435,11 +2444,12 @@ function getRecentFiles(payload) {
|
|
|
2435
2444
|
function downloadFile(payload) {
|
|
2436
2445
|
return this.API.request("download_file", payload);
|
|
2437
2446
|
}
|
|
2438
|
-
function getAppConfig(payload) {
|
|
2447
|
+
function getAppConfig$1(payload) {
|
|
2439
2448
|
return this.API.request("get_app_config", payload);
|
|
2440
2449
|
}
|
|
2441
|
-
function getFile(payload) {
|
|
2442
|
-
|
|
2450
|
+
function getFile$1(payload) {
|
|
2451
|
+
const { id, file_id } = payload;
|
|
2452
|
+
return this.API.request("get_file", { file_id: id || file_id });
|
|
2443
2453
|
}
|
|
2444
2454
|
function updateFile(payload) {
|
|
2445
2455
|
return this.API.request("update_file", payload);
|
|
@@ -2462,7 +2472,10 @@ function getUsers(payload) {
|
|
|
2462
2472
|
return this.API.request("get_users", payload);
|
|
2463
2473
|
}
|
|
2464
2474
|
function refreshServiceToken(payload) {
|
|
2465
|
-
return this.API.request("refresh_service_token", payload);
|
|
2475
|
+
return this.API.request("refresh_service_token", payload ?? {});
|
|
2476
|
+
}
|
|
2477
|
+
function refreshAccessToken() {
|
|
2478
|
+
return this.API.request("refresh_access_token");
|
|
2466
2479
|
}
|
|
2467
2480
|
|
|
2468
2481
|
function fetchDocumentInfo(payload) {
|
|
@@ -2472,7 +2485,7 @@ function renderPageAsImage(payload) {
|
|
|
2472
2485
|
return this.API.request("render_page_as_image", payload);
|
|
2473
2486
|
}
|
|
2474
2487
|
|
|
2475
|
-
function toast$
|
|
2488
|
+
function toast$2(payload) {
|
|
2476
2489
|
return this.API.request("toast", payload);
|
|
2477
2490
|
}
|
|
2478
2491
|
|
|
@@ -2551,14 +2564,14 @@ const modules = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
|
2551
2564
|
deleteFolder,
|
|
2552
2565
|
downloadFile,
|
|
2553
2566
|
fetchDocumentInfo,
|
|
2554
|
-
getAppConfig,
|
|
2567
|
+
getAppConfig: getAppConfig$1,
|
|
2555
2568
|
getCanvas: getCanvas$1,
|
|
2556
2569
|
getCanvases: getCanvases$1,
|
|
2557
2570
|
getEnv: getEnv$2,
|
|
2558
2571
|
getEvents,
|
|
2559
2572
|
getFavorites,
|
|
2560
|
-
getFile,
|
|
2561
|
-
getFiles,
|
|
2573
|
+
getFile: getFile$1,
|
|
2574
|
+
getFiles: getFiles$1,
|
|
2562
2575
|
getFolder,
|
|
2563
2576
|
getInstanceMetadataTemplates: getInstanceMetadataTemplates$1,
|
|
2564
2577
|
getLanguages,
|
|
@@ -2570,16 +2583,17 @@ const modules = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
|
2570
2583
|
openExternalUrl,
|
|
2571
2584
|
openWebViewAlwaysOnTop,
|
|
2572
2585
|
query,
|
|
2586
|
+
refreshAccessToken,
|
|
2573
2587
|
refreshServiceToken,
|
|
2574
2588
|
renderPageAsImage,
|
|
2575
2589
|
search,
|
|
2576
2590
|
selectDeviceFile,
|
|
2577
2591
|
shareCanvas,
|
|
2578
2592
|
submitUserFeedback,
|
|
2579
|
-
toast: toast$
|
|
2593
|
+
toast: toast$2,
|
|
2580
2594
|
track,
|
|
2581
2595
|
triggerNonFilesSync,
|
|
2582
|
-
updateCanvas: updateCanvas$
|
|
2596
|
+
updateCanvas: updateCanvas$2,
|
|
2583
2597
|
updateEvent,
|
|
2584
2598
|
updateFile,
|
|
2585
2599
|
updateFolder,
|
|
@@ -2761,6 +2775,29 @@ const snakeCaseKeys = (obj, skipKeys = defaultSkipKeys, skipObjectKeys = default
|
|
|
2761
2775
|
return obj;
|
|
2762
2776
|
};
|
|
2763
2777
|
|
|
2778
|
+
function truncateObject(obj, currentDepth = 1, lengthTrigger = 20) {
|
|
2779
|
+
if (typeof obj !== "object" || obj === null) {
|
|
2780
|
+
return obj;
|
|
2781
|
+
}
|
|
2782
|
+
if (Array.isArray(obj)) {
|
|
2783
|
+
if (obj.length > lengthTrigger && currentDepth <= 0) {
|
|
2784
|
+
return `[Truncated - ${obj.length} length array]`;
|
|
2785
|
+
}
|
|
2786
|
+
return obj.map((item) => truncateObject(item, currentDepth - 1, lengthTrigger));
|
|
2787
|
+
}
|
|
2788
|
+
const keys = Object.keys(obj);
|
|
2789
|
+
if (keys.length > lengthTrigger && currentDepth <= 0) {
|
|
2790
|
+
return `{Truncated - ${keys.length} properties obj}`;
|
|
2791
|
+
}
|
|
2792
|
+
return keys.reduce(
|
|
2793
|
+
(acc, key) => {
|
|
2794
|
+
acc[key] = truncateObject(obj[key], currentDepth - 1, lengthTrigger);
|
|
2795
|
+
return acc;
|
|
2796
|
+
},
|
|
2797
|
+
{}
|
|
2798
|
+
);
|
|
2799
|
+
}
|
|
2800
|
+
|
|
2764
2801
|
function isOriginValid(event, allowedOrigins = [], isDev = ["development", "test"].includes("production")) {
|
|
2765
2802
|
if (isDev) {
|
|
2766
2803
|
return true;
|
|
@@ -2780,27 +2817,72 @@ function isOriginValid(event, allowedOrigins = [], isDev = ["development", "test
|
|
|
2780
2817
|
|
|
2781
2818
|
const MAX_RETRIES = 5;
|
|
2782
2819
|
const BASE_DELAY = 1e3;
|
|
2820
|
+
let refreshPromise = null;
|
|
2821
|
+
async function refreshToken() {
|
|
2822
|
+
if (refreshPromise) return refreshPromise;
|
|
2823
|
+
console.info("Refreshing access token...");
|
|
2824
|
+
refreshPromise = (async () => {
|
|
2825
|
+
try {
|
|
2826
|
+
return await highLevelApi.refreshAccessToken().then(
|
|
2827
|
+
(accessTokenResponse) => highLevelApi.getEnv().then((env) => {
|
|
2828
|
+
setEnv(env);
|
|
2829
|
+
return accessTokenResponse.access_token;
|
|
2830
|
+
})
|
|
2831
|
+
);
|
|
2832
|
+
} catch (error) {
|
|
2833
|
+
console.error("Failed to refresh token:", error);
|
|
2834
|
+
throw error;
|
|
2835
|
+
} finally {
|
|
2836
|
+
refreshPromise = null;
|
|
2837
|
+
}
|
|
2838
|
+
})();
|
|
2839
|
+
return refreshPromise;
|
|
2840
|
+
}
|
|
2783
2841
|
function paramsSerializer(params) {
|
|
2784
2842
|
const searchParams = new URLSearchParams();
|
|
2785
|
-
|
|
2786
|
-
if (
|
|
2787
|
-
|
|
2843
|
+
function addParam(key, value) {
|
|
2844
|
+
if (value === void 0 || value === null) {
|
|
2845
|
+
return;
|
|
2846
|
+
}
|
|
2847
|
+
if (Array.isArray(value)) {
|
|
2848
|
+
value.forEach((val) => addParam(key, val));
|
|
2849
|
+
} else if (typeof value === "object" && !Array.isArray(value)) {
|
|
2850
|
+
for (const subKey in value) {
|
|
2851
|
+
addParam(`${key}[${subKey}]`, value[subKey]);
|
|
2852
|
+
}
|
|
2788
2853
|
} else {
|
|
2789
|
-
searchParams.append(key,
|
|
2854
|
+
searchParams.append(key, value);
|
|
2790
2855
|
}
|
|
2791
2856
|
}
|
|
2857
|
+
for (const key in params) {
|
|
2858
|
+
addParam(key, params[key]);
|
|
2859
|
+
}
|
|
2792
2860
|
return searchParams.toString();
|
|
2793
2861
|
}
|
|
2794
2862
|
async function fetchWithRetry(url, options, remainingRetries = MAX_RETRIES) {
|
|
2795
2863
|
try {
|
|
2796
2864
|
const response = await fetch(url, options);
|
|
2797
2865
|
if (!response.ok) {
|
|
2798
|
-
if (response.status
|
|
2866
|
+
if (response.status === 401) {
|
|
2867
|
+
const newToken = await refreshToken();
|
|
2868
|
+
options.headers = options.headers || {};
|
|
2869
|
+
options.headers.Authorization = `Bearer ${newToken}`;
|
|
2870
|
+
return fetchWithRetry(url, options, remainingRetries);
|
|
2871
|
+
} else if (response.status >= 500 && response.status < 600 && remainingRetries > 0) {
|
|
2799
2872
|
const delay = BASE_DELAY * Math.pow(2, MAX_RETRIES - remainingRetries);
|
|
2800
2873
|
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
2801
2874
|
return fetchWithRetry(url, options, remainingRetries - 1);
|
|
2875
|
+
} else {
|
|
2876
|
+
const errorData = await response.json();
|
|
2877
|
+
const error = new Error(
|
|
2878
|
+
`HTTP error! status: ${response.status}, message: ${errorData.message || response.statusText}`
|
|
2879
|
+
);
|
|
2880
|
+
error.status = response.status;
|
|
2881
|
+
throw error;
|
|
2802
2882
|
}
|
|
2803
|
-
|
|
2883
|
+
}
|
|
2884
|
+
if (response.status === 204 || response.status === 205) {
|
|
2885
|
+
return;
|
|
2804
2886
|
}
|
|
2805
2887
|
return response.json();
|
|
2806
2888
|
} catch (error) {
|
|
@@ -2891,13 +2973,26 @@ function createHttpClient(origin, token) {
|
|
|
2891
2973
|
};
|
|
2892
2974
|
}
|
|
2893
2975
|
|
|
2976
|
+
function normalizeNetworkFilterParams(params) {
|
|
2977
|
+
if (!params) return {};
|
|
2978
|
+
return Object.entries(params).reduce(
|
|
2979
|
+
(acc, [key, value]) => {
|
|
2980
|
+
acc[key] = key.endsWith("__range") && Array.isArray(value) ? value.join(",") : value;
|
|
2981
|
+
return acc;
|
|
2982
|
+
},
|
|
2983
|
+
{}
|
|
2984
|
+
);
|
|
2985
|
+
}
|
|
2986
|
+
|
|
2894
2987
|
let env;
|
|
2895
2988
|
let http;
|
|
2896
|
-
|
|
2897
|
-
const check = () => {
|
|
2989
|
+
function check() {
|
|
2898
2990
|
if (!env) throw new Error("Missing env");
|
|
2899
2991
|
if (!http) throw new Error("Missing http");
|
|
2900
|
-
}
|
|
2992
|
+
}
|
|
2993
|
+
function pickNonNullish(data) {
|
|
2994
|
+
return pickBy(data ?? {}, (v) => v !== void 0 && v !== null);
|
|
2995
|
+
}
|
|
2901
2996
|
const setEnv = (e) => {
|
|
2902
2997
|
env = e;
|
|
2903
2998
|
http = createHttpClient(
|
|
@@ -2907,21 +3002,58 @@ const setEnv = (e) => {
|
|
|
2907
3002
|
};
|
|
2908
3003
|
const onlineRestApiHandlers = {
|
|
2909
3004
|
get_canvases: async (params) => {
|
|
2910
|
-
logInfo("online handler get_canvases called with:", params);
|
|
2911
3005
|
check();
|
|
2912
|
-
const { api_base_url, ...restParams } = params;
|
|
2913
|
-
const res = await http.get("/canvases", {
|
|
3006
|
+
const { api_base_url, filters = {}, ...restParams } = params;
|
|
3007
|
+
const res = await http.get("/canvases", {
|
|
3008
|
+
params: {
|
|
3009
|
+
instance_id: env.pitcher.instance.id,
|
|
3010
|
+
...normalizeNetworkFilterParams(filters),
|
|
3011
|
+
...pickNonNullish(restParams)
|
|
3012
|
+
}
|
|
3013
|
+
});
|
|
2914
3014
|
return res;
|
|
2915
3015
|
},
|
|
2916
3016
|
get_canvas: async (params) => {
|
|
2917
|
-
logInfo("online handler get_canvas called with:", params);
|
|
2918
3017
|
check();
|
|
2919
3018
|
const { id, ...restParams } = params;
|
|
2920
3019
|
const res = await http.get(`/canvases/${params.id}`, { params: restParams });
|
|
2921
3020
|
return res;
|
|
3021
|
+
},
|
|
3022
|
+
create_canvas: async (params) => {
|
|
3023
|
+
check();
|
|
3024
|
+
const res = await http.post("/canvases", { ...params, instance_id: env.pitcher.instance.id });
|
|
3025
|
+
return res;
|
|
3026
|
+
},
|
|
3027
|
+
update_canvas: async (params) => {
|
|
3028
|
+
check();
|
|
3029
|
+
const { id, ...restParams } = params;
|
|
3030
|
+
const res = await http.patch(`/canvases/${params.id}`, restParams);
|
|
3031
|
+
return res;
|
|
3032
|
+
},
|
|
3033
|
+
delete_canvas: async (params) => {
|
|
3034
|
+
check();
|
|
3035
|
+
const res = await http.delete(`/canvases/${params.id}`);
|
|
3036
|
+
return res;
|
|
3037
|
+
},
|
|
3038
|
+
share_canvas: async (params) => {
|
|
3039
|
+
check();
|
|
3040
|
+
let link;
|
|
3041
|
+
try {
|
|
3042
|
+
link = await http.get(`/shared-links/canvas/${params.id}`);
|
|
3043
|
+
} catch (e) {
|
|
3044
|
+
if (e?.status === 404) {
|
|
3045
|
+
link = await http.post("/shared-links", {
|
|
3046
|
+
canvas_id: params.id
|
|
3047
|
+
});
|
|
3048
|
+
} else {
|
|
3049
|
+
throw e;
|
|
3050
|
+
}
|
|
3051
|
+
}
|
|
3052
|
+
return link;
|
|
2922
3053
|
}
|
|
2923
3054
|
};
|
|
2924
3055
|
|
|
3056
|
+
const TRUNCATE_LENGTH_TRIGGER = 10;
|
|
2925
3057
|
function updateOnlineHandlersEnv(env) {
|
|
2926
3058
|
env && setEnv(env);
|
|
2927
3059
|
}
|
|
@@ -2965,7 +3097,7 @@ class LowLevelApi extends EventEmitter {
|
|
|
2965
3097
|
this.emit("event", event);
|
|
2966
3098
|
}
|
|
2967
3099
|
request(type, body = null) {
|
|
2968
|
-
const fetchMode = this.options.fetchMode ?? "
|
|
3100
|
+
const fetchMode = this.options.fetchMode ?? "postmessage";
|
|
2969
3101
|
return new Promise((resolve, reject) => {
|
|
2970
3102
|
const id = v4();
|
|
2971
3103
|
const callback = (res) => {
|
|
@@ -2976,10 +3108,12 @@ class LowLevelApi extends EventEmitter {
|
|
|
2976
3108
|
);
|
|
2977
3109
|
if (type === "get_env") updateOnlineHandlersEnv(res.response.body);
|
|
2978
3110
|
} else if (res.response.status === "error") {
|
|
2979
|
-
this.options.errorLogger
|
|
2980
|
-
|
|
2981
|
-
|
|
2982
|
-
|
|
3111
|
+
if (this.options.errorLogger) {
|
|
3112
|
+
this.options.errorLogger({
|
|
3113
|
+
message: `Pitcher JS API call failure: ${res.request.type}`,
|
|
3114
|
+
js_api_response: JSON.stringify(truncateObject(res, 3, TRUNCATE_LENGTH_TRIGGER))
|
|
3115
|
+
});
|
|
3116
|
+
}
|
|
2983
3117
|
reject(this.options.casing === "camel" ? camelCaseKeys(res.response.body) : res.response.body);
|
|
2984
3118
|
} else {
|
|
2985
3119
|
throw new Error("unsupported response status");
|
|
@@ -3040,15 +3174,105 @@ function createHighLevelApi(options) {
|
|
|
3040
3174
|
return {
|
|
3041
3175
|
API,
|
|
3042
3176
|
...modules,
|
|
3177
|
+
/**
|
|
3178
|
+
* Subscribe to a given event type by its key.
|
|
3179
|
+
*
|
|
3180
|
+
* @param {string} type - The event type to subscribe to.
|
|
3181
|
+
* @param {(payload: PitcherEvent) => void} callback - The callback function to handle the event.
|
|
3182
|
+
* @returns A Promise resolving to a cleanup function to unsubscribe from the event. * @example
|
|
3183
|
+
*
|
|
3184
|
+
* @example
|
|
3185
|
+
* const unsubscribeFromSectionListUpdate = usePitcherApi().on('entered_fullscreen', (event: object) => {
|
|
3186
|
+
* // handle event
|
|
3187
|
+
* })
|
|
3188
|
+
* // later
|
|
3189
|
+
* unsubscribeFromSectionListUpdate()
|
|
3190
|
+
*/
|
|
3043
3191
|
on: (type, callback) => eventEmitter.on(type, callback),
|
|
3192
|
+
/**
|
|
3193
|
+
* Unsubscribe from a given event type by its key and the attached callback reference.
|
|
3194
|
+
* @param {string} type - The event type to unsubscribe from.
|
|
3195
|
+
* @param {(payload: PitcherEvent) => void} callback - The callback function reference to remove.
|
|
3196
|
+
*
|
|
3197
|
+
* @example
|
|
3198
|
+
* const callback = (event: object) => {
|
|
3199
|
+
* // handle event
|
|
3200
|
+
* }
|
|
3201
|
+
* usePitcherApi().on('entered_fullscreen', callback)
|
|
3202
|
+
* // later
|
|
3203
|
+
* usePitcherApi().off('entered_fullscreen', callback)
|
|
3204
|
+
*/
|
|
3044
3205
|
off: (type, callback) => eventEmitter.off(type, callback),
|
|
3206
|
+
/**
|
|
3207
|
+
* Make the entire CatalogIQ fullscreen.
|
|
3208
|
+
*
|
|
3209
|
+
* @example
|
|
3210
|
+
* usePitcherApi().enterFullscreen()
|
|
3211
|
+
*/
|
|
3045
3212
|
enterFullscreen: () => API.request("enter_fullscreen"),
|
|
3213
|
+
/**
|
|
3214
|
+
* Exit fullscreen mode.
|
|
3215
|
+
*
|
|
3216
|
+
* @example
|
|
3217
|
+
* usePitcherApi().exitFullscreen()
|
|
3218
|
+
*/
|
|
3046
3219
|
exitFullscreen: () => API.request("exit_fullscreen"),
|
|
3220
|
+
/**
|
|
3221
|
+
* Return is CatalogIQ in fullscreen.
|
|
3222
|
+
*
|
|
3223
|
+
* @example
|
|
3224
|
+
* usePitcherApi().isFullscreen()
|
|
3225
|
+
*/
|
|
3226
|
+
isFullscreen: () => API.request("is_fullscreen"),
|
|
3227
|
+
/**
|
|
3228
|
+
* Log out the current user.
|
|
3229
|
+
*
|
|
3230
|
+
* @example
|
|
3231
|
+
* usePitcherApi().logout()
|
|
3232
|
+
*/
|
|
3047
3233
|
logout: () => API.request("logout"),
|
|
3234
|
+
/**
|
|
3235
|
+
* Quit the current instance and go to the instance selection screen.
|
|
3236
|
+
*
|
|
3237
|
+
* @example
|
|
3238
|
+
* usePitcherApi().quitInstance()
|
|
3239
|
+
*/
|
|
3048
3240
|
quitInstance: () => API.request("quit_instance"),
|
|
3241
|
+
/**
|
|
3242
|
+
* Get the request types.
|
|
3243
|
+
*
|
|
3244
|
+
* @returns {Promise<any>}
|
|
3245
|
+
*/
|
|
3049
3246
|
getRequestTypes: () => API.request("get_request_types"),
|
|
3247
|
+
/**
|
|
3248
|
+
* Broadcast an event to CatalogIQ.
|
|
3249
|
+
* @param {PitcherEvent} event - The event to broadcast.
|
|
3250
|
+
*
|
|
3251
|
+
* @example
|
|
3252
|
+
* usePitcherApi()
|
|
3253
|
+
* .broadcast({
|
|
3254
|
+
* type: "canvas_updated",
|
|
3255
|
+
* body: { context: { myContextProperty: 'test' } },
|
|
3256
|
+
* })
|
|
3257
|
+
* .then(function (result) {
|
|
3258
|
+
* useUi().toast({
|
|
3259
|
+
* message: "Canvas Populated.",
|
|
3260
|
+
* type: "info",
|
|
3261
|
+
* })
|
|
3262
|
+
* })
|
|
3263
|
+
*/
|
|
3050
3264
|
broadcast: (event) => API.request("broadcast", event),
|
|
3265
|
+
/**
|
|
3266
|
+
* Subscribe to updates.
|
|
3267
|
+
*
|
|
3268
|
+
* @returns {Promise<void>}
|
|
3269
|
+
*/
|
|
3051
3270
|
subscribe: () => API.request("subscribe"),
|
|
3271
|
+
/**
|
|
3272
|
+
* Unsubscribe from updates.
|
|
3273
|
+
*
|
|
3274
|
+
* @returns {Promise<void>}
|
|
3275
|
+
*/
|
|
3052
3276
|
unsubscribe: () => API.request("unsubscribe")
|
|
3053
3277
|
};
|
|
3054
3278
|
}
|
|
@@ -3062,17 +3286,20 @@ const UI_MESSAGE = "UI_MESSAGE";
|
|
|
3062
3286
|
const UI_API_METHOD_TYPES = {
|
|
3063
3287
|
UI_BROADCAST: "ui_broadcast",
|
|
3064
3288
|
UI_SELECT_CONTENT: "ui_select_content",
|
|
3289
|
+
UI_SELECT_CANVASES: "ui_select_canvases",
|
|
3065
3290
|
UI_OPEN: "ui_open",
|
|
3066
3291
|
UI_EMBEDDABLE_READY: "ui_embeddable_ready",
|
|
3067
3292
|
UI_TOAST: "ui_toast",
|
|
3068
3293
|
UI_CAPTURE_APP_ERROR: "ui_capture_app_error",
|
|
3069
3294
|
UI_UPDATE_CANVAS: "ui_update_canvas",
|
|
3295
|
+
UI_OPEN_CANVAS_OVERLAY: "ui_open_canvas_overlay",
|
|
3070
3296
|
UI_UPDATE_LOCATION: "ui_update_location",
|
|
3071
3297
|
UI_PRESELECT_SFDC_MEETING_ID: "ui_preselect_sfdc_meeting_id",
|
|
3072
3298
|
UI_SET_POSTCALL_STYLE: "ui_set_postcall_style",
|
|
3073
3299
|
UI_ENABLE_POSTCALL_SUBMIT: "ui_enable_postcall_submit",
|
|
3074
3300
|
UI_DISABLE_POSTCALL_SUBMIT: "ui_disable_postcall_submit",
|
|
3075
3301
|
UI_COMPLETE_POSTCALL: "ui_complete_postcall",
|
|
3302
|
+
UI_STOP_MEETING: "ui_stop_meeting",
|
|
3076
3303
|
UI_CANVAS_NAVIGATE_NEXT_PAGE: "ui_canvas_navigate_next_page",
|
|
3077
3304
|
UI_CANVAS_NAVIGATE_PREVIOUS_PAGE: "ui_canvas_navigate_previous_page",
|
|
3078
3305
|
UI_CANVAS_NAVIGATE_PAGE: "ui_canvas_navigate_page",
|
|
@@ -3100,7 +3327,7 @@ async function ui_select_content(payload = {}) {
|
|
|
3100
3327
|
const response = await pr.send(window.parent, UI_API_METHOD_TYPES.UI_SELECT_CONTENT, payload);
|
|
3101
3328
|
return response.data;
|
|
3102
3329
|
}
|
|
3103
|
-
async function
|
|
3330
|
+
async function selectContent$1(payload = {}) {
|
|
3104
3331
|
const pr = await usePostRobot();
|
|
3105
3332
|
const response = await pr.send(window.parent, UI_API_METHOD_TYPES.UI_SELECT_CONTENT, payload);
|
|
3106
3333
|
return response.data;
|
|
@@ -3109,73 +3336,130 @@ async function open(payload) {
|
|
|
3109
3336
|
const pr = await usePostRobot();
|
|
3110
3337
|
await pr.send(window.parent, UI_API_METHOD_TYPES.UI_OPEN, payload);
|
|
3111
3338
|
}
|
|
3112
|
-
async function toast(payload) {
|
|
3339
|
+
async function toast$1(payload) {
|
|
3113
3340
|
const pr = await usePostRobot();
|
|
3114
3341
|
await pr.send(window.parent, UI_API_METHOD_TYPES.UI_TOAST, payload);
|
|
3115
3342
|
}
|
|
3116
|
-
async function
|
|
3343
|
+
async function preselectSfdcMeetingId(payload) {
|
|
3117
3344
|
const pr = await usePostRobot();
|
|
3118
3345
|
const response = await pr.send(window.parent, UI_API_METHOD_TYPES.UI_PRESELECT_SFDC_MEETING_ID, payload);
|
|
3119
3346
|
return response.data;
|
|
3120
3347
|
}
|
|
3121
3348
|
|
|
3122
|
-
|
|
3349
|
+
const contentUi = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
3350
|
+
__proto__: null,
|
|
3351
|
+
open,
|
|
3352
|
+
preselectSfdcMeetingId,
|
|
3353
|
+
selectContent: selectContent$1,
|
|
3354
|
+
toast: toast$1,
|
|
3355
|
+
ui_select_content
|
|
3356
|
+
}, Symbol.toStringTag, { value: 'Module' }));
|
|
3357
|
+
|
|
3358
|
+
async function embeddableReady$1() {
|
|
3123
3359
|
const pr = await usePostRobot();
|
|
3124
3360
|
await pr.send(window.parent, UI_API_METHOD_TYPES.UI_EMBEDDABLE_READY);
|
|
3125
3361
|
}
|
|
3126
3362
|
|
|
3127
|
-
|
|
3363
|
+
const loadingUi = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
3364
|
+
__proto__: null,
|
|
3365
|
+
embeddableReady: embeddableReady$1
|
|
3366
|
+
}, Symbol.toStringTag, { value: 'Module' }));
|
|
3367
|
+
|
|
3368
|
+
async function updateLocation(payload) {
|
|
3128
3369
|
const pr = await usePostRobot();
|
|
3129
3370
|
return pr.send(window.top, UI_API_METHOD_TYPES.UI_UPDATE_LOCATION, payload);
|
|
3130
3371
|
}
|
|
3131
3372
|
|
|
3132
|
-
|
|
3373
|
+
const locationUi = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
3374
|
+
__proto__: null,
|
|
3375
|
+
updateLocation
|
|
3376
|
+
}, Symbol.toStringTag, { value: 'Module' }));
|
|
3377
|
+
|
|
3378
|
+
async function captureAppError(payload) {
|
|
3133
3379
|
const pr = await usePostRobot();
|
|
3134
3380
|
pr.send(window.parent, UI_API_METHOD_TYPES.UI_CAPTURE_APP_ERROR, payload);
|
|
3135
3381
|
}
|
|
3136
3382
|
|
|
3137
|
-
|
|
3383
|
+
const appErrorsUi = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
3384
|
+
__proto__: null,
|
|
3385
|
+
captureAppError
|
|
3386
|
+
}, Symbol.toStringTag, { value: 'Module' }));
|
|
3387
|
+
|
|
3388
|
+
async function updateCanvas$1(payload) {
|
|
3138
3389
|
const pr = await usePostRobot();
|
|
3139
3390
|
return pr.send(window.parent, UI_API_METHOD_TYPES.UI_UPDATE_CANVAS, payload).then((response) => response.data);
|
|
3140
3391
|
}
|
|
3141
|
-
async function
|
|
3392
|
+
async function appLoaded() {
|
|
3142
3393
|
window.parent.postMessage({ type: UI_API_METHOD_TYPES.UI_APP_LOADED, body: {} }, "*");
|
|
3143
3394
|
}
|
|
3144
|
-
async function
|
|
3395
|
+
async function appResize(payload) {
|
|
3145
3396
|
window.parent.postMessage({ type: UI_API_METHOD_TYPES.UI_APP_RESIZE, body: payload }, "*");
|
|
3146
3397
|
}
|
|
3147
|
-
async function
|
|
3398
|
+
async function canvasNavigateNextPage() {
|
|
3148
3399
|
const pr = await usePostRobot();
|
|
3149
3400
|
pr.send(window.parent, UI_API_METHOD_TYPES.UI_CANVAS_NAVIGATE_NEXT_PAGE);
|
|
3150
3401
|
}
|
|
3151
|
-
async function
|
|
3402
|
+
async function canvasNavigatePreviousPage() {
|
|
3152
3403
|
const pr = await usePostRobot();
|
|
3153
3404
|
pr.send(window.parent, UI_API_METHOD_TYPES.UI_CANVAS_NAVIGATE_PREVIOUS_PAGE);
|
|
3154
3405
|
}
|
|
3155
|
-
async function
|
|
3406
|
+
async function canvasNavigatePage(payload) {
|
|
3156
3407
|
const pr = await usePostRobot();
|
|
3157
3408
|
pr.send(window.parent, UI_API_METHOD_TYPES.UI_CANVAS_NAVIGATE_PAGE, payload);
|
|
3158
3409
|
}
|
|
3410
|
+
async function openCanvasOverlay$1(payload) {
|
|
3411
|
+
const pr = await usePostRobot();
|
|
3412
|
+
await pr.send(window.parent, UI_API_METHOD_TYPES.UI_OPEN_CANVAS_OVERLAY, payload);
|
|
3413
|
+
}
|
|
3414
|
+
async function selectCanvases$1(payload = {}) {
|
|
3415
|
+
const pr = await usePostRobot();
|
|
3416
|
+
const response = await pr.send(window.parent, UI_API_METHOD_TYPES.UI_SELECT_CANVASES, payload);
|
|
3417
|
+
return response.data;
|
|
3418
|
+
}
|
|
3159
3419
|
|
|
3160
|
-
|
|
3420
|
+
const canvasUi = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
3421
|
+
__proto__: null,
|
|
3422
|
+
appLoaded,
|
|
3423
|
+
appResize,
|
|
3424
|
+
canvasNavigateNextPage,
|
|
3425
|
+
canvasNavigatePage,
|
|
3426
|
+
canvasNavigatePreviousPage,
|
|
3427
|
+
openCanvasOverlay: openCanvasOverlay$1,
|
|
3428
|
+
selectCanvases: selectCanvases$1,
|
|
3429
|
+
updateCanvas: updateCanvas$1
|
|
3430
|
+
}, Symbol.toStringTag, { value: 'Module' }));
|
|
3431
|
+
|
|
3432
|
+
async function completePostcall(payload) {
|
|
3161
3433
|
const pr = await usePostRobot();
|
|
3162
3434
|
pr.send(window.parent, UI_API_METHOD_TYPES.UI_COMPLETE_POSTCALL, payload);
|
|
3163
3435
|
}
|
|
3164
|
-
async function
|
|
3436
|
+
async function stopMeeting() {
|
|
3437
|
+
const pr = await usePostRobot();
|
|
3438
|
+
pr.send(window.parent, UI_API_METHOD_TYPES.UI_STOP_MEETING);
|
|
3439
|
+
}
|
|
3440
|
+
async function enablePostcallSubmit() {
|
|
3165
3441
|
const pr = await usePostRobot();
|
|
3166
3442
|
pr.send(window.parent, UI_API_METHOD_TYPES.UI_ENABLE_POSTCALL_SUBMIT);
|
|
3167
3443
|
}
|
|
3168
|
-
async function
|
|
3444
|
+
async function disablePostcallSubmit() {
|
|
3169
3445
|
const pr = await usePostRobot();
|
|
3170
3446
|
pr.send(window.parent, UI_API_METHOD_TYPES.UI_DISABLE_POSTCALL_SUBMIT);
|
|
3171
3447
|
}
|
|
3172
|
-
async function
|
|
3448
|
+
async function setPostcallStyle(payload) {
|
|
3173
3449
|
const pr = await usePostRobot();
|
|
3174
3450
|
pr.send(window.parent, UI_API_METHOD_TYPES.UI_SET_POSTCALL_STYLE, payload);
|
|
3175
3451
|
}
|
|
3176
3452
|
|
|
3177
|
-
|
|
3178
|
-
|
|
3453
|
+
const postCallUi = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
3454
|
+
__proto__: null,
|
|
3455
|
+
completePostcall,
|
|
3456
|
+
disablePostcallSubmit,
|
|
3457
|
+
enablePostcallSubmit,
|
|
3458
|
+
setPostcallStyle,
|
|
3459
|
+
stopMeeting
|
|
3460
|
+
}, Symbol.toStringTag, { value: 'Module' }));
|
|
3461
|
+
|
|
3462
|
+
async function onNative(type, handler) {
|
|
3179
3463
|
const messageListener = (event) => {
|
|
3180
3464
|
if (event.data.type === type) {
|
|
3181
3465
|
handler(event.data.body);
|
|
@@ -3184,65 +3468,51 @@ async function on_native(type, handler) {
|
|
|
3184
3468
|
window.addEventListener("message", messageListener);
|
|
3185
3469
|
return () => window.removeEventListener("message", messageListener);
|
|
3186
3470
|
}
|
|
3187
|
-
async function
|
|
3471
|
+
async function onPostRobot(type, handler) {
|
|
3188
3472
|
const pr = await usePostRobot();
|
|
3189
3473
|
const listener = pr.on(type, (e) => handler(e.data));
|
|
3190
3474
|
return listener.cancel;
|
|
3191
3475
|
}
|
|
3192
3476
|
function on$2(type, handler) {
|
|
3193
3477
|
if (UI_NATIVE_MESSAGE_TYPES.includes(type)) {
|
|
3194
|
-
return
|
|
3478
|
+
return onNative(type, handler);
|
|
3195
3479
|
}
|
|
3196
|
-
return
|
|
3480
|
+
return onPostRobot(type, handler);
|
|
3197
3481
|
}
|
|
3198
|
-
function
|
|
3482
|
+
function onMeetingCanceled(handler) {
|
|
3199
3483
|
return on$2(UI_MESSAGE_TYPES.UI_MEETING_CANCELED, handler);
|
|
3200
3484
|
}
|
|
3201
|
-
function
|
|
3485
|
+
function onCanvasUpdated(handler) {
|
|
3202
3486
|
return on$2(UI_MESSAGE_TYPES.UI_CANVAS_UPDATED, handler);
|
|
3203
3487
|
}
|
|
3204
|
-
function
|
|
3488
|
+
function onSectionListUpdated(handler) {
|
|
3205
3489
|
return on$2(UI_MESSAGE_TYPES.UI_SECTION_LIST_UPDATED, handler);
|
|
3206
3490
|
}
|
|
3207
|
-
function
|
|
3491
|
+
function onAppSetData(handler) {
|
|
3208
3492
|
return on$2(UI_MESSAGE_TYPES.UI_APP_SET_DATA, handler);
|
|
3209
3493
|
}
|
|
3210
|
-
function
|
|
3494
|
+
function onAppUpdateData(handler) {
|
|
3211
3495
|
return on$2(UI_MESSAGE_TYPES.UI_APP_UPDATE_DATA, handler);
|
|
3212
3496
|
}
|
|
3213
|
-
async function
|
|
3497
|
+
async function uiBroadcast(payload) {
|
|
3214
3498
|
const pr = await usePostRobot();
|
|
3215
3499
|
pr.send(window.parent, UI_API_METHOD_TYPES.UI_BROADCAST, payload);
|
|
3216
3500
|
}
|
|
3217
|
-
|
|
3218
|
-
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
3227
|
-
|
|
3228
|
-
|
|
3229
|
-
|
|
3230
|
-
|
|
3231
|
-
|
|
3232
|
-
on_app_update_data,
|
|
3233
|
-
on_canvas_updated,
|
|
3234
|
-
on_meeting_canceled,
|
|
3235
|
-
on_section_list_updated,
|
|
3236
|
-
open,
|
|
3237
|
-
preselect_sfdc_meeting_id,
|
|
3238
|
-
select_content,
|
|
3239
|
-
set_postcall_style,
|
|
3240
|
-
toast,
|
|
3241
|
-
ui_broadcast,
|
|
3242
|
-
ui_select_content,
|
|
3243
|
-
update_canvas,
|
|
3244
|
-
update_location
|
|
3245
|
-
}, Symbol.toStringTag, { value: 'Module' }));
|
|
3501
|
+
const ui = {
|
|
3502
|
+
on: on$2,
|
|
3503
|
+
onMeetingCanceled,
|
|
3504
|
+
onCanvasUpdated,
|
|
3505
|
+
onSectionListUpdated,
|
|
3506
|
+
onAppSetData,
|
|
3507
|
+
onAppUpdateData,
|
|
3508
|
+
uiBroadcast,
|
|
3509
|
+
...contentUi,
|
|
3510
|
+
...loadingUi,
|
|
3511
|
+
...locationUi,
|
|
3512
|
+
...appErrorsUi,
|
|
3513
|
+
...canvasUi,
|
|
3514
|
+
...postCallUi
|
|
3515
|
+
};
|
|
3246
3516
|
|
|
3247
3517
|
const ADMIN_MESSAGE = "ADMIN_MESSAGE";
|
|
3248
3518
|
const ADMIN_MESSAGE_TYPES = {
|
|
@@ -3254,12 +3524,18 @@ const ADMIN_API_TYPES = {
|
|
|
3254
3524
|
};
|
|
3255
3525
|
const ADMIN_API_METHOD_TYPES = {
|
|
3256
3526
|
CREATE_CANVAS: "admin_create_canvas",
|
|
3257
|
-
|
|
3527
|
+
GET_APP_CONFIG: "admin_get_app_config",
|
|
3258
3528
|
GET_CANVAS: "admin_get_canvas",
|
|
3259
3529
|
GET_CANVASES: "admin_get_canvases",
|
|
3260
|
-
|
|
3530
|
+
OPEN_CANVAS_OVERLAY: "admin_open_canvas_overlay",
|
|
3531
|
+
GET_ENV: "admin_get_env",
|
|
3532
|
+
GET_FILE: "admin_get_file",
|
|
3533
|
+
GET_FILES: "admin_get_files",
|
|
3261
3534
|
GET_INSTANCE_METADATA_TEMPLATES: "admin_get_instance_metadata_templates",
|
|
3262
|
-
|
|
3535
|
+
TOAST: "admin_toast",
|
|
3536
|
+
UPDATE_CANVAS: "admin_update_canvas",
|
|
3537
|
+
SELECT_CONTENT: "admin_select_content",
|
|
3538
|
+
SELECT_CANVASES: "admin_select_canvases"
|
|
3263
3539
|
};
|
|
3264
3540
|
|
|
3265
3541
|
async function getEnv$1() {
|
|
@@ -3268,6 +3544,11 @@ async function getEnv$1() {
|
|
|
3268
3544
|
return response.data;
|
|
3269
3545
|
}
|
|
3270
3546
|
|
|
3547
|
+
const envAdmin = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
3548
|
+
__proto__: null,
|
|
3549
|
+
getEnv: getEnv$1
|
|
3550
|
+
}, Symbol.toStringTag, { value: 'Module' }));
|
|
3551
|
+
|
|
3271
3552
|
async function createCanvas(payload) {
|
|
3272
3553
|
const pr = await usePostRobot();
|
|
3273
3554
|
const response = await pr.send(window.parent, ADMIN_API_METHOD_TYPES.CREATE_CANVAS, payload);
|
|
@@ -3288,6 +3569,25 @@ async function updateCanvas(payload) {
|
|
|
3288
3569
|
const r = await pr.send(window.parent, ADMIN_API_METHOD_TYPES.UPDATE_CANVAS, payload);
|
|
3289
3570
|
return r.data;
|
|
3290
3571
|
}
|
|
3572
|
+
async function openCanvasOverlay(payload) {
|
|
3573
|
+
const pr = await usePostRobot();
|
|
3574
|
+
await pr.send(window.parent, ADMIN_API_METHOD_TYPES.OPEN_CANVAS_OVERLAY, payload);
|
|
3575
|
+
}
|
|
3576
|
+
async function selectCanvases(payload = {}) {
|
|
3577
|
+
const pr = await usePostRobot();
|
|
3578
|
+
const response = await pr.send(window.parent, ADMIN_API_METHOD_TYPES.SELECT_CANVASES, payload);
|
|
3579
|
+
return response.data;
|
|
3580
|
+
}
|
|
3581
|
+
|
|
3582
|
+
const canvasAdmin = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
3583
|
+
__proto__: null,
|
|
3584
|
+
createCanvas,
|
|
3585
|
+
getCanvas,
|
|
3586
|
+
getCanvases,
|
|
3587
|
+
openCanvasOverlay,
|
|
3588
|
+
selectCanvases,
|
|
3589
|
+
updateCanvas
|
|
3590
|
+
}, Symbol.toStringTag, { value: 'Module' }));
|
|
3291
3591
|
|
|
3292
3592
|
async function getInstanceMetadataTemplates(payload) {
|
|
3293
3593
|
const pr = await usePostRobot();
|
|
@@ -3295,23 +3595,58 @@ async function getInstanceMetadataTemplates(payload) {
|
|
|
3295
3595
|
return response.data;
|
|
3296
3596
|
}
|
|
3297
3597
|
|
|
3298
|
-
|
|
3598
|
+
const metadataTemplatesAdmin = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
3599
|
+
__proto__: null,
|
|
3600
|
+
getInstanceMetadataTemplates
|
|
3601
|
+
}, Symbol.toStringTag, { value: 'Module' }));
|
|
3602
|
+
|
|
3603
|
+
async function getAppConfig(payload) {
|
|
3299
3604
|
const pr = await usePostRobot();
|
|
3300
|
-
const
|
|
3301
|
-
return
|
|
3605
|
+
const response = await pr.send(window.parent, ADMIN_API_METHOD_TYPES.GET_APP_CONFIG, payload);
|
|
3606
|
+
return response.data;
|
|
3607
|
+
}
|
|
3608
|
+
async function getFile(payload) {
|
|
3609
|
+
const pr = await usePostRobot();
|
|
3610
|
+
const response = await pr.send(window.parent, ADMIN_API_METHOD_TYPES.GET_FILE, payload);
|
|
3611
|
+
return response.data;
|
|
3612
|
+
}
|
|
3613
|
+
async function getFiles(payload) {
|
|
3614
|
+
const pr = await usePostRobot();
|
|
3615
|
+
const response = await pr.send(window.parent, ADMIN_API_METHOD_TYPES.GET_FILES, payload);
|
|
3616
|
+
return response.data;
|
|
3617
|
+
}
|
|
3618
|
+
async function selectContent(payload) {
|
|
3619
|
+
const pr = await usePostRobot();
|
|
3620
|
+
const response = await pr.send(window.parent, ADMIN_API_METHOD_TYPES.SELECT_CONTENT, payload);
|
|
3621
|
+
return response.data;
|
|
3302
3622
|
}
|
|
3303
3623
|
|
|
3304
|
-
const
|
|
3624
|
+
const filesAdmin = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
3305
3625
|
__proto__: null,
|
|
3306
|
-
|
|
3307
|
-
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
getInstanceMetadataTemplates,
|
|
3311
|
-
on: on$1,
|
|
3312
|
-
updateCanvas
|
|
3626
|
+
getAppConfig,
|
|
3627
|
+
getFile,
|
|
3628
|
+
getFiles,
|
|
3629
|
+
selectContent
|
|
3313
3630
|
}, Symbol.toStringTag, { value: 'Module' }));
|
|
3314
3631
|
|
|
3632
|
+
async function on$1(type, handler) {
|
|
3633
|
+
const pr = await usePostRobot();
|
|
3634
|
+
const listener = pr.on(type, (e) => handler(e.data));
|
|
3635
|
+
return listener.cancel;
|
|
3636
|
+
}
|
|
3637
|
+
async function toast(payload) {
|
|
3638
|
+
const pr = await usePostRobot();
|
|
3639
|
+
await pr.send(window.parent, ADMIN_API_METHOD_TYPES.TOAST, payload);
|
|
3640
|
+
}
|
|
3641
|
+
const admin = {
|
|
3642
|
+
on: on$1,
|
|
3643
|
+
toast,
|
|
3644
|
+
...envAdmin,
|
|
3645
|
+
...canvasAdmin,
|
|
3646
|
+
...metadataTemplatesAdmin,
|
|
3647
|
+
...filesAdmin
|
|
3648
|
+
};
|
|
3649
|
+
|
|
3315
3650
|
const DSR_MESSAGE = "DSR_MESSAGE";
|
|
3316
3651
|
const DSR_MESSAGE_TYPES = {
|
|
3317
3652
|
ENV_CHANGED: "dsr_env_changed"
|
|
@@ -3331,61 +3666,59 @@ async function getEnv() {
|
|
|
3331
3666
|
return response.data;
|
|
3332
3667
|
}
|
|
3333
3668
|
|
|
3334
|
-
|
|
3669
|
+
const envDsr = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
3670
|
+
__proto__: null,
|
|
3671
|
+
getEnv
|
|
3672
|
+
}, Symbol.toStringTag, { value: 'Module' }));
|
|
3673
|
+
|
|
3674
|
+
async function embeddableReady() {
|
|
3335
3675
|
const pr = await usePostRobot();
|
|
3336
3676
|
await pr.send(window.parent, DSR_API_METHOD_TYPES.DSR_EMBEDDABLE_READY);
|
|
3337
3677
|
}
|
|
3338
3678
|
|
|
3679
|
+
const loadingDsr = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
3680
|
+
__proto__: null,
|
|
3681
|
+
embeddableReady
|
|
3682
|
+
}, Symbol.toStringTag, { value: 'Module' }));
|
|
3683
|
+
|
|
3339
3684
|
async function on(type, handler) {
|
|
3340
3685
|
const pr = await usePostRobot();
|
|
3341
3686
|
const listener = pr.on(type, (e) => handler(e.data));
|
|
3342
3687
|
return listener.cancel;
|
|
3343
3688
|
}
|
|
3344
|
-
|
|
3345
|
-
|
|
3346
|
-
|
|
3347
|
-
|
|
3348
|
-
|
|
3349
|
-
on
|
|
3350
|
-
}, Symbol.toStringTag, { value: 'Module' }));
|
|
3689
|
+
const dsr = {
|
|
3690
|
+
on,
|
|
3691
|
+
...envDsr,
|
|
3692
|
+
...loadingDsr
|
|
3693
|
+
};
|
|
3351
3694
|
|
|
3352
3695
|
let highLevelApi;
|
|
3696
|
+
let prevOptions;
|
|
3353
3697
|
function usePitcherApi(options) {
|
|
3354
|
-
if (!highLevelApi
|
|
3698
|
+
if (!highLevelApi || !isEqual(options, prevOptions)) {
|
|
3699
|
+
highLevelApi = createHighLevelApi(options);
|
|
3700
|
+
prevOptions = options;
|
|
3701
|
+
}
|
|
3355
3702
|
return highLevelApi;
|
|
3356
3703
|
}
|
|
3357
|
-
|
|
3358
|
-
|
|
3359
|
-
)
|
|
3360
|
-
|
|
3361
|
-
|
|
3362
|
-
|
|
3363
|
-
|
|
3364
|
-
|
|
3365
|
-
|
|
3366
|
-
);
|
|
3704
|
+
function enhanceWithSnakeCase(api) {
|
|
3705
|
+
Object.entries(api).forEach(([key, value]) => {
|
|
3706
|
+
const newKey = snakeCase(key);
|
|
3707
|
+
if (newKey && !api[newKey]) {
|
|
3708
|
+
api[newKey] = value;
|
|
3709
|
+
}
|
|
3710
|
+
});
|
|
3711
|
+
return api;
|
|
3712
|
+
}
|
|
3713
|
+
const uiApi = enhanceWithSnakeCase(ui);
|
|
3714
|
+
const adminApi = enhanceWithSnakeCase(admin);
|
|
3715
|
+
const dsrApi = enhanceWithSnakeCase(dsr);
|
|
3367
3716
|
function useUi() {
|
|
3368
3717
|
return uiApi;
|
|
3369
3718
|
}
|
|
3370
|
-
const adminApi = Object.entries(admin).reduce(
|
|
3371
|
-
(acc, [key, value]) => {
|
|
3372
|
-
acc[key] = value;
|
|
3373
|
-
acc[snakeCase(key)] = value;
|
|
3374
|
-
return acc;
|
|
3375
|
-
},
|
|
3376
|
-
{}
|
|
3377
|
-
);
|
|
3378
3719
|
function useAdmin() {
|
|
3379
3720
|
return adminApi;
|
|
3380
3721
|
}
|
|
3381
|
-
const dsrApi = Object.entries(dsr).reduce(
|
|
3382
|
-
(acc, [key, value]) => {
|
|
3383
|
-
acc[key] = value;
|
|
3384
|
-
acc[snakeCase(key)] = value;
|
|
3385
|
-
return acc;
|
|
3386
|
-
},
|
|
3387
|
-
{}
|
|
3388
|
-
);
|
|
3389
3722
|
function useDsr() {
|
|
3390
3723
|
return dsrApi;
|
|
3391
3724
|
}
|
|
@@ -3394,7 +3727,7 @@ function getAvailableApis() {
|
|
|
3394
3727
|
const location = window.parent.jsApiLocation;
|
|
3395
3728
|
return location === "ui" ? ["ui", "impact"] : [location ?? "impact"];
|
|
3396
3729
|
}
|
|
3397
|
-
function useApi() {
|
|
3730
|
+
function useApi(options) {
|
|
3398
3731
|
if (typeof window === "undefined") throw new Error("useApi: window is not defined");
|
|
3399
3732
|
const location = window.parent.jsApiLocation;
|
|
3400
3733
|
switch (location) {
|
|
@@ -3405,7 +3738,7 @@ function useApi() {
|
|
|
3405
3738
|
case "dsr":
|
|
3406
3739
|
return useDsr();
|
|
3407
3740
|
case "impact":
|
|
3408
|
-
return usePitcherApi();
|
|
3741
|
+
return usePitcherApi(options);
|
|
3409
3742
|
default:
|
|
3410
3743
|
throw new Error(`Unknown api for location: ${location}`);
|
|
3411
3744
|
}
|