@pitcher/canvas-ui 2025.12.12-75200 → 2025.12.15-100142

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.css CHANGED
@@ -820,7 +820,7 @@ button[data-v-338ca99c]:focus {
820
820
  .c-virtual-table__footer,
821
821
  .c-virtual-table__content {
822
822
  border-top: 1px solid var(--4cc1f1b0);
823
- }.c-search-filter__popover[data-v-06d0d22c] {
823
+ }.c-search-filter__popover[data-v-14ceb850] {
824
824
  box-shadow: 0px 7px 24px 0px rgba(0, 0, 0, 0.1);
825
825
  }.c-select-filter__popover[data-v-69bc4c9f] {
826
826
  box-shadow: 0px 7px 24px 0px rgba(0, 0, 0, 0.1);
package/canvas-ui.js CHANGED
@@ -80326,7 +80326,8 @@ function useMetadataSearch(options = {}) {
80326
80326
  threshold = void 0,
80327
80327
  // only used for fuzzy search
80328
80328
  fetchAllUnique = false,
80329
- contentType = void 0
80329
+ contentType = void 0,
80330
+ tagsNotIn = void 0
80330
80331
  } = {}) {
80331
80332
  if (!metadataSearch || !searchTerm) {
80332
80333
  return [];
@@ -80346,7 +80347,8 @@ function useMetadataSearch(options = {}) {
80346
80347
  searchMode,
80347
80348
  threshold,
80348
80349
  fetch_all_unique: fetchAllUnique,
80349
- content_type: contentType
80350
+ content_type: contentType,
80351
+ tags_not_in: tagsNotIn?.length ? tagsNotIn.join(",") : void 0
80350
80352
  });
80351
80353
  const autocompleteOptions = [];
80352
80354
  const addedValues = /* @__PURE__ */ new Set();
@@ -80396,7 +80398,8 @@ function useMetadataSearch(options = {}) {
80396
80398
  key = "search_data",
80397
80399
  ownerId = null,
80398
80400
  limit = 100,
80399
- and = []
80401
+ and = [],
80402
+ tagsNotIn = void 0
80400
80403
  } = {}) {
80401
80404
  if (!entity) {
80402
80405
  return { popular: [], all: [] };
@@ -80416,7 +80419,8 @@ function useMetadataSearch(options = {}) {
80416
80419
  include_draft_values: includeDraftValues,
80417
80420
  owner_id: ownerId?.toString(),
80418
80421
  page_size: limit,
80419
- and
80422
+ and,
80423
+ tags__not_in: tagsNotIn?.length ? tagsNotIn.join(",") : void 0
80420
80424
  });
80421
80425
  if (response?.results && Array.isArray(response.results)) {
80422
80426
  return {
@@ -100957,7 +100961,8 @@ function useFilterSuggestions(options = {}) {
100957
100961
  include_draft_values: options.includeDraftValues,
100958
100962
  owner_id: options.ownerId?.toString(),
100959
100963
  page_size: options.limit || 100,
100960
- and: constraints
100964
+ and: constraints,
100965
+ tags__not_in: options.tagsNotIn?.length ? options.tagsNotIn.join(",") : void 0
100961
100966
  });
100962
100967
  const result = {
100963
100968
  suggestions: response.results?.map((item) => ({
@@ -101049,7 +101054,8 @@ const _sfc_main$5j = /* @__PURE__ */ defineComponent({
101049
101054
  limit: { default: 100 },
101050
101055
  externalFilters: { default: () => ({}) },
101051
101056
  isDependentField: { type: Boolean, default: false },
101052
- systemFilteredIds: { default: void 0 }
101057
+ systemFilteredIds: { default: void 0 },
101058
+ tagsNotIn: { default: () => [] }
101053
101059
  },
101054
101060
  emits: ["update:modelValue", "clear"],
101055
101061
  setup(__props, { emit: __emit }) {
@@ -101075,7 +101081,8 @@ const _sfc_main$5j = /* @__PURE__ */ defineComponent({
101075
101081
  isSection: props.isSection,
101076
101082
  isTemplate: props.isTemplate,
101077
101083
  ownerId: props.ownerId,
101078
- limit: props.limit
101084
+ limit: props.limit,
101085
+ tagsNotIn: props.tagsNotIn
101079
101086
  });
101080
101087
  const { isEnabled, debouncedFetch, cleanup, isLoading } = filterSuggestions;
101081
101088
  const { handleFetch } = useMetadataSearch({ includeSearchTermAsOption: true });
@@ -101153,7 +101160,8 @@ const _sfc_main$5j = /* @__PURE__ */ defineComponent({
101153
101160
  isTemplate: props.isTemplate,
101154
101161
  key: props.filterKey,
101155
101162
  ownerId: props.ownerId,
101156
- fetchAllUnique: true
101163
+ fetchAllUnique: true,
101164
+ tagsNotIn: props.tagsNotIn
101157
101165
  });
101158
101166
  return searchResults;
101159
101167
  }
@@ -101389,7 +101397,7 @@ const _sfc_main$5j = /* @__PURE__ */ defineComponent({
101389
101397
  }
101390
101398
  });
101391
101399
 
101392
- const CSearchFilter = /* @__PURE__ */ _export_sfc(_sfc_main$5j, [["__scopeId", "data-v-06d0d22c"]]);
101400
+ const CSearchFilter = /* @__PURE__ */ _export_sfc(_sfc_main$5j, [["__scopeId", "data-v-14ceb850"]]);
101393
101401
 
101394
101402
  const _hoisted_1$4h = ["v-bind"];
101395
101403
  const _hoisted_2$38 = { class: "flex items-center gap-2 px-6 font-size-4" };
@@ -103169,7 +103177,8 @@ const _sfc_main$59 = /* @__PURE__ */ defineComponent({
103169
103177
  customFilterComponents: {},
103170
103178
  enableDependentFilters: { type: Boolean },
103171
103179
  dependentFiltersEntity: { default: "file" },
103172
- contentType: {}
103180
+ contentType: {},
103181
+ tagsNotIn: { default: () => [] }
103173
103182
  },
103174
103183
  emits: ["update:filters", "update:search", "update:searchIn"],
103175
103184
  setup(__props, { expose: __expose, emit: __emit }) {
@@ -103354,7 +103363,8 @@ const _sfc_main$59 = /* @__PURE__ */ defineComponent({
103354
103363
  searchMode: "fuzzy",
103355
103364
  threshold: 0.3,
103356
103365
  fetchAllUnique: true,
103357
- contentType: props.contentType
103366
+ contentType: props.contentType,
103367
+ tagsNotIn: props.tagsNotIn
103358
103368
  });
103359
103369
  }
103360
103370
  function onUpdateModelValue(f, value) {
@@ -103588,8 +103598,9 @@ const _sfc_main$59 = /* @__PURE__ */ defineComponent({
103588
103598
  options: f.type === "checkbox" ? unref(getFilterOptions)(f.type, f.options, f.available_values) : unref(getFilterOptions)(f.type, f.options),
103589
103599
  "owner-id": _ctx.ownerId,
103590
103600
  "system-filtered-ids": systemFilteredIds.value,
103601
+ "tags-not-in": _ctx.tagsNotIn,
103591
103602
  "onUpdate:modelValue": (v) => onUpdateDependentField(f, v)
103592
- }, null, 8, ["allow-custom-date-range", "disabled", "entity", "external-filters", "filter-key", "include-draft-values", "is-dependent-field", "is-section", "is-template", "modelValue", "multiple", "name", "numeric", "options", "owner-id", "system-filtered-ids", "onUpdate:modelValue"]);
103603
+ }, null, 8, ["allow-custom-date-range", "disabled", "entity", "external-filters", "filter-key", "include-draft-values", "is-dependent-field", "is-section", "is-template", "modelValue", "multiple", "name", "numeric", "options", "owner-id", "system-filtered-ids", "tags-not-in", "onUpdate:modelValue"]);
103593
103604
  }), 128)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
103594
103605
  (openBlock(true), createElementBlock(Fragment, null, renderList(computedCustomFilterComponents.value, (cc) => {
103595
103606
  return openBlock(), createBlock(resolveDynamicComponent(componentMap[cc.componentName]), {
@@ -103610,8 +103621,9 @@ const _sfc_main$59 = /* @__PURE__ */ defineComponent({
103610
103621
  options: cc.options ?? unref(getFilterOptions)(cc.type, cc.options),
103611
103622
  "owner-id": _ctx.ownerId,
103612
103623
  "system-filtered-ids": systemFilteredIds.value,
103624
+ "tags-not-in": _ctx.tagsNotIn,
103613
103625
  "onUpdate:modelValue": (v) => onUpdateModelValue(cc, v)
103614
- }, null, 8, ["allow-custom-date-range", "disabled", "entity", "external-filters", "filter-key", "include-draft-values", "is-custom", "is-dependent-field", "is-section", "is-template", "modelValue", "name", "numeric", "options", "owner-id", "system-filtered-ids", "onUpdate:modelValue"]);
103626
+ }, null, 8, ["allow-custom-date-range", "disabled", "entity", "external-filters", "filter-key", "include-draft-values", "is-custom", "is-dependent-field", "is-section", "is-template", "modelValue", "name", "numeric", "options", "owner-id", "system-filtered-ids", "tags-not-in", "onUpdate:modelValue"]);
103615
103627
  }), 128)),
103616
103628
  (openBlock(true), createElementBlock(Fragment, null, renderList(computedFilters.value, (f) => {
103617
103629
  return openBlock(), createBlock(resolveDynamicComponent(componentMap[f.componentName]), {
@@ -103632,8 +103644,9 @@ const _sfc_main$59 = /* @__PURE__ */ defineComponent({
103632
103644
  options: unref(getFilterOptions)(f.type, f.options),
103633
103645
  "owner-id": _ctx.ownerId,
103634
103646
  "system-filtered-ids": systemFilteredIds.value,
103647
+ "tags-not-in": _ctx.tagsNotIn,
103635
103648
  "onUpdate:modelValue": (v) => onUpdateModelValue(f, v)
103636
- }, null, 8, ["allow-custom-date-range", "disabled", "entity", "external-filters", "filter-key", "include-draft-values", "is-dependent-field", "is-section", "is-template", "modelValue", "multiple", "name", "numeric", "options", "owner-id", "system-filtered-ids", "onUpdate:modelValue"]);
103649
+ }, null, 8, ["allow-custom-date-range", "disabled", "entity", "external-filters", "filter-key", "include-draft-values", "is-dependent-field", "is-section", "is-template", "modelValue", "multiple", "name", "numeric", "options", "owner-id", "system-filtered-ids", "tags-not-in", "onUpdate:modelValue"]);
103637
103650
  }), 128))
103638
103651
  ], 64))
103639
103652
  ], 64)) : createCommentVNode("", true),
@@ -103710,8 +103723,9 @@ const _sfc_main$59 = /* @__PURE__ */ defineComponent({
103710
103723
  options: f.type === "checkbox" ? unref(getFilterOptions)(f.type, f.options, f.available_values) : unref(getFilterOptions)(f.type, f.options),
103711
103724
  "owner-id": _ctx.ownerId,
103712
103725
  "system-filtered-ids": systemFilteredIds.value,
103726
+ "tags-not-in": _ctx.tagsNotIn,
103713
103727
  "onUpdate:modelValue": (v) => section.are_fields_dependent ? onUpdateDependentField(f, v) : onUpdateModelValue(f, v)
103714
- }, null, 8, ["allow-custom-date-range", "disabled", "entity", "external-filters", "filter-key", "include-draft-values", "is-dependent-field", "is-section", "is-template", "modelValue", "multiple", "name", "numeric", "options", "owner-id", "system-filtered-ids", "onUpdate:modelValue"]);
103728
+ }, null, 8, ["allow-custom-date-range", "disabled", "entity", "external-filters", "filter-key", "include-draft-values", "is-dependent-field", "is-section", "is-template", "modelValue", "multiple", "name", "numeric", "options", "owner-id", "system-filtered-ids", "tags-not-in", "onUpdate:modelValue"]);
103715
103729
  }), 128))
103716
103730
  ]),
103717
103731
  _: 2
@@ -111928,7 +111942,10 @@ const _sfc_main$4M = /*@__PURE__*/defineComponent({
111928
111942
  order: 'asc'
111929
111943
  })
111930
111944
  },
111931
- viewMode: {}
111945
+ viewMode: {},
111946
+ excludedTags: {
111947
+ default: () => []
111948
+ }
111932
111949
  },
111933
111950
  emits: ["search", "create:template", "create:folder", "convert", "update:filter-values", "breadcrumb:click", "move", "select", "restoreColumns", "sort-changed", "toggle-view-mode"],
111934
111951
  setup(__props, {
@@ -112192,11 +112209,12 @@ const _sfc_main$4M = /*@__PURE__*/defineComponent({
112192
112209
  "initial-search-value": _ctx.search,
112193
112210
  "is-section": _ctx.canvasType === 'section-template',
112194
112211
  "is-template": "",
112195
- placeholder: unref(t)('canvasUI.components.templates.CTemplateManagementToolbar.searchInNameOrTags')
112212
+ placeholder: unref(t)('canvasUI.components.templates.CTemplateManagementToolbar.searchInNameOrTags'),
112213
+ "tags-not-in": _ctx.excludedTags
112196
112214
  }, popularityProps.value, {
112197
112215
  "onUpdate:filters": _cache[4] || (_cache[4] = $event => emit('update:filter-values', $event)),
112198
112216
  "onUpdate:search": _cache[5] || (_cache[5] = $event => emit('search', $event))
112199
- }), null, 16, ["customFilterComponents", "disabled", "filters", "hide-metadata-filters", "include-draft-values", "initial-search-value", "is-section", "placeholder"])]), createElementVNode("div", _hoisted_6$1m, [unref(launchDarkly).enable_template_folders && _ctx.canvasType !== 'section-template' ? withDirectives((openBlock(), createBlock(CButton, {
112217
+ }), null, 16, ["customFilterComponents", "disabled", "filters", "hide-metadata-filters", "include-draft-values", "initial-search-value", "is-section", "placeholder", "tags-not-in"])]), createElementVNode("div", _hoisted_6$1m, [unref(launchDarkly).enable_template_folders && _ctx.canvasType !== 'section-template' ? withDirectives((openBlock(), createBlock(CButton, {
112200
112218
  key: 0,
112201
112219
  circle: "",
112202
112220
  onClick: _cache[6] || (_cache[6] = $event => _ctx.$emit('toggle-view-mode'))
@@ -112255,11 +112273,12 @@ const _sfc_main$4M = /*@__PURE__*/defineComponent({
112255
112273
  "initial-search-value": _ctx.search,
112256
112274
  "is-section": _ctx.canvasType === 'section-template',
112257
112275
  "is-template": "",
112258
- placeholder: unref(t)('canvasUI.components.templates.CTemplateManagementToolbar.searchInNameOrTags')
112276
+ placeholder: unref(t)('canvasUI.components.templates.CTemplateManagementToolbar.searchInNameOrTags'),
112277
+ "tags-not-in": _ctx.excludedTags
112259
112278
  }, popularityProps.value, {
112260
112279
  "onUpdate:filters": _cache[12] || (_cache[12] = $event => emit('update:filter-values', $event)),
112261
112280
  "onUpdate:search": _cache[13] || (_cache[13] = $event => emit('search', $event))
112262
- }), null, 16, ["customFilterComponents", "disabled", "filters", "hide-metadata-filters", "include-draft-values", "initial-search-value", "is-section", "placeholder"])]))], 2);
112281
+ }), null, 16, ["customFilterComponents", "disabled", "filters", "hide-metadata-filters", "include-draft-values", "initial-search-value", "is-section", "placeholder", "tags-not-in"])]))], 2);
112263
112282
  };
112264
112283
  }
112265
112284
  });
@@ -114392,6 +114411,7 @@ const _sfc_main$4G = /*@__PURE__*/defineComponent({
114392
114411
  }),
114393
114412
  currentSort: currentSort.value,
114394
114413
  "custom-filter-components": unref(dataFilterComponents),
114414
+ "excluded-tags": _ctx.excludedTags,
114395
114415
  "hide-convert": isImpact.value || _ctx.hideConvert,
114396
114416
  "hide-create": isImpact.value,
114397
114417
  "hide-view": !unref(launchDarkly).allow_canvases_tables_columns_settings,
@@ -114413,7 +114433,7 @@ const _sfc_main$4G = /*@__PURE__*/defineComponent({
114413
114433
  onSortChanged: onSortChanged,
114414
114434
  onToggleViewMode: toggleViewMode,
114415
114435
  "onUpdate:filterValues": _cache[5] || (_cache[5] = $event => onTableChange('filterValuesChanged', $event))
114416
- }, null, 8, ["breadcrumbs", "canvas-type", "class", "currentSort", "custom-filter-components", "hide-convert", "hide-create", "hide-view", "is-loading-items", "is-template-folder-enabled", "metadata-filter-values", "recommended-ids", "search", "tableColumnsSettings", "viewMode", "onMove", "onRestoreColumns", "onSelect"]), [[vShow, !showBulkToolbar.value]]), (isFetchingData.value || isLoadingTable.value) && isTemplateFolderEnabled.value && unref(viewMode) === 'list' ? (openBlock(), createElementBlock("div", {
114436
+ }, null, 8, ["breadcrumbs", "canvas-type", "class", "currentSort", "custom-filter-components", "excluded-tags", "hide-convert", "hide-create", "hide-view", "is-loading-items", "is-template-folder-enabled", "metadata-filter-values", "recommended-ids", "search", "tableColumnsSettings", "viewMode", "onMove", "onRestoreColumns", "onSelect"]), [[vShow, !showBulkToolbar.value]]), (isFetchingData.value || isLoadingTable.value) && isTemplateFolderEnabled.value && unref(viewMode) === 'list' ? (openBlock(), createElementBlock("div", {
114417
114437
  key: 0,
114418
114438
  class: "flex bg-base rounded-2 mr-3",
114419
114439
  style: normalizeStyle({