@bigbinary/neeto-fields-frontend 1.3.24 → 1.3.26

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.cjs.js CHANGED
@@ -26,6 +26,7 @@ var MenuBar = require('@bigbinary/neeto-molecules/MenuBar');
26
26
  var MoreDropdown = require('@bigbinary/neeto-molecules/MoreDropdown');
27
27
  var TableWrapper = require('@bigbinary/neeto-molecules/TableWrapper');
28
28
  var NeetoUIHeader = require('@bigbinary/neeto-molecules/Header');
29
+ var HelpPopover = require('@bigbinary/neeto-molecules/HelpPopover');
29
30
  var reactDom = require('react-dom');
30
31
  var NeetoUISubHeader = require('@bigbinary/neeto-molecules/SubHeader');
31
32
  var classnames = require('classnames');
@@ -59,6 +60,7 @@ var MenuBar__default = /*#__PURE__*/_interopDefaultLegacy(MenuBar);
59
60
  var MoreDropdown__default = /*#__PURE__*/_interopDefaultLegacy(MoreDropdown);
60
61
  var TableWrapper__default = /*#__PURE__*/_interopDefaultLegacy(TableWrapper);
61
62
  var NeetoUIHeader__default = /*#__PURE__*/_interopDefaultLegacy(NeetoUIHeader);
63
+ var HelpPopover__default = /*#__PURE__*/_interopDefaultLegacy(HelpPopover);
62
64
  var NeetoUISubHeader__default = /*#__PURE__*/_interopDefaultLegacy(NeetoUISubHeader);
63
65
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
64
66
 
@@ -824,9 +826,9 @@ var getValueFromBool = function getValueFromBool(value) {
824
826
  return value === true ? i18next.t("neetoFields.common.yes") : i18next.t("neetoFields.common.no");
825
827
  };
826
828
 
827
- var _excluded$6 = ["name", "id", "kind", "data", "individualSubmit", "formRef", "formRefs", "disabled", "isRequiredColumnName", "isInline", "onBlur"];
828
- 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; }
829
- 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; }
829
+ var _excluded$7 = ["name", "id", "kind", "data", "individualSubmit", "formRef", "formRefs", "disabled", "isRequiredColumnName", "isInline", "onBlur"];
830
+ 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; }
831
+ 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; }
830
832
  var useFormikFields = function useFormikFields(_ref) {
831
833
  var name = _ref.name,
832
834
  fieldId = _ref.id,
@@ -842,7 +844,7 @@ var useFormikFields = function useFormikFields(_ref) {
842
844
  isInline = _ref$isInline === void 0 ? false : _ref$isInline,
843
845
  _ref$onBlur = _ref.onBlur,
844
846
  handleBlur = _ref$onBlur === void 0 ? neetoCist.noop : _ref$onBlur,
845
- props = _objectWithoutProperties(_ref, _excluded$6);
847
+ props = _objectWithoutProperties(_ref, _excluded$7);
846
848
  var formikContext = formik.useFormikContext();
847
849
  var submitForm = formikContext.submitForm,
848
850
  dirty = formikContext.dirty,
@@ -934,7 +936,7 @@ var useFormikFields = function useFormikFields(_ref) {
934
936
  return {
935
937
  dirty: dirty,
936
938
  handleSubmit: handleSubmit,
937
- fieldProps: _objectSpread$g(_objectSpread$g({}, formikFieldProps), {}, {
939
+ fieldProps: _objectSpread$h(_objectSpread$h({}, formikFieldProps), {}, {
938
940
  error: individualSubmit ? meta.error : meta.touched && meta.error,
939
941
  value: getValueForField(formikFieldProps.value),
940
942
  label: !isInline && neetoCist.capitalize(name),
@@ -964,28 +966,43 @@ var Checkbox = function Checkbox(props) {
964
966
  }));
965
967
  };
966
968
 
969
+ var _excluded$6 = ["onBlur"];
970
+ 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; }
971
+ 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; }
967
972
  var DateOrTime = function DateOrTime(props) {
968
973
  var _useFormikFields = useFormikFields(props),
969
974
  handleSubmit = _useFormikFields.handleSubmit,
970
- fieldProps = _useFormikFields.fieldProps;
975
+ _useFormikFields$fiel = _useFormikFields.fieldProps,
976
+ onBlur = _useFormikFields$fiel.onBlur,
977
+ fieldProps = _objectWithoutProperties(_useFormikFields$fiel, _excluded$6);
971
978
  var handleChange = function handleChange(dateTime) {
972
979
  return handleSubmit(dateTimeToString(dateTime));
973
980
  };
981
+ var onOpenChange = function onOpenChange(open) {
982
+ if (open) return;
983
+ onBlur === null || onBlur === void 0 || onBlur();
984
+ };
974
985
  if (props.kind === KINDS.time) {
975
- return /*#__PURE__*/React__default["default"].createElement(neetoui.TimePicker, _extends({}, fieldProps, {
986
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.TimePicker, _extends({}, _objectSpread$g(_objectSpread$g({}, fieldProps), {}, {
987
+ onOpenChange: onOpenChange
988
+ }), {
976
989
  use12Hours: true,
977
990
  format: "h:mm A",
978
991
  onChange: handleChange
979
992
  }));
980
993
  } else if (props.kind === KINDS.date) {
981
- return /*#__PURE__*/React__default["default"].createElement(neetoui.DatePicker, _extends({}, fieldProps, {
994
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.DatePicker, _extends({}, _objectSpread$g(_objectSpread$g({}, fieldProps), {}, {
995
+ onOpenChange: onOpenChange
996
+ }), {
982
997
  onChange: handleChange
983
998
  }));
984
999
  }
985
1000
  return /*#__PURE__*/React__default["default"].createElement(neetoui.DatePicker, _extends({
986
1001
  showTime: true,
987
1002
  timeFormat: "h:mm A"
988
- }, fieldProps, {
1003
+ }, _objectSpread$g(_objectSpread$g({}, fieldProps), {}, {
1004
+ onOpenChange: onOpenChange
1005
+ }), {
989
1006
  onChange: handleChange
990
1007
  }));
991
1008
  };
@@ -1012,8 +1029,13 @@ var Number$1 = function Number(props) {
1012
1029
  dirty = _useFormikFields.dirty;
1013
1030
  var individualSubmit = props.individualSubmit,
1014
1031
  isInline = props.isInline;
1015
- var showSubmitButton = !isInline && individualSubmit && dirty;
1016
- return /*#__PURE__*/React__default["default"].createElement(neetoui.Input, _extends({}, fieldProps, {
1032
+ var isNotInline = !isInline;
1033
+ var showSubmitButton = isNotInline && individualSubmit && dirty;
1034
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Input, _extends({}, fieldProps, isNotInline && {
1035
+ onBlur: function onBlur() {
1036
+ return dirty && handleSubmit();
1037
+ }
1038
+ }, {
1017
1039
  type: "number",
1018
1040
  suffix: showSubmitButton && /*#__PURE__*/React__default["default"].createElement(formik$1.Button, {
1019
1041
  "data-cy": utils.joinHyphenCase(fieldProps.label, "check-button"),
@@ -1099,8 +1121,13 @@ var Text = function Text(props) {
1099
1121
  dirty = _useFormikFields.dirty;
1100
1122
  var individualSubmit = props.individualSubmit,
1101
1123
  isInline = props.isInline;
1102
- var showSubmitButton = !isInline && individualSubmit && dirty;
1103
- return /*#__PURE__*/React__default["default"].createElement(neetoui.Input, _extends({}, fieldProps, {
1124
+ var isNotInline = !isInline;
1125
+ var showSubmitButton = isNotInline && individualSubmit && dirty;
1126
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Input, _extends({}, fieldProps, isNotInline && {
1127
+ onBlur: function onBlur() {
1128
+ return dirty && handleSubmit();
1129
+ }
1130
+ }, {
1104
1131
  suffix: showSubmitButton && /*#__PURE__*/React__default["default"].createElement(formik$1.Button, {
1105
1132
  "data-cy": utils.joinHyphenCase(fieldProps.label, "check-button"),
1106
1133
  icon: neetoIcons.Check,
@@ -1286,7 +1313,6 @@ var FIELD_URL = "".concat(NEETO_FIELDS_URL, "/fields/:fieldId");
1286
1313
  var DEPENDENCIES_URL = "".concat(NEETO_FIELDS_URL, "/fields/:fieldId/dependencies");
1287
1314
  var FIELDS_REORDER_URL = "".concat(FIELDS_URL, "/reorder");
1288
1315
  var CONFIGS_URL = "".concat(NEETO_FIELDS_URL, "/configs");
1289
- var INFO_ICON_SIZE = 16;
1290
1316
 
1291
1317
  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; }
1292
1318
  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; }
@@ -2494,7 +2520,7 @@ var buildDefaultColumns = function buildDefaultColumns(_ref2) {
2494
2520
  key: "name",
2495
2521
  dataIndex: "name",
2496
2522
  title: i18next.t("neetoFields.titles.fieldName"),
2497
- width: "300px",
2523
+ width: 300,
2498
2524
  render: function render(name, field) {
2499
2525
  return /*#__PURE__*/React__default["default"].createElement("div", {
2500
2526
  className: "flex items-center justify-between gap-x-3"
@@ -2522,12 +2548,12 @@ var buildDefaultColumns = function buildDefaultColumns(_ref2) {
2522
2548
  render: function render(kind) {
2523
2549
  return DISPLAY_KINDS[kind];
2524
2550
  },
2525
- width: "300px"
2551
+ width: 180
2526
2552
  }, {
2527
2553
  key: "isRequired",
2528
2554
  dataIndex: "isRequired",
2529
2555
  title: i18next.t("neetoFields.titles.required"),
2530
- width: "300px",
2556
+ width: 140,
2531
2557
  render: function render(boolVal) {
2532
2558
  return boolVal ? i18next.t("neetoFields.common.yes") : i18next.t("neetoFields.common.no");
2533
2559
  }
@@ -3007,20 +3033,6 @@ var FieldsTable = function FieldsTable(_ref) {
3007
3033
  }));
3008
3034
  };
3009
3035
 
3010
- var TitleWithHelpLink = function TitleWithHelpLink(_ref) {
3011
- var title = _ref.title,
3012
- helpUrl = _ref.helpUrl;
3013
- return /*#__PURE__*/React__default["default"].createElement("div", {
3014
- className: "flex items-center gap-x-1"
3015
- }, title, helpUrl && /*#__PURE__*/React__default["default"].createElement("a", {
3016
- href: helpUrl,
3017
- rel: "noreferrer",
3018
- target: "_blank"
3019
- }, /*#__PURE__*/React__default["default"].createElement(neetoIcons.Info, {
3020
- size: INFO_ICON_SIZE
3021
- })));
3022
- };
3023
-
3024
3036
  // eslint-disable-next-line @bigbinary/neeto/no-dumb-components-with-use-translation
3025
3037
  var ActionBlock = function ActionBlock(_ref) {
3026
3038
  var reorderable = _ref.reorderable,
@@ -3047,24 +3059,32 @@ var ActionBlock = function ActionBlock(_ref) {
3047
3059
  }));
3048
3060
  };
3049
3061
 
3050
- var _excluded = ["searchInputProps", "breadcrumbs", "title", "helpDocUrl"];
3051
- var Header = function Header(_ref) {
3062
+ var _excluded = ["searchInputProps", "breadcrumbs", "title", "helpDocUrl", "helpDescription"];
3063
+ var Header = reactUtils.withT(function (_ref) {
3052
3064
  var searchInputProps = _ref.searchInputProps,
3053
3065
  breadcrumbs = _ref.breadcrumbs,
3054
3066
  title = _ref.title,
3055
3067
  helpDocUrl = _ref.helpDocUrl,
3068
+ helpDescription = _ref.helpDescription,
3056
3069
  actionBlockProps = _objectWithoutProperties(_ref, _excluded);
3057
3070
  return /*#__PURE__*/React__default["default"].createElement(NeetoUIHeader__default["default"], {
3058
3071
  breadcrumbs: breadcrumbs,
3059
3072
  actionBlock: /*#__PURE__*/React__default["default"].createElement(ActionBlock, actionBlockProps),
3060
3073
  searchProps: searchInputProps,
3061
3074
  size: "small",
3062
- title: /*#__PURE__*/React__default["default"].createElement(TitleWithHelpLink, {
3063
- title: title,
3064
- helpUrl: helpDocUrl
3065
- })
3075
+ title: /*#__PURE__*/React__default["default"].createElement("span", null, title, (helpDocUrl || helpDescription) && /*#__PURE__*/React__default["default"].createElement(HelpPopover__default["default"], _extends({
3076
+ className: "ml-2 self-center"
3077
+ }, helpDocUrl && {
3078
+ title: title
3079
+ }, helpDescription && {
3080
+ description: helpDescription
3081
+ }, helpDocUrl && {
3082
+ helpLinkProps: {
3083
+ href: helpDocUrl
3084
+ }
3085
+ })))
3066
3086
  });
3067
- };
3087
+ });
3068
3088
 
3069
3089
  var Menubar = function Menubar(_ref) {
3070
3090
  var menuBarItems = _ref.menuBarItems,
@@ -7493,6 +7513,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
7493
7513
  _ref$fieldStatesTaxon = _ref.fieldStatesTaxonomy,
7494
7514
  fieldStatesTaxonomy = _ref$fieldStatesTaxon === void 0 ? DEFAULT_FIELD_STATE_TAXONOMY : _ref$fieldStatesTaxon,
7495
7515
  helpDocUrl = _ref.helpDocUrl,
7516
+ helpDescription = _ref.helpDescription,
7496
7517
  _ref$nameAliases = _ref.nameAliases,
7497
7518
  nameAliases = _ref$nameAliases === void 0 ? {} : _ref$nameAliases,
7498
7519
  headerTitle = _ref.headerTitle,
@@ -7542,6 +7563,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
7542
7563
  reorderable: reorderable,
7543
7564
  breadcrumbs: breadcrumbs,
7544
7565
  helpDocUrl: helpDocUrl,
7566
+ helpDescription: helpDescription,
7545
7567
  searchInputProps: searchInputProps,
7546
7568
  setIsPaneOpen: setIsPaneOpen,
7547
7569
  setIsReorderPaneOpen: setIsReorderPaneOpen,
@@ -7558,6 +7580,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
7558
7580
  className: "flex h-screen w-full flex-grow items-center justify-center"
7559
7581
  }, /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null)) : /*#__PURE__*/React__default["default"].createElement(FieldsTable, {
7560
7582
  columnData: columnData,
7583
+ helpDescription: helpDescription,
7561
7584
  helpDocUrl: helpDocUrl,
7562
7585
  pageProps: pageProps,
7563
7586
  setIsPaneOpen: setIsPaneOpen,