@pitcher/canvas-ui 2025.12.5-132019-beta → 2025.12.5-135644-beta

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
@@ -87748,6 +87748,36 @@ function crmSmartObjectValidationRules(payload) {
87748
87748
  }
87749
87749
  return highLevelApi.API.request("crm_smart_object_validation_rules", payload);
87750
87750
  }
87751
+ function crmSmartDeleteObjects(payload) {
87752
+ if (!payload || !payload.objects || !Array.isArray(payload.objects)) {
87753
+ return Promise.reject(new Error("Payload must contain an array of objects"));
87754
+ }
87755
+ if (payload.objects.length === 0) {
87756
+ return Promise.reject(new Error("Objects array cannot be empty"));
87757
+ }
87758
+ for (const obj of payload.objects) {
87759
+ if (!obj) {
87760
+ return Promise.reject(new Error("Objects array cannot contain null or undefined elements"));
87761
+ }
87762
+ if (!obj.table_name || typeof obj.table_name !== "string" || obj.table_name.trim() === "") {
87763
+ return Promise.reject(new Error("Each object must have a valid non-empty table_name"));
87764
+ }
87765
+ if (!obj.ids || !Array.isArray(obj.ids) || obj.ids.length === 0) {
87766
+ return Promise.reject(new Error(`Object for table ${obj.table_name} must have a non-empty ids array`));
87767
+ }
87768
+ for (let i = 0; i < obj.ids.length; i++) {
87769
+ const id = obj.ids[i];
87770
+ if (!id || typeof id !== "string" || id.trim() === "") {
87771
+ return Promise.reject(
87772
+ new Error(
87773
+ `Object for table ${obj.table_name} contains invalid id at index ${i}. All IDs must be non-empty strings.`
87774
+ )
87775
+ );
87776
+ }
87777
+ }
87778
+ }
87779
+ return highLevelApi.API.request("crm_smart_delete_objects", payload);
87780
+ }
87751
87781
 
87752
87782
  function getFolders(payload) {
87753
87783
  return this.API.request("get_folders", payload);
@@ -87845,6 +87875,7 @@ const modules = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
87845
87875
  createFile,
87846
87876
  createFolder,
87847
87877
  crmQuery,
87878
+ crmSmartDeleteObjects,
87848
87879
  crmSmartObjectMetadata,
87849
87880
  crmSmartObjectValidationRules,
87850
87881
  crmSmartQuery,
@@ -113054,8 +113085,7 @@ const _sfc_main$4E = /*@__PURE__*/defineComponent({
113054
113085
  },
113055
113086
  isAnyTypeOfAdmin: {
113056
113087
  type: Boolean
113057
- },
113058
- excludedTags: {}
113088
+ }
113059
113089
  },
113060
113090
  emits: ["open", "details", "edit", "create", "convert", "createFromTemplate", "move", "manageDistribution"],
113061
113091
  setup(__props, {
@@ -113180,7 +113210,7 @@ const _sfc_main$4E = /*@__PURE__*/defineComponent({
113180
113210
  const filteredData = computed(() => {
113181
113211
  if (!search.value) return fetchedData.value;
113182
113212
  const currSearch = (search.value ?? '').toLocaleLowerCase();
113183
- return fetchedData.value.filter(item => item.name.toLowerCase().includes(currSearch) || item.tags?.some(tag => tag.toLowerCase().includes(currSearch)));
113213
+ return fetchedData.value.filter(section => (section.name.toLocaleLowerCase().includes(currSearch) || section?.tags?.some(tag => tag.toLocaleLowerCase().includes(currSearch))) ?? false);
113184
113214
  });
113185
113215
  const showBulkToolbar = computed(() => isTemplateFolderEnabled.value ? selectedItemIds.value.length > 0 : tableRef.value?.selectedRowsCount);
113186
113216
  const bulkToolbarCount = computed(() => isTemplateFolderEnabled.value ? totalCount.value : tableRef.value?.pageRowsCount ?? 0);
@@ -113841,8 +113871,7 @@ const _sfc_main$4E = /*@__PURE__*/defineComponent({
113841
113871
  isFetchingData.value = true;
113842
113872
  const response = await props.folderFetcher?.({
113843
113873
  folder_id: params.folder_id,
113844
- entity: CoreFolderEntityType.Template,
113845
- tags__not_in: props.excludedTags?.length ? props.excludedTags.join(',') : undefined
113874
+ entity: CoreFolderEntityType.Template
113846
113875
  });
113847
113876
  fetchedData.value = [...(response.folders ?? []).map(folder => ({
113848
113877
  type: 'folder',
@@ -113909,8 +113938,7 @@ const _sfc_main$4E = /*@__PURE__*/defineComponent({
113909
113938
  is_template: props.canvasType === 'template' || props.canvasType === 'section-template',
113910
113939
  is_section: props.canvasType === 'section-template',
113911
113940
  fields: fetchFields.join(','),
113912
- id__in: idsToInclude?.length ? idsToInclude.slice(0, requestParams.page_size).join(',') : undefined,
113913
- tags__not_in: props.excludedTags?.length ? props.excludedTags.join(',') : undefined
113941
+ id__in: idsToInclude?.length ? idsToInclude.slice(0, requestParams.page_size).join(',') : undefined
113914
113942
  })];
113915
113943
 
113916
113944
  // only show all recommended sections if on the first page
@@ -113921,8 +113949,7 @@ const _sfc_main$4E = /*@__PURE__*/defineComponent({
113921
113949
  is_template: props.canvasType === 'template' || props.canvasType === 'section-template',
113922
113950
  is_section: props.canvasType === 'section-template',
113923
113951
  fields: fetchFields.join(','),
113924
- id__in: recommendedIds.value.join(','),
113925
- tags__not_in: props.excludedTags?.length ? props.excludedTags.join(',') : undefined
113952
+ id__in: recommendedIds.value.join(',')
113926
113953
  }));
113927
113954
  const [response, recommendedResponse] = await Promise.all(requestPromises);
113928
113955
  if (recommendedResponse && recommendedResponse.results?.length) {
@@ -113954,8 +113981,7 @@ const _sfc_main$4E = /*@__PURE__*/defineComponent({
113954
113981
  isFetchingLevel.value = true;
113955
113982
  const response = await props.folderFetcher?.({
113956
113983
  folder_id: folderId,
113957
- entity: CoreFolderEntityType.Template,
113958
- tags__not_in: props.excludedTags?.length ? props.excludedTags.join(',') : undefined
113984
+ entity: CoreFolderEntityType.Template
113959
113985
  });
113960
113986
  if (response?.id) {
113961
113987
  // TODO: filter out selected items once bulk actions are implemented