@teambit/component.ui.component-compare.component-compare 0.0.175 → 0.0.177
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/component-compare.tsx +230 -225
- package/dist/component-compare.d.ts +2 -2
- package/dist/component-compare.js +152 -199
- package/dist/component-compare.js.map +1 -1
- package/dist/index.js +1 -5
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.json +21 -14
- package/package.json +10 -15
- package/tsconfig.json +21 -14
- package/types/asset.d.ts +15 -3
- /package/dist/{preview-1705406853442.js → preview-1708958940676.js} +0 -0
package/component-compare.tsx
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/* eslint-disable react/destructuring-assignment */
|
|
2
|
+
/* eslint-disable react/require-default-props */
|
|
1
3
|
import React, { useContext, useMemo, HTMLAttributes } from 'react';
|
|
2
4
|
import classnames from 'classnames';
|
|
3
5
|
import { LegacyComponentLog } from '@teambit/legacy-component-log';
|
|
@@ -40,12 +42,220 @@ const findPrevVersionFromCurrent = (compareVersion) => (_, index: number, logs:
|
|
|
40
42
|
return logs[prevIndex].tag === compareVersion || logs[prevIndex].hash === compareVersion;
|
|
41
43
|
};
|
|
42
44
|
|
|
45
|
+
function deriveChangeTypeCssForNav(tab: TabItem, changed: ChangeType[] | null | undefined): string | null {
|
|
46
|
+
if (!changed || !tab.changeType) return null;
|
|
47
|
+
const hasChanged = changed.some((change) => tab.changeType === change);
|
|
48
|
+
return hasChanged ? styles.hasChanged : null;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function onNavClicked({ hooks, id }: { hooks?: ComponentCompareHooks; id?: string }) {
|
|
52
|
+
if (!hooks?.tabs?.onClick) return undefined;
|
|
53
|
+
return (e) => hooks?.tabs?.onClick?.(id, e);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function TabLoader() {
|
|
57
|
+
return <WordSkeleton className={styles.tabLoader} length={5} />;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function CompareMenuTab({
|
|
61
|
+
children,
|
|
62
|
+
changed,
|
|
63
|
+
changeTypeCss,
|
|
64
|
+
loading,
|
|
65
|
+
className,
|
|
66
|
+
...rest
|
|
67
|
+
}: HTMLAttributes<HTMLDivElement> & {
|
|
68
|
+
changeTypeCss?: string | null;
|
|
69
|
+
loading?: boolean;
|
|
70
|
+
changed?: ChangeType[] | null;
|
|
71
|
+
}) {
|
|
72
|
+
const hasChanged = useMemo(
|
|
73
|
+
() => changed?.some((change) => change !== ChangeType.NONE && change !== ChangeType.NEW),
|
|
74
|
+
[changeTypeCss]
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
if (loading) return <TabLoader />;
|
|
78
|
+
|
|
79
|
+
return (
|
|
80
|
+
<div {...rest} className={classnames(styles.compareMenuTab, className)}>
|
|
81
|
+
{changeTypeCss && hasChanged && <div className={classnames(styles.indicator, changeTypeCss)} />}
|
|
82
|
+
<div className={classnames(styles.menuTab)}>{children}</div>
|
|
83
|
+
</div>
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function CompareMenuNav({ tabs, state, hooks, changes: changed }: ComponentCompareProps) {
|
|
88
|
+
const activeTab = state?.tabs?.id;
|
|
89
|
+
const isControlled = state?.tabs?.controlled;
|
|
90
|
+
const tabsFromProps = extractLazyLoadedData(tabs) || [];
|
|
91
|
+
|
|
92
|
+
const extractedTabs: [string, NavPlugin & TabItem][] = useMemo(
|
|
93
|
+
() =>
|
|
94
|
+
tabsFromProps.sort(sortTabs).map((tab, index) => {
|
|
95
|
+
const isActive = !state ? undefined : !!activeTab && !!tab?.id && activeTab === tab.id;
|
|
96
|
+
const changeTypeCss = deriveChangeTypeCssForNav(tab, changed);
|
|
97
|
+
const loading = changed === undefined;
|
|
98
|
+
const key = `${tab.id}-tab-${changeTypeCss}`;
|
|
99
|
+
return [
|
|
100
|
+
tab.id || `tab-${index}`,
|
|
101
|
+
{
|
|
102
|
+
...tab,
|
|
103
|
+
props: {
|
|
104
|
+
...(tab.props || {}),
|
|
105
|
+
key,
|
|
106
|
+
displayName: (!loading && tab.displayName) || undefined,
|
|
107
|
+
active: isActive,
|
|
108
|
+
onClick: onNavClicked({ id: tab.id, hooks }),
|
|
109
|
+
href: (!isControlled && tab.props?.href) || undefined,
|
|
110
|
+
activeClassName: (!loading && styles.activeNav) || styles.loadingNav,
|
|
111
|
+
className: styles.navItem,
|
|
112
|
+
children: (
|
|
113
|
+
<CompareMenuTab key={key} loading={loading} changeTypeCss={changeTypeCss} changed={changed}>
|
|
114
|
+
{tab.props?.children}
|
|
115
|
+
</CompareMenuTab>
|
|
116
|
+
),
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
];
|
|
120
|
+
}),
|
|
121
|
+
[tabsFromProps.length, activeTab, changed, changed?.length]
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
const sortedTabs = useMemo(
|
|
125
|
+
() => extractedTabs.filter(([, tab]) => !tab.widget),
|
|
126
|
+
[extractedTabs.length, activeTab, changed?.length, changed]
|
|
127
|
+
);
|
|
128
|
+
const sortedWidgets = useMemo(
|
|
129
|
+
() => extractedTabs.filter(([, tab]) => tab.widget),
|
|
130
|
+
[extractedTabs.length, activeTab, changed?.length, changed]
|
|
131
|
+
);
|
|
132
|
+
|
|
133
|
+
return (
|
|
134
|
+
<div className={styles.navContainer}>
|
|
135
|
+
<CollapsibleMenuNav navPlugins={sortedTabs} widgetPlugins={sortedWidgets} />
|
|
136
|
+
</div>
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function deriveChangeType(
|
|
141
|
+
baseId?: ComponentID,
|
|
142
|
+
compareId?: ComponentID,
|
|
143
|
+
fileCompareDataByName?: Map<string, FileCompareResult> | null,
|
|
144
|
+
fieldCompareDataByName?: Map<string, FieldCompareResult> | null,
|
|
145
|
+
testCompareDataByName?: Map<string, FileCompareResult> | null
|
|
146
|
+
): ChangeType[] | undefined | null {
|
|
147
|
+
if (!baseId && !compareId) return null;
|
|
148
|
+
if (!baseId?.version) return [ChangeType.NEW];
|
|
149
|
+
|
|
150
|
+
if (fileCompareDataByName === null || fieldCompareDataByName === null) return null;
|
|
151
|
+
if (fileCompareDataByName === undefined || fieldCompareDataByName === undefined) return undefined;
|
|
152
|
+
|
|
153
|
+
const fileCompareData = [...fileCompareDataByName.values()];
|
|
154
|
+
|
|
155
|
+
if (
|
|
156
|
+
fieldCompareDataByName.size === 0 &&
|
|
157
|
+
(fileCompareDataByName.size === 0 || fileCompareData.every((f) => f.status === 'UNCHANGED'))
|
|
158
|
+
) {
|
|
159
|
+
return [ChangeType.NONE];
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
const changed: ChangeType[] = [];
|
|
163
|
+
const DEPS_FIELD = ['dependencies', 'devDependencies', 'extensionDependencies', 'packageDependencies'];
|
|
164
|
+
|
|
165
|
+
if (testCompareDataByName?.size) {
|
|
166
|
+
changed.push(ChangeType.TESTS);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (fileCompareDataByName.size > 0 && fileCompareData.some((f) => f.status !== 'UNCHANGED')) {
|
|
170
|
+
changed.push(ChangeType.SOURCE_CODE);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
if (fieldCompareDataByName.size > 0) {
|
|
174
|
+
changed.push(ChangeType.ASPECTS);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
if ([...fieldCompareDataByName.values()].some((field) => DEPS_FIELD.includes(field.fieldName))) {
|
|
178
|
+
changed.push(ChangeType.DEPENDENCY);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
return changed;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
function CompareLoader({ className, ...rest }: React.HTMLAttributes<HTMLDivElement>) {
|
|
185
|
+
return (
|
|
186
|
+
<div className={className} {...rest}>
|
|
187
|
+
<BlockSkeleton className={styles.navLoader} lines={3} />
|
|
188
|
+
<div className={styles.compareLoader}>
|
|
189
|
+
<div className={styles.compareViewLoader}>
|
|
190
|
+
<BlockSkeleton lines={30} />
|
|
191
|
+
</div>
|
|
192
|
+
<div className={styles.compareSidebarLoader}>
|
|
193
|
+
<BlockSkeleton lines={30} />
|
|
194
|
+
</div>
|
|
195
|
+
</div>
|
|
196
|
+
</div>
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
function RenderCompareScreen(
|
|
201
|
+
props: ComponentCompareProps & {
|
|
202
|
+
baseVersion?: string;
|
|
203
|
+
compareVersion?: string;
|
|
204
|
+
compareHasLocalChanges?: boolean;
|
|
205
|
+
componentId: string;
|
|
206
|
+
loading?: boolean;
|
|
207
|
+
}
|
|
208
|
+
) {
|
|
209
|
+
const {
|
|
210
|
+
routes,
|
|
211
|
+
state,
|
|
212
|
+
loading,
|
|
213
|
+
Loader = CompareLoader,
|
|
214
|
+
baseVersion,
|
|
215
|
+
compareVersion,
|
|
216
|
+
compareHasLocalChanges,
|
|
217
|
+
componentId,
|
|
218
|
+
hidden,
|
|
219
|
+
} = props;
|
|
220
|
+
|
|
221
|
+
const showVersionPicker = state?.versionPicker?.element !== null;
|
|
222
|
+
|
|
223
|
+
return (
|
|
224
|
+
<>
|
|
225
|
+
{showVersionPicker && (
|
|
226
|
+
<div className={styles.top}>
|
|
227
|
+
{state?.versionPicker?.element || (
|
|
228
|
+
<ComponentCompareVersionPicker
|
|
229
|
+
componentId={componentId}
|
|
230
|
+
baseVersion={baseVersion}
|
|
231
|
+
compareVersion={compareVersion}
|
|
232
|
+
compareHasLocalChanges={compareHasLocalChanges}
|
|
233
|
+
host={props.host}
|
|
234
|
+
customUseComponent={props.customUseComponent}
|
|
235
|
+
/>
|
|
236
|
+
)}
|
|
237
|
+
</div>
|
|
238
|
+
)}
|
|
239
|
+
{loading && !hidden && <Loader className={classnames(styles.loader)} />}
|
|
240
|
+
{!loading && (
|
|
241
|
+
<div className={classnames(styles.bottom, hidden && styles.hidden)}>
|
|
242
|
+
<CompareMenuNav {...props} />
|
|
243
|
+
{(extractLazyLoadedData(routes) || []).length > 0 && (
|
|
244
|
+
<SlotRouter routes={extractLazyLoadedData(routes) || []} />
|
|
245
|
+
)}
|
|
246
|
+
{state?.tabs?.element}
|
|
247
|
+
</div>
|
|
248
|
+
)}
|
|
249
|
+
</>
|
|
250
|
+
);
|
|
251
|
+
}
|
|
252
|
+
|
|
43
253
|
// eslint-disable-next-line complexity
|
|
44
254
|
export function ComponentCompare(props: ComponentCompareProps) {
|
|
45
255
|
const {
|
|
46
256
|
host,
|
|
47
|
-
baseId:
|
|
48
|
-
compareId:
|
|
257
|
+
baseId: baseIdFromProps,
|
|
258
|
+
compareId: compareIdFromProps,
|
|
49
259
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
50
260
|
routes,
|
|
51
261
|
state,
|
|
@@ -75,8 +285,8 @@ export function ComponentCompare(props: ComponentCompareProps) {
|
|
|
75
285
|
component: compareComponent,
|
|
76
286
|
loading: loadingCompare,
|
|
77
287
|
componentDescriptor: compareComponentDescriptor,
|
|
78
|
-
} = useComponent(host, compareIdOverride?.toString() ||
|
|
79
|
-
skip: hidden || (!
|
|
288
|
+
} = useComponent(host, compareIdOverride?.toString() || compareIdFromProps?.toString(), {
|
|
289
|
+
skip: hidden || (!compareIdFromProps && !compareIdOverride),
|
|
80
290
|
customUseComponent,
|
|
81
291
|
logFilters: {
|
|
82
292
|
log: {
|
|
@@ -92,7 +302,9 @@ export function ComponentCompare(props: ComponentCompareProps) {
|
|
|
92
302
|
);
|
|
93
303
|
const isNew = useMemo(() => allVersionInfo.length === 0, [allVersionInfo]);
|
|
94
304
|
const compareVersion =
|
|
95
|
-
isWorkspace && !isNew && !location?.search.includes('version') && !
|
|
305
|
+
isWorkspace && !isNew && !location?.search.includes('version') && !compareIdFromProps
|
|
306
|
+
? 'workspace'
|
|
307
|
+
: component.id.version;
|
|
96
308
|
const compareIsLocalChanges = compareVersion === 'workspace';
|
|
97
309
|
|
|
98
310
|
const lastVersionInfo = useMemo(() => {
|
|
@@ -103,11 +315,11 @@ export function ComponentCompare(props: ComponentCompareProps) {
|
|
|
103
315
|
|
|
104
316
|
const baseId = React.useMemo(
|
|
105
317
|
() =>
|
|
106
|
-
|
|
318
|
+
baseIdFromProps ||
|
|
107
319
|
(baseVersion && component.id.changeVersion(baseVersion)) ||
|
|
108
320
|
(lastVersionInfo && component.id.changeVersion(lastVersionInfo.tag || lastVersionInfo.hash)) ||
|
|
109
321
|
component.id,
|
|
110
|
-
[loadingCompare,
|
|
322
|
+
[loadingCompare, baseIdFromProps, baseVersion, lastVersionInfo?.tag, lastVersionInfo?.hash]
|
|
111
323
|
);
|
|
112
324
|
|
|
113
325
|
const {
|
|
@@ -127,7 +339,7 @@ export function ComponentCompare(props: ComponentCompareProps) {
|
|
|
127
339
|
|
|
128
340
|
const loading = loadingBase || loadingCompare;
|
|
129
341
|
|
|
130
|
-
const compare =
|
|
342
|
+
const compare = compareIdFromProps ? compareComponent : component;
|
|
131
343
|
|
|
132
344
|
const compCompareId = `${base?.id.toString()}-${compare?.id.toString()}`;
|
|
133
345
|
|
|
@@ -149,31 +361,31 @@ export function ComponentCompare(props: ComponentCompareProps) {
|
|
|
149
361
|
if (loading || compCompareLoading) return undefined;
|
|
150
362
|
if (!compCompareLoading && !componentCompareData) return null;
|
|
151
363
|
|
|
152
|
-
const
|
|
364
|
+
const fileCompareDataByNameLookup = new Map<string, FileCompareResult>();
|
|
153
365
|
(componentCompareData?.code || []).forEach((codeCompareData) => {
|
|
154
|
-
|
|
366
|
+
fileCompareDataByNameLookup.set(codeCompareData.fileName, codeCompareData);
|
|
155
367
|
});
|
|
156
|
-
return
|
|
368
|
+
return fileCompareDataByNameLookup;
|
|
157
369
|
}, [compCompareLoading, loading, compCompareId]);
|
|
158
370
|
|
|
159
371
|
const fieldCompareDataByName = useMemo(() => {
|
|
160
372
|
if (loading || compCompareLoading) return undefined;
|
|
161
373
|
if (!compCompareLoading && !componentCompareData) return null;
|
|
162
|
-
const
|
|
374
|
+
const fieldCompareDataByNameLookup = new Map<string, FieldCompareResult>();
|
|
163
375
|
(componentCompareData?.aspects || []).forEach((aspectCompareData) => {
|
|
164
|
-
|
|
376
|
+
fieldCompareDataByNameLookup.set(aspectCompareData.fieldName, aspectCompareData);
|
|
165
377
|
});
|
|
166
|
-
return
|
|
378
|
+
return fieldCompareDataByNameLookup;
|
|
167
379
|
}, [compCompareLoading, loading, compCompareId]);
|
|
168
380
|
|
|
169
381
|
const testCompareDataByName = useMemo(() => {
|
|
170
382
|
if (loading || compCompareLoading) return undefined;
|
|
171
383
|
if (!compCompareLoading && !componentCompareData) return null;
|
|
172
|
-
const
|
|
384
|
+
const testCompareDataByNameLookup = new Map<string, FileCompareResult>();
|
|
173
385
|
(componentCompareData?.tests || []).forEach((testCompareData) => {
|
|
174
|
-
|
|
386
|
+
testCompareDataByNameLookup.set(testCompareData.fileName, testCompareData);
|
|
175
387
|
});
|
|
176
|
-
return
|
|
388
|
+
return testCompareDataByNameLookup;
|
|
177
389
|
}, [compCompareLoading, loading, compCompareId]);
|
|
178
390
|
|
|
179
391
|
const componentCompareModel = {
|
|
@@ -215,7 +427,7 @@ export function ComponentCompare(props: ComponentCompareProps) {
|
|
|
215
427
|
component?.id?.toStringWithoutVersion()
|
|
216
428
|
}
|
|
217
429
|
baseVersion={baseId.version}
|
|
218
|
-
compareVersion={
|
|
430
|
+
compareVersion={compareIdFromProps?.version || component.id.version}
|
|
219
431
|
compareHasLocalChanges={compareIsLocalChanges}
|
|
220
432
|
changes={changes}
|
|
221
433
|
loading={loading}
|
|
@@ -225,210 +437,3 @@ export function ComponentCompare(props: ComponentCompareProps) {
|
|
|
225
437
|
</ComponentCompareContext.Provider>
|
|
226
438
|
);
|
|
227
439
|
}
|
|
228
|
-
|
|
229
|
-
function RenderCompareScreen(
|
|
230
|
-
props: ComponentCompareProps & {
|
|
231
|
-
baseVersion?: string;
|
|
232
|
-
compareVersion?: string;
|
|
233
|
-
compareHasLocalChanges?: boolean;
|
|
234
|
-
componentId: string;
|
|
235
|
-
loading?: boolean;
|
|
236
|
-
}
|
|
237
|
-
) {
|
|
238
|
-
const {
|
|
239
|
-
routes,
|
|
240
|
-
state,
|
|
241
|
-
loading,
|
|
242
|
-
Loader = CompareLoader,
|
|
243
|
-
baseVersion,
|
|
244
|
-
compareVersion,
|
|
245
|
-
compareHasLocalChanges,
|
|
246
|
-
componentId,
|
|
247
|
-
hidden,
|
|
248
|
-
} = props;
|
|
249
|
-
|
|
250
|
-
const showVersionPicker = state?.versionPicker?.element !== null;
|
|
251
|
-
|
|
252
|
-
return (
|
|
253
|
-
<>
|
|
254
|
-
{showVersionPicker && (
|
|
255
|
-
<div className={styles.top}>
|
|
256
|
-
{state?.versionPicker?.element || (
|
|
257
|
-
<ComponentCompareVersionPicker
|
|
258
|
-
componentId={componentId}
|
|
259
|
-
baseVersion={baseVersion}
|
|
260
|
-
compareVersion={compareVersion}
|
|
261
|
-
compareHasLocalChanges={compareHasLocalChanges}
|
|
262
|
-
host={props.host}
|
|
263
|
-
customUseComponent={props.customUseComponent}
|
|
264
|
-
/>
|
|
265
|
-
)}
|
|
266
|
-
</div>
|
|
267
|
-
)}
|
|
268
|
-
{loading && !hidden && <Loader className={classnames(styles.loader)} />}
|
|
269
|
-
{!loading && (
|
|
270
|
-
<div className={classnames(styles.bottom, hidden && styles.hidden)}>
|
|
271
|
-
<CompareMenuNav {...props} />
|
|
272
|
-
{(extractLazyLoadedData(routes) || []).length > 0 && (
|
|
273
|
-
<SlotRouter routes={extractLazyLoadedData(routes) || []} />
|
|
274
|
-
)}
|
|
275
|
-
{state?.tabs?.element}
|
|
276
|
-
</div>
|
|
277
|
-
)}
|
|
278
|
-
</>
|
|
279
|
-
);
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
function CompareMenuNav({ tabs, state, hooks, changes: changed }: ComponentCompareProps) {
|
|
283
|
-
const activeTab = state?.tabs?.id;
|
|
284
|
-
const isControlled = state?.tabs?.controlled;
|
|
285
|
-
const _tabs = extractLazyLoadedData(tabs) || [];
|
|
286
|
-
|
|
287
|
-
const extractedTabs: [string, NavPlugin & TabItem][] = useMemo(
|
|
288
|
-
() =>
|
|
289
|
-
_tabs.sort(sortTabs).map((tab, index) => {
|
|
290
|
-
const isActive = !state ? undefined : !!activeTab && !!tab?.id && activeTab === tab.id;
|
|
291
|
-
const changeTypeCss = deriveChangeTypeCssForNav(tab, changed);
|
|
292
|
-
const loading = changed === undefined;
|
|
293
|
-
const key = `${tab.id}-tab-${changeTypeCss}`;
|
|
294
|
-
return [
|
|
295
|
-
tab.id || `tab-${index}`,
|
|
296
|
-
{
|
|
297
|
-
...tab,
|
|
298
|
-
props: {
|
|
299
|
-
...(tab.props || {}),
|
|
300
|
-
key,
|
|
301
|
-
displayName: (!loading && tab.displayName) || undefined,
|
|
302
|
-
active: isActive,
|
|
303
|
-
onClick: onNavClicked({ id: tab.id, hooks }),
|
|
304
|
-
href: (!isControlled && tab.props?.href) || undefined,
|
|
305
|
-
activeClassName: (!loading && styles.activeNav) || styles.loadingNav,
|
|
306
|
-
className: styles.navItem,
|
|
307
|
-
children: (
|
|
308
|
-
<CompareMenuTab key={key} loading={loading} changeTypeCss={changeTypeCss} changed={changed}>
|
|
309
|
-
{tab.props?.children}
|
|
310
|
-
</CompareMenuTab>
|
|
311
|
-
),
|
|
312
|
-
},
|
|
313
|
-
},
|
|
314
|
-
];
|
|
315
|
-
}),
|
|
316
|
-
[_tabs.length, activeTab, changed, changed?.length]
|
|
317
|
-
);
|
|
318
|
-
|
|
319
|
-
const sortedTabs = useMemo(
|
|
320
|
-
() => extractedTabs.filter(([, tab]) => !tab.widget),
|
|
321
|
-
[extractedTabs.length, activeTab, changed?.length, changed]
|
|
322
|
-
);
|
|
323
|
-
const sortedWidgets = useMemo(
|
|
324
|
-
() => extractedTabs.filter(([, tab]) => tab.widget),
|
|
325
|
-
[extractedTabs.length, activeTab, changed?.length, changed]
|
|
326
|
-
);
|
|
327
|
-
|
|
328
|
-
return (
|
|
329
|
-
<div className={styles.navContainer}>
|
|
330
|
-
<CollapsibleMenuNav navPlugins={sortedTabs} widgetPlugins={sortedWidgets} />
|
|
331
|
-
</div>
|
|
332
|
-
);
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
function onNavClicked({ hooks, id }: { hooks?: ComponentCompareHooks; id?: string }) {
|
|
336
|
-
if (!hooks?.tabs?.onClick) return undefined;
|
|
337
|
-
return (e) => hooks?.tabs?.onClick?.(id, e);
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
function CompareLoader({ className, ...rest }: React.HTMLAttributes<HTMLDivElement>) {
|
|
341
|
-
return (
|
|
342
|
-
<div className={className} {...rest}>
|
|
343
|
-
<BlockSkeleton className={styles.navLoader} lines={3} />
|
|
344
|
-
<div className={styles.compareLoader}>
|
|
345
|
-
<div className={styles.compareViewLoader}>
|
|
346
|
-
<BlockSkeleton lines={30} />
|
|
347
|
-
</div>
|
|
348
|
-
<div className={styles.compareSidebarLoader}>
|
|
349
|
-
<BlockSkeleton lines={30} />
|
|
350
|
-
</div>
|
|
351
|
-
</div>
|
|
352
|
-
</div>
|
|
353
|
-
);
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
function TabLoader() {
|
|
357
|
-
return <WordSkeleton className={styles.tabLoader} length={5} />;
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
function deriveChangeType(
|
|
361
|
-
baseId?: ComponentID,
|
|
362
|
-
compareId?: ComponentID,
|
|
363
|
-
fileCompareDataByName?: Map<string, FileCompareResult> | null,
|
|
364
|
-
fieldCompareDataByName?: Map<string, FieldCompareResult> | null,
|
|
365
|
-
testCompareDataByName?: Map<string, FileCompareResult> | null
|
|
366
|
-
): ChangeType[] | undefined | null {
|
|
367
|
-
if (!baseId && !compareId) return null;
|
|
368
|
-
if (!baseId?.version) return [ChangeType.NEW];
|
|
369
|
-
|
|
370
|
-
if (fileCompareDataByName === null || fieldCompareDataByName === null) return null;
|
|
371
|
-
if (fileCompareDataByName === undefined || fieldCompareDataByName === undefined) return undefined;
|
|
372
|
-
|
|
373
|
-
const fileCompareData = [...fileCompareDataByName.values()];
|
|
374
|
-
|
|
375
|
-
if (
|
|
376
|
-
fieldCompareDataByName.size === 0 &&
|
|
377
|
-
(fileCompareDataByName.size === 0 || fileCompareData.every((f) => f.status === 'UNCHANGED'))
|
|
378
|
-
) {
|
|
379
|
-
return [ChangeType.NONE];
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
const changed: ChangeType[] = [];
|
|
383
|
-
const DEPS_FIELD = ['dependencies', 'devDependencies', 'extensionDependencies', 'packageDependencies'];
|
|
384
|
-
|
|
385
|
-
if (testCompareDataByName?.size) {
|
|
386
|
-
changed.push(ChangeType.TESTS);
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
if (fileCompareDataByName.size > 0 && fileCompareData.some((f) => f.status !== 'UNCHANGED')) {
|
|
390
|
-
changed.push(ChangeType.SOURCE_CODE);
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
if (fieldCompareDataByName.size > 0) {
|
|
394
|
-
changed.push(ChangeType.ASPECTS);
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
if ([...fieldCompareDataByName.values()].some((field) => DEPS_FIELD.includes(field.fieldName))) {
|
|
398
|
-
changed.push(ChangeType.DEPENDENCY);
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
return changed;
|
|
402
|
-
}
|
|
403
|
-
function deriveChangeTypeCssForNav(tab: TabItem, changed: ChangeType[] | null | undefined): string | null {
|
|
404
|
-
if (!changed || !tab.changeType) return null;
|
|
405
|
-
const hasChanged = changed.some((change) => tab.changeType === change);
|
|
406
|
-
return hasChanged ? styles.hasChanged : null;
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
function CompareMenuTab({
|
|
410
|
-
children,
|
|
411
|
-
changed,
|
|
412
|
-
changeTypeCss,
|
|
413
|
-
loading,
|
|
414
|
-
className,
|
|
415
|
-
...rest
|
|
416
|
-
}: HTMLAttributes<HTMLDivElement> & {
|
|
417
|
-
changeTypeCss?: string | null;
|
|
418
|
-
loading?: boolean;
|
|
419
|
-
changed?: ChangeType[] | null;
|
|
420
|
-
}) {
|
|
421
|
-
const hasChanged = useMemo(
|
|
422
|
-
() => changed?.some((change) => change !== ChangeType.NONE && change !== ChangeType.NEW),
|
|
423
|
-
[changeTypeCss]
|
|
424
|
-
);
|
|
425
|
-
|
|
426
|
-
if (loading) return <TabLoader />;
|
|
427
|
-
|
|
428
|
-
return (
|
|
429
|
-
<div {...rest} className={classnames(styles.compareMenuTab, className)}>
|
|
430
|
-
{changeTypeCss && hasChanged && <div className={classnames(styles.indicator, changeTypeCss)}></div>}
|
|
431
|
-
<div className={classnames(styles.menuTab)}>{children}</div>
|
|
432
|
-
</div>
|
|
433
|
-
);
|
|
434
|
-
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import { ComponentCompareProps } from '@teambit/component.ui.component-compare.models.component-compare-props';
|
|
3
|
-
export declare function ComponentCompare(props: ComponentCompareProps):
|
|
3
|
+
export declare function ComponentCompare(props: ComponentCompareProps): JSX.Element;
|
|
@@ -1,59 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
26
|
-
var t = {};
|
|
27
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
28
|
-
t[p] = s[p];
|
|
29
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
30
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
31
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
32
|
-
t[p[i]] = s[p[i]];
|
|
33
|
-
}
|
|
34
|
-
return t;
|
|
35
|
-
};
|
|
36
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
|
-
};
|
|
39
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.ComponentCompare = void 0;
|
|
41
|
-
const react_1 = __importStar(require("react"));
|
|
42
|
-
const classnames_1 = __importDefault(require("classnames"));
|
|
43
|
-
const component_1 = require("@teambit/component");
|
|
44
|
-
const component_ui_component_compare_context_1 = require("@teambit/component.ui.component-compare.context");
|
|
45
|
-
const component_ui_component_compare_hooks_use_component_compare_1 = require("@teambit/component.ui.component-compare.hooks.use-component-compare");
|
|
46
|
-
const component_ui_component_compare_hooks_use_component_compare_url_1 = require("@teambit/component.ui.component-compare.hooks.use-component-compare-url");
|
|
47
|
-
const component_ui_component_compare_version_picker_1 = require("@teambit/component.ui.component-compare.version-picker");
|
|
48
|
-
const base_react_navigation_link_1 = require("@teambit/base-react.navigation.link");
|
|
49
|
-
const ui_foundation_ui_react_router_slot_router_1 = require("@teambit/ui-foundation.ui.react-router.slot-router");
|
|
50
|
-
const component_ui_component_compare_utils_group_by_version_1 = require("@teambit/component.ui.component-compare.utils.group-by-version");
|
|
51
|
-
const component_ui_component_compare_utils_sort_tabs_1 = require("@teambit/component.ui.component-compare.utils.sort-tabs");
|
|
52
|
-
const component_ui_component_compare_utils_sort_logs_1 = require("@teambit/component.ui.component-compare.utils.sort-logs");
|
|
53
|
-
const component_ui_component_compare_utils_lazy_loading_1 = require("@teambit/component.ui.component-compare.utils.lazy-loading");
|
|
54
|
-
const base_ui_loaders_skeleton_1 = require("@teambit/base-ui.loaders.skeleton");
|
|
55
|
-
const component_ui_component_compare_models_component_compare_change_type_1 = require("@teambit/component.ui.component-compare.models.component-compare-change-type");
|
|
56
|
-
const component_compare_module_scss_1 = __importDefault(require("./component-compare.module.scss"));
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable react/destructuring-assignment */
|
|
3
|
+
/* eslint-disable react/require-default-props */
|
|
4
|
+
import React, { useContext, useMemo } from 'react';
|
|
5
|
+
import classnames from 'classnames';
|
|
6
|
+
import { CollapsibleMenuNav, ComponentContext, ComponentDescriptorContext, useComponent, } from '@teambit/component';
|
|
7
|
+
import { ComponentCompareContext } from '@teambit/component.ui.component-compare.context';
|
|
8
|
+
import { useComponentCompareQuery } from '@teambit/component.ui.component-compare.hooks.use-component-compare';
|
|
9
|
+
import { useCompareQueryParam } from '@teambit/component.ui.component-compare.hooks.use-component-compare-url';
|
|
10
|
+
import { ComponentCompareVersionPicker } from '@teambit/component.ui.component-compare.version-picker';
|
|
11
|
+
import { useLocation } from '@teambit/base-react.navigation.link';
|
|
12
|
+
import { SlotRouter } from '@teambit/ui-foundation.ui.react-router.slot-router';
|
|
13
|
+
import { groupByVersion } from '@teambit/component.ui.component-compare.utils.group-by-version';
|
|
14
|
+
import { sortTabs } from '@teambit/component.ui.component-compare.utils.sort-tabs';
|
|
15
|
+
import { sortByDateDsc } from '@teambit/component.ui.component-compare.utils.sort-logs';
|
|
16
|
+
import { extractLazyLoadedData } from '@teambit/component.ui.component-compare.utils.lazy-loading';
|
|
17
|
+
import { BlockSkeleton, WordSkeleton } from '@teambit/base-ui.loaders.skeleton';
|
|
18
|
+
import { ChangeType } from '@teambit/component.ui.component-compare.models.component-compare-change-type';
|
|
19
|
+
import styles from './component-compare.module.scss';
|
|
57
20
|
const findPrevVersionFromCurrent = (compareVersion) => (_, index, logs) => {
|
|
58
21
|
if (compareVersion === 'workspace' || logs.length === 1)
|
|
59
22
|
return true;
|
|
@@ -62,21 +25,109 @@ const findPrevVersionFromCurrent = (compareVersion) => (_, index, logs) => {
|
|
|
62
25
|
const prevIndex = index - 1;
|
|
63
26
|
return logs[prevIndex].tag === compareVersion || logs[prevIndex].hash === compareVersion;
|
|
64
27
|
};
|
|
28
|
+
function deriveChangeTypeCssForNav(tab, changed) {
|
|
29
|
+
if (!changed || !tab.changeType)
|
|
30
|
+
return null;
|
|
31
|
+
const hasChanged = changed.some((change) => tab.changeType === change);
|
|
32
|
+
return hasChanged ? styles.hasChanged : null;
|
|
33
|
+
}
|
|
34
|
+
function onNavClicked({ hooks, id }) {
|
|
35
|
+
if (!hooks?.tabs?.onClick)
|
|
36
|
+
return undefined;
|
|
37
|
+
return (e) => hooks?.tabs?.onClick?.(id, e);
|
|
38
|
+
}
|
|
39
|
+
function TabLoader() {
|
|
40
|
+
return _jsx(WordSkeleton, { className: styles.tabLoader, length: 5 });
|
|
41
|
+
}
|
|
42
|
+
function CompareMenuTab({ children, changed, changeTypeCss, loading, className, ...rest }) {
|
|
43
|
+
const hasChanged = useMemo(() => changed?.some((change) => change !== ChangeType.NONE && change !== ChangeType.NEW), [changeTypeCss]);
|
|
44
|
+
if (loading)
|
|
45
|
+
return _jsx(TabLoader, {});
|
|
46
|
+
return (_jsxs("div", { ...rest, className: classnames(styles.compareMenuTab, className), children: [changeTypeCss && hasChanged && _jsx("div", { className: classnames(styles.indicator, changeTypeCss) }), _jsx("div", { className: classnames(styles.menuTab), children: children })] }));
|
|
47
|
+
}
|
|
48
|
+
function CompareMenuNav({ tabs, state, hooks, changes: changed }) {
|
|
49
|
+
const activeTab = state?.tabs?.id;
|
|
50
|
+
const isControlled = state?.tabs?.controlled;
|
|
51
|
+
const tabsFromProps = extractLazyLoadedData(tabs) || [];
|
|
52
|
+
const extractedTabs = useMemo(() => tabsFromProps.sort(sortTabs).map((tab, index) => {
|
|
53
|
+
const isActive = !state ? undefined : !!activeTab && !!tab?.id && activeTab === tab.id;
|
|
54
|
+
const changeTypeCss = deriveChangeTypeCssForNav(tab, changed);
|
|
55
|
+
const loading = changed === undefined;
|
|
56
|
+
const key = `${tab.id}-tab-${changeTypeCss}`;
|
|
57
|
+
return [
|
|
58
|
+
tab.id || `tab-${index}`,
|
|
59
|
+
{
|
|
60
|
+
...tab,
|
|
61
|
+
props: {
|
|
62
|
+
...(tab.props || {}),
|
|
63
|
+
key,
|
|
64
|
+
displayName: (!loading && tab.displayName) || undefined,
|
|
65
|
+
active: isActive,
|
|
66
|
+
onClick: onNavClicked({ id: tab.id, hooks }),
|
|
67
|
+
href: (!isControlled && tab.props?.href) || undefined,
|
|
68
|
+
activeClassName: (!loading && styles.activeNav) || styles.loadingNav,
|
|
69
|
+
className: styles.navItem,
|
|
70
|
+
children: (_jsx(CompareMenuTab, { loading: loading, changeTypeCss: changeTypeCss, changed: changed, children: tab.props?.children }, key)),
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
];
|
|
74
|
+
}), [tabsFromProps.length, activeTab, changed, changed?.length]);
|
|
75
|
+
const sortedTabs = useMemo(() => extractedTabs.filter(([, tab]) => !tab.widget), [extractedTabs.length, activeTab, changed?.length, changed]);
|
|
76
|
+
const sortedWidgets = useMemo(() => extractedTabs.filter(([, tab]) => tab.widget), [extractedTabs.length, activeTab, changed?.length, changed]);
|
|
77
|
+
return (_jsx("div", { className: styles.navContainer, children: _jsx(CollapsibleMenuNav, { navPlugins: sortedTabs, widgetPlugins: sortedWidgets }) }));
|
|
78
|
+
}
|
|
79
|
+
function deriveChangeType(baseId, compareId, fileCompareDataByName, fieldCompareDataByName, testCompareDataByName) {
|
|
80
|
+
if (!baseId && !compareId)
|
|
81
|
+
return null;
|
|
82
|
+
if (!baseId?.version)
|
|
83
|
+
return [ChangeType.NEW];
|
|
84
|
+
if (fileCompareDataByName === null || fieldCompareDataByName === null)
|
|
85
|
+
return null;
|
|
86
|
+
if (fileCompareDataByName === undefined || fieldCompareDataByName === undefined)
|
|
87
|
+
return undefined;
|
|
88
|
+
const fileCompareData = [...fileCompareDataByName.values()];
|
|
89
|
+
if (fieldCompareDataByName.size === 0 &&
|
|
90
|
+
(fileCompareDataByName.size === 0 || fileCompareData.every((f) => f.status === 'UNCHANGED'))) {
|
|
91
|
+
return [ChangeType.NONE];
|
|
92
|
+
}
|
|
93
|
+
const changed = [];
|
|
94
|
+
const DEPS_FIELD = ['dependencies', 'devDependencies', 'extensionDependencies', 'packageDependencies'];
|
|
95
|
+
if (testCompareDataByName?.size) {
|
|
96
|
+
changed.push(ChangeType.TESTS);
|
|
97
|
+
}
|
|
98
|
+
if (fileCompareDataByName.size > 0 && fileCompareData.some((f) => f.status !== 'UNCHANGED')) {
|
|
99
|
+
changed.push(ChangeType.SOURCE_CODE);
|
|
100
|
+
}
|
|
101
|
+
if (fieldCompareDataByName.size > 0) {
|
|
102
|
+
changed.push(ChangeType.ASPECTS);
|
|
103
|
+
}
|
|
104
|
+
if ([...fieldCompareDataByName.values()].some((field) => DEPS_FIELD.includes(field.fieldName))) {
|
|
105
|
+
changed.push(ChangeType.DEPENDENCY);
|
|
106
|
+
}
|
|
107
|
+
return changed;
|
|
108
|
+
}
|
|
109
|
+
function CompareLoader({ className, ...rest }) {
|
|
110
|
+
return (_jsxs("div", { className: className, ...rest, children: [_jsx(BlockSkeleton, { className: styles.navLoader, lines: 3 }), _jsxs("div", { className: styles.compareLoader, children: [_jsx("div", { className: styles.compareViewLoader, children: _jsx(BlockSkeleton, { lines: 30 }) }), _jsx("div", { className: styles.compareSidebarLoader, children: _jsx(BlockSkeleton, { lines: 30 }) })] })] }));
|
|
111
|
+
}
|
|
112
|
+
function RenderCompareScreen(props) {
|
|
113
|
+
const { routes, state, loading, Loader = CompareLoader, baseVersion, compareVersion, compareHasLocalChanges, componentId, hidden, } = props;
|
|
114
|
+
const showVersionPicker = state?.versionPicker?.element !== null;
|
|
115
|
+
return (_jsxs(_Fragment, { children: [showVersionPicker && (_jsx("div", { className: styles.top, children: state?.versionPicker?.element || (_jsx(ComponentCompareVersionPicker, { componentId: componentId, baseVersion: baseVersion, compareVersion: compareVersion, compareHasLocalChanges: compareHasLocalChanges, host: props.host, customUseComponent: props.customUseComponent })) })), loading && !hidden && _jsx(Loader, { className: classnames(styles.loader) }), !loading && (_jsxs("div", { className: classnames(styles.bottom, hidden && styles.hidden), children: [_jsx(CompareMenuNav, { ...props }), (extractLazyLoadedData(routes) || []).length > 0 && (_jsx(SlotRouter, { routes: extractLazyLoadedData(routes) || [] })), state?.tabs?.element] }))] }));
|
|
116
|
+
}
|
|
65
117
|
// eslint-disable-next-line complexity
|
|
66
|
-
function ComponentCompare(props) {
|
|
67
|
-
|
|
68
|
-
const { host, baseId: _baseId, compareId: _compareId,
|
|
118
|
+
export function ComponentCompare(props) {
|
|
119
|
+
const { host, baseId: baseIdFromProps, compareId: compareIdFromProps,
|
|
69
120
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
70
121
|
routes, state,
|
|
71
122
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
72
|
-
tabs, className, hooks, changes: changesFromProps, customUseComponent, Loader = CompareLoader, baseContext, compareContext, isFullScreen, hidden = false, compareIdOverride, baseIdOverride
|
|
73
|
-
const baseVersion =
|
|
74
|
-
const component =
|
|
75
|
-
const componentDescriptor =
|
|
76
|
-
const location =
|
|
123
|
+
tabs, className, hooks, changes: changesFromProps, customUseComponent, Loader = CompareLoader, baseContext, compareContext, isFullScreen, hidden = false, compareIdOverride, baseIdOverride, ...rest } = props;
|
|
124
|
+
const baseVersion = useCompareQueryParam('baseVersion');
|
|
125
|
+
const component = useContext(ComponentContext);
|
|
126
|
+
const componentDescriptor = useContext(ComponentDescriptorContext);
|
|
127
|
+
const location = useLocation();
|
|
77
128
|
const isWorkspace = host === 'teambit.workspace/workspace';
|
|
78
|
-
const { component: compareComponent, loading: loadingCompare, componentDescriptor: compareComponentDescriptor, } =
|
|
79
|
-
skip: hidden || (!
|
|
129
|
+
const { component: compareComponent, loading: loadingCompare, componentDescriptor: compareComponentDescriptor, } = useComponent(host, compareIdOverride?.toString() || compareIdFromProps?.toString(), {
|
|
130
|
+
skip: hidden || (!compareIdFromProps && !compareIdOverride),
|
|
80
131
|
customUseComponent,
|
|
81
132
|
logFilters: {
|
|
82
133
|
log: {
|
|
@@ -85,21 +136,23 @@ function ComponentCompare(props) {
|
|
|
85
136
|
},
|
|
86
137
|
},
|
|
87
138
|
});
|
|
88
|
-
const allVersionInfo =
|
|
89
|
-
const isNew =
|
|
90
|
-
const compareVersion = isWorkspace && !isNew && !
|
|
139
|
+
const allVersionInfo = useMemo(() => (compareComponent?.logs || component.logs)?.slice().sort(sortByDateDsc) || [], [component.id.toString(), loadingCompare, component.logs?.length, compareComponent?.logs?.length]);
|
|
140
|
+
const isNew = useMemo(() => allVersionInfo.length === 0, [allVersionInfo]);
|
|
141
|
+
const compareVersion = isWorkspace && !isNew && !location?.search.includes('version') && !compareIdFromProps
|
|
142
|
+
? 'workspace'
|
|
143
|
+
: component.id.version;
|
|
91
144
|
const compareIsLocalChanges = compareVersion === 'workspace';
|
|
92
|
-
const lastVersionInfo =
|
|
145
|
+
const lastVersionInfo = useMemo(() => {
|
|
93
146
|
if (compareIsLocalChanges)
|
|
94
147
|
return allVersionInfo[0];
|
|
95
148
|
const prevVersionInfo = allVersionInfo.find(findPrevVersionFromCurrent(compareVersion));
|
|
96
149
|
return prevVersionInfo;
|
|
97
|
-
}, [
|
|
98
|
-
const baseId =
|
|
150
|
+
}, [component.logs?.length, loadingCompare, compareComponent?.logs?.length]);
|
|
151
|
+
const baseId = React.useMemo(() => baseIdFromProps ||
|
|
99
152
|
(baseVersion && component.id.changeVersion(baseVersion)) ||
|
|
100
153
|
(lastVersionInfo && component.id.changeVersion(lastVersionInfo.tag || lastVersionInfo.hash)) ||
|
|
101
|
-
component.id, [loadingCompare,
|
|
102
|
-
const { component: base, loading: loadingBase, componentDescriptor: baseComponentDescriptor, } =
|
|
154
|
+
component.id, [loadingCompare, baseIdFromProps, baseVersion, lastVersionInfo?.tag, lastVersionInfo?.hash]);
|
|
155
|
+
const { component: base, loading: loadingBase, componentDescriptor: baseComponentDescriptor, } = useComponent(host, baseIdOverride?.toString() || baseId?.toString(), {
|
|
103
156
|
customUseComponent,
|
|
104
157
|
skip: hidden || (!baseId && !baseIdOverride),
|
|
105
158
|
logFilters: {
|
|
@@ -110,45 +163,45 @@ function ComponentCompare(props) {
|
|
|
110
163
|
},
|
|
111
164
|
});
|
|
112
165
|
const loading = loadingBase || loadingCompare;
|
|
113
|
-
const compare =
|
|
114
|
-
const compCompareId = `${base
|
|
115
|
-
const logsByVersion =
|
|
116
|
-
return (
|
|
117
|
-
}, [compare
|
|
118
|
-
const skipComponentCompareQuery = hidden || compareIsLocalChanges ||
|
|
119
|
-
const { loading: compCompareLoading, componentCompareData } =
|
|
120
|
-
const fileCompareDataByName =
|
|
166
|
+
const compare = compareIdFromProps ? compareComponent : component;
|
|
167
|
+
const compCompareId = `${base?.id.toString()}-${compare?.id.toString()}`;
|
|
168
|
+
const logsByVersion = useMemo(() => {
|
|
169
|
+
return (compare?.logs || []).slice().reduce(groupByVersion, new Map());
|
|
170
|
+
}, [compare?.id.toString()]);
|
|
171
|
+
const skipComponentCompareQuery = hidden || compareIsLocalChanges || base?.id.version?.toString() === compare?.id.version?.toString();
|
|
172
|
+
const { loading: compCompareLoading, componentCompareData } = useComponentCompareQuery(base?.id.toString(), compare?.id.toString(), undefined, skipComponentCompareQuery);
|
|
173
|
+
const fileCompareDataByName = useMemo(() => {
|
|
121
174
|
if (loading || compCompareLoading)
|
|
122
175
|
return undefined;
|
|
123
176
|
if (!compCompareLoading && !componentCompareData)
|
|
124
177
|
return null;
|
|
125
|
-
const
|
|
126
|
-
(
|
|
127
|
-
|
|
178
|
+
const fileCompareDataByNameLookup = new Map();
|
|
179
|
+
(componentCompareData?.code || []).forEach((codeCompareData) => {
|
|
180
|
+
fileCompareDataByNameLookup.set(codeCompareData.fileName, codeCompareData);
|
|
128
181
|
});
|
|
129
|
-
return
|
|
182
|
+
return fileCompareDataByNameLookup;
|
|
130
183
|
}, [compCompareLoading, loading, compCompareId]);
|
|
131
|
-
const fieldCompareDataByName =
|
|
184
|
+
const fieldCompareDataByName = useMemo(() => {
|
|
132
185
|
if (loading || compCompareLoading)
|
|
133
186
|
return undefined;
|
|
134
187
|
if (!compCompareLoading && !componentCompareData)
|
|
135
188
|
return null;
|
|
136
|
-
const
|
|
137
|
-
(
|
|
138
|
-
|
|
189
|
+
const fieldCompareDataByNameLookup = new Map();
|
|
190
|
+
(componentCompareData?.aspects || []).forEach((aspectCompareData) => {
|
|
191
|
+
fieldCompareDataByNameLookup.set(aspectCompareData.fieldName, aspectCompareData);
|
|
139
192
|
});
|
|
140
|
-
return
|
|
193
|
+
return fieldCompareDataByNameLookup;
|
|
141
194
|
}, [compCompareLoading, loading, compCompareId]);
|
|
142
|
-
const testCompareDataByName =
|
|
195
|
+
const testCompareDataByName = useMemo(() => {
|
|
143
196
|
if (loading || compCompareLoading)
|
|
144
197
|
return undefined;
|
|
145
198
|
if (!compCompareLoading && !componentCompareData)
|
|
146
199
|
return null;
|
|
147
|
-
const
|
|
148
|
-
(
|
|
149
|
-
|
|
200
|
+
const testCompareDataByNameLookup = new Map();
|
|
201
|
+
(componentCompareData?.tests || []).forEach((testCompareData) => {
|
|
202
|
+
testCompareDataByNameLookup.set(testCompareData.fileName, testCompareData);
|
|
150
203
|
});
|
|
151
|
-
return
|
|
204
|
+
return testCompareDataByNameLookup;
|
|
152
205
|
}, [compCompareLoading, loading, compCompareId]);
|
|
153
206
|
const componentCompareModel = {
|
|
154
207
|
compare: compare && {
|
|
@@ -173,109 +226,9 @@ function ComponentCompare(props) {
|
|
|
173
226
|
hidden,
|
|
174
227
|
};
|
|
175
228
|
const changes = changesFromProps ||
|
|
176
|
-
deriveChangeType(baseId, compare
|
|
177
|
-
return (
|
|
178
|
-
react_1.default.createElement("div", Object.assign({ className: (0, classnames_1.default)(component_compare_module_scss_1.default.componentCompareContainer, className) }, rest),
|
|
179
|
-
react_1.default.createElement(RenderCompareScreen, Object.assign({ key: compCompareId }, props, { componentId: ((_g = compare === null || compare === void 0 ? void 0 : compare.id) === null || _g === void 0 ? void 0 : _g.toStringWithoutVersion()) ||
|
|
229
|
+
deriveChangeType(baseId, compare?.id, fileCompareDataByName, fieldCompareDataByName, testCompareDataByName);
|
|
230
|
+
return (_jsx(ComponentCompareContext.Provider, { value: componentCompareModel, children: _jsx("div", { className: classnames(styles.componentCompareContainer, className), ...rest, children: _jsx(RenderCompareScreen, { ...props, componentId: compare?.id?.toStringWithoutVersion() ||
|
|
180
231
|
baseId.toStringWithoutVersion() ||
|
|
181
|
-
|
|
182
|
-
}
|
|
183
|
-
exports.ComponentCompare = ComponentCompare;
|
|
184
|
-
function RenderCompareScreen(props) {
|
|
185
|
-
var _a, _b, _c;
|
|
186
|
-
const { routes, state, loading, Loader = CompareLoader, baseVersion, compareVersion, compareHasLocalChanges, componentId, hidden, } = props;
|
|
187
|
-
const showVersionPicker = ((_a = state === null || state === void 0 ? void 0 : state.versionPicker) === null || _a === void 0 ? void 0 : _a.element) !== null;
|
|
188
|
-
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
189
|
-
showVersionPicker && (react_1.default.createElement("div", { className: component_compare_module_scss_1.default.top }, ((_b = state === null || state === void 0 ? void 0 : state.versionPicker) === null || _b === void 0 ? void 0 : _b.element) || (react_1.default.createElement(component_ui_component_compare_version_picker_1.ComponentCompareVersionPicker, { componentId: componentId, baseVersion: baseVersion, compareVersion: compareVersion, compareHasLocalChanges: compareHasLocalChanges, host: props.host, customUseComponent: props.customUseComponent })))),
|
|
190
|
-
loading && !hidden && react_1.default.createElement(Loader, { className: (0, classnames_1.default)(component_compare_module_scss_1.default.loader) }),
|
|
191
|
-
!loading && (react_1.default.createElement("div", { className: (0, classnames_1.default)(component_compare_module_scss_1.default.bottom, hidden && component_compare_module_scss_1.default.hidden) },
|
|
192
|
-
react_1.default.createElement(CompareMenuNav, Object.assign({}, props)),
|
|
193
|
-
((0, component_ui_component_compare_utils_lazy_loading_1.extractLazyLoadedData)(routes) || []).length > 0 && (react_1.default.createElement(ui_foundation_ui_react_router_slot_router_1.SlotRouter, { routes: (0, component_ui_component_compare_utils_lazy_loading_1.extractLazyLoadedData)(routes) || [] })), (_c = state === null || state === void 0 ? void 0 : state.tabs) === null || _c === void 0 ? void 0 :
|
|
194
|
-
_c.element))));
|
|
195
|
-
}
|
|
196
|
-
function CompareMenuNav({ tabs, state, hooks, changes: changed }) {
|
|
197
|
-
var _a, _b;
|
|
198
|
-
const activeTab = (_a = state === null || state === void 0 ? void 0 : state.tabs) === null || _a === void 0 ? void 0 : _a.id;
|
|
199
|
-
const isControlled = (_b = state === null || state === void 0 ? void 0 : state.tabs) === null || _b === void 0 ? void 0 : _b.controlled;
|
|
200
|
-
const _tabs = (0, component_ui_component_compare_utils_lazy_loading_1.extractLazyLoadedData)(tabs) || [];
|
|
201
|
-
const extractedTabs = (0, react_1.useMemo)(() => _tabs.sort(component_ui_component_compare_utils_sort_tabs_1.sortTabs).map((tab, index) => {
|
|
202
|
-
var _a, _b;
|
|
203
|
-
const isActive = !state ? undefined : !!activeTab && !!(tab === null || tab === void 0 ? void 0 : tab.id) && activeTab === tab.id;
|
|
204
|
-
const changeTypeCss = deriveChangeTypeCssForNav(tab, changed);
|
|
205
|
-
const loading = changed === undefined;
|
|
206
|
-
const key = `${tab.id}-tab-${changeTypeCss}`;
|
|
207
|
-
return [
|
|
208
|
-
tab.id || `tab-${index}`,
|
|
209
|
-
Object.assign(Object.assign({}, tab), { props: Object.assign(Object.assign({}, (tab.props || {})), { key, displayName: (!loading && tab.displayName) || undefined, active: isActive, onClick: onNavClicked({ id: tab.id, hooks }), href: (!isControlled && ((_a = tab.props) === null || _a === void 0 ? void 0 : _a.href)) || undefined, activeClassName: (!loading && component_compare_module_scss_1.default.activeNav) || component_compare_module_scss_1.default.loadingNav, className: component_compare_module_scss_1.default.navItem, children: (react_1.default.createElement(CompareMenuTab, { key: key, loading: loading, changeTypeCss: changeTypeCss, changed: changed }, (_b = tab.props) === null || _b === void 0 ? void 0 : _b.children)) }) }),
|
|
210
|
-
];
|
|
211
|
-
}), [_tabs.length, activeTab, changed, changed === null || changed === void 0 ? void 0 : changed.length]);
|
|
212
|
-
const sortedTabs = (0, react_1.useMemo)(() => extractedTabs.filter(([, tab]) => !tab.widget), [extractedTabs.length, activeTab, changed === null || changed === void 0 ? void 0 : changed.length, changed]);
|
|
213
|
-
const sortedWidgets = (0, react_1.useMemo)(() => extractedTabs.filter(([, tab]) => tab.widget), [extractedTabs.length, activeTab, changed === null || changed === void 0 ? void 0 : changed.length, changed]);
|
|
214
|
-
return (react_1.default.createElement("div", { className: component_compare_module_scss_1.default.navContainer },
|
|
215
|
-
react_1.default.createElement(component_1.CollapsibleMenuNav, { navPlugins: sortedTabs, widgetPlugins: sortedWidgets })));
|
|
216
|
-
}
|
|
217
|
-
function onNavClicked({ hooks, id }) {
|
|
218
|
-
var _a;
|
|
219
|
-
if (!((_a = hooks === null || hooks === void 0 ? void 0 : hooks.tabs) === null || _a === void 0 ? void 0 : _a.onClick))
|
|
220
|
-
return undefined;
|
|
221
|
-
return (e) => { var _a, _b; return (_b = (_a = hooks === null || hooks === void 0 ? void 0 : hooks.tabs) === null || _a === void 0 ? void 0 : _a.onClick) === null || _b === void 0 ? void 0 : _b.call(_a, id, e); };
|
|
222
|
-
}
|
|
223
|
-
function CompareLoader(_a) {
|
|
224
|
-
var { className } = _a, rest = __rest(_a, ["className"]);
|
|
225
|
-
return (react_1.default.createElement("div", Object.assign({ className: className }, rest),
|
|
226
|
-
react_1.default.createElement(base_ui_loaders_skeleton_1.BlockSkeleton, { className: component_compare_module_scss_1.default.navLoader, lines: 3 }),
|
|
227
|
-
react_1.default.createElement("div", { className: component_compare_module_scss_1.default.compareLoader },
|
|
228
|
-
react_1.default.createElement("div", { className: component_compare_module_scss_1.default.compareViewLoader },
|
|
229
|
-
react_1.default.createElement(base_ui_loaders_skeleton_1.BlockSkeleton, { lines: 30 })),
|
|
230
|
-
react_1.default.createElement("div", { className: component_compare_module_scss_1.default.compareSidebarLoader },
|
|
231
|
-
react_1.default.createElement(base_ui_loaders_skeleton_1.BlockSkeleton, { lines: 30 })))));
|
|
232
|
-
}
|
|
233
|
-
function TabLoader() {
|
|
234
|
-
return react_1.default.createElement(base_ui_loaders_skeleton_1.WordSkeleton, { className: component_compare_module_scss_1.default.tabLoader, length: 5 });
|
|
235
|
-
}
|
|
236
|
-
function deriveChangeType(baseId, compareId, fileCompareDataByName, fieldCompareDataByName, testCompareDataByName) {
|
|
237
|
-
if (!baseId && !compareId)
|
|
238
|
-
return null;
|
|
239
|
-
if (!(baseId === null || baseId === void 0 ? void 0 : baseId.version))
|
|
240
|
-
return [component_ui_component_compare_models_component_compare_change_type_1.ChangeType.NEW];
|
|
241
|
-
if (fileCompareDataByName === null || fieldCompareDataByName === null)
|
|
242
|
-
return null;
|
|
243
|
-
if (fileCompareDataByName === undefined || fieldCompareDataByName === undefined)
|
|
244
|
-
return undefined;
|
|
245
|
-
const fileCompareData = [...fileCompareDataByName.values()];
|
|
246
|
-
if (fieldCompareDataByName.size === 0 &&
|
|
247
|
-
(fileCompareDataByName.size === 0 || fileCompareData.every((f) => f.status === 'UNCHANGED'))) {
|
|
248
|
-
return [component_ui_component_compare_models_component_compare_change_type_1.ChangeType.NONE];
|
|
249
|
-
}
|
|
250
|
-
const changed = [];
|
|
251
|
-
const DEPS_FIELD = ['dependencies', 'devDependencies', 'extensionDependencies', 'packageDependencies'];
|
|
252
|
-
if (testCompareDataByName === null || testCompareDataByName === void 0 ? void 0 : testCompareDataByName.size) {
|
|
253
|
-
changed.push(component_ui_component_compare_models_component_compare_change_type_1.ChangeType.TESTS);
|
|
254
|
-
}
|
|
255
|
-
if (fileCompareDataByName.size > 0 && fileCompareData.some((f) => f.status !== 'UNCHANGED')) {
|
|
256
|
-
changed.push(component_ui_component_compare_models_component_compare_change_type_1.ChangeType.SOURCE_CODE);
|
|
257
|
-
}
|
|
258
|
-
if (fieldCompareDataByName.size > 0) {
|
|
259
|
-
changed.push(component_ui_component_compare_models_component_compare_change_type_1.ChangeType.ASPECTS);
|
|
260
|
-
}
|
|
261
|
-
if ([...fieldCompareDataByName.values()].some((field) => DEPS_FIELD.includes(field.fieldName))) {
|
|
262
|
-
changed.push(component_ui_component_compare_models_component_compare_change_type_1.ChangeType.DEPENDENCY);
|
|
263
|
-
}
|
|
264
|
-
return changed;
|
|
265
|
-
}
|
|
266
|
-
function deriveChangeTypeCssForNav(tab, changed) {
|
|
267
|
-
if (!changed || !tab.changeType)
|
|
268
|
-
return null;
|
|
269
|
-
const hasChanged = changed.some((change) => tab.changeType === change);
|
|
270
|
-
return hasChanged ? component_compare_module_scss_1.default.hasChanged : null;
|
|
271
|
-
}
|
|
272
|
-
function CompareMenuTab(_a) {
|
|
273
|
-
var { children, changed, changeTypeCss, loading, className } = _a, rest = __rest(_a, ["children", "changed", "changeTypeCss", "loading", "className"]);
|
|
274
|
-
const hasChanged = (0, react_1.useMemo)(() => changed === null || changed === void 0 ? void 0 : changed.some((change) => change !== component_ui_component_compare_models_component_compare_change_type_1.ChangeType.NONE && change !== component_ui_component_compare_models_component_compare_change_type_1.ChangeType.NEW), [changeTypeCss]);
|
|
275
|
-
if (loading)
|
|
276
|
-
return react_1.default.createElement(TabLoader, null);
|
|
277
|
-
return (react_1.default.createElement("div", Object.assign({}, rest, { className: (0, classnames_1.default)(component_compare_module_scss_1.default.compareMenuTab, className) }),
|
|
278
|
-
changeTypeCss && hasChanged && react_1.default.createElement("div", { className: (0, classnames_1.default)(component_compare_module_scss_1.default.indicator, changeTypeCss) }),
|
|
279
|
-
react_1.default.createElement("div", { className: (0, classnames_1.default)(component_compare_module_scss_1.default.menuTab) }, children)));
|
|
232
|
+
component?.id?.toStringWithoutVersion(), baseVersion: baseId.version, compareVersion: compareIdFromProps?.version || component.id.version, compareHasLocalChanges: compareIsLocalChanges, changes: changes, loading: loading, Loader: Loader }, compCompareId) }) }));
|
|
280
233
|
}
|
|
281
234
|
//# sourceMappingURL=component-compare.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-compare.js","sourceRoot":"","sources":["../component-compare.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"component-compare.js","sourceRoot":"","sources":["../component-compare.tsx"],"names":[],"mappings":";AAAA,mDAAmD;AACnD,gDAAgD;AAChD,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,EAAkB,MAAM,OAAO,CAAC;AACnE,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAG1B,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAC1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,qEAAqE,CAAC;AAK/G,OAAO,EAAE,oBAAoB,EAAE,MAAM,yEAAyE,CAAC;AAC/G,OAAO,EAAE,6BAA6B,EAAE,MAAM,wDAAwD,CAAC;AAEvG,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAEhF,OAAO,EAAE,cAAc,EAAE,MAAM,gEAAgE,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4DAA4D,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,8EAA8E,CAAC;AAE1G,OAAO,MAAM,MAAM,iCAAiC,CAAC;AAErD,MAAM,0BAA0B,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAa,EAAE,IAA0B,EAAE,EAAE;IACtG,IAAI,cAAc,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAErE,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE9B,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;IAE5B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC;AAC3F,CAAC,CAAC;AAEF,SAAS,yBAAyB,CAAC,GAAY,EAAE,OAAwC;IACvF,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC;IACvE,OAAO,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,EAAkD;IACjF,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,KAAC,YAAY,IAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,GAAI,CAAC;AAClE,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,QAAQ,EACR,OAAO,EACP,aAAa,EACb,OAAO,EACP,SAAS,EACT,GAAG,IAAI,EAKR;IACC,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,IAAI,MAAM,KAAK,UAAU,CAAC,GAAG,CAAC,EACxF,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,IAAI,OAAO;QAAE,OAAO,KAAC,SAAS,KAAG,CAAC;IAElC,OAAO,CACL,kBAAS,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,aACnE,aAAa,IAAI,UAAU,IAAI,cAAK,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,GAAI,EAC/F,cAAK,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,YAAG,QAAQ,GAAO,IACxD,CACP,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAyB;IACrF,MAAM,SAAS,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;IAClC,MAAM,YAAY,GAAG,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC;IAC7C,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAExD,MAAM,aAAa,GAAoC,OAAO,CAC5D,GAAG,EAAE,CACH,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC9C,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,SAAS,KAAK,GAAG,CAAC,EAAE,CAAC;QACvF,MAAM,aAAa,GAAG,yBAAyB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC;QACtC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,QAAQ,aAAa,EAAE,CAAC;QAC7C,OAAO;YACL,GAAG,CAAC,EAAE,IAAI,OAAO,KAAK,EAAE;YACxB;gBACE,GAAG,GAAG;gBACN,KAAK,EAAE;oBACL,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;oBACpB,GAAG;oBACH,WAAW,EAAE,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,SAAS;oBACvD,MAAM,EAAE,QAAQ;oBAChB,OAAO,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;oBAC5C,IAAI,EAAE,CAAC,CAAC,YAAY,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,SAAS;oBACrD,eAAe,EAAE,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU;oBACpE,SAAS,EAAE,MAAM,CAAC,OAAO;oBACzB,QAAQ,EAAE,CACR,KAAC,cAAc,IAAW,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,YACvF,GAAG,CAAC,KAAK,EAAE,QAAQ,IADD,GAAG,CAEP,CAClB;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CAAC,EACJ,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAC5D,CAAC;IAEF,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EACpD,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAC5D,CAAC;IACF,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EACnD,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAC5D,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAE,MAAM,CAAC,YAAY,YACjC,KAAC,kBAAkB,IAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,GAAI,GACxE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,MAAoB,EACpB,SAAuB,EACvB,qBAA6D,EAC7D,sBAA+D,EAC/D,qBAA6D;IAE7D,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,CAAC,MAAM,EAAE,OAAO;QAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,qBAAqB,KAAK,IAAI,IAAI,sBAAsB,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnF,IAAI,qBAAqB,KAAK,SAAS,IAAI,sBAAsB,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAElG,MAAM,eAAe,GAAG,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC;IAE5D,IACE,sBAAsB,CAAC,IAAI,KAAK,CAAC;QACjC,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,EAC5F,CAAC;QACD,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,CAAC,cAAc,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,qBAAqB,CAAC,CAAC;IAEvG,IAAI,qBAAqB,EAAE,IAAI,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,qBAAqB,CAAC,IAAI,GAAG,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,EAAE,CAAC;QAC5F,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,sBAAsB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,GAAG,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAC/F,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAwC;IACjF,OAAO,CACL,eAAK,SAAS,EAAE,SAAS,KAAM,IAAI,aACjC,KAAC,aAAa,IAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,GAAI,EACxD,eAAK,SAAS,EAAE,MAAM,CAAC,aAAa,aAClC,cAAK,SAAS,EAAE,MAAM,CAAC,iBAAiB,YACtC,KAAC,aAAa,IAAC,KAAK,EAAE,EAAE,GAAI,GACxB,EACN,cAAK,SAAS,EAAE,MAAM,CAAC,oBAAoB,YACzC,KAAC,aAAa,IAAC,KAAK,EAAE,EAAE,GAAI,GACxB,IACF,IACF,CACP,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAMC;IAED,MAAM,EACJ,MAAM,EACN,KAAK,EACL,OAAO,EACP,MAAM,GAAG,aAAa,EACtB,WAAW,EACX,cAAc,EACd,sBAAsB,EACtB,WAAW,EACX,MAAM,GACP,GAAG,KAAK,CAAC;IAEV,MAAM,iBAAiB,GAAG,KAAK,EAAE,aAAa,EAAE,OAAO,KAAK,IAAI,CAAC;IAEjE,OAAO,CACL,8BACG,iBAAiB,IAAI,CACpB,cAAK,SAAS,EAAE,MAAM,CAAC,GAAG,YACvB,KAAK,EAAE,aAAa,EAAE,OAAO,IAAI,CAChC,KAAC,6BAA6B,IAC5B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,sBAAsB,EAAE,sBAAsB,EAC9C,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,GAC5C,CACH,GACG,CACP,EACA,OAAO,IAAI,CAAC,MAAM,IAAI,KAAC,MAAM,IAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,GAAI,EACtE,CAAC,OAAO,IAAI,CACX,eAAK,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,aAChE,KAAC,cAAc,OAAK,KAAK,GAAI,EAC5B,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CACnD,KAAC,UAAU,IAAC,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,GAAI,CAC5D,EACA,KAAK,EAAE,IAAI,EAAE,OAAO,IACjB,CACP,IACA,CACJ,CAAC;AACJ,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,MAAM,EACJ,IAAI,EACJ,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,kBAAkB;IAC7B,6DAA6D;IAC7D,MAAM,EACN,KAAK;IACL,6DAA6D;IAC7D,IAAI,EACJ,SAAS,EACT,KAAK,EACL,OAAO,EAAE,gBAAgB,EACzB,kBAAkB,EAClB,MAAM,GAAG,aAAa,EACtB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,MAAM,GAAG,KAAK,EACd,iBAAiB,EACjB,cAAc,EACd,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,MAAM,WAAW,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC/C,MAAM,mBAAmB,GAAG,UAAU,CAAC,0BAA0B,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,IAAI,KAAK,6BAA6B,CAAC;IAE3D,MAAM,EACJ,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,cAAc,EACvB,mBAAmB,EAAE,0BAA0B,GAChD,GAAG,YAAY,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,kBAAkB,EAAE,QAAQ,EAAE,EAAE;QACtF,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,kBAAkB,IAAI,CAAC,iBAAiB,CAAC;QAC3D,kBAAkB;QAClB,UAAU,EAAE;YACV,GAAG,EAAE;YACH,4DAA4D;YAC5D,YAAY;aACb;SACF;KACF,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,OAAO,CAC5B,GAAG,EAAE,CAAC,CAAC,gBAAgB,EAAE,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EACnF,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,CAAC,CAClG,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAC3E,MAAM,cAAc,GAClB,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB;QACnF,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC;IAC3B,MAAM,qBAAqB,GAAG,cAAc,KAAK,WAAW,CAAC;IAE7D,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE;QACnC,IAAI,qBAAqB;YAAE,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC,CAAC;QACxF,OAAO,eAAe,CAAC;IACzB,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAE7E,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAC1B,GAAG,EAAE,CACH,eAAe;QACf,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACxD,CAAC,eAAe,IAAI,SAAS,CAAC,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5F,SAAS,CAAC,EAAE,EACd,CAAC,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,CAC5F,CAAC;IAEF,MAAM,EACJ,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,WAAW,EACpB,mBAAmB,EAAE,uBAAuB,GAC7C,GAAG,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,MAAM,EAAE,QAAQ,EAAE,EAAE;QACvE,kBAAkB;QAClB,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC;QAC5C,UAAU,EAAE;YACV,GAAG,EAAE;YACH,4DAA4D;YAC5D,YAAY;aACb;SACF;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,WAAW,IAAI,cAAc,CAAC;IAE9C,MAAM,OAAO,GAAG,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;IAElE,MAAM,aAAa,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;IAEzE,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,GAAG,EAA8B,CAAC,CAAC;IACrG,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAE7B,MAAM,yBAAyB,GAC7B,MAAM,IAAI,qBAAqB,IAAI,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;IAEtG,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,GAAG,wBAAwB,CACpF,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,EACnB,OAAO,EAAE,EAAE,CAAC,QAAQ,EAAE,EACtB,SAAS,EACT,yBAAyB,CAC1B,CAAC;IAEF,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,EAAE;QACzC,IAAI,OAAO,IAAI,kBAAkB;YAAE,OAAO,SAAS,CAAC;QACpD,IAAI,CAAC,kBAAkB,IAAI,CAAC,oBAAoB;YAAE,OAAO,IAAI,CAAC;QAE9D,MAAM,2BAA2B,GAAG,IAAI,GAAG,EAA6B,CAAC;QACzE,CAAC,oBAAoB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;YAC7D,2BAA2B,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QACH,OAAO,2BAA2B,CAAC;IACrC,CAAC,EAAE,CAAC,kBAAkB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAEjD,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1C,IAAI,OAAO,IAAI,kBAAkB;YAAE,OAAO,SAAS,CAAC;QACpD,IAAI,CAAC,kBAAkB,IAAI,CAAC,oBAAoB;YAAE,OAAO,IAAI,CAAC;QAC9D,MAAM,4BAA4B,GAAG,IAAI,GAAG,EAA8B,CAAC;QAC3E,CAAC,oBAAoB,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE;YAClE,4BAA4B,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QACH,OAAO,4BAA4B,CAAC;IACtC,CAAC,EAAE,CAAC,kBAAkB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAEjD,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,EAAE;QACzC,IAAI,OAAO,IAAI,kBAAkB;YAAE,OAAO,SAAS,CAAC;QACpD,IAAI,CAAC,kBAAkB,IAAI,CAAC,oBAAoB;YAAE,OAAO,IAAI,CAAC;QAC9D,MAAM,2BAA2B,GAAG,IAAI,GAAG,EAA6B,CAAC;QACzE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;YAC9D,2BAA2B,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QACH,OAAO,2BAA2B,CAAC;IACrC,CAAC,EAAE,CAAC,kBAAkB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAEjD,MAAM,qBAAqB,GAAG;QAC5B,OAAO,EAAE,OAAO,IAAI;YAClB,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,0BAA0B,IAAI,mBAAmB;YAC7D,eAAe,EAAE,qBAAqB;SACvC;QACD,IAAI,EAAE,IAAI,IAAI;YACZ,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,uBAAuB;SACpC;QACD,OAAO;QACP,aAAa;QACb,KAAK;QACL,KAAK;QACL,WAAW;QACX,cAAc;QACd,sBAAsB;QACtB,qBAAqB;QACrB,qBAAqB;QACrB,YAAY;QACZ,MAAM;KACP,CAAC;IAEF,MAAM,OAAO,GACX,gBAAgB;QAChB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,qBAAqB,CAAC,CAAC;IAE9G,OAAO,CACL,KAAC,uBAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,qBAAqB,YAC5D,cAAK,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,yBAAyB,EAAE,SAAS,CAAC,KAAM,IAAI,YAC/E,KAAC,mBAAmB,OAEd,KAAK,EACT,WAAW,EACT,OAAO,EAAE,EAAE,EAAE,sBAAsB,EAAE;oBACrC,MAAM,CAAC,sBAAsB,EAAE;oBAC/B,SAAS,EAAE,EAAE,EAAE,sBAAsB,EAAE,EAEzC,WAAW,EAAE,MAAM,CAAC,OAAO,EAC3B,cAAc,EAAE,kBAAkB,EAAE,OAAO,IAAI,SAAS,CAAC,EAAE,CAAC,OAAO,EACnE,sBAAsB,EAAE,qBAAqB,EAC7C,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,IAZT,aAAa,CAalB,GACE,GAC2B,CACpC,CAAC;AACJ,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ComponentCompare = void 0;
|
|
4
|
-
var component_compare_1 = require("./component-compare");
|
|
5
|
-
Object.defineProperty(exports, "ComponentCompare", { enumerable: true, get: function () { return component_compare_1.ComponentCompare; } });
|
|
1
|
+
export { ComponentCompare } from './component-compare';
|
|
6
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/tsconfig.json
CHANGED
|
@@ -1,29 +1,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
3
|
"lib": [
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"DOM.Iterable"
|
|
4
|
+
"esnext",
|
|
5
|
+
"dom",
|
|
6
|
+
"dom.Iterable"
|
|
8
7
|
],
|
|
9
|
-
"target": "
|
|
10
|
-
"module": "
|
|
11
|
-
"jsx": "react",
|
|
12
|
-
"allowJs": true,
|
|
13
|
-
"composite": true,
|
|
8
|
+
"target": "es2020",
|
|
9
|
+
"module": "es2020",
|
|
10
|
+
"jsx": "react-jsx",
|
|
14
11
|
"declaration": true,
|
|
15
12
|
"sourceMap": true,
|
|
16
|
-
"skipLibCheck": true,
|
|
17
13
|
"experimentalDecorators": true,
|
|
18
|
-
"
|
|
14
|
+
"skipLibCheck": true,
|
|
19
15
|
"moduleResolution": "node",
|
|
20
16
|
"esModuleInterop": true,
|
|
21
|
-
"
|
|
22
|
-
"
|
|
17
|
+
"resolveJsonModule": true,
|
|
18
|
+
"allowJs": true,
|
|
19
|
+
"outDir": "dist",
|
|
20
|
+
"strict": true,
|
|
21
|
+
"emitDecoratorMetadata": true,
|
|
22
|
+
"preserveConstEnums": true,
|
|
23
|
+
"strictPropertyInitialization": false,
|
|
24
|
+
"noImplicitAny": false
|
|
23
25
|
},
|
|
24
26
|
"exclude": [
|
|
27
|
+
"artifacts",
|
|
28
|
+
"public",
|
|
25
29
|
"dist",
|
|
26
|
-
"
|
|
30
|
+
"node_modules",
|
|
31
|
+
"package.json",
|
|
32
|
+
"**/*.cjs",
|
|
33
|
+
"./dist"
|
|
27
34
|
],
|
|
28
35
|
"include": [
|
|
29
36
|
"**/*",
|
package/package.json
CHANGED
|
@@ -1,46 +1,41 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/component.ui.component-compare.component-compare",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.177",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/component/ui/component-compare/component-compare",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.component",
|
|
8
8
|
"name": "ui/component-compare/component-compare",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.177"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"classnames": "2.2.6",
|
|
13
|
-
"core-js": "^3.0.0",
|
|
14
|
-
"@teambit/base-react.navigation.link": "2.0.27",
|
|
15
13
|
"@teambit/base-ui.loaders.skeleton": "1.0.1",
|
|
16
|
-
"@teambit/component.ui.component-compare.context": "0.0.117",
|
|
17
14
|
"@teambit/component.ui.component-compare.hooks.use-component-compare-url": "0.0.9",
|
|
18
15
|
"@teambit/component.ui.component-compare.hooks.use-component-compare": "0.0.113",
|
|
19
16
|
"@teambit/component.ui.component-compare.models.component-compare-change-type": "0.0.7",
|
|
20
17
|
"@teambit/component.ui.component-compare.models.component-compare-hooks": "0.0.10",
|
|
21
18
|
"@teambit/component.ui.component-compare.models.component-compare-model": "0.0.111",
|
|
22
19
|
"@teambit/component.ui.component-compare.utils.group-by-version": "0.0.8",
|
|
23
|
-
"@teambit/component.ui.component-compare.utils.lazy-loading": "0.0.6",
|
|
24
20
|
"@teambit/component.ui.component-compare.utils.sort-logs": "0.0.8",
|
|
25
21
|
"@teambit/component.ui.component-compare.utils.sort-tabs": "0.0.102",
|
|
26
22
|
"@teambit/legacy-component-log": "0.0.402",
|
|
27
23
|
"@teambit/ui-foundation.ui.react-router.slot-router": "0.0.506",
|
|
28
|
-
"@teambit/component.ui.component-compare.
|
|
29
|
-
"@teambit/component.ui.component-compare.
|
|
24
|
+
"@teambit/component.ui.component-compare.context": "0.0.118",
|
|
25
|
+
"@teambit/component.ui.component-compare.models.component-compare-props": "0.0.103",
|
|
26
|
+
"@teambit/component.ui.component-compare.utils.lazy-loading": "0.0.6",
|
|
27
|
+
"@teambit/component.ui.component-compare.version-picker": "0.0.173"
|
|
30
28
|
},
|
|
31
29
|
"devDependencies": {
|
|
32
30
|
"@types/classnames": "2.2.11",
|
|
33
|
-
"@types/react": "^17.0.8",
|
|
34
31
|
"@types/mocha": "9.1.0",
|
|
35
|
-
"@types/
|
|
36
|
-
"@
|
|
37
|
-
"@types/jest": "^26.0.0",
|
|
38
|
-
"@babel/runtime": "7.20.0",
|
|
39
|
-
"@types/testing-library__jest-dom": "5.9.5"
|
|
32
|
+
"@types/jest": "^29.2.2",
|
|
33
|
+
"@teambit/react.v17.react-env": "1.0.33"
|
|
40
34
|
},
|
|
41
35
|
"peerDependencies": {
|
|
42
36
|
"react": "^16.8.0 || ^17.0.0",
|
|
43
|
-
"react
|
|
37
|
+
"@types/react": "^17.0.0",
|
|
38
|
+
"@teambit/base-react.navigation.link": "2.0.27"
|
|
44
39
|
},
|
|
45
40
|
"license": "Apache-2.0",
|
|
46
41
|
"optionalDependencies": {},
|
package/tsconfig.json
CHANGED
|
@@ -1,29 +1,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
3
|
"lib": [
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"DOM.Iterable"
|
|
4
|
+
"esnext",
|
|
5
|
+
"dom",
|
|
6
|
+
"dom.Iterable"
|
|
8
7
|
],
|
|
9
|
-
"target": "
|
|
10
|
-
"module": "
|
|
11
|
-
"jsx": "react",
|
|
12
|
-
"allowJs": true,
|
|
13
|
-
"composite": true,
|
|
8
|
+
"target": "es2020",
|
|
9
|
+
"module": "es2020",
|
|
10
|
+
"jsx": "react-jsx",
|
|
14
11
|
"declaration": true,
|
|
15
12
|
"sourceMap": true,
|
|
16
|
-
"skipLibCheck": true,
|
|
17
13
|
"experimentalDecorators": true,
|
|
18
|
-
"
|
|
14
|
+
"skipLibCheck": true,
|
|
19
15
|
"moduleResolution": "node",
|
|
20
16
|
"esModuleInterop": true,
|
|
21
|
-
"
|
|
22
|
-
"
|
|
17
|
+
"resolveJsonModule": true,
|
|
18
|
+
"allowJs": true,
|
|
19
|
+
"outDir": "dist",
|
|
20
|
+
"strict": true,
|
|
21
|
+
"emitDecoratorMetadata": true,
|
|
22
|
+
"preserveConstEnums": true,
|
|
23
|
+
"strictPropertyInitialization": false,
|
|
24
|
+
"noImplicitAny": false
|
|
23
25
|
},
|
|
24
26
|
"exclude": [
|
|
27
|
+
"artifacts",
|
|
28
|
+
"public",
|
|
25
29
|
"dist",
|
|
26
|
-
"
|
|
30
|
+
"node_modules",
|
|
31
|
+
"package.json",
|
|
32
|
+
"**/*.cjs",
|
|
33
|
+
"./dist"
|
|
27
34
|
],
|
|
28
35
|
"include": [
|
|
29
36
|
"**/*",
|
package/types/asset.d.ts
CHANGED
|
@@ -5,12 +5,12 @@ declare module '*.png' {
|
|
|
5
5
|
declare module '*.svg' {
|
|
6
6
|
import type { FunctionComponent, SVGProps } from 'react';
|
|
7
7
|
|
|
8
|
-
export const ReactComponent: FunctionComponent<
|
|
8
|
+
export const ReactComponent: FunctionComponent<
|
|
9
|
+
SVGProps<SVGSVGElement> & { title?: string }
|
|
10
|
+
>;
|
|
9
11
|
const src: string;
|
|
10
12
|
export default src;
|
|
11
13
|
}
|
|
12
|
-
|
|
13
|
-
// @TODO Gilad
|
|
14
14
|
declare module '*.jpg' {
|
|
15
15
|
const value: any;
|
|
16
16
|
export = value;
|
|
@@ -27,3 +27,15 @@ declare module '*.bmp' {
|
|
|
27
27
|
const value: any;
|
|
28
28
|
export = value;
|
|
29
29
|
}
|
|
30
|
+
declare module '*.otf' {
|
|
31
|
+
const value: any;
|
|
32
|
+
export = value;
|
|
33
|
+
}
|
|
34
|
+
declare module '*.woff' {
|
|
35
|
+
const value: any;
|
|
36
|
+
export = value;
|
|
37
|
+
}
|
|
38
|
+
declare module '*.woff2' {
|
|
39
|
+
const value: any;
|
|
40
|
+
export = value;
|
|
41
|
+
}
|
|
File without changes
|