@datarecce/ui 0.1.21 → 0.1.22
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/RecceCheckContext-BETsmiD5.mjs +228 -0
- package/dist/RecceCheckContext-BETsmiD5.mjs.map +1 -0
- package/dist/RecceCheckContext-DNKi97uE.js +302 -0
- package/dist/RecceCheckContext-DNKi97uE.js.map +1 -0
- package/dist/api.d.mts +2 -102
- package/dist/api.d.ts +2 -102
- package/dist/api.js +82 -494
- package/dist/api.js.map +1 -1
- package/dist/api.mjs +29 -435
- package/dist/api.mjs.map +1 -1
- package/dist/components-C735_oqD.mjs +10438 -0
- package/dist/components-C735_oqD.mjs.map +1 -0
- package/dist/{styles-JV3V5MVO.css → components-D2DRqJsz.css} +28 -0
- package/dist/components-D2DRqJsz.css.map +1 -0
- package/dist/components-DeA4kqxK.js +12763 -0
- package/dist/components-DeA4kqxK.js.map +1 -0
- package/dist/components-dVXbmdqd.css +70 -0
- package/dist/components-dVXbmdqd.css.map +1 -0
- package/dist/components.d.mts +2 -471
- package/dist/components.d.ts +2 -471
- package/dist/components.js +81 -27392
- package/dist/components.mjs +8 -27250
- package/dist/hooks-Ba-AoxcK.mjs +34 -0
- package/dist/hooks-Ba-AoxcK.mjs.map +1 -0
- package/dist/hooks-D6xvNXEc.js +40 -0
- package/dist/hooks-D6xvNXEc.js.map +1 -0
- package/dist/hooks.d.mts +2 -296
- package/dist/hooks.d.ts +2 -296
- package/dist/hooks.js +33 -7583
- package/dist/hooks.mjs +6 -7521
- package/dist/html2canvas-pro.esm-BR5xeFe-.mjs +7249 -0
- package/dist/html2canvas-pro.esm-BR5xeFe-.mjs.map +1 -0
- package/dist/html2canvas-pro.esm-CVOsBdk0.js +7250 -0
- package/dist/html2canvas-pro.esm-CVOsBdk0.js.map +1 -0
- package/dist/index-DYduBYD8.d.ts +1807 -0
- package/dist/index-DYduBYD8.d.ts.map +1 -0
- package/dist/index-Sj_wOmNH.d.mts +1809 -0
- package/dist/index-Sj_wOmNH.d.mts.map +1 -0
- package/dist/index.d.mts +2 -29
- package/dist/index.d.ts +2 -29
- package/dist/index.js +173 -28784
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +16 -28555
- package/dist/index.mjs.map +1 -1
- package/dist/state-BjKRZMwY.js +9158 -0
- package/dist/state-BjKRZMwY.js.map +1 -0
- package/dist/state-BySLlIE7.mjs +8198 -0
- package/dist/state-BySLlIE7.mjs.map +1 -0
- package/dist/{style-466WWZLM.css → state-IA7HWYOs.css} +81 -0
- package/dist/state-IA7HWYOs.css.map +1 -0
- package/dist/state-eEsMhIy4.css +215 -0
- package/dist/state-eEsMhIy4.css.map +1 -0
- package/dist/tooltipMessage-CrXjOmVM.mjs +7 -0
- package/dist/tooltipMessage-CrXjOmVM.mjs.map +1 -0
- package/dist/tooltipMessage-Dbi1kkfi.js +13 -0
- package/dist/tooltipMessage-Dbi1kkfi.js.map +1 -0
- package/dist/types.d.mts +2 -32
- package/dist/types.d.ts +2 -32
- package/dist/types.js +8 -24
- package/dist/types.mjs +4 -18
- package/dist/urls-D7PrPolY.mjs +16 -0
- package/dist/urls-D7PrPolY.mjs.map +1 -0
- package/dist/urls-SazAekCZ.js +34 -0
- package/dist/urls-SazAekCZ.js.map +1 -0
- package/dist/user-BHOgMaBf.mjs +65 -0
- package/dist/user-BHOgMaBf.mjs.map +1 -0
- package/dist/user-Dt_n5IJX.js +107 -0
- package/dist/user-Dt_n5IJX.js.map +1 -0
- package/package.json +4 -4
- package/dist/LineageViewContext-DEa54ZNF.d.mts +0 -103
- package/dist/LineageViewContext-DPVC8ak8.d.ts +0 -103
- package/dist/agGridStyles-VYALGSJU.css +0 -55
- package/dist/components.js.map +0 -1
- package/dist/components.mjs.map +0 -1
- package/dist/hooks.js.map +0 -1
- package/dist/hooks.mjs.map +0 -1
- package/dist/lineagecheck-BQaKAQzn.d.mts +0 -597
- package/dist/lineagecheck-BQaKAQzn.d.ts +0 -597
- package/dist/styles-QUPOR3LM.css +0 -24
- package/dist/styles-TU5BYTIL.css +0 -21
- package/dist/types.js.map +0 -1
- package/dist/types.mjs.map +0 -1
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
const require_state = require('./state-BjKRZMwY.js');
|
|
3
|
+
let axios = require("axios");
|
|
4
|
+
axios = require_state.__toESM(axios);
|
|
5
|
+
|
|
6
|
+
//#region recce-source/js/src/lib/api/schemacheck.ts
|
|
7
|
+
async function createSchemaDiffCheck(params) {
|
|
8
|
+
return (await require_state.axiosClient.post("/api/checks", {
|
|
9
|
+
type: "schema_diff",
|
|
10
|
+
params
|
|
11
|
+
})).data;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region recce-source/js/src/lib/api/select.ts
|
|
16
|
+
async function select(input) {
|
|
17
|
+
return (await require_state.axiosClient.post(`/api/select`, input)).data;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
//#region recce-source/js/src/lib/api/sessionStorageKeys.ts
|
|
22
|
+
const prefix$1 = "recce";
|
|
23
|
+
const sessionStorageKeys = {
|
|
24
|
+
recommendationIgnored: `${prefix$1}-recommendation-ignored`,
|
|
25
|
+
recommendationShowed: `${prefix$1}-recommendation-showed`,
|
|
26
|
+
prevRefreshTimeStamp: `${prefix$1}-prev-refresh-timestamp`,
|
|
27
|
+
lineageNotificationDismissed: `${prefix$1}-lineage-notification-dismissed`
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
//#endregion
|
|
31
|
+
//#region recce-source/js/src/lib/api/localStorageKeys.ts
|
|
32
|
+
const prefix = "recce-";
|
|
33
|
+
const localStorageKeys = {
|
|
34
|
+
bypassSaveOverwrite: `${prefix}-bypass-save-overwrite`,
|
|
35
|
+
previewChangeFeedbackID: `${prefix}-preview-change-feedback`,
|
|
36
|
+
prepareEnvGuideID: `${prefix}-prepare-env`
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
//#endregion
|
|
40
|
+
//#region recce-source/js/src/lib/api/connectToCloud.ts
|
|
41
|
+
async function connectToCloud() {
|
|
42
|
+
return (await require_state.axiosClient.post("/api/connect")).data;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
//#endregion
|
|
46
|
+
//#region recce-source/js/src/lib/api/user.ts
|
|
47
|
+
async function fetchUser() {
|
|
48
|
+
try {
|
|
49
|
+
return (await require_state.axiosClient.get("/api/users")).data;
|
|
50
|
+
} catch (error) {
|
|
51
|
+
console.error("Error fetching user data:", error);
|
|
52
|
+
throw error;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async function fetchGitHubAvatar(userId) {
|
|
56
|
+
try {
|
|
57
|
+
return (await axios.default.get(`https://api.github.com/user/${userId}`)).data.avatar_url;
|
|
58
|
+
} catch (error) {
|
|
59
|
+
console.warn("Failed to fetch GitHub avatar:", error);
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
//#endregion
|
|
65
|
+
Object.defineProperty(exports, 'connectToCloud', {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function () {
|
|
68
|
+
return connectToCloud;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
Object.defineProperty(exports, 'createSchemaDiffCheck', {
|
|
72
|
+
enumerable: true,
|
|
73
|
+
get: function () {
|
|
74
|
+
return createSchemaDiffCheck;
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
Object.defineProperty(exports, 'fetchGitHubAvatar', {
|
|
78
|
+
enumerable: true,
|
|
79
|
+
get: function () {
|
|
80
|
+
return fetchGitHubAvatar;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
Object.defineProperty(exports, 'fetchUser', {
|
|
84
|
+
enumerable: true,
|
|
85
|
+
get: function () {
|
|
86
|
+
return fetchUser;
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
Object.defineProperty(exports, 'localStorageKeys', {
|
|
90
|
+
enumerable: true,
|
|
91
|
+
get: function () {
|
|
92
|
+
return localStorageKeys;
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
Object.defineProperty(exports, 'select', {
|
|
96
|
+
enumerable: true,
|
|
97
|
+
get: function () {
|
|
98
|
+
return select;
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
Object.defineProperty(exports, 'sessionStorageKeys', {
|
|
102
|
+
enumerable: true,
|
|
103
|
+
get: function () {
|
|
104
|
+
return sessionStorageKeys;
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
//# sourceMappingURL=user-Dt_n5IJX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-Dt_n5IJX.js","names":["axiosClient","axiosClient","prefix","axiosClient","axiosClient"],"sources":["../recce-source/js/src/lib/api/schemacheck.ts","../recce-source/js/src/lib/api/select.ts","../recce-source/js/src/lib/api/sessionStorageKeys.ts","../recce-source/js/src/lib/api/localStorageKeys.ts","../recce-source/js/src/lib/api/connectToCloud.ts","../recce-source/js/src/lib/api/user.ts"],"sourcesContent":["import { AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\nimport { Check } from \"./checks\";\n\nexport interface SchemaDiffViewParams {\n node_id?: string | string[];\n select?: string;\n exclude?: string;\n view_mode?: \"all\" | \"changed_models\";\n packages?: string[];\n}\n\ninterface CreateSchemaDiffCheckBody {\n type: string;\n params: SchemaDiffViewParams;\n}\n\nexport async function createSchemaDiffCheck(\n params: SchemaDiffViewParams,\n): Promise<Check> {\n const response = await axiosClient.post<\n CreateSchemaDiffCheckBody,\n AxiosResponse<Check>\n >(\"/api/checks\", {\n type: \"schema_diff\",\n params: params,\n });\n\n return response.data;\n}\n","import { AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface SelectInput {\n select?: string;\n exclude?: string;\n packages?: string[];\n view_mode?: \"all\" | \"changed_models\";\n}\n\nexport interface SelectOutput {\n nodes: string[];\n}\n\nexport async function select(input: SelectInput): Promise<SelectOutput> {\n return (\n await axiosClient.post<SelectInput, AxiosResponse<SelectOutput>>(\n `/api/select`,\n input,\n )\n ).data;\n}\n","const prefix = \"recce\";\n\nexport const sessionStorageKeys = {\n recommendationIgnored: `${prefix}-recommendation-ignored`,\n recommendationShowed: `${prefix}-recommendation-showed`,\n prevRefreshTimeStamp: `${prefix}-prev-refresh-timestamp`,\n lineageNotificationDismissed: `${prefix}-lineage-notification-dismissed`,\n};\n","const prefix = \"recce-\";\n\nexport const localStorageKeys = {\n bypassSaveOverwrite: `${prefix}-bypass-save-overwrite`,\n previewChangeFeedbackID: `${prefix}-preview-change-feedback`,\n prepareEnvGuideID: `${prefix}-prepare-env`,\n};\n","import { axiosClient } from \"./axiosClient\";\n\nexport interface ConnectToCloud {\n connection_url: string;\n}\n\nexport async function connectToCloud(): Promise<ConnectToCloud> {\n const data = await axiosClient.post<ConnectToCloud>(\"/api/connect\");\n return data.data;\n}\n","import axios, { AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface User {\n id: string;\n login: string;\n login_type: string;\n email: string;\n onboarding_state: string;\n}\n\ninterface GitHubUser {\n login: string;\n id: number;\n avatar_url: string;\n}\n\nexport async function fetchUser(): Promise<User> {\n try {\n const response = await axiosClient.get<never, AxiosResponse<User>>(\n \"/api/users\",\n );\n return response.data;\n } catch (error) {\n console.error(\"Error fetching user data:\", error);\n throw error;\n }\n}\n\nexport async function fetchGitHubAvatar(\n userId: string,\n): Promise<string | null> {\n try {\n const response = await axios.get<GitHubUser>(\n `https://api.github.com/user/${userId}`,\n );\n return response.data.avatar_url;\n } catch (error) {\n console.warn(\"Failed to fetch GitHub avatar:\", error);\n return null;\n }\n}\n"],"mappings":";;;;;;AAiBA,eAAsB,sBACpB,QACgB;AAShB,SARiB,MAAMA,0BAAY,KAGjC,eAAe;EACf,MAAM;EACE;EACT,CAAC,EAEc;;;;;ACdlB,eAAsB,OAAO,OAA2C;AACtE,SACE,MAAMC,0BAAY,KAChB,eACA,MACD,EACD;;;;;ACpBJ,MAAMC,WAAS;AAEf,MAAa,qBAAqB;CAChC,uBAAuB,GAAGA,SAAO;CACjC,sBAAsB,GAAGA,SAAO;CAChC,sBAAsB,GAAGA,SAAO;CAChC,8BAA8B,GAAGA,SAAO;CACzC;;;;ACPD,MAAM,SAAS;AAEf,MAAa,mBAAmB;CAC9B,qBAAqB,GAAG,OAAO;CAC/B,yBAAyB,GAAG,OAAO;CACnC,mBAAmB,GAAG,OAAO;CAC9B;;;;ACAD,eAAsB,iBAA0C;AAE9D,SADa,MAAMC,0BAAY,KAAqB,eAAe,EACvD;;;;;ACSd,eAAsB,YAA2B;AAC/C,KAAI;AAIF,UAHiB,MAAMC,0BAAY,IACjC,aACD,EACe;UACT,OAAO;AACd,UAAQ,MAAM,6BAA6B,MAAM;AACjD,QAAM;;;AAIV,eAAsB,kBACpB,QACwB;AACxB,KAAI;AAIF,UAHiB,MAAM,cAAM,IAC3B,+BAA+B,SAChC,EACe,KAAK;UACd,OAAO;AACd,UAAQ,KAAK,kCAAkC,MAAM;AACrD,SAAO"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datarecce/ui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.22",
|
|
4
4
|
"description": "Recce UI Components Library - Reusable React components for data validation and review",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
"README.md"
|
|
42
42
|
],
|
|
43
43
|
"scripts": {
|
|
44
|
-
"dev": "
|
|
45
|
-
"build": "
|
|
44
|
+
"dev": "tsdown --watch",
|
|
45
|
+
"build": "tsdown",
|
|
46
46
|
"type:check": "tsc --noEmit 2>&1 | grep -E '^src/' || echo 'Type check passed (OSS errors filtered)'",
|
|
47
47
|
"type:check:strict": "tsc --noEmit",
|
|
48
48
|
"type:check:all": "tsc --noEmit",
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
"@types/react-dom": "19.2.3",
|
|
132
132
|
"@types/react-syntax-highlighter": "^15.5.13",
|
|
133
133
|
"next": "^16.1.0",
|
|
134
|
-
"
|
|
134
|
+
"tsdown": "^0.18.2",
|
|
135
135
|
"typescript": "^5.9.3"
|
|
136
136
|
},
|
|
137
137
|
"overrides": {
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import React__default from 'react';
|
|
2
|
-
import { y as NodeData, M as ManifestMetadata, A as CatalogMetadata, w as ColumnLineageData, Y as LineageDiffViewOptions, aL as Run, t as CllInput } from './lineagecheck-BQaKAQzn.mjs';
|
|
3
|
-
import { Node, Edge } from '@xyflow/react';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* The types for internal data structures.
|
|
7
|
-
*/
|
|
8
|
-
type LineageFrom = "both" | "base" | "current";
|
|
9
|
-
type LineageGraphNode = Node<{
|
|
10
|
-
id: string;
|
|
11
|
-
name: string;
|
|
12
|
-
from: LineageFrom;
|
|
13
|
-
data: {
|
|
14
|
-
base?: NodeData;
|
|
15
|
-
current?: NodeData;
|
|
16
|
-
};
|
|
17
|
-
changeStatus?: "added" | "removed" | "modified";
|
|
18
|
-
change?: {
|
|
19
|
-
category: "breaking" | "non_breaking" | "partial_breaking" | "unknown";
|
|
20
|
-
columns: Record<string, "added" | "removed" | "modified"> | null;
|
|
21
|
-
};
|
|
22
|
-
resourceType?: string;
|
|
23
|
-
packageName?: string;
|
|
24
|
-
parents: Record<string, LineageGraphEdge>;
|
|
25
|
-
children: Record<string, LineageGraphEdge>;
|
|
26
|
-
}, "lineageGraphNode">;
|
|
27
|
-
type LineageGraphColumnNode = Node<{
|
|
28
|
-
node: LineageGraphNode["data"];
|
|
29
|
-
column: string;
|
|
30
|
-
type: string;
|
|
31
|
-
transformationType?: string;
|
|
32
|
-
changeStatus?: "added" | "removed" | "modified";
|
|
33
|
-
}, "lineageGraphColumnNode">;
|
|
34
|
-
type LineageGraphEdge = Edge<{
|
|
35
|
-
from: LineageFrom;
|
|
36
|
-
changeStatus?: "added" | "removed";
|
|
37
|
-
}, "lineageGraphEdge">;
|
|
38
|
-
type LineageGraphNodes = LineageGraphNode | LineageGraphColumnNode;
|
|
39
|
-
interface LineageGraph {
|
|
40
|
-
nodes: Record<string, LineageGraphNode>;
|
|
41
|
-
edges: Record<string, LineageGraphEdge>;
|
|
42
|
-
modifiedSet: string[];
|
|
43
|
-
manifestMetadata: {
|
|
44
|
-
base?: ManifestMetadata;
|
|
45
|
-
current?: ManifestMetadata;
|
|
46
|
-
};
|
|
47
|
-
catalogMetadata: {
|
|
48
|
-
base?: CatalogMetadata;
|
|
49
|
-
current?: CatalogMetadata;
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
type NewType = LineageDiffViewOptions;
|
|
54
|
-
type ActionMode = "per_node" | "multi_nodes";
|
|
55
|
-
interface NodeAction {
|
|
56
|
-
mode: ActionMode;
|
|
57
|
-
status?: "pending" | "running" | "success" | "failure" | "skipped";
|
|
58
|
-
skipReason?: string;
|
|
59
|
-
run?: Run;
|
|
60
|
-
}
|
|
61
|
-
interface ActionState {
|
|
62
|
-
mode: ActionMode;
|
|
63
|
-
status: "pending" | "running" | "canceling" | "canceled" | "completed";
|
|
64
|
-
currentRun?: Partial<Run>;
|
|
65
|
-
completed: number;
|
|
66
|
-
total: number;
|
|
67
|
-
actions: Record<string, NodeAction>;
|
|
68
|
-
}
|
|
69
|
-
interface LineageViewContextType {
|
|
70
|
-
interactive: boolean;
|
|
71
|
-
nodes: LineageGraphNodes[];
|
|
72
|
-
focusedNode?: LineageGraphNode;
|
|
73
|
-
selectedNodes: LineageGraphNode[];
|
|
74
|
-
cll: ColumnLineageData | undefined;
|
|
75
|
-
showContextMenu: (event: React__default.MouseEvent, node: LineageGraphNodes) => void;
|
|
76
|
-
viewOptions: LineageDiffViewOptions;
|
|
77
|
-
onViewOptionsChanged: (options: NewType) => void;
|
|
78
|
-
selectMode: "selecting" | "action_result" | undefined;
|
|
79
|
-
selectNode: (nodeId: string) => void;
|
|
80
|
-
selectParentNodes: (nodeId: string, degree?: number) => void;
|
|
81
|
-
selectChildNodes: (nodeId: string, degree?: number) => void;
|
|
82
|
-
deselect: () => void;
|
|
83
|
-
isNodeHighlighted: (nodeId: string) => boolean;
|
|
84
|
-
isNodeSelected: (nodeId: string) => boolean;
|
|
85
|
-
isEdgeHighlighted: (source: string, target: string) => boolean;
|
|
86
|
-
getNodeAction: (nodeId: string) => NodeAction;
|
|
87
|
-
getNodeColumnSet: (nodeId: string) => Set<string>;
|
|
88
|
-
isNodeShowingChangeAnalysis: (nodeId: string) => boolean;
|
|
89
|
-
runRowCount: () => Promise<void>;
|
|
90
|
-
runRowCountDiff: () => Promise<void>;
|
|
91
|
-
runValueDiff: () => Promise<void>;
|
|
92
|
-
addLineageDiffCheck: (viewMode?: string) => void;
|
|
93
|
-
addSchemaDiffCheck: () => void;
|
|
94
|
-
cancel: () => void;
|
|
95
|
-
actionState: ActionState;
|
|
96
|
-
centerNode: (nodeId: string) => void;
|
|
97
|
-
showColumnLevelLineage: (cll?: CllInput) => Promise<void>;
|
|
98
|
-
resetColumnLevelLineage: (previous?: boolean) => Promise<void>;
|
|
99
|
-
}
|
|
100
|
-
declare const LineageViewContext: React__default.Context<LineageViewContextType>;
|
|
101
|
-
declare const useLineageViewContext: () => LineageViewContextType | undefined;
|
|
102
|
-
|
|
103
|
-
export { LineageViewContext as L, type LineageGraphNode as a, type LineageGraphEdge as b, type LineageGraphColumnNode as c, type LineageGraph as d, useLineageViewContext as u };
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import React__default from 'react';
|
|
2
|
-
import { y as NodeData, M as ManifestMetadata, A as CatalogMetadata, w as ColumnLineageData, Y as LineageDiffViewOptions, aL as Run, t as CllInput } from './lineagecheck-BQaKAQzn.js';
|
|
3
|
-
import { Node, Edge } from '@xyflow/react';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* The types for internal data structures.
|
|
7
|
-
*/
|
|
8
|
-
type LineageFrom = "both" | "base" | "current";
|
|
9
|
-
type LineageGraphNode = Node<{
|
|
10
|
-
id: string;
|
|
11
|
-
name: string;
|
|
12
|
-
from: LineageFrom;
|
|
13
|
-
data: {
|
|
14
|
-
base?: NodeData;
|
|
15
|
-
current?: NodeData;
|
|
16
|
-
};
|
|
17
|
-
changeStatus?: "added" | "removed" | "modified";
|
|
18
|
-
change?: {
|
|
19
|
-
category: "breaking" | "non_breaking" | "partial_breaking" | "unknown";
|
|
20
|
-
columns: Record<string, "added" | "removed" | "modified"> | null;
|
|
21
|
-
};
|
|
22
|
-
resourceType?: string;
|
|
23
|
-
packageName?: string;
|
|
24
|
-
parents: Record<string, LineageGraphEdge>;
|
|
25
|
-
children: Record<string, LineageGraphEdge>;
|
|
26
|
-
}, "lineageGraphNode">;
|
|
27
|
-
type LineageGraphColumnNode = Node<{
|
|
28
|
-
node: LineageGraphNode["data"];
|
|
29
|
-
column: string;
|
|
30
|
-
type: string;
|
|
31
|
-
transformationType?: string;
|
|
32
|
-
changeStatus?: "added" | "removed" | "modified";
|
|
33
|
-
}, "lineageGraphColumnNode">;
|
|
34
|
-
type LineageGraphEdge = Edge<{
|
|
35
|
-
from: LineageFrom;
|
|
36
|
-
changeStatus?: "added" | "removed";
|
|
37
|
-
}, "lineageGraphEdge">;
|
|
38
|
-
type LineageGraphNodes = LineageGraphNode | LineageGraphColumnNode;
|
|
39
|
-
interface LineageGraph {
|
|
40
|
-
nodes: Record<string, LineageGraphNode>;
|
|
41
|
-
edges: Record<string, LineageGraphEdge>;
|
|
42
|
-
modifiedSet: string[];
|
|
43
|
-
manifestMetadata: {
|
|
44
|
-
base?: ManifestMetadata;
|
|
45
|
-
current?: ManifestMetadata;
|
|
46
|
-
};
|
|
47
|
-
catalogMetadata: {
|
|
48
|
-
base?: CatalogMetadata;
|
|
49
|
-
current?: CatalogMetadata;
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
type NewType = LineageDiffViewOptions;
|
|
54
|
-
type ActionMode = "per_node" | "multi_nodes";
|
|
55
|
-
interface NodeAction {
|
|
56
|
-
mode: ActionMode;
|
|
57
|
-
status?: "pending" | "running" | "success" | "failure" | "skipped";
|
|
58
|
-
skipReason?: string;
|
|
59
|
-
run?: Run;
|
|
60
|
-
}
|
|
61
|
-
interface ActionState {
|
|
62
|
-
mode: ActionMode;
|
|
63
|
-
status: "pending" | "running" | "canceling" | "canceled" | "completed";
|
|
64
|
-
currentRun?: Partial<Run>;
|
|
65
|
-
completed: number;
|
|
66
|
-
total: number;
|
|
67
|
-
actions: Record<string, NodeAction>;
|
|
68
|
-
}
|
|
69
|
-
interface LineageViewContextType {
|
|
70
|
-
interactive: boolean;
|
|
71
|
-
nodes: LineageGraphNodes[];
|
|
72
|
-
focusedNode?: LineageGraphNode;
|
|
73
|
-
selectedNodes: LineageGraphNode[];
|
|
74
|
-
cll: ColumnLineageData | undefined;
|
|
75
|
-
showContextMenu: (event: React__default.MouseEvent, node: LineageGraphNodes) => void;
|
|
76
|
-
viewOptions: LineageDiffViewOptions;
|
|
77
|
-
onViewOptionsChanged: (options: NewType) => void;
|
|
78
|
-
selectMode: "selecting" | "action_result" | undefined;
|
|
79
|
-
selectNode: (nodeId: string) => void;
|
|
80
|
-
selectParentNodes: (nodeId: string, degree?: number) => void;
|
|
81
|
-
selectChildNodes: (nodeId: string, degree?: number) => void;
|
|
82
|
-
deselect: () => void;
|
|
83
|
-
isNodeHighlighted: (nodeId: string) => boolean;
|
|
84
|
-
isNodeSelected: (nodeId: string) => boolean;
|
|
85
|
-
isEdgeHighlighted: (source: string, target: string) => boolean;
|
|
86
|
-
getNodeAction: (nodeId: string) => NodeAction;
|
|
87
|
-
getNodeColumnSet: (nodeId: string) => Set<string>;
|
|
88
|
-
isNodeShowingChangeAnalysis: (nodeId: string) => boolean;
|
|
89
|
-
runRowCount: () => Promise<void>;
|
|
90
|
-
runRowCountDiff: () => Promise<void>;
|
|
91
|
-
runValueDiff: () => Promise<void>;
|
|
92
|
-
addLineageDiffCheck: (viewMode?: string) => void;
|
|
93
|
-
addSchemaDiffCheck: () => void;
|
|
94
|
-
cancel: () => void;
|
|
95
|
-
actionState: ActionState;
|
|
96
|
-
centerNode: (nodeId: string) => void;
|
|
97
|
-
showColumnLevelLineage: (cll?: CllInput) => Promise<void>;
|
|
98
|
-
resetColumnLevelLineage: (previous?: boolean) => Promise<void>;
|
|
99
|
-
}
|
|
100
|
-
declare const LineageViewContext: React__default.Context<LineageViewContextType>;
|
|
101
|
-
declare const useLineageViewContext: () => LineageViewContextType | undefined;
|
|
102
|
-
|
|
103
|
-
export { LineageViewContext as L, type LineageGraphNode as a, type LineageGraphEdge as b, type LineageGraphColumnNode as c, type LineageGraph as d, useLineageViewContext as u };
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file agGridStyles.css
|
|
3
|
-
* @description Custom AG Grid styles for Recce data grids
|
|
4
|
-
*
|
|
5
|
-
* Provides header layout customization to ensure proper flex alignment:
|
|
6
|
-
* - Header cells use flex layout with items centered vertically
|
|
7
|
-
* - Labels aligned to the left
|
|
8
|
-
* - Actions (menu, sort icons) aligned to the right
|
|
9
|
-
* - Sticky headers when scrolling vertically
|
|
10
|
-
*
|
|
11
|
-
* Uses CSS custom properties from global.css for theme-aware colors.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
/* AG Grid Viewport - uses theme-aware background */
|
|
15
|
-
.ag-body-viewport,
|
|
16
|
-
.ag-center-cols-viewport {
|
|
17
|
-
background-color: var(--recce-bg-muted);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/* Sticky header - stays visible when scrolling vertically */
|
|
21
|
-
.ag-header {
|
|
22
|
-
position: sticky;
|
|
23
|
-
top: 0;
|
|
24
|
-
z-index: 1;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/* Header cell flex layout */
|
|
28
|
-
.ag-header-cell-comp-wrapper {
|
|
29
|
-
display: flex;
|
|
30
|
-
align-items: center;
|
|
31
|
-
width: 100%;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/* Header label takes available space and aligns left */
|
|
35
|
-
.ag-header-cell-label {
|
|
36
|
-
flex: 1;
|
|
37
|
-
display: flex;
|
|
38
|
-
align-items: center;
|
|
39
|
-
overflow: hidden;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/* Sort icons stay with the label */
|
|
43
|
-
.ag-header-cell-label .ag-sort-indicator-container {
|
|
44
|
-
margin-left: 4px;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/* Actions container (menu button, etc.) aligned right */
|
|
48
|
-
.ag-header-cell-menu-button {
|
|
49
|
-
margin-left: auto;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/* Ensure header icons don't shrink */
|
|
53
|
-
.ag-header-icon {
|
|
54
|
-
flex-shrink: 0;
|
|
55
|
-
}
|