@pareto-engineering/design-system 5.0.0 → 5.0.2

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.
Files changed (123) hide show
  1. package/dist/cjs/a/{AreaChart → Charts/AreaChart}/AreaChart.js +89 -73
  2. package/dist/cjs/a/Charts/AreaChart/styles.scss +48 -0
  3. package/dist/cjs/a/Charts/BarChart/BarChart.js +137 -0
  4. package/dist/cjs/a/Charts/BarChart/index.js +13 -0
  5. package/dist/cjs/a/Charts/BarChart/styles.scss +48 -0
  6. package/dist/cjs/a/Charts/Common/CustomLegend/CustomLegend.js +88 -0
  7. package/dist/cjs/a/Charts/Common/CustomLegend/index.js +13 -0
  8. package/dist/cjs/a/Charts/Common/CustomLegend/styles.scss +67 -0
  9. package/dist/cjs/a/Charts/Common/CustomTooltipContent/CustomTooltipContent.js +97 -0
  10. package/dist/cjs/a/Charts/Common/CustomTooltipContent/index.js +13 -0
  11. package/dist/cjs/a/Charts/Common/CustomTooltipContent/styles.scss +22 -0
  12. package/dist/cjs/a/Charts/Common/YLabelsDropDown/YlabelsDropDown.js +97 -0
  13. package/dist/cjs/a/Charts/Common/YLabelsDropDown/index.js +13 -0
  14. package/dist/cjs/a/Charts/Common/YLabelsDropDown/styles.scss +89 -0
  15. package/dist/cjs/a/Charts/Common/index.js +26 -0
  16. package/dist/cjs/a/Charts/PieChart/PieChart.js +99 -0
  17. package/dist/cjs/a/Charts/PieChart/index.js +13 -0
  18. package/dist/cjs/a/Charts/PieChart/styles.scss +48 -0
  19. package/dist/cjs/a/Charts/index.js +26 -0
  20. package/dist/cjs/a/Tooltip/styles.scss +1 -1
  21. package/dist/cjs/a/index.js +14 -2
  22. package/dist/cjs/f/FormInput/FormInput.js +6 -0
  23. package/dist/cjs/f/fields/FileUpload/FileUpload.js +18 -4
  24. package/dist/cjs/f/fields/LatexPreviewInput/LatexPreviewInput.js +78 -0
  25. package/dist/cjs/f/fields/LatexPreviewInput/convertLatexToHtml.js +46 -0
  26. package/dist/cjs/f/fields/LatexPreviewInput/index.js +20 -0
  27. package/dist/cjs/f/fields/LatexPreviewInput/styles.scss +24 -0
  28. package/dist/cjs/f/fields/index.js +13 -0
  29. package/dist/cjs/g/FormBuilder/FormBuilder.js +3 -6
  30. package/dist/cjs/g/FormBuilder/common/Builder/Builder.js +1 -3
  31. package/dist/cjs/g/FormBuilder/common/Builder/common/InputBuilder/InputBuilder.js +5 -7
  32. package/dist/cjs/g/FormBuilder/common/Builder/common/Section/Section.js +2 -4
  33. package/dist/cjs/g/FormBuilder/common/Renderer/Renderer.js +2 -4
  34. package/dist/cjs/g/FormBuilder/common/Renderer/common/Section/Section.js +2 -10
  35. package/dist/cjs/utils/formatting.js +119 -0
  36. package/dist/cjs/utils/index.js +26 -1
  37. package/dist/es/a/{AreaChart → Charts/AreaChart}/AreaChart.js +88 -69
  38. package/dist/es/a/Charts/AreaChart/styles.scss +48 -0
  39. package/dist/es/a/Charts/BarChart/BarChart.js +128 -0
  40. package/dist/es/a/Charts/BarChart/index.js +1 -0
  41. package/dist/es/a/Charts/BarChart/styles.scss +48 -0
  42. package/dist/es/a/Charts/Common/CustomLegend/CustomLegend.js +76 -0
  43. package/dist/es/a/Charts/Common/CustomLegend/index.js +1 -0
  44. package/dist/es/a/Charts/Common/CustomLegend/styles.scss +67 -0
  45. package/dist/es/a/Charts/Common/CustomTooltipContent/CustomTooltipContent.js +87 -0
  46. package/dist/es/a/Charts/Common/CustomTooltipContent/index.js +1 -0
  47. package/dist/es/a/Charts/Common/CustomTooltipContent/styles.scss +22 -0
  48. package/dist/es/a/Charts/Common/YLabelsDropDown/YlabelsDropDown.js +86 -0
  49. package/dist/es/a/Charts/Common/YLabelsDropDown/index.js +1 -0
  50. package/dist/es/a/Charts/Common/YLabelsDropDown/styles.scss +89 -0
  51. package/dist/es/a/Charts/Common/index.js +3 -0
  52. package/dist/es/a/Charts/PieChart/PieChart.js +89 -0
  53. package/dist/es/a/Charts/PieChart/index.js +1 -0
  54. package/dist/es/a/Charts/PieChart/styles.scss +48 -0
  55. package/dist/es/a/Charts/index.js +3 -0
  56. package/dist/es/a/Tooltip/styles.scss +1 -1
  57. package/dist/es/a/index.js +1 -1
  58. package/dist/es/f/FormInput/FormInput.js +7 -1
  59. package/dist/es/f/fields/FileUpload/FileUpload.js +18 -4
  60. package/dist/es/f/fields/LatexPreviewInput/LatexPreviewInput.js +70 -0
  61. package/dist/es/f/fields/LatexPreviewInput/convertLatexToHtml.js +31 -0
  62. package/dist/es/f/fields/LatexPreviewInput/index.js +3 -0
  63. package/dist/es/f/fields/LatexPreviewInput/styles.scss +24 -0
  64. package/dist/es/f/fields/index.js +1 -0
  65. package/dist/es/g/FormBuilder/FormBuilder.js +3 -6
  66. package/dist/es/g/FormBuilder/common/Builder/Builder.js +1 -3
  67. package/dist/es/g/FormBuilder/common/Builder/common/InputBuilder/InputBuilder.js +5 -7
  68. package/dist/es/g/FormBuilder/common/Builder/common/Section/Section.js +2 -4
  69. package/dist/es/g/FormBuilder/common/Renderer/Renderer.js +2 -4
  70. package/dist/es/g/FormBuilder/common/Renderer/common/Section/Section.js +32 -42
  71. package/dist/es/utils/formatting.js +109 -0
  72. package/dist/es/utils/index.js +2 -1
  73. package/jest.config.js +3 -0
  74. package/package.json +7 -3
  75. package/src/stories/a/AreaChart.stories.jsx +1 -1
  76. package/src/stories/a/BarChart.stories.jsx +89 -0
  77. package/src/stories/a/PieChart.stories.jsx +53 -0
  78. package/src/ui/a/{AreaChart → Charts/AreaChart}/AreaChart.jsx +114 -65
  79. package/src/ui/a/Charts/AreaChart/styles.scss +48 -0
  80. package/src/ui/a/Charts/BarChart/BarChart.jsx +167 -0
  81. package/src/ui/a/Charts/BarChart/index.js +1 -0
  82. package/src/ui/a/Charts/BarChart/styles.scss +48 -0
  83. package/src/ui/a/Charts/Common/CustomLegend/CustomLegend.jsx +109 -0
  84. package/src/ui/a/Charts/Common/CustomLegend/index.js +1 -0
  85. package/src/ui/a/Charts/Common/CustomLegend/styles.scss +67 -0
  86. package/src/ui/a/Charts/Common/CustomTooltipContent/CustomTooltipContent.jsx +117 -0
  87. package/src/ui/a/Charts/Common/CustomTooltipContent/index.js +1 -0
  88. package/src/ui/a/Charts/Common/CustomTooltipContent/styles.scss +22 -0
  89. package/src/ui/a/Charts/Common/YLabelsDropDown/YlabelsDropDown.jsx +121 -0
  90. package/src/ui/a/Charts/Common/YLabelsDropDown/index.js +1 -0
  91. package/src/ui/a/Charts/Common/YLabelsDropDown/styles.scss +89 -0
  92. package/src/ui/a/Charts/Common/index.js +3 -0
  93. package/src/ui/a/Charts/PieChart/PieChart.jsx +125 -0
  94. package/src/ui/a/Charts/PieChart/index.js +1 -0
  95. package/src/ui/a/Charts/PieChart/styles.scss +48 -0
  96. package/src/ui/a/Charts/index.js +3 -0
  97. package/src/ui/a/Tooltip/styles.scss +1 -1
  98. package/src/ui/a/index.js +1 -1
  99. package/src/ui/f/FormInput/FormInput.jsx +11 -0
  100. package/src/ui/f/fields/FileUpload/FileUpload.jsx +24 -4
  101. package/src/ui/f/fields/LatexPreviewInput/LatexPreviewInput.jsx +91 -0
  102. package/src/ui/f/fields/LatexPreviewInput/convertLatexToHtml.jsx +38 -0
  103. package/src/ui/f/fields/LatexPreviewInput/index.js +3 -0
  104. package/src/ui/f/fields/LatexPreviewInput/styles.scss +24 -0
  105. package/src/ui/f/fields/index.js +4 -0
  106. package/src/ui/g/FormBuilder/FormBuilder.jsx +0 -3
  107. package/src/ui/g/FormBuilder/common/Builder/Builder.jsx +0 -2
  108. package/src/ui/g/FormBuilder/common/Builder/common/InputBuilder/InputBuilder.jsx +4 -7
  109. package/src/ui/g/FormBuilder/common/Builder/common/Section/Section.jsx +0 -2
  110. package/src/ui/g/FormBuilder/common/Renderer/Renderer.jsx +0 -2
  111. package/src/ui/g/FormBuilder/common/Renderer/common/Section/Section.jsx +49 -64
  112. package/src/ui/utils/formatting.js +133 -0
  113. package/src/ui/utils/index.js +3 -0
  114. package/tests/__snapshots__/Storyshots.test.js.snap +2227 -296
  115. package/tests/emptyMock.js +3 -0
  116. package/tests/mockTextEncoder.js +7 -0
  117. package/tests/test-setup.js +7 -0
  118. package/dist/cjs/a/AreaChart/styles.scss +0 -89
  119. package/dist/es/a/AreaChart/styles.scss +0 -89
  120. package/src/ui/a/AreaChart/styles.scss +0 -89
  121. /package/dist/cjs/a/{AreaChart → Charts/AreaChart}/index.js +0 -0
  122. /package/dist/es/a/{AreaChart → Charts/AreaChart}/index.js +0 -0
  123. /package/src/ui/a/{AreaChart → Charts/AreaChart}/index.js +0 -0
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _exports = _interopRequireDefault(require("@pareto-engineering/bem/exports"));
10
+ var _utils = require("../../../../utils");
11
+ require("./styles.scss");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
+ const baseClassName = _exports.default.base;
16
+ const componentClassName = 'custom-tooltip-content';
17
+ const CustomTooltipContent = _ref => {
18
+ let {
19
+ id,
20
+ className: userClassName,
21
+ dateFormat,
22
+ isTimeFormat,
23
+ isDateValue,
24
+ active,
25
+ payload,
26
+ label
27
+ } = _ref;
28
+ const formatLabelValue = value => {
29
+ if (isTimeFormat) {
30
+ return (0, _utils.formatTime)(value);
31
+ }
32
+ if (typeof value === 'number') {
33
+ if (Number.isInteger(value)) return value;
34
+ return value.toFixed(2);
35
+ }
36
+ return value;
37
+ };
38
+ if (active && payload && payload.length) {
39
+ const newPayload = payload.filter(item => item.name !== 'bounds');
40
+ return /*#__PURE__*/React.createElement("div", {
41
+ id: id,
42
+ className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' ')
43
+ }, /*#__PURE__*/React.createElement("p", {
44
+ className: "label"
45
+ }, isDateValue ? (0, _utils.formatDate)(label, dateFormat) : label), newPayload.map(entry => /*#__PURE__*/React.createElement("p", {
46
+ className: "label",
47
+ key: `${entry.name}`,
48
+ style: {
49
+ color: entry.color,
50
+ textTransform: 'capitalize'
51
+ }
52
+ }, `${(0, _utils.snakeCaseToTitleCase)(entry.name)}: ${formatLabelValue(entry.value)}`)));
53
+ }
54
+ return null;
55
+ };
56
+ CustomTooltipContent.propTypes = {
57
+ /**
58
+ * The id of the dropdown component.
59
+ */
60
+ id: _propTypes.default.string,
61
+ /**
62
+ * Additional class names for the dropdown component.
63
+ */
64
+ className: _propTypes.default.string,
65
+ /**
66
+ * Flag on whether it is a timeformat or not
67
+ */
68
+ isTimeFormat: _propTypes.default.bool,
69
+ /**
70
+ * The type of format for the datetime value
71
+ */
72
+ dateFormat: _propTypes.default.oneOf(Object.values(_utils.DATE_FORMATS)),
73
+ /**
74
+ * Flag on whether the label is a date value or not
75
+ */
76
+ isDateValue: _propTypes.default.bool,
77
+ /**
78
+ * If set true, the tooltip is displayed.
79
+ * If set false, the tooltip is hidden, usually calculated internally.
80
+ */
81
+ active: _propTypes.default.bool.isRequired,
82
+ /**
83
+ * The source data of the content to be displayed in the tooltip,
84
+ * always calculated internally and cannot be user set.
85
+ */
86
+ payload: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
87
+ /**
88
+ *The label value which is active now, usually calculated internally.
89
+ */
90
+ label: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]).isRequired
91
+ };
92
+ CustomTooltipContent.defaultProps = {
93
+ isTimeFormat: false,
94
+ isDateValue: true,
95
+ dateFormat: _utils.DATE_FORMATS.HUMAN_READABLE
96
+ };
97
+ var _default = exports.default = CustomTooltipContent;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "CustomTooltipContent", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _CustomTooltipContent.default;
10
+ }
11
+ });
12
+ var _CustomTooltipContent = _interopRequireDefault(require("./CustomTooltipContent"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,22 @@
1
+ @use "@pareto-engineering/bem";
2
+
3
+ $default-margin: 1rem;
4
+ $default-padding: 1rem;
5
+ $default-text-font-size: calc(var(--s-1) * 1rem);
6
+ $default-border-radius: .25rem;
7
+ $default-border-line-width: .0625rem;
8
+
9
+ .#{bem.$base} {
10
+ &.custom-tooltip-content {
11
+ background-color: var(--background-far);
12
+ border: $default-border-line-width solid var(--ui-lines);
13
+ border-radius: $default-border-radius;
14
+ padding: calc($default-padding * .25);
15
+
16
+ .label {
17
+ color: var(--hard-paragraph);
18
+ font-size: $default-text-font-size;
19
+ margin: calc($default-margin * .25);
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _exports = _interopRequireDefault(require("@pareto-engineering/bem/exports"));
10
+ var _utils = require("../../../../utils");
11
+ require("./styles.scss");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
+ // DropdownStatus.js
16
+
17
+ const baseClassName = _exports.default.base;
18
+ const componentClassName = 'y-labels-dropdown';
19
+ const YLabelsDropDown = _ref => {
20
+ let {
21
+ id,
22
+ className: userClassName,
23
+ placeholder,
24
+ selectedYLabels,
25
+ setSelectedYLabels,
26
+ allYLabels
27
+ } = _ref;
28
+ const [isOpen, setIsOpen] = React.useState(false);
29
+ const toggleYLabel = yLabel => {
30
+ setSelectedYLabels(prev => prev.some(label => label.label === yLabel.label) ? prev.filter(label => label.label !== yLabel.label) : [...prev, yLabel]);
31
+ };
32
+ return /*#__PURE__*/React.createElement("div", {
33
+ id: id,
34
+ className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' ')
35
+ }, /*#__PURE__*/React.createElement("button", {
36
+ className: "dropdown-button",
37
+ onClick: () => setIsOpen(!isOpen),
38
+ type: "button"
39
+ }, placeholder, /*#__PURE__*/React.createElement("span", {
40
+ className: `icon ${isOpen ? _exports.default.modifierOpen : ''}`
41
+ }, "W")), /*#__PURE__*/React.createElement("div", {
42
+ className: `dropdown-content ${isOpen ? _exports.default.modifierOpen : ''}`
43
+ }, allYLabels.map(item =>
44
+ /*#__PURE__*/
45
+ // eslint-disable-next-line max-len
46
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events
47
+ React.createElement("div", {
48
+ key: item.label,
49
+ className: `dropdown-item ${selectedYLabels.some(label => label.label === item.label) ? _exports.default.modifierActive : ''}`
50
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events
51
+ ,
52
+ onClick: () => toggleYLabel(item)
53
+ }, /*#__PURE__*/React.createElement("span", {
54
+ className: "status-dot",
55
+ style: {
56
+ backgroundColor: item.color
57
+ }
58
+ }), (0, _utils.snakeCaseToTitleCase)(item.label), selectedYLabels.some(label => label.label === item.label) && /*#__PURE__*/React.createElement("span", {
59
+ className: "icon checkmark"
60
+ }, "I")))));
61
+ };
62
+ YLabelsDropDown.propTypes = {
63
+ /**
64
+ * The id of the dropdown component.
65
+ */
66
+ id: _propTypes.default.string,
67
+ /**
68
+ * Additional class names for the dropdown component.
69
+ */
70
+ className: _propTypes.default.string,
71
+ /**
72
+ * Placeholder text for the dropdown button.
73
+ */
74
+ placeholder: _propTypes.default.string,
75
+ /**
76
+ * Array of selected Y labels with their corresponding colors.
77
+ */
78
+ selectedYLabels: _propTypes.default.arrayOf(_propTypes.default.shape({
79
+ label: _propTypes.default.string,
80
+ color: _propTypes.default.string
81
+ })),
82
+ /**
83
+ * Function to set the selected Y labels.
84
+ */
85
+ setSelectedYLabels: _propTypes.default.func,
86
+ /**
87
+ * Array of all Y labels with their corresponding colors.
88
+ */
89
+ allYLabels: _propTypes.default.arrayOf(_propTypes.default.shape({
90
+ label: _propTypes.default.string,
91
+ color: _propTypes.default.string
92
+ }))
93
+ };
94
+ YLabelsDropDown.defaultProps = {
95
+ placeholder: 'Select Item'
96
+ };
97
+ var _default = exports.default = YLabelsDropDown;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "YLabelsDropDown", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _YlabelsDropDown.default;
10
+ }
11
+ });
12
+ var _YlabelsDropDown = _interopRequireDefault(require("./YlabelsDropDown"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,89 @@
1
+ @use "@pareto-engineering/bem";
2
+
3
+ $default-margin: 1rem;
4
+ $default-border: var(--theme-default-input-border);
5
+ $default-border-radius: var(--theme-default-input-border-radius);
6
+ $default-padding: 1rem;
7
+ $default-width: 15rem;
8
+ $default-box-shadow: 0 .25rem .75rem var(--ui-lines);
9
+ $default-dot-width: .5rem;
10
+ $default-dot-height: .5rem;
11
+ $default-checkmark-font-size: calc(var(--s-1) * .75rem);
12
+
13
+ .#{bem.$base} {
14
+ &.y-labels-dropdown {
15
+ display: inline-block;
16
+ position: relative;
17
+
18
+ .dropdown-button {
19
+ align-items: center;
20
+ background-color: var(--background-far);
21
+ border: $default-border;
22
+ border-radius: calc($default-border-radius / 2);
23
+ color: var(--hard-paragraph);
24
+ cursor: pointer;
25
+ display: flex;
26
+ justify-content: space-between;
27
+ padding: calc($default-padding * .5);
28
+ text-align: left;
29
+ width: $default-width;
30
+
31
+ .icon {
32
+ color: var(--hard-ui-icons);
33
+ font-size: calc($default-checkmark-font-size * 1.25);
34
+
35
+ &.#{bem.$modifier-open} {
36
+ transform: rotate(180deg);
37
+ }
38
+ }
39
+ }
40
+
41
+ .dropdown-content {
42
+ background-color: var(--background-far);
43
+ border-radius: $default-border-radius;
44
+ box-shadow: $default-box-shadow;
45
+ display: none;
46
+ margin-top: calc($default-margin * .125);
47
+ position: absolute;
48
+ width: $default-width;
49
+ z-index: 1;
50
+
51
+ &.#{bem.$modifier-open} {
52
+ display: block;
53
+ }
54
+
55
+ .dropdown-item {
56
+ align-items: center;
57
+ border-radius: calc($default-border-radius / 2);
58
+ color: var(--paragraph);
59
+ cursor: pointer;
60
+ display: flex;
61
+ margin: calc($default-margin * .125);
62
+ padding: calc($default-padding * .5);
63
+ text-decoration: none;
64
+
65
+ &.#{bem.$modifier-active} {
66
+ background-color: var(--background-near);
67
+ }
68
+
69
+ &:hover {
70
+ background-color: var(--background-near);
71
+ }
72
+
73
+ .status-dot {
74
+ border-radius: 50%;
75
+ display: inline-block;
76
+ height: $default-dot-height;
77
+ margin-right: calc($default-margin * .5);
78
+ width: $default-dot-width;
79
+ }
80
+
81
+ .checkmark {
82
+ color: var(--hard-main);
83
+ font-size: $default-checkmark-font-size;
84
+ margin-left: auto;
85
+ }
86
+ }
87
+ }
88
+ }
89
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "CustomLegend", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _CustomLegend.CustomLegend;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "CustomTooltipContent", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _CustomTooltipContent.CustomTooltipContent;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "YLabelsDropDown", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _YLabelsDropDown.YLabelsDropDown;
22
+ }
23
+ });
24
+ var _CustomLegend = require("./CustomLegend");
25
+ var _CustomTooltipContent = require("./CustomTooltipContent");
26
+ var _YLabelsDropDown = require("./YLabelsDropDown");
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _recharts = require("recharts");
10
+ var _exports = _interopRequireDefault(require("@pareto-engineering/bem/exports"));
11
+ var _Common = require("../Common");
12
+ require("./styles.scss");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ const baseClassName = _exports.default.base;
17
+ const componentClassName = 'pie-chart';
18
+ const PieChart = _ref => {
19
+ let {
20
+ id,
21
+ className: userClassName,
22
+ data,
23
+ title,
24
+ valueKey,
25
+ labelKey,
26
+ colors,
27
+ height,
28
+ width,
29
+ innerRadius,
30
+ outerRadius
31
+ } = _ref;
32
+ const total = data.reduce((sum, item) => sum + item[valueKey], 0);
33
+ const formattedData = data.map(item => ({
34
+ ...item,
35
+ label: item[labelKey],
36
+ color: colors[data.indexOf(item)],
37
+ percentage: (item[valueKey] / total * 100).toFixed(0)
38
+ }));
39
+ return /*#__PURE__*/React.createElement("div", {
40
+ id: id,
41
+ className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' ')
42
+ }, /*#__PURE__*/React.createElement("div", {
43
+ className: "chart-header"
44
+ }, /*#__PURE__*/React.createElement("h3", null, title)), /*#__PURE__*/React.createElement("div", {
45
+ className: "chart-content"
46
+ }, /*#__PURE__*/React.createElement(_recharts.ResponsiveContainer, {
47
+ width: width,
48
+ height: height
49
+ }, /*#__PURE__*/React.createElement(_recharts.PieChart, null, /*#__PURE__*/React.createElement(_recharts.Pie, {
50
+ data: formattedData,
51
+ dataKey: valueKey,
52
+ nameKey: labelKey,
53
+ cx: "50%",
54
+ cy: "50%",
55
+ innerRadius: innerRadius,
56
+ outerRadius: outerRadius,
57
+ label: false,
58
+ paddingAngle: 0
59
+ }, formattedData.map((entry, index) => /*#__PURE__*/React.createElement(_recharts.Cell, {
60
+ key: entry[labelKey],
61
+ fill: colors[index],
62
+ strokeWidth: 0
63
+ }))), /*#__PURE__*/React.createElement(_recharts.Tooltip, {
64
+ content: /*#__PURE__*/React.createElement(_Common.CustomTooltipContent, {
65
+ isDateValue: false
66
+ })
67
+ }))), /*#__PURE__*/React.createElement(_Common.CustomLegend, {
68
+ colorsArray: colors,
69
+ yKeysArray: formattedData,
70
+ capitalizedLegend: true,
71
+ orientation: "vertical",
72
+ getLegendItemTitle: entry => entry[labelKey],
73
+ getLegendItemSubtitle: entry => entry[valueKey]
74
+ })));
75
+ };
76
+ PieChart.propTypes = {
77
+ id: _propTypes.default.string,
78
+ className: _propTypes.default.string,
79
+ data: _propTypes.default.arrayOf(_propTypes.default.shape({
80
+ [_propTypes.default.string]: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])
81
+ })).isRequired,
82
+ title: _propTypes.default.string.isRequired,
83
+ valueKey: _propTypes.default.string.isRequired,
84
+ labelKey: _propTypes.default.string.isRequired,
85
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
86
+ height: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
87
+ width: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
88
+ innerRadius: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
89
+ outerRadius: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])
90
+ };
91
+ PieChart.defaultProps = {
92
+ id: undefined,
93
+ className: undefined,
94
+ width: '100%',
95
+ height: 300,
96
+ innerRadius: '0%',
97
+ outerRadius: '100%'
98
+ };
99
+ var _default = exports.default = PieChart;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "PieChart", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _PieChart.default;
10
+ }
11
+ });
12
+ var _PieChart = _interopRequireDefault(require("./PieChart"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,48 @@
1
+ @use "@pareto-engineering/bem";
2
+
3
+ $default-margin: 1rem;
4
+ $default-padding: 1rem;
5
+ $default-box-shadow: 0 .25rem .75rem var(--ui-lines);
6
+ $default-text-font-size: calc(var(--s-1) * 1rem);
7
+
8
+ .#{bem.$base} {
9
+ &.pie-chart {
10
+ background-color: var(--background-far);
11
+ border-radius: var(--theme-default-border-radius);
12
+ box-shadow: $default-box-shadow;
13
+ margin: $default-margin 0;
14
+ padding: $default-padding;
15
+
16
+ .chart-header {
17
+ align-items: center;
18
+ display: flex;
19
+ justify-content: space-between;
20
+ margin-bottom: $default-margin;
21
+
22
+ h3 {
23
+ color: var(--subtitle);
24
+ margin: calc($default-margin / 5);
25
+ text-align: left;
26
+ }
27
+ }
28
+
29
+ .chart-content {
30
+ align-items: flex-start;
31
+ display: flex;
32
+ }
33
+
34
+ .recharts-wrapper {
35
+ .recharts-surface {
36
+ .recharts-text {
37
+ fill: var(--soft-paragraph);
38
+ font-size: calc($default-text-font-size * .75);
39
+ }
40
+
41
+ .recharts-text.recharts-label {
42
+ fill: var(--paragraph);
43
+ font-size: $default-text-font-size;
44
+ }
45
+ }
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "AreaChart", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _AreaChart.AreaChart;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "BarChart", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _BarChart.BarChart;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "PieChart", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _PieChart.PieChart;
22
+ }
23
+ });
24
+ var _AreaChart = require("./AreaChart");
25
+ var _BarChart = require("./BarChart");
26
+ var _PieChart = require("./PieChart");
@@ -14,6 +14,7 @@ $default-width: var(--tooltip-width, 20rem);
14
14
  background: var(--x);
15
15
  border: var(--theme-default-border-style) var(--ui-lines);
16
16
  border-radius: calc(var(--theme-default-border-radius) / 2);
17
+ min-width: $default-width;
17
18
  opacity: 0;
18
19
  overflow: hidden;
19
20
  padding: $default-block-padding $default-inline-padding;
@@ -21,7 +22,6 @@ $default-width: var(--tooltip-width, 20rem);
21
22
  transform: translateX(var(--horizontal, 0)) translateY(var(--vertical, 0));
22
23
  transition: opacity .2s ease, transform .2s ease;
23
24
  visibility: hidden;
24
- width: $default-width;
25
25
  z-index: 10;
26
26
 
27
27
  &.top {
@@ -30,7 +30,13 @@ Object.defineProperty(exports, "AppContextProvider", {
30
30
  Object.defineProperty(exports, "AreaChart", {
31
31
  enumerable: true,
32
32
  get: function () {
33
- return _AreaChart.AreaChart;
33
+ return _Charts.AreaChart;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "BarChart", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _Charts.BarChart;
34
40
  }
35
41
  });
36
42
  Object.defineProperty(exports, "BlurOverlay", {
@@ -117,6 +123,12 @@ Object.defineProperty(exports, "People", {
117
123
  return _People.People;
118
124
  }
119
125
  });
126
+ Object.defineProperty(exports, "PieChart", {
127
+ enumerable: true,
128
+ get: function () {
129
+ return _Charts.PieChart;
130
+ }
131
+ });
120
132
  Object.defineProperty(exports, "Popover", {
121
133
  enumerable: true,
122
134
  get: function () {
@@ -237,4 +249,4 @@ var _ToggleSwitch = require("./ToggleSwitch");
237
249
  var _XMLEditor = require("./XMLEditor");
238
250
  var _DatePicker = require("./DatePicker");
239
251
  var _Tooltip = require("./Tooltip");
240
- var _AreaChart = require("./AreaChart");
252
+ var _Charts = require("./Charts");
@@ -103,6 +103,12 @@ const FormInput = _ref => {
103
103
  disabled: disabled
104
104
  }, otherProps));
105
105
  }
106
+ if (type === 'latex-preview-input') {
107
+ return /*#__PURE__*/React.createElement(_fields.LatexPreviewInput, _extends({
108
+ className: newClassName,
109
+ disabled: disabled
110
+ }, otherProps));
111
+ }
106
112
  if (extraTypes?.[type]) {
107
113
  const Component = extraTypes[type];
108
114
  return /*#__PURE__*/React.createElement(Component, _extends({
@@ -20,6 +20,13 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
20
20
 
21
21
  const baseClassName = _exports.default.base;
22
22
  const componentClassName = 'file-upload';
23
+ const generateUniqueFileName = (originalName, existingFileNames) => {
24
+ const lastDotIndex = originalName.lastIndexOf('.');
25
+ const name = originalName.substring(0, lastDotIndex);
26
+ const ext = originalName.split('.').pop();
27
+ const numDuplicates = existingFileNames.filter(existingFileName => existingFileName?.startsWith(name)).length;
28
+ return numDuplicates > 0 ? `${name} (${numDuplicates}).${ext}` : originalName;
29
+ };
23
30
 
24
31
  /**
25
32
  * This is the component description.
@@ -62,17 +69,24 @@ const FileUpload = _ref => {
62
69
  } = helpers;
63
70
  const handleChange = event => {
64
71
  setTouched(true, false);
65
- const newFiles = Array.from(event.currentTarget.files);
72
+ let newFiles = Array.from(event.currentTarget.files);
66
73
  const currentFiles = value || [];
67
74
  const currentCount = currentFiles.length + newFiles.length;
68
75
  if (maxCount && currentCount > maxCount) {
69
76
  setError(maxCountError || `Maximum of ${maxCount} files allowed`);
70
77
  return;
71
78
  }
72
- const duplicateFiles = newFiles.filter(newFile => currentFiles.some(currentFile => currentFile.name === newFile.name));
79
+ const uploadedFiles = Object.keys(uploadStatus) || [];
80
+ const duplicateFiles = newFiles.filter(newFile => uploadedFiles.some(uploadedFile => uploadedFile === newFile.name));
73
81
  if (duplicateFiles.length > 0) {
74
- setError('You cannot upload the same file twice.');
75
- return;
82
+ newFiles = newFiles.map(file => {
83
+ if (duplicateFiles.some(duplicateFile => duplicateFile.name === file.name)) {
84
+ return new File([file], generateUniqueFileName(file.name, uploadedFiles), {
85
+ type: file.type
86
+ });
87
+ }
88
+ return file;
89
+ });
76
90
  }
77
91
  if (maxSize) {
78
92
  const oversizedFiles = newFiles.filter(file => file.size > maxSize);