@allurereport/web-commons 3.5.0 → 3.6.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/dist/data.d.ts +1 -0
- package/dist/data.js +1 -0
- package/dist/environments.d.ts +1 -0
- package/dist/environments.js +34 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/treeSubtreeToggle.d.ts +21 -0
- package/dist/treeSubtreeToggle.js +36 -0
- package/package.json +6 -6
package/dist/data.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export declare class ReportFetchError extends Error {
|
|
|
8
8
|
readonly response: Response;
|
|
9
9
|
constructor(message: string, response: Response);
|
|
10
10
|
}
|
|
11
|
+
export declare const errorMessageFromUnknown: (e: unknown) => string;
|
|
11
12
|
export declare const fetchReportJsonData: <T>(path: string, params?: {
|
|
12
13
|
bustCache: boolean;
|
|
13
14
|
}) => Promise<T>;
|
package/dist/data.js
CHANGED
|
@@ -51,6 +51,7 @@ export class ReportFetchError extends Error {
|
|
|
51
51
|
this.response = response;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
+
export const errorMessageFromUnknown = (e) => (e instanceof Error ? e.message : String(e));
|
|
54
55
|
export const fetchReportJsonData = async (path, params) => {
|
|
55
56
|
let url;
|
|
56
57
|
try {
|
package/dist/environments.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { EnvironmentIdentity } from "@allurereport/core-api";
|
|
2
|
+
export declare const normalizeEnvironmentsWidget: (raw: unknown) => EnvironmentIdentity[];
|
|
2
3
|
export declare const environmentNameById: (environments: EnvironmentIdentity[], environmentId: string) => string;
|
|
3
4
|
export declare const migrateStoredEnvironmentSelection: (storedEnvironment: string, environments: EnvironmentIdentity[]) => string;
|
package/dist/environments.js
CHANGED
|
@@ -1,3 +1,37 @@
|
|
|
1
|
+
import { validateEnvironmentId, validateEnvironmentName } from "@allurereport/core-api";
|
|
2
|
+
export const normalizeEnvironmentsWidget = (raw) => {
|
|
3
|
+
if (!Array.isArray(raw)) {
|
|
4
|
+
return [];
|
|
5
|
+
}
|
|
6
|
+
const out = [];
|
|
7
|
+
for (const item of raw) {
|
|
8
|
+
if (typeof item === "string") {
|
|
9
|
+
out.push({ id: item, name: item });
|
|
10
|
+
continue;
|
|
11
|
+
}
|
|
12
|
+
if (!item || typeof item !== "object") {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
const rec = item;
|
|
16
|
+
if (typeof rec.id !== "string") {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
const idResult = validateEnvironmentId(rec.id);
|
|
20
|
+
if (!idResult.valid) {
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
const rawName = rec.name;
|
|
24
|
+
if (typeof rawName === "string") {
|
|
25
|
+
const nameResult = validateEnvironmentName(rawName);
|
|
26
|
+
if (nameResult.valid) {
|
|
27
|
+
out.push({ id: idResult.normalized, name: nameResult.normalized });
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
out.push({ id: idResult.normalized, name: idResult.normalized });
|
|
32
|
+
}
|
|
33
|
+
return out;
|
|
34
|
+
};
|
|
1
35
|
export const environmentNameById = (environments, environmentId) => environments.find(({ id }) => id === environmentId)?.name ?? environmentId;
|
|
2
36
|
export const migrateStoredEnvironmentSelection = (storedEnvironment, environments) => {
|
|
3
37
|
if (!storedEnvironment) {
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type SubtreeToggleState = "first" | "all" | "none";
|
|
2
|
+
export type SubtreeToggleIconState = "single-down" | "single-up" | "double-down" | "double-up";
|
|
3
|
+
export type SubtreeNodeState = {
|
|
4
|
+
id: string;
|
|
5
|
+
openedByDefault: boolean;
|
|
6
|
+
isRoot: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare const isSubtreeFirstLevelOnlyOpened: (rootId: string, rootOpenedByDefault: boolean, subtreeNodes: SubtreeNodeState[], isNodeOpened: (id: string, openedByDefault: boolean) => boolean) => boolean;
|
|
9
|
+
export declare const isSubtreeExpandedAll: (subtreeNodes: SubtreeNodeState[], isNodeOpened: (id: string, openedByDefault: boolean) => boolean) => boolean;
|
|
10
|
+
export declare const getNextSubtreeToggleState: (payload: {
|
|
11
|
+
hasOnlyLeafResults: boolean;
|
|
12
|
+
isSubtreeCollapsedAll: boolean;
|
|
13
|
+
isSubtreeFirstLevelOnly: boolean;
|
|
14
|
+
isSubtreeExpandedAll: boolean;
|
|
15
|
+
lastSubtreeToggle: SubtreeToggleState | null;
|
|
16
|
+
}) => SubtreeToggleState;
|
|
17
|
+
export declare const getSubtreeToggleIcon: (payload: {
|
|
18
|
+
hasOnlyLeafResults: boolean;
|
|
19
|
+
isSubtreeCollapsedAll: boolean;
|
|
20
|
+
isSubtreeFirstLevelOnly: boolean;
|
|
21
|
+
}) => SubtreeToggleIconState;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export const isSubtreeFirstLevelOnlyOpened = (rootId, rootOpenedByDefault, subtreeNodes, isNodeOpened) => {
|
|
2
|
+
if (!isNodeOpened(rootId, rootOpenedByDefault)) {
|
|
3
|
+
return false;
|
|
4
|
+
}
|
|
5
|
+
return subtreeNodes.filter((node) => !node.isRoot).every((node) => !isNodeOpened(node.id, node.openedByDefault));
|
|
6
|
+
};
|
|
7
|
+
export const isSubtreeExpandedAll = (subtreeNodes, isNodeOpened) => subtreeNodes.every((node) => isNodeOpened(node.id, node.openedByDefault));
|
|
8
|
+
export const getNextSubtreeToggleState = (payload) => {
|
|
9
|
+
const { hasOnlyLeafResults, isSubtreeCollapsedAll, isSubtreeFirstLevelOnly, isSubtreeExpandedAll, lastSubtreeToggle, } = payload;
|
|
10
|
+
if (hasOnlyLeafResults) {
|
|
11
|
+
return isSubtreeCollapsedAll ? "all" : "none";
|
|
12
|
+
}
|
|
13
|
+
if (isSubtreeCollapsedAll) {
|
|
14
|
+
return "first";
|
|
15
|
+
}
|
|
16
|
+
if (isSubtreeFirstLevelOnly) {
|
|
17
|
+
return lastSubtreeToggle === "all" ? "none" : "all";
|
|
18
|
+
}
|
|
19
|
+
if (isSubtreeExpandedAll) {
|
|
20
|
+
return "first";
|
|
21
|
+
}
|
|
22
|
+
return "all";
|
|
23
|
+
};
|
|
24
|
+
export const getSubtreeToggleIcon = (payload) => {
|
|
25
|
+
const { hasOnlyLeafResults, isSubtreeCollapsedAll, isSubtreeFirstLevelOnly } = payload;
|
|
26
|
+
if (hasOnlyLeafResults) {
|
|
27
|
+
return isSubtreeCollapsedAll ? "single-down" : "single-up";
|
|
28
|
+
}
|
|
29
|
+
if (isSubtreeCollapsedAll) {
|
|
30
|
+
return "single-down";
|
|
31
|
+
}
|
|
32
|
+
if (isSubtreeFirstLevelOnly) {
|
|
33
|
+
return "double-down";
|
|
34
|
+
}
|
|
35
|
+
return "double-up";
|
|
36
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@allurereport/web-commons",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.1",
|
|
4
4
|
"description": "Collection of utilities used across the web Allure reports",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"allure",
|
|
@@ -26,17 +26,17 @@
|
|
|
26
26
|
"lint:fix": "oxlint --import-plugin --fix src test features stories"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@allurereport/aql": "3.
|
|
30
|
-
"@allurereport/charts-api": "3.
|
|
31
|
-
"@allurereport/core-api": "3.
|
|
32
|
-
"@allurereport/plugin-api": "3.
|
|
29
|
+
"@allurereport/aql": "3.6.1",
|
|
30
|
+
"@allurereport/charts-api": "3.6.1",
|
|
31
|
+
"@allurereport/core-api": "3.6.1",
|
|
32
|
+
"@allurereport/plugin-api": "3.6.1",
|
|
33
33
|
"@preact/signals": "^2.6.1",
|
|
34
34
|
"@preact/signals-core": "^1.12.2",
|
|
35
35
|
"ansi-to-html": "^0.7.2",
|
|
36
36
|
"d3-interpolate": "^3.0.1",
|
|
37
37
|
"d3-scale": "^4.0.2",
|
|
38
38
|
"d3-shape": "^3.2.0",
|
|
39
|
-
"dompurify": "^3.
|
|
39
|
+
"dompurify": "^3.4.0",
|
|
40
40
|
"nanoid": "^5.1.6"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|