@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/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"]>) => void;
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"]>) => void;
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[]) => void;
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.18",
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.18",
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.6",
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.43",
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.10"
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