virtual-react-json-diff 1.0.8 β 1.0.10
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/README.md +31 -9
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/demo/src/App.d.ts +5 -0
- package/dist/cjs/types/demo/src/components/Sidebar.d.ts +8 -0
- package/dist/cjs/types/demo/src/main.d.ts +1 -0
- package/dist/cjs/types/demo/src/types/index.d.ts +18 -0
- package/dist/cjs/types/src/components/DiffViewer/hooks/useDragScroll.d.ts +1 -1
- package/dist/cjs/types/src/components/DiffViewer/hooks/useMinimapDraw.d.ts +3 -2
- package/dist/cjs/types/src/components/DiffViewer/types/index.d.ts +1 -0
- package/dist/index.d.ts +1 -0
- package/package.json +7 -12
package/README.md
CHANGED
|
@@ -4,24 +4,24 @@
|
|
|
4
4
|
[![Downloads][download-badge]][npm-url]
|
|
5
5
|

|
|
6
6
|
|
|
7
|
-
π [Try it now](https://virtual-react-json-diff.netlify.app)
|
|
7
|
+
π [Try it now](https://virtual-react-json-diff.netlify.app) (See the New Demo Page Including AceEditor)
|
|
8
8
|
|
|
9
9
|
A high-performance React component for visually comparing large JSON objects. Built on top of [json-diff-kit](https://www.npmjs.com/package/json-diff-kit), this viewer supports:
|
|
10
10
|
|
|
11
|
-
-
|
|
11
|
+
- Virtual scrolling for better performance (especially for large diffs)
|
|
12
|
+
- Custom theming (Soon new themes will be available)
|
|
13
|
+
- Dual Mini Map
|
|
12
14
|
- π Search functionality
|
|
13
|
-
- πΊοΈ Mini Map
|
|
14
|
-
- π¨ Custom theming
|
|
15
15
|
- βοΈ Optimized for React (uses `react-window`)
|
|
16
16
|
|
|
17
|
-
This component is developed for dealing with thousands of lines of Json Files, and seamlessly compare then render them on UI
|
|
17
|
+
This component is developed for dealing with thousands of lines of Json Files, and seamlessly compare then render them on UI. Json Compare is a concept that has insufficient FE components available. This component brings solution to the issues of current diff viewers. Virtualized scroll gives a smooth experience while dual minimap and search ability simplifies the process of comparing JSON objects.
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## Features
|
|
20
20
|
|
|
21
21
|
- **Compare Large JSON Objects** β Handles big files without freezing the UI
|
|
22
22
|
- **Virtualized Rendering** β Efficient DOM updates using `react-window`
|
|
23
23
|
- **Search Highlighting** β Find matches and scroll directly to them
|
|
24
|
-
- **Mini Map** β
|
|
24
|
+
- **Mini Map** β Dual scrollable minimap of Json Diff, scaled to better see comparison result
|
|
25
25
|
- **Customizable Styles** β Add your own class names and styles easily (checkout JsonDiffCustomTheme.css)
|
|
26
26
|
|
|
27
27
|
## Demo
|
|
@@ -42,11 +42,15 @@ pnpm add virtual-react-json-diff
|
|
|
42
42
|
|
|
43
43
|
The theme is fully customizable, all colors can be changed. (And soon new themes will be available)
|
|
44
44
|
|
|
45
|
-

|
|
46
46
|
|
|
47
47
|
## Usage
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
Modify DifferOptions and InlineDiffOptions and see the output.
|
|
50
|
+
|
|
51
|
+
Dual Minimap is defaultly shown, to hide middle minimap, just pass ShowSingleMinimap prop to Viewer.
|
|
52
|
+
|
|
53
|
+
To change Diff methods please see DifferOptions. By default virtual-react-json-diff uses following configuration.
|
|
50
54
|
|
|
51
55
|
```
|
|
52
56
|
new Differ({
|
|
@@ -88,6 +92,24 @@ The component exposes a root container with the class:
|
|
|
88
92
|
|
|
89
93
|
You can pass your own class name via the className prop to apply custom themes.
|
|
90
94
|
|
|
95
|
+
## Props
|
|
96
|
+
|
|
97
|
+
| Prop | Type | Default | Description |
|
|
98
|
+
| ------------------- | ------------------------- | ------------------ | ---------------------------------------------------------------------- |
|
|
99
|
+
| `oldValue` | `object` | β | The original JSON object to compare (left side). |
|
|
100
|
+
| `newValue` | `object` | β | The updated JSON object to compare (right side). |
|
|
101
|
+
| `height` | `number` | β | Height of the diff viewer in pixels. |
|
|
102
|
+
| `hideSearch` | `boolean` | `false` | Hides the search bar if set to `true`. |
|
|
103
|
+
| `searchTerm` | `string` | `""` | Initial search keyword to highlight within the diff. |
|
|
104
|
+
| `leftTitle` | `string` | β | Optional title to display above the left diff panel. |
|
|
105
|
+
| `rightTitle` | `string` | β | Optional title to display above the right diff panel. |
|
|
106
|
+
| `onSearchMatch` | `(index: number) => void` | β | Callback fired when a search match is found. Receives the match index. |
|
|
107
|
+
| `differOptions` | `DifferOptions` | `Given Above` | Advanced options passed to the diffing engine. |
|
|
108
|
+
| `showSingleMinimap` | `boolean` | `false` | If `true`, shows only one minimap instead of two. |
|
|
109
|
+
| `className` | `string` | β | Custom CSS class for styling the viewer container. |
|
|
110
|
+
| `miniMapWidth` | `number` | `40` | Width of each minimap in pixels. |
|
|
111
|
+
| `inlineDiffOptions` | `InlineDiffOptions` | `{'mode': 'char'}` | Options for fine-tuning inline diff rendering. |
|
|
112
|
+
|
|
91
113
|
## π Acknowledgements
|
|
92
114
|
|
|
93
115
|
Built on top of the awesome json-diff-kit.
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as n from"react";import{createElement as r,PureComponent as o,useState as i,useCallback as s,useLayoutEffect as l,useRef as a,useEffect as c,useMemo as u}from"react";const f=e=>{if(null==e||"bigint"==typeof e||Number.isNaN(e)||e===1/0||e===-1/0)return;if(["string","number","boolean"].includes(typeof e))return e;if(Array.isArray(e))return e.map(f).filter((e=>void 0!==e));const t={};for(const[n,r]of Object.entries(e)){const e=f(r);void 0!==e&&(t[n]=e)}return t},h=(e,t,n=!1)=>{if(!Array.isArray(e)||!Array.isArray(t))throw new Error("Both arguments should be arrays.");const r=e.length,o=t.length,i=new Array(r+o);if(n){for(let e=0;e<o;e++)i[e]=t[o-e-1];for(let t=0;t<r;t++)i[t+o]=e[t];return i}for(let t=0;t<r;t++)i[t]=e[t];for(let e=0;e<o;e++)i[e+r]=t[e];return i},d=(e,t=new Map)=>{if("object"!=typeof e||null===e)return!1;if(t.has(e))return!0;if(t.set(e,!0),Array.isArray(e)){for(let n=0;n<e.length;n++)if(d(e[n],t))return!0;return!1}for(const n in e)if(d(e[n],t))return!0;return!1},p=(e,t,n,r=1/0,o)=>{if(!e||"object"!=typeof e){let r;if(Number.isNaN(e)||e===1/0||e===-1/0||"bigint"==typeof e||(r=JSON.stringify(e,t,n)),void 0===r)switch(o){case Lr.throw:throw new Error(`Value is not valid in JSON, got ${String(e)}`);case Lr.stringify:return v(e);default:throw new Error("Should not reach here, please report this bug.")}return r}const i=r<1?'"..."':Array.isArray(e)?`[${e.map((e=>p(e,t,n,r-1,o))).join(",")}]`:`{${Object.keys(e).map((i=>`"${i}": ${p(e[i],t,n,r-1,o)}`)).join(", ")}}`;return JSON.stringify(JSON.parse(i),t,n)},v=e=>void 0===e?"undefined":e===1/0?"Infinity":e===-1/0?"-Infinity":Number.isNaN(e)?"NaN":"bigint"==typeof e?`${e}n`:String(e),y=(e,t=1/0,n=!1,r=Lr.stringify)=>null===e?"null":Array.isArray(e)||"object"==typeof e?p(e,void 0,n?1:void 0,t,r):p(e,void 0,void 0,void 0,r),g=e=>"boolean"==typeof e?0:"number"==typeof e?1:"string"==typeof e?2:null===e?3:Array.isArray(e)?4:"object"==typeof e?5:"symbol"==typeof e?6:"function"==typeof e?7:"bigint"==typeof e?8:-1,m=(e,t,n)=>{const r=n.keyOrdersMap?.get(e),o=n.keyOrdersMap?.get(t);if(void 0!==r&&void 0!==o)return r-o;const i=g(e),s=g(t);if(i!==s)return i-s;if(null===e&&null===t||Array.isArray(e)&&Array.isArray(t)||5===i&&5===s)return 0;switch(typeof e){case"number":return Number.isNaN(e)&&Number.isNaN(t)||e===1/0&&t===1/0||e===-1/0&&t===-1/0?0:e-t;case"string":return n.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e<t?-1:e>t?1:0;case"boolean":return+e-+t;case"symbol":case"function":return String(e).localeCompare(String(t))}if("bigint"==typeof e&&"bigint"==typeof t){const n=BigInt(e)-BigInt(t);return n<0?-1:n>0?1:0}return String(e).localeCompare(String(t))},b=e=>Array.isArray(e)?"array":null===e?"null":typeof e,x=(e,t,n,r,o,i,s,l)=>{const a={ignoreCase:l.ignoreCase},c=y(o,l.maxDepth,!0,l.undefinedBehavior).split("\n"),u=y(i,l.maxDepth,!0,l.undefinedBehavior).split("\n");if(0!==m(o,i,a))if(l.showModifications){const o=Math.max(c.length,u.length);for(let e=c.length;e<o;e++)c.push("");for(let e=u.length;e<o;e++)u.push("");e.push({level:s,type:"modify",text:n?`"${n}": ${c[0]}`:c[0]});for(let t=1;t<c.length;t++)e.push({level:s+(c[t].match(/^\s+/)?.[0]?.length||0),type:"modify",text:c[t].replace(/^\s+/,"").replace(/,$/g,"")});for(let t=c.length;t<o;t++)e.push({level:s,type:"equal",text:""});t.push({level:s,type:"modify",text:r?`"${r}": ${u[0]}`:u[0]});for(let e=1;e<u.length;e++)t.push({level:s+(u[e].match(/^\s+/)?.[0]?.length||0),type:"modify",text:u[e].replace(/^\s+/,"").replace(/,$/g,"")});for(let e=u.length;e<o;e++)t.push({level:s,type:"equal",text:""})}else{e.push({level:s,type:"remove",text:n?`"${n}": ${c[0]}`:c[0]});for(let t=1;t<c.length;t++)e.push({level:s+(c[t].match(/^\s+/)?.[0]?.length||0),type:"remove",text:c[t].replace(/^\s+/,"").replace(/,$/g,"")});for(let t=0;t<u.length;t++)e.push({level:s,type:"equal",text:""});for(let e=0;e<c.length;e++)t.push({level:s,type:"equal",text:""});t.push({level:s,type:"add",text:r?`"${r}": ${u[0]}`:u[0]});for(let e=1;e<u.length;e++)t.push({level:s+(u[e].match(/^\s+/)?.[0]?.length||0),type:"add",text:u[e].replace(/^\s+/,"").replace(/,$/g,"")})}else{const o=Math.max(c.length,u.length);for(let e=c.length;e<o;e++)c.push("");for(let e=u.length;e<o;e++)u.push("");e.push({level:s,type:"equal",text:n?`"${n}": ${c[0]}`:c[0]});for(let t=1;t<c.length;t++)e.push({level:s+(c[t].match(/^\s+/)?.[0]?.length||0),type:"equal",text:c[t].replace(/^\s+/,"").replace(/,$/g,"")});t.push({level:s,type:"equal",text:r?`"${r}": ${u[0]}`:u[0]});for(let e=1;e<u.length;e++)t.push({level:s+(u[e].match(/^\s+/)?.[0]?.length||0),type:"equal",text:u[e].replace(/^\s+/,"").replace(/,$/g,"")})}},w=(e,t)=>e.sort(((e,n)=>m(e,n,{ignoreCase:t.ignoreCaseForKey}))),j=(e,t,n=1,r,o)=>{if(n>(r.maxDepth||1/0))return[[{level:n,type:"equal",text:"..."}],[{level:n,type:"equal",text:"..."}]];let i=[],s=[];if(null===e&&null===t||void 0===e&&void 0===t)return[i,s];if(null==e){const e=p(t,void 0,1,void 0,r.undefinedBehavior).split("\n");for(let t=0;t<e.length;t++)i.push({level:n,type:"equal",text:""}),s.push({level:n+(e[t].match(/^\s+/)?.[0]?.length||0),type:"add",text:e[t].replace(/^\s+/,"").replace(/,$/g,"")});return[i,s]}if(null==t){const t=p(e,void 0,1,void 0,r.undefinedBehavior).split("\n");for(let e=0;e<t.length;e++)i.push({level:n+(t[e].match(/^\s+/)?.[0]?.length||0),type:"remove",text:t[e].replace(/^\s+/,"").replace(/,$/g,"")}),s.push({level:n,type:"equal",text:""});return[i,s]}const l=Object.keys(e),a=Object.keys(t),c=new Map;if(r.preserveKeyOrder){if("before"===r.preserveKeyOrder){for(let e=0;e<l.length;e++)c.set(l[e],e);for(let e=0;e<a.length;e++)c.has(a[e])||c.set(a[e],l.length+e);a.sort(((e,t)=>c.get(e)-c.get(t)))}else if("after"===r.preserveKeyOrder){for(let e=0;e<a.length;e++)c.set(a[e],e);for(let e=0;e<l.length;e++)c.has(l[e])||c.set(l[e],a.length+e);l.sort(((e,t)=>c.get(e)-c.get(t)))}}else w(l,r),w(a,r);const u={ignoreCase:r.ignoreCaseForKey,keyOrdersMap:c};for(;l.length||a.length;){const c=l[0],f=a[0],d=m(c,f,u);if(0===d)if(b(e[c])!==b(t[f]))x(i,s,c,f,e[c],t[f],n,r);else if(Array.isArray(e[c])){const l=[...e[c]],a=[...t[f]],[u,d]=o(l,a,c,f,n,r,[],[]);i=h(i,u),s=h(s,d)}else if(null===e[c])i.push({level:n,type:"equal",text:`"${c}": null`}),s.push({level:n,type:"equal",text:`"${f}": null`});else if("object"==typeof e[c]){const l=j(e[c],t[f],n+1,r,o);i.push({level:n,type:"equal",text:`"${c}": {`}),i=h(i,l[0]),i.push({level:n,type:"equal",text:"}"}),s.push({level:n,type:"equal",text:`"${f}": {`}),s=h(s,l[1]),s.push({level:n,type:"equal",text:"}"})}else x(i,s,c,f,e[c],t[f],n,r);else if(l.length&&a.length)if(d<0){const t=p(e[c],void 0,1,void 0,r.undefinedBehavior).split("\n");for(let e=0;e<t.length;e++){const r=t[e].replace(/^\s+/,"").replace(/,$/g,"");i.push({level:n+(t[e].match(/^\s+/)?.[0]?.length||0),type:"remove",text:e?r:`"${c}": ${r}`}),s.push({level:n,type:"equal",text:""})}}else{const e=p(t[f],void 0,1,void 0,r.undefinedBehavior).split("\n");for(let t=0;t<e.length;t++){const r=e[t].replace(/^\s+/,"").replace(/,$/g,"");i.push({level:n,type:"equal",text:""}),s.push({level:n+(e[t].match(/^\s+/)?.[0]?.length||0),type:"add",text:t?r:`"${f}": ${r}`})}}else if(l.length){const t=p(e[c],void 0,1,void 0,r.undefinedBehavior).split("\n");for(let e=0;e<t.length;e++){const r=t[e].replace(/^\s+/,"").replace(/,$/g,"");i.push({level:n+(t[e].match(/^\s+/)?.[0]?.length||0),type:"remove",text:e?r:`"${c}": ${r}`}),s.push({level:n,type:"equal",text:""})}}else if(a.length){const e=p(t[f],void 0,1,void 0,r.undefinedBehavior).split("\n");for(let t=0;t<e.length;t++){const r=e[t].replace(/^\s+/,"").replace(/,$/g,"");i.push({level:n,type:"equal",text:""}),s.push({level:n+(e[t].match(/^\s+/)?.[0]?.length||0),type:"add",text:t?r:`"${f}": ${r}`})}}c?f?0===d?(l.shift(),a.shift()):d<0?l.shift():a.shift():l.shift():a.shift()}if(i.length!==s.length)throw new Error("Diff error: length not match for left & right, please report a bug with your data.");return[i,s]};var _=function(){this.__data__=[],this.size=0};var S=function(e,t){return e===t||e!=e&&t!=t},E=S;var k=function(e,t){for(var n=e.length;n--;)if(E(e[n][0],t))return n;return-1},A=k,M=Array.prototype.splice;var O=k;var q=k;var I=k;var N=_,C=function(e){var t=this.__data__,n=A(t,e);return!(n<0)&&(n==t.length-1?t.pop():M.call(t,n,1),--this.size,!0)},D=function(e){var t=this.__data__,n=O(t,e);return n<0?void 0:t[n][1]},$=function(e){return q(this.__data__,e)>-1},B=function(e,t){var n=this.__data__,r=I(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};function R(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}R.prototype.clear=N,R.prototype.delete=C,R.prototype.get=D,R.prototype.has=$,R.prototype.set=B;var L=R,z=L;var T=function(){this.__data__=new z,this.size=0};var P=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n};var W=function(e){return this.__data__.get(e)};var F=function(e){return this.__data__.has(e)},H="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},U="object"==typeof H&&H&&H.Object===Object&&H,K=U,V="object"==typeof self&&self&&self.Object===Object&&self,G=K||V||Function("return this")(),J=G.Symbol,Y=J,Z=Object.prototype,Q=Z.hasOwnProperty,X=Z.toString,ee=Y?Y.toStringTag:void 0;var te=function(e){var t=Q.call(e,ee),n=e[ee];try{e[ee]=void 0;var r=!0}catch(e){}var o=X.call(e);return r&&(t?e[ee]=n:delete e[ee]),o},ne=Object.prototype.toString;var re=te,oe=function(e){return ne.call(e)},ie=J?J.toStringTag:void 0;var se=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":ie&&ie in Object(e)?re(e):oe(e)};var le=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},ae=se,ce=le;var ue,fe=function(e){if(!ce(e))return!1;var t=ae(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},he=G["__core-js_shared__"],de=(ue=/[^.]+$/.exec(he&&he.keys&&he.keys.IE_PROTO||""))?"Symbol(src)_1."+ue:"";var pe=function(e){return!!de&&de in e},ve=Function.prototype.toString;var ye=function(e){if(null!=e){try{return ve.call(e)}catch(e){}try{return e+""}catch(e){}}return""},ge=fe,me=pe,be=le,xe=ye,we=/^\[object .+?Constructor\]$/,je=Function.prototype,_e=Object.prototype,Se=je.toString,Ee=_e.hasOwnProperty,ke=RegExp("^"+Se.call(Ee).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var Ae=function(e){return!(!be(e)||me(e))&&(ge(e)?ke:we).test(xe(e))},Me=function(e,t){return null==e?void 0:e[t]};var Oe=function(e,t){var n=Me(e,t);return Ae(n)?n:void 0},qe=Oe(G,"Map"),Ie=Oe(Object,"create"),Ne=Ie;var Ce=function(){this.__data__=Ne?Ne(null):{},this.size=0};var De=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},$e=Ie,Be=Object.prototype.hasOwnProperty;var Re=function(e){var t=this.__data__;if($e){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return Be.call(t,e)?t[e]:void 0},Le=Ie,ze=Object.prototype.hasOwnProperty;var Te=Ie;var Pe=Ce,We=De,Fe=Re,He=function(e){var t=this.__data__;return Le?void 0!==t[e]:ze.call(t,e)},Ue=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Te&&void 0===t?"__lodash_hash_undefined__":t,this};function Ke(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Ke.prototype.clear=Pe,Ke.prototype.delete=We,Ke.prototype.get=Fe,Ke.prototype.has=He,Ke.prototype.set=Ue;var Ve=Ke,Ge=L,Je=qe;var Ye=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e};var Ze=function(e,t){var n=e.__data__;return Ye(t)?n["string"==typeof t?"string":"hash"]:n.map},Qe=Ze;var Xe=Ze;var et=Ze;var tt=Ze;var nt=function(e,t){var n=tt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},rt=function(){this.size=0,this.__data__={hash:new Ve,map:new(Je||Ge),string:new Ve}},ot=function(e){var t=Qe(this,e).delete(e);return this.size-=t?1:0,t},it=function(e){return Xe(this,e).get(e)},st=function(e){return et(this,e).has(e)},lt=nt;function at(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}at.prototype.clear=rt,at.prototype.delete=ot,at.prototype.get=it,at.prototype.has=st,at.prototype.set=lt;var ct=at,ut=L,ft=qe,ht=ct;var dt=L,pt=T,vt=P,yt=W,gt=F,mt=function(e,t){var n=this.__data__;if(n instanceof ut){var r=n.__data__;if(!ft||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new ht(r)}return n.set(e,t),this.size=n.size,this};function bt(e){var t=this.__data__=new dt(e);this.size=t.size}bt.prototype.clear=pt,bt.prototype.delete=vt,bt.prototype.get=yt,bt.prototype.has=gt,bt.prototype.set=mt;var xt=bt;var wt=ct,jt=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},_t=function(e){return this.__data__.has(e)};function St(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new wt;++t<n;)this.add(e[t])}St.prototype.add=St.prototype.push=jt,St.prototype.has=_t;var Et=St,kt=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1},At=function(e,t){return e.has(t)};var Mt=function(e,t,n,r,o,i){var s=1&n,l=e.length,a=t.length;if(l!=a&&!(s&&a>l))return!1;var c=i.get(e),u=i.get(t);if(c&&u)return c==t&&u==e;var f=-1,h=!0,d=2&n?new Et:void 0;for(i.set(e,t),i.set(t,e);++f<l;){var p=e[f],v=t[f];if(r)var y=s?r(v,p,f,t,e,i):r(p,v,f,e,t,i);if(void 0!==y){if(y)continue;h=!1;break}if(d){if(!kt(t,(function(e,t){if(!At(d,t)&&(p===e||o(p,e,n,r,i)))return d.push(t)}))){h=!1;break}}else if(p!==v&&!o(p,v,n,r,i)){h=!1;break}}return i.delete(e),i.delete(t),h};var Ot=G.Uint8Array,qt=S,It=Mt,Nt=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n},Ct=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n},Dt=J?J.prototype:void 0,$t=Dt?Dt.valueOf:void 0;var Bt=function(e,t,n,r,o,i,s){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!i(new Ot(e),new Ot(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return qt(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var l=Nt;case"[object Set]":var a=1&r;if(l||(l=Ct),e.size!=t.size&&!a)return!1;var c=s.get(e);if(c)return c==t;r|=2,s.set(e,t);var u=It(l(e),l(t),r,o,i,s);return s.delete(e),u;case"[object Symbol]":if($t)return $t.call(e)==$t.call(t)}return!1};var Rt=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e},Lt=Array.isArray,zt=Rt,Tt=Lt;var Pt=function(e,t,n){var r=t(e);return Tt(e)?r:zt(r,n(e))};var Wt=function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,i=[];++n<r;){var s=e[n];t(s,n,e)&&(i[o++]=s)}return i},Ft=function(){return[]},Ht=Object.prototype.propertyIsEnumerable,Ut=Object.getOwnPropertySymbols,Kt=Ut?function(e){return null==e?[]:(e=Object(e),Wt(Ut(e),(function(t){return Ht.call(e,t)})))}:Ft;var Vt=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r};var Gt=function(e){return null!=e&&"object"==typeof e},Jt=se,Yt=Gt;var Zt=function(e){return Yt(e)&&"[object Arguments]"==Jt(e)},Qt=Gt,Xt=Object.prototype,en=Xt.hasOwnProperty,tn=Xt.propertyIsEnumerable,nn=Zt(function(){return arguments}())?Zt:function(e){return Qt(e)&&en.call(e,"callee")&&!tn.call(e,"callee")},rn={exports:{}};var on=function(){return!1};!function(e,t){var n=G,r=on,o=t&&!t.nodeType&&t,i=o&&e&&!e.nodeType&&e,s=i&&i.exports===o?n.Buffer:void 0,l=(s?s.isBuffer:void 0)||r;e.exports=l}(rn,rn.exports);var sn=/^(?:0|[1-9]\d*)$/;var ln=function(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&sn.test(e))&&e>-1&&e%1==0&&e<t};var an=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991},cn=se,un=an,fn=Gt,hn={};hn["[object Float32Array]"]=hn["[object Float64Array]"]=hn["[object Int8Array]"]=hn["[object Int16Array]"]=hn["[object Int32Array]"]=hn["[object Uint8Array]"]=hn["[object Uint8ClampedArray]"]=hn["[object Uint16Array]"]=hn["[object Uint32Array]"]=!0,hn["[object Arguments]"]=hn["[object Array]"]=hn["[object ArrayBuffer]"]=hn["[object Boolean]"]=hn["[object DataView]"]=hn["[object Date]"]=hn["[object Error]"]=hn["[object Function]"]=hn["[object Map]"]=hn["[object Number]"]=hn["[object Object]"]=hn["[object RegExp]"]=hn["[object Set]"]=hn["[object String]"]=hn["[object WeakMap]"]=!1;var dn=function(e){return fn(e)&&un(e.length)&&!!hn[cn(e)]};var pn=function(e){return function(t){return e(t)}},vn={exports:{}};!function(e,t){var n=U,r=t&&!t.nodeType&&t,o=r&&e&&!e.nodeType&&e,i=o&&o.exports===r&&n.process,s=function(){try{var e=o&&o.require&&o.require("util").types;return e||i&&i.binding&&i.binding("util")}catch(e){}}();e.exports=s}(vn,vn.exports);var yn=dn,gn=pn,mn=vn.exports,bn=mn&&mn.isTypedArray,xn=bn?gn(bn):yn,wn=Vt,jn=nn,_n=Lt,Sn=rn.exports,En=ln,kn=xn,An=Object.prototype.hasOwnProperty;var Mn=function(e,t){var n=_n(e),r=!n&&jn(e),o=!n&&!r&&Sn(e),i=!n&&!r&&!o&&kn(e),s=n||r||o||i,l=s?wn(e.length,String):[],a=l.length;for(var c in e)!t&&!An.call(e,c)||s&&("length"==c||o&&("offset"==c||"parent"==c)||i&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||En(c,a))||l.push(c);return l},On=Object.prototype;var qn=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||On)};var In=function(e,t){return function(n){return e(t(n))}}(Object.keys,Object),Nn=qn,Cn=In,Dn=Object.prototype.hasOwnProperty;var $n=fe,Bn=an;var Rn=Mn,Ln=function(e){if(!Nn(e))return Cn(e);var t=[];for(var n in Object(e))Dn.call(e,n)&&"constructor"!=n&&t.push(n);return t},zn=function(e){return null!=e&&Bn(e.length)&&!$n(e)};var Tn=Pt,Pn=Kt,Wn=function(e){return zn(e)?Rn(e):Ln(e)};var Fn=function(e){return Tn(e,Wn,Pn)},Hn=Object.prototype.hasOwnProperty;var Un=function(e,t,n,r,o,i){var s=1&n,l=Fn(e),a=l.length;if(a!=Fn(t).length&&!s)return!1;for(var c=a;c--;){var u=l[c];if(!(s?u in t:Hn.call(t,u)))return!1}var f=i.get(e),h=i.get(t);if(f&&h)return f==t&&h==e;var d=!0;i.set(e,t),i.set(t,e);for(var p=s;++c<a;){var v=e[u=l[c]],y=t[u];if(r)var g=s?r(y,v,u,t,e,i):r(v,y,u,e,t,i);if(!(void 0===g?v===y||o(v,y,n,r,i):g)){d=!1;break}p||(p="constructor"==u)}if(d&&!p){var m=e.constructor,b=t.constructor;m==b||!("constructor"in e)||!("constructor"in t)||"function"==typeof m&&m instanceof m&&"function"==typeof b&&b instanceof b||(d=!1)}return i.delete(e),i.delete(t),d},Kn=Oe(G,"DataView"),Vn=qe,Gn=Oe(G,"Promise"),Jn=Oe(G,"Set"),Yn=Oe(G,"WeakMap"),Zn=se,Qn=ye,Xn="[object Map]",er="[object Promise]",tr="[object Set]",nr="[object WeakMap]",rr="[object DataView]",or=Qn(Kn),ir=Qn(Vn),sr=Qn(Gn),lr=Qn(Jn),ar=Qn(Yn),cr=Zn;(Kn&&cr(new Kn(new ArrayBuffer(1)))!=rr||Vn&&cr(new Vn)!=Xn||Gn&&cr(Gn.resolve())!=er||Jn&&cr(new Jn)!=tr||Yn&&cr(new Yn)!=nr)&&(cr=function(e){var t=Zn(e),n="[object Object]"==t?e.constructor:void 0,r=n?Qn(n):"";if(r)switch(r){case or:return rr;case ir:return Xn;case sr:return er;case lr:return tr;case ar:return nr}return t});var ur=xt,fr=Mt,hr=Bt,dr=Un,pr=cr,vr=Lt,yr=rn.exports,gr=xn,mr="[object Arguments]",br="[object Array]",xr="[object Object]",wr=Object.prototype.hasOwnProperty;var jr=function(e,t,n,r,o,i){var s=vr(e),l=vr(t),a=s?br:pr(e),c=l?br:pr(t),u=(a=a==mr?xr:a)==xr,f=(c=c==mr?xr:c)==xr,h=a==c;if(h&&yr(e)){if(!yr(t))return!1;s=!0,u=!1}if(h&&!u)return i||(i=new ur),s||gr(e)?fr(e,t,n,r,o,i):hr(e,t,a,n,r,o,i);if(!(1&n)){var d=u&&wr.call(e,"__wrapped__"),p=f&&wr.call(t,"__wrapped__");if(d||p){var v=d?e.value():e,y=p?t.value():t;return i||(i=new ur),o(v,y,n,r,i)}}return!!h&&(i||(i=new ur),dr(e,t,n,r,o,i))},_r=Gt;var Sr=function e(t,n,r,o,i){return t===n||(null==t||null==n||!_r(t)&&!_r(n)?t!=t&&n!=n:jr(t,n,r,o,e,i))},Er=Sr;var kr=function(e,t,n){var r=(n="function"==typeof n?n:void 0)?n(e,t):void 0;return void 0===r?Er(e,t,void 0,n):!!r};const Ar=(e,t,n)=>n.ignoreCase?"string"==typeof e&&"string"==typeof t&&e.toLowerCase()===t.toLowerCase():"symbol"==typeof e&&"symbol"==typeof t?e.toString()===t.toString():n.recursiveEqual?kr(e,t,((e,t)=>n.ignoreCase&&"string"==typeof e&&"string"==typeof t?e.toLowerCase()===t.toLowerCase():void 0)):e===t,Mr=(e,t)=>{if(e===t)return 1;if(null===e||null===t)return 0;if("object"!=typeof e||"object"!=typeof t)return 0;let n=0;for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&Object.prototype.hasOwnProperty.call(t,r)&&e[r]===t[r]&&n++;return Math.max(n/Object.keys(e).length,n/Object.keys(t).length)},Or=(e,t,n,r,o)=>{n&&r?(e.push({level:o,type:"equal",text:`"${n}": [`}),t.push({level:o,type:"equal",text:`"${r}": [`})):(e.push({level:o,type:"equal",text:"["}),t.push({level:o,type:"equal",text:"["}))},qr=(e,t,n)=>{e.push({level:n,type:"equal",text:"]"}),t.push({level:n,type:"equal",text:"]"})},Ir=(e,t,n)=>{e.push({level:n+1,type:"equal",text:"..."}),t.push({level:n+1,type:"equal",text:"..."})},Nr=(e,t,n,r,o,i,s=[],l=[])=>{if(Or(s,l,n,r,o),o>=(i.maxDepth||1/0))Ir(s,l,o);else{const[a,c]=((e,t,n,r,o,i)=>{const s=Array(e.length+1).fill(0).map((()=>Array(t.length+1).fill(0))),l=Array(e.length+1).fill(0).map((()=>Array(t.length+1).fill(0)));for(let t=1;t<=e.length;t++)l[t][0]="up";for(let e=1;e<=t.length;e++)l[0][e]="left";for(let n=1;n<=e.length;n++)for(let r=1;r<=t.length;r++){const o=b(e[n-1]);o!==b(t[r-1])||"array"!==o&&"object"!==o?Ar(e[n-1],t[r-1],i)?(s[n][r]=s[n-1][r-1]+1,l[n][r]="diag"):s[n-1][r]>=s[n][r-1]?(s[n][r]=s[n-1][r],l[n][r]="up"):(s[n][r]=s[n][r-1],l[n][r]="left"):i.recursiveEqual?Ar(e[n-1],t[r-1],i)||Mr(e[n-1],t[r-1])>.5?(s[n][r]=s[n-1][r-1]+1,l[n][r]="diag"):s[n-1][r]>=s[n][r-1]?(s[n][r]=s[n-1][r],l[n][r]="up"):(s[n][r]=s[n][r-1],l[n][r]="left"):(s[n][r]=s[n-1][r-1]+1,l[n][r]="diag")}let a=e.length,c=t.length,u=[],f=[];for(;a>0||c>0;)if("diag"===l[a][c]){const s=b(e[a-1]);if(i.recursiveEqual&&("array"===s||"object"===s)&&Ar(e[a-1],t[c-1],i)){const n=[],r=[];x(n,r,"","",e[a-1],t[c-1],o+1,i),u=h(u,n.reverse(),!0),f=h(f,r.reverse(),!0)}else if("array"===s){const[s,l]=Nr(e[a-1],t[c-1],n,r,o+1,i);u=h(u,s.reverse(),!0),f=h(f,l.reverse(),!0)}else if("object"===s){const[n,r]=j(e[a-1],t[c-1],o+2,i,Nr);u.unshift({level:o+1,type:"equal",text:"}"}),f.unshift({level:o+1,type:"equal",text:"}"}),u=h(u,n.reverse(),!0),f=h(f,r.reverse(),!0),u.unshift({level:o+1,type:"equal",text:"{"}),f.unshift({level:o+1,type:"equal",text:"{"})}else{const n=[],r=[];x(n,r,"","",e[a-1],t[c-1],o+1,i),u=h(u,n.reverse(),!0),f=h(f,r.reverse(),!0)}a--,c--}else if("up"===l[a][c])if(i.showModifications&&a>1&&"left"===l[a-1][c]){const s=b(e[a-1]);if(s===b(t[c-1]))if("array"===s){const[s,l]=Nr(e[a-1],t[c-1],n,r,o+1,i);u=h(u,s.reverse(),!0),f=h(f,l.reverse(),!0)}else if("object"===s){const[n,r]=j(e[a-1],t[c-1],o+2,i,Nr);u.unshift({level:o+1,type:"equal",text:"}"}),f.unshift({level:o+1,type:"equal",text:"}"}),u=h(u,n.reverse(),!0),f=h(f,r.reverse(),!0),u.unshift({level:o+1,type:"equal",text:"{"}),f.unshift({level:o+1,type:"equal",text:"{"})}else u.unshift({level:o+1,type:"modify",text:y(e[a-1],void 0,void 0,i.undefinedBehavior)}),f.unshift({level:o+1,type:"modify",text:y(t[c-1],void 0,void 0,i.undefinedBehavior)});else{const n=[],r=[];x(n,r,"","",e[a-1],t[c-1],o+1,i),u=h(u,n.reverse(),!0),f=h(f,r.reverse(),!0)}a--,c--}else{const t=p(e[a-1],void 0,1,void 0,i.undefinedBehavior).split("\n");for(let e=t.length-1;e>=0;e--)u.unshift({level:o+1+(t[e].match(/^\s+/)?.[0]?.length||0),type:"remove",text:t[e].replace(/^\s+/,"").replace(/,$/g,"")}),f.unshift({level:o+1,type:"equal",text:""});a--}else{const e=p(t[c-1],void 0,1,void 0,i.undefinedBehavior).split("\n");for(let t=e.length-1;t>=0;t--)u.unshift({level:o+1,type:"equal",text:""}),f.unshift({level:o+1+(e[t].match(/^\s+/)?.[0]?.length||0),type:"add",text:e[t].replace(/^\s+/,"").replace(/,$/g,"")});c--}return[u,f]})(e,t,n,r,o,i);s=h(s,a),l=h(l,c)}return qr(s,l,o),[s,l]};function Cr(e,t){for(const n of e){if("object"===b(n)){if(!(t in n))return!1;for(const e of Object.values(n))if(Array.isArray(e)&&!Cr(e,t))return!1}else if(Array.isArray(n)&&!Cr(n,t))return!1}return!0}const Dr=function e(t,n,r,o,i,s,l=[],a=[]){if(!s.compareKey)return Br(t,n,r,o,i,s,l,a);const c=e=>e.every((e=>"object"===b(e)));if(!(c(t)&&c(n)&&Cr(t,s.compareKey)&&Cr(n,s.compareKey)))return Br(t,n,r,o,i,s,l,a);if(Or(l,a,r,o,i),i>=(s.maxDepth||1/0))Ir(l,a,i);else{const r=new Set,o=new Set;for(let c=0;c<t.length;c++){const u=t[c];if(r.has(c))continue;if("object"!==b(u)||!(s.compareKey in u))continue;const f=u[s.compareKey];let d=-1;for(let e=0;e<n.length;e++){if(o.has(e))continue;const t=n[e];if("object"!==b(t)||!(s.compareKey in t))continue;const r=t[s.compareKey];if(Ar(f,r,s)){d=e;break}}if(-1!==d){const t=n[d],f=b(u);if(f!==b(t))x(l,a,"","",u,t,i+1,s);else if("object"===f){l.push({level:i+1,type:"equal",text:"{"}),a.push({level:i+1,type:"equal",text:"{"});const n=Array.from(new Set([...Object.keys(u),...Object.keys(t)]));for(const r of n){const n=u[r],o=t[r];if(Array.isArray(n)&&Array.isArray(o)){const[t,r]=e(n,o,"","",i+2,s,[],[]);l=h(l,t),a=h(a,r)}else if(Array.isArray(n)||Array.isArray(o))x(l,a,r,r,n,o,i+2,s);else{const[t,c]=j({[r]:n},{[r]:o},i+2,s,e);l=h(l,t),a=h(a,c)}}l.push({level:i+1,type:"equal",text:"}"}),a.push({level:i+1,type:"equal",text:"}"})}else if("array"===f){const[n,r]=e(u,t,"","",i+1,s,[],[]);l=h(l,n),a=h(a,r)}else Ar(u,t,s)?(l.push({level:i+1,type:"equal",text:y(u,void 0,void 0,s.undefinedBehavior)}),a.push({level:i+1,type:"equal",text:y(t,void 0,void 0,s.undefinedBehavior)})):s.showModifications?(l.push({level:i+1,type:"modify",text:y(u,void 0,void 0,s.undefinedBehavior)}),a.push({level:i+1,type:"modify",text:y(t,void 0,void 0,s.undefinedBehavior)})):(l.push({level:i+1,type:"remove",text:y(u,void 0,void 0,s.undefinedBehavior)}),l.push({level:i+1,type:"equal",text:""}),a.push({level:i+1,type:"equal",text:""}),a.push({level:i+1,type:"add",text:y(t,void 0,void 0,s.undefinedBehavior)}));r.add(c),o.add(d)}}for(let e=0;e<t.length;e++){if(r.has(e))continue;const n=t[e],o=p(n,void 0,1,void 0,s.undefinedBehavior).split("\n");for(let e=0;e<o.length;e++)l.push({level:i+1+(o[e].match(/^\s+/)?.[0]?.length||0),type:"remove",text:o[e].replace(/^\s+/,"").replace(/,$/g,"")}),a.push({level:i+1,type:"equal",text:""})}for(let e=0;e<n.length;e++){if(o.has(e))continue;const t=n[e],r=p(t,void 0,1,void 0,s.undefinedBehavior).split("\n");for(let e=0;e<r.length;e++)l.push({level:i+1,type:"equal",text:""}),a.push({level:i+1+(r[e].match(/^\s+/)?.[0]?.length||0),type:"add",text:r[e].replace(/^\s+/,"").replace(/,$/g,"")})}}return qr(l,a,i),[l,a]};function $r(e,t,n,r,o,i,s){let l=[],a=[];const c=Array.from(new Set([...Object.keys(e||{}),...Object.keys(t||{})]));for(const u of c){const c=e?e[u]:void 0,f=t?t[u]:void 0;if(Array.isArray(c)&&Array.isArray(f)&&r.compareKey&&s(c,r.compareKey)&&s(f,r.compareKey)){const[e,t]=i(c,f,"","",n+2,r,[],[]);l=h(l,e),a=h(a,t)}else if(Array.isArray(c)&&Array.isArray(f)){const[e,t]=o(c,f,"","",n+2,r,[],[]);l=h(l,e),a=h(a,t)}else if(Array.isArray(c)||Array.isArray(f))x(l,a,u,u,c,f,n+2,r);else{const[e,t]=j({[u]:c},{[u]:f},n+2,r,o);l=h(l,e),a=h(a,t)}}return[l,a]}const Br=(e,t,n,r,o,i,s=[],l=[])=>{if(e=[...e],t=[...t],Or(s,l,n,r,o),o>=(i.maxDepth||1/0))Ir(s,l,o);else for(;e.length||t.length;){const n=e[0],r=t[0],a=b(n),c=b(r);if(e.length&&t.length){if(a!==c)x(s,l,"","",n,r,o+1,i);else if(i.recursiveEqual&&["object","array"].includes(a)&&Ar(n,r,i))x(s,l,"","",n,r,o+1,i);else if("object"===a){let e,t;s.push({level:o+1,type:"equal",text:"{"}),l.push({level:o+1,type:"equal",text:"{"}),"compare-key"===i.arrayDiffMethod?[e,t]=$r(n,r,o,i,Br,Dr,Cr):[e,t]=j(n,r,o+2,i,Br),s=h(s,e),l=h(l,t),s.push({level:o+1,type:"equal",text:"}"}),l.push({level:o+1,type:"equal",text:"}"})}else if("array"===a)if(i.compareKey&&Cr(n,i.compareKey)&&Cr(r,i.compareKey)){const[e,t]=Dr(n,r,"","",o+1,i,[],[]);s=h(s,e),l=h(l,t)}else{const[e,t]=Br(n,r,"","",o+1,i,[],[]);s=h(s,e),l=h(l,t)}else 0===m(n,r,{ignoreCase:i.ignoreCase})?(s.push({level:o+1,type:"equal",text:y(n,void 0,void 0,i.undefinedBehavior)}),l.push({level:o+1,type:"equal",text:y(r,void 0,void 0,i.undefinedBehavior)})):i.showModifications?(s.push({level:o+1,type:"modify",text:y(n,void 0,void 0,i.undefinedBehavior)}),l.push({level:o+1,type:"modify",text:y(r,void 0,void 0,i.undefinedBehavior)})):(s.push({level:o+1,type:"remove",text:y(n,void 0,void 0,i.undefinedBehavior)}),s.push({level:o+1,type:"equal",text:""}),l.push({level:o+1,type:"equal",text:""}),l.push({level:o+1,type:"add",text:y(r,void 0,void 0,i.undefinedBehavior)}));e.shift(),t.shift()}else if(e.length){const t=y(n,void 0,!0,i.undefinedBehavior).split("\n");for(let e=0;e<t.length;e++)s.push({level:o+1+(t[e].match(/^\s+/)?.[0]?.length||0),type:"remove",text:t[e].replace(/^\s+/,"").replace(/,$/g,"")}),l.push({level:o+1,type:"equal",text:""});e.shift()}else if(t.length){const e=y(r,void 0,!0,i.undefinedBehavior).split("\n");for(let t=0;t<e.length;t++)s.push({level:o+1,type:"equal",text:""}),l.push({level:o+1+(e[t].match(/^\s+/)?.[0]?.length||0),type:"add",text:e[t].replace(/^\s+/,"").replace(/,$/g,"")});t.shift()}}return qr(s,l,o),[s,l]},Rr=(e,t)=>{if(!e||"object"!=typeof e)return e;if(Array.isArray(e)){const n=[...e];return n.sort(((e,n)=>m(e,n,{ignoreCase:t?.ignoreCase}))),n.map((e=>Rr(e,t)))}const n={...e};for(const e in n)n[e]=Rr(n[e],t);return n};var Lr=function(e){return e.stringify="stringify",e.ignore="ignore",e.throw="throw",e}({});const zr={level:0,type:"equal",text:""},Tr={level:0,type:"equal",text:"{"},Pr={level:0,type:"equal",text:"}"};let Wr=class{detectCircular(e){if(this.options.detectCircular&&d(e))throw new Error(`Circular reference detected in object (with keys ${Object.keys(e).map((e=>`"${e}"`)).join(", ")})`)}sortResultLines(e,t){for(let n=0;n<e.length;n++){let n=!1;for(let r=1;r<e.length;r++)if("remove"===e[r].type&&"equal"===e[r-1].type&&"equal"===t[r].type&&"add"===t[r-1].type){const o=e[r-1];e[r-1]=e[r],e[r]=o;const i=t[r-1];t[r-1]=t[r],t[r]=i,n=!0}if(!n)break}}calculateLineNumbers(e){let t=0;for(const n of e)n.text&&(n.lineNumber=++t)}calculateCommas(e){const t=Array(e.length).fill(0);for(let n=e.length-1;n>0;n--)e[n].text?t[n-1]=n:t[n-1]=t[n];for(let n=0;n<e.length;n++)!e[n].text.endsWith("{")&&!e[n].text.endsWith("[")&&e[n].text&&t[n]&&e[n].level<=e[t[n]].level&&(e[n].comma=!0)}diff(e,t){this.detectCircular(e),this.detectCircular(t),"unorder-normal"!==this.options.arrayDiffMethod&&"unorder-lcs"!==this.options.arrayDiffMethod||(e=Rr(e,this.options),t=Rr(t,this.options)),"ignore"===this.options.undefinedBehavior&&(e=f(e)??null,t=f(t)??null);let n=[],r=[];const o=b(e);if(o!==b(t)){n=p(e,void 0,1,this.options.maxDepth,this.options.undefinedBehavior).split("\n").map((e=>({level:e.match(/^\s+/)?.[0]?.length||0,type:"remove",text:e.replace(/^\s+/,"").replace(/,$/g,""),comma:e.endsWith(",")})));r=p(t,void 0,1,this.options.maxDepth,this.options.undefinedBehavior).split("\n").map((e=>({level:e.match(/^\s+/)?.[0]?.length||0,type:"add",text:e.replace(/^\s+/,"").replace(/,$/g,""),comma:e.endsWith(",")})));const o=n.length,i=r.length;n=h(n,Array(i).fill(0).map((()=>({...zr})))),r=h(r,Array(o).fill(0).map((()=>({...zr}))),!0)}else"object"===o?([n,r]=j(e,t,1,this.options,this.arrayDiffFunc),n.unshift({...Tr}),n.push({...Pr}),r.unshift({...Tr}),r.push({...Pr})):"array"===o?[n,r]=this.arrayDiffFunc(e,t,"","",0,this.options):e!==t?this.options.ignoreCase?"string"==typeof e&&"string"==typeof t&&e.toLowerCase()===t.toLowerCase()&&(n=[{level:0,type:"equal",text:e}],r=[{level:0,type:"equal",text:t}]):this.options.showModifications?(n=[{level:0,type:"modify",text:p(e,void 0,void 0,this.options.maxDepth,this.options.undefinedBehavior)}],r=[{level:0,type:"modify",text:p(t,void 0,void 0,this.options.maxDepth,this.options.undefinedBehavior)}]):(n=[{level:0,type:"remove",text:p(e,void 0,void 0,this.options.maxDepth,this.options.undefinedBehavior)},{...zr}],r=[{...zr},{level:0,type:"add",text:p(t,void 0,void 0,this.options.maxDepth,this.options.undefinedBehavior)}]):(n=[{level:0,type:"equal",text:p(e,void 0,void 0,this.options.maxDepth,this.options.undefinedBehavior)}],r=[{level:0,type:"equal",text:p(t,void 0,void 0,this.options.maxDepth,this.options.undefinedBehavior)}]);return this.sortResultLines(n,r),this.calculateLineNumbers(n),this.calculateLineNumbers(r),this.calculateCommas(n),this.calculateCommas(r),[n,r]}constructor({detectCircular:e=!0,maxDepth:t=1/0,showModifications:n=!0,arrayDiffMethod:r="normal",ignoreCase:o=!1,ignoreCaseForKey:i=!1,recursiveEqual:s=!1,preserveKeyOrder:l,compareKey:a,undefinedBehavior:c="stringify"}={}){this.options={detectCircular:e,maxDepth:t,showModifications:n,arrayDiffMethod:r,ignoreCase:o,ignoreCaseForKey:i,recursiveEqual:s,preserveKeyOrder:l,compareKey:a,undefinedBehavior:c},this.arrayDiffFunc="compare-key"===r?Dr:"lcs"===r||"unorder-lcs"===r?Nr:Br}};const Fr=e=>"hasLinesBefore"in e||"hasLinesAfter"in e,Hr=(e,t,n)=>Fr(e)?n:t*(e.end-e.start+1),Ur=(e,t)=>{const n=[];let r,o;if(e.length&&t.length)for(e=[...e],t=[...t],r={...e.shift()},o={...t.shift()};;){if(r.start===o.start){const e=Math.min(r.end,o.end);n.push({...r,...o,end:e}),r.start=o.start=e}else if(r.start<o.start){const e=Math.min(r.end,o.start);n.push({...o,...r,end:e}),r.start=e}else{const e=Math.min(r.start,o.end);n.push({...r,...o,end:e}),o.start=e}if(!e.length||!t.length)break;r.start===r.end&&(r={...e.shift()}),o.start===o.end&&(o={...t.shift()})}return e.length||n.push(...t.map((e=>({...e,token:r.token||"plain"})))),t.length||n.push(...e),n};var Kr={};Object.defineProperty(Kr,"__esModule",{value:!0}),Kr.applyPatch=Kr.calcPatch=Zr=Kr.lcs=Kr.diff=Kr.diff_core=void 0;let Vr=class{[Symbol.iterator](){return this}next(){const{state:e,result:t}=this;if(this.c>1)return t.done=!0,t.value=void 0,t;const n=function(e,t){const{b:n,eq:r,stack_base:o}=e;let{i:i,N:s,j:l,M:a,Z:c,stack_top:u}=e;for(;;)switch(t){case 0:e:for(;s>0&&a>0;){n.fill(0,0,2*c);const e=s-a,t=s+a,f=1&t,h=i+s-1,d=l+a-1,p=(t+f)/2;let v;t:for(let t=0;t<=p;t++){const p=2*Math.max(0,t-a)-t,y=t-2*Math.max(0,t-s);for(let h=p;h<=y;h+=2){const d=n[h-1-c*Math.floor((h-1)/c)],p=n[h+1-c*Math.floor((h+1)/c)],y=h===-t||h!==t&&d<p?p:d+1,g=y-h;let m=y,b=g;for(;m<s&&b<a&&r(i+m,l+b);)m++,b++;if(n[h-c*Math.floor(h/c)]=m,1===f&&(v=e-h)>=1-t&&v<t&&m+n[c+v-c*Math.floor(v/c)]>=s){if(t>1||m!==y){o[u++]=i+m,o[u++]=s-m,o[u++]=l+b,o[u++]=a-b,s=y,a=g,c=2*(Math.min(s,a)+1);continue e}break t}}for(let g=p;g<=y;g+=2){const p=n[c+g-1-c*Math.floor((g-1)/c)],y=n[c+g+1-c*Math.floor((g+1)/c)],m=g===-t||g!==t&&p<y?y:p+1,b=m-g;let x=m,w=b;for(;x<s&&w<a&&r(h-x,d-w);)x++,w++;if(n[c+g-c*Math.floor(g/c)]=x,0===f&&(v=e-g)>=-t&&v<=t&&x+n[v-c*Math.floor(v/c)]>=s){if(t>0||x!==m){o[u++]=i+s-m,o[u++]=m,o[u++]=l+a-b,o[u++]=b,s-=x,a-=w,c=2*(Math.min(s,a)+1);continue e}break t}}}if(s!==a){a>s?(i+=s,l+=s,a-=s,s=0):(i+=a,l+=a,s-=a,a=0);break}}if(s+a!==0)if(e.pxe===i||e.pye===l)e.pxe=i+s,e.pye=l+a;else{const t=e.pxs;if(e.oxs=e.pxs,e.oxe=e.pxe,e.oys=e.pys,e.oye=e.pye,e.pxs=i,e.pxe=i+s,e.pys=l,e.pye=l+a,t>=0)return e.i=i,e.N=s,e.j=l,e.M=a,e.Z=c,e.stack_top=u,1}case 1:if(0===u)return 2;a=o[--u],l=o[--u],s=o[--u],i=o[--u],c=2*(Math.min(s,a)+1),t=0}}(e,this.c);return this.c=n,1===n?(t.value=[e.oxs,e.oxe,e.oys,e.oye],t):e.pxs>=0?(t.value=[e.pxs,e.pxe,e.pys,e.pye],t):(t.done=!0,t.value=void 0,t)}constructor(e){this.state=e,this.c=0,this.result={value:null,done:!1}}};function Gr(e,t,n,r,o){const i=2*(Math.min(t,r)+1),s=t+r,l=new(s<256?Uint8Array:s<65536?Uint16Array:Uint32Array)(2*i);return new Vr({i:e,N:t,j:n,M:r,Z:i,b:l,eq:o,pxs:-1,pxe:-1,pys:-1,pye:-1,oxs:-1,oxe:-1,oys:-1,oye:-1,stack_top:0,stack_base:[]})}function Jr(e,t){let[n,r,o]=[0,e.length,t.length];for(;n<r&&n<o&&e[n]===t[n];)n++;if(n===r&&n===o)return[][Symbol.iterator]();for(;e[--r]===t[--o]&&r>n&&o>n;);return Gr(n,r+1-n,n,o+1-n,((n,r)=>e[n]===t[r]))}Kr.diff_core=Gr,Kr.diff=Jr;let Yr=class{[Symbol.iterator](){return this}next(){const e=this.diff.next();if(e.done){const{i:t,j:n,N:r}=this;return t<r&&(e.done=!1,e.value=[t,n,r-t],this.i=r),e}const t=e.value,n=t[0],r=t[1],o=t[3],{i:i,j:s}=this;return i!==n&&(t.length--,t[0]=i,t[1]=s,t[2]=n-i),this.i=r,this.j=o,e}constructor(e,t){this.diff=e,this.N=t,this.i=0,this.j=0}};var Zr=Kr.lcs=function(e,t){return new Yr(Jr(e,t),e.length)};Kr.calcPatch=function*(e,t){const n=ArrayBuffer.isView(e)?Uint8Array.prototype.subarray:e.slice;for(const r of Jr(e,t))r[2]=n.call(t,r[2],r[3]),yield r},Kr.applyPatch=function*(e,t){let n=0;const r=ArrayBuffer.isView(e)?Uint8Array.prototype.subarray:e.slice;for(const[o,i,s]of t)n<o&&(yield r.call(e,n,o)),s.length>0&&(yield s),n=i;n<e.length&&(yield r.call(e,n))};const Qr=(e,t)=>{const n=[];let r=0;for(const o of e)n.push(r),r+=o.length+t;return n.push(r-t),n},Xr=e=>e.filter((e=>e.end>e.start)),eo=(e,t,n)=>{if(!e)return[{token:"plain",start:n,end:t.length+n}];if("undefined"===t||"Infinity"===t||"-Infinity"===t||"NaN"===t||/^\d+n$/i.test(t)||t.startsWith("Symbol(")||t.startsWith("function")||t.startsWith("("))return[{token:"invalid",start:n,end:t.length+n}];if(!Number.isNaN(Number(t)))return[{token:"number",start:n,end:t.length+n}];if("true"===t||"false"===t)return[{token:"boolean",start:n,end:t.length+n}];if("null"===t)return[{token:"null",start:n,end:t.length+n}];if(t.startsWith('"')){if(t.endsWith(": [")||t.endsWith(": {"))return[{token:"key",start:n,end:t.length-3+n},{token:"punctuation",start:t.length-3,end:t.length-2+n},{token:"plain",start:t.length-2,end:t.length-1+n},{token:"punctuation",start:t.length-1,end:t.length+n}];let r=1;for(;r<t.length&&'"'!==t[r];)"\\"===t[r]&&++r,++r;return r===t.length-1?[{token:"string",start:n,end:t.length+n}]:[{token:"key",start:n,end:r+1+n},{token:"punctuation",start:r+1,end:r+2+n},{token:"plain",start:r+2,end:r+3+n},...eo(e,t.substring(r+3),n+r+3)]}return"{"===t||"}"===t||"["===t||"]"===t?[{token:"punctuation",start:n,end:t.length+n}]:[{token:"plain",start:n,end:t.length+n}]},to={threshold:8,margin:3},no=(e,t,n,r)=>{if(!n||r)return[{start:0,end:e.length,isEqual:!1}];const o=[];for(let n=0;n<e.length;n++)"equal"===e[n].type&&"equal"===t[n].type?o.length&&o[o.length-1].isEqual?o[o.length-1].end++:o.push({start:n,end:n+1,isEqual:!0}):o.length&&!o[o.length-1].isEqual?o[o.length-1].end++:o.push({start:n,end:n+1,isEqual:!1});const i=!0===n?to:{...to,...n},{threshold:s,margin:l}=i;s<2*l+1&&console.warn(`Threshold (${s}) is no more than 2 margins + 1 "expand" line (${l} * 2 + 1), it's not necessary to hide unchanged areas which have less than ${2*l+1} lines.`);const a=[];for(let t=0;t<o.length;t++){const n=o[t];!n.isEqual||n.end-n.start<s||n.end-n.start<=2*l+1?a.push(n):t?t===o.length-1?(a.push({start:n.start,end:n.start+l,isEqual:!0}),a.push({hasLinesBefore:!1,hasLinesAfter:!0,start:n.start+l,end:e.length,isEqual:!0})):(a.push({start:n.start,end:n.start+l,isEqual:!0}),a.push({hasLinesBefore:!0,hasLinesAfter:!0,start:n.start+l,end:n.end-l,isEqual:!0}),a.push({start:n.end-l,end:n.end,isEqual:!0})):(a.push({hasLinesBefore:!0,hasLinesAfter:!1,start:0,end:n.end-l,isEqual:!0}),a.push({start:n.end-l,end:n.end,isEqual:!0}))}return a},ro={noChangeDetected:"No change detected",showLinesBefore:"β‘ Show %d lines before",showLinesAfter:"β£ Show %d lines after",showAll:"β₯ Show all unchanged lines"},oo=e=>{const[t,r]=e.diff,o=n.useMemo((()=>t.length===r.length&&t.every((e=>"equal"===e.type))&&r.every((e=>"equal"===e.type))),[t,r]),i={...ro,...e.texts},s=e.lineNumbers?`calc(${String(t.length).length}ch + 16px)`:0,l=e.indent??2,a="tab"===l?"\t":" ",c="tab"===l?1:l,u={mode:e.inlineDiffOptions?.mode||"char",wordSeparator:e.inlineDiffOptions?.wordSeparator||""},f=e.hideUnchangedLines??!1,{scrollContainer:h="body",itemHeight:d=18,expandLineHeight:p=26}=e.virtual&&!0!==e.virtual?e.virtual:{},v="body"===h?document.body:document.querySelector(h),y=n.useRef(t),g=n.useRef(r),m=n.useRef(no(t,r,f,o)),b=n.useRef([]),x=n.useRef(0),w=n.useRef(null),[,j]=n.useState({}),_=()=>{if(b.current=[],e.virtual){let e=0;for(const t of m.current)Fr(t)?(b.current.push(e),e+=p):(b.current.push(e),e+=d*(t.end-t.start));x.current=m.current.reduce(((e,t)=>Fr(t)?e+p:e+(t.end-t.start)*d),0)}j({})};n.useEffect((()=>{y.current=t,g.current=r,m.current=no(t,r,f,o),_()}),[f,t,r]),n.useEffect((()=>{if(!e.virtual||!v)return;const t=()=>j({});return v.addEventListener("scroll",t),()=>{v.removeEventListener("scroll",t)}}),[e.virtual,v]);const S=e=>t=>{const n=[...m.current],r=n[e];n[e]={...r,end:Math.max(r.end-t,r.start)},e+1<m.current.length-1&&(n[e+1]={...n[e+1],start:Math.max(r.end-t,r.start)}),m.current=n,_()},E=e=>t=>{const n=[...m.current],r=n[e];n[e]={...r,start:Math.min(r.start+t,r.end)},e>1&&(n[e-1]={...n[e-1],end:Math.min(r.start+t,r.end)}),m.current=n,_()},k=e=>()=>{const t=[...m.current],n=t[e];t[e]={...n,start:n.start,end:n.start},e+1<m.current.length-1?t[e+1]={...t[e+1],start:n.start}:t[e-1]={...t[e-1],end:n.end},m.current=t,_()},A=(e,t=[],r=!1,o=!1)=>n.createElement(n.Fragment,null,t.map(((t,r)=>{const o=e.slice(t.start,t.end);if(!t.type&&!t.token)return o;const i=[t.type?`inline-diff-${t.type}`:"",t.token?`token ${t.token}`:""].filter(Boolean).join(" ");return n.createElement("span",{key:`${r}-${t.type}-${o}`,className:i},o)})),r&&(o?n.createElement("span",{className:"token punctuation"},","):",")),M=(t,r)=>{const o=y.current[t],i=g.current[t],[s,l]=e.highlightInlineDiff&&"modify"===o.type&&"modify"===i.type?((e,t,n)=>{let r=[],o=[],i=0,s=0;if("word"===n.mode){const l=n.wordSeparator||" ",a=e.split(l),c=t.split(l),u=[...Zr(a,c)],f=l.length,h=Qr(a,f),d=Qr(c,f);for(const[e,t,n]of u)e>i&&r.push({type:"remove",start:h[i],end:h[e]}),t>s&&o.push({type:"add",start:d[s],end:d[t]}),i=e+n,s=t+n,r.push({start:h[e],end:h[i]}),o.push({start:d[t],end:d[s]});return e.length>i&&r.push({type:"remove",start:h[i],end:e.length}),t.length>s&&o.push({type:"add",start:d[s],end:t.length}),r=Xr(r),o=Xr(o),[r,o]}const l=Zr(e,t);for(const[e,t,n]of l)e>i&&r.push({type:"remove",start:i,end:e}),t>s&&o.push({type:"add",start:s,end:t}),i=e+n,s=t+n,r.push({start:e,end:i}),o.push({start:t,end:s});return e.length>i&&r.push({type:"remove",start:i,end:e.length}),t.length>s&&o.push({type:"add",start:s,end:t.length}),r=Xr(r),o=Xr(o),[r,o]})(o.text,i.text,u):[[],[]],f=eo(r,o.text,0),h=eo(r,i.text,0),d=Ur(f,s),p=Ur(h,l),v="equal"!==o.type?e.bgColour?.[o.type]??"":"",m="equal"!==i.type?e.bgColour?.[i.type]??"":"";return n.createElement("tr",{key:t},e.lineNumbers&&n.createElement("td",{className:`line-${o.type} line-number`,style:{backgroundColor:v}},o.lineNumber),n.createElement("td",{className:`line-${o.type}`,style:{backgroundColor:v}},n.createElement("pre",null,o.text&&a.repeat(o.level*c),A(o.text,d,o.comma,r))),e.lineNumbers&&n.createElement("td",{className:`line-${i.type} line-number`,style:{backgroundColor:m}},i.lineNumber),n.createElement("td",{className:`line-${i.type}`,style:{backgroundColor:m}},n.createElement("pre",null,i.text&&a.repeat(i.level*c),A(i.text,p,i.comma,r))))},O=(e,t,r,o)=>n.createElement(n.Fragment,null,e&&n.createElement("button",{onClick:()=>S(o)(r)},i.showLinesBefore.replaceAll("%d",String(r))),n.createElement("button",{onClick:()=>k(o)()},i.showAll),t&&n.createElement("button",{onClick:()=>E(o)(r)},i.showLinesAfter.replaceAll("%d",String(r)))),q=(e,t,r,o,i)=>{let{start:s,end:l}=e;if(s=Math.max(s,r),l=Math.min(l,o),s===l)return null;if(!Fr(e))return Array(l-s).fill(0).map(((e,t)=>M(s+t,i)));const{hasLinesBefore:a,hasLinesAfter:c}=e,u="boolean"==typeof f?20:f.expandMoreLinesLimit||20;return[n.createElement("tr",{key:`expand-line-${t}`,className:"expand-line"},n.createElement("td",{colSpan:4,className:`${a?"has-lines-before":""} ${c?"has-lines-after":""}`},"boolean"!=typeof f&&f.expandLineRenderer?f.expandLineRenderer({hasLinesBefore:a,hasLinesAfter:c,onExpandBefore:S(t),onExpandAfter:E(t),onExpandAll:k(t)}):O(a,c,u,t)))]},I=["json-diff-viewer",e.virtual&&"json-diff-viewer-virtual",e.syntaxHighlight&&`json-diff-viewer-theme-${e.syntaxHighlight.theme||"monokai"}`,e.className].filter(Boolean).join(" "),N=!!e.syntaxHighlight;return n.createElement("table",{className:I,style:e.style},n.createElement("colgroup",{className:"measure-line"},e.lineNumbers&&n.createElement("col",{style:{width:s}}),n.createElement("col",null),e.lineNumbers&&n.createElement("col",{style:{width:s}}),n.createElement("col",null)),n.createElement("tbody",{ref:w},(t=>{if(o&&f)return n.createElement("tr",{key:"message-line",className:"message-line"},n.createElement("td",{colSpan:4},i.noChangeDetected));if(!e.virtual)return m.current.map(((e,n)=>q(e,n,0,y.current.length,t)));const r=v?.clientHeight??0,s=v?.scrollTop??0,l=s+r;let a=w.current,c=a?.offsetTop??0;for(;a?.offsetParent&&a?.offsetParent!==v;)a=a.offsetParent,c+=a.offsetTop;if(c>l||c+x.current<s)return n.createElement("tr",null,n.createElement("td",{colSpan:4,style:{height:`${x.current}px`}}));const u=s-c,h=l-c,[g,j,_,S]=((e,t,n,r,o,i)=>{if(!t.length)return[0,0,0,0];let s=0,l=0,a=0,c=0,u=0,f=e.length-1;for(;;){const r=Math.floor((u+f)/2);if(t[r]+Hr(e[r],o,i)<=n?u=r+1:f=r,u===f){s=u;break}}const h=e[s];for(a=Fr(h)?h.start:h.start+Math.floor((n-t[s])/o),u=0,f=e.length-1;;){const e=Math.floor((u+f+1)/2);if(t[e]>=r?f=e-1:u=e,u===f){l=u;break}}const d=e[l];return c=Fr(d)?d.end:d.start+Math.ceil((r-t[l])/o),[s,a,l,c]})(m.current,b.current,u,h,d,p),[E,k]=((e,t,n,r,o,i,s,l,a)=>{if(!t.length)return[0,0];let c=0,u=0;const f=e[n];c=Fr(f)?t[n]:t[n]+(r-f.start)*s;const h=e[o];return u=Fr(h)?a-t[o]-l:a-t[o]-(i-h.start)*s,[c,u]})(m.current,b.current,g,j,_,S,d,p,x.current),A=m.current.slice(g,_+1);return A.length?n.createElement(n.Fragment,null,n.createElement("tr",null,n.createElement("td",{colSpan:4,style:{height:E,padding:0}})),A.map(((e,n)=>q(e,n,j,S,t))),n.createElement("tr",null,n.createElement("td",{colSpan:4,style:{height:k,padding:0}}))):n.createElement("tr",null,n.createElement("td",{colSpan:4,style:{height:`${x.current}px`}}))})(N)))};function io(){return io=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},io.apply(null,arguments)}function so(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function lo(e,t){return lo=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},lo(e,t)}oo.displayName="Viewer";var ao=Number.isNaN||function(e){return"number"==typeof e&&e!=e};function co(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(r=e[n],o=t[n],!(r===o||ao(r)&&ao(o)))return!1;var r,o;return!0}function uo(e,t){var n;void 0===t&&(t=co);var r,o=[],i=!1;return function(){for(var s=[],l=0;l<arguments.length;l++)s[l]=arguments[l];return i&&n===this&&t(s,o)||(r=e.apply(this,s),i=!0,n=this,o=s),r}}var fo="object"==typeof performance&&"function"==typeof performance.now?function(){return performance.now()}:function(){return Date.now()};function ho(e){cancelAnimationFrame(e.id)}var po=-1;function vo(e){if(void 0===e&&(e=!1),-1===po||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",document.body.appendChild(t),po=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return po}var yo=null;function go(e){if(void 0===e&&(e=!1),null===yo||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",n.direction="rtl";var r=document.createElement("div"),o=r.style;return o.width="100px",o.height="100px",t.appendChild(r),document.body.appendChild(t),t.scrollLeft>0?yo="positive-descending":(t.scrollLeft=1,yo=0===t.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(t),yo}return yo}process.env.NODE_ENV;var mo=function(e,t){return e},bo=null,xo=null;function wo(e){var t,n=e.getItemOffset,i=e.getEstimatedTotalSize,s=e.getItemSize,l=e.getOffsetForIndexAndAlignment,a=e.getStartIndexForOffset,c=e.getStopIndexForStartIndex,u=e.initInstanceProps,f=e.shouldResetStyleCacheOnItemSizeChange,h=e.validateProps;return t=function(e){var t,o;function d(t){var r;return(r=e.call(this,t)||this)._instanceProps=u(r.props,so(r)),r._outerRef=void 0,r._resetIsScrollingTimeoutId=null,r.state={instance:so(r),isScrolling:!1,scrollDirection:"forward",scrollOffset:"number"==typeof r.props.initialScrollOffset?r.props.initialScrollOffset:0,scrollUpdateWasRequested:!1},r._callOnItemsRendered=void 0,r._callOnItemsRendered=uo((function(e,t,n,o){return r.props.onItemsRendered({overscanStartIndex:e,overscanStopIndex:t,visibleStartIndex:n,visibleStopIndex:o})})),r._callOnScroll=void 0,r._callOnScroll=uo((function(e,t,n){return r.props.onScroll({scrollDirection:e,scrollOffset:t,scrollUpdateWasRequested:n})})),r._getItemStyle=void 0,r._getItemStyle=function(e){var t,o=r.props,i=o.direction,l=o.itemSize,a=o.layout,c=r._getItemStyleCache(f&&l,f&&a,f&&i);if(c.hasOwnProperty(e))t=c[e];else{var u=n(r.props,e,r._instanceProps),h=s(r.props,e,r._instanceProps),d="horizontal"===i||"horizontal"===a,p="rtl"===i,v=d?u:0;c[e]=t={position:"absolute",left:p?void 0:v,right:p?v:void 0,top:d?0:u,height:d?"100%":h,width:d?h:"100%"}}return t},r._getItemStyleCache=void 0,r._getItemStyleCache=uo((function(e,t,n){return{}})),r._onScrollHorizontal=function(e){var t=e.currentTarget,n=t.clientWidth,o=t.scrollLeft,i=t.scrollWidth;r.setState((function(e){if(e.scrollOffset===o)return null;var t=r.props.direction,s=o;if("rtl"===t)switch(go()){case"negative":s=-o;break;case"positive-descending":s=i-n-o}return s=Math.max(0,Math.min(s,i-n)),{isScrolling:!0,scrollDirection:e.scrollOffset<s?"forward":"backward",scrollOffset:s,scrollUpdateWasRequested:!1}}),r._resetIsScrollingDebounced)},r._onScrollVertical=function(e){var t=e.currentTarget,n=t.clientHeight,o=t.scrollHeight,i=t.scrollTop;r.setState((function(e){if(e.scrollOffset===i)return null;var t=Math.max(0,Math.min(i,o-n));return{isScrolling:!0,scrollDirection:e.scrollOffset<t?"forward":"backward",scrollOffset:t,scrollUpdateWasRequested:!1}}),r._resetIsScrollingDebounced)},r._outerRefSetter=function(e){var t=r.props.outerRef;r._outerRef=e,"function"==typeof t?t(e):null!=t&&"object"==typeof t&&t.hasOwnProperty("current")&&(t.current=e)},r._resetIsScrollingDebounced=function(){var e,t,n,o;null!==r._resetIsScrollingTimeoutId&&ho(r._resetIsScrollingTimeoutId),r._resetIsScrollingTimeoutId=(e=r._resetIsScrolling,t=150,n=fo(),o={id:requestAnimationFrame((function r(){fo()-n>=t?e.call(null):o.id=requestAnimationFrame(r)}))})},r._resetIsScrolling=function(){r._resetIsScrollingTimeoutId=null,r.setState({isScrolling:!1},(function(){r._getItemStyleCache(-1,null)}))},r}o=e,(t=d).prototype=Object.create(o.prototype),t.prototype.constructor=t,lo(t,o),d.getDerivedStateFromProps=function(e,t){return jo(e,t),h(e),null};var p=d.prototype;return p.scrollTo=function(e){e=Math.max(0,e),this.setState((function(t){return t.scrollOffset===e?null:{scrollDirection:t.scrollOffset<e?"forward":"backward",scrollOffset:e,scrollUpdateWasRequested:!0}}),this._resetIsScrollingDebounced)},p.scrollToItem=function(e,t){void 0===t&&(t="auto");var n=this.props,r=n.itemCount,o=n.layout,i=this.state.scrollOffset;e=Math.max(0,Math.min(e,r-1));var s=0;if(this._outerRef){var a=this._outerRef;s="vertical"===o?a.scrollWidth>a.clientWidth?vo():0:a.scrollHeight>a.clientHeight?vo():0}this.scrollTo(l(this.props,e,t,i,this._instanceProps,s))},p.componentDidMount=function(){var e=this.props,t=e.direction,n=e.initialScrollOffset,r=e.layout;if("number"==typeof n&&null!=this._outerRef){var o=this._outerRef;"horizontal"===t||"horizontal"===r?o.scrollLeft=n:o.scrollTop=n}this._callPropsCallbacks()},p.componentDidUpdate=function(){var e=this.props,t=e.direction,n=e.layout,r=this.state,o=r.scrollOffset;if(r.scrollUpdateWasRequested&&null!=this._outerRef){var i=this._outerRef;if("horizontal"===t||"horizontal"===n)if("rtl"===t)switch(go()){case"negative":i.scrollLeft=-o;break;case"positive-ascending":i.scrollLeft=o;break;default:var s=i.clientWidth,l=i.scrollWidth;i.scrollLeft=l-s-o}else i.scrollLeft=o;else i.scrollTop=o}this._callPropsCallbacks()},p.componentWillUnmount=function(){null!==this._resetIsScrollingTimeoutId&&ho(this._resetIsScrollingTimeoutId)},p.render=function(){var e=this.props,t=e.children,n=e.className,o=e.direction,s=e.height,l=e.innerRef,a=e.innerElementType,c=e.innerTagName,u=e.itemCount,f=e.itemData,h=e.itemKey,d=void 0===h?mo:h,p=e.layout,v=e.outerElementType,y=e.outerTagName,g=e.style,m=e.useIsScrolling,b=e.width,x=this.state.isScrolling,w="horizontal"===o||"horizontal"===p,j=w?this._onScrollHorizontal:this._onScrollVertical,_=this._getRangeToRender(),S=_[0],E=_[1],k=[];if(u>0)for(var A=S;A<=E;A++)k.push(r(t,{data:f,key:d(A,f),index:A,isScrolling:m?x:void 0,style:this._getItemStyle(A)}));var M=i(this.props,this._instanceProps);return r(v||y||"div",{className:n,onScroll:j,ref:this._outerRefSetter,style:io({position:"relative",height:s,width:b,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:o},g)},r(a||c||"div",{children:k,ref:l,style:{height:w?"100%":M,pointerEvents:x?"none":void 0,width:w?M:"100%"}}))},p._callPropsCallbacks=function(){if("function"==typeof this.props.onItemsRendered&&this.props.itemCount>0){var e=this._getRangeToRender(),t=e[0],n=e[1],r=e[2],o=e[3];this._callOnItemsRendered(t,n,r,o)}if("function"==typeof this.props.onScroll){var i=this.state,s=i.scrollDirection,l=i.scrollOffset,a=i.scrollUpdateWasRequested;this._callOnScroll(s,l,a)}},p._getRangeToRender=function(){var e=this.props,t=e.itemCount,n=e.overscanCount,r=this.state,o=r.isScrolling,i=r.scrollDirection,s=r.scrollOffset;if(0===t)return[0,0,0,0];var l=a(this.props,s,this._instanceProps),u=c(this.props,l,s,this._instanceProps),f=o&&"backward"!==i?1:Math.max(1,n),h=o&&"forward"!==i?1:Math.max(1,n);return[Math.max(0,l-f),Math.max(0,Math.min(t-1,u+h)),l,u]},d}(o),t.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},t}"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&void 0!==window.WeakSet&&(bo=new WeakSet,xo=new WeakSet);var jo=function(e,t){var n=e.children,r=e.direction,o=e.height,i=e.layout,s=e.innerTagName,l=e.outerTagName,a=e.width,c=t.instance;if("production"!==process.env.NODE_ENV){null==s&&null==l||xo&&!xo.has(c)&&(xo.add(c),console.warn("The innerTagName and outerTagName props have been deprecated. Please use the innerElementType and outerElementType props instead."));var u="horizontal"===r||"horizontal"===i;switch(r){case"horizontal":case"vertical":bo&&!bo.has(c)&&(bo.add(c),console.warn('The direction prop should be either "ltr" (default) or "rtl". Please use the layout prop to specify "vertical" (default) or "horizontal" orientation.'));break;case"ltr":case"rtl":break;default:throw Error('An invalid "direction" prop has been specified. Value should be either "ltr" or "rtl". "'+r+'" was specified.')}switch(i){case"horizontal":case"vertical":break;default:throw Error('An invalid "layout" prop has been specified. Value should be either "horizontal" or "vertical". "'+i+'" was specified.')}if(null==n)throw Error('An invalid "children" prop has been specified. Value should be a React component. "'+(null===n?"null":typeof n)+'" was specified.');if(u&&"number"!=typeof a)throw Error('An invalid "width" prop has been specified. Horizontal lists must specify a number for width. "'+(null===a?"null":typeof a)+'" was specified.');if(!u&&"number"!=typeof o)throw Error('An invalid "height" prop has been specified. Vertical lists must specify a number for height. "'+(null===o?"null":typeof o)+'" was specified.')}},_o=function(e,t,n){var r=e.itemSize,o=n.itemMetadataMap,i=n.lastMeasuredIndex;if(t>i){var s=0;if(i>=0){var l=o[i];s=l.offset+l.size}for(var a=i+1;a<=t;a++){var c=r(a);o[a]={offset:s,size:c},s+=c}n.lastMeasuredIndex=t}return o[t]},So=function(e,t,n,r,o){for(;r<=n;){var i=r+Math.floor((n-r)/2),s=_o(e,i,t).offset;if(s===o)return i;s<o?r=i+1:s>o&&(n=i-1)}return r>0?r-1:0},Eo=function(e,t,n,r){for(var o=e.itemCount,i=1;n<o&&_o(e,n,t).offset<r;)n+=i,i*=2;return So(e,t,Math.min(n,o-1),Math.floor(n/2),r)},ko=function(e,t){var n=e.itemCount,r=t.itemMetadataMap,o=t.estimatedItemSize,i=t.lastMeasuredIndex,s=0;if(i>=n&&(i=n-1),i>=0){var l=r[i];s=l.offset+l.size}return s+(n-i-1)*o},Ao=wo({getItemOffset:function(e,t,n){return _o(e,t,n).offset},getItemSize:function(e,t,n){return n.itemMetadataMap[t].size},getEstimatedTotalSize:ko,getOffsetForIndexAndAlignment:function(e,t,n,r,o,i){var s=e.direction,l=e.height,a=e.layout,c=e.width,u="horizontal"===s||"horizontal"===a?c:l,f=_o(e,t,o),h=ko(e,o),d=Math.max(0,Math.min(h-u,f.offset)),p=Math.max(0,f.offset-u+f.size+i);switch("smart"===n&&(n=r>=p-u&&r<=d+u?"auto":"center"),n){case"start":return d;case"end":return p;case"center":return Math.round(p+(d-p)/2);default:return r>=p&&r<=d?r:r<p?p:d}},getStartIndexForOffset:function(e,t,n){return function(e,t,n){var r=t.itemMetadataMap,o=t.lastMeasuredIndex;return(o>0?r[o].offset:0)>=n?So(e,t,o,0,n):Eo(e,t,Math.max(0,o),n)}(e,n,t)},getStopIndexForStartIndex:function(e,t,n,r){for(var o=e.direction,i=e.height,s=e.itemCount,l=e.layout,a=e.width,c="horizontal"===o||"horizontal"===l?a:i,u=_o(e,t,r),f=n+c,h=u.offset+u.size,d=t;d<s-1&&h<f;)d++,h+=_o(e,d,r).size;return d},initInstanceProps:function(e,t){var n={itemMetadataMap:{},estimatedItemSize:e.estimatedItemSize||50,lastMeasuredIndex:-1};return t.resetAfterIndex=function(e,r){void 0===r&&(r=!0),n.lastMeasuredIndex=Math.min(n.lastMeasuredIndex,e-1),t._getItemStyleCache(-1),r&&t.forceUpdate()},n},shouldResetStyleCacheOnItemSizeChange:!1,validateProps:function(e){var t=e.itemSize;if("production"!==process.env.NODE_ENV&&"function"!=typeof t)throw Error('An invalid "itemSize" prop has been specified. Value should be a function. "'+(null===t?"null":typeof t)+'" was specified.')}});function Mo(){return e("svg",{width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:e("path",{d:"M15.7955 15.8111L21 21M18 10.5C18 14.6421 14.6421 18 10.5 18C6.35786 18 3 14.6421 3 10.5C3 6.35786 6.35786 3 10.5 3C14.6421 3 18 6.35786 18 10.5Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function Oo(e){const t=window.getComputedStyle(e),n=Number.parseFloat(t.lineHeight);let r=n;return Number.isNaN(n)&&(r=1.2*Number.parseFloat(t.fontSize)),Math.round(e.scrollHeight/r)}!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}(':root {\n --diff-row-height: 20px;\n}\n\n.virtual-json-diff-list-container {\n --sb-track-color: #232e33;\n --sb-thumb-color: #4560f8;\n --sb-size: 6px;\n}\n\n.diff-viewer-container {\n background-color: #282a36;\n font-size: 12px;\n text-align: left;\n padding-bottom: 12px;\n}\n\n.json-diff-viewer-virtual pre {\n overflow-x: auto;\n white-space: pre;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom {\n background: #282a36;\n color: #f8f8f2;\n width: 100%;\n font-family:\n -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif,\n "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr td {\n max-width: min-content;\n vertical-align: unset;\n padding: 0;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr td.line-number {\n color: #999;\n padding: 2px;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom table {\n table-layout: fixed;\n width: 100%;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr td:nth-child(1),\n.json-diff-viewer.json-diff-viewer-theme-custom tr td:nth-child(3) {\n width: 30px !important;\n min-width: 30px;\n max-width: 30px;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr td:nth-child(2),\n.json-diff-viewer.json-diff-viewer-theme-custom tr td:nth-child(4) {\n width: auto;\n max-width: 300px;\n overflow-wrap: anywhere;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr td pre {\n font-family:\n -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif,\n "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n overflow: hidden;\n margin: 0;\n padding-left: 4px;\n margin-right: 4px;\n font-size: 12px;\n min-width: 300px;\n line-height: var(--diff-row-height);\n white-space: pre-wrap;\n word-break: break-all;\n}\n\n/* ADD REMOVE MODIFY COLORS */\n.json-diff-viewer.json-diff-viewer-theme-custom tr .line-add {\n border-left: 1px solid #a5ff99;\n background: rgba(100, 182, 67, 0.08);\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr .line-remove {\n border-left: 1px solid #ffaa99;\n background: rgba(160, 128, 100, 0.08);\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr .line-modify {\n border-left: 1px solid #ecff99;\n background: rgba(182, 180, 67, 0.08);\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr .line-number {\n background: unset;\n padding: 0 4px;\n border-left: 0;\n border-bottom: none;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr.expand-line td {\n text-align: center;\n}\n\n/* EDITOR COLORS */\n.json-diff-viewer.json-diff-viewer-theme-custom tr td pre span.inline-diff-add {\n background: rgba(0, 0, 0, 0.08);\n text-decoration: underline;\n word-break: break-all;\n}\n.json-diff-viewer.json-diff-viewer-theme-custom tr td pre span.inline-diff-remove {\n background: rgba(0, 0, 0, 0.08);\n text-decoration: line-through;\n word-break: break-all;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr:hover {\n background: #53535f54;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr.expand-line button {\n color: #1e616d;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom .string {\n color: #e6db74;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom .number,\n.json-diff-viewer.json-diff-viewer-theme-custom .boolean,\n.json-diff-viewer.json-diff-viewer-theme-custom .null {\n color: #ae81ff;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom .key {\n color: #66d9ef;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom .invalid {\n background: #960050;\n color: #fff;\n}\n\n.diff-viewer-container button {\n border-radius: 4px;\n border: 1px solid transparent;\n font-size: 1em;\n font-weight: 500;\n font-family: inherit;\n color: white;\n background-color: #1a1a1a;\n cursor: pointer;\n transition: border-color 0.25s;\n}\n\n.diff-viewer-container button:hover {\n border-color: #649dffab;\n}\n\n.diff-viewer-container button:focus,\n.diff-viewer-container button:focus-visible {\n outline: 4px auto -webkit-focus-ring-color;\n}\n\n.collapsed-button {\n display: flex;\n background-color: #262626;\n justify-content: center;\n align-items: center;\n}\n\n.collapsed-button button {\n height: 20px;\n color: rgba(255, 255, 255, 0.7);\n padding: 0px 8px;\n line-height: 20px;\n display: flex;\n justify-content: center;\n align-items: center;\n background: #26262600;\n border-width: 1px;\n border-color: #434343;\n cursor: pointer;\n}\n\n.hide-all-button {\n text-align: right;\n margin-top: 10px;\n}\n\n.hide-all-button button {\n height: 28px;\n padding: 0 8px;\n line-height: 20px;\n background: #26262600;\n color: white;\n border-width: 1px;\n border-color: #434343;\n cursor: pointer;\n}\n\n/* HEADER */\n.json-diff-header {\n background: #2f323e;\n padding: 10px;\n border-bottom: 1px solid #353846;\n color: #ffffffe5;\n font-family:\n -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif,\n "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n}\n\n.json-diff-header .json-diff-title-container {\n width: 100%;\n display: flex;\n flex-direction: row;\n}\n\n.json-diff-header .json-diff-title-container div {\n flex: 0.495;\n}\n\n/* HEADER SEARCH */\n.json-diff-header .search-container {\n margin-bottom: 8px;\n width: 100%;\n}\n\n.json-diff-header .search-input-container {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.json-diff-header .search-input-container svg {\n width: 1em;\n height: 1em;\n}\n\n.json-diff-header .search-input-container input {\n border: 1px solid #434343;\n border-radius: 4px;\n padding: 6px;\n width: 100%;\n background: #2f323e;\n color: white;\n}\n\n.json-diff-header .search-results {\n margin-top: 3px;\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.json-diff-header .search-results button {\n height: 20px;\n padding: 0 8px;\n line-height: 20px;\n background: #26262600;\n border-width: 1px;\n border-color: #434343;\n cursor: pointer;\n color: white;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom.has-search tr td pre span.token.search-match {\n background-color: #ffeb3b;\n color: #000;\n padding: 0 2px;\n border-radius: 2px;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom .search-highlight {\n background-color: #ffeb3b;\n padding: 0 2px;\n border-radius: 2px;\n color: #000;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom .token .search-highlight {\n background-color: #ffeb3b !important;\n color: #000 !important;\n}\n\n/* WEBKIT SCROLLBAR */\n.json-diff-viewer-virtual pre::-webkit-scrollbar {\n display: none;\n}\n\n.virtual-json-diff-list-container::-webkit-scrollbar {\n width: var(--sb-size);\n}\n\n.virtual-json-diff-list-container::-webkit-scrollbar-track {\n background: var(--sb-track-color);\n border-radius: 3px;\n}\n\n.virtual-json-diff-list-container::-webkit-scrollbar-thumb {\n background: var(--sb-thumb-color);\n border-radius: 3px;\n}\n\n@supports not selector(::-webkit-scrollbar) {\n .virtual-json-diff-list-container {\n scrollbar-color: var(--sb-thumb-color) var(--sb-track-color);\n }\n}\n');const qo="json-diff-viewer-theme-custom";function Io(){if("undefined"==typeof document)return 20;try{const e=document.documentElement,t=getComputedStyle(e).getPropertyValue("--diff-row-height"),n=Number.parseInt(t,10);return Number.isNaN(n)?20:n}catch{return 20}}function No(e){return e&&"object"==typeof e&&"type"in e&&"collapsed"===e.type}function Co(e,t="json-diff-viewer-theme-custom"){if(!e){return void document.querySelectorAll(`.${t} span.token.search-match`).forEach((e=>e.classList.remove("search-match")))}const n=e.replaceAll("(","").replaceAll(")",""),r=new RegExp(n,"gi");document.querySelectorAll(`.${t} span.token`).forEach((e=>{const t=e.textContent||"";r.test(t)?e.classList.add("search-match"):e.classList.remove("search-match")}))}function Do(e,t,n){const[r,o]=i({term:t??"",results:[],currentIndex:0}),l=a(),u=s((t=>{o((e=>({...e,term:t}))),l.current&&clearTimeout(l.current),l.current=setTimeout((()=>{const n=function(e,t){if(!e)return[];const n=[],r=new RegExp(e,"gi");return t.forEach(((e,t)=>{"object"==typeof e&&"text"in e&&r.test(e.text)&&n.push(t)})),n}(t,e);o((e=>({...e,results:n,currentIndex:0})))}),300)}),[e]),f=s((e=>{if(0===r.results.length)return;const t="next"===e?(r.currentIndex+1)%r.results.length:(r.currentIndex-1+r.results.length)%r.results.length;o((e=>({...e,currentIndex:t})));const i=r.results[t];return n&&n(i),i}),[r,n]);return c((()=>{Co(r.term,qo);const e=new MutationObserver((()=>Co(r.term,qo))),t=document.querySelector(`.${qo}`);t&&e.observe(t,{childList:!0,subtree:!0});const n=document.querySelector(".virtual-json-diff-list-container");if(n){const t=()=>setTimeout((()=>Co(r.term,qo)),100);return n.addEventListener("scroll",t),()=>{e.disconnect(),n.removeEventListener("scroll",t)}}return()=>e.disconnect()}),[r.term]),c((()=>{void 0!==t&&u(t)}),[t,u]),{searchState:r,handleSearch:u,navigateMatch:f}}function $o(e){return"equal"===e.type&&""!==e.text}function Bo(e,t,n=3){if(!Array.isArray(e)||!Array.isArray(t))throw new TypeError("Both segments and diff must be arrays");const r=[];return e.forEach(((o,i)=>{if(o.isEqual){if(o.end-o.start<=2*n||o.isExpanded)for(let e=o.start;e<o.end;e++)r.push({...t[e],originalIndex:e});else{if(function(e,t,n){return 0===e||t[e-1].end<n.start&&t[e-1].isEqual}(i,e,o))for(let e=o.start;e<Math.min(o.start+n,o.end);e++)r.push({...t[e],originalIndex:e});o.end-(o.start+n)>n&&r.push({type:"collapsed",segmentIndex:i,originalIndex:r.length,level:0,text:""});for(let e=Math.max(o.end-n,o.start+n);e<o.end;e++)r.push({...t[e],originalIndex:e})}}else for(let e=o.start;e<o.end;e++)r.push({...t[e],originalIndex:e})})),r}const Ro="#363743";const Lo=({leftDiff:t,rightDiff:n,height:r,onScroll:o,miniMapWidth:i=20,currentScrollTop:l,searchResults:f=[],currentMatchIndex:h=-1})=>{const d=a(null),p=a(null),v=u((()=>Io()),[]),{totalLines:y,viewportHeight:g}=u((()=>{const e=r/v,o=Math.max(t.length,n.length)||e;return{totalLines:o,viewportHeight:r*(1/(o/e))}}),[r,t.length,n.length]),{handleMouseDown:m,isDragging:b}=function({height:e,totalLines:t,viewportHeight:n,ROW_HEIGHT:r,onScroll:o,containerRef:i}){const l=a(!1),u=s((e=>!Number.isNaN(e)&&Number.isFinite(e)),[]),f=s((o=>(o-n/2)/e*t*r),[e,t,n,r]),h=s((()=>{const n=t*r;return Math.max(0,n-e)}),[t,r,e]),d=s(((e,t)=>{const r=e.clientY-t.top,i=h();if(e.clientY+n/2>t.bottom){const e=t.bottom-t.top-n/2,r=f(e);u(r)&&o(Math.min(i,Math.max(0,r)))}else{const e=f(r);u(e)&&o(Math.min(i,Math.max(0,e)))}}),[f,h,u,o,n]),p=s((n=>{if(!l.current||!i.current)return;if(e<=0||t<=0)return;const r=i.current.getBoundingClientRect();d(n,r)}),[i,e,t,d]),v=s((()=>{l.current=!1,window.removeEventListener("mousemove",p),window.removeEventListener("mouseup",v)}),[p]),y=s((e=>{if(l.current=!0,window.addEventListener("mousemove",p),window.addEventListener("mouseup",v),!i.current)return;const t=i.current.getBoundingClientRect();d(e.nativeEvent,t)}),[p,v,i,d]);return c((()=>{const e=()=>{l.current=!1};return window.addEventListener("mouseup",e),()=>window.removeEventListener("mouseup",e)}),[]),{handleMouseDown:y,isDragging:l}}({height:r,totalLines:y,viewportHeight:g,ROW_HEIGHT:v,onScroll:o,containerRef:p}),{drawMinimap:x,drawScrollBox:w}=function({canvasRef:e,height:t,miniMapWidth:n,leftDiff:r,rightDiff:o,currentScrollTop:i,searchResults:l,currentMatchIndex:a,isDragging:u,totalLines:f,ROW_HEIGHT:h,viewportHeight:d}){const p=s(((e,t,n,r,o)=>{if("collapsed"===t.type)e.fillStyle=Ro;else switch(t.type){case"equal":e.fillStyle=Ro;break;case"add":e.fillStyle="#4CAF50";break;case"remove":e.fillStyle="#F44336";break;case"modify":e.fillStyle="#FFC107"}e.fillRect(r,n,o,h)}),[h]),v=s((e=>{const i=t/f;if(a>=0&&void 0!==l[a]){const t=l[a]*i,r=Math.max(1,i);e.fillStyle="#ff4500",e.fillRect(0,t,n,r)}r.forEach(((t,r)=>{p(e,t,r*i,0,n/2)})),o.forEach(((t,r)=>{p(e,t,r*i,n/2,n/2)})),l.forEach((t=>{const r=t*i,o=Math.max(1,i);e.fillStyle="#ffd700",e.fillRect(0,r,n,o)}))}),[t,f,a,l,r,o,n,p]),y=s(((e,r)=>{const o=i/(f*h)*t;v(e),e.fillStyle=r,e.fillRect(0,o,n,d)}),[f,h,i,t,v,n,d]),g=s((()=>{const t=e.current;if(!t)return;const n=t.getContext("2d");n&&(n.clearRect(0,0,t.width,t.height),u.current?y(n,"#7B7B7Bcc"):y(n,"#7B7B7B80"))}),[r,o,t,i,l,a,p,d]);return c((()=>{g()}),[g]),{drawScrollBox:y,drawMinimap:g}}({canvasRef:d,height:r,miniMapWidth:i,leftDiff:t,rightDiff:n,currentScrollTop:l,searchResults:f,currentMatchIndex:h,isDragging:b,totalLines:y,ROW_HEIGHT:v,viewportHeight:g});c((()=>{x()}),[x]);const j=s((e=>{if(!p.current)return;const t=p.current.getBoundingClientRect(),n=e.clientY-t.top,o=l/(y*v)*r,i=n>o&&n<o+g;x();const s=d.current;if(s){const e=s.getContext("2d");if(!e)return;i&&w(e,"#7B7B7Bcc")}}),[r,y,g,l,x]);return e("div",{ref:p,style:{width:i,height:r,position:"relative",cursor:"pointer"},onMouseDown:m,onMouseMove:j,onMouseLeave:()=>{x()},children:e("canvas",{ref:d,width:i,height:r,style:{width:"100%",height:"100%"}})})};function zo({index:t,style:n,data:r}){const{onExpand:o,searchTerm:i,inlineDiffOptions:s}=r,l=r.leftDiff[t],a=r.rightDiff[t];if(No(l))return e("div",{className:"collapsed-button",style:n,children:e("button",{onClick:()=>o(l.segmentIndex),className:"text-blue-500 underline",children:"Show Hidden Lines"})});const c={...l},u={...a};return e("div",{style:n,children:e(oo,{indent:4,className:`${qo} ${i?"has-search":""}`,lineNumbers:!0,diff:[[c],[u]],highlightInlineDiff:!0,inlineDiffOptions:{mode:"char",...s},syntaxHighlight:{theme:"monokai"}})})}const To=({oldValue:n,newValue:r,height:o,searchTerm:f,leftTitle:h,rightTitle:d,hideSearch:p,onSearchMatch:v,differOptions:y,className:g,miniMapWidth:m,inlineDiffOptions:b})=>{const x=a(null),[w,j]=i(0),[_,S]=i([]),E=u((()=>Io()),[]),k=u((()=>new Wr({detectCircular:!0,maxDepth:20,showModifications:!0,arrayDiffMethod:"lcs",preserveKeyOrder:"before",...y})),[y]),A=u((()=>n&&r?k.diff(n,r):[[],[]]),[n,r,k]),[M,O]=A,[q,I]=i([]),[N,C]=i([]),D=function(e){const[t,n]=i([]),r=s((()=>{const e=document.querySelectorAll(".json-diff-viewer pre"),t=[];for(let n=0;n<e.length;n+=2){const r=Oo(e[n]),o=Oo(e[n+1]);t.push(Math.max(r,o))}n(t)}),[]);return l((()=>{r()}),[e]),l((()=>(window.addEventListener("resize",r),()=>window.removeEventListener("resize",r))),[r]),t}(q);c((()=>{const e=function(e,t=3){if(!Array.isArray(e))throw new TypeError("Diff input must be an array");const n=[];let r=0;if(r<e.length&&$o(e[r])){let o=Math.min(r+t,e.length);for(;o<e.length&&$o(e[o]);)o++;n.push({start:r,end:o,isEqual:!0}),r=o}for(;r<e.length;)if($o(e[r])){let t=r;for(;t<e.length&&$o(e[t]);)t++;n.push({start:r,end:t,isEqual:!0}),r=t}else{const o=Math.max(0,r-t),i=Math.min(e.length,r+1+t);o<r&&(0===n.length||n[n.length-1].end<=o)&&n.push({start:o,end:r,isEqual:!0}),n.push({start:r,end:r+1,isEqual:!1}),r+1<i&&n.push({start:r+1,end:i,isEqual:!0}),r=i}return n}(M);S(e)}),[M]),c((()=>{const e=Bo(_,M),t=Bo(_,O);I(e),C(t)}),[_,M,O]),c((()=>{x.current?.resetAfterIndex(0)}),[q]);const{searchState:$,handleSearch:B,navigateMatch:R}=Do(q,f,(e=>{x.current?.scrollToItem(e,"center"),v?.(e)})),L=s((e=>{S((t=>{const n=[...t],r=n[e];if(!r||!r.isEqual)return t;const o={...r,isExpanded:!0,originalStart:r.start,originalEnd:r.end,start:r.start,end:r.end};return n[e]=o,n}))}),[]),z=s((()=>{S((e=>e.map((e=>e.isEqual&&e.isExpanded?{...e,isExpanded:!1,start:e.originalStart??e.start,end:e.originalEnd??e.end}:e))))}),[]);c((()=>{x.current?.resetAfterIndex(0,!0)}),[D]);const T=s((e=>No(q[e])?20:(D[e]??1)*E),[q,D]),P=u((()=>_.some((e=>e.isEqual&&e.isExpanded))),[_]),W=u((()=>({leftDiff:q,rightDiff:N,onExpand:L,searchTerm:$.term,inlineDiffOptions:b})),[q,N,L,$.term,b]);return t("div",{className:"diff-viewer-container"+(g?` ${g}`:""),children:[t("div",{className:"json-diff-header",children:[!p&&t("div",{className:"search-container",children:[t("div",{className:"search-input-container",children:[e("span",{role:"img","aria-label":"search",children:e(Mo,{})}),e("input",{type:"text",placeholder:"Search in JSON...",value:$.term,onChange:e=>B(e.target.value)})]}),$.results.length>0&&t("div",{className:"search-results",children:[t("span",{children:[$.currentIndex+1," ","of"," ",$.results.length," ","matches"]}),e("button",{onClick:()=>R("prev"),children:"Previous"}),e("button",{onClick:()=>R("next"),children:"Next"})]})]}),t("div",{className:"json-diff-title-container",children:[e("div",{children:e("span",{children:h})}),e("div",{children:e("span",{children:d})})]})]}),t("div",{style:{display:"flex",gap:"8px"},children:[e(Ao,{ref:x,className:"virtual-json-diff-list-container",height:o,itemCount:Math.max(q.length,N.length),itemSize:T,overscanCount:28,width:"100%",itemData:W,onScroll:({scrollOffset:e})=>j(e),children:zo}),e(Lo,{leftDiff:q,rightDiff:N,height:o,miniMapWidth:m,currentScrollTop:w,searchResults:$.results,currentMatchIndex:$.currentIndex,onScroll:e=>x.current?.scrollTo(e)})]}),P&&e("div",{className:"hide-all-button",children:e("button",{onClick:z,children:"Hide All Expanded Lines"})})]})};export{To as VirtualDiffViewer};
|
|
1
|
+
import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as n from"react";import{createElement as r,PureComponent as o,useState as i,useCallback as a,useLayoutEffect as s,useRef as l,useEffect as c,useMemo as u}from"react";const f=e=>{if(null==e||"bigint"==typeof e||Number.isNaN(e)||e===1/0||e===-1/0)return;if(["string","number","boolean"].includes(typeof e))return e;if(Array.isArray(e))return e.map(f).filter((e=>void 0!==e));const t={};for(const[n,r]of Object.entries(e)){const e=f(r);void 0!==e&&(t[n]=e)}return t},h=(e,t,n=!1)=>{if(!Array.isArray(e)||!Array.isArray(t))throw new Error("Both arguments should be arrays.");const r=e.length,o=t.length,i=new Array(r+o);if(n){for(let e=0;e<o;e++)i[e]=t[o-e-1];for(let t=0;t<r;t++)i[t+o]=e[t];return i}for(let t=0;t<r;t++)i[t]=e[t];for(let e=0;e<o;e++)i[e+r]=t[e];return i},d=(e,t=new Map)=>{if("object"!=typeof e||null===e)return!1;if(t.has(e))return!0;if(t.set(e,!0),Array.isArray(e)){for(let n=0;n<e.length;n++)if(d(e[n],t))return!0;return!1}for(const n in e)if(d(e[n],t))return!0;return!1},p=(e,t,n,r=1/0,o)=>{if(!e||"object"!=typeof e){let r;if(Number.isNaN(e)||e===1/0||e===-1/0||"bigint"==typeof e||(r=JSON.stringify(e,t,n)),void 0===r)switch(o){case Lr.throw:throw new Error(`Value is not valid in JSON, got ${String(e)}`);case Lr.stringify:return v(e);default:throw new Error("Should not reach here, please report this bug.")}return r}const i=r<1?'"..."':Array.isArray(e)?`[${e.map((e=>p(e,t,n,r-1,o))).join(",")}]`:`{${Object.keys(e).map((i=>`"${i}": ${p(e[i],t,n,r-1,o)}`)).join(", ")}}`;return JSON.stringify(JSON.parse(i),t,n)},v=e=>void 0===e?"undefined":e===1/0?"Infinity":e===-1/0?"-Infinity":Number.isNaN(e)?"NaN":"bigint"==typeof e?`${e}n`:String(e),m=(e,t=1/0,n=!1,r=Lr.stringify)=>null===e?"null":Array.isArray(e)||"object"==typeof e?p(e,void 0,n?1:void 0,t,r):p(e,void 0,void 0,void 0,r),y=e=>"boolean"==typeof e?0:"number"==typeof e?1:"string"==typeof e?2:null===e?3:Array.isArray(e)?4:"object"==typeof e?5:"symbol"==typeof e?6:"function"==typeof e?7:"bigint"==typeof e?8:-1,g=(e,t,n)=>{const r=n.keyOrdersMap?.get(e),o=n.keyOrdersMap?.get(t);if(void 0!==r&&void 0!==o)return r-o;const i=y(e),a=y(t);if(i!==a)return i-a;if(null===e&&null===t||Array.isArray(e)&&Array.isArray(t)||5===i&&5===a)return 0;switch(typeof e){case"number":return Number.isNaN(e)&&Number.isNaN(t)||e===1/0&&t===1/0||e===-1/0&&t===-1/0?0:e-t;case"string":return n.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e<t?-1:e>t?1:0;case"boolean":return+e-+t;case"symbol":case"function":return String(e).localeCompare(String(t))}if("bigint"==typeof e&&"bigint"==typeof t){const n=BigInt(e)-BigInt(t);return n<0?-1:n>0?1:0}return String(e).localeCompare(String(t))},b=e=>Array.isArray(e)?"array":null===e?"null":typeof e,x=(e,t,n,r,o,i,a,s)=>{const l={ignoreCase:s.ignoreCase},c=m(o,s.maxDepth,!0,s.undefinedBehavior).split("\n"),u=m(i,s.maxDepth,!0,s.undefinedBehavior).split("\n");if(0!==g(o,i,l))if(s.showModifications){const o=Math.max(c.length,u.length);for(let e=c.length;e<o;e++)c.push("");for(let e=u.length;e<o;e++)u.push("");e.push({level:a,type:"modify",text:n?`"${n}": ${c[0]}`:c[0]});for(let t=1;t<c.length;t++)e.push({level:a+(c[t].match(/^\s+/)?.[0]?.length||0),type:"modify",text:c[t].replace(/^\s+/,"").replace(/,$/g,"")});for(let t=c.length;t<o;t++)e.push({level:a,type:"equal",text:""});t.push({level:a,type:"modify",text:r?`"${r}": ${u[0]}`:u[0]});for(let e=1;e<u.length;e++)t.push({level:a+(u[e].match(/^\s+/)?.[0]?.length||0),type:"modify",text:u[e].replace(/^\s+/,"").replace(/,$/g,"")});for(let e=u.length;e<o;e++)t.push({level:a,type:"equal",text:""})}else{e.push({level:a,type:"remove",text:n?`"${n}": ${c[0]}`:c[0]});for(let t=1;t<c.length;t++)e.push({level:a+(c[t].match(/^\s+/)?.[0]?.length||0),type:"remove",text:c[t].replace(/^\s+/,"").replace(/,$/g,"")});for(let t=0;t<u.length;t++)e.push({level:a,type:"equal",text:""});for(let e=0;e<c.length;e++)t.push({level:a,type:"equal",text:""});t.push({level:a,type:"add",text:r?`"${r}": ${u[0]}`:u[0]});for(let e=1;e<u.length;e++)t.push({level:a+(u[e].match(/^\s+/)?.[0]?.length||0),type:"add",text:u[e].replace(/^\s+/,"").replace(/,$/g,"")})}else{const o=Math.max(c.length,u.length);for(let e=c.length;e<o;e++)c.push("");for(let e=u.length;e<o;e++)u.push("");e.push({level:a,type:"equal",text:n?`"${n}": ${c[0]}`:c[0]});for(let t=1;t<c.length;t++)e.push({level:a+(c[t].match(/^\s+/)?.[0]?.length||0),type:"equal",text:c[t].replace(/^\s+/,"").replace(/,$/g,"")});t.push({level:a,type:"equal",text:r?`"${r}": ${u[0]}`:u[0]});for(let e=1;e<u.length;e++)t.push({level:a+(u[e].match(/^\s+/)?.[0]?.length||0),type:"equal",text:u[e].replace(/^\s+/,"").replace(/,$/g,"")})}},w=(e,t)=>e.sort(((e,n)=>g(e,n,{ignoreCase:t.ignoreCaseForKey}))),j=(e,t,n=1,r,o)=>{if(n>(r.maxDepth||1/0))return[[{level:n,type:"equal",text:"..."}],[{level:n,type:"equal",text:"..."}]];let i=[],a=[];if(null===e&&null===t||void 0===e&&void 0===t)return[i,a];if(null==e){const e=p(t,void 0,1,void 0,r.undefinedBehavior).split("\n");for(let t=0;t<e.length;t++)i.push({level:n,type:"equal",text:""}),a.push({level:n+(e[t].match(/^\s+/)?.[0]?.length||0),type:"add",text:e[t].replace(/^\s+/,"").replace(/,$/g,"")});return[i,a]}if(null==t){const t=p(e,void 0,1,void 0,r.undefinedBehavior).split("\n");for(let e=0;e<t.length;e++)i.push({level:n+(t[e].match(/^\s+/)?.[0]?.length||0),type:"remove",text:t[e].replace(/^\s+/,"").replace(/,$/g,"")}),a.push({level:n,type:"equal",text:""});return[i,a]}const s=Object.keys(e),l=Object.keys(t),c=new Map;if(r.preserveKeyOrder){if("before"===r.preserveKeyOrder){for(let e=0;e<s.length;e++)c.set(s[e],e);for(let e=0;e<l.length;e++)c.has(l[e])||c.set(l[e],s.length+e);l.sort(((e,t)=>c.get(e)-c.get(t)))}else if("after"===r.preserveKeyOrder){for(let e=0;e<l.length;e++)c.set(l[e],e);for(let e=0;e<s.length;e++)c.has(s[e])||c.set(s[e],l.length+e);s.sort(((e,t)=>c.get(e)-c.get(t)))}}else w(s,r),w(l,r);const u={ignoreCase:r.ignoreCaseForKey,keyOrdersMap:c};for(;s.length||l.length;){const c=s[0],f=l[0],d=g(c,f,u);if(0===d)if(b(e[c])!==b(t[f]))x(i,a,c,f,e[c],t[f],n,r);else if(Array.isArray(e[c])){const s=[...e[c]],l=[...t[f]],[u,d]=o(s,l,c,f,n,r,[],[]);i=h(i,u),a=h(a,d)}else if(null===e[c])i.push({level:n,type:"equal",text:`"${c}": null`}),a.push({level:n,type:"equal",text:`"${f}": null`});else if("object"==typeof e[c]){const s=j(e[c],t[f],n+1,r,o);i.push({level:n,type:"equal",text:`"${c}": {`}),i=h(i,s[0]),i.push({level:n,type:"equal",text:"}"}),a.push({level:n,type:"equal",text:`"${f}": {`}),a=h(a,s[1]),a.push({level:n,type:"equal",text:"}"})}else x(i,a,c,f,e[c],t[f],n,r);else if(s.length&&l.length)if(d<0){const t=p(e[c],void 0,1,void 0,r.undefinedBehavior).split("\n");for(let e=0;e<t.length;e++){const r=t[e].replace(/^\s+/,"").replace(/,$/g,"");i.push({level:n+(t[e].match(/^\s+/)?.[0]?.length||0),type:"remove",text:e?r:`"${c}": ${r}`}),a.push({level:n,type:"equal",text:""})}}else{const e=p(t[f],void 0,1,void 0,r.undefinedBehavior).split("\n");for(let t=0;t<e.length;t++){const r=e[t].replace(/^\s+/,"").replace(/,$/g,"");i.push({level:n,type:"equal",text:""}),a.push({level:n+(e[t].match(/^\s+/)?.[0]?.length||0),type:"add",text:t?r:`"${f}": ${r}`})}}else if(s.length){const t=p(e[c],void 0,1,void 0,r.undefinedBehavior).split("\n");for(let e=0;e<t.length;e++){const r=t[e].replace(/^\s+/,"").replace(/,$/g,"");i.push({level:n+(t[e].match(/^\s+/)?.[0]?.length||0),type:"remove",text:e?r:`"${c}": ${r}`}),a.push({level:n,type:"equal",text:""})}}else if(l.length){const e=p(t[f],void 0,1,void 0,r.undefinedBehavior).split("\n");for(let t=0;t<e.length;t++){const r=e[t].replace(/^\s+/,"").replace(/,$/g,"");i.push({level:n,type:"equal",text:""}),a.push({level:n+(e[t].match(/^\s+/)?.[0]?.length||0),type:"add",text:t?r:`"${f}": ${r}`})}}c?f?0===d?(s.shift(),l.shift()):d<0?s.shift():l.shift():s.shift():l.shift()}if(i.length!==a.length)throw new Error("Diff error: length not match for left & right, please report a bug with your data.");return[i,a]};var _=function(){this.__data__=[],this.size=0};var S=function(e,t){return e===t||e!=e&&t!=t},E=S;var k=function(e,t){for(var n=e.length;n--;)if(E(e[n][0],t))return n;return-1},M=k,A=Array.prototype.splice;var O=k;var q=k;var N=k;var I=_,C=function(e){var t=this.__data__,n=M(t,e);return!(n<0)&&(n==t.length-1?t.pop():A.call(t,n,1),--this.size,!0)},D=function(e){var t=this.__data__,n=O(t,e);return n<0?void 0:t[n][1]},$=function(e){return q(this.__data__,e)>-1},R=function(e,t){var n=this.__data__,r=N(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};function B(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}B.prototype.clear=I,B.prototype.delete=C,B.prototype.get=D,B.prototype.has=$,B.prototype.set=R;var L=B,z=L;var T=function(){this.__data__=new z,this.size=0};var P=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n};var W=function(e){return this.__data__.get(e)};var F=function(e){return this.__data__.has(e)},H="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},U="object"==typeof H&&H&&H.Object===Object&&H,K=U,V="object"==typeof self&&self&&self.Object===Object&&self,G=K||V||Function("return this")(),J=G.Symbol,Y=J,Z=Object.prototype,Q=Z.hasOwnProperty,X=Z.toString,ee=Y?Y.toStringTag:void 0;var te=function(e){var t=Q.call(e,ee),n=e[ee];try{e[ee]=void 0;var r=!0}catch(e){}var o=X.call(e);return r&&(t?e[ee]=n:delete e[ee]),o},ne=Object.prototype.toString;var re=te,oe=function(e){return ne.call(e)},ie=J?J.toStringTag:void 0;var ae=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":ie&&ie in Object(e)?re(e):oe(e)};var se=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},le=ae,ce=se;var ue,fe=function(e){if(!ce(e))return!1;var t=le(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},he=G["__core-js_shared__"],de=(ue=/[^.]+$/.exec(he&&he.keys&&he.keys.IE_PROTO||""))?"Symbol(src)_1."+ue:"";var pe=function(e){return!!de&&de in e},ve=Function.prototype.toString;var me=function(e){if(null!=e){try{return ve.call(e)}catch(e){}try{return e+""}catch(e){}}return""},ye=fe,ge=pe,be=se,xe=me,we=/^\[object .+?Constructor\]$/,je=Function.prototype,_e=Object.prototype,Se=je.toString,Ee=_e.hasOwnProperty,ke=RegExp("^"+Se.call(Ee).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var Me=function(e){return!(!be(e)||ge(e))&&(ye(e)?ke:we).test(xe(e))},Ae=function(e,t){return null==e?void 0:e[t]};var Oe=function(e,t){var n=Ae(e,t);return Me(n)?n:void 0},qe=Oe(G,"Map"),Ne=Oe(Object,"create"),Ie=Ne;var Ce=function(){this.__data__=Ie?Ie(null):{},this.size=0};var De=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},$e=Ne,Re=Object.prototype.hasOwnProperty;var Be=function(e){var t=this.__data__;if($e){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return Re.call(t,e)?t[e]:void 0},Le=Ne,ze=Object.prototype.hasOwnProperty;var Te=Ne;var Pe=Ce,We=De,Fe=Be,He=function(e){var t=this.__data__;return Le?void 0!==t[e]:ze.call(t,e)},Ue=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Te&&void 0===t?"__lodash_hash_undefined__":t,this};function Ke(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Ke.prototype.clear=Pe,Ke.prototype.delete=We,Ke.prototype.get=Fe,Ke.prototype.has=He,Ke.prototype.set=Ue;var Ve=Ke,Ge=L,Je=qe;var Ye=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e};var Ze=function(e,t){var n=e.__data__;return Ye(t)?n["string"==typeof t?"string":"hash"]:n.map},Qe=Ze;var Xe=Ze;var et=Ze;var tt=Ze;var nt=function(e,t){var n=tt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},rt=function(){this.size=0,this.__data__={hash:new Ve,map:new(Je||Ge),string:new Ve}},ot=function(e){var t=Qe(this,e).delete(e);return this.size-=t?1:0,t},it=function(e){return Xe(this,e).get(e)},at=function(e){return et(this,e).has(e)},st=nt;function lt(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}lt.prototype.clear=rt,lt.prototype.delete=ot,lt.prototype.get=it,lt.prototype.has=at,lt.prototype.set=st;var ct=lt,ut=L,ft=qe,ht=ct;var dt=L,pt=T,vt=P,mt=W,yt=F,gt=function(e,t){var n=this.__data__;if(n instanceof ut){var r=n.__data__;if(!ft||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new ht(r)}return n.set(e,t),this.size=n.size,this};function bt(e){var t=this.__data__=new dt(e);this.size=t.size}bt.prototype.clear=pt,bt.prototype.delete=vt,bt.prototype.get=mt,bt.prototype.has=yt,bt.prototype.set=gt;var xt=bt;var wt=ct,jt=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},_t=function(e){return this.__data__.has(e)};function St(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new wt;++t<n;)this.add(e[t])}St.prototype.add=St.prototype.push=jt,St.prototype.has=_t;var Et=St,kt=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1},Mt=function(e,t){return e.has(t)};var At=function(e,t,n,r,o,i){var a=1&n,s=e.length,l=t.length;if(s!=l&&!(a&&l>s))return!1;var c=i.get(e),u=i.get(t);if(c&&u)return c==t&&u==e;var f=-1,h=!0,d=2&n?new Et:void 0;for(i.set(e,t),i.set(t,e);++f<s;){var p=e[f],v=t[f];if(r)var m=a?r(v,p,f,t,e,i):r(p,v,f,e,t,i);if(void 0!==m){if(m)continue;h=!1;break}if(d){if(!kt(t,(function(e,t){if(!Mt(d,t)&&(p===e||o(p,e,n,r,i)))return d.push(t)}))){h=!1;break}}else if(p!==v&&!o(p,v,n,r,i)){h=!1;break}}return i.delete(e),i.delete(t),h};var Ot=G.Uint8Array,qt=S,Nt=At,It=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n},Ct=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n},Dt=J?J.prototype:void 0,$t=Dt?Dt.valueOf:void 0;var Rt=function(e,t,n,r,o,i,a){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!i(new Ot(e),new Ot(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return qt(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var s=It;case"[object Set]":var l=1&r;if(s||(s=Ct),e.size!=t.size&&!l)return!1;var c=a.get(e);if(c)return c==t;r|=2,a.set(e,t);var u=Nt(s(e),s(t),r,o,i,a);return a.delete(e),u;case"[object Symbol]":if($t)return $t.call(e)==$t.call(t)}return!1};var Bt=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e},Lt=Array.isArray,zt=Bt,Tt=Lt;var Pt=function(e,t,n){var r=t(e);return Tt(e)?r:zt(r,n(e))};var Wt=function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,i=[];++n<r;){var a=e[n];t(a,n,e)&&(i[o++]=a)}return i},Ft=function(){return[]},Ht=Object.prototype.propertyIsEnumerable,Ut=Object.getOwnPropertySymbols,Kt=Ut?function(e){return null==e?[]:(e=Object(e),Wt(Ut(e),(function(t){return Ht.call(e,t)})))}:Ft;var Vt=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r};var Gt=function(e){return null!=e&&"object"==typeof e},Jt=ae,Yt=Gt;var Zt=function(e){return Yt(e)&&"[object Arguments]"==Jt(e)},Qt=Gt,Xt=Object.prototype,en=Xt.hasOwnProperty,tn=Xt.propertyIsEnumerable,nn=Zt(function(){return arguments}())?Zt:function(e){return Qt(e)&&en.call(e,"callee")&&!tn.call(e,"callee")},rn={exports:{}};var on=function(){return!1};!function(e,t){var n=G,r=on,o=t&&!t.nodeType&&t,i=o&&e&&!e.nodeType&&e,a=i&&i.exports===o?n.Buffer:void 0,s=(a?a.isBuffer:void 0)||r;e.exports=s}(rn,rn.exports);var an=/^(?:0|[1-9]\d*)$/;var sn=function(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&an.test(e))&&e>-1&&e%1==0&&e<t};var ln=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991},cn=ae,un=ln,fn=Gt,hn={};hn["[object Float32Array]"]=hn["[object Float64Array]"]=hn["[object Int8Array]"]=hn["[object Int16Array]"]=hn["[object Int32Array]"]=hn["[object Uint8Array]"]=hn["[object Uint8ClampedArray]"]=hn["[object Uint16Array]"]=hn["[object Uint32Array]"]=!0,hn["[object Arguments]"]=hn["[object Array]"]=hn["[object ArrayBuffer]"]=hn["[object Boolean]"]=hn["[object DataView]"]=hn["[object Date]"]=hn["[object Error]"]=hn["[object Function]"]=hn["[object Map]"]=hn["[object Number]"]=hn["[object Object]"]=hn["[object RegExp]"]=hn["[object Set]"]=hn["[object String]"]=hn["[object WeakMap]"]=!1;var dn=function(e){return fn(e)&&un(e.length)&&!!hn[cn(e)]};var pn=function(e){return function(t){return e(t)}},vn={exports:{}};!function(e,t){var n=U,r=t&&!t.nodeType&&t,o=r&&e&&!e.nodeType&&e,i=o&&o.exports===r&&n.process,a=function(){try{var e=o&&o.require&&o.require("util").types;return e||i&&i.binding&&i.binding("util")}catch(e){}}();e.exports=a}(vn,vn.exports);var mn=dn,yn=pn,gn=vn.exports,bn=gn&&gn.isTypedArray,xn=bn?yn(bn):mn,wn=Vt,jn=nn,_n=Lt,Sn=rn.exports,En=sn,kn=xn,Mn=Object.prototype.hasOwnProperty;var An=function(e,t){var n=_n(e),r=!n&&jn(e),o=!n&&!r&&Sn(e),i=!n&&!r&&!o&&kn(e),a=n||r||o||i,s=a?wn(e.length,String):[],l=s.length;for(var c in e)!t&&!Mn.call(e,c)||a&&("length"==c||o&&("offset"==c||"parent"==c)||i&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||En(c,l))||s.push(c);return s},On=Object.prototype;var qn=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||On)};var Nn=function(e,t){return function(n){return e(t(n))}}(Object.keys,Object),In=qn,Cn=Nn,Dn=Object.prototype.hasOwnProperty;var $n=fe,Rn=ln;var Bn=An,Ln=function(e){if(!In(e))return Cn(e);var t=[];for(var n in Object(e))Dn.call(e,n)&&"constructor"!=n&&t.push(n);return t},zn=function(e){return null!=e&&Rn(e.length)&&!$n(e)};var Tn=Pt,Pn=Kt,Wn=function(e){return zn(e)?Bn(e):Ln(e)};var Fn=function(e){return Tn(e,Wn,Pn)},Hn=Object.prototype.hasOwnProperty;var Un=function(e,t,n,r,o,i){var a=1&n,s=Fn(e),l=s.length;if(l!=Fn(t).length&&!a)return!1;for(var c=l;c--;){var u=s[c];if(!(a?u in t:Hn.call(t,u)))return!1}var f=i.get(e),h=i.get(t);if(f&&h)return f==t&&h==e;var d=!0;i.set(e,t),i.set(t,e);for(var p=a;++c<l;){var v=e[u=s[c]],m=t[u];if(r)var y=a?r(m,v,u,t,e,i):r(v,m,u,e,t,i);if(!(void 0===y?v===m||o(v,m,n,r,i):y)){d=!1;break}p||(p="constructor"==u)}if(d&&!p){var g=e.constructor,b=t.constructor;g==b||!("constructor"in e)||!("constructor"in t)||"function"==typeof g&&g instanceof g&&"function"==typeof b&&b instanceof b||(d=!1)}return i.delete(e),i.delete(t),d},Kn=Oe(G,"DataView"),Vn=qe,Gn=Oe(G,"Promise"),Jn=Oe(G,"Set"),Yn=Oe(G,"WeakMap"),Zn=ae,Qn=me,Xn="[object Map]",er="[object Promise]",tr="[object Set]",nr="[object WeakMap]",rr="[object DataView]",or=Qn(Kn),ir=Qn(Vn),ar=Qn(Gn),sr=Qn(Jn),lr=Qn(Yn),cr=Zn;(Kn&&cr(new Kn(new ArrayBuffer(1)))!=rr||Vn&&cr(new Vn)!=Xn||Gn&&cr(Gn.resolve())!=er||Jn&&cr(new Jn)!=tr||Yn&&cr(new Yn)!=nr)&&(cr=function(e){var t=Zn(e),n="[object Object]"==t?e.constructor:void 0,r=n?Qn(n):"";if(r)switch(r){case or:return rr;case ir:return Xn;case ar:return er;case sr:return tr;case lr:return nr}return t});var ur=xt,fr=At,hr=Rt,dr=Un,pr=cr,vr=Lt,mr=rn.exports,yr=xn,gr="[object Arguments]",br="[object Array]",xr="[object Object]",wr=Object.prototype.hasOwnProperty;var jr=function(e,t,n,r,o,i){var a=vr(e),s=vr(t),l=a?br:pr(e),c=s?br:pr(t),u=(l=l==gr?xr:l)==xr,f=(c=c==gr?xr:c)==xr,h=l==c;if(h&&mr(e)){if(!mr(t))return!1;a=!0,u=!1}if(h&&!u)return i||(i=new ur),a||yr(e)?fr(e,t,n,r,o,i):hr(e,t,l,n,r,o,i);if(!(1&n)){var d=u&&wr.call(e,"__wrapped__"),p=f&&wr.call(t,"__wrapped__");if(d||p){var v=d?e.value():e,m=p?t.value():t;return i||(i=new ur),o(v,m,n,r,i)}}return!!h&&(i||(i=new ur),dr(e,t,n,r,o,i))},_r=Gt;var Sr=function e(t,n,r,o,i){return t===n||(null==t||null==n||!_r(t)&&!_r(n)?t!=t&&n!=n:jr(t,n,r,o,e,i))},Er=Sr;var kr=function(e,t,n){var r=(n="function"==typeof n?n:void 0)?n(e,t):void 0;return void 0===r?Er(e,t,void 0,n):!!r};const Mr=(e,t,n)=>n.ignoreCase?"string"==typeof e&&"string"==typeof t&&e.toLowerCase()===t.toLowerCase():"symbol"==typeof e&&"symbol"==typeof t?e.toString()===t.toString():n.recursiveEqual?kr(e,t,((e,t)=>n.ignoreCase&&"string"==typeof e&&"string"==typeof t?e.toLowerCase()===t.toLowerCase():void 0)):e===t,Ar=(e,t)=>{if(e===t)return 1;if(null===e||null===t)return 0;if("object"!=typeof e||"object"!=typeof t)return 0;let n=0;for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&Object.prototype.hasOwnProperty.call(t,r)&&e[r]===t[r]&&n++;return Math.max(n/Object.keys(e).length,n/Object.keys(t).length)},Or=(e,t,n,r,o)=>{n&&r?(e.push({level:o,type:"equal",text:`"${n}": [`}),t.push({level:o,type:"equal",text:`"${r}": [`})):(e.push({level:o,type:"equal",text:"["}),t.push({level:o,type:"equal",text:"["}))},qr=(e,t,n)=>{e.push({level:n,type:"equal",text:"]"}),t.push({level:n,type:"equal",text:"]"})},Nr=(e,t,n)=>{e.push({level:n+1,type:"equal",text:"..."}),t.push({level:n+1,type:"equal",text:"..."})},Ir=(e,t,n,r,o,i,a=[],s=[])=>{if(Or(a,s,n,r,o),o>=(i.maxDepth||1/0))Nr(a,s,o);else{const[l,c]=((e,t,n,r,o,i)=>{const a=Array(e.length+1).fill(0).map((()=>Array(t.length+1).fill(0))),s=Array(e.length+1).fill(0).map((()=>Array(t.length+1).fill(0)));for(let t=1;t<=e.length;t++)s[t][0]="up";for(let e=1;e<=t.length;e++)s[0][e]="left";for(let n=1;n<=e.length;n++)for(let r=1;r<=t.length;r++){const o=b(e[n-1]);o!==b(t[r-1])||"array"!==o&&"object"!==o?Mr(e[n-1],t[r-1],i)?(a[n][r]=a[n-1][r-1]+1,s[n][r]="diag"):a[n-1][r]>=a[n][r-1]?(a[n][r]=a[n-1][r],s[n][r]="up"):(a[n][r]=a[n][r-1],s[n][r]="left"):i.recursiveEqual?Mr(e[n-1],t[r-1],i)||Ar(e[n-1],t[r-1])>.5?(a[n][r]=a[n-1][r-1]+1,s[n][r]="diag"):a[n-1][r]>=a[n][r-1]?(a[n][r]=a[n-1][r],s[n][r]="up"):(a[n][r]=a[n][r-1],s[n][r]="left"):(a[n][r]=a[n-1][r-1]+1,s[n][r]="diag")}let l=e.length,c=t.length,u=[],f=[];for(;l>0||c>0;)if("diag"===s[l][c]){const a=b(e[l-1]);if(i.recursiveEqual&&("array"===a||"object"===a)&&Mr(e[l-1],t[c-1],i)){const n=[],r=[];x(n,r,"","",e[l-1],t[c-1],o+1,i),u=h(u,n.reverse(),!0),f=h(f,r.reverse(),!0)}else if("array"===a){const[a,s]=Ir(e[l-1],t[c-1],n,r,o+1,i);u=h(u,a.reverse(),!0),f=h(f,s.reverse(),!0)}else if("object"===a){const[n,r]=j(e[l-1],t[c-1],o+2,i,Ir);u.unshift({level:o+1,type:"equal",text:"}"}),f.unshift({level:o+1,type:"equal",text:"}"}),u=h(u,n.reverse(),!0),f=h(f,r.reverse(),!0),u.unshift({level:o+1,type:"equal",text:"{"}),f.unshift({level:o+1,type:"equal",text:"{"})}else{const n=[],r=[];x(n,r,"","",e[l-1],t[c-1],o+1,i),u=h(u,n.reverse(),!0),f=h(f,r.reverse(),!0)}l--,c--}else if("up"===s[l][c])if(i.showModifications&&l>1&&"left"===s[l-1][c]){const a=b(e[l-1]);if(a===b(t[c-1]))if("array"===a){const[a,s]=Ir(e[l-1],t[c-1],n,r,o+1,i);u=h(u,a.reverse(),!0),f=h(f,s.reverse(),!0)}else if("object"===a){const[n,r]=j(e[l-1],t[c-1],o+2,i,Ir);u.unshift({level:o+1,type:"equal",text:"}"}),f.unshift({level:o+1,type:"equal",text:"}"}),u=h(u,n.reverse(),!0),f=h(f,r.reverse(),!0),u.unshift({level:o+1,type:"equal",text:"{"}),f.unshift({level:o+1,type:"equal",text:"{"})}else u.unshift({level:o+1,type:"modify",text:m(e[l-1],void 0,void 0,i.undefinedBehavior)}),f.unshift({level:o+1,type:"modify",text:m(t[c-1],void 0,void 0,i.undefinedBehavior)});else{const n=[],r=[];x(n,r,"","",e[l-1],t[c-1],o+1,i),u=h(u,n.reverse(),!0),f=h(f,r.reverse(),!0)}l--,c--}else{const t=p(e[l-1],void 0,1,void 0,i.undefinedBehavior).split("\n");for(let e=t.length-1;e>=0;e--)u.unshift({level:o+1+(t[e].match(/^\s+/)?.[0]?.length||0),type:"remove",text:t[e].replace(/^\s+/,"").replace(/,$/g,"")}),f.unshift({level:o+1,type:"equal",text:""});l--}else{const e=p(t[c-1],void 0,1,void 0,i.undefinedBehavior).split("\n");for(let t=e.length-1;t>=0;t--)u.unshift({level:o+1,type:"equal",text:""}),f.unshift({level:o+1+(e[t].match(/^\s+/)?.[0]?.length||0),type:"add",text:e[t].replace(/^\s+/,"").replace(/,$/g,"")});c--}return[u,f]})(e,t,n,r,o,i);a=h(a,l),s=h(s,c)}return qr(a,s,o),[a,s]};function Cr(e,t){for(const n of e){if("object"===b(n)){if(!(t in n))return!1;for(const e of Object.values(n))if(Array.isArray(e)&&!Cr(e,t))return!1}else if(Array.isArray(n)&&!Cr(n,t))return!1}return!0}const Dr=function e(t,n,r,o,i,a,s=[],l=[]){if(!a.compareKey)return Rr(t,n,r,o,i,a,s,l);const c=e=>e.every((e=>"object"===b(e)));if(!(c(t)&&c(n)&&Cr(t,a.compareKey)&&Cr(n,a.compareKey)))return Rr(t,n,r,o,i,a,s,l);if(Or(s,l,r,o,i),i>=(a.maxDepth||1/0))Nr(s,l,i);else{const r=new Set,o=new Set;for(let c=0;c<t.length;c++){const u=t[c];if(r.has(c))continue;if("object"!==b(u)||!(a.compareKey in u))continue;const f=u[a.compareKey];let d=-1;for(let e=0;e<n.length;e++){if(o.has(e))continue;const t=n[e];if("object"!==b(t)||!(a.compareKey in t))continue;const r=t[a.compareKey];if(Mr(f,r,a)){d=e;break}}if(-1!==d){const t=n[d],f=b(u);if(f!==b(t))x(s,l,"","",u,t,i+1,a);else if("object"===f){s.push({level:i+1,type:"equal",text:"{"}),l.push({level:i+1,type:"equal",text:"{"});const n=Array.from(new Set([...Object.keys(u),...Object.keys(t)]));for(const r of n){const n=u[r],o=t[r];if(Array.isArray(n)&&Array.isArray(o)){const[t,r]=e(n,o,"","",i+2,a,[],[]);s=h(s,t),l=h(l,r)}else if(Array.isArray(n)||Array.isArray(o))x(s,l,r,r,n,o,i+2,a);else{const[t,c]=j({[r]:n},{[r]:o},i+2,a,e);s=h(s,t),l=h(l,c)}}s.push({level:i+1,type:"equal",text:"}"}),l.push({level:i+1,type:"equal",text:"}"})}else if("array"===f){const[n,r]=e(u,t,"","",i+1,a,[],[]);s=h(s,n),l=h(l,r)}else Mr(u,t,a)?(s.push({level:i+1,type:"equal",text:m(u,void 0,void 0,a.undefinedBehavior)}),l.push({level:i+1,type:"equal",text:m(t,void 0,void 0,a.undefinedBehavior)})):a.showModifications?(s.push({level:i+1,type:"modify",text:m(u,void 0,void 0,a.undefinedBehavior)}),l.push({level:i+1,type:"modify",text:m(t,void 0,void 0,a.undefinedBehavior)})):(s.push({level:i+1,type:"remove",text:m(u,void 0,void 0,a.undefinedBehavior)}),s.push({level:i+1,type:"equal",text:""}),l.push({level:i+1,type:"equal",text:""}),l.push({level:i+1,type:"add",text:m(t,void 0,void 0,a.undefinedBehavior)}));r.add(c),o.add(d)}}for(let e=0;e<t.length;e++){if(r.has(e))continue;const n=t[e],o=p(n,void 0,1,void 0,a.undefinedBehavior).split("\n");for(let e=0;e<o.length;e++)s.push({level:i+1+(o[e].match(/^\s+/)?.[0]?.length||0),type:"remove",text:o[e].replace(/^\s+/,"").replace(/,$/g,"")}),l.push({level:i+1,type:"equal",text:""})}for(let e=0;e<n.length;e++){if(o.has(e))continue;const t=n[e],r=p(t,void 0,1,void 0,a.undefinedBehavior).split("\n");for(let e=0;e<r.length;e++)s.push({level:i+1,type:"equal",text:""}),l.push({level:i+1+(r[e].match(/^\s+/)?.[0]?.length||0),type:"add",text:r[e].replace(/^\s+/,"").replace(/,$/g,"")})}}return qr(s,l,i),[s,l]};function $r(e,t,n,r,o,i,a){let s=[],l=[];const c=Array.from(new Set([...Object.keys(e||{}),...Object.keys(t||{})]));for(const u of c){const c=e?e[u]:void 0,f=t?t[u]:void 0;if(Array.isArray(c)&&Array.isArray(f)&&r.compareKey&&a(c,r.compareKey)&&a(f,r.compareKey)){const[e,t]=i(c,f,"","",n+2,r,[],[]);s=h(s,e),l=h(l,t)}else if(Array.isArray(c)&&Array.isArray(f)){const[e,t]=o(c,f,"","",n+2,r,[],[]);s=h(s,e),l=h(l,t)}else if(Array.isArray(c)||Array.isArray(f))x(s,l,u,u,c,f,n+2,r);else{const[e,t]=j({[u]:c},{[u]:f},n+2,r,o);s=h(s,e),l=h(l,t)}}return[s,l]}const Rr=(e,t,n,r,o,i,a=[],s=[])=>{if(e=[...e],t=[...t],Or(a,s,n,r,o),o>=(i.maxDepth||1/0))Nr(a,s,o);else for(;e.length||t.length;){const n=e[0],r=t[0],l=b(n),c=b(r);if(e.length&&t.length){if(l!==c)x(a,s,"","",n,r,o+1,i);else if(i.recursiveEqual&&["object","array"].includes(l)&&Mr(n,r,i))x(a,s,"","",n,r,o+1,i);else if("object"===l){let e,t;a.push({level:o+1,type:"equal",text:"{"}),s.push({level:o+1,type:"equal",text:"{"}),"compare-key"===i.arrayDiffMethod?[e,t]=$r(n,r,o,i,Rr,Dr,Cr):[e,t]=j(n,r,o+2,i,Rr),a=h(a,e),s=h(s,t),a.push({level:o+1,type:"equal",text:"}"}),s.push({level:o+1,type:"equal",text:"}"})}else if("array"===l)if(i.compareKey&&Cr(n,i.compareKey)&&Cr(r,i.compareKey)){const[e,t]=Dr(n,r,"","",o+1,i,[],[]);a=h(a,e),s=h(s,t)}else{const[e,t]=Rr(n,r,"","",o+1,i,[],[]);a=h(a,e),s=h(s,t)}else 0===g(n,r,{ignoreCase:i.ignoreCase})?(a.push({level:o+1,type:"equal",text:m(n,void 0,void 0,i.undefinedBehavior)}),s.push({level:o+1,type:"equal",text:m(r,void 0,void 0,i.undefinedBehavior)})):i.showModifications?(a.push({level:o+1,type:"modify",text:m(n,void 0,void 0,i.undefinedBehavior)}),s.push({level:o+1,type:"modify",text:m(r,void 0,void 0,i.undefinedBehavior)})):(a.push({level:o+1,type:"remove",text:m(n,void 0,void 0,i.undefinedBehavior)}),a.push({level:o+1,type:"equal",text:""}),s.push({level:o+1,type:"equal",text:""}),s.push({level:o+1,type:"add",text:m(r,void 0,void 0,i.undefinedBehavior)}));e.shift(),t.shift()}else if(e.length){const t=m(n,void 0,!0,i.undefinedBehavior).split("\n");for(let e=0;e<t.length;e++)a.push({level:o+1+(t[e].match(/^\s+/)?.[0]?.length||0),type:"remove",text:t[e].replace(/^\s+/,"").replace(/,$/g,"")}),s.push({level:o+1,type:"equal",text:""});e.shift()}else if(t.length){const e=m(r,void 0,!0,i.undefinedBehavior).split("\n");for(let t=0;t<e.length;t++)a.push({level:o+1,type:"equal",text:""}),s.push({level:o+1+(e[t].match(/^\s+/)?.[0]?.length||0),type:"add",text:e[t].replace(/^\s+/,"").replace(/,$/g,"")});t.shift()}}return qr(a,s,o),[a,s]},Br=(e,t)=>{if(!e||"object"!=typeof e)return e;if(Array.isArray(e)){const n=[...e];return n.sort(((e,n)=>g(e,n,{ignoreCase:t?.ignoreCase}))),n.map((e=>Br(e,t)))}const n={...e};for(const e in n)n[e]=Br(n[e],t);return n};var Lr=function(e){return e.stringify="stringify",e.ignore="ignore",e.throw="throw",e}({});const zr={level:0,type:"equal",text:""},Tr={level:0,type:"equal",text:"{"},Pr={level:0,type:"equal",text:"}"};let Wr=class{detectCircular(e){if(this.options.detectCircular&&d(e))throw new Error(`Circular reference detected in object (with keys ${Object.keys(e).map((e=>`"${e}"`)).join(", ")})`)}sortResultLines(e,t){for(let n=0;n<e.length;n++){let n=!1;for(let r=1;r<e.length;r++)if("remove"===e[r].type&&"equal"===e[r-1].type&&"equal"===t[r].type&&"add"===t[r-1].type){const o=e[r-1];e[r-1]=e[r],e[r]=o;const i=t[r-1];t[r-1]=t[r],t[r]=i,n=!0}if(!n)break}}calculateLineNumbers(e){let t=0;for(const n of e)n.text&&(n.lineNumber=++t)}calculateCommas(e){const t=Array(e.length).fill(0);for(let n=e.length-1;n>0;n--)e[n].text?t[n-1]=n:t[n-1]=t[n];for(let n=0;n<e.length;n++)!e[n].text.endsWith("{")&&!e[n].text.endsWith("[")&&e[n].text&&t[n]&&e[n].level<=e[t[n]].level&&(e[n].comma=!0)}diff(e,t){this.detectCircular(e),this.detectCircular(t),"unorder-normal"!==this.options.arrayDiffMethod&&"unorder-lcs"!==this.options.arrayDiffMethod||(e=Br(e,this.options),t=Br(t,this.options)),"ignore"===this.options.undefinedBehavior&&(e=f(e)??null,t=f(t)??null);let n=[],r=[];const o=b(e);if(o!==b(t)){n=p(e,void 0,1,this.options.maxDepth,this.options.undefinedBehavior).split("\n").map((e=>({level:e.match(/^\s+/)?.[0]?.length||0,type:"remove",text:e.replace(/^\s+/,"").replace(/,$/g,""),comma:e.endsWith(",")})));r=p(t,void 0,1,this.options.maxDepth,this.options.undefinedBehavior).split("\n").map((e=>({level:e.match(/^\s+/)?.[0]?.length||0,type:"add",text:e.replace(/^\s+/,"").replace(/,$/g,""),comma:e.endsWith(",")})));const o=n.length,i=r.length;n=h(n,Array(i).fill(0).map((()=>({...zr})))),r=h(r,Array(o).fill(0).map((()=>({...zr}))),!0)}else"object"===o?([n,r]=j(e,t,1,this.options,this.arrayDiffFunc),n.unshift({...Tr}),n.push({...Pr}),r.unshift({...Tr}),r.push({...Pr})):"array"===o?[n,r]=this.arrayDiffFunc(e,t,"","",0,this.options):e!==t?this.options.ignoreCase?"string"==typeof e&&"string"==typeof t&&e.toLowerCase()===t.toLowerCase()&&(n=[{level:0,type:"equal",text:e}],r=[{level:0,type:"equal",text:t}]):this.options.showModifications?(n=[{level:0,type:"modify",text:p(e,void 0,void 0,this.options.maxDepth,this.options.undefinedBehavior)}],r=[{level:0,type:"modify",text:p(t,void 0,void 0,this.options.maxDepth,this.options.undefinedBehavior)}]):(n=[{level:0,type:"remove",text:p(e,void 0,void 0,this.options.maxDepth,this.options.undefinedBehavior)},{...zr}],r=[{...zr},{level:0,type:"add",text:p(t,void 0,void 0,this.options.maxDepth,this.options.undefinedBehavior)}]):(n=[{level:0,type:"equal",text:p(e,void 0,void 0,this.options.maxDepth,this.options.undefinedBehavior)}],r=[{level:0,type:"equal",text:p(t,void 0,void 0,this.options.maxDepth,this.options.undefinedBehavior)}]);return this.sortResultLines(n,r),this.calculateLineNumbers(n),this.calculateLineNumbers(r),this.calculateCommas(n),this.calculateCommas(r),[n,r]}constructor({detectCircular:e=!0,maxDepth:t=1/0,showModifications:n=!0,arrayDiffMethod:r="normal",ignoreCase:o=!1,ignoreCaseForKey:i=!1,recursiveEqual:a=!1,preserveKeyOrder:s,compareKey:l,undefinedBehavior:c="stringify"}={}){this.options={detectCircular:e,maxDepth:t,showModifications:n,arrayDiffMethod:r,ignoreCase:o,ignoreCaseForKey:i,recursiveEqual:a,preserveKeyOrder:s,compareKey:l,undefinedBehavior:c},this.arrayDiffFunc="compare-key"===r?Dr:"lcs"===r||"unorder-lcs"===r?Ir:Rr}};const Fr=e=>"hasLinesBefore"in e||"hasLinesAfter"in e,Hr=(e,t,n)=>Fr(e)?n:t*(e.end-e.start+1),Ur=(e,t)=>{const n=[];let r,o;if(e.length&&t.length)for(e=[...e],t=[...t],r={...e.shift()},o={...t.shift()};;){if(r.start===o.start){const e=Math.min(r.end,o.end);n.push({...r,...o,end:e}),r.start=o.start=e}else if(r.start<o.start){const e=Math.min(r.end,o.start);n.push({...o,...r,end:e}),r.start=e}else{const e=Math.min(r.start,o.end);n.push({...r,...o,end:e}),o.start=e}if(!e.length||!t.length)break;r.start===r.end&&(r={...e.shift()}),o.start===o.end&&(o={...t.shift()})}return e.length||n.push(...t.map((e=>({...e,token:r.token||"plain"})))),t.length||n.push(...e),n};var Kr={};Object.defineProperty(Kr,"__esModule",{value:!0}),Kr.applyPatch=Kr.calcPatch=Zr=Kr.lcs=Kr.diff=Kr.diff_core=void 0;let Vr=class{[Symbol.iterator](){return this}next(){const{state:e,result:t}=this;if(this.c>1)return t.done=!0,t.value=void 0,t;const n=function(e,t){const{b:n,eq:r,stack_base:o}=e;let{i:i,N:a,j:s,M:l,Z:c,stack_top:u}=e;for(;;)switch(t){case 0:e:for(;a>0&&l>0;){n.fill(0,0,2*c);const e=a-l,t=a+l,f=1&t,h=i+a-1,d=s+l-1,p=(t+f)/2;let v;t:for(let t=0;t<=p;t++){const p=2*Math.max(0,t-l)-t,m=t-2*Math.max(0,t-a);for(let h=p;h<=m;h+=2){const d=n[h-1-c*Math.floor((h-1)/c)],p=n[h+1-c*Math.floor((h+1)/c)],m=h===-t||h!==t&&d<p?p:d+1,y=m-h;let g=m,b=y;for(;g<a&&b<l&&r(i+g,s+b);)g++,b++;if(n[h-c*Math.floor(h/c)]=g,1===f&&(v=e-h)>=1-t&&v<t&&g+n[c+v-c*Math.floor(v/c)]>=a){if(t>1||g!==m){o[u++]=i+g,o[u++]=a-g,o[u++]=s+b,o[u++]=l-b,a=m,l=y,c=2*(Math.min(a,l)+1);continue e}break t}}for(let y=p;y<=m;y+=2){const p=n[c+y-1-c*Math.floor((y-1)/c)],m=n[c+y+1-c*Math.floor((y+1)/c)],g=y===-t||y!==t&&p<m?m:p+1,b=g-y;let x=g,w=b;for(;x<a&&w<l&&r(h-x,d-w);)x++,w++;if(n[c+y-c*Math.floor(y/c)]=x,0===f&&(v=e-y)>=-t&&v<=t&&x+n[v-c*Math.floor(v/c)]>=a){if(t>0||x!==g){o[u++]=i+a-g,o[u++]=g,o[u++]=s+l-b,o[u++]=b,a-=x,l-=w,c=2*(Math.min(a,l)+1);continue e}break t}}}if(a!==l){l>a?(i+=a,s+=a,l-=a,a=0):(i+=l,s+=l,a-=l,l=0);break}}if(a+l!==0)if(e.pxe===i||e.pye===s)e.pxe=i+a,e.pye=s+l;else{const t=e.pxs;if(e.oxs=e.pxs,e.oxe=e.pxe,e.oys=e.pys,e.oye=e.pye,e.pxs=i,e.pxe=i+a,e.pys=s,e.pye=s+l,t>=0)return e.i=i,e.N=a,e.j=s,e.M=l,e.Z=c,e.stack_top=u,1}case 1:if(0===u)return 2;l=o[--u],s=o[--u],a=o[--u],i=o[--u],c=2*(Math.min(a,l)+1),t=0}}(e,this.c);return this.c=n,1===n?(t.value=[e.oxs,e.oxe,e.oys,e.oye],t):e.pxs>=0?(t.value=[e.pxs,e.pxe,e.pys,e.pye],t):(t.done=!0,t.value=void 0,t)}constructor(e){this.state=e,this.c=0,this.result={value:null,done:!1}}};function Gr(e,t,n,r,o){const i=2*(Math.min(t,r)+1),a=t+r,s=new(a<256?Uint8Array:a<65536?Uint16Array:Uint32Array)(2*i);return new Vr({i:e,N:t,j:n,M:r,Z:i,b:s,eq:o,pxs:-1,pxe:-1,pys:-1,pye:-1,oxs:-1,oxe:-1,oys:-1,oye:-1,stack_top:0,stack_base:[]})}function Jr(e,t){let[n,r,o]=[0,e.length,t.length];for(;n<r&&n<o&&e[n]===t[n];)n++;if(n===r&&n===o)return[][Symbol.iterator]();for(;e[--r]===t[--o]&&r>n&&o>n;);return Gr(n,r+1-n,n,o+1-n,((n,r)=>e[n]===t[r]))}Kr.diff_core=Gr,Kr.diff=Jr;let Yr=class{[Symbol.iterator](){return this}next(){const e=this.diff.next();if(e.done){const{i:t,j:n,N:r}=this;return t<r&&(e.done=!1,e.value=[t,n,r-t],this.i=r),e}const t=e.value,n=t[0],r=t[1],o=t[3],{i:i,j:a}=this;return i!==n&&(t.length--,t[0]=i,t[1]=a,t[2]=n-i),this.i=r,this.j=o,e}constructor(e,t){this.diff=e,this.N=t,this.i=0,this.j=0}};var Zr=Kr.lcs=function(e,t){return new Yr(Jr(e,t),e.length)};Kr.calcPatch=function*(e,t){const n=ArrayBuffer.isView(e)?Uint8Array.prototype.subarray:e.slice;for(const r of Jr(e,t))r[2]=n.call(t,r[2],r[3]),yield r},Kr.applyPatch=function*(e,t){let n=0;const r=ArrayBuffer.isView(e)?Uint8Array.prototype.subarray:e.slice;for(const[o,i,a]of t)n<o&&(yield r.call(e,n,o)),a.length>0&&(yield a),n=i;n<e.length&&(yield r.call(e,n))};const Qr=(e,t)=>{const n=[];let r=0;for(const o of e)n.push(r),r+=o.length+t;return n.push(r-t),n},Xr=e=>e.filter((e=>e.end>e.start)),eo=(e,t,n)=>{if(!e)return[{token:"plain",start:n,end:t.length+n}];if("undefined"===t||"Infinity"===t||"-Infinity"===t||"NaN"===t||/^\d+n$/i.test(t)||t.startsWith("Symbol(")||t.startsWith("function")||t.startsWith("("))return[{token:"invalid",start:n,end:t.length+n}];if(!Number.isNaN(Number(t)))return[{token:"number",start:n,end:t.length+n}];if("true"===t||"false"===t)return[{token:"boolean",start:n,end:t.length+n}];if("null"===t)return[{token:"null",start:n,end:t.length+n}];if(t.startsWith('"')){if(t.endsWith(": [")||t.endsWith(": {"))return[{token:"key",start:n,end:t.length-3+n},{token:"punctuation",start:t.length-3,end:t.length-2+n},{token:"plain",start:t.length-2,end:t.length-1+n},{token:"punctuation",start:t.length-1,end:t.length+n}];let r=1;for(;r<t.length&&'"'!==t[r];)"\\"===t[r]&&++r,++r;return r===t.length-1?[{token:"string",start:n,end:t.length+n}]:[{token:"key",start:n,end:r+1+n},{token:"punctuation",start:r+1,end:r+2+n},{token:"plain",start:r+2,end:r+3+n},...eo(e,t.substring(r+3),n+r+3)]}return"{"===t||"}"===t||"["===t||"]"===t?[{token:"punctuation",start:n,end:t.length+n}]:[{token:"plain",start:n,end:t.length+n}]},to={threshold:8,margin:3},no=(e,t,n,r)=>{if(!n||r)return[{start:0,end:e.length,isEqual:!1}];const o=[];for(let n=0;n<e.length;n++)"equal"===e[n].type&&"equal"===t[n].type?o.length&&o[o.length-1].isEqual?o[o.length-1].end++:o.push({start:n,end:n+1,isEqual:!0}):o.length&&!o[o.length-1].isEqual?o[o.length-1].end++:o.push({start:n,end:n+1,isEqual:!1});const i=!0===n?to:{...to,...n},{threshold:a,margin:s}=i;a<2*s+1&&console.warn(`Threshold (${a}) is no more than 2 margins + 1 "expand" line (${s} * 2 + 1), it's not necessary to hide unchanged areas which have less than ${2*s+1} lines.`);const l=[];for(let t=0;t<o.length;t++){const n=o[t];!n.isEqual||n.end-n.start<a||n.end-n.start<=2*s+1?l.push(n):t?t===o.length-1?(l.push({start:n.start,end:n.start+s,isEqual:!0}),l.push({hasLinesBefore:!1,hasLinesAfter:!0,start:n.start+s,end:e.length,isEqual:!0})):(l.push({start:n.start,end:n.start+s,isEqual:!0}),l.push({hasLinesBefore:!0,hasLinesAfter:!0,start:n.start+s,end:n.end-s,isEqual:!0}),l.push({start:n.end-s,end:n.end,isEqual:!0})):(l.push({hasLinesBefore:!0,hasLinesAfter:!1,start:0,end:n.end-s,isEqual:!0}),l.push({start:n.end-s,end:n.end,isEqual:!0}))}return l},ro={noChangeDetected:"No change detected",showLinesBefore:"β‘ Show %d lines before",showLinesAfter:"β£ Show %d lines after",showAll:"β₯ Show all unchanged lines"},oo=e=>{const[t,r]=e.diff,o=n.useMemo((()=>t.length===r.length&&t.every((e=>"equal"===e.type))&&r.every((e=>"equal"===e.type))),[t,r]),i={...ro,...e.texts},a=e.lineNumbers?`calc(${String(t.length).length}ch + 16px)`:0,s=e.indent??2,l="tab"===s?"\t":" ",c="tab"===s?1:s,u={mode:e.inlineDiffOptions?.mode||"char",wordSeparator:e.inlineDiffOptions?.wordSeparator||""},f=e.hideUnchangedLines??!1,{scrollContainer:h="body",itemHeight:d=18,expandLineHeight:p=26}=e.virtual&&!0!==e.virtual?e.virtual:{},v="body"===h?document.body:document.querySelector(h),m=n.useRef(t),y=n.useRef(r),g=n.useRef(no(t,r,f,o)),b=n.useRef([]),x=n.useRef(0),w=n.useRef(null),[,j]=n.useState({}),_=()=>{if(b.current=[],e.virtual){let e=0;for(const t of g.current)Fr(t)?(b.current.push(e),e+=p):(b.current.push(e),e+=d*(t.end-t.start));x.current=g.current.reduce(((e,t)=>Fr(t)?e+p:e+(t.end-t.start)*d),0)}j({})};n.useEffect((()=>{m.current=t,y.current=r,g.current=no(t,r,f,o),_()}),[f,t,r]),n.useEffect((()=>{if(!e.virtual||!v)return;const t=()=>j({});return v.addEventListener("scroll",t),()=>{v.removeEventListener("scroll",t)}}),[e.virtual,v]);const S=e=>t=>{const n=[...g.current],r=n[e];n[e]={...r,end:Math.max(r.end-t,r.start)},e+1<g.current.length-1&&(n[e+1]={...n[e+1],start:Math.max(r.end-t,r.start)}),g.current=n,_()},E=e=>t=>{const n=[...g.current],r=n[e];n[e]={...r,start:Math.min(r.start+t,r.end)},e>1&&(n[e-1]={...n[e-1],end:Math.min(r.start+t,r.end)}),g.current=n,_()},k=e=>()=>{const t=[...g.current],n=t[e];t[e]={...n,start:n.start,end:n.start},e+1<g.current.length-1?t[e+1]={...t[e+1],start:n.start}:t[e-1]={...t[e-1],end:n.end},g.current=t,_()},M=(e,t=[],r=!1,o=!1)=>n.createElement(n.Fragment,null,t.map(((t,r)=>{const o=e.slice(t.start,t.end);if(!t.type&&!t.token)return o;const i=[t.type?`inline-diff-${t.type}`:"",t.token?`token ${t.token}`:""].filter(Boolean).join(" ");return n.createElement("span",{key:`${r}-${t.type}-${o}`,className:i},o)})),r&&(o?n.createElement("span",{className:"token punctuation"},","):",")),A=(t,r)=>{const o=m.current[t],i=y.current[t],[a,s]=e.highlightInlineDiff&&"modify"===o.type&&"modify"===i.type?((e,t,n)=>{let r=[],o=[],i=0,a=0;if("word"===n.mode){const s=n.wordSeparator||" ",l=e.split(s),c=t.split(s),u=[...Zr(l,c)],f=s.length,h=Qr(l,f),d=Qr(c,f);for(const[e,t,n]of u)e>i&&r.push({type:"remove",start:h[i],end:h[e]}),t>a&&o.push({type:"add",start:d[a],end:d[t]}),i=e+n,a=t+n,r.push({start:h[e],end:h[i]}),o.push({start:d[t],end:d[a]});return e.length>i&&r.push({type:"remove",start:h[i],end:e.length}),t.length>a&&o.push({type:"add",start:d[a],end:t.length}),r=Xr(r),o=Xr(o),[r,o]}const s=Zr(e,t);for(const[e,t,n]of s)e>i&&r.push({type:"remove",start:i,end:e}),t>a&&o.push({type:"add",start:a,end:t}),i=e+n,a=t+n,r.push({start:e,end:i}),o.push({start:t,end:a});return e.length>i&&r.push({type:"remove",start:i,end:e.length}),t.length>a&&o.push({type:"add",start:a,end:t.length}),r=Xr(r),o=Xr(o),[r,o]})(o.text,i.text,u):[[],[]],f=eo(r,o.text,0),h=eo(r,i.text,0),d=Ur(f,a),p=Ur(h,s),v="equal"!==o.type?e.bgColour?.[o.type]??"":"",g="equal"!==i.type?e.bgColour?.[i.type]??"":"";return n.createElement("tr",{key:t},e.lineNumbers&&n.createElement("td",{className:`line-${o.type} line-number`,style:{backgroundColor:v}},o.lineNumber),n.createElement("td",{className:`line-${o.type}`,style:{backgroundColor:v}},n.createElement("pre",null,o.text&&l.repeat(o.level*c),M(o.text,d,o.comma,r))),e.lineNumbers&&n.createElement("td",{className:`line-${i.type} line-number`,style:{backgroundColor:g}},i.lineNumber),n.createElement("td",{className:`line-${i.type}`,style:{backgroundColor:g}},n.createElement("pre",null,i.text&&l.repeat(i.level*c),M(i.text,p,i.comma,r))))},O=(e,t,r,o)=>n.createElement(n.Fragment,null,e&&n.createElement("button",{onClick:()=>S(o)(r)},i.showLinesBefore.replaceAll("%d",String(r))),n.createElement("button",{onClick:()=>k(o)()},i.showAll),t&&n.createElement("button",{onClick:()=>E(o)(r)},i.showLinesAfter.replaceAll("%d",String(r)))),q=(e,t,r,o,i)=>{let{start:a,end:s}=e;if(a=Math.max(a,r),s=Math.min(s,o),a===s)return null;if(!Fr(e))return Array(s-a).fill(0).map(((e,t)=>A(a+t,i)));const{hasLinesBefore:l,hasLinesAfter:c}=e,u="boolean"==typeof f?20:f.expandMoreLinesLimit||20;return[n.createElement("tr",{key:`expand-line-${t}`,className:"expand-line"},n.createElement("td",{colSpan:4,className:`${l?"has-lines-before":""} ${c?"has-lines-after":""}`},"boolean"!=typeof f&&f.expandLineRenderer?f.expandLineRenderer({hasLinesBefore:l,hasLinesAfter:c,onExpandBefore:S(t),onExpandAfter:E(t),onExpandAll:k(t)}):O(l,c,u,t)))]},N=["json-diff-viewer",e.virtual&&"json-diff-viewer-virtual",e.syntaxHighlight&&`json-diff-viewer-theme-${e.syntaxHighlight.theme||"monokai"}`,e.className].filter(Boolean).join(" "),I=!!e.syntaxHighlight;return n.createElement("table",{className:N,style:e.style},n.createElement("colgroup",{className:"measure-line"},e.lineNumbers&&n.createElement("col",{style:{width:a}}),n.createElement("col",null),e.lineNumbers&&n.createElement("col",{style:{width:a}}),n.createElement("col",null)),n.createElement("tbody",{ref:w},(t=>{if(o&&f)return n.createElement("tr",{key:"message-line",className:"message-line"},n.createElement("td",{colSpan:4},i.noChangeDetected));if(!e.virtual)return g.current.map(((e,n)=>q(e,n,0,m.current.length,t)));const r=v?.clientHeight??0,a=v?.scrollTop??0,s=a+r;let l=w.current,c=l?.offsetTop??0;for(;l?.offsetParent&&l?.offsetParent!==v;)l=l.offsetParent,c+=l.offsetTop;if(c>s||c+x.current<a)return n.createElement("tr",null,n.createElement("td",{colSpan:4,style:{height:`${x.current}px`}}));const u=a-c,h=s-c,[y,j,_,S]=((e,t,n,r,o,i)=>{if(!t.length)return[0,0,0,0];let a=0,s=0,l=0,c=0,u=0,f=e.length-1;for(;;){const r=Math.floor((u+f)/2);if(t[r]+Hr(e[r],o,i)<=n?u=r+1:f=r,u===f){a=u;break}}const h=e[a];for(l=Fr(h)?h.start:h.start+Math.floor((n-t[a])/o),u=0,f=e.length-1;;){const e=Math.floor((u+f+1)/2);if(t[e]>=r?f=e-1:u=e,u===f){s=u;break}}const d=e[s];return c=Fr(d)?d.end:d.start+Math.ceil((r-t[s])/o),[a,l,s,c]})(g.current,b.current,u,h,d,p),[E,k]=((e,t,n,r,o,i,a,s,l)=>{if(!t.length)return[0,0];let c=0,u=0;const f=e[n];c=Fr(f)?t[n]:t[n]+(r-f.start)*a;const h=e[o];return u=Fr(h)?l-t[o]-s:l-t[o]-(i-h.start)*a,[c,u]})(g.current,b.current,y,j,_,S,d,p,x.current),M=g.current.slice(y,_+1);return M.length?n.createElement(n.Fragment,null,n.createElement("tr",null,n.createElement("td",{colSpan:4,style:{height:E,padding:0}})),M.map(((e,n)=>q(e,n,j,S,t))),n.createElement("tr",null,n.createElement("td",{colSpan:4,style:{height:k,padding:0}}))):n.createElement("tr",null,n.createElement("td",{colSpan:4,style:{height:`${x.current}px`}}))})(I)))};function io(){return io=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},io.apply(null,arguments)}function ao(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function so(e,t){return so=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},so(e,t)}oo.displayName="Viewer";var lo=Number.isNaN||function(e){return"number"==typeof e&&e!=e};function co(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(r=e[n],o=t[n],!(r===o||lo(r)&&lo(o)))return!1;var r,o;return!0}function uo(e,t){var n;void 0===t&&(t=co);var r,o=[],i=!1;return function(){for(var a=[],s=0;s<arguments.length;s++)a[s]=arguments[s];return i&&n===this&&t(a,o)||(r=e.apply(this,a),i=!0,n=this,o=a),r}}var fo="object"==typeof performance&&"function"==typeof performance.now?function(){return performance.now()}:function(){return Date.now()};function ho(e){cancelAnimationFrame(e.id)}var po=-1;function vo(e){if(void 0===e&&(e=!1),-1===po||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",document.body.appendChild(t),po=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return po}var mo=null;function yo(e){if(void 0===e&&(e=!1),null===mo||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",n.direction="rtl";var r=document.createElement("div"),o=r.style;return o.width="100px",o.height="100px",t.appendChild(r),document.body.appendChild(t),t.scrollLeft>0?mo="positive-descending":(t.scrollLeft=1,mo=0===t.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(t),mo}return mo}process.env.NODE_ENV;var go=function(e,t){return e},bo=null,xo=null;function wo(e){var t,n=e.getItemOffset,i=e.getEstimatedTotalSize,a=e.getItemSize,s=e.getOffsetForIndexAndAlignment,l=e.getStartIndexForOffset,c=e.getStopIndexForStartIndex,u=e.initInstanceProps,f=e.shouldResetStyleCacheOnItemSizeChange,h=e.validateProps;return t=function(e){var t,o;function d(t){var r;return(r=e.call(this,t)||this)._instanceProps=u(r.props,ao(r)),r._outerRef=void 0,r._resetIsScrollingTimeoutId=null,r.state={instance:ao(r),isScrolling:!1,scrollDirection:"forward",scrollOffset:"number"==typeof r.props.initialScrollOffset?r.props.initialScrollOffset:0,scrollUpdateWasRequested:!1},r._callOnItemsRendered=void 0,r._callOnItemsRendered=uo((function(e,t,n,o){return r.props.onItemsRendered({overscanStartIndex:e,overscanStopIndex:t,visibleStartIndex:n,visibleStopIndex:o})})),r._callOnScroll=void 0,r._callOnScroll=uo((function(e,t,n){return r.props.onScroll({scrollDirection:e,scrollOffset:t,scrollUpdateWasRequested:n})})),r._getItemStyle=void 0,r._getItemStyle=function(e){var t,o=r.props,i=o.direction,s=o.itemSize,l=o.layout,c=r._getItemStyleCache(f&&s,f&&l,f&&i);if(c.hasOwnProperty(e))t=c[e];else{var u=n(r.props,e,r._instanceProps),h=a(r.props,e,r._instanceProps),d="horizontal"===i||"horizontal"===l,p="rtl"===i,v=d?u:0;c[e]=t={position:"absolute",left:p?void 0:v,right:p?v:void 0,top:d?0:u,height:d?"100%":h,width:d?h:"100%"}}return t},r._getItemStyleCache=void 0,r._getItemStyleCache=uo((function(e,t,n){return{}})),r._onScrollHorizontal=function(e){var t=e.currentTarget,n=t.clientWidth,o=t.scrollLeft,i=t.scrollWidth;r.setState((function(e){if(e.scrollOffset===o)return null;var t=r.props.direction,a=o;if("rtl"===t)switch(yo()){case"negative":a=-o;break;case"positive-descending":a=i-n-o}return a=Math.max(0,Math.min(a,i-n)),{isScrolling:!0,scrollDirection:e.scrollOffset<a?"forward":"backward",scrollOffset:a,scrollUpdateWasRequested:!1}}),r._resetIsScrollingDebounced)},r._onScrollVertical=function(e){var t=e.currentTarget,n=t.clientHeight,o=t.scrollHeight,i=t.scrollTop;r.setState((function(e){if(e.scrollOffset===i)return null;var t=Math.max(0,Math.min(i,o-n));return{isScrolling:!0,scrollDirection:e.scrollOffset<t?"forward":"backward",scrollOffset:t,scrollUpdateWasRequested:!1}}),r._resetIsScrollingDebounced)},r._outerRefSetter=function(e){var t=r.props.outerRef;r._outerRef=e,"function"==typeof t?t(e):null!=t&&"object"==typeof t&&t.hasOwnProperty("current")&&(t.current=e)},r._resetIsScrollingDebounced=function(){var e,t,n,o;null!==r._resetIsScrollingTimeoutId&&ho(r._resetIsScrollingTimeoutId),r._resetIsScrollingTimeoutId=(e=r._resetIsScrolling,t=150,n=fo(),o={id:requestAnimationFrame((function r(){fo()-n>=t?e.call(null):o.id=requestAnimationFrame(r)}))})},r._resetIsScrolling=function(){r._resetIsScrollingTimeoutId=null,r.setState({isScrolling:!1},(function(){r._getItemStyleCache(-1,null)}))},r}o=e,(t=d).prototype=Object.create(o.prototype),t.prototype.constructor=t,so(t,o),d.getDerivedStateFromProps=function(e,t){return jo(e,t),h(e),null};var p=d.prototype;return p.scrollTo=function(e){e=Math.max(0,e),this.setState((function(t){return t.scrollOffset===e?null:{scrollDirection:t.scrollOffset<e?"forward":"backward",scrollOffset:e,scrollUpdateWasRequested:!0}}),this._resetIsScrollingDebounced)},p.scrollToItem=function(e,t){void 0===t&&(t="auto");var n=this.props,r=n.itemCount,o=n.layout,i=this.state.scrollOffset;e=Math.max(0,Math.min(e,r-1));var a=0;if(this._outerRef){var l=this._outerRef;a="vertical"===o?l.scrollWidth>l.clientWidth?vo():0:l.scrollHeight>l.clientHeight?vo():0}this.scrollTo(s(this.props,e,t,i,this._instanceProps,a))},p.componentDidMount=function(){var e=this.props,t=e.direction,n=e.initialScrollOffset,r=e.layout;if("number"==typeof n&&null!=this._outerRef){var o=this._outerRef;"horizontal"===t||"horizontal"===r?o.scrollLeft=n:o.scrollTop=n}this._callPropsCallbacks()},p.componentDidUpdate=function(){var e=this.props,t=e.direction,n=e.layout,r=this.state,o=r.scrollOffset;if(r.scrollUpdateWasRequested&&null!=this._outerRef){var i=this._outerRef;if("horizontal"===t||"horizontal"===n)if("rtl"===t)switch(yo()){case"negative":i.scrollLeft=-o;break;case"positive-ascending":i.scrollLeft=o;break;default:var a=i.clientWidth,s=i.scrollWidth;i.scrollLeft=s-a-o}else i.scrollLeft=o;else i.scrollTop=o}this._callPropsCallbacks()},p.componentWillUnmount=function(){null!==this._resetIsScrollingTimeoutId&&ho(this._resetIsScrollingTimeoutId)},p.render=function(){var e=this.props,t=e.children,n=e.className,o=e.direction,a=e.height,s=e.innerRef,l=e.innerElementType,c=e.innerTagName,u=e.itemCount,f=e.itemData,h=e.itemKey,d=void 0===h?go:h,p=e.layout,v=e.outerElementType,m=e.outerTagName,y=e.style,g=e.useIsScrolling,b=e.width,x=this.state.isScrolling,w="horizontal"===o||"horizontal"===p,j=w?this._onScrollHorizontal:this._onScrollVertical,_=this._getRangeToRender(),S=_[0],E=_[1],k=[];if(u>0)for(var M=S;M<=E;M++)k.push(r(t,{data:f,key:d(M,f),index:M,isScrolling:g?x:void 0,style:this._getItemStyle(M)}));var A=i(this.props,this._instanceProps);return r(v||m||"div",{className:n,onScroll:j,ref:this._outerRefSetter,style:io({position:"relative",height:a,width:b,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:o},y)},r(l||c||"div",{children:k,ref:s,style:{height:w?"100%":A,pointerEvents:x?"none":void 0,width:w?A:"100%"}}))},p._callPropsCallbacks=function(){if("function"==typeof this.props.onItemsRendered&&this.props.itemCount>0){var e=this._getRangeToRender(),t=e[0],n=e[1],r=e[2],o=e[3];this._callOnItemsRendered(t,n,r,o)}if("function"==typeof this.props.onScroll){var i=this.state,a=i.scrollDirection,s=i.scrollOffset,l=i.scrollUpdateWasRequested;this._callOnScroll(a,s,l)}},p._getRangeToRender=function(){var e=this.props,t=e.itemCount,n=e.overscanCount,r=this.state,o=r.isScrolling,i=r.scrollDirection,a=r.scrollOffset;if(0===t)return[0,0,0,0];var s=l(this.props,a,this._instanceProps),u=c(this.props,s,a,this._instanceProps),f=o&&"backward"!==i?1:Math.max(1,n),h=o&&"forward"!==i?1:Math.max(1,n);return[Math.max(0,s-f),Math.max(0,Math.min(t-1,u+h)),s,u]},d}(o),t.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},t}"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&void 0!==window.WeakSet&&(bo=new WeakSet,xo=new WeakSet);var jo=function(e,t){var n=e.children,r=e.direction,o=e.height,i=e.layout,a=e.innerTagName,s=e.outerTagName,l=e.width,c=t.instance;if("production"!==process.env.NODE_ENV){null==a&&null==s||xo&&!xo.has(c)&&(xo.add(c),console.warn("The innerTagName and outerTagName props have been deprecated. Please use the innerElementType and outerElementType props instead."));var u="horizontal"===r||"horizontal"===i;switch(r){case"horizontal":case"vertical":bo&&!bo.has(c)&&(bo.add(c),console.warn('The direction prop should be either "ltr" (default) or "rtl". Please use the layout prop to specify "vertical" (default) or "horizontal" orientation.'));break;case"ltr":case"rtl":break;default:throw Error('An invalid "direction" prop has been specified. Value should be either "ltr" or "rtl". "'+r+'" was specified.')}switch(i){case"horizontal":case"vertical":break;default:throw Error('An invalid "layout" prop has been specified. Value should be either "horizontal" or "vertical". "'+i+'" was specified.')}if(null==n)throw Error('An invalid "children" prop has been specified. Value should be a React component. "'+(null===n?"null":typeof n)+'" was specified.');if(u&&"number"!=typeof l)throw Error('An invalid "width" prop has been specified. Horizontal lists must specify a number for width. "'+(null===l?"null":typeof l)+'" was specified.');if(!u&&"number"!=typeof o)throw Error('An invalid "height" prop has been specified. Vertical lists must specify a number for height. "'+(null===o?"null":typeof o)+'" was specified.')}},_o=function(e,t,n){var r=e.itemSize,o=n.itemMetadataMap,i=n.lastMeasuredIndex;if(t>i){var a=0;if(i>=0){var s=o[i];a=s.offset+s.size}for(var l=i+1;l<=t;l++){var c=r(l);o[l]={offset:a,size:c},a+=c}n.lastMeasuredIndex=t}return o[t]},So=function(e,t,n,r,o){for(;r<=n;){var i=r+Math.floor((n-r)/2),a=_o(e,i,t).offset;if(a===o)return i;a<o?r=i+1:a>o&&(n=i-1)}return r>0?r-1:0},Eo=function(e,t,n,r){for(var o=e.itemCount,i=1;n<o&&_o(e,n,t).offset<r;)n+=i,i*=2;return So(e,t,Math.min(n,o-1),Math.floor(n/2),r)},ko=function(e,t){var n=e.itemCount,r=t.itemMetadataMap,o=t.estimatedItemSize,i=t.lastMeasuredIndex,a=0;if(i>=n&&(i=n-1),i>=0){var s=r[i];a=s.offset+s.size}return a+(n-i-1)*o},Mo=wo({getItemOffset:function(e,t,n){return _o(e,t,n).offset},getItemSize:function(e,t,n){return n.itemMetadataMap[t].size},getEstimatedTotalSize:ko,getOffsetForIndexAndAlignment:function(e,t,n,r,o,i){var a=e.direction,s=e.height,l=e.layout,c=e.width,u="horizontal"===a||"horizontal"===l?c:s,f=_o(e,t,o),h=ko(e,o),d=Math.max(0,Math.min(h-u,f.offset)),p=Math.max(0,f.offset-u+f.size+i);switch("smart"===n&&(n=r>=p-u&&r<=d+u?"auto":"center"),n){case"start":return d;case"end":return p;case"center":return Math.round(p+(d-p)/2);default:return r>=p&&r<=d?r:r<p?p:d}},getStartIndexForOffset:function(e,t,n){return function(e,t,n){var r=t.itemMetadataMap,o=t.lastMeasuredIndex;return(o>0?r[o].offset:0)>=n?So(e,t,o,0,n):Eo(e,t,Math.max(0,o),n)}(e,n,t)},getStopIndexForStartIndex:function(e,t,n,r){for(var o=e.direction,i=e.height,a=e.itemCount,s=e.layout,l=e.width,c="horizontal"===o||"horizontal"===s?l:i,u=_o(e,t,r),f=n+c,h=u.offset+u.size,d=t;d<a-1&&h<f;)d++,h+=_o(e,d,r).size;return d},initInstanceProps:function(e,t){var n={itemMetadataMap:{},estimatedItemSize:e.estimatedItemSize||50,lastMeasuredIndex:-1};return t.resetAfterIndex=function(e,r){void 0===r&&(r=!0),n.lastMeasuredIndex=Math.min(n.lastMeasuredIndex,e-1),t._getItemStyleCache(-1),r&&t.forceUpdate()},n},shouldResetStyleCacheOnItemSizeChange:!1,validateProps:function(e){var t=e.itemSize;if("production"!==process.env.NODE_ENV&&"function"!=typeof t)throw Error('An invalid "itemSize" prop has been specified. Value should be a function. "'+(null===t?"null":typeof t)+'" was specified.')}});function Ao(){return e("svg",{width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:e("path",{d:"M15.7955 15.8111L21 21M18 10.5C18 14.6421 14.6421 18 10.5 18C6.35786 18 3 14.6421 3 10.5C3 6.35786 6.35786 3 10.5 3C14.6421 3 18 6.35786 18 10.5Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function Oo(e){const t=window.getComputedStyle(e),n=Number.parseFloat(t.lineHeight);let r=n;return Number.isNaN(n)&&(r=1.2*Number.parseFloat(t.fontSize)),Math.round(e.scrollHeight/r)}!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}(':root {\n --diff-row-height: 20px;\n}\n\n.virtual-json-diff-list-container {\n scrollbar-width: none;\n --sb-track-color: #232e33;\n --sb-thumb-color: #4560f8;\n --sb-size: 6px;\n}\n\n.diff-viewer-container {\n background-color: #282a36;\n font-size: 12px;\n text-align: left;\n padding-bottom: 12px;\n}\n\n.json-diff-viewer-virtual pre {\n overflow-x: auto;\n white-space: pre;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom {\n background: #282a36;\n color: #f8f8f2;\n width: 100%;\n font-family:\n -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif,\n "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr td {\n max-width: min-content;\n vertical-align: unset;\n padding: 0;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr td.line-number {\n color: #999;\n padding: 2px;\n padding-right: 6px;\n text-align: right;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom table {\n table-layout: fixed;\n width: 100%;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr td:nth-child(1),\n.json-diff-viewer.json-diff-viewer-theme-custom tr td:nth-child(3) {\n width: 30px !important;\n min-width: 30px;\n max-width: 30px;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr td:nth-child(2),\n.json-diff-viewer.json-diff-viewer-theme-custom tr td:nth-child(4) {\n width: auto;\n max-width: 300px;\n overflow-wrap: anywhere;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr td pre {\n font-family:\n -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif,\n "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n overflow: hidden;\n margin: 0;\n padding-left: 4px;\n margin-right: 29px;\n font-size: 12px;\n min-width: 300px;\n line-height: var(--diff-row-height);\n white-space: pre-wrap;\n word-break: break-all;\n}\n\n/* ADD REMOVE MODIFY COLORS */\n.json-diff-viewer.json-diff-viewer-theme-custom tr .line-add {\n border-left: 1px solid #a5ff99;\n background: rgba(100, 182, 67, 0.08);\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr .line-remove {\n border-left: 1px solid #ffaa99;\n background: rgba(160, 128, 100, 0.08);\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr .line-modify {\n border-left: 1px solid #ecff99;\n background: rgba(182, 180, 67, 0.08);\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr .line-number {\n background: unset;\n padding: 0 4px;\n border-left: 0;\n border-bottom: none;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr.expand-line td {\n text-align: center;\n}\n\n/* EDITOR COLORS */\n.json-diff-viewer.json-diff-viewer-theme-custom tr td pre span.inline-diff-add {\n background: rgba(0, 0, 0, 0.08);\n text-decoration: underline;\n word-break: break-all;\n}\n.json-diff-viewer.json-diff-viewer-theme-custom tr td pre span.inline-diff-remove {\n background: rgba(0, 0, 0, 0.08);\n text-decoration: line-through;\n word-break: break-all;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr:hover {\n background: #53535f54;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom tr.expand-line button {\n color: #1e616d;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom .string {\n color: #e6db74;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom .number,\n.json-diff-viewer.json-diff-viewer-theme-custom .boolean,\n.json-diff-viewer.json-diff-viewer-theme-custom .null {\n color: #ae81ff;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom .key {\n color: #66d9ef;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom .invalid {\n background: #960050;\n color: #fff;\n}\n\n.diff-viewer-container button {\n border-radius: 4px;\n border: 1px solid transparent;\n font-size: 1em;\n font-weight: 500;\n font-family: inherit;\n color: white;\n background-color: #1a1a1a;\n cursor: pointer;\n transition: border-color 0.25s;\n}\n\n.diff-viewer-container button:hover {\n border-color: #649dffab;\n}\n\n.diff-viewer-container button:focus,\n.diff-viewer-container button:focus-visible {\n outline: 4px auto -webkit-focus-ring-color;\n}\n\n.collapsed-button {\n display: flex;\n background-color: #262626;\n justify-content: space-around;\n align-items: center;\n}\n\n.collapsed-button button {\n height: 20px;\n color: rgba(255, 255, 255, 0.7);\n padding: 0px 8px;\n line-height: 20px;\n display: flex;\n justify-content: center;\n align-items: center;\n background: #26262600;\n border-width: 1px;\n border-color: #434343;\n cursor: pointer;\n}\n\n.hide-all-button {\n text-align: right;\n margin-top: 10px;\n}\n\n.hide-all-button button {\n height: 28px;\n padding: 0 8px;\n line-height: 20px;\n background: #26262600;\n color: white;\n border-width: 1px;\n border-color: #434343;\n cursor: pointer;\n}\n\n/* HEADER */\n.json-diff-header {\n background: #2f323e;\n padding: 10px;\n border-bottom: 1px solid #353846;\n color: #ffffffe5;\n font-family:\n -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif,\n "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n}\n\n.json-diff-header .json-diff-title-container {\n width: 100%;\n display: flex;\n flex-direction: row;\n}\n\n.json-diff-header .json-diff-title-container div {\n flex: 0.495;\n}\n\n/* HEADER SEARCH */\n.json-diff-header .search-container {\n margin-bottom: 8px;\n width: 100%;\n}\n\n.json-diff-header .search-input-container {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.json-diff-header .search-input-container svg {\n width: 1em;\n height: 1em;\n}\n\n.json-diff-header .search-input-container input {\n border: 1px solid #434343;\n border-radius: 4px;\n padding: 6px;\n width: 100%;\n background: #2f323e;\n color: white;\n}\n\n.json-diff-header .search-results {\n margin-top: 3px;\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.json-diff-header .search-results button {\n height: 20px;\n padding: 0 8px;\n line-height: 20px;\n background: #26262600;\n border-width: 1px;\n border-color: #434343;\n cursor: pointer;\n color: white;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom.has-search tr td pre span.token.search-match {\n background-color: #ffeb3b;\n color: #000;\n padding: 0 2px;\n border-radius: 2px;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom .search-highlight {\n background-color: #ffeb3b;\n padding: 0 2px;\n border-radius: 2px;\n color: #000;\n}\n\n.json-diff-viewer.json-diff-viewer-theme-custom .token .search-highlight {\n background-color: #ffeb3b !important;\n color: #000 !important;\n}\n\n/* WEBKIT SCROLLBAR */\n.json-diff-viewer-virtual pre::-webkit-scrollbar {\n display: none;\n}\n\n.virtual-json-diff-list-container::-webkit-scrollbar {\n width: var(--sb-size);\n display: none;\n}\n\n.virtual-json-diff-list-container::-webkit-scrollbar-track {\n background: var(--sb-track-color);\n display: none;\n border-radius: 3px;\n}\n\n.virtual-json-diff-list-container::-webkit-scrollbar-thumb {\n background: var(--sb-thumb-color);\n border-radius: 3px;\n display: none;\n}\n\n@supports not selector(::-webkit-scrollbar) {\n .virtual-json-diff-list-container {\n scrollbar-color: var(--sb-thumb-color) var(--sb-track-color);\n }\n}\n\n/* MINIMAP IMPROVEMENTS */\n.diff-viewer-container .minimap-overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n display: flex;\n pointer-events: none;\n}\n\n.diff-viewer-container .minimap-overlay .half {\n flex: 1;\n display: flex;\n align-items: center;\n}\n\n.diff-viewer-container .minimap-overlay .left-map-holder {\n justify-content: flex-end;\n min-width: 334px;\n}\n\n.diff-viewer-container .minimap-overlay .right-map-holder {\n justify-content: flex-end;\n}\n\n.diff-viewer-container .minimap-overlay .minimap-wrapper {\n opacity: 0.65;\n pointer-events: auto;\n}\n\n.diff-viewer-container .minimap-overlay .minimap-wrapper:hover {\n opacity: 0.85;\n}\n');const qo="json-diff-viewer-theme-custom";function No(){if("undefined"==typeof document)return 20;try{const e=document.documentElement,t=getComputedStyle(e).getPropertyValue("--diff-row-height"),n=Number.parseInt(t,10);return Number.isNaN(n)?20:n}catch{return 20}}function Io(e){return e&&"object"==typeof e&&"type"in e&&"collapsed"===e.type}function Co(e,t="json-diff-viewer-theme-custom"){if(!e){return void document.querySelectorAll(`.${t} span.token.search-match`).forEach((e=>e.classList.remove("search-match")))}const n=e.replaceAll("(","").replaceAll(")",""),r=new RegExp(n,"gi");document.querySelectorAll(`.${t} span.token`).forEach((e=>{const t=e.textContent||"";r.test(t)?e.classList.add("search-match"):e.classList.remove("search-match")}))}function Do(e,t,n){const[r,o]=i({term:t??"",results:[],currentIndex:0}),s=l(),u=a((t=>{o((e=>({...e,term:t}))),s.current&&clearTimeout(s.current),s.current=setTimeout((()=>{const n=function(e,t){if(!e)return[];const n=[],r=new RegExp(e,"gi");return t.forEach(((e,t)=>{"object"==typeof e&&"text"in e&&r.test(e.text)&&n.push(t)})),n}(t,e);o((e=>({...e,results:n,currentIndex:0})))}),300)}),[e]),f=a((e=>{if(0===r.results.length)return;const t="next"===e?(r.currentIndex+1)%r.results.length:(r.currentIndex-1+r.results.length)%r.results.length;o((e=>({...e,currentIndex:t})));const i=r.results[t];return n&&n(i),i}),[r,n]);return c((()=>{Co(r.term,qo);const e=new MutationObserver((()=>Co(r.term,qo))),t=document.querySelector(`.${qo}`);t&&e.observe(t,{childList:!0,subtree:!0});const n=document.querySelector(".virtual-json-diff-list-container");if(n){const t=()=>setTimeout((()=>Co(r.term,qo)),100);return n.addEventListener("scroll",t),()=>{e.disconnect(),n.removeEventListener("scroll",t)}}return()=>e.disconnect()}),[r.term]),c((()=>{void 0!==t&&u(t)}),[t,u]),{searchState:r,handleSearch:u,navigateMatch:f}}function $o(e){return"equal"===e.type&&""!==e.text}function Ro(e,t,n=3){if(!Array.isArray(e)||!Array.isArray(t))throw new TypeError("Both segments and diff must be arrays");const r=[];return e.forEach(((o,i)=>{if(o.isEqual){if(o.end-o.start<=2*n||o.isExpanded)for(let e=o.start;e<o.end;e++)r.push({...t[e],originalIndex:e});else{if(function(e,t,n){return 0===e||t[e-1].end<n.start&&t[e-1].isEqual}(i,e,o))for(let e=o.start;e<Math.min(o.start+n,o.end);e++)r.push({...t[e],originalIndex:e});o.end-(o.start+n)>n&&r.push({type:"collapsed",segmentIndex:i,originalIndex:r.length,level:0,text:""});for(let e=Math.max(o.end-n,o.start+n);e<o.end;e++)r.push({...t[e],originalIndex:e})}}else for(let e=o.start;e<o.end;e++)r.push({...t[e],originalIndex:e})})),r}const Bo="#363743";const Lo=({leftDiff:t,rightDiff:n,height:r,onScroll:o,miniMapWidth:i=20,currentScrollTop:s,searchResults:f=[],currentMatchIndex:h=-1})=>{const d=l(null),p=l(null),v=u((()=>No()),[]),{totalLines:m,viewportHeight:y}=u((()=>{const e=r/v,o=Math.max(t.length,n.length)||e;return{totalLines:o,viewportHeight:r*(1/(o/e))}}),[r,t.length,n.length]),{handleMouseDown:g,isDragging:b}=function({height:e,totalLines:t,viewportHeight:n,ROW_HEIGHT:r,onScroll:o,containerRef:i}){const s=l(!1),u=a((e=>!Number.isNaN(e)&&Number.isFinite(e)),[]),f=a((o=>(o-n/2)/e*t*r),[e,t,n,r]),h=a((()=>{const n=t*r;return Math.max(0,n-e)}),[t,r,e]),d=a(((e,t)=>{const r=e.clientY-t.top,i=h();if(e.clientY+n/2>t.bottom){const e=t.bottom-t.top-n/2,r=f(e);u(r)&&o(Math.min(i,Math.max(0,r)))}else{const e=f(r);u(e)&&o(Math.min(i,Math.max(0,e)))}}),[f,h,u,o,n]),p=a((n=>{if(!s.current||!i.current)return;if(e<=0||t<=0)return;const r=i.current.getBoundingClientRect();d(n,r)}),[i,e,t,d]),v=a((()=>{s.current=!1,window.removeEventListener("mousemove",p),window.removeEventListener("mouseup",v)}),[p]),m=a((e=>{if(s.current=!0,window.addEventListener("mousemove",p),window.addEventListener("mouseup",v),!i.current)return;const t=i.current.getBoundingClientRect();d(e.nativeEvent,t)}),[p,v,i,d]);return c((()=>{const e=()=>{s.current=!1};return window.addEventListener("mouseup",e),()=>window.removeEventListener("mouseup",e)}),[]),{handleMouseDown:m,isDragging:s}}({height:r,totalLines:m,viewportHeight:y,ROW_HEIGHT:v,onScroll:o,containerRef:p}),{drawMinimap:x,drawScrollBox:w}=function({canvasRef:e,containerRef:t,height:n,miniMapWidth:r,leftDiff:o,rightDiff:i,currentScrollTop:s,searchResults:l,currentMatchIndex:f,isDragging:h,totalLines:d,ROW_HEIGHT:p,viewportHeight:v}){const m=a(((e,t,n,r,o)=>{if("collapsed"===t.type)e.fillStyle=Bo;else switch(t.type){case"equal":e.fillStyle=Bo;break;case"add":e.fillStyle="#4CAF50";break;case"remove":e.fillStyle="#F44336";break;case"modify":e.fillStyle="#FFC107"}e.fillRect(r,n,o,p)}),[p]),y=u((()=>{const e=document.createElement("canvas");e.width=r,e.height=n;const t=e.getContext("2d");if(!t)return null;const a=n/d;return o.forEach(((e,n)=>{m(t,e,n*a,0,r/2)})),i.forEach(((e,n)=>{m(t,e,n*a,r/2,r/2)})),l.forEach((e=>{const n=e*a,o=Math.max(1,a);t.fillStyle="#ffd700",t.fillRect(0,n,r,o)})),e}),[o,i,l,n,d,r,m]),g=a(((e,t)=>{if(!y)return;e.clearRect(0,0,r,n),e.drawImage(y,0,0);const o=s/(d*p)*n;if(e.fillStyle=t,e.fillRect(0,o,r,v),f>=0&&void 0!==l[f]){const t=n/d,o=l[f]*t,i=Math.max(1,t);e.fillStyle="#ff4500",e.fillRect(0,o,r,i)}}),[y,s,d,p,n,r,v,f,l]),b=a((()=>{const n=e.current;if(!n)return;const r=n.getContext("2d");r&&(r.clearRect(0,0,n.width,n.height),h.current?(t.current&&(t.current.style.opacity="0.85"),g(r,"#7B7B7Bcc")):(t.current&&(t.current.style.opacity="0.65"),g(r,"#7B7B7B80")))}),[g]);return c((()=>{b()}),[b]),{drawScrollBox:g,drawMinimap:b}}({canvasRef:d,containerRef:p,height:r,miniMapWidth:i,leftDiff:t,rightDiff:n,currentScrollTop:s,searchResults:f,currentMatchIndex:h,isDragging:b,totalLines:m,ROW_HEIGHT:v,viewportHeight:y});c((()=>{x()}),[x]);const j=a((e=>{if(!p.current)return;const t=p.current.getBoundingClientRect(),n=e.clientY-t.top,o=s/(m*v)*r,i=n>o&&n<o+y;x();const a=d.current;if(a){const e=a.getContext("2d");if(!e)return;i&&w(e,"#7B7B7Bcc")}}),[r,m,y,s,x]);return e("div",{ref:p,className:"minimap-wrapper",style:{width:i,height:r,position:"relative",cursor:"pointer"},onMouseDown:g,onMouseMove:j,onMouseLeave:()=>{x()},children:e("canvas",{ref:d,width:i,height:r,style:{width:"100%",height:"100%"}})})};function zo({index:n,style:r,data:o}){const{onExpand:i,searchTerm:a,inlineDiffOptions:s}=o,l=o.leftDiff[n],c=o.rightDiff[n];if(Io(l))return t("div",{className:"collapsed-button",style:r,children:[e("button",{onClick:()=>i(l.segmentIndex),className:"text-blue-500 underline",children:"Show Hidden Lines"}),e("button",{onClick:()=>i(l.segmentIndex),className:"text-blue-500 underline",children:"Show Hidden Lines"})]});const u={...l},f={...c};return e("div",{style:r,children:e(oo,{indent:4,className:`${qo} ${a?"has-search":""}`,lineNumbers:!0,diff:[[u],[f]],highlightInlineDiff:!0,inlineDiffOptions:{mode:"char",...s},syntaxHighlight:{theme:"monokai"}})})}const To=({oldValue:n,newValue:r,height:o,searchTerm:f,leftTitle:h,rightTitle:d,hideSearch:p,showSingleMinimap:v,onSearchMatch:m,differOptions:y,className:g,miniMapWidth:b,inlineDiffOptions:x})=>{const w=l(null),[j,_]=i(0),[S,E]=i([]),k=u((()=>No()),[]),M=u((()=>new Wr({detectCircular:!0,maxDepth:20,showModifications:!0,arrayDiffMethod:"lcs",preserveKeyOrder:"before",...y})),[y]),A=u((()=>n&&r?M.diff(n,r):[[],[]]),[n,r,M]),[O,q]=A,[N,I]=i([]),[C,D]=i([]),$=function(e){const[t,n]=i([]),r=a((()=>{const e=document.querySelectorAll(".json-diff-viewer pre"),t=[];for(let n=0;n<e.length;n+=2){const r=Oo(e[n]),o=Oo(e[n+1]);t.push(Math.max(r,o))}n(t)}),[]);return s((()=>{r()}),[e]),s((()=>(window.addEventListener("resize",r),()=>window.removeEventListener("resize",r))),[r]),t}(N);c((()=>{const e=function(e,t=3){if(!Array.isArray(e))throw new TypeError("Diff input must be an array");const n=[];let r=0;if(r<e.length&&$o(e[r])){let o=Math.min(r+t,e.length);for(;o<e.length&&$o(e[o]);)o++;n.push({start:r,end:o,isEqual:!0}),r=o}for(;r<e.length;)if($o(e[r])){let t=r;for(;t<e.length&&$o(e[t]);)t++;n.push({start:r,end:t,isEqual:!0}),r=t}else{const o=Math.max(0,r-t),i=Math.min(e.length,r+1+t);o<r&&(0===n.length||n[n.length-1].end<=o)&&n.push({start:o,end:r,isEqual:!0}),n.push({start:r,end:r+1,isEqual:!1}),r+1<i&&n.push({start:r+1,end:i,isEqual:!0}),r=i}return n}(O);E(e)}),[O]),c((()=>{const e=Ro(S,O),t=Ro(S,q);I(e),D(t)}),[S,O,q]),c((()=>{w.current?.resetAfterIndex(0)}),[N]);const{searchState:R,handleSearch:B,navigateMatch:L}=Do(N,f,(e=>{w.current?.scrollToItem(e,"center"),m?.(e)})),z=a((e=>{E((t=>{const n=[...t],r=n[e];if(!r||!r.isEqual)return t;const o={...r,isExpanded:!0,originalStart:r.start,originalEnd:r.end,start:r.start,end:r.end};return n[e]=o,n}))}),[]),T=a((()=>{E((e=>e.map((e=>e.isEqual&&e.isExpanded?{...e,isExpanded:!1,start:e.originalStart??e.start,end:e.originalEnd??e.end}:e))))}),[]);c((()=>{w.current?.resetAfterIndex(0,!0)}),[$]);const P=a((e=>Io(N[e])?20:($[e]??1)*k),[N,$]),W=u((()=>S.some((e=>e.isEqual&&e.isExpanded))),[S]),F=u((()=>({leftDiff:N,rightDiff:C,onExpand:z,searchTerm:R.term,inlineDiffOptions:x})),[N,C,z,R.term,x]),H={leftDiff:N,rightDiff:C,height:o,miniMapWidth:b,currentScrollTop:j,searchResults:R.results,currentMatchIndex:R.currentIndex,onScroll:e=>w.current?.scrollTo(e)};return t("div",{className:"diff-viewer-container"+(g?` ${g}`:""),children:[t("div",{className:"json-diff-header",children:[!p&&t("div",{className:"search-container",children:[t("div",{className:"search-input-container",children:[e("span",{role:"img","aria-label":"search",children:e(Ao,{})}),e("input",{type:"text",placeholder:"Search in JSON...",value:R.term,onChange:e=>B(e.target.value)})]}),R.results.length>0&&t("div",{className:"search-results",children:[t("span",{children:[R.currentIndex+1," ","of"," ",R.results.length," ","matches"]}),e("button",{onClick:()=>L("prev"),children:"Previous"}),e("button",{onClick:()=>L("next"),children:"Next"})]})]}),t("div",{className:"json-diff-title-container",children:[e("div",{children:e("span",{children:h})}),e("div",{children:e("span",{children:d})})]})]}),t("div",{style:{display:"flex",gap:"8px",position:"relative"},children:[e(Mo,{ref:w,className:"virtual-json-diff-list-container",height:o,itemCount:Math.max(N.length,C.length),itemSize:P,overscanCount:28,width:"100%",itemData:F,onScroll:({scrollOffset:e})=>_(e),children:zo}),t("div",{className:"minimap-overlay",children:[e("div",{className:"half left-map-holder",children:!v&&e(Lo,{...H})}),e("div",{className:"half right-map-holder",children:e(Lo,{...H})})]})]}),W&&e("div",{className:"hide-all-button",children:e("button",{onClick:T,children:"Hide All Expanded Lines"})})]})};export{To as VirtualDiffViewer};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|