@paro.io/expert-shared-components 1.6.1 → 1.6.3
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/lib/components/ClientReferencesSection/DeleteButton.js +11 -11
- package/lib/components/ClientReferencesSection/ParoError.js +10 -10
- package/lib/components/ClientReferencesSection/TagsSection.js +2 -2
- package/lib/components/ClientReferencesSection/styles/BrandedTypography.js +2 -2
- package/lib/components/ClientReferencesSection/styles/Buttons.js +15 -15
- package/lib/components/ClientReferencesSection/styles/Name.js +5 -5
- package/lib/components/ClientReferencesSection/styles/NullContentConditionalColor.js +4 -4
- package/lib/components/ClientReferencesSection/styles/SectionBody.js +11 -11
- package/lib/components/ClientReferencesSection/styles/SectionTitle.js +6 -6
- package/lib/components/ClientReferencesSection/styles/Tags.js +2 -2
- package/lib/components/DocumentCenter/ClientDocumentsTable.d.ts +2 -1
- package/lib/components/DocumentCenter/ClientDocumentsTable.js +5 -5
- package/lib/components/DocumentCenter/DocumentCenter.d.ts +2 -1
- package/lib/components/DocumentCenter/DocumentCenter.js +3 -3
- package/lib/components/DocumentCenter/DocumentTable.d.ts +15 -15
- package/lib/components/DocumentCenter/DocumentTable.js +350 -350
- package/lib/components/DocumentCenter/DocumentUploadRow.d.ts +2 -1
- package/lib/components/DocumentCenter/DocumentUploadRow.js +27 -6
- package/lib/components/DocumentCenter/ParoDocumentsTable.js +2 -2
- package/lib/components/DocumentCenter/UploadFilesButton.d.ts +6 -6
- package/lib/components/DocumentCenter/UploadFilesButton.js +29 -29
- package/lib/components/ExpertProfileHeader/ActionButtonSection.js +6 -6
- package/lib/components/ExpertProfileHeader/ProfileSection.js +7 -7
- package/lib/components/OrganizationChart/OrganizationChart.js +7 -7
- package/lib/components/Reviews/Pagination.js +6 -6
- package/lib/components/ReviewsTab/RatingHeader.js +6 -6
- package/lib/components/ReviewsTab/expert-shared-components.code-workspace +20 -20
- package/lib/components/ReviewsTab/reviewRequestModal.js +5 -5
- package/lib/components/shared/Error.d.ts +6 -6
- package/lib/components/shared/Error.js +40 -40
- package/lib/components/shared/Image.js +13 -13
- package/lib/components/shared/ProfileTextField.d.ts +18 -18
- package/lib/components/shared/ProfileTextField.js +16 -16
- package/lib/components/shared/StyledActionButtons.d.ts +7 -7
- package/lib/components/shared/StyledActionButtons.js +15 -15
- package/lib/components/shared/ToastNotification.d.ts +10 -10
- package/lib/components/shared/ToastNotification.js +63 -63
- package/lib/components/shared/UploadClient.d.ts +14 -0
- package/lib/components/shared/UploadClient.js +115 -0
- package/lib/components/shared/utils.d.ts +1 -1
- package/lib/components/shared/utils.js +5 -2
- package/package.json +59 -59
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
interface ToastModalProps {
|
|
3
|
-
color: 'success' | 'info' | 'warning' | 'danger';
|
|
4
|
-
icon: string;
|
|
5
|
-
message: string;
|
|
6
|
-
duration?: number;
|
|
7
|
-
position?: 'top-right' | 'bottom-right' | 'top-left' | 'bottom-left';
|
|
8
|
-
}
|
|
9
|
-
declare const ToastModal: React.FC<ToastModalProps>;
|
|
10
|
-
export default ToastModal;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface ToastModalProps {
|
|
3
|
+
color: 'success' | 'info' | 'warning' | 'danger';
|
|
4
|
+
icon: string;
|
|
5
|
+
message: string;
|
|
6
|
+
duration?: number;
|
|
7
|
+
position?: 'top-right' | 'bottom-right' | 'top-left' | 'bottom-left';
|
|
8
|
+
}
|
|
9
|
+
declare const ToastModal: React.FC<ToastModalProps>;
|
|
10
|
+
export default ToastModal;
|
|
@@ -1,63 +1,63 @@
|
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const react_1 = __importStar(require("react"));
|
|
27
|
-
const core_1 = require("@material-ui/core");
|
|
28
|
-
const base_ui_1 = require("@paro.io/base-ui");
|
|
29
|
-
const ToastModal = ({ color, icon, message, duration = 6000, // Default duration is 6 seconds
|
|
30
|
-
position = 'bottom-right', }) => {
|
|
31
|
-
const [open, setOpen] = (0, react_1.useState)(false);
|
|
32
|
-
// Automatically open the modal on mount
|
|
33
|
-
(0, react_1.useEffect)(() => {
|
|
34
|
-
setOpen(true);
|
|
35
|
-
// Automatically close the modal after the specified duration
|
|
36
|
-
const timer = setTimeout(() => {
|
|
37
|
-
setOpen(false);
|
|
38
|
-
}, duration);
|
|
39
|
-
// Cleanup the timeout if the component unmounts or if the duration changes
|
|
40
|
-
return () => clearTimeout(timer);
|
|
41
|
-
}, [duration]);
|
|
42
|
-
console.log("triggered");
|
|
43
|
-
return (react_1.default.createElement(core_1.Dialog, { open: open, onClose: () => setOpen(false), "aria-labelledby": "toast-modal-title", maxWidth: "xs", fullWidth: true, PaperProps: {
|
|
44
|
-
style: {
|
|
45
|
-
backgroundColor: '#323232', // Dark background to resemble toast style
|
|
46
|
-
color: '#fff', // White text
|
|
47
|
-
borderRadius: '8px',
|
|
48
|
-
display: 'flex',
|
|
49
|
-
justifyContent: 'center',
|
|
50
|
-
alignItems: 'center',
|
|
51
|
-
zIndex: 9999, // Ensure it’s on top of the MUI Dialog
|
|
52
|
-
position: 'absolute', // Absolute positioning to control location
|
|
53
|
-
top: position.includes('top') ? '10%' : 'auto',
|
|
54
|
-
bottom: position.includes('bottom') ? '10%' : 'auto',
|
|
55
|
-
right: position.includes('right') ? '10%' : 'auto',
|
|
56
|
-
left: position.includes('left') ? '10%' : 'auto',
|
|
57
|
-
},
|
|
58
|
-
} },
|
|
59
|
-
react_1.default.createElement(core_1.DialogContent, { style: { textAlign: 'center' } },
|
|
60
|
-
react_1.default.createElement(base_ui_1.Alert, { color: color, icon: icon, label: message, className: color === 'warning' ? 'bg-warning' : 'bg-success' }),
|
|
61
|
-
",")));
|
|
62
|
-
};
|
|
63
|
-
exports.default = ToastModal;
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const react_1 = __importStar(require("react"));
|
|
27
|
+
const core_1 = require("@material-ui/core");
|
|
28
|
+
const base_ui_1 = require("@paro.io/base-ui");
|
|
29
|
+
const ToastModal = ({ color, icon, message, duration = 6000, // Default duration is 6 seconds
|
|
30
|
+
position = 'bottom-right', }) => {
|
|
31
|
+
const [open, setOpen] = (0, react_1.useState)(false);
|
|
32
|
+
// Automatically open the modal on mount
|
|
33
|
+
(0, react_1.useEffect)(() => {
|
|
34
|
+
setOpen(true);
|
|
35
|
+
// Automatically close the modal after the specified duration
|
|
36
|
+
const timer = setTimeout(() => {
|
|
37
|
+
setOpen(false);
|
|
38
|
+
}, duration);
|
|
39
|
+
// Cleanup the timeout if the component unmounts or if the duration changes
|
|
40
|
+
return () => clearTimeout(timer);
|
|
41
|
+
}, [duration]);
|
|
42
|
+
console.log("triggered");
|
|
43
|
+
return (react_1.default.createElement(core_1.Dialog, { open: open, onClose: () => setOpen(false), "aria-labelledby": "toast-modal-title", maxWidth: "xs", fullWidth: true, PaperProps: {
|
|
44
|
+
style: {
|
|
45
|
+
backgroundColor: '#323232', // Dark background to resemble toast style
|
|
46
|
+
color: '#fff', // White text
|
|
47
|
+
borderRadius: '8px',
|
|
48
|
+
display: 'flex',
|
|
49
|
+
justifyContent: 'center',
|
|
50
|
+
alignItems: 'center',
|
|
51
|
+
zIndex: 9999, // Ensure it’s on top of the MUI Dialog
|
|
52
|
+
position: 'absolute', // Absolute positioning to control location
|
|
53
|
+
top: position.includes('top') ? '10%' : 'auto',
|
|
54
|
+
bottom: position.includes('bottom') ? '10%' : 'auto',
|
|
55
|
+
right: position.includes('right') ? '10%' : 'auto',
|
|
56
|
+
left: position.includes('left') ? '10%' : 'auto',
|
|
57
|
+
},
|
|
58
|
+
} },
|
|
59
|
+
react_1.default.createElement(core_1.DialogContent, { style: { textAlign: 'center' } },
|
|
60
|
+
react_1.default.createElement(base_ui_1.Alert, { color: color, icon: icon, label: message, className: color === 'warning' ? 'bg-warning' : 'bg-success' }),
|
|
61
|
+
",")));
|
|
62
|
+
};
|
|
63
|
+
exports.default = ToastModal;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export default class UploadClient {
|
|
2
|
+
state: {
|
|
3
|
+
fileSelected: any;
|
|
4
|
+
uploadId: string;
|
|
5
|
+
fileName: string;
|
|
6
|
+
documentUploadUrl: string;
|
|
7
|
+
projectId: number;
|
|
8
|
+
};
|
|
9
|
+
constructor(props: any);
|
|
10
|
+
generateS3Key(projectId: number, fileName: string): string;
|
|
11
|
+
triggerMultipartUpload(): Promise<string | undefined>;
|
|
12
|
+
uploadMultiPartFile(): Promise<string | undefined>;
|
|
13
|
+
completeUpload(partsArray: any): Promise<string | undefined>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
class UploadClient {
|
|
13
|
+
constructor(props) {
|
|
14
|
+
this.state = {
|
|
15
|
+
fileSelected: props.fileSelected,
|
|
16
|
+
uploadId: '',
|
|
17
|
+
fileName: props.fileName,
|
|
18
|
+
documentUploadUrl: props.documentUploadUrl,
|
|
19
|
+
projectId: props.projectId,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
generateS3Key(projectId, fileName) {
|
|
23
|
+
const sanitizedFileName = fileName.replace(/[^a-zA-Z0-9.-]/g, '_');
|
|
24
|
+
let uniqueKey = `project-${projectId}/${sanitizedFileName}`;
|
|
25
|
+
return uniqueKey;
|
|
26
|
+
}
|
|
27
|
+
;
|
|
28
|
+
triggerMultipartUpload() {
|
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
try {
|
|
31
|
+
const fileName = this.generateS3Key(this.state.projectId, this.state.fileName);
|
|
32
|
+
console.log('File Name', fileName);
|
|
33
|
+
this.state = Object.assign(Object.assign({}, this.state), { fileName: fileName });
|
|
34
|
+
const params = {
|
|
35
|
+
fileName: this.state.fileName,
|
|
36
|
+
fileType: this.state.fileSelected.type,
|
|
37
|
+
method: 'start-upload',
|
|
38
|
+
};
|
|
39
|
+
const response = yield fetch(`${this.state.documentUploadUrl}`, {
|
|
40
|
+
method: 'POST',
|
|
41
|
+
headers: {
|
|
42
|
+
'Content-Type': 'application/json',
|
|
43
|
+
},
|
|
44
|
+
body: JSON.stringify(params),
|
|
45
|
+
});
|
|
46
|
+
let { responseData } = yield response.json();
|
|
47
|
+
this.state = Object.assign(Object.assign({}, this.state), { uploadId: responseData === null || responseData === void 0 ? void 0 : responseData.UploadId });
|
|
48
|
+
return this.uploadMultiPartFile();
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
console.log(`Error Starting Multipart Upload ${error}`);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
uploadMultiPartFile() {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
try {
|
|
58
|
+
const CHUNK_SIZE = 5 * 1024 * 1024;
|
|
59
|
+
const fileSize = this.state.fileSelected.size;
|
|
60
|
+
const CHUNKS_COUNT = Math.floor(fileSize / CHUNK_SIZE) + 1;
|
|
61
|
+
let promisesArray = [];
|
|
62
|
+
let start, end, blob;
|
|
63
|
+
for (let index = 1; index < CHUNKS_COUNT + 1; index++) {
|
|
64
|
+
start = (index - 1) * CHUNK_SIZE;
|
|
65
|
+
end = (index) * CHUNK_SIZE;
|
|
66
|
+
blob = (index < CHUNKS_COUNT) ? this.state.fileSelected.slice(start, end) : this.state.fileSelected.slice(start);
|
|
67
|
+
// Get presigned URL for each part from backend lambda
|
|
68
|
+
let presignedUrlResponse = yield fetch(`${this.state.documentUploadUrl}`, {
|
|
69
|
+
method: 'POST',
|
|
70
|
+
body: JSON.stringify({ fileName: this.state.fileName, uploadId: this.state.uploadId, partNumber: index, method: 'get-presigned-url' }),
|
|
71
|
+
});
|
|
72
|
+
const { responseData } = yield presignedUrlResponse.json();
|
|
73
|
+
// Add each upload part to promise array using presigned URL
|
|
74
|
+
let uploadResponse = fetch(responseData, {
|
|
75
|
+
method: 'PUT',
|
|
76
|
+
body: blob,
|
|
77
|
+
});
|
|
78
|
+
promisesArray.push(uploadResponse);
|
|
79
|
+
}
|
|
80
|
+
let resolvedPromises = yield Promise.all(promisesArray);
|
|
81
|
+
let uploadPartsArray = [];
|
|
82
|
+
resolvedPromises.map((response, index) => {
|
|
83
|
+
uploadPartsArray.push({
|
|
84
|
+
ETag: response.headers.get('ETag'),
|
|
85
|
+
PartNumber: index + 1,
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
return yield this.completeUpload(uploadPartsArray);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
console.log(`Error Uploading Multipart File ${error}`);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
completeUpload(partsArray) {
|
|
96
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
try {
|
|
98
|
+
let response = yield fetch(`${this.state.documentUploadUrl}`, {
|
|
99
|
+
method: 'POST',
|
|
100
|
+
headers: {
|
|
101
|
+
'Content-Type': 'application/json',
|
|
102
|
+
},
|
|
103
|
+
body: JSON.stringify({ fileName: this.state.fileName, uploadId: this.state.uploadId, parts: partsArray, method: 'complete-upload' }),
|
|
104
|
+
});
|
|
105
|
+
const { responseData } = yield response.json();
|
|
106
|
+
console.log('Upload Complete', responseData);
|
|
107
|
+
return `Upload Complete ${JSON.stringify(responseData)}`;
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
console.log(`Error Completing Multipart Upload ${error}`);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.default = UploadClient;
|
|
@@ -6,7 +6,7 @@ export declare const getPreviousMonthStartDate: (previous: boolean) => string;
|
|
|
6
6
|
export declare const stateAbbreviationMap: {
|
|
7
7
|
[key: string]: string;
|
|
8
8
|
};
|
|
9
|
-
export declare const getFileMimeType: (filename: string) => "application/pdf" | "application/msword" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.ms-powerpoint" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "application/octet-stream";
|
|
9
|
+
export declare const getFileMimeType: (filename: string) => "application/pdf" | "application/msword" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.ms-powerpoint" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "text/csv" | "application/octet-stream";
|
|
10
10
|
export declare const handleDownloadPdf: ({ fileData, downloadFilename, }: {
|
|
11
11
|
fileData: any;
|
|
12
12
|
downloadFilename: string;
|
|
@@ -126,6 +126,8 @@ const getFileMimeType = (filename) => {
|
|
|
126
126
|
return 'application/vnd.ms-excel';
|
|
127
127
|
case 'xlsx':
|
|
128
128
|
return 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
|
|
129
|
+
case 'csv':
|
|
130
|
+
return 'text/csv';
|
|
129
131
|
default:
|
|
130
132
|
return 'application/octet-stream';
|
|
131
133
|
}
|
|
@@ -231,7 +233,8 @@ exports.ACCEPTED_FILE_TYPES = [
|
|
|
231
233
|
'application/vnd.ms-powerpoint',
|
|
232
234
|
'application/vnd.openxmlformats-officedocument.presentationml.presentation',
|
|
233
235
|
'application/vnd.ms-excel',
|
|
234
|
-
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
|
|
236
|
+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
237
|
+
'text/csv'
|
|
235
238
|
];
|
|
236
239
|
exports.MAX_FILE_SIZE = 5242880; // 5MB
|
|
237
240
|
const showToast = (type, message) => {
|
|
@@ -249,7 +252,7 @@ const validateFileUpload = (file, isClientTab) => {
|
|
|
249
252
|
return false;
|
|
250
253
|
}
|
|
251
254
|
if (!exports.ACCEPTED_FILE_TYPES.includes(file.type)) {
|
|
252
|
-
(0, exports.showToast)('warning', 'Invalid file type. Please upload a valid file (PDF, DOC, DOCX, PPT, XLS, XLSX).');
|
|
255
|
+
(0, exports.showToast)('warning', 'Invalid file type. Please upload a valid file (PDF, DOC, DOCX, PPT, XLS, XLSX, CSV).');
|
|
253
256
|
return false;
|
|
254
257
|
}
|
|
255
258
|
if (file.size > exports.MAX_FILE_SIZE && !isClientTab) {
|
package/package.json
CHANGED
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@paro.io/expert-shared-components",
|
|
3
|
-
"version": "1.6.
|
|
4
|
-
"description": "",
|
|
5
|
-
"main": "lib/index.js",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"build": "tsc",
|
|
8
|
-
"prepare": "yarn build",
|
|
9
|
-
"test": "yarn test:build",
|
|
10
|
-
"test:build": "yarn build",
|
|
11
|
-
"clean": "yarn -rf lib",
|
|
12
|
-
"predeploy": "tsc && cp package.json README.md ./lib",
|
|
13
|
-
"link-local": "yarn link && cd node_modules/react && yarn link && cd ../react-dom && yarn link",
|
|
14
|
-
"unlink-local": "yarn unlink && cd node_modules/react && yarn unlink && cd ../react-dom && yarn unlink"
|
|
15
|
-
},
|
|
16
|
-
"repository": "https://github.com/paroadmin/expert-shared-components.git",
|
|
17
|
-
"keywords": ["react", "components", "shared"],
|
|
18
|
-
"author": "apande@paro.io",
|
|
19
|
-
"license": "MIT",
|
|
20
|
-
"dependencies": {
|
|
21
|
-
"@fortawesome/fontawesome-svg-core": "^6.6.0",
|
|
22
|
-
"@fortawesome/free-solid-svg-icons": "^6.6.0",
|
|
23
|
-
"@fortawesome/react-fontawesome": "^0.2.2",
|
|
24
|
-
"@hookform/resolvers": "3.3.4",
|
|
25
|
-
"@material-ui/core": "^4.11.0",
|
|
26
|
-
"@material-ui/icons": "^4.11.3",
|
|
27
|
-
"@material-ui/lab": "^4.0.0-alpha.61",
|
|
28
|
-
"@paro.io/base-icons": "^1.0.4",
|
|
29
|
-
"@paro.io/base-ui": "^1.8.3",
|
|
30
|
-
"@types/react-input-mask": "^3.0.5",
|
|
31
|
-
"dayjs": "^1.10.7",
|
|
32
|
-
"lodash": "^4.17.21",
|
|
33
|
-
"react": "^18.2.0",
|
|
34
|
-
"react-copy-to-clipboard": "^5.0.4",
|
|
35
|
-
"react-datepicker": "^4.6.0",
|
|
36
|
-
"react-dom": "^17.0.2",
|
|
37
|
-
"react-hook-form": "7.51.1",
|
|
38
|
-
"react-hot-toast": "^2.4.1",
|
|
39
|
-
"react-input-mask": "^3.0.0-alpha.2",
|
|
40
|
-
"styled-components": "^5.3.3",
|
|
41
|
-
"yup": "^0.32.11"
|
|
42
|
-
},
|
|
43
|
-
"devDependencies": {
|
|
44
|
-
"@types/lodash": "^4.14.170",
|
|
45
|
-
"@types/react": "^18.2.73",
|
|
46
|
-
"@types/react-copy-to-clipboard": "^5.0.2",
|
|
47
|
-
"@types/react-datepicker": "^4.19.6",
|
|
48
|
-
"@types/react-dom": "^18.2.22",
|
|
49
|
-
"@types/styled-components": "^5.1.22",
|
|
50
|
-
"@types/yup": "^0.29.13",
|
|
51
|
-
"typescript": "^5.3.3"
|
|
52
|
-
},
|
|
53
|
-
"files": [
|
|
54
|
-
"lib/**/*"
|
|
55
|
-
],
|
|
56
|
-
"directories": {
|
|
57
|
-
"lib": "lib"
|
|
58
|
-
}
|
|
59
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@paro.io/expert-shared-components",
|
|
3
|
+
"version": "1.6.3",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "lib/index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build": "tsc",
|
|
8
|
+
"prepare": "yarn build",
|
|
9
|
+
"test": "yarn test:build",
|
|
10
|
+
"test:build": "yarn build",
|
|
11
|
+
"clean": "yarn -rf lib",
|
|
12
|
+
"predeploy": "tsc && cp package.json README.md ./lib",
|
|
13
|
+
"link-local": "yarn link && cd node_modules/react && yarn link && cd ../react-dom && yarn link",
|
|
14
|
+
"unlink-local": "yarn unlink && cd node_modules/react && yarn unlink && cd ../react-dom && yarn unlink"
|
|
15
|
+
},
|
|
16
|
+
"repository": "https://github.com/paroadmin/expert-shared-components.git",
|
|
17
|
+
"keywords": ["react", "components", "shared"],
|
|
18
|
+
"author": "apande@paro.io",
|
|
19
|
+
"license": "MIT",
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@fortawesome/fontawesome-svg-core": "^6.6.0",
|
|
22
|
+
"@fortawesome/free-solid-svg-icons": "^6.6.0",
|
|
23
|
+
"@fortawesome/react-fontawesome": "^0.2.2",
|
|
24
|
+
"@hookform/resolvers": "3.3.4",
|
|
25
|
+
"@material-ui/core": "^4.11.0",
|
|
26
|
+
"@material-ui/icons": "^4.11.3",
|
|
27
|
+
"@material-ui/lab": "^4.0.0-alpha.61",
|
|
28
|
+
"@paro.io/base-icons": "^1.0.4",
|
|
29
|
+
"@paro.io/base-ui": "^1.8.3",
|
|
30
|
+
"@types/react-input-mask": "^3.0.5",
|
|
31
|
+
"dayjs": "^1.10.7",
|
|
32
|
+
"lodash": "^4.17.21",
|
|
33
|
+
"react": "^18.2.0",
|
|
34
|
+
"react-copy-to-clipboard": "^5.0.4",
|
|
35
|
+
"react-datepicker": "^4.6.0",
|
|
36
|
+
"react-dom": "^17.0.2",
|
|
37
|
+
"react-hook-form": "7.51.1",
|
|
38
|
+
"react-hot-toast": "^2.4.1",
|
|
39
|
+
"react-input-mask": "^3.0.0-alpha.2",
|
|
40
|
+
"styled-components": "^5.3.3",
|
|
41
|
+
"yup": "^0.32.11"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@types/lodash": "^4.14.170",
|
|
45
|
+
"@types/react": "^18.2.73",
|
|
46
|
+
"@types/react-copy-to-clipboard": "^5.0.2",
|
|
47
|
+
"@types/react-datepicker": "^4.19.6",
|
|
48
|
+
"@types/react-dom": "^18.2.22",
|
|
49
|
+
"@types/styled-components": "^5.1.22",
|
|
50
|
+
"@types/yup": "^0.29.13",
|
|
51
|
+
"typescript": "^5.3.3"
|
|
52
|
+
},
|
|
53
|
+
"files": [
|
|
54
|
+
"lib/**/*"
|
|
55
|
+
],
|
|
56
|
+
"directories": {
|
|
57
|
+
"lib": "lib"
|
|
58
|
+
}
|
|
59
|
+
}
|