@bigbinary/neeto-fields-frontend 1.3.24 → 1.3.25

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/index.js CHANGED
@@ -8,7 +8,7 @@ import { t } from 'i18next';
8
8
  import * as yup from 'yup';
9
9
  import { Select, Button, ActionBlock as ActionBlock$1, Input as Input$1, Switch, Form } from '@bigbinary/neetoui/formik';
10
10
  import { joinHyphenCase, buildUrl, getQueryParams, dateFormat } from '@bigbinary/neeto-commons-frontend/utils';
11
- import { Check, Delete, Info, Reorder } from '@bigbinary/neeto-icons';
11
+ import { Check, Delete, Reorder } from '@bigbinary/neeto-icons';
12
12
  import { useTranslation, Trans } from 'react-i18next';
13
13
  import { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE, PLURAL } from '@bigbinary/neeto-commons-frontend/constants';
14
14
  import Container from '@bigbinary/neeto-molecules/Container';
@@ -22,6 +22,7 @@ import MenuBar from '@bigbinary/neeto-molecules/MenuBar';
22
22
  import MoreDropdown from '@bigbinary/neeto-molecules/MoreDropdown';
23
23
  import TableWrapper from '@bigbinary/neeto-molecules/TableWrapper';
24
24
  import NeetoUIHeader from '@bigbinary/neeto-molecules/Header';
25
+ import HelpPopover from '@bigbinary/neeto-molecules/HelpPopover';
25
26
  import { unstable_batchedUpdates, createPortal } from 'react-dom';
26
27
  import NeetoUISubHeader from '@bigbinary/neeto-molecules/SubHeader';
27
28
  import classnames from 'classnames';
@@ -788,9 +789,9 @@ var getValueFromBool = function getValueFromBool(value) {
788
789
  return value === true ? t("neetoFields.common.yes") : t("neetoFields.common.no");
789
790
  };
790
791
 
791
- var _excluded$6 = ["name", "id", "kind", "data", "individualSubmit", "formRef", "formRefs", "disabled", "isRequiredColumnName", "isInline", "onBlur"];
792
- function ownKeys$g(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; }
793
- function _objectSpread$g(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$g(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$g(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
792
+ var _excluded$7 = ["name", "id", "kind", "data", "individualSubmit", "formRef", "formRefs", "disabled", "isRequiredColumnName", "isInline", "onBlur"];
793
+ function ownKeys$h(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; }
794
+ function _objectSpread$h(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$h(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$h(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
794
795
  var useFormikFields = function useFormikFields(_ref) {
795
796
  var name = _ref.name,
796
797
  fieldId = _ref.id,
@@ -806,7 +807,7 @@ var useFormikFields = function useFormikFields(_ref) {
806
807
  isInline = _ref$isInline === void 0 ? false : _ref$isInline,
807
808
  _ref$onBlur = _ref.onBlur,
808
809
  handleBlur = _ref$onBlur === void 0 ? noop$1 : _ref$onBlur,
809
- props = _objectWithoutProperties(_ref, _excluded$6);
810
+ props = _objectWithoutProperties(_ref, _excluded$7);
810
811
  var formikContext = useFormikContext();
811
812
  var submitForm = formikContext.submitForm,
812
813
  dirty = formikContext.dirty,
@@ -898,7 +899,7 @@ var useFormikFields = function useFormikFields(_ref) {
898
899
  return {
899
900
  dirty: dirty,
900
901
  handleSubmit: handleSubmit,
901
- fieldProps: _objectSpread$g(_objectSpread$g({}, formikFieldProps), {}, {
902
+ fieldProps: _objectSpread$h(_objectSpread$h({}, formikFieldProps), {}, {
902
903
  error: individualSubmit ? meta.error : meta.touched && meta.error,
903
904
  value: getValueForField(formikFieldProps.value),
904
905
  label: !isInline && capitalize(name),
@@ -928,28 +929,43 @@ var Checkbox = function Checkbox(props) {
928
929
  }));
929
930
  };
930
931
 
932
+ var _excluded$6 = ["onBlur"];
933
+ function ownKeys$g(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; }
934
+ function _objectSpread$g(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$g(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$g(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
931
935
  var DateOrTime = function DateOrTime(props) {
932
936
  var _useFormikFields = useFormikFields(props),
933
937
  handleSubmit = _useFormikFields.handleSubmit,
934
- fieldProps = _useFormikFields.fieldProps;
938
+ _useFormikFields$fiel = _useFormikFields.fieldProps,
939
+ onBlur = _useFormikFields$fiel.onBlur,
940
+ fieldProps = _objectWithoutProperties(_useFormikFields$fiel, _excluded$6);
935
941
  var handleChange = function handleChange(dateTime) {
936
942
  return handleSubmit(dateTimeToString(dateTime));
937
943
  };
944
+ var onOpenChange = function onOpenChange(open) {
945
+ if (open) return;
946
+ onBlur === null || onBlur === void 0 || onBlur();
947
+ };
938
948
  if (props.kind === KINDS.time) {
939
- return /*#__PURE__*/React.createElement(TimePicker, _extends({}, fieldProps, {
949
+ return /*#__PURE__*/React.createElement(TimePicker, _extends({}, _objectSpread$g(_objectSpread$g({}, fieldProps), {}, {
950
+ onOpenChange: onOpenChange
951
+ }), {
940
952
  use12Hours: true,
941
953
  format: "h:mm A",
942
954
  onChange: handleChange
943
955
  }));
944
956
  } else if (props.kind === KINDS.date) {
945
- return /*#__PURE__*/React.createElement(DatePicker, _extends({}, fieldProps, {
957
+ return /*#__PURE__*/React.createElement(DatePicker, _extends({}, _objectSpread$g(_objectSpread$g({}, fieldProps), {}, {
958
+ onOpenChange: onOpenChange
959
+ }), {
946
960
  onChange: handleChange
947
961
  }));
948
962
  }
949
963
  return /*#__PURE__*/React.createElement(DatePicker, _extends({
950
964
  showTime: true,
951
965
  timeFormat: "h:mm A"
952
- }, fieldProps, {
966
+ }, _objectSpread$g(_objectSpread$g({}, fieldProps), {}, {
967
+ onOpenChange: onOpenChange
968
+ }), {
953
969
  onChange: handleChange
954
970
  }));
955
971
  };
@@ -976,8 +992,13 @@ var Number$1 = function Number(props) {
976
992
  dirty = _useFormikFields.dirty;
977
993
  var individualSubmit = props.individualSubmit,
978
994
  isInline = props.isInline;
979
- var showSubmitButton = !isInline && individualSubmit && dirty;
980
- return /*#__PURE__*/React.createElement(Input, _extends({}, fieldProps, {
995
+ var isNotInline = !isInline;
996
+ var showSubmitButton = isNotInline && individualSubmit && dirty;
997
+ return /*#__PURE__*/React.createElement(Input, _extends({}, fieldProps, isNotInline && {
998
+ onBlur: function onBlur() {
999
+ return dirty && handleSubmit();
1000
+ }
1001
+ }, {
981
1002
  type: "number",
982
1003
  suffix: showSubmitButton && /*#__PURE__*/React.createElement(Button, {
983
1004
  "data-cy": joinHyphenCase(fieldProps.label, "check-button"),
@@ -1063,8 +1084,13 @@ var Text = function Text(props) {
1063
1084
  dirty = _useFormikFields.dirty;
1064
1085
  var individualSubmit = props.individualSubmit,
1065
1086
  isInline = props.isInline;
1066
- var showSubmitButton = !isInline && individualSubmit && dirty;
1067
- return /*#__PURE__*/React.createElement(Input, _extends({}, fieldProps, {
1087
+ var isNotInline = !isInline;
1088
+ var showSubmitButton = isNotInline && individualSubmit && dirty;
1089
+ return /*#__PURE__*/React.createElement(Input, _extends({}, fieldProps, isNotInline && {
1090
+ onBlur: function onBlur() {
1091
+ return dirty && handleSubmit();
1092
+ }
1093
+ }, {
1068
1094
  suffix: showSubmitButton && /*#__PURE__*/React.createElement(Button, {
1069
1095
  "data-cy": joinHyphenCase(fieldProps.label, "check-button"),
1070
1096
  icon: Check,
@@ -1250,7 +1276,6 @@ var FIELD_URL = "".concat(NEETO_FIELDS_URL, "/fields/:fieldId");
1250
1276
  var DEPENDENCIES_URL = "".concat(NEETO_FIELDS_URL, "/fields/:fieldId/dependencies");
1251
1277
  var FIELDS_REORDER_URL = "".concat(FIELDS_URL, "/reorder");
1252
1278
  var CONFIGS_URL = "".concat(NEETO_FIELDS_URL, "/configs");
1253
- var INFO_ICON_SIZE = 16;
1254
1279
 
1255
1280
  function ownKeys$d(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; }
1256
1281
  function _objectSpread$d(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$d(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$d(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -2971,20 +2996,6 @@ var FieldsTable = function FieldsTable(_ref) {
2971
2996
  }));
2972
2997
  };
2973
2998
 
2974
- var TitleWithHelpLink = function TitleWithHelpLink(_ref) {
2975
- var title = _ref.title,
2976
- helpUrl = _ref.helpUrl;
2977
- return /*#__PURE__*/React.createElement("div", {
2978
- className: "flex items-center gap-x-1"
2979
- }, title, helpUrl && /*#__PURE__*/React.createElement("a", {
2980
- href: helpUrl,
2981
- rel: "noreferrer",
2982
- target: "_blank"
2983
- }, /*#__PURE__*/React.createElement(Info, {
2984
- size: INFO_ICON_SIZE
2985
- })));
2986
- };
2987
-
2988
2999
  // eslint-disable-next-line @bigbinary/neeto/no-dumb-components-with-use-translation
2989
3000
  var ActionBlock = function ActionBlock(_ref) {
2990
3001
  var reorderable = _ref.reorderable,
@@ -3011,24 +3022,29 @@ var ActionBlock = function ActionBlock(_ref) {
3011
3022
  }));
3012
3023
  };
3013
3024
 
3014
- var _excluded = ["searchInputProps", "breadcrumbs", "title", "helpDocUrl"];
3015
- var Header = function Header(_ref) {
3025
+ var _excluded = ["searchInputProps", "breadcrumbs", "title", "helpDocUrl", "helpDescription"];
3026
+ var Header = withT(function (_ref) {
3016
3027
  var searchInputProps = _ref.searchInputProps,
3017
3028
  breadcrumbs = _ref.breadcrumbs,
3018
3029
  title = _ref.title,
3019
3030
  helpDocUrl = _ref.helpDocUrl,
3031
+ helpDescription = _ref.helpDescription,
3020
3032
  actionBlockProps = _objectWithoutProperties(_ref, _excluded);
3021
3033
  return /*#__PURE__*/React.createElement(NeetoUIHeader, {
3022
3034
  breadcrumbs: breadcrumbs,
3023
3035
  actionBlock: /*#__PURE__*/React.createElement(ActionBlock, actionBlockProps),
3024
3036
  searchProps: searchInputProps,
3025
3037
  size: "small",
3026
- title: /*#__PURE__*/React.createElement(TitleWithHelpLink, {
3038
+ title: /*#__PURE__*/React.createElement("span", null, title, /*#__PURE__*/React.createElement(HelpPopover, {
3027
3039
  title: title,
3028
- helpUrl: helpDocUrl
3029
- })
3040
+ className: "ml-2 self-center",
3041
+ description: helpDescription,
3042
+ helpLinkProps: {
3043
+ href: helpDocUrl
3044
+ }
3045
+ }))
3030
3046
  });
3031
- };
3047
+ });
3032
3048
 
3033
3049
  var Menubar = function Menubar(_ref) {
3034
3050
  var menuBarItems = _ref.menuBarItems,
@@ -7457,6 +7473,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
7457
7473
  _ref$fieldStatesTaxon = _ref.fieldStatesTaxonomy,
7458
7474
  fieldStatesTaxonomy = _ref$fieldStatesTaxon === void 0 ? DEFAULT_FIELD_STATE_TAXONOMY : _ref$fieldStatesTaxon,
7459
7475
  helpDocUrl = _ref.helpDocUrl,
7476
+ helpDescription = _ref.helpDescription,
7460
7477
  _ref$nameAliases = _ref.nameAliases,
7461
7478
  nameAliases = _ref$nameAliases === void 0 ? {} : _ref$nameAliases,
7462
7479
  headerTitle = _ref.headerTitle,
@@ -7506,6 +7523,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
7506
7523
  reorderable: reorderable,
7507
7524
  breadcrumbs: breadcrumbs,
7508
7525
  helpDocUrl: helpDocUrl,
7526
+ helpDescription: helpDescription,
7509
7527
  searchInputProps: searchInputProps,
7510
7528
  setIsPaneOpen: setIsPaneOpen,
7511
7529
  setIsReorderPaneOpen: setIsReorderPaneOpen,
@@ -7522,6 +7540,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
7522
7540
  className: "flex h-screen w-full flex-grow items-center justify-center"
7523
7541
  }, /*#__PURE__*/React.createElement(PageLoader, null)) : /*#__PURE__*/React.createElement(FieldsTable, {
7524
7542
  columnData: columnData,
7543
+ helpDescription: helpDescription,
7525
7544
  helpDocUrl: helpDocUrl,
7526
7545
  pageProps: pageProps,
7527
7546
  setIsPaneOpen: setIsPaneOpen,