@git-diff-view/react 0.0.18 → 0.0.20
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/cjs/index.development.js +108 -100
- package/dist/cjs/index.development.js.map +1 -1
- package/dist/cjs/index.production.js +108 -100
- package/dist/cjs/index.production.js.map +1 -1
- package/dist/css/diff-view.css +5 -6
- package/dist/esm/index.mjs +108 -100
- package/dist/esm/index.mjs.map +1 -1
- package/index.d.ts +62 -25
- package/package.json +5 -5
- package/readme.md +4 -0
package/index.d.ts
CHANGED
|
@@ -44,15 +44,15 @@ declare const lowlight: {
|
|
|
44
44
|
registered: (aliasOrName: string) => boolean;
|
|
45
45
|
};
|
|
46
46
|
export declare class DiffFile {
|
|
47
|
-
readonly _oldFileName: string;
|
|
48
|
-
readonly _newFileName: string;
|
|
49
|
-
readonly _diffList: string[];
|
|
50
47
|
readonly uuid?: string;
|
|
51
48
|
_version_: string;
|
|
49
|
+
_oldFileName: string;
|
|
52
50
|
_oldFileContent: string;
|
|
53
51
|
_oldFileLang: string;
|
|
52
|
+
_newFileName: string;
|
|
54
53
|
_newFileContent: string;
|
|
55
54
|
_newFileLang: string;
|
|
55
|
+
_diffList: string[];
|
|
56
56
|
diffLineLength: number;
|
|
57
57
|
splitLineLength: number;
|
|
58
58
|
unifiedLineLength: number;
|
|
@@ -60,19 +60,7 @@ export declare class DiffFile {
|
|
|
60
60
|
hasExpandSplitAll: boolean;
|
|
61
61
|
hasExpandUnifiedAll: boolean;
|
|
62
62
|
hasSomeLineCollapsed: boolean;
|
|
63
|
-
static createInstance(data:
|
|
64
|
-
oldFile?: {
|
|
65
|
-
fileName?: string | null;
|
|
66
|
-
fileLang?: string | null;
|
|
67
|
-
content?: string | null;
|
|
68
|
-
};
|
|
69
|
-
newFile?: {
|
|
70
|
-
fileName?: string | null;
|
|
71
|
-
fileLang?: string | null;
|
|
72
|
-
content?: string | null;
|
|
73
|
-
};
|
|
74
|
-
hunks?: string[];
|
|
75
|
-
}, bundle?: ReturnType<DiffFile["getBundle"] | DiffFile["_getFullBundle"]>): DiffFile;
|
|
63
|
+
static createInstance(data: FileData, bundle?: ReturnType<DiffFile["getBundle"] | DiffFile["_getFullBundle"]>): DiffFile;
|
|
76
64
|
constructor(_oldFileName: string, _oldFileContent: string, _newFileName: string, _newFileContent: string, _diffList: string[], _oldFileLang?: string, _newFileLang?: string, uuid?: string);
|
|
77
65
|
initId(): void;
|
|
78
66
|
getId(): string;
|
|
@@ -130,7 +118,7 @@ export declare class DiffFile {
|
|
|
130
118
|
theme: "light" | "dark";
|
|
131
119
|
isFullMerge: boolean;
|
|
132
120
|
};
|
|
133
|
-
mergeBundle: (data: ReturnType<DiffFile["getBundle"]
|
|
121
|
+
mergeBundle: (data: ReturnType<DiffFile["getBundle"]>, notifyUpdate?: boolean) => void;
|
|
134
122
|
_getHighlighterName: () => string;
|
|
135
123
|
_getIsPureDiffRender: () => boolean;
|
|
136
124
|
_getTheme: () => "light" | "dark";
|
|
@@ -169,7 +157,7 @@ export declare class DiffFile {
|
|
|
169
157
|
version: string;
|
|
170
158
|
theme: "light" | "dark";
|
|
171
159
|
};
|
|
172
|
-
_mergeFullBundle: (data: ReturnType<DiffFile["_getFullBundle"]
|
|
160
|
+
_mergeFullBundle: (data: ReturnType<DiffFile["_getFullBundle"]>, notifyUpdate?: boolean) => void;
|
|
173
161
|
_destroy: () => void;
|
|
174
162
|
clear: () => void;
|
|
175
163
|
}
|
|
@@ -360,7 +348,10 @@ export declare const HiddenBidiCharsRegex: RegExp;
|
|
|
360
348
|
export declare const _cacheMap: Cache$1<string, File$1>;
|
|
361
349
|
export declare const checkDiffLineIncludeChange: (diffLine?: DiffLine) => boolean;
|
|
362
350
|
export declare const composeLen = 40;
|
|
363
|
-
export declare const getDiffRange: (additions: DiffLine[], deletions: DiffLine[]
|
|
351
|
+
export declare const getDiffRange: (additions: DiffLine[], deletions: DiffLine[], { getAdditionRaw, getDeletionRaw, }: {
|
|
352
|
+
getAdditionRaw: (lineNumber: number) => string;
|
|
353
|
+
getDeletionRaw: (lineNumber: number) => string;
|
|
354
|
+
}) => void;
|
|
364
355
|
export declare const getFile: (raw: string, lang: string, theme: "light" | "dark", fileName?: string, uuid?: string) => File$1;
|
|
365
356
|
export declare const getLang: (fileName: string) => string;
|
|
366
357
|
export declare const getSplitContentLines: (diffFile: DiffFile) => DiffSplitContentLineItem[];
|
|
@@ -560,6 +551,19 @@ export type DiffUnifiedLineItem = {
|
|
|
560
551
|
index: number;
|
|
561
552
|
lineNumber: number;
|
|
562
553
|
};
|
|
554
|
+
export type FileData = {
|
|
555
|
+
oldFile?: {
|
|
556
|
+
fileName?: string | null;
|
|
557
|
+
fileLang?: string | null;
|
|
558
|
+
content?: string | null;
|
|
559
|
+
};
|
|
560
|
+
newFile?: {
|
|
561
|
+
fileName?: string | null;
|
|
562
|
+
fileLang?: string | null;
|
|
563
|
+
content?: string | null;
|
|
564
|
+
};
|
|
565
|
+
hunks?: string[];
|
|
566
|
+
};
|
|
563
567
|
export type HunkInfo = {
|
|
564
568
|
oldStartIndex: number;
|
|
565
569
|
newStartIndex: number;
|
|
@@ -601,17 +605,17 @@ export type SyntaxNode = {
|
|
|
601
605
|
children?: SyntaxNode[];
|
|
602
606
|
};
|
|
603
607
|
declare const createDiffConfigStore: (props: DiffViewProps<any>, diffFileId: string) => import("reactivity-store").UseSelectorWithStore<{
|
|
604
|
-
id: import("reactivity-store").Ref<string>;
|
|
608
|
+
id: import("reactivity-store").Ref<string, string>;
|
|
605
609
|
setId: (_id: string) => string;
|
|
606
|
-
mode: import("reactivity-store").Ref<DiffModeEnum>;
|
|
610
|
+
mode: import("reactivity-store").Ref<DiffModeEnum, DiffModeEnum>;
|
|
607
611
|
setMode: (_mode: DiffModeEnum) => DiffModeEnum;
|
|
608
|
-
enableWrap: import("reactivity-store").Ref<boolean>;
|
|
612
|
+
enableWrap: import("reactivity-store").Ref<boolean, boolean>;
|
|
609
613
|
setEnableWrap: (_enableWrap: boolean) => boolean;
|
|
610
|
-
enableAddWidget: import("reactivity-store").Ref<boolean>;
|
|
614
|
+
enableAddWidget: import("reactivity-store").Ref<boolean, boolean>;
|
|
611
615
|
setEnableAddWidget: (_enableAddWidget: boolean) => boolean;
|
|
612
|
-
enableHighlight: import("reactivity-store").Ref<boolean>;
|
|
616
|
+
enableHighlight: import("reactivity-store").Ref<boolean, boolean>;
|
|
613
617
|
setEnableHighlight: (_enableHighlight: boolean) => boolean;
|
|
614
|
-
fontSize: import("reactivity-store").Ref<number>;
|
|
618
|
+
fontSize: import("reactivity-store").Ref<number, number>;
|
|
615
619
|
setFontSize: (_fontSize: number) => number;
|
|
616
620
|
extendData: import("reactivity-store").Ref<{
|
|
617
621
|
oldFile: {
|
|
@@ -624,6 +628,28 @@ declare const createDiffConfigStore: (props: DiffViewProps<any>, diffFileId: str
|
|
|
624
628
|
data: any;
|
|
625
629
|
};
|
|
626
630
|
};
|
|
631
|
+
}, {
|
|
632
|
+
oldFile: {
|
|
633
|
+
[x: string]: {
|
|
634
|
+
data: any;
|
|
635
|
+
};
|
|
636
|
+
};
|
|
637
|
+
newFile: {
|
|
638
|
+
[x: string]: {
|
|
639
|
+
data: any;
|
|
640
|
+
};
|
|
641
|
+
};
|
|
642
|
+
} | {
|
|
643
|
+
oldFile: {
|
|
644
|
+
[x: string]: {
|
|
645
|
+
data: any;
|
|
646
|
+
};
|
|
647
|
+
};
|
|
648
|
+
newFile: {
|
|
649
|
+
[x: string]: {
|
|
650
|
+
data: any;
|
|
651
|
+
};
|
|
652
|
+
};
|
|
627
653
|
}>;
|
|
628
654
|
setExtendData: (_extendData: DiffViewProps<any>["extendData"]) => void;
|
|
629
655
|
renderWidgetLine: import("reactivity-store").Ref<({ diffFile, side, lineNumber, onClose, }: {
|
|
@@ -631,6 +657,11 @@ declare const createDiffConfigStore: (props: DiffViewProps<any>, diffFileId: str
|
|
|
631
657
|
side: SplitSide;
|
|
632
658
|
diffFile: DiffFile;
|
|
633
659
|
onClose: () => void;
|
|
660
|
+
}) => import("react").ReactNode, ({ diffFile, side, lineNumber, onClose, }: {
|
|
661
|
+
lineNumber: number;
|
|
662
|
+
side: SplitSide;
|
|
663
|
+
diffFile: DiffFile;
|
|
664
|
+
onClose: () => void;
|
|
634
665
|
}) => import("react").ReactNode>;
|
|
635
666
|
setRenderWidgetLine: (_renderWidgetLine: ({ diffFile, side, lineNumber, onClose, }: {
|
|
636
667
|
lineNumber: number;
|
|
@@ -649,6 +680,12 @@ declare const createDiffConfigStore: (props: DiffViewProps<any>, diffFileId: str
|
|
|
649
680
|
data: any;
|
|
650
681
|
diffFile: DiffFile;
|
|
651
682
|
onUpdate: () => void;
|
|
683
|
+
}) => import("react").ReactNode, ({ diffFile, side, data, lineNumber, onUpdate, }: {
|
|
684
|
+
lineNumber: number;
|
|
685
|
+
side: SplitSide;
|
|
686
|
+
data: any;
|
|
687
|
+
diffFile: DiffFile;
|
|
688
|
+
onUpdate: () => void;
|
|
652
689
|
}) => import("react").ReactNode>;
|
|
653
690
|
setRenderExtendLine: (_renderExtendLine: ({ diffFile, side, data, lineNumber, onUpdate, }: {
|
|
654
691
|
lineNumber: number;
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "@git-diff-view/react",
|
|
4
4
|
"author": "MrWangJustToDo",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"version": "0.0.
|
|
6
|
+
"version": "0.0.20",
|
|
7
7
|
"main": "index.js",
|
|
8
8
|
"types": "index.d.ts",
|
|
9
9
|
"files": [
|
|
@@ -57,22 +57,22 @@
|
|
|
57
57
|
"react diff component"
|
|
58
58
|
],
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@git-diff-view/core": "^0.0.
|
|
60
|
+
"@git-diff-view/core": "^0.0.20",
|
|
61
61
|
"@types/hast": "^3.0.0",
|
|
62
62
|
"fast-diff": "^1.3.0",
|
|
63
63
|
"highlight.js": "^11.9.0",
|
|
64
64
|
"lowlight": "^3.1.0",
|
|
65
|
-
"reactivity-store": "^0.3.
|
|
65
|
+
"reactivity-store": "^0.3.7",
|
|
66
66
|
"use-sync-external-store": "^1.2.2"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@types/use-sync-external-store": "^0.0.3",
|
|
70
70
|
"autoprefixer": "^10.4.20",
|
|
71
|
-
"postcss": "^8.4.
|
|
71
|
+
"postcss": "^8.4.47",
|
|
72
72
|
"postcss-cli": "^11.0.0",
|
|
73
73
|
"postcss-import": "^16.1.0",
|
|
74
74
|
"react": "^18.0.0",
|
|
75
|
-
"tailwindcss": "^3.4.
|
|
75
|
+
"tailwindcss": "^3.4.14"
|
|
76
76
|
},
|
|
77
77
|
"peerDependencies": {
|
|
78
78
|
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
|
package/readme.md
CHANGED
|
@@ -23,6 +23,7 @@ import "@git-diff-view/react/styles/diff-view.css";
|
|
|
23
23
|
diffViewHighlight={boolean}
|
|
24
24
|
diffViewMode={DiffModeEnum.Split | DiffModeEnum.Unified}
|
|
25
25
|
diffViewWrap={boolean}
|
|
26
|
+
diffViewTheme={'light' | 'dark'}
|
|
26
27
|
diffViewAddWidget
|
|
27
28
|
onAddWidgetClick={({ side, lineNumber }) => void}
|
|
28
29
|
renderWidgetLine={({ onClose, side, lineNumber }) => ReactNode}
|
|
@@ -43,6 +44,7 @@ const file = generateDiffFile(
|
|
|
43
44
|
data?.oldFile?.fileLang || "",
|
|
44
45
|
data?.newFile?.fileLang || ""
|
|
45
46
|
);
|
|
47
|
+
file.initTheme('light' / 'dark');
|
|
46
48
|
file.init();
|
|
47
49
|
file.buildSplitDiffLines();
|
|
48
50
|
file.buildUnifiedDiffLines();
|
|
@@ -58,6 +60,7 @@ const file = new DiffFile(
|
|
|
58
60
|
data?.oldFile?.fileLang || "",
|
|
59
61
|
data?.newFile?.fileLang || ""
|
|
60
62
|
);
|
|
63
|
+
file.initTheme('light' / 'dark');
|
|
61
64
|
file.init();
|
|
62
65
|
file.buildSplitDiffLines();
|
|
63
66
|
file.buildUnifiedDiffLines();
|
|
@@ -83,6 +86,7 @@ const diffFile = DiffFile.createInstance(data || {}, bundle);
|
|
|
83
86
|
| diffViewHighlight | enable syntax highlight, type: boolean |
|
|
84
87
|
| diffViewMode | the mode for the DiffView component, type: `DiffModeEnum.Split` or `DiffModeEnum.Unified` |
|
|
85
88
|
| diffViewWrap | enable code line auto wrap, type: boolean |
|
|
89
|
+
| diffViewTheme | the theme for the DiffView component, type: `light` or `dark` |
|
|
86
90
|
| diffViewAddWidget| enable `addWidget` button, type: boolean |
|
|
87
91
|
| onAddWidgetClick | when the `addWidget` button clicked, type: `({ side: "old" | "new", lineNumber: number }) => void` |
|
|
88
92
|
|