@teambit/component.ui.component-compare.changelog 0.0.4

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.
@@ -0,0 +1,7 @@
1
+ .changeLogPage {
2
+ display: flex;
3
+ padding: 16px;
4
+ flex-direction: column;
5
+ overflow-y: auto;
6
+ box-sizing: border-box;
7
+ }
@@ -0,0 +1,81 @@
1
+ import React, { HTMLAttributes, useMemo, useContext } from 'react';
2
+ import { LegacyComponentLog } from '@teambit/legacy-component-log';
3
+ import { VersionBlock } from '@teambit/component.ui.version-block';
4
+ import { ComponentContext } from '@teambit/component';
5
+ import classNames from 'classnames';
6
+ import { useComponentCompare } from '@teambit/component.ui.component-compare.context';
7
+ import { sortByDateDsc } from '@teambit/component.ui.component-compare.utils.sort-logs';
8
+
9
+ import styles from './component-compare-changelog.module.scss';
10
+
11
+ export type ComponentCompareChangelog = {} & HTMLAttributes<HTMLDivElement>;
12
+
13
+ const orderByDateDsc: (
14
+ logA?: LegacyComponentLog,
15
+ logB?: LegacyComponentLog
16
+ ) => [LegacyComponentLog | undefined, LegacyComponentLog | undefined] = (logA, logB) => {
17
+ const { date: dateStrB } = logB || {};
18
+ const { date: dateStrA } = logA || {};
19
+
20
+ const dateA = dateStrA ? new Date(parseInt(dateStrA)) : new Date();
21
+ const dateB = dateStrB ? new Date(parseInt(dateStrB)) : new Date();
22
+
23
+ if (dateA <= dateB) return [logB, logA];
24
+ return [logA, logB];
25
+ };
26
+
27
+ const getLogsBetweenVersions: (
28
+ allLogs: LegacyComponentLog[],
29
+ baseVersion?: LegacyComponentLog,
30
+ compareVersion?: LegacyComponentLog
31
+ ) => LegacyComponentLog[] = (allLogs, baseVersion, compareVersion) => {
32
+ const [startingVersion, endingVersion] = orderByDateDsc(baseVersion, compareVersion);
33
+ const { startingVersionIndex, endingVersionIndex } = allLogs.reduce((accum, next, index) => {
34
+ if (next.hash === startingVersion?.hash) {
35
+ accum = { ...accum, startingVersionIndex: index };
36
+ }
37
+ if (next.hash === endingVersion?.hash) {
38
+ accum = { ...accum, endingVersionIndex: index };
39
+ }
40
+ return accum;
41
+ }, {} as { startingVersionIndex: number; endingVersionIndex: number });
42
+
43
+ return allLogs.filter((_, index) => index >= startingVersionIndex && index <= endingVersionIndex);
44
+ };
45
+
46
+ export function ComponentCompareChangelog({ className }: ComponentCompareChangelog) {
47
+ const component = useContext(ComponentContext);
48
+ const componentCompareContext = useComponentCompare();
49
+ const { base, compare, logsByVersion } = componentCompareContext || {};
50
+
51
+ const allLogs = useMemo(
52
+ () => (compare?.model.logs || []).slice().sort(sortByDateDsc),
53
+ [compare?.model.id.toString()]
54
+ );
55
+
56
+ const baseVersionInfo = base?.model.version ? logsByVersion?.get(base?.model.version) : undefined;
57
+ const compareVersionInfo = compare?.model.version ? logsByVersion?.get(compare?.model.version) : undefined;
58
+
59
+ const logs = useMemo(
60
+ () => getLogsBetweenVersions(allLogs, baseVersionInfo, compareVersionInfo),
61
+ [baseVersionInfo?.hash, compareVersionInfo?.hash]
62
+ );
63
+
64
+ return (
65
+ <div className={classNames(styles.changeLogPage, className)}>
66
+ {logs.map((snap, index) => {
67
+ const isLatest = component.latest === snap.tag || component.latest === snap.hash;
68
+ const isCurrent = component.version === snap.tag || component.version === snap.hash;
69
+ return (
70
+ <VersionBlock
71
+ isCurrent={isCurrent}
72
+ isLatest={isLatest}
73
+ key={`comp-compare-changelog-${index}`}
74
+ componentId={component.id.fullName}
75
+ snap={snap}
76
+ />
77
+ );
78
+ })}
79
+ </div>
80
+ );
81
+ }
@@ -0,0 +1,3 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export declare type ComponentCompareChangelog = {} & HTMLAttributes<HTMLDivElement>;
3
+ export declare function ComponentCompareChangelog({ className }: ComponentCompareChangelog): JSX.Element;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
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 __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.ComponentCompareChangelog = void 0;
30
+ const react_1 = __importStar(require("react"));
31
+ const component_ui_version_block_1 = require("@teambit/component.ui.version-block");
32
+ const component_1 = require("@teambit/component");
33
+ const classnames_1 = __importDefault(require("classnames"));
34
+ const component_ui_component_compare_context_1 = require("@teambit/component.ui.component-compare.context");
35
+ const component_ui_component_compare_utils_sort_logs_1 = require("@teambit/component.ui.component-compare.utils.sort-logs");
36
+ const component_compare_changelog_module_scss_1 = __importDefault(require("./component-compare-changelog.module.scss"));
37
+ const orderByDateDsc = (logA, logB) => {
38
+ const { date: dateStrB } = logB || {};
39
+ const { date: dateStrA } = logA || {};
40
+ const dateA = dateStrA ? new Date(parseInt(dateStrA)) : new Date();
41
+ const dateB = dateStrB ? new Date(parseInt(dateStrB)) : new Date();
42
+ if (dateA <= dateB)
43
+ return [logB, logA];
44
+ return [logA, logB];
45
+ };
46
+ const getLogsBetweenVersions = (allLogs, baseVersion, compareVersion) => {
47
+ const [startingVersion, endingVersion] = orderByDateDsc(baseVersion, compareVersion);
48
+ const { startingVersionIndex, endingVersionIndex } = allLogs.reduce((accum, next, index) => {
49
+ if (next.hash === (startingVersion === null || startingVersion === void 0 ? void 0 : startingVersion.hash)) {
50
+ accum = Object.assign(Object.assign({}, accum), { startingVersionIndex: index });
51
+ }
52
+ if (next.hash === (endingVersion === null || endingVersion === void 0 ? void 0 : endingVersion.hash)) {
53
+ accum = Object.assign(Object.assign({}, accum), { endingVersionIndex: index });
54
+ }
55
+ return accum;
56
+ }, {});
57
+ return allLogs.filter((_, index) => index >= startingVersionIndex && index <= endingVersionIndex);
58
+ };
59
+ function ComponentCompareChangelog({ className }) {
60
+ const component = (0, react_1.useContext)(component_1.ComponentContext);
61
+ const componentCompareContext = (0, component_ui_component_compare_context_1.useComponentCompare)();
62
+ const { base, compare, logsByVersion } = componentCompareContext || {};
63
+ const allLogs = (0, react_1.useMemo)(() => ((compare === null || compare === void 0 ? void 0 : compare.model.logs) || []).slice().sort(component_ui_component_compare_utils_sort_logs_1.sortByDateDsc), [compare === null || compare === void 0 ? void 0 : compare.model.id.toString()]);
64
+ const baseVersionInfo = (base === null || base === void 0 ? void 0 : base.model.version) ? logsByVersion === null || logsByVersion === void 0 ? void 0 : logsByVersion.get(base === null || base === void 0 ? void 0 : base.model.version) : undefined;
65
+ const compareVersionInfo = (compare === null || compare === void 0 ? void 0 : compare.model.version) ? logsByVersion === null || logsByVersion === void 0 ? void 0 : logsByVersion.get(compare === null || compare === void 0 ? void 0 : compare.model.version) : undefined;
66
+ const logs = (0, react_1.useMemo)(() => getLogsBetweenVersions(allLogs, baseVersionInfo, compareVersionInfo), [baseVersionInfo === null || baseVersionInfo === void 0 ? void 0 : baseVersionInfo.hash, compareVersionInfo === null || compareVersionInfo === void 0 ? void 0 : compareVersionInfo.hash]);
67
+ return (react_1.default.createElement("div", { className: (0, classnames_1.default)(component_compare_changelog_module_scss_1.default.changeLogPage, className) }, logs.map((snap, index) => {
68
+ const isLatest = component.latest === snap.tag || component.latest === snap.hash;
69
+ const isCurrent = component.version === snap.tag || component.version === snap.hash;
70
+ return (react_1.default.createElement(component_ui_version_block_1.VersionBlock, { isCurrent: isCurrent, isLatest: isLatest, key: `comp-compare-changelog-${index}`, componentId: component.id.fullName, snap: snap }));
71
+ })));
72
+ }
73
+ exports.ComponentCompareChangelog = ComponentCompareChangelog;
74
+ //# sourceMappingURL=component-compare-changelog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-compare-changelog.js","sourceRoot":"","sources":["../component-compare-changelog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ .changeLogPage {
2
+ display: flex;
3
+ padding: 16px;
4
+ flex-direction: column;
5
+ overflow-y: auto;
6
+ box-sizing: border-box;
7
+ }
@@ -0,0 +1 @@
1
+ export { ComponentCompareChangelog } from './component-compare-changelog';
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ComponentCompareChangelog = void 0;
4
+ var component_compare_changelog_1 = require("./component-compare-changelog");
5
+ Object.defineProperty(exports, "ComponentCompareChangelog", { enumerable: true, get: function () { return component_compare_changelog_1.ComponentCompareChangelog; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,6EAA0E;AAAjE,wIAAA,yBAAyB,OAAA"}
@@ -0,0 +1,7 @@
1
+ ;
2
+ ;
3
+
4
+ export const compositions = [];
5
+ export const overview = [];
6
+
7
+ export const compositions_metadata = {"compositions":[]};
@@ -0,0 +1,32 @@
1
+ {
2
+ "compilerOptions": {
3
+ "lib": [
4
+ "es2019",
5
+ "DOM",
6
+ "ES6",
7
+ "DOM.Iterable"
8
+ ],
9
+ "target": "es2015",
10
+ "module": "CommonJS",
11
+ "jsx": "react",
12
+ "allowJs": true,
13
+ "composite": true,
14
+ "declaration": true,
15
+ "sourceMap": true,
16
+ "skipLibCheck": true,
17
+ "experimentalDecorators": true,
18
+ "outDir": "dist",
19
+ "moduleResolution": "node",
20
+ "esModuleInterop": true,
21
+ "rootDir": ".",
22
+ "resolveJsonModule": true
23
+ },
24
+ "exclude": [
25
+ "dist",
26
+ "package.json"
27
+ ],
28
+ "include": [
29
+ "**/*",
30
+ "**/*.json"
31
+ ]
32
+ }
package/index.ts ADDED
@@ -0,0 +1 @@
1
+ export { ComponentCompareChangelog } from './component-compare-changelog';
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@teambit/component.ui.component-compare.changelog",
3
+ "version": "0.0.4",
4
+ "homepage": "https://bit.dev/teambit/component/ui/component-compare/changelog",
5
+ "main": "dist/index.js",
6
+ "componentId": {
7
+ "scope": "teambit.component",
8
+ "name": "ui/component-compare/changelog",
9
+ "version": "0.0.4"
10
+ },
11
+ "dependencies": {
12
+ "classnames": "2.2.6",
13
+ "core-js": "^3.0.0",
14
+ "@teambit/component.ui.component-compare.context": "0.0.4",
15
+ "@teambit/component.ui.component-compare.utils.sort-logs": "0.0.1",
16
+ "@teambit/component.ui.version-block": "0.0.703",
17
+ "@teambit/legacy-component-log": "0.0.399"
18
+ },
19
+ "devDependencies": {
20
+ "@types/classnames": "2.2.11",
21
+ "@types/react": "^17.0.8",
22
+ "@types/mocha": "9.1.0",
23
+ "@types/testing-library__jest-dom": "5.9.5",
24
+ "@babel/runtime": "7.20.0",
25
+ "@types/jest": "^26.0.0",
26
+ "@types/react-dom": "^17.0.5",
27
+ "@types/node": "12.20.4"
28
+ },
29
+ "peerDependencies": {
30
+ "react-dom": "^16.8.0 || ^17.0.0",
31
+ "react": "^16.8.0 || ^17.0.0"
32
+ },
33
+ "license": "Apache-2.0",
34
+ "private": false,
35
+ "engines": {
36
+ "node": ">=12.22.0"
37
+ },
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "https://github.com/teambit/bit"
41
+ },
42
+ "keywords": [
43
+ "bit",
44
+ "components",
45
+ "collaboration",
46
+ "web",
47
+ "react",
48
+ "react-components",
49
+ "angular",
50
+ "angular-components"
51
+ ]
52
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "compilerOptions": {
3
+ "lib": [
4
+ "es2019",
5
+ "DOM",
6
+ "ES6",
7
+ "DOM.Iterable"
8
+ ],
9
+ "target": "es2015",
10
+ "module": "CommonJS",
11
+ "jsx": "react",
12
+ "allowJs": true,
13
+ "composite": true,
14
+ "declaration": true,
15
+ "sourceMap": true,
16
+ "skipLibCheck": true,
17
+ "experimentalDecorators": true,
18
+ "outDir": "dist",
19
+ "moduleResolution": "node",
20
+ "esModuleInterop": true,
21
+ "rootDir": ".",
22
+ "resolveJsonModule": true
23
+ },
24
+ "exclude": [
25
+ "dist",
26
+ "package.json"
27
+ ],
28
+ "include": [
29
+ "**/*",
30
+ "**/*.json"
31
+ ]
32
+ }
@@ -0,0 +1,29 @@
1
+ declare module '*.png' {
2
+ const value: any;
3
+ export = value;
4
+ }
5
+ declare module '*.svg' {
6
+ import type { FunctionComponent, SVGProps } from 'react';
7
+
8
+ export const ReactComponent: FunctionComponent<SVGProps<SVGSVGElement> & { title?: string }>;
9
+ const src: string;
10
+ export default src;
11
+ }
12
+
13
+ // @TODO Gilad
14
+ declare module '*.jpg' {
15
+ const value: any;
16
+ export = value;
17
+ }
18
+ declare module '*.jpeg' {
19
+ const value: any;
20
+ export = value;
21
+ }
22
+ declare module '*.gif' {
23
+ const value: any;
24
+ export = value;
25
+ }
26
+ declare module '*.bmp' {
27
+ const value: any;
28
+ export = value;
29
+ }
@@ -0,0 +1,42 @@
1
+ declare module '*.module.css' {
2
+ const classes: { readonly [key: string]: string };
3
+ export default classes;
4
+ }
5
+ declare module '*.module.scss' {
6
+ const classes: { readonly [key: string]: string };
7
+ export default classes;
8
+ }
9
+ declare module '*.module.sass' {
10
+ const classes: { readonly [key: string]: string };
11
+ export default classes;
12
+ }
13
+
14
+ declare module '*.module.less' {
15
+ const classes: { readonly [key: string]: string };
16
+ export default classes;
17
+ }
18
+
19
+ declare module '*.less' {
20
+ const classes: { readonly [key: string]: string };
21
+ export default classes;
22
+ }
23
+
24
+ declare module '*.css' {
25
+ const classes: { readonly [key: string]: string };
26
+ export default classes;
27
+ }
28
+
29
+ declare module '*.sass' {
30
+ const classes: { readonly [key: string]: string };
31
+ export default classes;
32
+ }
33
+
34
+ declare module '*.scss' {
35
+ const classes: { readonly [key: string]: string };
36
+ export default classes;
37
+ }
38
+
39
+ declare module '*.mdx' {
40
+ const component: any;
41
+ export default component;
42
+ }