@paro.io/expert-shared-components 1.9.3 → 1.9.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.
@@ -22,67 +22,17 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
25
28
  Object.defineProperty(exports, "__esModule", { value: true });
26
29
  exports.OrganizationChart = void 0;
27
30
  const react_1 = __importStar(require("react"));
28
31
  const core_1 = require("@material-ui/core");
29
32
  const icons_1 = require("@material-ui/icons");
30
33
  const utils_1 = require("./utils");
31
- const PersonCard = ({ name, position, experience, location, initial, noOfchildren, }) => (react_1.default.createElement("div", { className: "relative group" },
32
- react_1.default.createElement("div", { className: "flex flex-col items-center" },
33
- react_1.default.createElement("div", { className: "flex flex-col items-center mb-2" },
34
- react_1.default.createElement("div", { className: `
35
- -mb-4 z-10 w-12 h-12 rounded-full bg-[#434889] flex items-center justify-center
36
- text-white font-semibold text-lg
37
- transition-all duration-200 hover:bg-[#102377]
38
- ${noOfchildren > 0 ? 'hover:shadow-lg' : ''}
39
- ` },
40
- initial,
41
- noOfchildren > 0 && (react_1.default.createElement("div", { className: "absolute -bottom-3 w-6 h-6 rounded bg-gray-400 flex items-center justify-center text-white text-sm" }, noOfchildren)))),
42
- react_1.default.createElement("div", { className: "p-4 bg-white rounded-lg shadow-sm border text-center w-48 transition-all duration-200 group-hover:shadow-md" },
43
- react_1.default.createElement("div", { className: "font-semibold text-[#102377]" }, name),
44
- react_1.default.createElement("div", { className: "text-sm text-gray-600" }, position),
45
- react_1.default.createElement("div", { className: "text-xs text-gray-500" },
46
- experience,
47
- " Years Experience"),
48
- react_1.default.createElement("div", { className: "text-xs text-gray-500" }, location)))));
49
- const ServicesCard = ({ uniqueServices, employeeCount, employeeLocation, totalYears }) => {
50
- const [expanded, setExpanded] = (0, react_1.useState)(false);
51
- const handleExpandClick = () => {
52
- setExpanded((prev) => !prev);
53
- };
54
- const highlightsExists = (employeeCount > 0 || employeeLocation !== 'none' || totalYears > 0);
55
- const uniqueServicesExists = (uniqueServices === null || uniqueServices === void 0 ? void 0 : uniqueServices.length) >= 1;
56
- const theme = (0, core_1.useTheme)();
57
- const smallScreen = (0, core_1.useMediaQuery)(theme.breakpoints.down('lg'));
58
- return (highlightsExists || uniqueServicesExists) ? react_1.default.createElement(utils_1.InfoCard, null,
59
- react_1.default.createElement(core_1.Grid, { item: true, container: true, direction: 'row', justifyContent: 'space-between', alignItems: 'center' },
60
- react_1.default.createElement(core_1.Typography, { variant: "subtitle1", gutterBottom: true },
61
- react_1.default.createElement("b", null, "Services Offered & Highlights")),
62
- react_1.default.createElement(core_1.Tooltip, { title: !expanded ? "Expand to view services offered & highlights" : "", arrow: true, placement: 'top' },
63
- react_1.default.createElement(core_1.IconButton, { onClick: handleExpandClick }, expanded ? react_1.default.createElement(icons_1.ExpandLess, null) : react_1.default.createElement(icons_1.ExpandMore, null)))),
64
- react_1.default.createElement(core_1.Collapse, { in: expanded },
65
- react_1.default.createElement(core_1.Grid, { container: true, spacing: 2, style: { paddingLeft: 12 }, direction: smallScreen ? 'column' : 'row' },
66
- uniqueServicesExists && react_1.default.createElement(core_1.Grid, { item: true },
67
- react_1.default.createElement(core_1.Typography, { variant: "subtitle1", gutterBottom: true },
68
- react_1.default.createElement("b", null, "Services Offered")),
69
- react_1.default.createElement("ul", { className: "pl-2 my-0" }, uniqueServices === null || uniqueServices === void 0 ? void 0 : uniqueServices.map((service) => {
70
- return react_1.default.createElement("li", null, service);
71
- }))),
72
- react_1.default.createElement(core_1.Box, { m: 1, mb: smallScreen ? 1 : 2 },
73
- react_1.default.createElement(core_1.Divider, { orientation: smallScreen ? 'horizontal' : 'vertical' })),
74
- highlightsExists && react_1.default.createElement(core_1.Grid, { item: true },
75
- react_1.default.createElement(core_1.Typography, { variant: "subtitle1", gutterBottom: true },
76
- react_1.default.createElement("b", null, "Highlights")),
77
- react_1.default.createElement("ul", { className: "pl-2 my-0" },
78
- employeeCount > 0 && react_1.default.createElement("li", null,
79
- employeeCount,
80
- " Team Members"),
81
- employeeLocation !== 'none' && react_1.default.createElement("li", null, employeeLocation),
82
- totalYears > 0 && react_1.default.createElement("li", null,
83
- totalYears,
84
- " years of combined experience")))))) : react_1.default.createElement(react_1.default.Fragment, null);
85
- };
34
+ const PersonCard_1 = __importDefault(require("./PersonCard"));
35
+ const ServicesCard_1 = __importDefault(require("./ServicesCard"));
86
36
  const RenderChildren = ({ children, zooming, isDragging }) => {
87
37
  const childWidth = 100 / children.length;
88
38
  const hasSiblings = children.length > 1;
@@ -117,7 +67,7 @@ const RenderChildren = ({ children, zooming, isDragging }) => {
117
67
  return (react_1.default.createElement("div", { key: child.name, className: "flex flex-col items-center", style: { width: `${childWidth}%` } },
118
68
  react_1.default.createElement(utils_1.ConnectorContainer, { ref: (el) => childRefs.current[index] = el, className: "child-vertical-line" }),
119
69
  react_1.default.createElement("div", { className: "flex flex-col items-center relative" },
120
- react_1.default.createElement(PersonCard, Object.assign({}, child, { noOfchildren: (_b = (_a = child === null || child === void 0 ? void 0 : child.children) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0 })),
70
+ react_1.default.createElement(PersonCard_1.default, Object.assign({}, child, { noOfchildren: (_b = (_a = child === null || child === void 0 ? void 0 : child.children) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0 })),
121
71
  child.children && child.children.length > 0 && (react_1.default.createElement(RenderChildren, { children: child.children, zooming: zooming, isDragging: isDragging })))));
122
72
  })))))));
123
73
  };
@@ -207,7 +157,7 @@ const OrganizationChart = ({ expertFirms, openModal, setOpenModal, firstName, la
207
157
  react_1.default.createElement(core_1.Box, null, "See what services the organization offers and where they're located"))),
208
158
  react_1.default.createElement(core_1.IconButton, { onClick: () => setOpenModal(false), style: { position: 'absolute', top: 0, right: 0 } },
209
159
  react_1.default.createElement(icons_1.Close, null))),
210
- isPublicProfile && (react_1.default.createElement(ServicesCard, { uniqueServices: uniqueServices, employeeCount: expertFirms.employeeCount, employeeLocation: employeeLocation, totalYears: totalYears })),
160
+ isPublicProfile && (react_1.default.createElement(ServicesCard_1.default, { uniqueServices: uniqueServices, employeeCount: expertFirms.employeeCount, employeeLocation: employeeLocation, totalYears: totalYears })),
211
161
  react_1.default.createElement(core_1.DialogContent, { onWheel: handleWheel, onMouseMove: handleMouseMove, onMouseUp: handleMouseUp, onMouseLeave: handleMouseUp, onDoubleClick: handleDoubleClick, style: {
212
162
  overflow: 'hidden',
213
163
  width: '100%',
@@ -226,7 +176,7 @@ const OrganizationChart = ({ expertFirms, openModal, setOpenModal, firstName, la
226
176
  } },
227
177
  react_1.default.createElement("div", { className: "p-8" },
228
178
  react_1.default.createElement("div", { className: "flex flex-col items-center" },
229
- react_1.default.createElement(PersonCard, Object.assign({}, treeData, { noOfchildren: (_d = (_c = treeData === null || treeData === void 0 ? void 0 : treeData.children) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0 })),
179
+ react_1.default.createElement(PersonCard_1.default, Object.assign({}, treeData, { noOfchildren: (_d = (_c = treeData === null || treeData === void 0 ? void 0 : treeData.children) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0 })),
230
180
  react_1.default.createElement(RenderChildren, { children: treeData.children || [], zooming: zoomingRef.current, isDragging: isDraggingRef.current }))))))));
231
181
  };
232
182
  exports.OrganizationChart = OrganizationChart;
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ export interface EmployeeData {
3
+ name: string;
4
+ position: string;
5
+ experience: number;
6
+ location: string;
7
+ initial: string;
8
+ level?: number | null;
9
+ children?: EmployeeData[];
10
+ }
11
+ interface PersonCardProps extends EmployeeData {
12
+ noOfchildren: number;
13
+ }
14
+ declare const PersonCard: React.FC<PersonCardProps>;
15
+ export default PersonCard;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const PersonCard = ({ name, position, experience, location, initial, noOfchildren, }) => (react_1.default.createElement("div", { className: "relative group" },
8
+ react_1.default.createElement("div", { className: "flex flex-col items-center" },
9
+ react_1.default.createElement("div", { className: "flex flex-col items-center mb-2" },
10
+ react_1.default.createElement("div", { className: `
11
+ -mb-4 z-10 w-12 h-12 rounded-full bg-[#434889] flex items-center justify-center
12
+ text-white font-semibold text-lg
13
+ transition-all duration-200 hover:bg-[#102377]
14
+ ${noOfchildren > 0 ? 'hover:shadow-lg' : ''}
15
+ ` },
16
+ initial,
17
+ noOfchildren > 0 && (react_1.default.createElement("div", { className: "absolute -bottom-3 w-6 h-6 rounded bg-gray-400 flex items-center justify-center text-white text-sm" }, noOfchildren)))),
18
+ react_1.default.createElement("div", { className: "p-4 bg-white rounded-lg shadow-sm border text-center w-48 transition-all duration-200 group-hover:shadow-md" },
19
+ react_1.default.createElement("div", { className: "font-semibold text-[#102377]" }, name),
20
+ react_1.default.createElement("div", { className: "text-sm text-gray-600" }, position),
21
+ react_1.default.createElement("div", { className: "text-xs text-gray-500" },
22
+ experience,
23
+ " Years Experience"),
24
+ react_1.default.createElement("div", { className: "text-xs text-gray-500" }, location)))));
25
+ exports.default = PersonCard;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ServicesCard: ({ uniqueServices, employeeCount, employeeLocation, totalYears }: any) => React.JSX.Element;
3
+ export default ServicesCard;
@@ -0,0 +1,67 @@
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 icons_1 = require("@material-ui/icons");
29
+ const utils_1 = require("./utils");
30
+ const ServicesCard = ({ uniqueServices, employeeCount, employeeLocation, totalYears }) => {
31
+ const [expanded, setExpanded] = (0, react_1.useState)(false);
32
+ const handleExpandClick = () => {
33
+ setExpanded((prev) => !prev);
34
+ };
35
+ const highlightsExists = (employeeCount > 0 || employeeLocation !== 'none' || totalYears > 0);
36
+ const uniqueServicesExists = (uniqueServices === null || uniqueServices === void 0 ? void 0 : uniqueServices.length) >= 1;
37
+ const theme = (0, core_1.useTheme)();
38
+ const smallScreen = (0, core_1.useMediaQuery)(theme.breakpoints.down('lg'));
39
+ return (highlightsExists || uniqueServicesExists) ? react_1.default.createElement(utils_1.InfoCard, null,
40
+ react_1.default.createElement(core_1.Grid, { item: true, container: true, direction: 'row', justifyContent: 'space-between', alignItems: 'center' },
41
+ react_1.default.createElement(core_1.Typography, { variant: "subtitle1", gutterBottom: true },
42
+ react_1.default.createElement("b", null, "Services Offered & Highlights")),
43
+ react_1.default.createElement(core_1.Tooltip, { title: !expanded ? "Expand to view services offered & highlights" : "", arrow: true, placement: 'top' },
44
+ react_1.default.createElement(core_1.IconButton, { onClick: handleExpandClick }, expanded ? react_1.default.createElement(icons_1.ExpandLess, null) : react_1.default.createElement(icons_1.ExpandMore, null)))),
45
+ react_1.default.createElement(core_1.Collapse, { in: expanded },
46
+ react_1.default.createElement(core_1.Grid, { container: true, spacing: 2, style: { paddingLeft: 12 }, direction: smallScreen ? 'column' : 'row' },
47
+ uniqueServicesExists && react_1.default.createElement(core_1.Grid, { item: true },
48
+ react_1.default.createElement(core_1.Typography, { variant: "subtitle1", gutterBottom: true },
49
+ react_1.default.createElement("b", null, "Services Offered")),
50
+ react_1.default.createElement("ul", { className: "pl-2 my-0" }, uniqueServices === null || uniqueServices === void 0 ? void 0 : uniqueServices.map((service) => {
51
+ return react_1.default.createElement("li", null, service);
52
+ }))),
53
+ react_1.default.createElement(core_1.Box, { m: 1, mb: smallScreen ? 1 : 2 },
54
+ react_1.default.createElement(core_1.Divider, { orientation: smallScreen ? 'horizontal' : 'vertical' })),
55
+ highlightsExists && react_1.default.createElement(core_1.Grid, { item: true },
56
+ react_1.default.createElement(core_1.Typography, { variant: "subtitle1", gutterBottom: true },
57
+ react_1.default.createElement("b", null, "Highlights")),
58
+ react_1.default.createElement("ul", { className: "pl-2 my-0" },
59
+ employeeCount > 0 && react_1.default.createElement("li", null,
60
+ employeeCount,
61
+ " Team Members"),
62
+ employeeLocation !== 'none' && react_1.default.createElement("li", null, employeeLocation),
63
+ totalYears > 0 && react_1.default.createElement("li", null,
64
+ totalYears,
65
+ " years of combined experience")))))) : react_1.default.createElement(react_1.default.Fragment, null);
66
+ };
67
+ exports.default = ServicesCard;
@@ -7,54 +7,6 @@ exports.getTotalYearsWithFirm = exports.checkEmployeeLocation = exports.parseSer
7
7
  const styled_components_1 = __importDefault(require("styled-components"));
8
8
  const core_1 = require("@material-ui/core");
9
9
  const Dialog_1 = __importDefault(require("@material-ui/core/Dialog"));
10
- // export const transformEmployeeData = (
11
- // employeeData: Employee[],
12
- // firstName: string,
13
- // lastName: string,
14
- // primaryServiceLine: string,
15
- // city: string,
16
- // stateAbbreviation: string,
17
- // paroTenure: number
18
- // ) => {
19
- // const getInitial = (name: string): string => name.charAt(0).toUpperCase();
20
- // // // Organize employees by their level
21
- // // const levels: { [key: number]: Employee[] } = {};
22
- // // employeeData.forEach((employee) => {
23
- // // if (!levels[employee.level]) {
24
- // // levels[employee.level] = [];
25
- // // }
26
- // // levels[employee.level].push(employee);
27
- // // });
28
- // const buildHierarchy = (parent: Employee | null, level: number): TransformedEmployee[] => {
29
- // // if (!levels[level]) return [];
30
- // // Filter employees based on matching direct_report and expert_firm_id with the parent
31
- // const children = employeeData.filter((employee) => {
32
- // return (parent === null ||
33
- // (employee.directReport === parent.employeeName &&
34
- // employee.expertFirmId === parent.expertFirmId));
35
- // }).map((employee) => ({
36
- // name: employee.employeeName,
37
- // position: employee.firmRole,
38
- // experience: employee.yearsWithFirm,
39
- // location: employee.employeeLocation,
40
- // initial: getInitial(employee.employeeName),
41
- // level: level,
42
- // children: buildHierarchy(employee, level + 1), // Recursive call to get the next level of children
43
- // }));
44
- // return children;
45
- // };
46
- // // Start building hierarchy from level 1 (assuming the top-most level is level 1)
47
- // const transformedData = buildHierarchy(null, 1);
48
- // return {
49
- // name: `${firstName} ${lastName}`,
50
- // position: primaryServiceLine,
51
- // experience: paroTenure,
52
- // location: `${city}, ${stateAbbreviation}`,
53
- // initial: firstName.charAt(0).toUpperCase(),
54
- // level: 0,
55
- // children: transformedData,
56
- // };
57
- // };
58
10
  const transformEmployeeData = (employeeData, firstName, lastName, primaryServiceLine, city, stateAbbreviation, paroTenure) => {
59
11
  const getInitial = (name) => name.charAt(0).toUpperCase();
60
12
  const buildHierarchy = (parent) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paro.io/expert-shared-components",
3
- "version": "1.9.3",
3
+ "version": "1.9.4",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {