@bigbinary/neeto-molecules 5.1.9 → 5.1.10
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/dist/cjs/v2/ConfirmationModal.js +125 -0
- package/dist/cjs/v2/ConfirmationModal.js.map +1 -0
- package/dist/cjs/v2/DateRangeFilter.js +187 -0
- package/dist/cjs/v2/DateRangeFilter.js.map +1 -0
- package/dist/cjs/v2/ToggleFeatureCard.js +201 -0
- package/dist/cjs/v2/ToggleFeatureCard.js.map +1 -0
- package/dist/v2/ConfirmationModal.js +104 -0
- package/dist/v2/ConfirmationModal.js.map +1 -0
- package/dist/v2/DateRangeFilter.js +185 -0
- package/dist/v2/DateRangeFilter.js.map +1 -0
- package/dist/v2/ToggleFeatureCard.js +199 -0
- package/dist/v2/ToggleFeatureCard.js.map +1 -0
- package/package.json +3 -3
- package/types/v2/ConfirmationModal.d.ts +15 -0
- package/types/v2/DateRangeFilter.d.ts +15 -0
- package/types/v2/ToggleFeatureCard.d.ts +45 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { Dialog, Typography } from '@bigbinary/neeto-atoms';
|
|
2
|
+
import { Form, Input, ActionBlock } from '@bigbinary/neeto-atoms/formik';
|
|
3
|
+
import { type } from 'ramda';
|
|
4
|
+
import { useTranslation, Trans } from 'react-i18next';
|
|
5
|
+
import * as yup from 'yup';
|
|
6
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
var INITIAL_VALUES = {
|
|
9
|
+
confirmationText: ""
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
var deletionValidationSchema = function deletionValidationSchema(confirmationText) {
|
|
13
|
+
return yup.object({
|
|
14
|
+
confirmationText: yup.string().required("").oneOf([confirmationText], "")
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
var ConfirmationModal = function ConfirmationModal(_ref) {
|
|
19
|
+
var buttonLabel = _ref.buttonLabel,
|
|
20
|
+
confirmationText = _ref.confirmationText,
|
|
21
|
+
_ref$description = _ref.description,
|
|
22
|
+
description = _ref$description === void 0 ? "" : _ref$description,
|
|
23
|
+
_ref$isOpen = _ref.isOpen,
|
|
24
|
+
isOpen = _ref$isOpen === void 0 ? true : _ref$isOpen,
|
|
25
|
+
_ref$isSubmitting = _ref.isSubmitting,
|
|
26
|
+
isSubmitting = _ref$isSubmitting === void 0 ? false : _ref$isSubmitting,
|
|
27
|
+
_ref$title = _ref.title,
|
|
28
|
+
title = _ref$title === void 0 ? "" : _ref$title,
|
|
29
|
+
onClose = _ref.onClose,
|
|
30
|
+
onSubmit = _ref.onSubmit,
|
|
31
|
+
deleteConfirmationMessage = _ref.deleteConfirmationMessage;
|
|
32
|
+
var _useTranslation = useTranslation(),
|
|
33
|
+
t = _useTranslation.t;
|
|
34
|
+
var formikProps = {
|
|
35
|
+
initialValues: INITIAL_VALUES,
|
|
36
|
+
validationSchema: deletionValidationSchema(confirmationText),
|
|
37
|
+
onSubmit: onSubmit
|
|
38
|
+
};
|
|
39
|
+
var deleteInputLabel = deleteConfirmationMessage || /*#__PURE__*/jsx(Trans, {
|
|
40
|
+
components: {
|
|
41
|
+
strong: /*#__PURE__*/jsx("strong", {})
|
|
42
|
+
},
|
|
43
|
+
i18nKey: "neetoMolecules.confirmationModal.deleteConfirmationMessage",
|
|
44
|
+
values: {
|
|
45
|
+
value: confirmationText
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
return /*#__PURE__*/jsxs(Dialog, {
|
|
49
|
+
isOpen: isOpen,
|
|
50
|
+
onClose: onClose,
|
|
51
|
+
"aria-describedby": undefined,
|
|
52
|
+
"data-testid": "confirmation-modal",
|
|
53
|
+
children: [/*#__PURE__*/jsx(Dialog.Header, {
|
|
54
|
+
children: /*#__PURE__*/jsx(Dialog.Title, {
|
|
55
|
+
"data-testid": "confirmation-modal-title",
|
|
56
|
+
children: title
|
|
57
|
+
})
|
|
58
|
+
}), /*#__PURE__*/jsx(Form, {
|
|
59
|
+
formikProps: formikProps,
|
|
60
|
+
children: function children(_ref2) {
|
|
61
|
+
var values = _ref2.values;
|
|
62
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
63
|
+
children: [/*#__PURE__*/jsxs(Dialog.Body, {
|
|
64
|
+
className: "flex flex-col gap-y-4",
|
|
65
|
+
children: [type(description) === "String" ? /*#__PURE__*/jsx(Typography, {
|
|
66
|
+
variant: "body2",
|
|
67
|
+
children: description
|
|
68
|
+
}) : description, /*#__PURE__*/jsx(Input, {
|
|
69
|
+
autoFocus: true,
|
|
70
|
+
"data-testid": "confirmation-modal-input",
|
|
71
|
+
label: deleteInputLabel,
|
|
72
|
+
labelProps: {
|
|
73
|
+
className: "block"
|
|
74
|
+
},
|
|
75
|
+
name: "confirmationText",
|
|
76
|
+
type: "text"
|
|
77
|
+
})]
|
|
78
|
+
}), /*#__PURE__*/jsx(Dialog.Footer, {
|
|
79
|
+
children: /*#__PURE__*/jsx(ActionBlock, {
|
|
80
|
+
className: "flex items-center gap-x-2",
|
|
81
|
+
cancelButtonProps: {
|
|
82
|
+
label: t("neetoMolecules.common.actions.cancel"),
|
|
83
|
+
variant: "ghost",
|
|
84
|
+
onClick: onClose,
|
|
85
|
+
disabled: false,
|
|
86
|
+
type: "button"
|
|
87
|
+
},
|
|
88
|
+
submitButtonProps: {
|
|
89
|
+
"data-testid": "delete-continue-button",
|
|
90
|
+
label: buttonLabel,
|
|
91
|
+
loading: isSubmitting,
|
|
92
|
+
variant: "destructive",
|
|
93
|
+
disabled: isSubmitting || confirmationText !== values.confirmationText
|
|
94
|
+
}
|
|
95
|
+
})
|
|
96
|
+
})]
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
})]
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
export { ConfirmationModal as default };
|
|
104
|
+
//# sourceMappingURL=ConfirmationModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfirmationModal.js","sources":["../../src/v2/components/ConfirmationModal/constants.js","../../src/v2/components/ConfirmationModal/utils.js","../../src/v2/components/ConfirmationModal/index.jsx"],"sourcesContent":["export const INITIAL_VALUES = { confirmationText: \"\" };\n","import * as yup from \"yup\";\n\nexport const deletionValidationSchema = confirmationText =>\n yup.object({\n confirmationText: yup.string().required(\"\").oneOf([confirmationText], \"\"),\n });\n","import { Dialog, Typography } from \"@bigbinary/neeto-atoms\";\nimport { ActionBlock, Form, Input } from \"@bigbinary/neeto-atoms/formik\";\nimport PropTypes from \"prop-types\";\nimport { type } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { INITIAL_VALUES } from \"./constants\";\nimport { deletionValidationSchema } from \"./utils\";\n\nconst ConfirmationModal = ({\n buttonLabel,\n confirmationText,\n description = \"\",\n isOpen = true,\n isSubmitting = false,\n title = \"\",\n onClose,\n onSubmit,\n deleteConfirmationMessage,\n}) => {\n const { t } = useTranslation();\n\n const formikProps = {\n initialValues: INITIAL_VALUES,\n validationSchema: deletionValidationSchema(confirmationText),\n onSubmit,\n };\n\n const deleteInputLabel = deleteConfirmationMessage || (\n <Trans\n components={{ strong: <strong /> }}\n i18nKey=\"neetoMolecules.confirmationModal.deleteConfirmationMessage\"\n values={{ value: confirmationText }}\n />\n );\n\n return (\n <Dialog\n {...{ isOpen, onClose }}\n aria-describedby={undefined}\n data-testid=\"confirmation-modal\"\n >\n <Dialog.Header>\n <Dialog.Title data-testid=\"confirmation-modal-title\">\n {title}\n </Dialog.Title>\n </Dialog.Header>\n <Form {...{ formikProps }}>\n {({ values }) => (\n <>\n <Dialog.Body className=\"flex flex-col gap-y-4\">\n {type(description) === \"String\" ? (\n <Typography variant=\"body2\">{description}</Typography>\n ) : (\n description\n )}\n <Input\n autoFocus\n data-testid=\"confirmation-modal-input\"\n label={deleteInputLabel}\n labelProps={{ className: \"block\" }}\n name=\"confirmationText\"\n type=\"text\"\n />\n </Dialog.Body>\n <Dialog.Footer>\n <ActionBlock\n className=\"flex items-center gap-x-2\"\n cancelButtonProps={{\n label: t(\"neetoMolecules.common.actions.cancel\"),\n variant: \"ghost\",\n onClick: onClose,\n disabled: false,\n type: \"button\",\n }}\n submitButtonProps={{\n \"data-testid\": \"delete-continue-button\",\n label: buttonLabel,\n loading: isSubmitting,\n variant: \"destructive\",\n disabled:\n isSubmitting ||\n confirmationText !== values.confirmationText,\n }}\n />\n </Dialog.Footer>\n </>\n )}\n </Form>\n </Dialog>\n );\n};\n\nConfirmationModal.propTypes = {\n /**\n * Label of the action button in the Modal\n */\n buttonLabel: PropTypes.string,\n /**\n * Text that is expected to be entered by the user\n */\n confirmationText: PropTypes.string,\n /**\n * Modal description\n */\n description: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.string,\n ]),\n /**\n * To be passed to loading prop of the action button\n */\n isSubmitting: PropTypes.bool,\n /**\n * To specify whether the modal should be opened or closed.\n */\n isOpen: PropTypes.bool,\n /**\n * Title of the modal\n */\n title: PropTypes.string,\n /**\n * Handler function that is invoked when the close button is clicked\n */\n onClose: PropTypes.func,\n /**\n * Handler function that is invoked when the action button is clicked\n */\n onSubmit: PropTypes.func,\n /**\n * Message that will be shown as the label of the confirmation input field.\n */\n deleteConfirmationMessage: PropTypes.string,\n};\n\nexport default ConfirmationModal;\n"],"names":["INITIAL_VALUES","confirmationText","deletionValidationSchema","yup","object","string","required","oneOf","ConfirmationModal","_ref","buttonLabel","_ref$description","description","_ref$isOpen","isOpen","_ref$isSubmitting","isSubmitting","_ref$title","title","onClose","onSubmit","deleteConfirmationMessage","_useTranslation","useTranslation","t","formikProps","initialValues","validationSchema","deleteInputLabel","_jsx","Trans","components","strong","i18nKey","values","value","_jsxs","Dialog","undefined","children","Header","Title","Form","_ref2","_Fragment","Body","className","type","Typography","variant","Input","autoFocus","label","labelProps","name","Footer","ActionBlock","cancelButtonProps","onClick","disabled","submitButtonProps","loading"],"mappings":"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"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
|
+
import { Select, DatePicker } from '@bigbinary/neeto-atoms';
|
|
4
|
+
import { globalProps } from '@bigbinary/neeto-commons-frontend/v2/initializers';
|
|
5
|
+
import { dayjs } from '@bigbinary/neeto-commons-frontend/v2/utils';
|
|
6
|
+
import { t } from 'i18next';
|
|
7
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
8
|
+
|
|
9
|
+
var defaultTimePeriodOptions = function defaultTimePeriodOptions() {
|
|
10
|
+
var today = dayjs().startOf("day");
|
|
11
|
+
var startOfLastWeek = today.subtract(7, "day").startOf("week");
|
|
12
|
+
var endOfLastWeek = today.subtract(7, "day").endOf("week");
|
|
13
|
+
var lastMonthStart = today.subtract(1, "month").startOf("month");
|
|
14
|
+
var lastMonthEnd = today.subtract(1, "month").endOf("month");
|
|
15
|
+
var thisQuarterStart = dayjs().startOf("quarter");
|
|
16
|
+
var thisQuarterEnd = dayjs().endOf("quarter");
|
|
17
|
+
var lastQuarterStart = dayjs().subtract(1, "quarter").startOf("quarter");
|
|
18
|
+
var lastQuarterEnd = dayjs().subtract(1, "quarter").endOf("quarter");
|
|
19
|
+
var startOfLastYear = dayjs().subtract(1, "year").startOf("year");
|
|
20
|
+
var endOfLastYear = dayjs().subtract(1, "year").endOf("year");
|
|
21
|
+
var startOfYear = dayjs().startOf("year");
|
|
22
|
+
var endOfYear = dayjs().endOf("year");
|
|
23
|
+
var startOf24Hours = dayjs().subtract(24, "hour");
|
|
24
|
+
var now = dayjs();
|
|
25
|
+
var startOfLast7Days = dayjs().subtract(7, "day");
|
|
26
|
+
var startOfWeek = dayjs().startOf("week");
|
|
27
|
+
var startOfLast30Days = dayjs().subtract(30, "day");
|
|
28
|
+
var startOfMonth = today.startOf("month");
|
|
29
|
+
return [{
|
|
30
|
+
label: t("neetoMolecules.dateRangeFilter.timePeriodOptions.allTime"),
|
|
31
|
+
value: {
|
|
32
|
+
startDate: null,
|
|
33
|
+
endDate: null,
|
|
34
|
+
rangeType: "all"
|
|
35
|
+
}
|
|
36
|
+
}, {
|
|
37
|
+
label: t("neetoMolecules.dateRangeFilter.timePeriodOptions.last24Hours"),
|
|
38
|
+
value: {
|
|
39
|
+
startDate: startOf24Hours,
|
|
40
|
+
endDate: now,
|
|
41
|
+
rangeType: "hours"
|
|
42
|
+
}
|
|
43
|
+
}, {
|
|
44
|
+
label: t("neetoMolecules.dateRangeFilter.timePeriodOptions.last7Days"),
|
|
45
|
+
value: {
|
|
46
|
+
startDate: startOfLast7Days,
|
|
47
|
+
endDate: now,
|
|
48
|
+
rangeType: "days"
|
|
49
|
+
}
|
|
50
|
+
}, {
|
|
51
|
+
label: t("neetoMolecules.dateRangeFilter.timePeriodOptions.thisWeek"),
|
|
52
|
+
value: {
|
|
53
|
+
startDate: startOfWeek,
|
|
54
|
+
endDate: now,
|
|
55
|
+
rangeType: "week"
|
|
56
|
+
}
|
|
57
|
+
}, {
|
|
58
|
+
label: t("neetoMolecules.dateRangeFilter.timePeriodOptions.lastWeek"),
|
|
59
|
+
value: {
|
|
60
|
+
startDate: startOfLastWeek,
|
|
61
|
+
endDate: endOfLastWeek,
|
|
62
|
+
rangeType: "week"
|
|
63
|
+
}
|
|
64
|
+
}, {
|
|
65
|
+
label: t("neetoMolecules.dateRangeFilter.timePeriodOptions.last30Days"),
|
|
66
|
+
value: {
|
|
67
|
+
startDate: startOfLast30Days,
|
|
68
|
+
endDate: now,
|
|
69
|
+
rangeType: "days"
|
|
70
|
+
}
|
|
71
|
+
}, {
|
|
72
|
+
label: t("neetoMolecules.dateRangeFilter.timePeriodOptions.thisMonth"),
|
|
73
|
+
value: {
|
|
74
|
+
startDate: startOfMonth,
|
|
75
|
+
endDate: now,
|
|
76
|
+
rangeType: "month"
|
|
77
|
+
}
|
|
78
|
+
}, {
|
|
79
|
+
label: t("neetoMolecules.dateRangeFilter.timePeriodOptions.lastMonth"),
|
|
80
|
+
value: {
|
|
81
|
+
startDate: lastMonthStart,
|
|
82
|
+
endDate: lastMonthEnd,
|
|
83
|
+
rangeType: "month"
|
|
84
|
+
}
|
|
85
|
+
}, {
|
|
86
|
+
label: t("neetoMolecules.dateRangeFilter.timePeriodOptions.thisQuarter"),
|
|
87
|
+
value: {
|
|
88
|
+
startDate: thisQuarterStart,
|
|
89
|
+
endDate: thisQuarterEnd,
|
|
90
|
+
rangeType: "quarter"
|
|
91
|
+
}
|
|
92
|
+
}, {
|
|
93
|
+
label: t("neetoMolecules.dateRangeFilter.timePeriodOptions.lastQuarter"),
|
|
94
|
+
value: {
|
|
95
|
+
startDate: lastQuarterStart,
|
|
96
|
+
endDate: lastQuarterEnd,
|
|
97
|
+
rangeType: "quarter"
|
|
98
|
+
}
|
|
99
|
+
}, {
|
|
100
|
+
label: t("neetoMolecules.dateRangeFilter.timePeriodOptions.thisYear"),
|
|
101
|
+
value: {
|
|
102
|
+
startDate: startOfYear,
|
|
103
|
+
endDate: endOfYear,
|
|
104
|
+
rangeType: "year"
|
|
105
|
+
}
|
|
106
|
+
}, {
|
|
107
|
+
label: t("neetoMolecules.dateRangeFilter.timePeriodOptions.lastYear"),
|
|
108
|
+
value: {
|
|
109
|
+
startDate: startOfLastYear,
|
|
110
|
+
endDate: endOfLastYear,
|
|
111
|
+
rangeType: "year"
|
|
112
|
+
}
|
|
113
|
+
}, {
|
|
114
|
+
label: t("neetoMolecules.dateRangeFilter.timePeriodOptions.customDuration"),
|
|
115
|
+
value: "custom"
|
|
116
|
+
}];
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
120
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
121
|
+
var DateRangeFilter = function DateRangeFilter(_ref) {
|
|
122
|
+
var _timePeriod$value, _timePeriod$value2, _timePeriod$value3, _globalProps$user, _ref6;
|
|
123
|
+
var timePeriodOptions = _ref.timePeriodOptions,
|
|
124
|
+
timePeriod = _ref.timePeriod,
|
|
125
|
+
setTimePeriod = _ref.setTimePeriod,
|
|
126
|
+
datePickerProps = _ref.datePickerProps;
|
|
127
|
+
var isCustom = (timePeriod === null || timePeriod === void 0 ? void 0 : timePeriod.value) === "custom" || (timePeriod === null || timePeriod === void 0 || (_timePeriod$value = timePeriod.value) === null || _timePeriod$value === void 0 ? void 0 : _timePeriod$value.rangeType) === "custom";
|
|
128
|
+
var startDate = timePeriod === null || timePeriod === void 0 || (_timePeriod$value2 = timePeriod.value) === null || _timePeriod$value2 === void 0 ? void 0 : _timePeriod$value2.startDate;
|
|
129
|
+
var endDate = timePeriod === null || timePeriod === void 0 || (_timePeriod$value3 = timePeriod.value) === null || _timePeriod$value3 === void 0 ? void 0 : _timePeriod$value3.endDate;
|
|
130
|
+
var requiredDateFormat = globalProps === null || globalProps === void 0 || (_globalProps$user = globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.dateFormat;
|
|
131
|
+
var options = timePeriodOptions || defaultTimePeriodOptions();
|
|
132
|
+
var selectOptions = options.map(function (_ref2) {
|
|
133
|
+
var label = _ref2.label;
|
|
134
|
+
return {
|
|
135
|
+
label: label,
|
|
136
|
+
value: label
|
|
137
|
+
};
|
|
138
|
+
});
|
|
139
|
+
var handleChange = function handleChange(selectedLabel) {
|
|
140
|
+
return setTimePeriod(options.find(function (_ref3) {
|
|
141
|
+
var label = _ref3.label;
|
|
142
|
+
return label === selectedLabel;
|
|
143
|
+
}));
|
|
144
|
+
};
|
|
145
|
+
var handleDateRangeChange = function handleDateRangeChange(dateRange) {
|
|
146
|
+
var _ref4 = dateRange !== null && dateRange !== void 0 ? dateRange : [],
|
|
147
|
+
_ref5 = _slicedToArray(_ref4, 2),
|
|
148
|
+
newStartDate = _ref5[0],
|
|
149
|
+
newEndDate = _ref5[1];
|
|
150
|
+
setTimePeriod({
|
|
151
|
+
label: timePeriod === null || timePeriod === void 0 ? void 0 : timePeriod.label,
|
|
152
|
+
value: {
|
|
153
|
+
startDate: newStartDate,
|
|
154
|
+
endDate: newEndDate,
|
|
155
|
+
rangeType: "custom"
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
};
|
|
159
|
+
return /*#__PURE__*/jsxs("div", {
|
|
160
|
+
className: "neeto-molecules-date-range-filter flex flex-wrap gap-3",
|
|
161
|
+
"data-testid": "date-range-filter",
|
|
162
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
163
|
+
className: "neeto-molecules-date-range-filter__select w-40",
|
|
164
|
+
children: /*#__PURE__*/jsx(Select, {
|
|
165
|
+
required: true,
|
|
166
|
+
options: selectOptions,
|
|
167
|
+
value: (_ref6 = timePeriod || options[0]) === null || _ref6 === void 0 ? void 0 : _ref6.label,
|
|
168
|
+
onChange: handleChange
|
|
169
|
+
})
|
|
170
|
+
}), isCustom && /*#__PURE__*/jsx("div", {
|
|
171
|
+
className: "neeto-molecules-date-range-filter__custom-duration-picker max-w-sm flex-grow",
|
|
172
|
+
"data-testid": "date-range-filter-custom-duration-picker",
|
|
173
|
+
children: /*#__PURE__*/jsx(DatePicker, _objectSpread({
|
|
174
|
+
className: "w-full",
|
|
175
|
+
dateFormat: requiredDateFormat,
|
|
176
|
+
type: "range",
|
|
177
|
+
value: [startDate ? dayjs(startDate) : null, endDate ? dayjs(endDate) : null],
|
|
178
|
+
onChange: handleDateRangeChange
|
|
179
|
+
}, datePickerProps))
|
|
180
|
+
})]
|
|
181
|
+
});
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
export { DateRangeFilter as default };
|
|
185
|
+
//# sourceMappingURL=DateRangeFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateRangeFilter.js","sources":["../../src/v2/components/DateRangeFilter/utils.js","../../src/v2/components/DateRangeFilter/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { dayjs } from \"neetocommons/v2/utils\";\n\nexport const defaultTimePeriodOptions = () => {\n const today = dayjs().startOf(\"day\");\n const startOfLastWeek = today.subtract(7, \"day\").startOf(\"week\");\n\n const endOfLastWeek = today.subtract(7, \"day\").endOf(\"week\");\n const lastMonthStart = today.subtract(1, \"month\").startOf(\"month\");\n const lastMonthEnd = today.subtract(1, \"month\").endOf(\"month\");\n const thisQuarterStart = dayjs().startOf(\"quarter\");\n const thisQuarterEnd = dayjs().endOf(\"quarter\");\n const lastQuarterStart = dayjs().subtract(1, \"quarter\").startOf(\"quarter\");\n const lastQuarterEnd = dayjs().subtract(1, \"quarter\").endOf(\"quarter\");\n const startOfLastYear = dayjs().subtract(1, \"year\").startOf(\"year\");\n const endOfLastYear = dayjs().subtract(1, \"year\").endOf(\"year\");\n const startOfYear = dayjs().startOf(\"year\");\n const endOfYear = dayjs().endOf(\"year\");\n\n const startOf24Hours = dayjs().subtract(24, \"hour\");\n const now = dayjs();\n const startOfLast7Days = dayjs().subtract(7, \"day\");\n const startOfWeek = dayjs().startOf(\"week\");\n const startOfLast30Days = dayjs().subtract(30, \"day\");\n const startOfMonth = today.startOf(\"month\");\n\n return [\n {\n label: t(\"neetoMolecules.dateRangeFilter.timePeriodOptions.allTime\"),\n value: { startDate: null, endDate: null, rangeType: \"all\" },\n },\n {\n label: t(\"neetoMolecules.dateRangeFilter.timePeriodOptions.last24Hours\"),\n value: { startDate: startOf24Hours, endDate: now, rangeType: \"hours\" },\n },\n {\n label: t(\"neetoMolecules.dateRangeFilter.timePeriodOptions.last7Days\"),\n value: {\n startDate: startOfLast7Days,\n endDate: now,\n rangeType: \"days\",\n },\n },\n {\n label: t(\"neetoMolecules.dateRangeFilter.timePeriodOptions.thisWeek\"),\n value: { startDate: startOfWeek, endDate: now, rangeType: \"week\" },\n },\n {\n label: t(\"neetoMolecules.dateRangeFilter.timePeriodOptions.lastWeek\"),\n value: {\n startDate: startOfLastWeek,\n endDate: endOfLastWeek,\n rangeType: \"week\",\n },\n },\n {\n label: t(\"neetoMolecules.dateRangeFilter.timePeriodOptions.last30Days\"),\n value: {\n startDate: startOfLast30Days,\n endDate: now,\n rangeType: \"days\",\n },\n },\n {\n label: t(\"neetoMolecules.dateRangeFilter.timePeriodOptions.thisMonth\"),\n value: { startDate: startOfMonth, endDate: now, rangeType: \"month\" },\n },\n {\n label: t(\"neetoMolecules.dateRangeFilter.timePeriodOptions.lastMonth\"),\n value: {\n startDate: lastMonthStart,\n endDate: lastMonthEnd,\n rangeType: \"month\",\n },\n },\n {\n label: t(\"neetoMolecules.dateRangeFilter.timePeriodOptions.thisQuarter\"),\n value: {\n startDate: thisQuarterStart,\n endDate: thisQuarterEnd,\n rangeType: \"quarter\",\n },\n },\n {\n label: t(\"neetoMolecules.dateRangeFilter.timePeriodOptions.lastQuarter\"),\n value: {\n startDate: lastQuarterStart,\n endDate: lastQuarterEnd,\n rangeType: \"quarter\",\n },\n },\n {\n label: t(\"neetoMolecules.dateRangeFilter.timePeriodOptions.thisYear\"),\n value: { startDate: startOfYear, endDate: endOfYear, rangeType: \"year\" },\n },\n {\n label: t(\"neetoMolecules.dateRangeFilter.timePeriodOptions.lastYear\"),\n value: {\n startDate: startOfLastYear,\n endDate: endOfLastYear,\n rangeType: \"year\",\n },\n },\n {\n label: t(\n \"neetoMolecules.dateRangeFilter.timePeriodOptions.customDuration\"\n ),\n value: \"custom\",\n },\n ];\n};\n","import { DatePicker, Select } from \"@bigbinary/neeto-atoms\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { dayjs } from \"neetocommons/v2/utils\";\nimport PropTypes from \"prop-types\";\n\nimport { defaultTimePeriodOptions } from \"./utils\";\n\nconst DateRangeFilter = ({\n timePeriodOptions,\n timePeriod,\n setTimePeriod,\n datePickerProps,\n}) => {\n const isCustom =\n timePeriod?.value === \"custom\" || timePeriod?.value?.rangeType === \"custom\";\n\n const startDate = timePeriod?.value?.startDate;\n const endDate = timePeriod?.value?.endDate;\n const requiredDateFormat = globalProps?.user?.dateFormat;\n\n const options = timePeriodOptions || defaultTimePeriodOptions();\n\n const selectOptions = options.map(({ label }) => ({ label, value: label }));\n\n const handleChange = selectedLabel =>\n setTimePeriod(options.find(({ label }) => label === selectedLabel));\n\n const handleDateRangeChange = dateRange => {\n const [newStartDate, newEndDate] = dateRange ?? [];\n setTimePeriod({\n label: timePeriod?.label,\n value: {\n startDate: newStartDate,\n endDate: newEndDate,\n rangeType: \"custom\",\n },\n });\n };\n\n return (\n <div\n className=\"neeto-molecules-date-range-filter flex flex-wrap gap-3\"\n data-testid=\"date-range-filter\"\n >\n <div className=\"neeto-molecules-date-range-filter__select w-40\">\n <Select\n required\n options={selectOptions}\n value={(timePeriod || options[0])?.label}\n onChange={handleChange}\n />\n </div>\n {isCustom && (\n <div\n className=\"neeto-molecules-date-range-filter__custom-duration-picker max-w-sm flex-grow\"\n data-testid=\"date-range-filter-custom-duration-picker\"\n >\n <DatePicker\n className=\"w-full\"\n dateFormat={requiredDateFormat}\n type=\"range\"\n value={[\n startDate ? dayjs(startDate) : null,\n endDate ? dayjs(endDate) : null,\n ]}\n onChange={handleDateRangeChange}\n {...datePickerProps}\n />\n </div>\n )}\n </div>\n );\n};\n\nDateRangeFilter.propTypes = {\n /**\n * An array of objects that can be passed to the component which can be used to override default filter options.\n */\n timePeriodOptions: PropTypes.arrayOf(\n PropTypes.shape({ label: PropTypes.string, value: PropTypes.object })\n ),\n /**\n * The state corresponding to the currently selected date range filter.\n */\n timePeriod: PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.object,\n }),\n /**\n * The setter method for `timePeriod` state.\n */\n setTimePeriod: PropTypes.func,\n /**\n * These props will be passed to the date range picker for custom date range selection.\n */\n datePickerProps: PropTypes.object,\n};\n\nexport default DateRangeFilter;\n"],"names":["defaultTimePeriodOptions","today","dayjs","startOf","startOfLastWeek","subtract","endOfLastWeek","endOf","lastMonthStart","lastMonthEnd","thisQuarterStart","thisQuarterEnd","lastQuarterStart","lastQuarterEnd","startOfLastYear","endOfLastYear","startOfYear","endOfYear","startOf24Hours","now","startOfLast7Days","startOfWeek","startOfLast30Days","startOfMonth","label","t","value","startDate","endDate","rangeType","DateRangeFilter","_ref","_timePeriod$value","_timePeriod$value2","_timePeriod$value3","_globalProps$user","_ref6","timePeriodOptions","timePeriod","setTimePeriod","datePickerProps","isCustom","requiredDateFormat","globalProps","user","dateFormat","options","selectOptions","map","_ref2","handleChange","selectedLabel","find","_ref3","handleDateRangeChange","dateRange","_ref4","_ref5","_slicedToArray","newStartDate","newEndDate","_jsxs","className","children","_jsx","Select","required","onChange","DatePicker","_objectSpread","type"],"mappings":"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"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
|
+
import { useEffect, useRef, useState } from 'react';
|
|
4
|
+
import { Tooltip, Label, Typography, Button } from '@bigbinary/neeto-atoms';
|
|
5
|
+
import { Switch, Input } from '@bigbinary/neeto-atoms/formik';
|
|
6
|
+
import classnames from 'classnames';
|
|
7
|
+
import { useFormikContext } from 'formik';
|
|
8
|
+
import { isPresent, slugify } from '@bigbinary/neeto-cist';
|
|
9
|
+
import useOnClickOutside from '@bigbinary/neeto-commons-frontend/v2/react-utils/useOnClickOutside';
|
|
10
|
+
import useHotkeys from '@bigbinary/neeto-hotkeys';
|
|
11
|
+
import { isEmpty } from 'ramda';
|
|
12
|
+
import { useTranslation } from 'react-i18next';
|
|
13
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
14
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
15
|
+
import { X } from '../x-B1Er0oV4.js';
|
|
16
|
+
import '../createLucideIcon-mNMhCCpf.js';
|
|
17
|
+
|
|
18
|
+
var useScrollIntoView = function useScrollIntoView(_ref) {
|
|
19
|
+
var elementId = _ref.elementId,
|
|
20
|
+
trigger = _ref.trigger;
|
|
21
|
+
useEffect(function () {
|
|
22
|
+
var _document$getElementB;
|
|
23
|
+
if (!trigger) return;
|
|
24
|
+
(_document$getElementB = document.getElementById(elementId)) === null || _document$getElementB === void 0 || _document$getElementB.scrollIntoView();
|
|
25
|
+
}, [trigger]);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
var _excluded = ["enabledCondition", "name", "isDisabled", "switchDataTestid", "tooltipProps"],
|
|
29
|
+
_excluded2 = ["enabledSwitchText", "disabledSwitchText"];
|
|
30
|
+
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
31
|
+
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
32
|
+
var TooltipSwitch = function TooltipSwitch(_ref) {
|
|
33
|
+
var enabledCondition = _ref.enabledCondition,
|
|
34
|
+
_ref$name = _ref.name,
|
|
35
|
+
name = _ref$name === void 0 ? "" : _ref$name,
|
|
36
|
+
_ref$isDisabled = _ref.isDisabled,
|
|
37
|
+
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
|
|
38
|
+
switchDataTestid = _ref.switchDataTestid,
|
|
39
|
+
_ref$tooltipProps = _ref.tooltipProps,
|
|
40
|
+
tooltipProps = _ref$tooltipProps === void 0 ? {} : _ref$tooltipProps,
|
|
41
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
42
|
+
var enabledSwitchText = tooltipProps.enabledSwitchText,
|
|
43
|
+
disabledSwitchText = tooltipProps.disabledSwitchText,
|
|
44
|
+
neetoAtomsTooltipProps = _objectWithoutProperties(tooltipProps, _excluded2);
|
|
45
|
+
var tooltipContent = enabledCondition ? enabledSwitchText : disabledSwitchText;
|
|
46
|
+
return /*#__PURE__*/jsx(Tooltip, _objectSpread$1(_objectSpread$1({
|
|
47
|
+
content: tooltipContent,
|
|
48
|
+
disabled: !tooltipContent,
|
|
49
|
+
position: "top"
|
|
50
|
+
}, neetoAtomsTooltipProps), {}, {
|
|
51
|
+
children: /*#__PURE__*/jsx("span", {
|
|
52
|
+
children: /*#__PURE__*/jsx(Switch, _objectSpread$1({
|
|
53
|
+
disabled: isDisabled,
|
|
54
|
+
"data-testid": isPresent(switchDataTestid) ? switchDataTestid : "toggle-feature-card-switch"
|
|
55
|
+
}, _objectSpread$1({
|
|
56
|
+
name: name
|
|
57
|
+
}, otherProps)))
|
|
58
|
+
})
|
|
59
|
+
}));
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
63
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
64
|
+
var ToggleFeatureCard = function ToggleFeatureCard(_ref) {
|
|
65
|
+
var _ref$isCardStyleEnabl = _ref.isCardStyleEnabled,
|
|
66
|
+
isCardStyleEnabled = _ref$isCardStyleEnabl === void 0 ? true : _ref$isCardStyleEnabl,
|
|
67
|
+
_ref$title = _ref.title,
|
|
68
|
+
title = _ref$title === void 0 ? "" : _ref$title,
|
|
69
|
+
_ref$description = _ref.description,
|
|
70
|
+
description = _ref$description === void 0 ? null : _ref$description,
|
|
71
|
+
_ref$switchName = _ref.switchName,
|
|
72
|
+
switchName = _ref$switchName === void 0 ? "switch" : _ref$switchName,
|
|
73
|
+
_ref$titleDataTestid = _ref.titleDataTestid,
|
|
74
|
+
titleDataTestid = _ref$titleDataTestid === void 0 ? "" : _ref$titleDataTestid,
|
|
75
|
+
_ref$switchDataTestid = _ref.switchDataTestid,
|
|
76
|
+
switchDataTestid = _ref$switchDataTestid === void 0 ? "" : _ref$switchDataTestid,
|
|
77
|
+
_ref$descriptionDataT = _ref.descriptionDataTestid,
|
|
78
|
+
descriptionDataTestid = _ref$descriptionDataT === void 0 ? "" : _ref$descriptionDataT,
|
|
79
|
+
_ref$isDisabled = _ref.isDisabled,
|
|
80
|
+
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
|
|
81
|
+
_ref$children = _ref.children,
|
|
82
|
+
children = _ref$children === void 0 ? null : _ref$children,
|
|
83
|
+
inputProps = _ref.inputProps,
|
|
84
|
+
_ref$switchProps = _ref.switchProps,
|
|
85
|
+
switchProps = _ref$switchProps === void 0 ? {} : _ref$switchProps,
|
|
86
|
+
_ref$editButtonProps = _ref.editButtonProps,
|
|
87
|
+
editButtonProps = _ref$editButtonProps === void 0 ? {} : _ref$editButtonProps,
|
|
88
|
+
_ref$className = _ref.className,
|
|
89
|
+
className = _ref$className === void 0 ? "" : _ref$className;
|
|
90
|
+
var _useTranslation = useTranslation(),
|
|
91
|
+
t = _useTranslation.t;
|
|
92
|
+
var cardRef = useRef();
|
|
93
|
+
var id = slugify(title);
|
|
94
|
+
var _useState = useState(false),
|
|
95
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
96
|
+
isEditing = _useState2[0],
|
|
97
|
+
setIsEditing = _useState2[1];
|
|
98
|
+
var _useFormikContext = useFormikContext(),
|
|
99
|
+
setFieldValue = _useFormikContext.setFieldValue,
|
|
100
|
+
values = _useFormikContext.values,
|
|
101
|
+
submitCount = _useFormikContext.submitCount,
|
|
102
|
+
errors = _useFormikContext.errors,
|
|
103
|
+
initialValues = _useFormikContext.initialValues;
|
|
104
|
+
useEffect(function () {
|
|
105
|
+
if (!(submitCount >= 1 && isEmpty(errors))) return;
|
|
106
|
+
setIsEditing(false);
|
|
107
|
+
}, [submitCount]);
|
|
108
|
+
useEffect(function () {
|
|
109
|
+
if (isEmpty(errors)) return;
|
|
110
|
+
setIsEditing(true);
|
|
111
|
+
}, [values, errors]);
|
|
112
|
+
var _useState3 = useState(location.hash.split("#")[1] === id),
|
|
113
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
114
|
+
shouldHighlight = _useState4[0],
|
|
115
|
+
setShouldHighlight = _useState4[1];
|
|
116
|
+
var hasInput = (values === null || values === void 0 ? void 0 : values[switchName]) && (inputProps === null || inputProps === void 0 ? void 0 : inputProps.name);
|
|
117
|
+
var enabledCondition = values === null || values === void 0 ? void 0 : values[switchName];
|
|
118
|
+
var handleInputReset = function handleInputReset() {
|
|
119
|
+
setIsEditing(false);
|
|
120
|
+
hasInput && setFieldValue(inputProps === null || inputProps === void 0 ? void 0 : inputProps.name, initialValues === null || initialValues === void 0 ? void 0 : initialValues[inputProps === null || inputProps === void 0 ? void 0 : inputProps.name]);
|
|
121
|
+
};
|
|
122
|
+
useOnClickOutside(cardRef, function () {
|
|
123
|
+
return setShouldHighlight(false);
|
|
124
|
+
});
|
|
125
|
+
useScrollIntoView({
|
|
126
|
+
elementId: id,
|
|
127
|
+
trigger: shouldHighlight
|
|
128
|
+
});
|
|
129
|
+
var inputRef = useHotkeys("enter", function () {
|
|
130
|
+
return setIsEditing(false);
|
|
131
|
+
}, {
|
|
132
|
+
mode: "scoped"
|
|
133
|
+
});
|
|
134
|
+
return /*#__PURE__*/jsxs("div", {
|
|
135
|
+
id: id,
|
|
136
|
+
"data-testid": "feature-card-container",
|
|
137
|
+
ref: cardRef,
|
|
138
|
+
className: classnames("flex flex-col gap-y-2 rounded-lg bg-white", {
|
|
139
|
+
"border p-4": isCardStyleEnabled
|
|
140
|
+
}, {
|
|
141
|
+
"border-border": !shouldHighlight
|
|
142
|
+
}, {
|
|
143
|
+
"border-primary ring-primary ring-1": shouldHighlight
|
|
144
|
+
}, className),
|
|
145
|
+
children: [/*#__PURE__*/jsxs(Label, {
|
|
146
|
+
className: "flex flex-row items-center gap-2",
|
|
147
|
+
children: [/*#__PURE__*/jsx(TooltipSwitch, _objectSpread(_objectSpread({}, _objectSpread({
|
|
148
|
+
enabledCondition: enabledCondition,
|
|
149
|
+
isDisabled: isDisabled,
|
|
150
|
+
switchDataTestid: switchDataTestid
|
|
151
|
+
}, switchProps)), {}, {
|
|
152
|
+
name: switchName
|
|
153
|
+
})), /*#__PURE__*/jsx(Typography, {
|
|
154
|
+
as: "span",
|
|
155
|
+
className: "leading-snug",
|
|
156
|
+
variant: "h4",
|
|
157
|
+
weight: "semibold",
|
|
158
|
+
"data-testid": isPresent(titleDataTestid) ? titleDataTestid : "toggle-feature-card-title",
|
|
159
|
+
children: title
|
|
160
|
+
})]
|
|
161
|
+
}), /*#__PURE__*/jsx(Typography, {
|
|
162
|
+
className: "mb-4 whitespace-pre-line",
|
|
163
|
+
variant: "body2",
|
|
164
|
+
"data-testid": isPresent(descriptionDataTestid) ? descriptionDataTestid : "toggle-feature-card-description",
|
|
165
|
+
children: description
|
|
166
|
+
}), hasInput && !isEditing && /*#__PURE__*/jsxs("div", {
|
|
167
|
+
className: "m-0 flex flex-row items-center gap-x-2",
|
|
168
|
+
children: [inputProps === null || inputProps === void 0 ? void 0 : inputProps.display, /*#__PURE__*/jsx(Button, _objectSpread({
|
|
169
|
+
label: t("neetoMolecules.common.actions.edit"),
|
|
170
|
+
size: "sm",
|
|
171
|
+
type: "button",
|
|
172
|
+
variant: "link",
|
|
173
|
+
"data-testid": isPresent(inputProps === null || inputProps === void 0 ? void 0 : inputProps.editButtonDataTestid) ? inputProps === null || inputProps === void 0 ? void 0 : inputProps.editButtonDataTestid : "toggle-feature-card-input-display-edit",
|
|
174
|
+
onClick: function onClick() {
|
|
175
|
+
return setIsEditing(true);
|
|
176
|
+
}
|
|
177
|
+
}, editButtonProps))]
|
|
178
|
+
}), hasInput && isEditing && /*#__PURE__*/jsx(Input, _objectSpread({
|
|
179
|
+
autoFocus: true,
|
|
180
|
+
label: inputProps === null || inputProps === void 0 ? void 0 : inputProps.label,
|
|
181
|
+
name: inputProps === null || inputProps === void 0 ? void 0 : inputProps.name,
|
|
182
|
+
placeholder: inputProps === null || inputProps === void 0 ? void 0 : inputProps.placeholder,
|
|
183
|
+
ref: inputRef,
|
|
184
|
+
size: "medium",
|
|
185
|
+
"data-testid": isPresent(inputProps === null || inputProps === void 0 ? void 0 : inputProps.dataTestid) ? inputProps === null || inputProps === void 0 ? void 0 : inputProps.dataTestid : "toggle-feature-card-input-field",
|
|
186
|
+
suffix: /*#__PURE__*/jsx(Button, {
|
|
187
|
+
"data-testid": "toggle-feature-card-input-reset",
|
|
188
|
+
icon: X,
|
|
189
|
+
size: "sm",
|
|
190
|
+
type: "button",
|
|
191
|
+
variant: "ghost",
|
|
192
|
+
onClick: handleInputReset
|
|
193
|
+
})
|
|
194
|
+
}, inputProps)), children]
|
|
195
|
+
});
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
export { ToggleFeatureCard as default };
|
|
199
|
+
//# sourceMappingURL=ToggleFeatureCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToggleFeatureCard.js","sources":["../../src/v2/components/ToggleFeatureCard/hooks/useScrollIntoView.js","../../src/v2/components/ToggleFeatureCard/ToolTipSwitch.jsx","../../src/v2/components/ToggleFeatureCard/index.jsx"],"sourcesContent":["import { useEffect } from \"react\";\n\nconst useScrollIntoView = ({ elementId, trigger }) => {\n useEffect(() => {\n if (!trigger) return;\n document.getElementById(elementId)?.scrollIntoView();\n }, [trigger]);\n};\n\nexport default useScrollIntoView;\n","import { Tooltip } from \"@bigbinary/neeto-atoms\";\nimport { Switch as FormikSwitch } from \"@bigbinary/neeto-atoms/formik\";\nimport { isPresent } from \"neetocist\";\n\nconst TooltipSwitch = ({\n enabledCondition,\n name = \"\",\n isDisabled = false,\n switchDataTestid,\n tooltipProps = {},\n ...otherProps\n}) => {\n const { enabledSwitchText, disabledSwitchText, ...neetoAtomsTooltipProps } =\n tooltipProps;\n\n const tooltipContent = enabledCondition\n ? enabledSwitchText\n : disabledSwitchText;\n\n return (\n <Tooltip\n content={tooltipContent}\n disabled={!tooltipContent}\n position=\"top\"\n {...neetoAtomsTooltipProps}\n >\n <span>\n <FormikSwitch\n disabled={isDisabled}\n data-testid={\n isPresent(switchDataTestid)\n ? switchDataTestid\n : \"toggle-feature-card-switch\"\n }\n {...{ name, ...otherProps }}\n />\n </span>\n </Tooltip>\n );\n};\n\nexport default TooltipSwitch;\n","import { useRef, useState, useEffect } from \"react\";\n\nimport { Button, Label, Typography } from \"@bigbinary/neeto-atoms\";\nimport { Input } from \"@bigbinary/neeto-atoms/formik\";\nimport classnames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { X } from \"lucide-react\";\nimport { isPresent, slugify } from \"neetocist\";\nimport useOnClickOutside from \"neetocommons/v2/react-utils/useOnClickOutside\";\nimport useHotkeys from \"neetohotkeys\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SIZES } from \"./constants\";\nimport useScrollIntoView from \"./hooks/useScrollIntoView\";\nimport TooltipSwitch from \"./ToolTipSwitch\";\n\nconst ToggleFeatureCard = ({\n isCardStyleEnabled = true,\n title = \"\",\n description = null,\n switchName = \"switch\",\n titleDataTestid = \"\",\n switchDataTestid = \"\",\n descriptionDataTestid = \"\",\n isDisabled = false,\n children = null,\n inputProps,\n switchProps = {},\n editButtonProps = {},\n className = \"\",\n}) => {\n const { t } = useTranslation();\n const cardRef = useRef();\n const id = slugify(title);\n\n const [isEditing, setIsEditing] = useState(false);\n\n const { setFieldValue, values, submitCount, errors, initialValues } =\n useFormikContext();\n\n useEffect(() => {\n if (!(submitCount >= 1 && isEmpty(errors))) return;\n setIsEditing(false);\n }, [submitCount]);\n\n useEffect(() => {\n if (isEmpty(errors)) return;\n setIsEditing(true);\n }, [values, errors]);\n\n const [shouldHighlight, setShouldHighlight] = useState(\n location.hash.split(\"#\")[1] === id\n );\n\n const hasInput = values?.[switchName] && inputProps?.name;\n const enabledCondition = values?.[switchName];\n\n const handleInputReset = () => {\n setIsEditing(false);\n hasInput &&\n setFieldValue(inputProps?.name, initialValues?.[inputProps?.name]);\n };\n\n useOnClickOutside(cardRef, () => setShouldHighlight(false));\n\n useScrollIntoView({ elementId: id, trigger: shouldHighlight });\n\n const inputRef = useHotkeys(\"enter\", () => setIsEditing(false), {\n mode: \"scoped\",\n });\n\n return (\n <div\n {...{ id }}\n data-testid=\"feature-card-container\"\n ref={cardRef}\n className={classnames(\n \"flex flex-col gap-y-2 rounded-lg bg-white\",\n { \"border p-4\": isCardStyleEnabled },\n { \"border-border\": !shouldHighlight },\n { \"border-primary ring-primary ring-1\": shouldHighlight },\n className\n )}\n >\n <Label className=\"flex flex-row items-center gap-2\">\n <TooltipSwitch\n {...{\n enabledCondition,\n isDisabled,\n switchDataTestid,\n ...switchProps,\n }}\n name={switchName}\n />\n <Typography\n as=\"span\"\n className=\"leading-snug\"\n variant=\"h4\"\n weight=\"semibold\"\n data-testid={\n isPresent(titleDataTestid)\n ? titleDataTestid\n : \"toggle-feature-card-title\"\n }\n >\n {title}\n </Typography>\n </Label>\n <Typography\n className=\"mb-4 whitespace-pre-line\"\n variant=\"body2\"\n data-testid={\n isPresent(descriptionDataTestid)\n ? descriptionDataTestid\n : \"toggle-feature-card-description\"\n }\n >\n {description}\n </Typography>\n {hasInput && !isEditing && (\n <div className=\"m-0 flex flex-row items-center gap-x-2\">\n {inputProps?.display}\n <Button\n label={t(\"neetoMolecules.common.actions.edit\")}\n size=\"sm\"\n type=\"button\"\n variant=\"link\"\n data-testid={\n isPresent(inputProps?.editButtonDataTestid)\n ? inputProps?.editButtonDataTestid\n : \"toggle-feature-card-input-display-edit\"\n }\n onClick={() => setIsEditing(true)}\n {...editButtonProps}\n />\n </div>\n )}\n {hasInput && isEditing && (\n <Input\n autoFocus\n label={inputProps?.label}\n name={inputProps?.name}\n placeholder={inputProps?.placeholder}\n ref={inputRef}\n size=\"medium\"\n data-testid={\n isPresent(inputProps?.dataTestid)\n ? inputProps?.dataTestid\n : \"toggle-feature-card-input-field\"\n }\n suffix={\n <Button\n data-testid=\"toggle-feature-card-input-reset\"\n icon={X}\n size=\"sm\"\n type=\"button\"\n variant=\"ghost\"\n onClick={handleInputReset}\n />\n }\n {...inputProps}\n />\n )}\n {children}\n </div>\n );\n};\n\nToggleFeatureCard.propTypes = {\n /**\n * The title that will be displayed for the card.\n */\n title: PropTypes.string,\n /**\n * The descripton text for the particular feature or setting.\n */\n description: PropTypes.string,\n /**\n * The formik name of the feature or setting to be toggled. eg:\n {switchName: \"enableEmails\"}.\n */\n switchName: PropTypes.string,\n /**\n * Can be used to disable the toggle switch conditionally.\n */\n isDisabled: PropTypes.bool,\n /**\n * Can be used to enable the card appearance.\n */\n isCardStyleEnabled: PropTypes.bool,\n /**\n * Custom child components to be displayed in the card.\n */\n children: PropTypes.node,\n /**\n * Can be used to add an input field for a setting or a feature.\n For example, `Enable email notifications` card can have an email input field.\n */\n inputProps: PropTypes.shape({\n name: PropTypes.string,\n display: PropTypes.node,\n label: PropTypes.string,\n editButtonTooltip: PropTypes.string,\n editButtonDataTestid: PropTypes.string,\n placeholder: PropTypes.string,\n dataTestid: PropTypes.string,\n onChange: PropTypes.func,\n suffix: PropTypes.node,\n prefix: PropTypes.node,\n className: PropTypes.string,\n nakedInput: PropTypes.bool,\n size: PropTypes.oneOf(Object.values(SIZES)),\n type: PropTypes.string,\n maxLength: PropTypes.number,\n contentSize: PropTypes.number,\n unlimitedChars: PropTypes.bool,\n }),\n /**\n * Can be used to add props to the switch component.\n */\n switchProps: PropTypes.shape({\n onChange: PropTypes.func,\n className: PropTypes.string,\n checked: PropTypes.bool,\n tooltipProps: PropTypes.shape({\n enabledSwitchText: PropTypes.string,\n disabledSwitchText: PropTypes.string,\n }),\n }),\n /**\n * Can be used to add props to the edit button component.\n */\n editButtonProps: PropTypes.shape({\n onClick: PropTypes.func,\n className: PropTypes.string,\n style: PropTypes.string,\n size: PropTypes.string,\n type: PropTypes.string,\n tooltipProps: PropTypes.object,\n }),\n /**\n * To specify external classnames as overrides to the ToggleFeatureCard wrapper.\n */\n className: PropTypes.string,\n};\n\nexport default ToggleFeatureCard;\n"],"names":["useScrollIntoView","_ref","elementId","trigger","useEffect","_document$getElementB","document","getElementById","scrollIntoView","TooltipSwitch","enabledCondition","_ref$name","name","_ref$isDisabled","isDisabled","switchDataTestid","_ref$tooltipProps","tooltipProps","otherProps","_objectWithoutProperties","_excluded","enabledSwitchText","disabledSwitchText","neetoAtomsTooltipProps","_excluded2","tooltipContent","_jsx","Tooltip","_objectSpread","content","disabled","position","children","FormikSwitch","isPresent","ToggleFeatureCard","_ref$isCardStyleEnabl","isCardStyleEnabled","_ref$title","title","_ref$description","description","_ref$switchName","switchName","_ref$titleDataTestid","titleDataTestid","_ref$switchDataTestid","_ref$descriptionDataT","descriptionDataTestid","_ref$children","inputProps","_ref$switchProps","switchProps","_ref$editButtonProps","editButtonProps","_ref$className","className","_useTranslation","useTranslation","t","cardRef","useRef","id","slugify","_useState","useState","_useState2","_slicedToArray","isEditing","setIsEditing","_useFormikContext","useFormikContext","setFieldValue","values","submitCount","errors","initialValues","isEmpty","_useState3","location","hash","split","_useState4","shouldHighlight","setShouldHighlight","hasInput","handleInputReset","useOnClickOutside","inputRef","useHotkeys","mode","_jsxs","ref","classnames","Label","Typography","as","variant","weight","display","Button","label","size","type","editButtonDataTestid","onClick","Input","autoFocus","placeholder","dataTestid","suffix","icon","X"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-molecules",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.10",
|
|
4
4
|
"description": "A package of reusable molecular components for neeto products.",
|
|
5
5
|
"repository": "git@github.com:bigbinary/neeto-molecules.git",
|
|
6
6
|
"author": "Amaljith K <amaljith.k@bigbinary.com>",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"@babel/runtime": "7.26.10",
|
|
59
59
|
"@bigbinary/babel-preset-neeto": "^1.0.14",
|
|
60
60
|
"@bigbinary/eslint-plugin-neeto": "1.9.0",
|
|
61
|
-
"@bigbinary/neeto-atoms": "1.0.
|
|
61
|
+
"@bigbinary/neeto-atoms": "1.0.71",
|
|
62
62
|
"@bigbinary/neeto-audit-frontend": "2.4.5",
|
|
63
63
|
"@bigbinary/neeto-cist": "1.0.17",
|
|
64
64
|
"@bigbinary/neeto-commons-frontend": "4.13.127",
|
|
@@ -235,7 +235,7 @@
|
|
|
235
235
|
"peerDependencies": {
|
|
236
236
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
237
237
|
"@babel/runtime": "7.26.0",
|
|
238
|
-
"@bigbinary/neeto-atoms": "1.0.
|
|
238
|
+
"@bigbinary/neeto-atoms": "1.0.71",
|
|
239
239
|
"@bigbinary/neeto-cist": "1.0.17",
|
|
240
240
|
"@bigbinary/neeto-commons-frontend": "4.13.127",
|
|
241
241
|
"@bigbinary/neeto-editor": "1.47.115",
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
const ConfirmationModal: React.FC<{
|
|
4
|
+
buttonLabel?: string;
|
|
5
|
+
confirmationText?: string;
|
|
6
|
+
description?: React.ReactNode;
|
|
7
|
+
isSubmitting?: boolean;
|
|
8
|
+
isOpen?: boolean;
|
|
9
|
+
title?: string;
|
|
10
|
+
onClose?: () => void;
|
|
11
|
+
onSubmit?: (values: { confirmationText: string }) => void;
|
|
12
|
+
deleteConfirmationMessage?: React.ReactNode;
|
|
13
|
+
}>;
|
|
14
|
+
|
|
15
|
+
export default ConfirmationModal;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
type TimePeriodOption = {
|
|
4
|
+
label?: string;
|
|
5
|
+
value?: { startDate?: unknown; endDate?: unknown; rangeType?: string } | string;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
const DateRangeFilter: React.FC<{
|
|
9
|
+
timePeriodOptions?: TimePeriodOption[];
|
|
10
|
+
timePeriod?: TimePeriodOption;
|
|
11
|
+
setTimePeriod?: (timePeriod: TimePeriodOption) => void;
|
|
12
|
+
datePickerProps?: Record<string, unknown>;
|
|
13
|
+
}>;
|
|
14
|
+
|
|
15
|
+
export default DateRangeFilter;
|