@fluid-topics/ft-wc-utils 1.2.23 → 1.2.25
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/build/ClusteringHelper.d.ts +12 -5
- package/build/ClusteringHelper.js +19 -17
- package/build/floating.d.ts +1 -1
- package/build/floating.js +2 -2
- package/build/globals.min.js +7 -7
- package/build/redux/FtReduxStore.js +5 -4
- package/package.json +2 -2
|
@@ -5,22 +5,29 @@ export interface FlatMetadata {
|
|
|
5
5
|
label: string;
|
|
6
6
|
value: Optional<string>;
|
|
7
7
|
displayValue: string;
|
|
8
|
+
displayTooltipValue: string;
|
|
8
9
|
}
|
|
9
10
|
export interface ClusterItem {
|
|
10
11
|
metadata: FlatMetadata;
|
|
11
12
|
result: FtSearchResultClusterEntry;
|
|
12
13
|
}
|
|
14
|
+
export interface ExtractResultMetadataOptions {
|
|
15
|
+
result: FtSearchResultClusterEntry;
|
|
16
|
+
key?: string;
|
|
17
|
+
hierarchicalValueTruncatingLevel?: number;
|
|
18
|
+
dateFormatter?: ((value: string) => string);
|
|
19
|
+
}
|
|
13
20
|
export declare class ClusteringHelper {
|
|
14
21
|
private allResults;
|
|
15
22
|
private selectedResult;
|
|
16
23
|
private clusteringMetadata;
|
|
17
24
|
private metadataDescriptors;
|
|
18
25
|
constructor(allResults: Array<FtSearchResultClusterEntry>, selectedResult: FtSearchResultClusterEntry, clusteringMetadata: Set<string>, metadataDescriptors: Array<FtMetadataDescriptor>);
|
|
19
|
-
static extractResultMetadata(
|
|
20
|
-
static extractResultMetadata(
|
|
21
|
-
static flattenMetadata(metadata: Optional<FtMetadata>[], dateFormatter?: ((value: string) => string)): FlatMetadata[];
|
|
22
|
-
static flattenMetadata(metadata: Optional<FtMetadata>, dateFormatter?: ((value: string) => string)): Optional<FlatMetadata>;
|
|
23
|
-
computeClustersItemsForMetadata(key: string, locale: string, undefinedDisplayValue?: string, dateFormatter?: ((value: string) => string)): ClusterItem[];
|
|
26
|
+
static extractResultMetadata(options: Omit<ExtractResultMetadataOptions, "key">): FlatMetadata[];
|
|
27
|
+
static extractResultMetadata(options: ExtractResultMetadataOptions): Optional<FlatMetadata>;
|
|
28
|
+
static flattenMetadata(metadata: Optional<FtMetadata>[], hierarchicalValueTruncatingLevel?: number, dateFormatter?: ((value: string) => string)): FlatMetadata[];
|
|
29
|
+
static flattenMetadata(metadata: Optional<FtMetadata>, hierarchicalValueTruncatingLevel?: number, dateFormatter?: ((value: string) => string)): Optional<FlatMetadata>;
|
|
30
|
+
computeClustersItemsForMetadata(key: string, locale: string, undefinedDisplayValue?: string, hierarchicalValueTruncatingLevel?: number, dateFormatter?: ((value: string) => string)): ClusterItem[];
|
|
24
31
|
private compareMetadata;
|
|
25
32
|
getMetadataDescriptor(key: string): FtMetadataDescriptor | undefined;
|
|
26
33
|
private findBestResultForMetadataValue;
|
|
@@ -5,17 +5,17 @@ export class ClusteringHelper {
|
|
|
5
5
|
this.clusteringMetadata = clusteringMetadata;
|
|
6
6
|
this.metadataDescriptors = metadataDescriptors;
|
|
7
7
|
}
|
|
8
|
-
static extractResultMetadata(
|
|
9
|
-
var _a, _b;
|
|
10
|
-
let metadata = ((_b = (_a = result === null ||
|
|
11
|
-
if (key == null) {
|
|
12
|
-
return ClusteringHelper.flattenMetadata(metadata, dateFormatter);
|
|
8
|
+
static extractResultMetadata(options) {
|
|
9
|
+
var _a, _b, _c, _d, _e;
|
|
10
|
+
let metadata = ((_d = (_b = (_a = options.result) === null || _a === void 0 ? void 0 : _a.map) !== null && _b !== void 0 ? _b : (_c = options.result) === null || _c === void 0 ? void 0 : _c.document) !== null && _d !== void 0 ? _d : (_e = options.result) === null || _e === void 0 ? void 0 : _e.topic).metadata;
|
|
11
|
+
if (options.key == null) {
|
|
12
|
+
return ClusteringHelper.flattenMetadata(metadata, options.hierarchicalValueTruncatingLevel, options.dateFormatter);
|
|
13
13
|
}
|
|
14
|
-
return ClusteringHelper.flattenMetadata(metadata.find(m => m.key === key), dateFormatter);
|
|
14
|
+
return ClusteringHelper.flattenMetadata(metadata.find(m => m.key === options.key), options.hierarchicalValueTruncatingLevel, options.dateFormatter);
|
|
15
15
|
}
|
|
16
|
-
static flattenMetadata(metadata, dateFormatter) {
|
|
16
|
+
static flattenMetadata(metadata, hierarchicalValueTruncatingLevel, dateFormatter) {
|
|
17
17
|
if (Array.isArray(metadata)) {
|
|
18
|
-
return metadata.map(m => ClusteringHelper.flattenMetadata(m, dateFormatter)).filter(m => m != null);
|
|
18
|
+
return metadata.map(m => ClusteringHelper.flattenMetadata(m, hierarchicalValueTruncatingLevel, dateFormatter)).filter(m => m != null);
|
|
19
19
|
}
|
|
20
20
|
const isHierarchical = (metadata === null || metadata === void 0 ? void 0 : metadata.hierarchicalValues) != null && metadata.hierarchicalValues.length > 0;
|
|
21
21
|
if (metadata == null || (metadata.values.length == 0 && !isHierarchical)) {
|
|
@@ -26,7 +26,7 @@ export class ClusteringHelper {
|
|
|
26
26
|
const displayValues = [];
|
|
27
27
|
metadata.hierarchicalValues.forEach(tree => {
|
|
28
28
|
values.push(tree.join(" > "));
|
|
29
|
-
if (tree.length
|
|
29
|
+
if (hierarchicalValueTruncatingLevel && hierarchicalValueTruncatingLevel > 1 && tree.length >= hierarchicalValueTruncatingLevel) {
|
|
30
30
|
displayValues.push(`... > ${tree[tree.length - 1]}`);
|
|
31
31
|
}
|
|
32
32
|
else {
|
|
@@ -37,7 +37,8 @@ export class ClusteringHelper {
|
|
|
37
37
|
key: metadata.key,
|
|
38
38
|
label: metadata.label,
|
|
39
39
|
value: values.join(", "),
|
|
40
|
-
displayValue: displayValues.join(", ")
|
|
40
|
+
displayValue: displayValues.join(", "),
|
|
41
|
+
displayTooltipValue: values.join(", "),
|
|
41
42
|
};
|
|
42
43
|
}
|
|
43
44
|
else {
|
|
@@ -50,16 +51,17 @@ export class ClusteringHelper {
|
|
|
50
51
|
key: metadata.key,
|
|
51
52
|
label: metadata.label,
|
|
52
53
|
value: value,
|
|
53
|
-
displayValue: displayValue
|
|
54
|
+
displayValue: displayValue,
|
|
55
|
+
displayTooltipValue: displayValue,
|
|
54
56
|
};
|
|
55
57
|
}
|
|
56
58
|
}
|
|
57
|
-
computeClustersItemsForMetadata(key, locale, undefinedDisplayValue = "No value", dateFormatter) {
|
|
59
|
+
computeClustersItemsForMetadata(key, locale, undefinedDisplayValue = "No value", hierarchicalValueTruncatingLevel, dateFormatter) {
|
|
58
60
|
var _a, _b;
|
|
59
|
-
let currentResultMetadataTargeted = ClusteringHelper.extractResultMetadata(this.selectedResult, key, dateFormatter);
|
|
61
|
+
let currentResultMetadataTargeted = ClusteringHelper.extractResultMetadata({ result: this.selectedResult, key, dateFormatter });
|
|
60
62
|
let metadataLabel = (_a = currentResultMetadataTargeted === null || currentResultMetadataTargeted === void 0 ? void 0 : currentResultMetadataTargeted.label) !== null && _a !== void 0 ? _a : (_b = this.getMetadataDescriptor(key)) === null || _b === void 0 ? void 0 : _b.label;
|
|
61
63
|
const otherValues = this.allResults
|
|
62
|
-
.map(result => ClusteringHelper.extractResultMetadata(result, key, dateFormatter))
|
|
64
|
+
.map(result => ClusteringHelper.extractResultMetadata({ result, key, hierarchicalValueTruncatingLevel, dateFormatter }))
|
|
63
65
|
.map(m => m !== null && m !== void 0 ? m : { key: key, label: metadataLabel, value: undefined, displayValue: undefinedDisplayValue })
|
|
64
66
|
.filter(m => m.value != (currentResultMetadataTargeted === null || currentResultMetadataTargeted === void 0 ? void 0 : currentResultMetadataTargeted.value))
|
|
65
67
|
.filter((flatMeta, index, array) => array.findIndex(i => i.value === flatMeta.value) === index); // for unicity
|
|
@@ -89,8 +91,8 @@ export class ClusteringHelper {
|
|
|
89
91
|
}
|
|
90
92
|
findBestResultForMetadataValue(key, value) {
|
|
91
93
|
const resultsMatchingRequiredValue = this.allResults
|
|
92
|
-
.filter(result => { var _a; return ((_a = ClusteringHelper.extractResultMetadata(result, key)) === null || _a === void 0 ? void 0 : _a.value) == value; });
|
|
93
|
-
let currentResultMetadata = ClusteringHelper.extractResultMetadata(this.selectedResult)
|
|
94
|
+
.filter(result => { var _a; return ((_a = ClusteringHelper.extractResultMetadata({ result, key })) === null || _a === void 0 ? void 0 : _a.value) == value; });
|
|
95
|
+
let currentResultMetadata = ClusteringHelper.extractResultMetadata({ result: this.selectedResult })
|
|
94
96
|
.filter(m => this.clusteringMetadata.has(m.key));
|
|
95
97
|
let wishedMetadata = [...currentResultMetadata.filter(m => m.key !== key)];
|
|
96
98
|
let bestResult;
|
|
@@ -108,7 +110,7 @@ export class ClusteringHelper {
|
|
|
108
110
|
return bestResult;
|
|
109
111
|
}
|
|
110
112
|
countMatchingMetadata(result, expectedMetadata) {
|
|
111
|
-
return ClusteringHelper.extractResultMetadata(result)
|
|
113
|
+
return ClusteringHelper.extractResultMetadata({ result })
|
|
112
114
|
.filter(m => expectedMetadata.some(em => em.key === m.key && em.value === m.value)).length;
|
|
113
115
|
}
|
|
114
116
|
}
|
package/build/floating.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ComputePositionReturn, Placement, Strategy } from "@floating-ui/dom";
|
|
2
2
|
export declare function computeOffsetPosition(reference: HTMLElement, element: HTMLElement, placement: Placement): Promise<ComputePositionReturn>;
|
|
3
|
-
export declare function computeFlipOffsetPosition(reference: HTMLElement, element: HTMLElement, placement?: Placement, fallbackPlacements?: Placement[], strategy?: Strategy): Promise<ComputePositionReturn>;
|
|
3
|
+
export declare function computeFlipOffsetPosition(reference: HTMLElement, element: HTMLElement, placement?: Placement, fallbackPlacements?: Placement[], strategy?: Strategy, offsetValue?: number): Promise<ComputePositionReturn>;
|
package/build/floating.js
CHANGED
|
@@ -14,7 +14,7 @@ export async function computeOffsetPosition(reference, element, placement) {
|
|
|
14
14
|
],
|
|
15
15
|
});
|
|
16
16
|
}
|
|
17
|
-
export async function computeFlipOffsetPosition(reference, element, placement, fallbackPlacements, strategy) {
|
|
17
|
+
export async function computeFlipOffsetPosition(reference, element, placement, fallbackPlacements, strategy, offsetValue = 4) {
|
|
18
18
|
return computePosition(reference, element, {
|
|
19
19
|
placement: placement,
|
|
20
20
|
strategy: strategy,
|
|
@@ -25,7 +25,7 @@ export async function computeFlipOffsetPosition(reference, element, placement, f
|
|
|
25
25
|
},
|
|
26
26
|
},
|
|
27
27
|
middleware: [
|
|
28
|
-
offset(
|
|
28
|
+
offset(offsetValue),
|
|
29
29
|
flip({ fallbackPlacements: fallbackPlacements }),
|
|
30
30
|
]
|
|
31
31
|
});
|