@teambit/component.ui.component-compare.component-compare 0.0.20 → 0.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/component-compare.module.scss +80 -4
- package/component-compare.tsx +184 -32
- package/dist/component-compare.js +108 -16
- package/dist/component-compare.js.map +1 -1
- package/dist/component-compare.module.scss +80 -4
- package/dist/{preview-1672716315992.js → preview-1672889151191.js} +0 -0
- package/package-tar/teambit-component.ui.component-compare.component-compare-0.0.22.tgz +0 -0
- package/package.json +11 -8
- package/package-tar/teambit-component.ui.component-compare.component-compare-0.0.20.tgz +0 -0
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
|
|
30
30
|
.navigation {
|
|
31
31
|
display: flex;
|
|
32
|
-
list-style: none;
|
|
33
32
|
min-height: 48px;
|
|
33
|
+
align-items: center;
|
|
34
34
|
|
|
35
35
|
@media screen and (max-width: 768px) {
|
|
36
36
|
padding-left: 6px;
|
|
@@ -44,8 +44,84 @@
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
.loader {
|
|
47
|
+
padding: 16px 24px;
|
|
48
|
+
color: var(--bit-bg-dent, #f6f6f6);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.tabLoader {
|
|
52
|
+
color: var(--bit-bg-dent, #f6f6f6);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.compareLoader {
|
|
47
56
|
display: flex;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
57
|
+
padding-top: 16px;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.compareSidebarLoader {
|
|
61
|
+
width: 30%;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.compareViewLoader {
|
|
65
|
+
width: 70%;
|
|
66
|
+
padding-right: 16px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.activeNav {
|
|
70
|
+
> div {
|
|
71
|
+
color: var(--bit-accent-color, #6c5ce7);
|
|
72
|
+
border-radius: 5px;
|
|
73
|
+
background-color: var(--bit-accent-bg, #edebfc);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
&:after {
|
|
77
|
+
// unset default selection styles
|
|
78
|
+
height: 0 !important;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.loadingNav {
|
|
83
|
+
// > div {
|
|
84
|
+
// color: var(--bit-accent-color, #6c5ce7);
|
|
85
|
+
// border-radius: 5px;
|
|
86
|
+
// background-color: var(--bit-accent-bg, #edebfc);
|
|
87
|
+
// }
|
|
88
|
+
|
|
89
|
+
&:after {
|
|
90
|
+
// unset default selection styles
|
|
91
|
+
height: 0 !important;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.navItem {
|
|
96
|
+
position: relative;
|
|
97
|
+
color: var(--bit-text-color-light, #707279);
|
|
98
|
+
|
|
99
|
+
&.none {
|
|
100
|
+
> div {
|
|
101
|
+
opacity: 65%;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.compareMenuTab {
|
|
107
|
+
position: relative;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.indicator {
|
|
111
|
+
position: absolute;
|
|
112
|
+
top: -8px;
|
|
113
|
+
right: -8px;
|
|
114
|
+
border-radius: 100%;
|
|
115
|
+
padding: 4px;
|
|
116
|
+
box-sizing: border-box;
|
|
117
|
+
|
|
118
|
+
&.hasChanged {
|
|
119
|
+
background-color: #ff8b00;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
&.new {
|
|
123
|
+
// @todo - review styles
|
|
124
|
+
display: none;
|
|
125
|
+
background-color: var(--bit-accent-success-color, #37b26c);
|
|
126
|
+
}
|
|
51
127
|
}
|
package/component-compare.tsx
CHANGED
|
@@ -1,20 +1,26 @@
|
|
|
1
|
-
import React, { useContext, useMemo } from 'react';
|
|
1
|
+
import React, { useContext, useMemo, HTMLAttributes } from 'react';
|
|
2
2
|
import classnames from 'classnames';
|
|
3
3
|
import { LegacyComponentLog } from '@teambit/legacy-component-log';
|
|
4
|
-
import { ComponentContext,
|
|
4
|
+
import { CollapsibleMenuNav, ComponentContext, ComponentID, NavPlugin, useComponent } from '@teambit/component';
|
|
5
5
|
import { ComponentCompareContext } from '@teambit/component.ui.component-compare.context';
|
|
6
|
+
import { useComponentCompareQuery } from '@teambit/component.ui.component-compare.hooks.use-component-compare';
|
|
7
|
+
import {
|
|
8
|
+
FileCompareResult,
|
|
9
|
+
FieldCompareResult,
|
|
10
|
+
} from '@teambit/component.ui.component-compare.models.component-compare-model';
|
|
6
11
|
import { useCompareQueryParam } from '@teambit/component.ui.component-compare.hooks.use-component-compare-url';
|
|
7
12
|
import { ComponentCompareVersionPicker } from '@teambit/component.ui.component-compare.version-picker';
|
|
8
13
|
import { ComponentCompareBlankState } from '@teambit/component.ui.component-compare.blank-state';
|
|
9
14
|
import { ComponentCompareHooks } from '@teambit/component.ui.component-compare.models.component-compare-hooks';
|
|
10
|
-
import { RoundLoader } from '@teambit/design.ui.round-loader';
|
|
11
15
|
import { useLocation } from '@teambit/base-react.navigation.link';
|
|
12
16
|
import { SlotRouter } from '@teambit/ui-foundation.ui.react-router.slot-router';
|
|
13
|
-
import { ComponentCompareProps } from '@teambit/component.ui.component-compare.models.component-compare-props';
|
|
17
|
+
import { ComponentCompareProps, TabItem } from '@teambit/component.ui.component-compare.models.component-compare-props';
|
|
14
18
|
import { groupByVersion } from '@teambit/component.ui.component-compare.utils.group-by-version';
|
|
15
19
|
import { sortTabs } from '@teambit/component.ui.component-compare.utils.sort-tabs';
|
|
16
20
|
import { sortByDateDsc } from '@teambit/component.ui.component-compare.utils.sort-logs';
|
|
17
21
|
import { extractLazyLoadedData } from '@teambit/component.ui.component-compare.utils.lazy-loading';
|
|
22
|
+
import { BlockSkeleton, WordSkeleton } from '@teambit/base-ui.loaders.skeleton';
|
|
23
|
+
import { ChangeType } from '@teambit/component.ui.component-compare.models.component-compare-change-type';
|
|
18
24
|
|
|
19
25
|
import styles from './component-compare.module.scss';
|
|
20
26
|
|
|
@@ -40,13 +46,14 @@ export function ComponentCompare(props: ComponentCompareProps) {
|
|
|
40
46
|
tabs,
|
|
41
47
|
className,
|
|
42
48
|
hooks,
|
|
49
|
+
changes: changesFromProps,
|
|
43
50
|
customUseComponent,
|
|
51
|
+
Loader = CompareLoader,
|
|
44
52
|
...rest
|
|
45
53
|
} = props;
|
|
46
54
|
const baseVersion = useCompareQueryParam('baseVersion');
|
|
47
55
|
const component = useContext(ComponentContext);
|
|
48
56
|
const location = useLocation();
|
|
49
|
-
|
|
50
57
|
const isWorkspace = host === 'teambit.workspace/workspace';
|
|
51
58
|
const allVersionInfo = useMemo(() => component.logs?.slice().sort(sortByDateDsc) || [], [component.id.toString()]);
|
|
52
59
|
const isNew = allVersionInfo.length === 0;
|
|
@@ -77,10 +84,38 @@ export function ComponentCompare(props: ComponentCompareProps) {
|
|
|
77
84
|
|
|
78
85
|
const isEmpty = !loading && !compareIsLocalChanges && !compare && !base;
|
|
79
86
|
|
|
87
|
+
const compCompareId = `${base?.id.toString()}-${compare?.id.toString()}`;
|
|
88
|
+
|
|
80
89
|
const logsByVersion = useMemo(() => {
|
|
81
90
|
return (compare?.logs || []).slice().reduce(groupByVersion, new Map<string, LegacyComponentLog>());
|
|
82
91
|
}, [compare?.id.toString()]);
|
|
83
92
|
|
|
93
|
+
const { loading: compCompareLoading, componentCompareData } = useComponentCompareQuery(
|
|
94
|
+
base?.id.toString(),
|
|
95
|
+
compare?.id.toString()
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
const fileCompareDataByName = useMemo(() => {
|
|
99
|
+
if (loading || compCompareLoading) return undefined;
|
|
100
|
+
if (!compCompareLoading && !componentCompareData) return null;
|
|
101
|
+
|
|
102
|
+
const _fileCompareDataByName = new Map<string, FileCompareResult>();
|
|
103
|
+
(componentCompareData?.code || []).forEach((codeCompareData) => {
|
|
104
|
+
_fileCompareDataByName.set(codeCompareData.fileName, codeCompareData);
|
|
105
|
+
});
|
|
106
|
+
return _fileCompareDataByName;
|
|
107
|
+
}, [compCompareLoading, loading, compCompareId]);
|
|
108
|
+
|
|
109
|
+
const fieldCompareDataByName = useMemo(() => {
|
|
110
|
+
if (loading || compCompareLoading) return undefined;
|
|
111
|
+
if (!compCompareLoading && !componentCompareData) return null;
|
|
112
|
+
const _fieldCompareDataByName = new Map<string, FieldCompareResult>();
|
|
113
|
+
(componentCompareData?.aspects || []).forEach((aspectCompareData) => {
|
|
114
|
+
_fieldCompareDataByName.set(aspectCompareData.fieldName, aspectCompareData);
|
|
115
|
+
});
|
|
116
|
+
return _fieldCompareDataByName;
|
|
117
|
+
}, [compCompareLoading, loading, compCompareId]);
|
|
118
|
+
|
|
84
119
|
const componentCompareModel = {
|
|
85
120
|
compare: compare && {
|
|
86
121
|
model: compare,
|
|
@@ -93,18 +128,19 @@ export function ComponentCompare(props: ComponentCompareProps) {
|
|
|
93
128
|
logsByVersion,
|
|
94
129
|
state,
|
|
95
130
|
hooks,
|
|
131
|
+
fieldCompareDataByName,
|
|
132
|
+
fileCompareDataByName,
|
|
96
133
|
};
|
|
97
134
|
|
|
135
|
+
const changes =
|
|
136
|
+
changesFromProps || deriveChangeType(baseId, compare?.id, fileCompareDataByName, fieldCompareDataByName);
|
|
137
|
+
|
|
98
138
|
return (
|
|
99
139
|
<ComponentCompareContext.Provider value={componentCompareModel}>
|
|
100
140
|
<div className={classnames(styles.componentCompareContainer, className)} {...rest}>
|
|
101
|
-
{loading && (
|
|
102
|
-
<div className={styles.loader}>
|
|
103
|
-
<RoundLoader />
|
|
104
|
-
</div>
|
|
105
|
-
)}
|
|
141
|
+
{loading && <Loader className={classnames(styles.loader)} />}
|
|
106
142
|
{isEmpty && <ComponentCompareBlankState />}
|
|
107
|
-
{!isEmpty && <RenderCompareScreen {...props} />}
|
|
143
|
+
{!loading && !isEmpty && <RenderCompareScreen key={compCompareId} {...props} changes={changes} />}
|
|
108
144
|
</div>
|
|
109
145
|
</ComponentCompareContext.Provider>
|
|
110
146
|
);
|
|
@@ -112,12 +148,13 @@ export function ComponentCompare(props: ComponentCompareProps) {
|
|
|
112
148
|
|
|
113
149
|
function RenderCompareScreen(props: ComponentCompareProps) {
|
|
114
150
|
const { routes, state } = props;
|
|
151
|
+
const showVersionPicker = state?.versionPicker?.element !== null;
|
|
115
152
|
|
|
116
153
|
return (
|
|
117
154
|
<>
|
|
118
|
-
|
|
119
|
-
{
|
|
120
|
-
|
|
155
|
+
{showVersionPicker && (
|
|
156
|
+
<div className={styles.top}>{state?.versionPicker?.element || <ComponentCompareVersionPicker />}</div>
|
|
157
|
+
)}
|
|
121
158
|
<div className={styles.bottom}>
|
|
122
159
|
<CompareMenuNav {...props} />
|
|
123
160
|
{(extractLazyLoadedData(routes) || []).length > 0 && (
|
|
@@ -129,29 +166,55 @@ function RenderCompareScreen(props: ComponentCompareProps) {
|
|
|
129
166
|
);
|
|
130
167
|
}
|
|
131
168
|
|
|
132
|
-
function CompareMenuNav({ tabs, state, hooks }: ComponentCompareProps) {
|
|
133
|
-
const sortedTabs = (extractLazyLoadedData(tabs) || []).sort(sortTabs);
|
|
134
|
-
|
|
169
|
+
function CompareMenuNav({ tabs, state, hooks, changes: changed }: ComponentCompareProps) {
|
|
135
170
|
const activeTab = state?.tabs?.id;
|
|
136
171
|
const isControlled = state?.tabs?.controlled;
|
|
172
|
+
const _tabs = extractLazyLoadedData(tabs) || [];
|
|
173
|
+
|
|
174
|
+
const extractedTabs: [string, NavPlugin & TabItem][] = useMemo(
|
|
175
|
+
() =>
|
|
176
|
+
_tabs.sort(sortTabs).map((tab, index) => {
|
|
177
|
+
const isActive = !state ? undefined : !!activeTab && !!tab?.id && activeTab === tab.id;
|
|
178
|
+
const changeTypeCss = deriveChangeTypeCssForNav(tab, changed);
|
|
179
|
+
const loading = changed === undefined;
|
|
180
|
+
const key = `${tab.id}-tab-${changeTypeCss}`;
|
|
181
|
+
return [
|
|
182
|
+
tab.id || `tab-${index}`,
|
|
183
|
+
{
|
|
184
|
+
...tab,
|
|
185
|
+
props: {
|
|
186
|
+
...(tab.props || {}),
|
|
187
|
+
key,
|
|
188
|
+
displayName: (!loading && tab.displayName) || undefined,
|
|
189
|
+
active: isActive,
|
|
190
|
+
onClick: onNavClicked({ id: tab.id, hooks }),
|
|
191
|
+
href: (!isControlled && tab.props?.href) || undefined,
|
|
192
|
+
activeClassName: (!loading && styles.activeNav) || styles.loadingNav,
|
|
193
|
+
className: styles.navItem,
|
|
194
|
+
children: (
|
|
195
|
+
<CompareMenuTab key={key} loading={loading} changeTypeCss={changeTypeCss} changed={changed}>
|
|
196
|
+
{tab.props?.children}
|
|
197
|
+
</CompareMenuTab>
|
|
198
|
+
),
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
];
|
|
202
|
+
}),
|
|
203
|
+
[_tabs.length, activeTab, changed?.length]
|
|
204
|
+
);
|
|
205
|
+
|
|
206
|
+
const sortedTabs = useMemo(
|
|
207
|
+
() => extractedTabs.filter(([, tab]) => !tab.widget),
|
|
208
|
+
[extractedTabs.length, activeTab, changed?.length]
|
|
209
|
+
);
|
|
210
|
+
const sortedWidgets = useMemo(
|
|
211
|
+
() => extractedTabs.filter(([, tab]) => tab.widget),
|
|
212
|
+
[extractedTabs.length, activeTab, changed?.length]
|
|
213
|
+
);
|
|
137
214
|
|
|
138
215
|
return (
|
|
139
216
|
<div className={styles.navContainer}>
|
|
140
|
-
<
|
|
141
|
-
{sortedTabs.map((tabItem, index) => {
|
|
142
|
-
const isActive = !state ? undefined : !!activeTab && !!tabItem.id && activeTab === tabItem.id;
|
|
143
|
-
|
|
144
|
-
return (
|
|
145
|
-
<TopBarNav
|
|
146
|
-
{...(tabItem.props || {})}
|
|
147
|
-
key={`compare-menu-nav-${index}-${tabItem.id}`}
|
|
148
|
-
active={isActive}
|
|
149
|
-
onClick={onNavClicked({ id: tabItem.id, hooks })}
|
|
150
|
-
href={(!isControlled && tabItem.props?.href) || undefined}
|
|
151
|
-
/>
|
|
152
|
-
);
|
|
153
|
-
})}
|
|
154
|
-
</nav>
|
|
217
|
+
<CollapsibleMenuNav navPlugins={sortedTabs} widgetPlugins={sortedWidgets} />
|
|
155
218
|
</div>
|
|
156
219
|
);
|
|
157
220
|
}
|
|
@@ -160,3 +223,92 @@ function onNavClicked({ hooks, id }: { hooks?: ComponentCompareHooks; id?: strin
|
|
|
160
223
|
if (!hooks?.tabs?.onClick) return undefined;
|
|
161
224
|
return (e) => hooks?.tabs?.onClick?.(id, e);
|
|
162
225
|
}
|
|
226
|
+
|
|
227
|
+
function CompareLoader({ className, ...rest }: React.HTMLAttributes<HTMLDivElement>) {
|
|
228
|
+
return (
|
|
229
|
+
<div className={className} {...rest}>
|
|
230
|
+
<BlockSkeleton className={styles.navLoader} lines={3} />
|
|
231
|
+
<div className={styles.compareLoader}>
|
|
232
|
+
<div className={styles.compareViewLoader}>
|
|
233
|
+
<BlockSkeleton lines={30} />
|
|
234
|
+
</div>
|
|
235
|
+
<div className={styles.compareSidebarLoader}>
|
|
236
|
+
<BlockSkeleton lines={30} />
|
|
237
|
+
</div>
|
|
238
|
+
</div>
|
|
239
|
+
</div>
|
|
240
|
+
);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
function TabLoader() {
|
|
244
|
+
return <WordSkeleton className={styles.tabLoader} length={5} />;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
function deriveChangeType(
|
|
248
|
+
baseId?: ComponentID,
|
|
249
|
+
compareId?: ComponentID,
|
|
250
|
+
fileCompareDataByName?: Map<string, FileCompareResult> | null,
|
|
251
|
+
fieldCompareDataByName?: Map<string, FieldCompareResult> | null
|
|
252
|
+
): ChangeType[] | undefined | null {
|
|
253
|
+
if (!baseId && !compareId) return null;
|
|
254
|
+
if (!baseId?.version) return [ChangeType.NEW];
|
|
255
|
+
|
|
256
|
+
if (fileCompareDataByName === null || fieldCompareDataByName === null) return null;
|
|
257
|
+
if (fileCompareDataByName === undefined || fieldCompareDataByName === undefined) return undefined;
|
|
258
|
+
|
|
259
|
+
if (
|
|
260
|
+
fieldCompareDataByName.size === 0 &&
|
|
261
|
+
(fileCompareDataByName.size === 0 || [...fileCompareDataByName.values()].every((f) => f.status === 'UNCHANGED'))
|
|
262
|
+
) {
|
|
263
|
+
return [ChangeType.NONE];
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
const changed: ChangeType[] = [];
|
|
267
|
+
const DEPS_FIELD = ['dependencies', 'devDependencies', 'extensionDependencies'];
|
|
268
|
+
|
|
269
|
+
if (fileCompareDataByName.size > 0 && [...fileCompareDataByName.values()].some((f) => f.status !== 'UNCHANGED')) {
|
|
270
|
+
changed.push(ChangeType.SOURCE_CODE);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
if (fieldCompareDataByName.size > 0) {
|
|
274
|
+
changed.push(ChangeType.ASPECTS);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
if ([...fieldCompareDataByName.values()].some((field) => DEPS_FIELD.includes(field.fieldName))) {
|
|
278
|
+
changed.push(ChangeType.DEPENDENCY);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
return changed;
|
|
282
|
+
}
|
|
283
|
+
function deriveChangeTypeCssForNav(tab: TabItem, changed: ChangeType[] | null | undefined): string | null {
|
|
284
|
+
if (!changed || !tab.changeType) return null;
|
|
285
|
+
const hasChanged = changed.some((change) => tab.changeType === change);
|
|
286
|
+
return hasChanged ? styles.hasChanged : null;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
function CompareMenuTab({
|
|
290
|
+
children,
|
|
291
|
+
changed,
|
|
292
|
+
changeTypeCss,
|
|
293
|
+
loading,
|
|
294
|
+
className,
|
|
295
|
+
...rest
|
|
296
|
+
}: HTMLAttributes<HTMLDivElement> & {
|
|
297
|
+
changeTypeCss?: string | null;
|
|
298
|
+
loading?: boolean;
|
|
299
|
+
changed?: ChangeType[] | null;
|
|
300
|
+
}) {
|
|
301
|
+
const hasChanged = useMemo(
|
|
302
|
+
() => changed?.some((change) => change !== ChangeType.NONE && change !== ChangeType.NEW),
|
|
303
|
+
[changeTypeCss]
|
|
304
|
+
);
|
|
305
|
+
|
|
306
|
+
if (loading) return <TabLoader />;
|
|
307
|
+
|
|
308
|
+
return (
|
|
309
|
+
<div {...rest} className={classnames(styles.compareMenuTab, className)}>
|
|
310
|
+
{changeTypeCss && hasChanged && <div className={classnames(styles.indicator, changeTypeCss)}></div>}
|
|
311
|
+
<div className={classnames(styles.menuTab)}>{children}</div>
|
|
312
|
+
</div>
|
|
313
|
+
);
|
|
314
|
+
}
|
|
@@ -42,16 +42,18 @@ const react_1 = __importStar(require("react"));
|
|
|
42
42
|
const classnames_1 = __importDefault(require("classnames"));
|
|
43
43
|
const component_1 = require("@teambit/component");
|
|
44
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");
|
|
45
46
|
const component_ui_component_compare_hooks_use_component_compare_url_1 = require("@teambit/component.ui.component-compare.hooks.use-component-compare-url");
|
|
46
47
|
const component_ui_component_compare_version_picker_1 = require("@teambit/component.ui.component-compare.version-picker");
|
|
47
48
|
const component_ui_component_compare_blank_state_1 = require("@teambit/component.ui.component-compare.blank-state");
|
|
48
|
-
const design_ui_round_loader_1 = require("@teambit/design.ui.round-loader");
|
|
49
49
|
const base_react_navigation_link_1 = require("@teambit/base-react.navigation.link");
|
|
50
50
|
const ui_foundation_ui_react_router_slot_router_1 = require("@teambit/ui-foundation.ui.react-router.slot-router");
|
|
51
51
|
const component_ui_component_compare_utils_group_by_version_1 = require("@teambit/component.ui.component-compare.utils.group-by-version");
|
|
52
52
|
const component_ui_component_compare_utils_sort_tabs_1 = require("@teambit/component.ui.component-compare.utils.sort-tabs");
|
|
53
53
|
const component_ui_component_compare_utils_sort_logs_1 = require("@teambit/component.ui.component-compare.utils.sort-logs");
|
|
54
54
|
const component_ui_component_compare_utils_lazy_loading_1 = require("@teambit/component.ui.component-compare.utils.lazy-loading");
|
|
55
|
+
const base_ui_loaders_skeleton_1 = require("@teambit/base-ui.loaders.skeleton");
|
|
56
|
+
const component_ui_component_compare_models_component_compare_change_type_1 = require("@teambit/component.ui.component-compare.models.component-compare-change-type");
|
|
55
57
|
const component_compare_module_scss_1 = __importDefault(require("./component-compare.module.scss"));
|
|
56
58
|
const findPrevVersionFromCurrent = (compareVersion) => (_, index, logs) => {
|
|
57
59
|
if (compareVersion === 'workspace' || logs.length === 1)
|
|
@@ -66,7 +68,7 @@ function ComponentCompare(props) {
|
|
|
66
68
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
67
69
|
routes, state,
|
|
68
70
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
69
|
-
tabs, className, hooks, customUseComponent } = props, rest = __rest(props, ["host", "baseId", "compareId", "routes", "state", "tabs", "className", "hooks", "customUseComponent"]);
|
|
71
|
+
tabs, className, hooks, changes: changesFromProps, customUseComponent, Loader = CompareLoader } = props, rest = __rest(props, ["host", "baseId", "compareId", "routes", "state", "tabs", "className", "hooks", "changes", "customUseComponent", "Loader"]);
|
|
70
72
|
const baseVersion = (0, component_ui_component_compare_hooks_use_component_compare_url_1.useCompareQueryParam)('baseVersion');
|
|
71
73
|
const component = (0, react_1.useContext)(component_1.ComponentContext);
|
|
72
74
|
const location = (0, base_react_navigation_link_1.useLocation)();
|
|
@@ -91,9 +93,33 @@ function ComponentCompare(props) {
|
|
|
91
93
|
const loading = loadingBase || loadingCompare;
|
|
92
94
|
const compare = _compareId ? compareComponent : component;
|
|
93
95
|
const isEmpty = !loading && !compareIsLocalChanges && !compare && !base;
|
|
96
|
+
const compCompareId = `${base === null || base === void 0 ? void 0 : base.id.toString()}-${compare === null || compare === void 0 ? void 0 : compare.id.toString()}`;
|
|
94
97
|
const logsByVersion = (0, react_1.useMemo)(() => {
|
|
95
98
|
return ((compare === null || compare === void 0 ? void 0 : compare.logs) || []).slice().reduce(component_ui_component_compare_utils_group_by_version_1.groupByVersion, new Map());
|
|
96
99
|
}, [compare === null || compare === void 0 ? void 0 : compare.id.toString()]);
|
|
100
|
+
const { loading: compCompareLoading, componentCompareData } = (0, component_ui_component_compare_hooks_use_component_compare_1.useComponentCompareQuery)(base === null || base === void 0 ? void 0 : base.id.toString(), compare === null || compare === void 0 ? void 0 : compare.id.toString());
|
|
101
|
+
const fileCompareDataByName = (0, react_1.useMemo)(() => {
|
|
102
|
+
if (loading || compCompareLoading)
|
|
103
|
+
return undefined;
|
|
104
|
+
if (!compCompareLoading && !componentCompareData)
|
|
105
|
+
return null;
|
|
106
|
+
const _fileCompareDataByName = new Map();
|
|
107
|
+
((componentCompareData === null || componentCompareData === void 0 ? void 0 : componentCompareData.code) || []).forEach((codeCompareData) => {
|
|
108
|
+
_fileCompareDataByName.set(codeCompareData.fileName, codeCompareData);
|
|
109
|
+
});
|
|
110
|
+
return _fileCompareDataByName;
|
|
111
|
+
}, [compCompareLoading, loading, compCompareId]);
|
|
112
|
+
const fieldCompareDataByName = (0, react_1.useMemo)(() => {
|
|
113
|
+
if (loading || compCompareLoading)
|
|
114
|
+
return undefined;
|
|
115
|
+
if (!compCompareLoading && !componentCompareData)
|
|
116
|
+
return null;
|
|
117
|
+
const _fieldCompareDataByName = new Map();
|
|
118
|
+
((componentCompareData === null || componentCompareData === void 0 ? void 0 : componentCompareData.aspects) || []).forEach((aspectCompareData) => {
|
|
119
|
+
_fieldCompareDataByName.set(aspectCompareData.fieldName, aspectCompareData);
|
|
120
|
+
});
|
|
121
|
+
return _fieldCompareDataByName;
|
|
122
|
+
}, [compCompareLoading, loading, compCompareId]);
|
|
97
123
|
const componentCompareModel = {
|
|
98
124
|
compare: compare && {
|
|
99
125
|
model: compare,
|
|
@@ -106,36 +132,48 @@ function ComponentCompare(props) {
|
|
|
106
132
|
logsByVersion,
|
|
107
133
|
state,
|
|
108
134
|
hooks,
|
|
135
|
+
fieldCompareDataByName,
|
|
136
|
+
fileCompareDataByName,
|
|
109
137
|
};
|
|
138
|
+
const changes = changesFromProps || deriveChangeType(baseId, compare === null || compare === void 0 ? void 0 : compare.id, fileCompareDataByName, fieldCompareDataByName);
|
|
110
139
|
return (react_1.default.createElement(component_ui_component_compare_context_1.ComponentCompareContext.Provider, { value: componentCompareModel },
|
|
111
140
|
react_1.default.createElement("div", Object.assign({ className: (0, classnames_1.default)(component_compare_module_scss_1.default.componentCompareContainer, className) }, rest),
|
|
112
|
-
loading &&
|
|
113
|
-
react_1.default.createElement(design_ui_round_loader_1.RoundLoader, null))),
|
|
141
|
+
loading && react_1.default.createElement(Loader, { className: (0, classnames_1.default)(component_compare_module_scss_1.default.loader) }),
|
|
114
142
|
isEmpty && react_1.default.createElement(component_ui_component_compare_blank_state_1.ComponentCompareBlankState, null),
|
|
115
|
-
!isEmpty && react_1.default.createElement(RenderCompareScreen, Object.assign({}, props)))));
|
|
143
|
+
!loading && !isEmpty && react_1.default.createElement(RenderCompareScreen, Object.assign({ key: compCompareId }, props, { changes: changes })))));
|
|
116
144
|
}
|
|
117
145
|
exports.ComponentCompare = ComponentCompare;
|
|
118
146
|
function RenderCompareScreen(props) {
|
|
119
|
-
var _a, _b;
|
|
147
|
+
var _a, _b, _c;
|
|
120
148
|
const { routes, state } = props;
|
|
149
|
+
const showVersionPicker = ((_a = state === null || state === void 0 ? void 0 : state.versionPicker) === null || _a === void 0 ? void 0 : _a.element) !== null;
|
|
121
150
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
122
|
-
react_1.default.createElement("div", { className: component_compare_module_scss_1.default.top }, (
|
|
151
|
+
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, null))),
|
|
123
152
|
react_1.default.createElement("div", { className: component_compare_module_scss_1.default.bottom },
|
|
124
153
|
react_1.default.createElement(CompareMenuNav, Object.assign({}, props)),
|
|
125
|
-
((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) || [] })), (
|
|
126
|
-
|
|
154
|
+
((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 :
|
|
155
|
+
_c.element)));
|
|
127
156
|
}
|
|
128
|
-
function CompareMenuNav({ tabs, state, hooks }) {
|
|
157
|
+
function CompareMenuNav({ tabs, state, hooks, changes: changed }) {
|
|
129
158
|
var _a, _b;
|
|
130
|
-
const sortedTabs = ((0, component_ui_component_compare_utils_lazy_loading_1.extractLazyLoadedData)(tabs) || []).sort(component_ui_component_compare_utils_sort_tabs_1.sortTabs);
|
|
131
159
|
const activeTab = (_a = state === null || state === void 0 ? void 0 : state.tabs) === null || _a === void 0 ? void 0 : _a.id;
|
|
132
160
|
const isControlled = (_b = state === null || state === void 0 ? void 0 : state.tabs) === null || _b === void 0 ? void 0 : _b.controlled;
|
|
161
|
+
const _tabs = (0, component_ui_component_compare_utils_lazy_loading_1.extractLazyLoadedData)(tabs) || [];
|
|
162
|
+
const extractedTabs = (0, react_1.useMemo)(() => _tabs.sort(component_ui_component_compare_utils_sort_tabs_1.sortTabs).map((tab, index) => {
|
|
163
|
+
var _a, _b;
|
|
164
|
+
const isActive = !state ? undefined : !!activeTab && !!(tab === null || tab === void 0 ? void 0 : tab.id) && activeTab === tab.id;
|
|
165
|
+
const changeTypeCss = deriveChangeTypeCssForNav(tab, changed);
|
|
166
|
+
const loading = changed === undefined;
|
|
167
|
+
const key = `${tab.id}-tab-${changeTypeCss}`;
|
|
168
|
+
return [
|
|
169
|
+
tab.id || `tab-${index}`,
|
|
170
|
+
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)) }) }),
|
|
171
|
+
];
|
|
172
|
+
}), [_tabs.length, activeTab, changed === null || changed === void 0 ? void 0 : changed.length]);
|
|
173
|
+
const sortedTabs = (0, react_1.useMemo)(() => extractedTabs.filter(([, tab]) => !tab.widget), [extractedTabs.length, activeTab, changed === null || changed === void 0 ? void 0 : changed.length]);
|
|
174
|
+
const sortedWidgets = (0, react_1.useMemo)(() => extractedTabs.filter(([, tab]) => tab.widget), [extractedTabs.length, activeTab, changed === null || changed === void 0 ? void 0 : changed.length]);
|
|
133
175
|
return (react_1.default.createElement("div", { className: component_compare_module_scss_1.default.navContainer },
|
|
134
|
-
react_1.default.createElement(
|
|
135
|
-
var _a;
|
|
136
|
-
const isActive = !state ? undefined : !!activeTab && !!tabItem.id && activeTab === tabItem.id;
|
|
137
|
-
return (react_1.default.createElement(component_1.TopBarNav, Object.assign({}, (tabItem.props || {}), { key: `compare-menu-nav-${index}-${tabItem.id}`, active: isActive, onClick: onNavClicked({ id: tabItem.id, hooks }), href: (!isControlled && ((_a = tabItem.props) === null || _a === void 0 ? void 0 : _a.href)) || undefined })));
|
|
138
|
-
}))));
|
|
176
|
+
react_1.default.createElement(component_1.CollapsibleMenuNav, { navPlugins: sortedTabs, widgetPlugins: sortedWidgets })));
|
|
139
177
|
}
|
|
140
178
|
function onNavClicked({ hooks, id }) {
|
|
141
179
|
var _a;
|
|
@@ -143,4 +181,58 @@ function onNavClicked({ hooks, id }) {
|
|
|
143
181
|
return undefined;
|
|
144
182
|
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); };
|
|
145
183
|
}
|
|
184
|
+
function CompareLoader(_a) {
|
|
185
|
+
var { className } = _a, rest = __rest(_a, ["className"]);
|
|
186
|
+
return (react_1.default.createElement("div", Object.assign({ className: className }, rest),
|
|
187
|
+
react_1.default.createElement(base_ui_loaders_skeleton_1.BlockSkeleton, { className: component_compare_module_scss_1.default.navLoader, lines: 3 }),
|
|
188
|
+
react_1.default.createElement("div", { className: component_compare_module_scss_1.default.compareLoader },
|
|
189
|
+
react_1.default.createElement("div", { className: component_compare_module_scss_1.default.compareViewLoader },
|
|
190
|
+
react_1.default.createElement(base_ui_loaders_skeleton_1.BlockSkeleton, { lines: 30 })),
|
|
191
|
+
react_1.default.createElement("div", { className: component_compare_module_scss_1.default.compareSidebarLoader },
|
|
192
|
+
react_1.default.createElement(base_ui_loaders_skeleton_1.BlockSkeleton, { lines: 30 })))));
|
|
193
|
+
}
|
|
194
|
+
function TabLoader() {
|
|
195
|
+
return react_1.default.createElement(base_ui_loaders_skeleton_1.WordSkeleton, { className: component_compare_module_scss_1.default.tabLoader, length: 5 });
|
|
196
|
+
}
|
|
197
|
+
function deriveChangeType(baseId, compareId, fileCompareDataByName, fieldCompareDataByName) {
|
|
198
|
+
if (!baseId && !compareId)
|
|
199
|
+
return null;
|
|
200
|
+
if (!(baseId === null || baseId === void 0 ? void 0 : baseId.version))
|
|
201
|
+
return [component_ui_component_compare_models_component_compare_change_type_1.ChangeType.NEW];
|
|
202
|
+
if (fileCompareDataByName === null || fieldCompareDataByName === null)
|
|
203
|
+
return null;
|
|
204
|
+
if (fileCompareDataByName === undefined || fieldCompareDataByName === undefined)
|
|
205
|
+
return undefined;
|
|
206
|
+
if (fieldCompareDataByName.size === 0 &&
|
|
207
|
+
(fileCompareDataByName.size === 0 || [...fileCompareDataByName.values()].every((f) => f.status === 'UNCHANGED'))) {
|
|
208
|
+
return [component_ui_component_compare_models_component_compare_change_type_1.ChangeType.NONE];
|
|
209
|
+
}
|
|
210
|
+
const changed = [];
|
|
211
|
+
const DEPS_FIELD = ['dependencies', 'devDependencies', 'extensionDependencies'];
|
|
212
|
+
if (fileCompareDataByName.size > 0 && [...fileCompareDataByName.values()].some((f) => f.status !== 'UNCHANGED')) {
|
|
213
|
+
changed.push(component_ui_component_compare_models_component_compare_change_type_1.ChangeType.SOURCE_CODE);
|
|
214
|
+
}
|
|
215
|
+
if (fieldCompareDataByName.size > 0) {
|
|
216
|
+
changed.push(component_ui_component_compare_models_component_compare_change_type_1.ChangeType.ASPECTS);
|
|
217
|
+
}
|
|
218
|
+
if ([...fieldCompareDataByName.values()].some((field) => DEPS_FIELD.includes(field.fieldName))) {
|
|
219
|
+
changed.push(component_ui_component_compare_models_component_compare_change_type_1.ChangeType.DEPENDENCY);
|
|
220
|
+
}
|
|
221
|
+
return changed;
|
|
222
|
+
}
|
|
223
|
+
function deriveChangeTypeCssForNav(tab, changed) {
|
|
224
|
+
if (!changed || !tab.changeType)
|
|
225
|
+
return null;
|
|
226
|
+
const hasChanged = changed.some((change) => tab.changeType === change);
|
|
227
|
+
return hasChanged ? component_compare_module_scss_1.default.hasChanged : null;
|
|
228
|
+
}
|
|
229
|
+
function CompareMenuTab(_a) {
|
|
230
|
+
var { children, changed, changeTypeCss, loading, className } = _a, rest = __rest(_a, ["children", "changed", "changeTypeCss", "loading", "className"]);
|
|
231
|
+
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]);
|
|
232
|
+
if (loading)
|
|
233
|
+
return react_1.default.createElement(TabLoader, null);
|
|
234
|
+
return (react_1.default.createElement("div", Object.assign({}, rest, { className: (0, classnames_1.default)(component_compare_module_scss_1.default.compareMenuTab, className) }),
|
|
235
|
+
changeTypeCss && hasChanged && react_1.default.createElement("div", { className: (0, classnames_1.default)(component_compare_module_scss_1.default.indicator, changeTypeCss) }),
|
|
236
|
+
react_1.default.createElement("div", { className: (0, classnames_1.default)(component_compare_module_scss_1.default.menuTab) }, children)));
|
|
237
|
+
}
|
|
146
238
|
//# 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":"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"}
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
|
|
30
30
|
.navigation {
|
|
31
31
|
display: flex;
|
|
32
|
-
list-style: none;
|
|
33
32
|
min-height: 48px;
|
|
33
|
+
align-items: center;
|
|
34
34
|
|
|
35
35
|
@media screen and (max-width: 768px) {
|
|
36
36
|
padding-left: 6px;
|
|
@@ -44,8 +44,84 @@
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
.loader {
|
|
47
|
+
padding: 16px 24px;
|
|
48
|
+
color: var(--bit-bg-dent, #f6f6f6);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.tabLoader {
|
|
52
|
+
color: var(--bit-bg-dent, #f6f6f6);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.compareLoader {
|
|
47
56
|
display: flex;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
57
|
+
padding-top: 16px;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.compareSidebarLoader {
|
|
61
|
+
width: 30%;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.compareViewLoader {
|
|
65
|
+
width: 70%;
|
|
66
|
+
padding-right: 16px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.activeNav {
|
|
70
|
+
> div {
|
|
71
|
+
color: var(--bit-accent-color, #6c5ce7);
|
|
72
|
+
border-radius: 5px;
|
|
73
|
+
background-color: var(--bit-accent-bg, #edebfc);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
&:after {
|
|
77
|
+
// unset default selection styles
|
|
78
|
+
height: 0 !important;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.loadingNav {
|
|
83
|
+
// > div {
|
|
84
|
+
// color: var(--bit-accent-color, #6c5ce7);
|
|
85
|
+
// border-radius: 5px;
|
|
86
|
+
// background-color: var(--bit-accent-bg, #edebfc);
|
|
87
|
+
// }
|
|
88
|
+
|
|
89
|
+
&:after {
|
|
90
|
+
// unset default selection styles
|
|
91
|
+
height: 0 !important;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.navItem {
|
|
96
|
+
position: relative;
|
|
97
|
+
color: var(--bit-text-color-light, #707279);
|
|
98
|
+
|
|
99
|
+
&.none {
|
|
100
|
+
> div {
|
|
101
|
+
opacity: 65%;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.compareMenuTab {
|
|
107
|
+
position: relative;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.indicator {
|
|
111
|
+
position: absolute;
|
|
112
|
+
top: -8px;
|
|
113
|
+
right: -8px;
|
|
114
|
+
border-radius: 100%;
|
|
115
|
+
padding: 4px;
|
|
116
|
+
box-sizing: border-box;
|
|
117
|
+
|
|
118
|
+
&.hasChanged {
|
|
119
|
+
background-color: #ff8b00;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
&.new {
|
|
123
|
+
// @todo - review styles
|
|
124
|
+
display: none;
|
|
125
|
+
background-color: var(--bit-accent-success-color, #37b26c);
|
|
126
|
+
}
|
|
51
127
|
}
|
|
File without changes
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,28 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/component.ui.component-compare.component-compare",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.22",
|
|
4
4
|
"homepage": "https://bit.dev/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.22"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"classnames": "2.2.6",
|
|
13
13
|
"core-js": "^3.0.0",
|
|
14
14
|
"@teambit/base-react.navigation.link": "2.0.27",
|
|
15
|
+
"@teambit/base-ui.loaders.skeleton": "1.0.1",
|
|
15
16
|
"@teambit/component.ui.component-compare.blank-state": "0.0.1",
|
|
16
|
-
"@teambit/component.ui.component-compare.context": "0.0.
|
|
17
|
+
"@teambit/component.ui.component-compare.context": "0.0.6",
|
|
17
18
|
"@teambit/component.ui.component-compare.hooks.use-component-compare-url": "0.0.2",
|
|
18
|
-
"@teambit/component.ui.component-compare.
|
|
19
|
-
"@teambit/component.ui.component-compare.models.component-compare-
|
|
19
|
+
"@teambit/component.ui.component-compare.hooks.use-component-compare": "0.0.4",
|
|
20
|
+
"@teambit/component.ui.component-compare.models.component-compare-change-type": "0.0.1",
|
|
21
|
+
"@teambit/component.ui.component-compare.models.component-compare-hooks": "0.0.3",
|
|
22
|
+
"@teambit/component.ui.component-compare.models.component-compare-model": "0.0.3",
|
|
23
|
+
"@teambit/component.ui.component-compare.models.component-compare-props": "0.0.3",
|
|
20
24
|
"@teambit/component.ui.component-compare.utils.group-by-version": "0.0.2",
|
|
21
25
|
"@teambit/component.ui.component-compare.utils.lazy-loading": "0.0.1",
|
|
22
26
|
"@teambit/component.ui.component-compare.utils.sort-logs": "0.0.2",
|
|
23
|
-
"@teambit/component.ui.component-compare.utils.sort-tabs": "0.0.
|
|
24
|
-
"@teambit/component.ui.component-compare.version-picker": "0.0.
|
|
25
|
-
"@teambit/design.ui.round-loader": "0.0.355",
|
|
27
|
+
"@teambit/component.ui.component-compare.utils.sort-tabs": "0.0.3",
|
|
28
|
+
"@teambit/component.ui.component-compare.version-picker": "0.0.22",
|
|
26
29
|
"@teambit/legacy-component-log": "0.0.399",
|
|
27
30
|
"@teambit/ui-foundation.ui.react-router.slot-router": "0.0.501"
|
|
28
31
|
},
|