@bigbinary/neeto-fields-frontend 1.3.36 → 1.3.37

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
  };