@bigbinary/neeto-fields-frontend 1.3.36 → 1.3.38

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
@@ -1,7 +1,7 @@
1
- import React, { useEffect, useRef, useState, useMemo, useLayoutEffect, useCallback, createContext, memo, useReducer, useContext } from 'react';
1
+ import React, { useEffect, useState, useRef, useMemo, useLayoutEffect, useCallback, createContext, memo, useReducer, useContext } from 'react';
2
2
  import { useFuncDebounce, useOnClickOutside, withT, useMutationWithInvalidation, isMetaKeyPressed, useQueryParams, handleMetaClick } from '@bigbinary/neeto-commons-frontend/react-utils';
3
3
  import { Checkbox as Checkbox$1, TimePicker, DatePicker, Input, Select as Select$1, Textarea, Typography, Pane, Label, Button as Button$1, Tab, Alert, NoData, Table, Spinner } from '@bigbinary/neetoui';
4
- import { isNotEmpty, renameKeys, capitalize, findBy, noop as noop$1, filterBy, toLabelAndValue, slugify, humanize, countBy, isPresent } from '@bigbinary/neeto-cist';
4
+ import { isNotEmpty, renameKeys, capitalize, findBy, noop as noop$1, notEquals, filterBy, toLabelAndValue, slugify, humanize, countBy, isPresent } from '@bigbinary/neeto-cist';
5
5
  import { values, isNotNil, isNil, isEmpty, prop, pluck, clone, pipe, mergeAll, omit, map, pick, assoc, not, any, head } from 'ramda';
6
6
  import { useFormikContext, useField, FieldArray } from 'formik';
7
7
  import { t as t$1 } from 'i18next';
@@ -912,7 +912,8 @@ var useFormikFields = function useFormikFields(_ref) {
912
912
  //conditional props
913
913
  options: isDropdown$1(kind) ? fieldData : undefined,
914
914
  getPopupContainer: !isInline && isDateTime(kind) ? prop("parentElement") : undefined
915
- })
915
+ }),
916
+ helpers: helpers
916
917
  };
917
918
  };
918
919
 
@@ -933,30 +934,70 @@ var _excluded$6 = ["onBlur"];
933
934
  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
935
  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; }
935
936
  var DateOrTime = function DateOrTime(props) {
937
+ var isInline = props.isInline;
938
+ var _useState = useState(isInline),
939
+ _useState2 = _slicedToArray(_useState, 2),
940
+ isOpen = _useState2[0],
941
+ setIsOpen = _useState2[1];
942
+ var value = useRef();
936
943
  var _useFormikFields = useFormikFields(props),
937
944
  handleSubmit = _useFormikFields.handleSubmit,
938
945
  _useFormikFields$fiel = _useFormikFields.fieldProps,
939
946
  onBlur = _useFormikFields$fiel.onBlur,
940
- fieldProps = _objectWithoutProperties(_useFormikFields$fiel, _excluded$6);
947
+ fieldProps = _objectWithoutProperties(_useFormikFields$fiel, _excluded$6),
948
+ helpers = _useFormikFields.helpers;
941
949
  var handleChange = function handleChange(dateTime) {
942
- return handleSubmit(dateTimeToString(dateTime));
943
- };
944
- var onOpenChange = function onOpenChange(open) {
945
- if (open) return;
946
- onBlur === null || onBlur === void 0 || onBlur();
950
+ value.current = dateTimeToString(dateTime);
951
+ helpers.setValue(value.current);
952
+ if (!isOpen) handleSubmit();
947
953
  };
954
+ var onOpenChange = /*#__PURE__*/function () {
955
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(open) {
956
+ var shouldSubmit;
957
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
958
+ while (1) switch (_context.prev = _context.next) {
959
+ case 0:
960
+ setIsOpen(open);
961
+ if (!open) {
962
+ _context.next = 3;
963
+ break;
964
+ }
965
+ return _context.abrupt("return");
966
+ case 3:
967
+ shouldSubmit = value.current !== undefined && notEquals(fieldProps.value, value.current);
968
+ _context.t0 = shouldSubmit;
969
+ if (!_context.t0) {
970
+ _context.next = 8;
971
+ break;
972
+ }
973
+ _context.next = 8;
974
+ return handleSubmit();
975
+ case 8:
976
+ onBlur === null || onBlur === void 0 || onBlur();
977
+ case 9:
978
+ case "end":
979
+ return _context.stop();
980
+ }
981
+ }, _callee);
982
+ }));
983
+ return function onOpenChange(_x) {
984
+ return _ref.apply(this, arguments);
985
+ };
986
+ }();
948
987
  if (props.kind === KINDS.time) {
949
988
  return /*#__PURE__*/React.createElement(TimePicker, _extends({}, _objectSpread$g(_objectSpread$g({}, fieldProps), {}, {
950
989
  onOpenChange: onOpenChange
951
990
  }), {
952
991
  use12Hours: true,
953
992
  format: "h:mm A",
993
+ open: isOpen,
954
994
  onChange: handleChange
955
995
  }));
956
996
  } else if (props.kind === KINDS.date) {
957
997
  return /*#__PURE__*/React.createElement(DatePicker, _extends({}, _objectSpread$g(_objectSpread$g({}, fieldProps), {}, {
958
998
  onOpenChange: onOpenChange
959
999
  }), {
1000
+ open: isOpen,
960
1001
  onChange: handleChange
961
1002
  }));
962
1003
  }
@@ -966,6 +1007,7 @@ var DateOrTime = function DateOrTime(props) {
966
1007
  }, _objectSpread$g(_objectSpread$g({}, fieldProps), {}, {
967
1008
  onOpenChange: onOpenChange
968
1009
  }), {
1010
+ open: isOpen,
969
1011
  onChange: handleChange
970
1012
  }));
971
1013
  };
@@ -1469,32 +1511,21 @@ var getPermittedKinds = function getPermittedKinds(_ref2) {
1469
1511
  var allowedKinds = _ref2.allowedKinds,
1470
1512
  selectedKind = _ref2.selectedKind;
1471
1513
  var filteredKinds = pick(allowedKinds, FIELD_KINDS);
1472
- var permittedKinds = filterBy({
1514
+ return filterBy({
1473
1515
  group: selectedKind === null || selectedKind === void 0 ? void 0 : selectedKind.group
1474
1516
  }, values(filteredKinds));
1475
- return permittedKinds;
1476
1517
  };
1477
1518
  var generateValidationSchema = function generateValidationSchema(additionalValidations) {
1478
1519
  return yup.object().shape(_objectSpread$b(_objectSpread$b({}, BASIC_FIELD_FORM_VALIDATIONS), additionalValidations));
1479
1520
  };
1480
1521
  var renderFormFooter = function renderFormFooter(_ref3) {
1481
1522
  var onClose = _ref3.onClose,
1482
- loading = _ref3.loading,
1483
- _ref3$dirty = _ref3.dirty,
1484
- dirty = _ref3$dirty === void 0 ? true : _ref3$dirty;
1523
+ loading = _ref3.loading;
1485
1524
  return /*#__PURE__*/React.createElement(Pane.Footer, null, /*#__PURE__*/React.createElement(ActionBlock$1, {
1486
1525
  cancelButtonProps: {
1487
- onClick: onClose,
1488
- style: "text",
1489
- disabled: loading
1526
+ onClick: onClose
1490
1527
  },
1491
- submitButtonProps: {
1492
- label: t$1("neetoFields.labels.saveChanges"),
1493
- className: "mr-2",
1494
- type: "submit",
1495
- disabled: !dirty,
1496
- loading: loading
1497
- }
1528
+ isSubmitting: loading
1498
1529
  }));
1499
1530
  };
1500
1531
  var getDefaultOption = function getDefaultOption() {
@@ -1838,15 +1869,13 @@ var Add = function Add(_ref) {
1838
1869
  onSubmit: handleSubmit
1839
1870
  }
1840
1871
  }, function (_ref2) {
1841
- var dirty = _ref2.dirty,
1842
- kind = _ref2.values.kind;
1872
+ var kind = _ref2.values.kind;
1843
1873
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FieldForm, _extends({
1844
1874
  chosenKind: kind.value,
1845
1875
  kindSelectOptions: filteredKinds
1846
1876
  }, props)), renderFormFooter({
1847
1877
  onClose: onClose,
1848
- loading: isSubmitting,
1849
- dirty: dirty
1878
+ loading: isSubmitting
1850
1879
  }));
1851
1880
  }));
1852
1881
  };
@@ -1912,8 +1941,7 @@ var Edit = function Edit(_ref) {
1912
1941
  onSubmit: handleSubmit
1913
1942
  }
1914
1943
  }, function (_ref2) {
1915
- var kind = _ref2.values.kind,
1916
- dirty = _ref2.dirty;
1944
+ var kind = _ref2.values.kind;
1917
1945
  var permittedKinds = getPermittedKinds({
1918
1946
  allowedKinds: allowedKinds,
1919
1947
  selectedKind: kind
@@ -1924,8 +1952,7 @@ var Edit = function Edit(_ref) {
1924
1952
  kindSelectOptions: permittedKinds
1925
1953
  }, props)), renderFormFooter({
1926
1954
  onClose: onClose,
1927
- loading: isSubmitting,
1928
- dirty: dirty
1955
+ loading: isSubmitting
1929
1956
  }));
1930
1957
  }));
1931
1958
  };