@backstage/plugin-catalog-react 1.1.4-next.0 → 1.1.4-next.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # @backstage/plugin-catalog-react
2
2
 
3
+ ## 1.1.4-next.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 817f3196f6: Updated React Router dependencies to be peer dependencies.
8
+ - a6d551fad9: Properly handle free-text entity filtering in the case of empty tag arrays
9
+ - Updated dependencies
10
+ - @backstage/core-components@0.11.1-next.1
11
+ - @backstage/core-plugin-api@1.0.6-next.1
12
+ - @backstage/plugin-permission-react@0.4.5-next.1
13
+
3
14
  ## 1.1.4-next.0
4
15
 
5
16
  ### Patch Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/plugin-catalog-react",
3
- "version": "1.1.4-next.0",
3
+ "version": "1.1.4-next.1",
4
4
  "main": "../dist/index.esm.js",
5
5
  "types": "../dist/index.alpha.d.ts"
6
6
  }
@@ -441,6 +441,7 @@ export declare class EntityTextFilter implements EntityFilter {
441
441
  readonly value: string;
442
442
  constructor(value: string);
443
443
  filterEntity(entity: Entity): boolean;
444
+ private toUpperArray;
444
445
  }
445
446
 
446
447
  /**
@@ -441,6 +441,7 @@ export declare class EntityTextFilter implements EntityFilter {
441
441
  readonly value: string;
442
442
  constructor(value: string);
443
443
  filterEntity(entity: Entity): boolean;
444
+ private toUpperArray;
444
445
  }
445
446
 
446
447
  /**
package/dist/index.d.ts CHANGED
@@ -441,6 +441,7 @@ export declare class EntityTextFilter implements EntityFilter {
441
441
  readonly value: string;
442
442
  constructor(value: string);
443
443
  filterEntity(entity: Entity): boolean;
444
+ private toUpperArray;
444
445
  }
445
446
 
446
447
  /**
package/dist/index.esm.js CHANGED
@@ -474,9 +474,21 @@ class EntityTextFilter {
474
474
  this.value = value;
475
475
  }
476
476
  filterEntity(entity) {
477
- var _a;
478
- const upperCaseValue = this.value.toLocaleUpperCase("en-US");
479
- return entity.metadata.name.toLocaleUpperCase("en-US").includes(upperCaseValue) || `${entity.metadata.title}`.toLocaleUpperCase("en-US").includes(upperCaseValue) || ((_a = entity.metadata.tags) == null ? void 0 : _a.join("").toLocaleUpperCase("en-US").indexOf(upperCaseValue)) !== -1;
477
+ const words = this.toUpperArray(this.value.split(/\s/));
478
+ const exactMatch = this.toUpperArray([entity.metadata.tags]);
479
+ const partialMatch = this.toUpperArray([
480
+ entity.metadata.name,
481
+ entity.metadata.title
482
+ ]);
483
+ for (const word of words) {
484
+ if (exactMatch.every((m) => m !== word) && partialMatch.every((m) => !m.includes(word))) {
485
+ return false;
486
+ }
487
+ }
488
+ return true;
489
+ }
490
+ toUpperArray(value) {
491
+ return value.flat().filter((m) => Boolean(m)).map((m) => m.toLocaleUpperCase("en-US"));
480
492
  }
481
493
  }
482
494
  class EntityOwnerFilter {