@pitcher/canvas-ui 2026.1.9-223804-beta → 2026.1.12-71806

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/canvas-ui.js CHANGED
@@ -94087,6 +94087,391 @@ function useContentSelector() {
94087
94087
  };
94088
94088
  }
94089
94089
 
94090
+ const generateNewCollection$2 = (t) => ({
94091
+ name: t("canvasUI.collectionSelector.defaultNewCollectionName"),
94092
+ groups: [],
94093
+ hide_footer: false
94094
+ });
94095
+ const generateNewCollectionStructure = () => ({ name: "", groups: [] });
94096
+ const getUniqueSlides = (uniqueSlides, newSlides) => [
94097
+ ...uniqueSlides,
94098
+ ...newSlides.filter(
94099
+ (newSlide) => !uniqueSlides.some(
94100
+ (uniqueSlide) => newSlide.type === "slide" && uniqueSlide.type === "slide" && uniqueSlide.file.id === newSlide.file.id && uniqueSlide.slide.index === newSlide.slide.index
94101
+ )
94102
+ )
94103
+ ];
94104
+
94105
+ const getDefaultNewGroupName$1 = (t) => t("canvasUI.collectionSelector.defaultNewGroupName");
94106
+ const getDefaultGroupName$1 = (t) => t("canvasUI.collectionSelector.defaultGroupName");
94107
+ const getDefaultCollectionName = (t) => t("canvasUI.collectionSelector.defaultCollectionName");
94108
+ const generateNewEmptyGroup$2 = (t) => ({
94109
+ id: v4(),
94110
+ name: getDefaultNewGroupName$1(t),
94111
+ slides: []
94112
+ });
94113
+ const generateNewCollection$1 = (t) => ({
94114
+ name: t("canvasUI.collectionSelector.defaultNewCollectionName"),
94115
+ groups: [generateNewEmptyGroup$2(t)]
94116
+ });
94117
+ const generateNewCollectionSlide = (payload) => ({
94118
+ ...payload,
94119
+ id: v4(),
94120
+ type: "slide"
94121
+ });
94122
+ const generateNewCollectionFile = (file) => ({
94123
+ id: v4(),
94124
+ type: "file",
94125
+ file
94126
+ });
94127
+ const getUniqueFilesCount = (data) => {
94128
+ const fileIds = data.groups.flatMap(
94129
+ (group) => group.slides.map((slide) => {
94130
+ if (slide.file?.id) {
94131
+ return slide.file.id;
94132
+ } else if (slide.file_id) {
94133
+ return slide.file_id;
94134
+ }
94135
+ return null;
94136
+ }).filter(Boolean)
94137
+ );
94138
+ return new Set(fileIds).size;
94139
+ };
94140
+ const getGroupsCount = (data) => data.groups.length;
94141
+ const getSlidesCount = (data) => data.groups.reduce((acc, group) => acc + group.slides.length, 0);
94142
+
94143
+ function parsePptxFileToCollectionPlayer(t, _file) {
94144
+ const metadataSections = _file?.metadata?.pptx_data?.sections ?? [];
94145
+ const sections = metadataSections.length || _file.content_thumbnails.length === 0 ? metadataSections : [{ start: 0, end: _file.content_thumbnails.length - 1, name: null }];
94146
+ const sectionGroups = sections.map((section) => ({
94147
+ name: section.name ?? (_file.name || getDefaultGroupName$1(t)),
94148
+ slides: _file.content_thumbnails.slice(section.start, section.end + 1).map((url, index) => ({ url, index: section.start + index }))
94149
+ }));
94150
+ const file = {
94151
+ id: _file.id,
94152
+ pspdfkit_auth_payload: _file.pspdfkit_auth_payload,
94153
+ pspdfkit_document_id: _file.pspdfkit_document_id,
94154
+ pspdfkit_server_url: _file.pspdfkit_server_url,
94155
+ content_type: _file.content_type,
94156
+ content_url: _file.content_url,
94157
+ permissions: _file.permissions,
94158
+ thumbnail_url: _file.thumbnail_url ?? null,
94159
+ name: _file.name,
94160
+ type: _file.type,
94161
+ metadata: _file.metadata
94162
+ };
94163
+ return {
94164
+ name: file.name ?? getDefaultGroupName$1(t),
94165
+ groups: sectionGroups.map((section) => ({
94166
+ ...generateNewEmptyGroup$2(t),
94167
+ name: section.name,
94168
+ slides: section.slides.map(
94169
+ (slide) => generateNewCollectionSlide({
94170
+ file,
94171
+ slide
94172
+ })
94173
+ )
94174
+ }))
94175
+ };
94176
+ }
94177
+ function parsePdfFileToCollectionPlayer(t, file) {
94178
+ const slides = file.content_thumbnails.map(
94179
+ (url, index) => generateNewCollectionSlide({
94180
+ file: {
94181
+ id: file.id,
94182
+ pspdfkit_auth_payload: file.pspdfkit_auth_payload,
94183
+ pspdfkit_document_id: file.pspdfkit_document_id,
94184
+ pspdfkit_server_url: file.pspdfkit_server_url,
94185
+ content_type: file.content_type,
94186
+ content_url: file.content_url,
94187
+ permissions: file.permissions,
94188
+ thumbnail_url: file.thumbnail_url ?? null,
94189
+ name: file.name,
94190
+ type: file.type,
94191
+ metadata: file.metadata
94192
+ },
94193
+ slide: {
94194
+ index,
94195
+ url
94196
+ }
94197
+ })
94198
+ );
94199
+ return {
94200
+ name: file.name ?? getDefaultCollectionName(t),
94201
+ groups: [
94202
+ {
94203
+ ...generateNewEmptyGroup$2(t),
94204
+ name: file.name ?? getDefaultGroupName$1(t),
94205
+ slides
94206
+ }
94207
+ ]
94208
+ };
94209
+ }
94210
+ function parseFileToCollectionPlayer(t, file) {
94211
+ if (file.content_type === "pdf") {
94212
+ if (file.original_extension === "pptx" || file.metadata?.pptx_data?.sections?.length) {
94213
+ return parsePptxFileToCollectionPlayer(t, file);
94214
+ }
94215
+ return parsePdfFileToCollectionPlayer(t, file);
94216
+ }
94217
+ return {
94218
+ name: file.name ?? getDefaultCollectionName(t),
94219
+ groups: [
94220
+ {
94221
+ ...generateNewEmptyGroup$2(t),
94222
+ name: file.name ?? getDefaultGroupName$1(t),
94223
+ slides: [
94224
+ generateNewCollectionFile({
94225
+ id: file.id,
94226
+ pspdfkit_auth_payload: file.pspdfkit_auth_payload,
94227
+ pspdfkit_document_id: file.pspdfkit_document_id,
94228
+ pspdfkit_server_url: file.pspdfkit_server_url,
94229
+ content_type: file.content_type,
94230
+ content_url: file.content_url,
94231
+ permissions: file.permissions,
94232
+ thumbnail_url: file.thumbnail_url ?? null,
94233
+ name: file.name,
94234
+ type: file.type,
94235
+ metadata: file.metadata
94236
+ })
94237
+ ]
94238
+ }
94239
+ ]
94240
+ };
94241
+ }
94242
+ function parseContentSelectorToCollectionPlayerSlides({
94243
+ selectedItems,
94244
+ filesById
94245
+ }) {
94246
+ return selectedItems.reduce((acc, item) => {
94247
+ if (item.type === "file") {
94248
+ if (filesById[item.id].content_type === "pdf") {
94249
+ const pages = filesById[item.id].content_thumbnails.map(
94250
+ (contentThumbnail, index) => generateNewCollectionSlide({
94251
+ file: {
94252
+ id: item.id,
94253
+ pspdfkit_auth_payload: filesById[item.id].pspdfkit_auth_payload,
94254
+ pspdfkit_document_id: filesById[item.id].pspdfkit_document_id,
94255
+ pspdfkit_server_url: filesById[item.id].pspdfkit_server_url,
94256
+ content_type: filesById[item.id].content_type,
94257
+ content_url: filesById[item.id].content_url,
94258
+ permissions: item.permissions,
94259
+ thumbnail_url: item.thumbnail_url ?? null,
94260
+ name: item.name,
94261
+ type: filesById[item.id].type,
94262
+ metadata: item.metadata
94263
+ },
94264
+ slide: {
94265
+ index,
94266
+ url: contentThumbnail
94267
+ }
94268
+ })
94269
+ );
94270
+ return getUniqueSlides(acc, pages);
94271
+ }
94272
+ return [
94273
+ ...acc,
94274
+ generateNewCollectionFile({
94275
+ id: item.id,
94276
+ pspdfkit_auth_payload: filesById[item.id].pspdfkit_auth_payload,
94277
+ pspdfkit_document_id: filesById[item.id].pspdfkit_document_id,
94278
+ pspdfkit_server_url: filesById[item.id].pspdfkit_server_url,
94279
+ content_type: filesById[item.id].content_type,
94280
+ content_url: filesById[item.id].content_url,
94281
+ permissions: item.permissions,
94282
+ thumbnail_url: filesById[item.id].thumbnail_url,
94283
+ name: item.name,
94284
+ type: filesById[item.id].type,
94285
+ metadata: item.metadata
94286
+ })
94287
+ ];
94288
+ }
94289
+ return getUniqueSlides(acc, [
94290
+ generateNewCollectionSlide({
94291
+ file: {
94292
+ id: item.file.id,
94293
+ pspdfkit_auth_payload: filesById[item.file.id].pspdfkit_auth_payload,
94294
+ pspdfkit_document_id: filesById[item.file.id].pspdfkit_document_id,
94295
+ pspdfkit_server_url: filesById[item.file.id].pspdfkit_server_url,
94296
+ content_type: filesById[item.file.id].content_type,
94297
+ content_url: filesById[item.file.id].content_url,
94298
+ permissions: item.permissions,
94299
+ thumbnail_url: item.thumbnail_url ?? null,
94300
+ name: item.file.name,
94301
+ type: filesById[item.file.id].type,
94302
+ metadata: filesById[item.file.id].metadata
94303
+ },
94304
+ slide: {
94305
+ index: item.page_index,
94306
+ url: item.thumbnail_url ?? null
94307
+ }
94308
+ })
94309
+ ]);
94310
+ }, []);
94311
+ }
94312
+ function parseCollectionPlayerSlidesToContentSelector(slides) {
94313
+ if (!slides?.length) return [];
94314
+ return slides.reduce((acc, item) => {
94315
+ let selection = null;
94316
+ if ("file_id" in item) {
94317
+ const v2Item = item;
94318
+ if (!v2Item.file_id) {
94319
+ return acc;
94320
+ }
94321
+ if (typeof v2Item.index === "number") {
94322
+ selection = {
94323
+ fileId: v2Item.file_id,
94324
+ type: "page",
94325
+ pageIndex: v2Item.index
94326
+ };
94327
+ } else {
94328
+ selection = {
94329
+ fileId: v2Item.file_id,
94330
+ type: "file"
94331
+ };
94332
+ }
94333
+ } else {
94334
+ const v1Item = item;
94335
+ const fileId = v1Item.file?.id;
94336
+ if (!fileId) {
94337
+ return acc;
94338
+ }
94339
+ if (v1Item.type === "slide") {
94340
+ selection = {
94341
+ fileId,
94342
+ type: "page",
94343
+ pageIndex: v1Item.slide.index
94344
+ };
94345
+ } else {
94346
+ selection = {
94347
+ fileId,
94348
+ type: "file"
94349
+ };
94350
+ }
94351
+ }
94352
+ return [...acc, selection];
94353
+ }, []);
94354
+ }
94355
+ function transformFilesToCollectionPlayer(t, filesData, name = "Collection") {
94356
+ if (!Array.isArray(filesData)) {
94357
+ throw new Error("Expected an array of files");
94358
+ }
94359
+ const groups = filesData.reduce((acc, fileData, index) => {
94360
+ try {
94361
+ const fileId = fileData.id;
94362
+ const fileName = fileData.name || `File ${index + 1}`;
94363
+ const selectedPages = fileData.selectedPages;
94364
+ if (!fileId) {
94365
+ return acc;
94366
+ }
94367
+ let slidesToCreate = [];
94368
+ if (selectedPages && Array.isArray(selectedPages) && selectedPages.length > 0) {
94369
+ slidesToCreate = selectedPages.map((pageIndex) => ({
94370
+ id: `${fileId}-slide-${pageIndex}`,
94371
+ file_id: fileId,
94372
+ index: pageIndex
94373
+ }));
94374
+ } else {
94375
+ slidesToCreate = [
94376
+ {
94377
+ id: `${fileId}-file`,
94378
+ file_id: fileId,
94379
+ index: void 0
94380
+ // undefined means entire file, not a specific page
94381
+ }
94382
+ ];
94383
+ }
94384
+ acc.push({
94385
+ id: `group-${fileId}`,
94386
+ name: fileName,
94387
+ slides: slidesToCreate
94388
+ });
94389
+ return acc;
94390
+ } catch (error) {
94391
+ return acc;
94392
+ }
94393
+ }, []);
94394
+ return {
94395
+ name,
94396
+ groups
94397
+ };
94398
+ }
94399
+ function transformFilesToContentGrid(filesData) {
94400
+ if (!Array.isArray(filesData)) {
94401
+ throw new Error("Expected an array of files");
94402
+ }
94403
+ const items = filesData.reduce((acc, fileData) => {
94404
+ try {
94405
+ const fileId = fileData.id;
94406
+ const selectedPages = fileData.selectedPages;
94407
+ if (!fileId) {
94408
+ return acc;
94409
+ }
94410
+ let itemsToCreate = [];
94411
+ if (selectedPages && Array.isArray(selectedPages) && selectedPages.length > 0) {
94412
+ itemsToCreate = selectedPages.map((pageIndex) => ({
94413
+ file: {
94414
+ id: fileId,
94415
+ // ContentGrid will resolve these properties via data accessor or file resolution
94416
+ name: fileData.name || `File ${fileId}`,
94417
+ permissions: void 0,
94418
+ // Will be resolved
94419
+ tags: void 0,
94420
+ // Will be resolved
94421
+ content_url: void 0,
94422
+ // Will be resolved
94423
+ content_type: void 0,
94424
+ // Will be resolved
94425
+ content_extension: void 0,
94426
+ // Will be resolved
94427
+ expires_at: void 0
94428
+ // Will be resolved
94429
+ },
94430
+ slide: {
94431
+ index: pageIndex,
94432
+ url: void 0
94433
+ // Will be resolved from content_thumbnails
94434
+ },
94435
+ type: "slide"
94436
+ }));
94437
+ } else {
94438
+ itemsToCreate = [
94439
+ {
94440
+ file: {
94441
+ id: fileId,
94442
+ // ContentGrid will resolve these properties via data accessor or file resolution
94443
+ name: fileData.name || `File ${fileId}`,
94444
+ thumbnail_url: null,
94445
+ // Will be resolved
94446
+ content_thumbnails: null,
94447
+ // Will be resolved
94448
+ content_url: null,
94449
+ // Will be resolved - required for ContentGridFileProps but can be null
94450
+ content_type: null,
94451
+ // Will be resolved - required for ContentGridFileProps
94452
+ content_extension: null,
94453
+ // Will be resolved - required for ContentGridFileProps
94454
+ content_length: void 0,
94455
+ // Will be resolved
94456
+ permissions: void 0,
94457
+ // Will be resolved
94458
+ expires_at: void 0,
94459
+ // Will be resolved
94460
+ tags: void 0
94461
+ // Will be resolved
94462
+ },
94463
+ type: "file"
94464
+ }
94465
+ ];
94466
+ }
94467
+ return [...acc, ...itemsToCreate];
94468
+ } catch (error) {
94469
+ return acc;
94470
+ }
94471
+ }, []);
94472
+ return { items };
94473
+ }
94474
+
94090
94475
  function createNodeId(type) {
94091
94476
  return `${type || "UnknownType"}-${v4()}`;
94092
94477
  }
@@ -94685,6 +95070,81 @@ function findFirstEmptyContentGridNode(nodes) {
94685
95070
  }
94686
95071
  return null;
94687
95072
  }
95073
+ function findShareboxTargetCollectionPlayerNode(nodes) {
95074
+ for (const node of nodes) {
95075
+ if (node.type === ComponentTypes.CollectionPlayer && node.is_sharebox_target) {
95076
+ return node;
95077
+ }
95078
+ if (node.children) {
95079
+ const found = findShareboxTargetCollectionPlayerNode(node.children);
95080
+ if (found) {
95081
+ return found;
95082
+ }
95083
+ }
95084
+ }
95085
+ return null;
95086
+ }
95087
+ function findFirstEmptyCollectionPlayerNode(nodes) {
95088
+ for (const node of nodes) {
95089
+ if (node.type === ComponentTypes.CollectionPlayer) {
95090
+ const data = node.data;
95091
+ const hasContent = data?.groups?.some((g) => g.slides?.length > 0);
95092
+ if (!hasContent) {
95093
+ return node;
95094
+ }
95095
+ }
95096
+ if (node.children) {
95097
+ const found = findFirstEmptyCollectionPlayerNode(node.children);
95098
+ if (found) {
95099
+ return found;
95100
+ }
95101
+ }
95102
+ }
95103
+ return null;
95104
+ }
95105
+ function updateFirstCollectionPlayerWithShareboxItems(canvasContent, selectedItems, filesById) {
95106
+ let content = simpleDeepClone(canvasContent);
95107
+ let collectionPlayerNode = findShareboxTargetCollectionPlayerNode(content);
95108
+ if (!collectionPlayerNode) {
95109
+ collectionPlayerNode = findFirstEmptyCollectionPlayerNode(content);
95110
+ }
95111
+ if (!collectionPlayerNode) {
95112
+ console.info("No CollectionPlayer component found in the canvas content. Creating one...");
95113
+ const { newContent } = addCanvasComponent(canvasContent, {
95114
+ type: ComponentTypes.CollectionPlayer
95115
+ });
95116
+ content = newContent;
95117
+ collectionPlayerNode = findFirstEmptyCollectionPlayerNode(content);
95118
+ }
95119
+ if (!collectionPlayerNode) {
95120
+ console.error("Could not find or create a CollectionPlayer component in the canvas content");
95121
+ return content;
95122
+ }
95123
+ const data = prepareCollectionPlayerNodeData({ node: collectionPlayerNode, filesById, selectedItems });
95124
+ collectionPlayerNode.data = data;
95125
+ return content;
95126
+ }
95127
+ function prepareCollectionPlayerNodeData({
95128
+ selectedItems,
95129
+ filesById,
95130
+ node
95131
+ }) {
95132
+ const slides = parseContentSelectorToCollectionPlayerSlides({ selectedItems, filesById });
95133
+ const group = {
95134
+ id: v4(),
95135
+ name: "Shared Content",
95136
+ slides: slides.map((slide) => ({
95137
+ id: v4(),
95138
+ file_id: slide.file.id,
95139
+ index: slide.type === "slide" ? slide.slide.index : void 0
95140
+ }))
95141
+ };
95142
+ return {
95143
+ ...node?.data ?? {},
95144
+ name: "Sharebox Collection",
95145
+ groups: [group]
95146
+ };
95147
+ }
94688
95148
  function isMultimediaDataWithTheme(obj, value) {
94689
95149
  return obj && obj.type === "Multimedia" && obj.theme_meta && typeof value === "object" && value !== null;
94690
95150
  }
@@ -95892,8 +96352,8 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
95892
96352
  }
95893
96353
  const emIndex = highlightValue.indexOf("<em>");
95894
96354
  if (emIndex === -1) return "";
95895
- const startChar = Math.max(0, emIndex - 100);
95896
- const endChar = Math.min(highlightValue.length, emIndex + 100);
96355
+ const startChar = Math.max(0, emIndex - 75);
96356
+ const endChar = Math.min(highlightValue.length, emIndex + 125);
95897
96357
  let truncated = highlightValue.substring(startChar, endChar);
95898
96358
  if (startChar > 0) truncated = "..." + truncated;
95899
96359
  if (endChar < highlightValue.length) truncated = truncated + "...";
@@ -96094,7 +96554,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96094
96554
  show: "",
96095
96555
  verticalAlignment: "top",
96096
96556
  "z-index": _ctx.zIndex,
96097
- "onUpdate:show": _cache[16] || (_cache[16] = ($event) => emit("toggleSearch", $event))
96557
+ "onUpdate:show": _cache[15] || (_cache[15] = ($event) => emit("toggleSearch", $event))
96098
96558
  }, {
96099
96559
  default: withCtx(() => [
96100
96560
  createElementVNode("div", {
@@ -96103,7 +96563,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96103
96563
  }, [
96104
96564
  createElementVNode("div", _hoisted_1$4w, [
96105
96565
  createElementVNode("div", _hoisted_2$3j, [
96106
- _cache[17] || (_cache[17] = createElementVNode("div", { class: "absolute left-2.5 top-1/2 transform -translate-y-1/2 z-10" }, [
96566
+ _cache[16] || (_cache[16] = createElementVNode("div", { class: "absolute left-2.5 top-1/2 transform -translate-y-1/2 z-10" }, [
96107
96567
  createElementVNode("i", { class: "c-icon far fa-search text-gray-400 text-l" })
96108
96568
  ], -1)),
96109
96569
  withDirectives(createElementVNode("input", {
@@ -96209,7 +96669,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96209
96669
  show: showFileTypeDropdown.value,
96210
96670
  "show-arrow": false,
96211
96671
  trigger: "manual",
96212
- onClickoutside: _cache[8] || (_cache[8] = ($event) => showFileTypeDropdown.value = false)
96672
+ onClickoutside: _cache[7] || (_cache[7] = ($event) => showFileTypeDropdown.value = false)
96213
96673
  }, {
96214
96674
  trigger: withCtx(() => [
96215
96675
  createVNode(unref(NTag), {
@@ -96222,20 +96682,12 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96222
96682
  themeOverrides: {
96223
96683
  borderRadius: "4px"
96224
96684
  },
96225
- onClick: _cache[7] || (_cache[7] = ($event) => showFileTypeDropdown.value = !showFileTypeDropdown.value)
96685
+ onClick: _cache[6] || (_cache[6] = ($event) => showFileTypeDropdown.value = !showFileTypeDropdown.value)
96226
96686
  }, {
96227
96687
  default: withCtx(() => [
96228
96688
  createElementVNode("div", _hoisted_10$C, [
96229
96689
  createElementVNode("span", null, toDisplayString(unref(t)("canvasUI.CAlgoliaSearch.filters.type")), 1),
96230
- selectedFileTypes.value.length ? (openBlock(), createElementBlock("span", _hoisted_11$x, ": " + toDisplayString(selectedFileTypes.value.length), 1)) : createCommentVNode("", true),
96231
- selectedFileTypes.value.length ? (openBlock(), createBlock(CIcon, {
96232
- key: 1,
96233
- class: "ml-1",
96234
- color: "var(--p-primary2)",
96235
- icon: "xmark",
96236
- size: "12",
96237
- onClick: _cache[6] || (_cache[6] = withModifiers(($event) => selectedFileTypes.value = [], ["stop"]))
96238
- })) : createCommentVNode("", true)
96690
+ selectedFileTypes.value.length ? (openBlock(), createElementBlock("span", _hoisted_11$x, ": " + toDisplayString(selectedFileTypes.value.length), 1)) : createCommentVNode("", true)
96239
96691
  ])
96240
96692
  ]),
96241
96693
  _: 1
@@ -96284,7 +96736,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96284
96736
  _: 1
96285
96737
  }, 8, ["show"]),
96286
96738
  hasActiveFilters.value ? (openBlock(), createElementBlock("div", _hoisted_14$h, [
96287
- _cache[18] || (_cache[18] = createElementVNode("div", { class: "h-6 w-px bg-gray-300 mx-2" }, null, -1)),
96739
+ _cache[17] || (_cache[17] = createElementVNode("div", { class: "h-6 w-px bg-gray-300 mx-2" }, null, -1)),
96288
96740
  createElementVNode("span", {
96289
96741
  class: "text-sm text-gray-600 hover:text-gray-800 font-normal cursor-pointer",
96290
96742
  onClick: clearAllFilters
@@ -96302,7 +96754,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96302
96754
  themeOverrides: {
96303
96755
  borderRadius: "4px"
96304
96756
  },
96305
- onClick: _cache[9] || (_cache[9] = ($event) => toggleCanvasFilter("saved_canvas"))
96757
+ onClick: _cache[8] || (_cache[8] = ($event) => toggleCanvasFilter("saved_canvas"))
96306
96758
  }, {
96307
96759
  default: withCtx(() => [
96308
96760
  createElementVNode("span", null, toDisplayString(unref(t)("canvasUI.CAlgoliaSearch.canvasFilters.saved")), 1)
@@ -96319,7 +96771,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96319
96771
  themeOverrides: {
96320
96772
  borderRadius: "4px"
96321
96773
  },
96322
- onClick: _cache[10] || (_cache[10] = ($event) => toggleCanvasFilter("template"))
96774
+ onClick: _cache[9] || (_cache[9] = ($event) => toggleCanvasFilter("template"))
96323
96775
  }, {
96324
96776
  default: withCtx(() => [
96325
96777
  createElementVNode("span", null, toDisplayString(unref(t)("canvasUI.CAlgoliaSearch.canvasFilters.templates")), 1)
@@ -96337,7 +96789,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96337
96789
  themeOverrides: {
96338
96790
  borderRadius: "4px"
96339
96791
  },
96340
- onClick: _cache[11] || (_cache[11] = ($event) => toggleCanvasFilter("product_template"))
96792
+ onClick: _cache[10] || (_cache[10] = ($event) => toggleCanvasFilter("product_template"))
96341
96793
  }, {
96342
96794
  default: withCtx(() => [
96343
96795
  createElementVNode("span", null, toDisplayString(unref(t)("canvasUI.CAlgoliaSearch.canvasFilters.productTemplates")), 1)
@@ -96354,7 +96806,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96354
96806
  themeOverrides: {
96355
96807
  borderRadius: "4px"
96356
96808
  },
96357
- onClick: _cache[12] || (_cache[12] = ($event) => toggleCanvasFilter("section"))
96809
+ onClick: _cache[11] || (_cache[11] = ($event) => toggleCanvasFilter("section"))
96358
96810
  }, {
96359
96811
  default: withCtx(() => [
96360
96812
  createElementVNode("span", null, toDisplayString(unref(t)("canvasUI.CAlgoliaSearch.canvasFilters.products")), 1)
@@ -96371,7 +96823,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96371
96823
  themeOverrides: {
96372
96824
  borderRadius: "4px"
96373
96825
  },
96374
- onClick: _cache[13] || (_cache[13] = ($event) => toggleCanvasFilter("block"))
96826
+ onClick: _cache[12] || (_cache[12] = ($event) => toggleCanvasFilter("block"))
96375
96827
  }, {
96376
96828
  default: withCtx(() => [
96377
96829
  createElementVNode("span", null, toDisplayString(unref(t)("canvasUI.CAlgoliaSearch.canvasFilters.blocks")), 1)
@@ -96379,7 +96831,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96379
96831
  _: 1
96380
96832
  }, 8, ["style"]),
96381
96833
  selectedCanvasFilters.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_15$f, [
96382
- _cache[19] || (_cache[19] = createElementVNode("div", { class: "h-6 w-px bg-gray-300 mx-2" }, null, -1)),
96834
+ _cache[18] || (_cache[18] = createElementVNode("div", { class: "h-6 w-px bg-gray-300 mx-2" }, null, -1)),
96383
96835
  createElementVNode("span", {
96384
96836
  class: "text-sm text-gray-600 hover:text-gray-800 font-normal cursor-pointer",
96385
96837
  onClick: clearCanvasFilters
@@ -96409,7 +96861,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96409
96861
  }), 128))
96410
96862
  ]),
96411
96863
  recentlyOpenedDocs.value.length > 0 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
96412
- _cache[20] || (_cache[20] = createElementVNode("hr", { class: "border-0 h-px bg-gray-200 mt-2 mb-3 w-full" }, null, -1)),
96864
+ _cache[19] || (_cache[19] = createElementVNode("hr", { class: "border-0 h-px bg-gray-200 mt-2 mb-3 w-full" }, null, -1)),
96413
96865
  createElementVNode("div", _hoisted_21$7, [
96414
96866
  createElementVNode("span", _hoisted_22$5, toDisplayString(unref(t)("canvasUI.components.fileViewer.recentlyOpened")), 1)
96415
96867
  ]),
@@ -96526,7 +96978,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96526
96978
  filteredContentFiles.value.length > 5 ? (openBlock(), createElementBlock("div", _hoisted_44$4, [
96527
96979
  createElementVNode("span", {
96528
96980
  class: "text-sm text-gray-600 hover:text-gray-800 font-bold flex items-center cursor-pointer",
96529
- onClick: _cache[14] || (_cache[14] = ($event) => searchType.value = "content")
96981
+ onClick: _cache[13] || (_cache[13] = ($event) => searchType.value = "content")
96530
96982
  }, [
96531
96983
  createTextVNode(toDisplayString(unref(t)("canvasUI.CAlgoliaSearch.actions.viewAll")) + " ", 1),
96532
96984
  createVNode(CIcon, {
@@ -96578,7 +97030,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96578
97030
  filteredCanvasFiles.value.length > 5 ? (openBlock(), createElementBlock("div", _hoisted_55$2, [
96579
97031
  createElementVNode("span", {
96580
97032
  class: "text-sm text-gray-600 hover:text-gray-800 font-bold flex items-center cursor-pointer",
96581
- onClick: _cache[15] || (_cache[15] = ($event) => searchType.value = "canvases")
97033
+ onClick: _cache[14] || (_cache[14] = ($event) => searchType.value = "canvases")
96582
97034
  }, [
96583
97035
  createTextVNode(toDisplayString(unref(t)("canvasUI.CAlgoliaSearch.actions.viewAll")) + " ", 1),
96584
97036
  createVNode(CIcon, {
@@ -96734,7 +97186,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96734
97186
  }
96735
97187
  });
96736
97188
 
96737
- const CAlgoliaSearch = /* @__PURE__ */ _export_sfc(_sfc_main$5K, [["__scopeId", "data-v-052f4440"]]);
97189
+ const CAlgoliaSearch = /* @__PURE__ */ _export_sfc(_sfc_main$5K, [["__scopeId", "data-v-da2357d4"]]);
96738
97190
 
96739
97191
  const BulletListExtended = BulletList.extend({
96740
97192
  addOptions() {
@@ -98801,6 +99253,25 @@ const INITIAL_CALL_STATE = {
98801
99253
  };
98802
99254
 
98803
99255
  const realTimeExtraCrmShape = ref({});
99256
+ function buildSchemaFromData(data) {
99257
+ if (data === null || data === void 0) {
99258
+ return null;
99259
+ }
99260
+ if (Array.isArray(data)) {
99261
+ if (data.length === 0) {
99262
+ return [];
99263
+ }
99264
+ return [buildSchemaFromData(data[0])];
99265
+ }
99266
+ if (typeof data === "object") {
99267
+ const schema = {};
99268
+ for (const [key, value] of Object.entries(data)) {
99269
+ schema[key] = buildSchemaFromData(value);
99270
+ }
99271
+ return schema;
99272
+ }
99273
+ return null;
99274
+ }
98804
99275
  function isEmptyValue(value) {
98805
99276
  return !value || typeof value === "string" && value.trim() === "";
98806
99277
  }
@@ -98820,6 +99291,7 @@ function removeEmptyValues(obj) {
98820
99291
  return result;
98821
99292
  }
98822
99293
  function useCrmShape() {
99294
+ const { activeCanvas } = useCanvas$1();
98823
99295
  const call = useLocalStorage(CALL_STORAGE_KEY, INITIAL_CALL_STATE, {
98824
99296
  deep: true,
98825
99297
  listenToStorageChanges: true
@@ -98836,6 +99308,13 @@ function useCrmShape() {
98836
99308
  "myUser",
98837
99309
  computed(() => null)
98838
99310
  );
99311
+ const pitcherDataSchema = computed(() => {
99312
+ const pitcherData = activeCanvas.value?.context?.pitcher_data;
99313
+ if (!pitcherData || typeof pitcherData !== "object") {
99314
+ return {};
99315
+ }
99316
+ return { pitcher_data: buildSchemaFromData(pitcherData) };
99317
+ });
98839
99318
  function getDefaultCrmShape({
98840
99319
  accountName = "",
98841
99320
  myUser: myUser2 = null,
@@ -98874,7 +99353,9 @@ function useCrmShape() {
98874
99353
  showDefault: !!launchDarkly.value.enable_default_crm_shape
98875
99354
  }),
98876
99355
  isEmpty(realTimeExtraCrmShape.value) ? {} : realTimeExtraCrmShape.value,
98877
- isEmpty(extraCrmShape.value) ? {} : extraCrmShape.value
99356
+ isEmpty(extraCrmShape.value) ? {} : extraCrmShape.value,
99357
+ // Derive schema from actual pitcher_data in canvas context
99358
+ isEmpty(pitcherDataSchema.value) ? {} : pitcherDataSchema.value
98878
99359
  );
98879
99360
  });
98880
99361
  return {
@@ -120344,7 +120825,7 @@ const _sfc_main$4k = /* @__PURE__ */ defineComponent({
120344
120825
 
120345
120826
  function useCanvasContext() {
120346
120827
  const { activeCanvas, isPrintDisplayMode, builderCache } = useCanvas$1();
120347
- const { getDefaultCrmShape } = useCrmShape();
120828
+ const { crmShape, getDefaultCrmShape } = useCrmShape();
120348
120829
  const myUser = inject(
120349
120830
  "myUser",
120350
120831
  computed(() => null)
@@ -120376,14 +120857,21 @@ function useCanvasContext() {
120376
120857
  builderCache.value[sectionOverrideKey] = mergedCtx;
120377
120858
  return mergedCtx;
120378
120859
  };
120379
- const crmShape = computed(() => getDefaultCrmShape({ myUser: myUser.value }));
120380
- const crmShapeWithSectionCtx = computed(() => {
120860
+ const fullContext = computed(() => {
120381
120861
  const mergedCtx = getSectionCtx();
120382
- return !isEmpty(crmShape.value) ? { ...mergedCtx, ...crmShape.value } : mergedCtx;
120862
+ const defaultShape = getDefaultCrmShape({
120863
+ myUser: myUser.value,
120864
+ showDefault: true
120865
+ });
120866
+ return mergeWith({}, defaultShape, crmShape.value ?? {}, mergedCtx, (_objValue, srcValue) => {
120867
+ if (Array.isArray(srcValue)) {
120868
+ return srcValue;
120869
+ }
120870
+ return void 0;
120871
+ });
120383
120872
  });
120384
120873
  return {
120385
- getSectionCtx,
120386
- crmShapeWithSectionCtx
120874
+ fullContext
120387
120875
  };
120388
120876
  }
120389
120877
 
@@ -120429,10 +120917,10 @@ const _sfc_main$4j = /* @__PURE__ */ defineComponent({
120429
120917
  __name: "SelectionPanel",
120430
120918
  setup(__props) {
120431
120919
  useCssVars((_ctx) => ({
120432
- "6fe3245a": unref(themeVars).text,
120433
- "6fdae5fe": unref(themeVars).base,
120434
- "85f799be": unref(themeVars).primary6,
120435
- "85f799c4": unref(themeVars).primary3
120920
+ "7e857d3a": unref(themeVars).text,
120921
+ "7e7d3ede": unref(themeVars).base,
120922
+ "e1e1c7fe": unref(themeVars).primary6,
120923
+ "e1e1c804": unref(themeVars).primary3
120436
120924
  }));
120437
120925
  const { t } = useI18n();
120438
120926
  const { renderContentType, isFileExpired, isFileExpiring } = useFileDisplayHelpers();
@@ -120454,7 +120942,7 @@ const _sfc_main$4j = /* @__PURE__ */ defineComponent({
120454
120942
  "launchDarkly",
120455
120943
  computed(() => ({}))
120456
120944
  );
120457
- const { crmShapeWithSectionCtx } = useCanvasContext();
120945
+ const { fullContext } = useCanvasContext();
120458
120946
  const isCrmShapeEnabled = computed(() => launchDarkly.value?.enable_crm_shape_for_external_links ?? false);
120459
120947
  const draggableItems = computed({
120460
120948
  get: () => isDragNDropEnabled.value ? addedItems.value : selectedItems.value,
@@ -120469,7 +120957,7 @@ const _sfc_main$4j = /* @__PURE__ */ defineComponent({
120469
120957
  function getParsedUrl(url) {
120470
120958
  if (!url || !isCrmShapeEnabled.value) return url;
120471
120959
  try {
120472
- return renderTemplate(url, crmShapeWithSectionCtx.value);
120960
+ return renderTemplate(url, fullContext.value);
120473
120961
  } catch (error) {
120474
120962
  console.warn("Failed to parse template in external URL, using original URL:", error);
120475
120963
  return url;
@@ -120773,7 +121261,7 @@ const _sfc_main$4j = /* @__PURE__ */ defineComponent({
120773
121261
  }
120774
121262
  });
120775
121263
 
120776
- const SelectionPanel = /* @__PURE__ */ _export_sfc(_sfc_main$4j, [["__scopeId", "data-v-aa03fa77"]]);
121264
+ const SelectionPanel = /* @__PURE__ */ _export_sfc(_sfc_main$4j, [["__scopeId", "data-v-05db071e"]]);
120777
121265
 
120778
121266
  const _hoisted_1$3q = { class: "flex justify-between gap-2 items-center truncate py-1" };
120779
121267
  const _hoisted_2$2z = {
@@ -123305,13 +123793,13 @@ const _sfc_main$45 = /* @__PURE__ */ defineComponent({
123305
123793
  computed(() => ({}))
123306
123794
  );
123307
123795
  const { crmShape } = useCrmShape();
123308
- const { crmShapeWithSectionCtx } = useCanvasContext();
123796
+ const { fullContext } = useCanvasContext();
123309
123797
  const isCrmShapeEnabled = computed(() => launchDarkly.value?.enable_crm_shape_for_external_links ?? false);
123310
123798
  const parsedUrl = computed(() => {
123311
123799
  if (!url.value.trim()) return url.value;
123312
123800
  if (!isCrmShapeEnabled.value) return url.value;
123313
123801
  try {
123314
- return renderTemplate(url.value, crmShapeWithSectionCtx.value);
123802
+ return renderTemplate(url.value, fullContext.value);
123315
123803
  } catch (error) {
123316
123804
  console.error("Error parsing URL template:", error);
123317
123805
  return url.value;
@@ -123417,7 +123905,7 @@ const _sfc_main$45 = /* @__PURE__ */ defineComponent({
123417
123905
  }
123418
123906
  });
123419
123907
 
123420
- const ExternalLinks = /* @__PURE__ */ _export_sfc(_sfc_main$45, [["__scopeId", "data-v-1287b675"]]);
123908
+ const ExternalLinks = /* @__PURE__ */ _export_sfc(_sfc_main$45, [["__scopeId", "data-v-ba7b39ff"]]);
123421
123909
 
123422
123910
  const _hoisted_1$3d = { class: "mr-3 h-full" };
123423
123911
  const _hoisted_2$2m = { class: "flex flex-col gap-3 mb-3" };
@@ -132254,44 +132742,6 @@ const _sfc_main$3o = /* @__PURE__ */ defineComponent({
132254
132742
  }
132255
132743
  });
132256
132744
 
132257
- const getDefaultNewGroupName$1 = (t) => t("canvasUI.collectionSelector.defaultNewGroupName");
132258
- const getDefaultGroupName$1 = (t) => t("canvasUI.collectionSelector.defaultGroupName");
132259
- const getDefaultCollectionName = (t) => t("canvasUI.collectionSelector.defaultCollectionName");
132260
- const generateNewEmptyGroup$2 = (t) => ({
132261
- id: v4(),
132262
- name: getDefaultNewGroupName$1(t),
132263
- slides: []
132264
- });
132265
- const generateNewCollection$2 = (t) => ({
132266
- name: t("canvasUI.collectionSelector.defaultNewCollectionName"),
132267
- groups: [generateNewEmptyGroup$2(t)]
132268
- });
132269
- const generateNewCollectionSlide = (payload) => ({
132270
- ...payload,
132271
- id: v4(),
132272
- type: "slide"
132273
- });
132274
- const generateNewCollectionFile = (file) => ({
132275
- id: v4(),
132276
- type: "file",
132277
- file
132278
- });
132279
- const getUniqueFilesCount = (data) => {
132280
- const fileIds = data.groups.flatMap(
132281
- (group) => group.slides.map((slide) => {
132282
- if (slide.file?.id) {
132283
- return slide.file.id;
132284
- } else if (slide.file_id) {
132285
- return slide.file_id;
132286
- }
132287
- return null;
132288
- }).filter(Boolean)
132289
- );
132290
- return new Set(fileIds).size;
132291
- };
132292
- const getGroupsCount = (data) => data.groups.length;
132293
- const getSlidesCount = (data) => data.groups.reduce((acc, group) => acc + group.slides.length, 0);
132294
-
132295
132745
  const useCollectionSelector = (selectCollectionPlayerContent) => {
132296
132746
  const { updateNodeDataById, setComponentSettingsMode, contentRef, onCollectionPlayerContentChange } = useCanvas$1();
132297
132747
  const trackContentChange = (id, data) => {
@@ -132690,7 +133140,7 @@ const _sfc_main$3n = /* @__PURE__ */ defineComponent({
132690
133140
  } else {
132691
133141
  let withData = void 0;
132692
133142
  if (selection.type === ComponentTypes.CollectionPlayer) {
132693
- withData = generateNewCollection$2(t);
133143
+ withData = generateNewCollection$1(t);
132694
133144
  }
132695
133145
  addComponentAtParentId(
132696
133146
  selection.type,
@@ -139520,353 +139970,6 @@ const _sfc_main$2S = /* @__PURE__ */ defineComponent({
139520
139970
 
139521
139971
  const CollectionPlayerApp = /* @__PURE__ */ _export_sfc(_sfc_main$2S, [["__scopeId", "data-v-1c2ca5d7"]]);
139522
139972
 
139523
- const generateNewCollection$1 = (t) => ({
139524
- name: t("canvasUI.collectionSelector.defaultNewCollectionName"),
139525
- groups: [],
139526
- hide_footer: false
139527
- });
139528
- const generateNewCollectionStructure = () => ({ name: "", groups: [] });
139529
- const getUniqueSlides = (uniqueSlides, newSlides) => [
139530
- ...uniqueSlides,
139531
- ...newSlides.filter(
139532
- (newSlide) => !uniqueSlides.some(
139533
- (uniqueSlide) => newSlide.type === "slide" && uniqueSlide.type === "slide" && uniqueSlide.file.id === newSlide.file.id && uniqueSlide.slide.index === newSlide.slide.index
139534
- )
139535
- )
139536
- ];
139537
-
139538
- function parsePptxFileToCollectionPlayer(t, _file) {
139539
- const metadataSections = _file?.metadata?.pptx_data?.sections ?? [];
139540
- const sections = metadataSections.length || _file.content_thumbnails.length === 0 ? metadataSections : [{ start: 0, end: _file.content_thumbnails.length - 1, name: null }];
139541
- const sectionGroups = sections.map((section) => ({
139542
- name: section.name ?? (_file.name || getDefaultGroupName$1(t)),
139543
- slides: _file.content_thumbnails.slice(section.start, section.end + 1).map((url, index) => ({ url, index: section.start + index }))
139544
- }));
139545
- const file = {
139546
- id: _file.id,
139547
- pspdfkit_auth_payload: _file.pspdfkit_auth_payload,
139548
- pspdfkit_document_id: _file.pspdfkit_document_id,
139549
- pspdfkit_server_url: _file.pspdfkit_server_url,
139550
- content_type: _file.content_type,
139551
- content_url: _file.content_url,
139552
- permissions: _file.permissions,
139553
- thumbnail_url: _file.thumbnail_url ?? null,
139554
- name: _file.name,
139555
- type: _file.type,
139556
- metadata: _file.metadata
139557
- };
139558
- return {
139559
- name: file.name ?? getDefaultGroupName$1(t),
139560
- groups: sectionGroups.map((section) => ({
139561
- ...generateNewEmptyGroup$2(t),
139562
- name: section.name,
139563
- slides: section.slides.map(
139564
- (slide) => generateNewCollectionSlide({
139565
- file,
139566
- slide
139567
- })
139568
- )
139569
- }))
139570
- };
139571
- }
139572
- function parsePdfFileToCollectionPlayer(t, file) {
139573
- const slides = file.content_thumbnails.map(
139574
- (url, index) => generateNewCollectionSlide({
139575
- file: {
139576
- id: file.id,
139577
- pspdfkit_auth_payload: file.pspdfkit_auth_payload,
139578
- pspdfkit_document_id: file.pspdfkit_document_id,
139579
- pspdfkit_server_url: file.pspdfkit_server_url,
139580
- content_type: file.content_type,
139581
- content_url: file.content_url,
139582
- permissions: file.permissions,
139583
- thumbnail_url: file.thumbnail_url ?? null,
139584
- name: file.name,
139585
- type: file.type,
139586
- metadata: file.metadata
139587
- },
139588
- slide: {
139589
- index,
139590
- url
139591
- }
139592
- })
139593
- );
139594
- return {
139595
- name: file.name ?? getDefaultCollectionName(t),
139596
- groups: [
139597
- {
139598
- ...generateNewEmptyGroup$2(t),
139599
- name: file.name ?? getDefaultGroupName$1(t),
139600
- slides
139601
- }
139602
- ]
139603
- };
139604
- }
139605
- function parseFileToCollectionPlayer(t, file) {
139606
- if (file.content_type === "pdf") {
139607
- if (file.original_extension === "pptx" || file.metadata?.pptx_data?.sections?.length) {
139608
- return parsePptxFileToCollectionPlayer(t, file);
139609
- }
139610
- return parsePdfFileToCollectionPlayer(t, file);
139611
- }
139612
- return {
139613
- name: file.name ?? getDefaultCollectionName(t),
139614
- groups: [
139615
- {
139616
- ...generateNewEmptyGroup$2(t),
139617
- name: file.name ?? getDefaultGroupName$1(t),
139618
- slides: [
139619
- generateNewCollectionFile({
139620
- id: file.id,
139621
- pspdfkit_auth_payload: file.pspdfkit_auth_payload,
139622
- pspdfkit_document_id: file.pspdfkit_document_id,
139623
- pspdfkit_server_url: file.pspdfkit_server_url,
139624
- content_type: file.content_type,
139625
- content_url: file.content_url,
139626
- permissions: file.permissions,
139627
- thumbnail_url: file.thumbnail_url ?? null,
139628
- name: file.name,
139629
- type: file.type,
139630
- metadata: file.metadata
139631
- })
139632
- ]
139633
- }
139634
- ]
139635
- };
139636
- }
139637
- function parseContentSelectorToCollectionPlayerSlides({
139638
- selectedItems,
139639
- filesById
139640
- }) {
139641
- return selectedItems.reduce((acc, item) => {
139642
- if (item.type === "file") {
139643
- if (filesById[item.id].content_type === "pdf") {
139644
- const pages = filesById[item.id].content_thumbnails.map(
139645
- (contentThumbnail, index) => generateNewCollectionSlide({
139646
- file: {
139647
- id: item.id,
139648
- pspdfkit_auth_payload: filesById[item.id].pspdfkit_auth_payload,
139649
- pspdfkit_document_id: filesById[item.id].pspdfkit_document_id,
139650
- pspdfkit_server_url: filesById[item.id].pspdfkit_server_url,
139651
- content_type: filesById[item.id].content_type,
139652
- content_url: filesById[item.id].content_url,
139653
- permissions: item.permissions,
139654
- thumbnail_url: item.thumbnail_url ?? null,
139655
- name: item.name,
139656
- type: filesById[item.id].type,
139657
- metadata: item.metadata
139658
- },
139659
- slide: {
139660
- index,
139661
- url: contentThumbnail
139662
- }
139663
- })
139664
- );
139665
- return getUniqueSlides(acc, pages);
139666
- }
139667
- return [
139668
- ...acc,
139669
- generateNewCollectionFile({
139670
- id: item.id,
139671
- pspdfkit_auth_payload: filesById[item.id].pspdfkit_auth_payload,
139672
- pspdfkit_document_id: filesById[item.id].pspdfkit_document_id,
139673
- pspdfkit_server_url: filesById[item.id].pspdfkit_server_url,
139674
- content_type: filesById[item.id].content_type,
139675
- content_url: filesById[item.id].content_url,
139676
- permissions: item.permissions,
139677
- thumbnail_url: filesById[item.id].thumbnail_url,
139678
- name: item.name,
139679
- type: filesById[item.id].type,
139680
- metadata: item.metadata
139681
- })
139682
- ];
139683
- }
139684
- return getUniqueSlides(acc, [
139685
- generateNewCollectionSlide({
139686
- file: {
139687
- id: item.file.id,
139688
- pspdfkit_auth_payload: filesById[item.file.id].pspdfkit_auth_payload,
139689
- pspdfkit_document_id: filesById[item.file.id].pspdfkit_document_id,
139690
- pspdfkit_server_url: filesById[item.file.id].pspdfkit_server_url,
139691
- content_type: filesById[item.file.id].content_type,
139692
- content_url: filesById[item.file.id].content_url,
139693
- permissions: item.permissions,
139694
- thumbnail_url: item.thumbnail_url ?? null,
139695
- name: item.file.name,
139696
- type: filesById[item.file.id].type,
139697
- metadata: filesById[item.file.id].metadata
139698
- },
139699
- slide: {
139700
- index: item.page_index,
139701
- url: item.thumbnail_url ?? null
139702
- }
139703
- })
139704
- ]);
139705
- }, []);
139706
- }
139707
- function parseCollectionPlayerSlidesToContentSelector(slides) {
139708
- if (!slides?.length) return [];
139709
- return slides.reduce((acc, item) => {
139710
- let selection = null;
139711
- if ("file_id" in item) {
139712
- const v2Item = item;
139713
- if (!v2Item.file_id) {
139714
- return acc;
139715
- }
139716
- if (typeof v2Item.index === "number") {
139717
- selection = {
139718
- fileId: v2Item.file_id,
139719
- type: "page",
139720
- pageIndex: v2Item.index
139721
- };
139722
- } else {
139723
- selection = {
139724
- fileId: v2Item.file_id,
139725
- type: "file"
139726
- };
139727
- }
139728
- } else {
139729
- const v1Item = item;
139730
- const fileId = v1Item.file?.id;
139731
- if (!fileId) {
139732
- return acc;
139733
- }
139734
- if (v1Item.type === "slide") {
139735
- selection = {
139736
- fileId,
139737
- type: "page",
139738
- pageIndex: v1Item.slide.index
139739
- };
139740
- } else {
139741
- selection = {
139742
- fileId,
139743
- type: "file"
139744
- };
139745
- }
139746
- }
139747
- return [...acc, selection];
139748
- }, []);
139749
- }
139750
- function transformFilesToCollectionPlayer(t, filesData, name = "Collection") {
139751
- if (!Array.isArray(filesData)) {
139752
- throw new Error("Expected an array of files");
139753
- }
139754
- const groups = filesData.reduce((acc, fileData, index) => {
139755
- try {
139756
- const fileId = fileData.id;
139757
- const fileName = fileData.name || `File ${index + 1}`;
139758
- const selectedPages = fileData.selectedPages;
139759
- if (!fileId) {
139760
- return acc;
139761
- }
139762
- let slidesToCreate = [];
139763
- if (selectedPages && Array.isArray(selectedPages) && selectedPages.length > 0) {
139764
- slidesToCreate = selectedPages.map((pageIndex) => ({
139765
- id: `${fileId}-slide-${pageIndex}`,
139766
- file_id: fileId,
139767
- index: pageIndex
139768
- }));
139769
- } else {
139770
- slidesToCreate = [
139771
- {
139772
- id: `${fileId}-file`,
139773
- file_id: fileId,
139774
- index: void 0
139775
- // undefined means entire file, not a specific page
139776
- }
139777
- ];
139778
- }
139779
- acc.push({
139780
- id: `group-${fileId}`,
139781
- name: fileName,
139782
- slides: slidesToCreate
139783
- });
139784
- return acc;
139785
- } catch (error) {
139786
- return acc;
139787
- }
139788
- }, []);
139789
- return {
139790
- name,
139791
- groups
139792
- };
139793
- }
139794
- function transformFilesToContentGrid(filesData) {
139795
- if (!Array.isArray(filesData)) {
139796
- throw new Error("Expected an array of files");
139797
- }
139798
- const items = filesData.reduce((acc, fileData) => {
139799
- try {
139800
- const fileId = fileData.id;
139801
- const selectedPages = fileData.selectedPages;
139802
- if (!fileId) {
139803
- return acc;
139804
- }
139805
- let itemsToCreate = [];
139806
- if (selectedPages && Array.isArray(selectedPages) && selectedPages.length > 0) {
139807
- itemsToCreate = selectedPages.map((pageIndex) => ({
139808
- file: {
139809
- id: fileId,
139810
- // ContentGrid will resolve these properties via data accessor or file resolution
139811
- name: fileData.name || `File ${fileId}`,
139812
- permissions: void 0,
139813
- // Will be resolved
139814
- tags: void 0,
139815
- // Will be resolved
139816
- content_url: void 0,
139817
- // Will be resolved
139818
- content_type: void 0,
139819
- // Will be resolved
139820
- content_extension: void 0,
139821
- // Will be resolved
139822
- expires_at: void 0
139823
- // Will be resolved
139824
- },
139825
- slide: {
139826
- index: pageIndex,
139827
- url: void 0
139828
- // Will be resolved from content_thumbnails
139829
- },
139830
- type: "slide"
139831
- }));
139832
- } else {
139833
- itemsToCreate = [
139834
- {
139835
- file: {
139836
- id: fileId,
139837
- // ContentGrid will resolve these properties via data accessor or file resolution
139838
- name: fileData.name || `File ${fileId}`,
139839
- thumbnail_url: null,
139840
- // Will be resolved
139841
- content_thumbnails: null,
139842
- // Will be resolved
139843
- content_url: null,
139844
- // Will be resolved - required for ContentGridFileProps but can be null
139845
- content_type: null,
139846
- // Will be resolved - required for ContentGridFileProps
139847
- content_extension: null,
139848
- // Will be resolved - required for ContentGridFileProps
139849
- content_length: void 0,
139850
- // Will be resolved
139851
- permissions: void 0,
139852
- // Will be resolved
139853
- expires_at: void 0,
139854
- // Will be resolved
139855
- tags: void 0
139856
- // Will be resolved
139857
- },
139858
- type: "file"
139859
- }
139860
- ];
139861
- }
139862
- return [...acc, ...itemsToCreate];
139863
- } catch (error) {
139864
- return acc;
139865
- }
139866
- }, []);
139867
- return { items };
139868
- }
139869
-
139870
139973
  function useLegacyCollectionFileLoader() {
139871
139974
  const fetchFileById = inject("fetchFileById");
139872
139975
  const canvasFileCache = inject("canvasFileCache", ref(/* @__PURE__ */ new Map()));
@@ -147888,7 +147991,7 @@ const _sfc_main$2i = /* @__PURE__ */ defineComponent({
147888
147991
  } = useCanvas$1();
147889
147992
  const { discardOverridesConfirmationOptions, getComponentOverrides } = useCanvasSectionOverrides();
147890
147993
  const { getDerivedStyleFromFeatureFlags } = useComponentStyle(componentNode);
147891
- const { crmShapeWithSectionCtx } = useCanvasContext();
147994
+ const { fullContext } = useCanvasContext();
147892
147995
  const { setContentSelectorMode } = useContentSelector();
147893
147996
  const confirmation = useConfirmation();
147894
147997
  const themeVars = useThemeVars();
@@ -148041,7 +148144,7 @@ const _sfc_main$2i = /* @__PURE__ */ defineComponent({
148041
148144
  try {
148042
148145
  return {
148043
148146
  ...value,
148044
- external_url: renderTemplate(value.external_url, crmShapeWithSectionCtx.value)
148147
+ external_url: renderTemplate(value.external_url, fullContext.value)
148045
148148
  };
148046
148149
  } catch (error) {
148047
148150
  console.warn("Failed to parse template in external URL, using original URL:", error);
@@ -148559,7 +148662,7 @@ const _sfc_main$2h = /* @__PURE__ */ defineComponent({
148559
148662
  setCanvasMetadata,
148560
148663
  isImpact
148561
148664
  } = useCanvas$1();
148562
- const { crmShapeWithSectionCtx } = useCanvasContext();
148665
+ const { fullContext } = useCanvasContext();
148563
148666
  const { coreRestApiAxios } = useCoreApi();
148564
148667
  const { applyPrintModeToElement } = usePrintMode();
148565
148668
  const { discardOverridesConfirmationOptions, getComponentOverrides } = useCanvasSectionOverrides();
@@ -148616,7 +148719,7 @@ const _sfc_main$2h = /* @__PURE__ */ defineComponent({
148616
148719
  const memoizedModelValue = computed(() => getModelValue(computedTextProps.value.data?.content));
148617
148720
  function getModelValue(value = "") {
148618
148721
  if (!shouldInterpolate.value || !value.trim()) return value;
148619
- return renderTemplate(value, crmShapeWithSectionCtx.value);
148722
+ return renderTemplate(value, fullContext.value);
148620
148723
  }
148621
148724
  const debouncedUpdateNodeData = debounce((data2, nodeId, sectionId) => {
148622
148725
  return updateNodeData(data2, nodeId, sectionId);
@@ -148724,7 +148827,7 @@ const _sfc_main$2h = /* @__PURE__ */ defineComponent({
148724
148827
  );
148725
148828
  applyPrintModeToElement(contentElement.value, () => {
148726
148829
  const content = computedTextProps.value.data?.content || "";
148727
- return shouldInterpolate.value ? renderTemplate(content, crmShapeWithSectionCtx.value) : content;
148830
+ return shouldInterpolate.value ? renderTemplate(content, fullContext.value) : content;
148728
148831
  });
148729
148832
  if (enableScaleContent && spanStyles) {
148730
148833
  setTimeout(() => {
@@ -148836,7 +148939,7 @@ const _sfc_main$2h = /* @__PURE__ */ defineComponent({
148836
148939
  }
148837
148940
  });
148838
148941
 
148839
- const Text = /* @__PURE__ */ _export_sfc(_sfc_main$2h, [["__scopeId", "data-v-b2424519"]]);
148942
+ const Text = /* @__PURE__ */ _export_sfc(_sfc_main$2h, [["__scopeId", "data-v-73a884c3"]]);
148840
148943
 
148841
148944
  const _hoisted_1$1Q = { class: "absolute top-2 right-2 flex items-center gap-1 z-10" };
148842
148945
  const _hoisted_2$1m = { class: "text-xs" };
@@ -162568,7 +162671,7 @@ const _sfc_main$1w = /* @__PURE__ */ defineComponent({
162568
162671
  // Add height only if already present or if the form value is set (backwards compatibility)
162569
162672
  ...activeSettingsNode.value?.type === ComponentTypes.CollectionPlayer && ("height" in activeSettingsNode.value || formValues.height) ? { height: formValues.height } : {},
162570
162673
  ...isAdminSectionTemplateWithFlag.value ? { allow_admins_to_overwrite: formValues.allowAdminsToOverwrite } : {},
162571
- ...activeSettingsNode.value?.type === "ContentGrid" ? { is_sharebox_target: formValues.isShareboxTarget } : {},
162674
+ ...activeSettingsNode.value?.type && ["ContentGrid", "CollectionPlayer"].includes(activeSettingsNode.value.type) ? { is_sharebox_target: formValues.isShareboxTarget } : {},
162572
162675
  ...newData
162573
162676
  });
162574
162677
  };
@@ -162858,6 +162961,15 @@ const _sfc_main$1w = /* @__PURE__ */ defineComponent({
162858
162961
  ]),
162859
162962
  _: 1
162860
162963
  }, 8, ["checked"]),
162964
+ createVNode(unref(NCheckbox), {
162965
+ checked: formValues.isShareboxTarget,
162966
+ "onUpdate:checked": _cache[18] || (_cache[18] = ($event) => formValues.isShareboxTarget = $event)
162967
+ }, {
162968
+ default: withCtx(() => [
162969
+ createTextVNode(toDisplayString(unref(t)("canvasUI.canvasBuilder.canvasSettings.form.messages.isShareboxTarget")), 1)
162970
+ ]),
162971
+ _: 1
162972
+ }, 8, ["checked"]),
162861
162973
  unref(launchDarkly).enable_collection_player_data_accessor && (unref(isTemplate) || selectedCollectionPlayerDataPath.value) ? (openBlock(), createElementBlock("div", _hoisted_5$w, [
162862
162974
  createElementVNode("div", _hoisted_6$s, [
162863
162975
  createElementVNode("label", null, toDisplayString(unref(t)("canvasUI.canvasBuilder.canvasSettings.form.label.collectionPlayerDataAccessor")), 1),
@@ -162931,7 +163043,7 @@ const _sfc_main$1w = /* @__PURE__ */ defineComponent({
162931
163043
  block: "",
162932
163044
  class: "mt-auto",
162933
163045
  type: "primary",
162934
- onClick: _cache[18] || (_cache[18] = ($event) => updateShow(false))
163046
+ onClick: _cache[19] || (_cache[19] = ($event) => updateShow(false))
162935
163047
  }, {
162936
163048
  default: withCtx(() => [
162937
163049
  createTextVNode(toDisplayString(unref(t)("canvasUI.common.done")), 1)
@@ -162945,7 +163057,7 @@ const _sfc_main$1w = /* @__PURE__ */ defineComponent({
162945
163057
  }
162946
163058
  });
162947
163059
 
162948
- const ComponentDrawerSettings = /* @__PURE__ */ _export_sfc(_sfc_main$1w, [["__scopeId", "data-v-c7a7411e"]]);
163060
+ const ComponentDrawerSettings = /* @__PURE__ */ _export_sfc(_sfc_main$1w, [["__scopeId", "data-v-dce6a881"]]);
162949
163061
 
162950
163062
  function useConnectUpload() {
162951
163063
  async function uploadToConnect(formData) {
@@ -169597,7 +169709,7 @@ const clearCache = () => {
169597
169709
  const _export$3 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
169598
169710
  __proto__: null,
169599
169711
  clearCache,
169600
- generateNewCollection: generateNewCollection$1,
169712
+ generateNewCollection: generateNewCollection$2,
169601
169713
  generateNewCollectionStructure,
169602
169714
  getUniqueSlides,
169603
169715
  provideAppStore: provideAppStore$3,
@@ -170581,7 +170693,7 @@ function provideAppStore$2({
170581
170693
  translations,
170582
170694
  contentRef
170583
170695
  }) {
170584
- const rawCollection = ref({ ...generateNewCollection$2(t), ...cloneDeep(initialCollection) ?? {} });
170696
+ const rawCollection = ref({ ...generateNewCollection$1(t), ...cloneDeep(initialCollection) ?? {} });
170585
170697
  const fileLoader = useLegacyCollectionFileLoader();
170586
170698
  const childModalZIndex = zIndex !== void 0 ? zIndex + 1 : void 0;
170587
170699
  const isSettingsButtonVisible = computed(() => !!openSettingsFn || !!closeOnSettings);
@@ -181654,7 +181766,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
181654
181766
 
181655
181767
  const _export$2 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
181656
181768
  __proto__: null,
181657
- generateNewCollection: generateNewCollection$2,
181769
+ generateNewCollection: generateNewCollection$1,
181658
181770
  generateNewCollectionFile,
181659
181771
  generateNewCollectionSlide,
181660
181772
  generateNewEmptyGroup: generateNewEmptyGroup$2,
@@ -184106,5 +184218,5 @@ const localeNames = {
184106
184218
  };
184107
184219
  const localeDropdownOptions = supportedLocales.map((locale) => ({ key: locale, name: localeNames[locale] }));
184108
184220
 
184109
- export { ADMIN_API_METHOD_TYPES, ADMIN_API_TYPES, ADMIN_MESSAGE, ADMIN_MESSAGE_TYPES, APPS_DB, AccessTypeEnum, App$3 as AgendaSelectorApp, AppTypeEnum, _sfc_main as AssetsManagerApp, App$1 as Browser, BulkUpdateMetadataOperationEnum, BulkUpdateTagsOperationEnum, CALL_STORAGE_KEY, CANVASES, CANVAS_HOOKS, CANVAS_TYPOGRAPHY_CSS_PROPERTIES, CANVAS_TYPOGRAPHY_PRESETS, CAlgoliaSearch, CAssignedCanvasesManagement, _sfc_main$4p as CAssignedCanvasesManagementToolbar, _sfc_main$6s as CAvatar, _sfc_main$4O as CBlockManagement, CButton, _sfc_main$5f as CCanvasDeleteDialogContent, _sfc_main$5g as CCanvasMetadataFilters, CCanvasSelector, _sfc_main$6V as CCard, CCarousel, _sfc_main$3G as CCatalogIqSwitcher, _sfc_main$6U as CCheckbox, _sfc_main$3A as CChip, CCollapse, _sfc_main$6R as CCollapseItem, _sfc_main$6r as CCollapseTransition, NColorPicker as CColorPicker, CComponentListItem, CConfigEditor, NConfigProvider as CConfigProvider, _sfc_main$6h as CConfirmationAction, CConfirmationContent, CConfirmationHeader, CConfirmationModal, CContactSelector, CContactSelectorSelected, _sfc_main$68 as CContentError, _sfc_main$65 as CCreateCanvasModal, _sfc_main$64 as CCreateTemplateSectionBlockModal, _sfc_main$5V as CCreateThemeModal, CDP_EVENT_TYPE, CDataTable, NDatePicker as CDatePicker, CDateRangeFilter, CDetailPageSectionButtons, NDialogProvider as CDialogProvider, _sfc_main$6P as CDivider, _sfc_main$6O as CDrawer, _sfc_main$6N as CDrawerContent, _sfc_main$6M as CDropdown, _sfc_main$6p as CEmpty, _sfc_main$4m as CEntitySelector, _sfc_main$6L as CErrorFullScreen, _sfc_main$6n as CFeedback, _sfc_main$3o as CFileAccessManagement, _sfc_main$6C as CFileAttributes, _sfc_main$3p as CFilePanel, _sfc_main$6I as CFileThumbnail, CFileViewer, CFilesAccessInfo, _sfc_main$3$ as CFilesAccessManage, _sfc_main$3I as CFilesFolderDeleteDialogContent, NForm as CForm, NFormItem as CFormItem, NFormItemCol as CFormItemCol, NFormItemGridItem as CFormItemGi, NFormItemGridItem as CFormItemGridItem, FormItemRow as CFormItemRow, _sfc_main$4h as CFullScreenLoader, NGridItem as CGi, CGlobalLoader, _sfc_main$5O as CGlobalSearch, GlobalStyle as CGlobalStyle, NGrid as CGrid, NGridItem as CGridItem, CGroupsAccessInfo, NH1 as CH1, NH2 as CH2, NH3 as CH3, NH4 as CH4, NH5 as CH5, NH6 as CH6, _sfc_main$6m as CHelpText, CIcon, _sfc_main$6K as CImage, _sfc_main$4W as CInfoBadge, _sfc_main$6B as CInput, NInputNumber as CInputNumber, _sfc_main$3y as CKnockNotificationsAppWrapper, CLIENT_TYPE, NLayout as CLayout, NLayoutContent as CLayoutContent, LayoutFooter as CLayoutFooter, LayoutHeader as CLayoutHeader, LayoutSider as CLayoutSider, _sfc_main$4X as CList, NMessageProvider as CMessageProvider, _sfc_main$5L as CMetaDataBadge, _sfc_main$6A as CModal, CMonacoEditor, CMovableWidget, CMultiSelect, NNotificationProvider as CNotificationProvider, NPagination as CPagination, _sfc_main$6l as CPillSelect, _sfc_main$6z as CPopover, _sfc_main$6J as CProcessingOverlay, NProgress as CProgress, _sfc_main$5s as CRichTextEditor, _sfc_main$4q as CSavedCanvasesManagement, CSearch, _sfc_main$6x as CSearchOnClick, CSearchOnClickWithSuggestions, CSecondaryNav, _sfc_main$4R as CSectionManagement, CSelect, CSelectFilter, _sfc_main$3x as CSettingsEditor, CShortcut, CSingleSelect, NSkeleton as CSkeleton, _sfc_main$3C as CSlideViewer, NSpace as CSpace, _sfc_main$6q as CSpin, _sfc_main$6o as CSwitch, CTable, _sfc_main$5c as CTableInput, CTableMore, CTableSelect, CTableTag, _sfc_main$6F as CTag, CTags, CTemplateAccessInfo, _sfc_main$3_ as CTemplateAccessManage, _sfc_main$4G as CTemplateManagement, text as CText, _sfc_main$6v as CThemeEditor, _sfc_main$4B as CThemeManagement, _sfc_main$5l as CToastProvider, CToolbar, _sfc_main$6t as CTooltip, CUpsertFolderModal, _sfc_main$5p as CUserAvatar, CUserMenu, CUsersAccessInfo, CUsersGroupsAccessManage, _sfc_main$5m as CVirtualTable, _sfc_main$48 as CWarningAlert, CallState, CanvasActions, _sfc_main$15 as CanvasBuilderApp, CanvasBuilderMode, CanvasExcludedComponentTypesEnum, CanvasHistoryAction, App as CanvasSelector, CanvasStatus, CanvasThemeStatus, CanvasesViewsTypes, CollaborationRoleEnum, CollectionPlayerApp, App$4 as CollectionSelectorApp, ComponentIcon, ComponentTypes, ContactSelectorQuickFilterType, ContentGridLayoutTypes, ContentSelector, CoreFolderEntityType, DATE_TIME_FORMAT, DEFAULT_ADMIN_TABLE_HEIGHT, DEFAULT_ADMIN_TABLE_WITH_PAGINATION_HEIGHT, DEFAULT_GLOBAL_COMPONENT_SPACING, DEFAULT_GLOBAL_COMPONENT_SPACING_INTERVAL, DEFAULT_ITEMS_PER_PAGE, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PEER_CONNECTIVITY_VERSION, DEFAULT_PITCHER_SETTINGS, DSR_API_METHOD_TYPES, DSR_API_TYPES, DSR_MESSAGE, DSR_MESSAGE_TYPES, DSR_TYPE, DefaultExpiresAtEnum, DownloadTypeEnum, EMBED_TYPE, EventAction, EventExternalObjectContentTypeEnum, EventStatusEnum, FileContentTypeEnum, FileStatusEnum, FileTypeEnum, GlobalSearchResultType, GridLayoutTypes, HIDE_IF_EMPTY_COMPONENT_ID_TAG_PREFIX, HIDE_IF_EMPTY_COMPONENT_TRACKING_ID_TAG_PREFIX, HIDE_TAGS_WITH_PREFIX, HtmlLayoutTypes, IFRAME_ACTION_TYPES, IFRAME_DATA_MESSAGE, INITIAL_CALL_STATE, IS_DEV_ORG, IS_LOCALHOST, InstanceMembershipRoleEnum, InstanceMembershipUserStatusEnum, InvitationStatusEnum, LanguageEnum, LinkAlignmentTypes, LinkAnchorTypes, LinkPreviewTypes, MAX_LUMINANCE_FOR_LIGHT_TEXT, MAX_UPLOAD_SIZE, MIN_DIFFERENCE_IN_MINUTES, MetadataTemplateFieldTypeEnum, MultimediaHorizontalAlignmentOptions, NON_MEMBER_ROLES, NotesApp, OperatorEnum, PAPER_SIZE_PRESETS, PEER_CONNECTIVITY_EVENT, PEER_CONNECTIVITY_HANDLER_MATCH_ALL, PITCHER_EVENT, PITCHER_SETTINGS_KEY, PLATFORM_TYPE, PRINT_SCALE_FACTOR, PeerConnectivityActions, PitcherBroadcastedEventName, PitcherEventName, PitcherExternalEventName, PitcherMessageType, PitcherResponseStatus, PostAction, App$2 as PptConversionSelectorApp, REQUEST_DEFAULT_CANCEL_TIMEOUT, SEARCH_DEBOUNCE_TIME, SUPPORTED_FONT_EXTENSIONS, SUPPORTED_FONT_TYPES, SUPPORTED_IMAGE_EXTENSIONS, SUPPORTED_IMAGE_TYPES, SUPPORTED_UPLOAD_FILE_EXTENSIONS, SUPPORTED_VIDEO_EXTENSIONS, SUPPORTED_VIDEO_TYPES, SfEventColors, SfEventColorsLight, StorageRegionEnum, TRACKING_EVENTS_STORAGE_KEY, UI_API_METHOD_TYPES, UI_MESSAGE, UI_MESSAGE_TYPES, UI_NATIVE_MESSAGE_TYPES, UserRoleEnum, ViewCompactItemType, addCanvasComponent, _export as agendaSelector, appRequiresCrm, applyCanvasThemeAssetsToNode, applyFont, applyToTreeBy, autofocus as autofocusDirective, camelCaseKeys, canvasUiUnoPreset, clearLocalStorageIfNeeded, ClickOutsideDirective as clickOutsideDirective, collectAllNodesByCondition, _export$3 as collectionPlayer, _export$2 as collectionSelector, componentIconType, computeLocalStorageBytes, convertSecondsToMinutes, convertSoqlToSmartQuery, convertToPixels, convertToSosl, createNodeId, createPitcherSettings, dayjs, deepDiff, deepToRaw, derivePatchRequestFields, determineUserRole, discardSectionComponentOverride, displayBytesWithMUnit, displayIntegerWithMunit, doesLocalOverrideExist, doesNotHaveAnyModuleOrHookSpecified, downloadFile, draggable as draggableDirective, elementMounted as elementMountedDirective, escapeSoqlString, evaluateAccessor, evaluateIsExecutedCondition, evaluateIsExecutedForPascalCaseEvent, executeWithDoublingTime, exitFullscreen, extractFieldNamesFromCondition, fallbackLocale, fetchAll, fetchAllWithOffset, fetchFirstChunkAndRemainingAsync, filterSidebarApps, filterTreeBy, findAllEmbeddableTypesInCanvasContent, findAllEmbeddableTypesInSectionsContent, findEmbeddableInCanvasContent, findEmbeddableInSectionsContent, findNodeInTreeByCondition, findNodeInTreeById, findNodeInTreeByType, findParentByNodeId, formatDate, formatDateDetailed, formatDateTime, formatDateTimeAgo, formatDayMonthBasedOnBrowserLang, formatDimensionForGotenberg, generateAIThumbnailUrl, getAllPages, getAppConfigFromAppSource, getAvailableApis, getComponentDescription, getComponentKeywords, getComponentTitle, getContrastTextColor, getDefinedProps, getEventColor, getExcessItemsIndexes, getFontAwesomeIconNameAndType, getImageSize, getLocalOverrideUrl, getLuminance, getNextPageParam, getNodeDisplayNameByComponentType, getNumberWithRegex, getPageQuantity, getPageRange, getPreviewUrl, getRoleIcon, getSectionGlobalComponentSpacing, handleThemeAssetComparison, hasAppTypeDefined, highLevelApi, indirectEval, insertItemSorted, isAfter, isBefore, isBeforeMinDate, isCanvasDrawerApp, isCanvasSectionExecution, isEmbeddableWithZeroHeight, isFileViewerReplacement, isFirefox, isFullscreen, isHeadlessOrNotAvailableApp, isImageAccessible, isIosDevice, isMac, isMobile, isModifierClick, isNonMemberRole, isOriginValid, isPastMaxDate, isPitcherOrIosDevice, isPitcherWkWebView, isPostcallApp, isQueryParamTruthy, isSafari, isSafariOnIosDevice, isSameOrAfter, isSameOrBefore, isTextComponentEmpty, isTheUiItself, isTouchScreen, isValidHex, isWindows, lightThemeOverrides, loadCustomHelpersFromApps, loadRemoteScriptWithCtx, loadScript, loadScriptStyle, loadStyle, localeDropdownOptions, localeNames, locales, minFutureDate, minPastDate, moveNodeTo, msToSeconds, navigateTo, normalizeFilterParams, normalizeNetworkFilterParams, openUsdz, parseCollectionPlayerSlidesToContentSelector, parseContentSelectorToCollectionPlayerSlides, parseFileToCollectionPlayer, parsePdfFileToCollectionPlayer, parsePptxFileToCollectionPlayer, pascalCaseKeys, _export$1 as pptConversionSelector, processCanvasForSectionThemeOverride, regenerateTreeIds, registerCustomHelper, registerCustomHelpers, registerPeerConnectivityHandler, renderTemplate, replaceThemePresetsWithInlineStyles, replaceTranslationMessagesWithOverrides, requestFullscreen, requestStream, scrollCanvasToTop, scrollToComponentById, secondsToHumanReadable, sendPeerConnectivityEvent, setDateTime, shouldDisplayPlaceholderComponent, shouldOpenInCollectionPlayerViewer, shouldShowEmbeddable, shouldShowInSidebar, skipElementsInTree, snakeCaseKeys, someNodeInTree, sortCollectionByString, splitUserName, stringToHslColor, supportedLocales, tapDirective, titleCase, toggleFullscreen, tooltipDirective, transformFilesToCollectionPlayer, transformFilesToContentGrid, updateFirstContentGridWithShareboxItems, urlSafeFetchInChunks, useAdmin, useAdminAndDsrState, useApi, useAppsDb, useBindValidation, useBroadcastRouteChange, useCanvasById, useCanvasLocks, useCanvasOverlay, useCanvasVisibility, useCanvasesAsInfinity, useCollectionPlayerOverlay, useCommentTracking, useConfirmation, useCreateEvent, useDeleteEvent, useDsr, useFetchCanvases, useFetchEvents, useFetchUsers, useFileDisplayHelpers, useFolderNameDescription, useGlobalSearch, useInfiniteScroll, useLocation, useMetadataSearch, useMetadataTemplates, useNotesApp, useNotification, useOpenFileStack, usePitcherApi, usePolling, usePresentationHistory, useRecentFiles, useShareCanvas, useSharedCommentsStorage, useSmartStore, useSuggestedTags, useTheme, useThemeVars, useToast, useUi, useUpdateEvent, useWindowEvents, vueQueryPluginOptions, wait, waitForIframeInitialize, waitForValue };
184221
+ export { ADMIN_API_METHOD_TYPES, ADMIN_API_TYPES, ADMIN_MESSAGE, ADMIN_MESSAGE_TYPES, APPS_DB, AccessTypeEnum, App$3 as AgendaSelectorApp, AppTypeEnum, _sfc_main as AssetsManagerApp, App$1 as Browser, BulkUpdateMetadataOperationEnum, BulkUpdateTagsOperationEnum, CALL_STORAGE_KEY, CANVASES, CANVAS_HOOKS, CANVAS_TYPOGRAPHY_CSS_PROPERTIES, CANVAS_TYPOGRAPHY_PRESETS, CAlgoliaSearch, CAssignedCanvasesManagement, _sfc_main$4p as CAssignedCanvasesManagementToolbar, _sfc_main$6s as CAvatar, _sfc_main$4O as CBlockManagement, CButton, _sfc_main$5f as CCanvasDeleteDialogContent, _sfc_main$5g as CCanvasMetadataFilters, CCanvasSelector, _sfc_main$6V as CCard, CCarousel, _sfc_main$3G as CCatalogIqSwitcher, _sfc_main$6U as CCheckbox, _sfc_main$3A as CChip, CCollapse, _sfc_main$6R as CCollapseItem, _sfc_main$6r as CCollapseTransition, NColorPicker as CColorPicker, CComponentListItem, CConfigEditor, NConfigProvider as CConfigProvider, _sfc_main$6h as CConfirmationAction, CConfirmationContent, CConfirmationHeader, CConfirmationModal, CContactSelector, CContactSelectorSelected, _sfc_main$68 as CContentError, _sfc_main$65 as CCreateCanvasModal, _sfc_main$64 as CCreateTemplateSectionBlockModal, _sfc_main$5V as CCreateThemeModal, CDP_EVENT_TYPE, CDataTable, NDatePicker as CDatePicker, CDateRangeFilter, CDetailPageSectionButtons, NDialogProvider as CDialogProvider, _sfc_main$6P as CDivider, _sfc_main$6O as CDrawer, _sfc_main$6N as CDrawerContent, _sfc_main$6M as CDropdown, _sfc_main$6p as CEmpty, _sfc_main$4m as CEntitySelector, _sfc_main$6L as CErrorFullScreen, _sfc_main$6n as CFeedback, _sfc_main$3o as CFileAccessManagement, _sfc_main$6C as CFileAttributes, _sfc_main$3p as CFilePanel, _sfc_main$6I as CFileThumbnail, CFileViewer, CFilesAccessInfo, _sfc_main$3$ as CFilesAccessManage, _sfc_main$3I as CFilesFolderDeleteDialogContent, NForm as CForm, NFormItem as CFormItem, NFormItemCol as CFormItemCol, NFormItemGridItem as CFormItemGi, NFormItemGridItem as CFormItemGridItem, FormItemRow as CFormItemRow, _sfc_main$4h as CFullScreenLoader, NGridItem as CGi, CGlobalLoader, _sfc_main$5O as CGlobalSearch, GlobalStyle as CGlobalStyle, NGrid as CGrid, NGridItem as CGridItem, CGroupsAccessInfo, NH1 as CH1, NH2 as CH2, NH3 as CH3, NH4 as CH4, NH5 as CH5, NH6 as CH6, _sfc_main$6m as CHelpText, CIcon, _sfc_main$6K as CImage, _sfc_main$4W as CInfoBadge, _sfc_main$6B as CInput, NInputNumber as CInputNumber, _sfc_main$3y as CKnockNotificationsAppWrapper, CLIENT_TYPE, NLayout as CLayout, NLayoutContent as CLayoutContent, LayoutFooter as CLayoutFooter, LayoutHeader as CLayoutHeader, LayoutSider as CLayoutSider, _sfc_main$4X as CList, NMessageProvider as CMessageProvider, _sfc_main$5L as CMetaDataBadge, _sfc_main$6A as CModal, CMonacoEditor, CMovableWidget, CMultiSelect, NNotificationProvider as CNotificationProvider, NPagination as CPagination, _sfc_main$6l as CPillSelect, _sfc_main$6z as CPopover, _sfc_main$6J as CProcessingOverlay, NProgress as CProgress, _sfc_main$5s as CRichTextEditor, _sfc_main$4q as CSavedCanvasesManagement, CSearch, _sfc_main$6x as CSearchOnClick, CSearchOnClickWithSuggestions, CSecondaryNav, _sfc_main$4R as CSectionManagement, CSelect, CSelectFilter, _sfc_main$3x as CSettingsEditor, CShortcut, CSingleSelect, NSkeleton as CSkeleton, _sfc_main$3C as CSlideViewer, NSpace as CSpace, _sfc_main$6q as CSpin, _sfc_main$6o as CSwitch, CTable, _sfc_main$5c as CTableInput, CTableMore, CTableSelect, CTableTag, _sfc_main$6F as CTag, CTags, CTemplateAccessInfo, _sfc_main$3_ as CTemplateAccessManage, _sfc_main$4G as CTemplateManagement, text as CText, _sfc_main$6v as CThemeEditor, _sfc_main$4B as CThemeManagement, _sfc_main$5l as CToastProvider, CToolbar, _sfc_main$6t as CTooltip, CUpsertFolderModal, _sfc_main$5p as CUserAvatar, CUserMenu, CUsersAccessInfo, CUsersGroupsAccessManage, _sfc_main$5m as CVirtualTable, _sfc_main$48 as CWarningAlert, CallState, CanvasActions, _sfc_main$15 as CanvasBuilderApp, CanvasBuilderMode, CanvasExcludedComponentTypesEnum, CanvasHistoryAction, App as CanvasSelector, CanvasStatus, CanvasThemeStatus, CanvasesViewsTypes, CollaborationRoleEnum, CollectionPlayerApp, App$4 as CollectionSelectorApp, ComponentIcon, ComponentTypes, ContactSelectorQuickFilterType, ContentGridLayoutTypes, ContentSelector, CoreFolderEntityType, DATE_TIME_FORMAT, DEFAULT_ADMIN_TABLE_HEIGHT, DEFAULT_ADMIN_TABLE_WITH_PAGINATION_HEIGHT, DEFAULT_GLOBAL_COMPONENT_SPACING, DEFAULT_GLOBAL_COMPONENT_SPACING_INTERVAL, DEFAULT_ITEMS_PER_PAGE, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PEER_CONNECTIVITY_VERSION, DEFAULT_PITCHER_SETTINGS, DSR_API_METHOD_TYPES, DSR_API_TYPES, DSR_MESSAGE, DSR_MESSAGE_TYPES, DSR_TYPE, DefaultExpiresAtEnum, DownloadTypeEnum, EMBED_TYPE, EventAction, EventExternalObjectContentTypeEnum, EventStatusEnum, FileContentTypeEnum, FileStatusEnum, FileTypeEnum, GlobalSearchResultType, GridLayoutTypes, HIDE_IF_EMPTY_COMPONENT_ID_TAG_PREFIX, HIDE_IF_EMPTY_COMPONENT_TRACKING_ID_TAG_PREFIX, HIDE_TAGS_WITH_PREFIX, HtmlLayoutTypes, IFRAME_ACTION_TYPES, IFRAME_DATA_MESSAGE, INITIAL_CALL_STATE, IS_DEV_ORG, IS_LOCALHOST, InstanceMembershipRoleEnum, InstanceMembershipUserStatusEnum, InvitationStatusEnum, LanguageEnum, LinkAlignmentTypes, LinkAnchorTypes, LinkPreviewTypes, MAX_LUMINANCE_FOR_LIGHT_TEXT, MAX_UPLOAD_SIZE, MIN_DIFFERENCE_IN_MINUTES, MetadataTemplateFieldTypeEnum, MultimediaHorizontalAlignmentOptions, NON_MEMBER_ROLES, NotesApp, OperatorEnum, PAPER_SIZE_PRESETS, PEER_CONNECTIVITY_EVENT, PEER_CONNECTIVITY_HANDLER_MATCH_ALL, PITCHER_EVENT, PITCHER_SETTINGS_KEY, PLATFORM_TYPE, PRINT_SCALE_FACTOR, PeerConnectivityActions, PitcherBroadcastedEventName, PitcherEventName, PitcherExternalEventName, PitcherMessageType, PitcherResponseStatus, PostAction, App$2 as PptConversionSelectorApp, REQUEST_DEFAULT_CANCEL_TIMEOUT, SEARCH_DEBOUNCE_TIME, SUPPORTED_FONT_EXTENSIONS, SUPPORTED_FONT_TYPES, SUPPORTED_IMAGE_EXTENSIONS, SUPPORTED_IMAGE_TYPES, SUPPORTED_UPLOAD_FILE_EXTENSIONS, SUPPORTED_VIDEO_EXTENSIONS, SUPPORTED_VIDEO_TYPES, SfEventColors, SfEventColorsLight, StorageRegionEnum, TRACKING_EVENTS_STORAGE_KEY, UI_API_METHOD_TYPES, UI_MESSAGE, UI_MESSAGE_TYPES, UI_NATIVE_MESSAGE_TYPES, UserRoleEnum, ViewCompactItemType, addCanvasComponent, _export as agendaSelector, appRequiresCrm, applyCanvasThemeAssetsToNode, applyFont, applyToTreeBy, autofocus as autofocusDirective, camelCaseKeys, canvasUiUnoPreset, clearLocalStorageIfNeeded, ClickOutsideDirective as clickOutsideDirective, collectAllNodesByCondition, _export$3 as collectionPlayer, _export$2 as collectionSelector, componentIconType, computeLocalStorageBytes, convertSecondsToMinutes, convertSoqlToSmartQuery, convertToPixels, convertToSosl, createNodeId, createPitcherSettings, dayjs, deepDiff, deepToRaw, derivePatchRequestFields, determineUserRole, discardSectionComponentOverride, displayBytesWithMUnit, displayIntegerWithMunit, doesLocalOverrideExist, doesNotHaveAnyModuleOrHookSpecified, downloadFile, draggable as draggableDirective, elementMounted as elementMountedDirective, escapeSoqlString, evaluateAccessor, evaluateIsExecutedCondition, evaluateIsExecutedForPascalCaseEvent, executeWithDoublingTime, exitFullscreen, extractFieldNamesFromCondition, fallbackLocale, fetchAll, fetchAllWithOffset, fetchFirstChunkAndRemainingAsync, filterSidebarApps, filterTreeBy, findAllEmbeddableTypesInCanvasContent, findAllEmbeddableTypesInSectionsContent, findEmbeddableInCanvasContent, findEmbeddableInSectionsContent, findNodeInTreeByCondition, findNodeInTreeById, findNodeInTreeByType, findParentByNodeId, formatDate, formatDateDetailed, formatDateTime, formatDateTimeAgo, formatDayMonthBasedOnBrowserLang, formatDimensionForGotenberg, generateAIThumbnailUrl, getAllPages, getAppConfigFromAppSource, getAvailableApis, getComponentDescription, getComponentKeywords, getComponentTitle, getContrastTextColor, getDefinedProps, getEventColor, getExcessItemsIndexes, getFontAwesomeIconNameAndType, getImageSize, getLocalOverrideUrl, getLuminance, getNextPageParam, getNodeDisplayNameByComponentType, getNumberWithRegex, getPageQuantity, getPageRange, getPreviewUrl, getRoleIcon, getSectionGlobalComponentSpacing, handleThemeAssetComparison, hasAppTypeDefined, highLevelApi, indirectEval, insertItemSorted, isAfter, isBefore, isBeforeMinDate, isCanvasDrawerApp, isCanvasSectionExecution, isEmbeddableWithZeroHeight, isFileViewerReplacement, isFirefox, isFullscreen, isHeadlessOrNotAvailableApp, isImageAccessible, isIosDevice, isMac, isMobile, isModifierClick, isNonMemberRole, isOriginValid, isPastMaxDate, isPitcherOrIosDevice, isPitcherWkWebView, isPostcallApp, isQueryParamTruthy, isSafari, isSafariOnIosDevice, isSameOrAfter, isSameOrBefore, isTextComponentEmpty, isTheUiItself, isTouchScreen, isValidHex, isWindows, lightThemeOverrides, loadCustomHelpersFromApps, loadRemoteScriptWithCtx, loadScript, loadScriptStyle, loadStyle, localeDropdownOptions, localeNames, locales, minFutureDate, minPastDate, moveNodeTo, msToSeconds, navigateTo, normalizeFilterParams, normalizeNetworkFilterParams, openUsdz, parseCollectionPlayerSlidesToContentSelector, parseContentSelectorToCollectionPlayerSlides, parseFileToCollectionPlayer, parsePdfFileToCollectionPlayer, parsePptxFileToCollectionPlayer, pascalCaseKeys, _export$1 as pptConversionSelector, processCanvasForSectionThemeOverride, regenerateTreeIds, registerCustomHelper, registerCustomHelpers, registerPeerConnectivityHandler, renderTemplate, replaceThemePresetsWithInlineStyles, replaceTranslationMessagesWithOverrides, requestFullscreen, requestStream, scrollCanvasToTop, scrollToComponentById, secondsToHumanReadable, sendPeerConnectivityEvent, setDateTime, shouldDisplayPlaceholderComponent, shouldOpenInCollectionPlayerViewer, shouldShowEmbeddable, shouldShowInSidebar, skipElementsInTree, snakeCaseKeys, someNodeInTree, sortCollectionByString, splitUserName, stringToHslColor, supportedLocales, tapDirective, titleCase, toggleFullscreen, tooltipDirective, transformFilesToCollectionPlayer, transformFilesToContentGrid, updateFirstCollectionPlayerWithShareboxItems, updateFirstContentGridWithShareboxItems, urlSafeFetchInChunks, useAdmin, useAdminAndDsrState, useApi, useAppsDb, useBindValidation, useBroadcastRouteChange, useCanvasById, useCanvasLocks, useCanvasOverlay, useCanvasVisibility, useCanvasesAsInfinity, useCollectionPlayerOverlay, useCommentTracking, useConfirmation, useCreateEvent, useDeleteEvent, useDsr, useFetchCanvases, useFetchEvents, useFetchUsers, useFileDisplayHelpers, useFolderNameDescription, useGlobalSearch, useInfiniteScroll, useLocation, useMetadataSearch, useMetadataTemplates, useNotesApp, useNotification, useOpenFileStack, usePitcherApi, usePolling, usePresentationHistory, useRecentFiles, useShareCanvas, useSharedCommentsStorage, useSmartStore, useSuggestedTags, useTheme, useThemeVars, useToast, useUi, useUpdateEvent, useWindowEvents, vueQueryPluginOptions, wait, waitForIframeInitialize, waitForValue };
184110
184222
  //# sourceMappingURL=canvas-ui.js.map