@invoicebox/ui 0.1.0-alpha.182 → 0.1.0-alpha.184

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.
@@ -1,10 +1,13 @@
1
- import { FC } from 'react';
1
+ import React from 'react';
2
2
  import { TProps as TInputLabelProps } from '../../../InputLabel';
3
3
  import { TProps as TPureInputProps } from '../../../PureInput';
4
4
  import { TProps as TArrowProps } from '../../../../common/Arrow';
5
5
  import { TSizes } from '../../../constants';
6
- export type TProps = Pick<TInputLabelProps, 'inFocus' | 'label'> & Pick<TPureInputProps, 'hasError' | 'placeholder' | 'name' | 'onFocus' | 'onBlur' | 'value'> & Pick<TArrowProps, 'isOpen'> & {
6
+ export type TProps = Pick<TInputLabelProps, 'inFocus' | 'label'> & Pick<TPureInputProps, 'hasError' | 'placeholder' | 'name' | 'onFocus' | 'onBlur' | 'value' | 'onClick'> & Pick<TArrowProps, 'isOpen'> & {
7
7
  onReset?: () => void;
8
8
  size?: TSizes;
9
9
  };
10
- export declare const Input: FC<TProps>;
10
+ export declare const Input: React.ForwardRefExoticComponent<Pick<TInputLabelProps, "label" | "inFocus"> & Pick<TPureInputProps, "name" | "value" | "placeholder" | "onFocus" | "onBlur" | "onClick" | "hasError"> & Pick<TArrowProps, "isOpen"> & {
11
+ onReset?: (() => void) | undefined;
12
+ size?: TSizes | undefined;
13
+ } & React.RefAttributes<HTMLInputElement>>;
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.Input = void 0;
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
  var S = _interopRequireWildcard(require("./styles"));
10
10
  var _InputLabel = require("../../../InputLabel");
11
11
  var _PureInput = require("../../../PureInput");
@@ -14,9 +14,8 @@ var _ResetButton = require("../../../ResetButton");
14
14
  var _constants = require("../../../constants");
15
15
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
16
16
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
17
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
18
17
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
19
- var Input = exports.Input = function Input(_ref) {
18
+ var Input = exports.Input = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
20
19
  var hasError = _ref.hasError,
21
20
  inFocus = _ref.inFocus,
22
21
  placeholder = _ref.placeholder,
@@ -28,12 +27,14 @@ var Input = exports.Input = function Input(_ref) {
28
27
  isOpen = _ref.isOpen,
29
28
  onReset = _ref.onReset,
30
29
  _ref$size = _ref.size,
31
- size = _ref$size === void 0 ? 'M' : _ref$size;
30
+ size = _ref$size === void 0 ? 'M' : _ref$size,
31
+ onClick = _ref.onClick;
32
32
  var isShowResetIcon = !!value && !!onReset;
33
33
  return /*#__PURE__*/_react["default"].createElement(_InputLabel.InputLabel, {
34
34
  inFocus: inFocus,
35
35
  label: label
36
36
  }, /*#__PURE__*/_react["default"].createElement(S.ControlWrapper, null, /*#__PURE__*/_react["default"].createElement(_PureInput.PureInput, _extends({
37
+ ref: ref,
37
38
  hasError: hasError,
38
39
  inFocus: inFocus,
39
40
  name: name,
@@ -42,7 +43,8 @@ var Input = exports.Input = function Input(_ref) {
42
43
  onBlur: onBlur,
43
44
  value: value,
44
45
  readOnly: true,
45
- paddingRight: 52
46
+ paddingRight: 52,
47
+ onClick: onClick
46
48
  }, _constants.SIZE_PARAMS_MAP[size])), /*#__PURE__*/_react["default"].createElement(S.IconWrapper, {
47
49
  $pointerEvents: isShowResetIcon ? 'default' : 'none'
48
50
  }, isShowResetIcon ? /*#__PURE__*/_react["default"].createElement(_ResetButton.ResetButton, {
@@ -50,4 +52,5 @@ var Input = exports.Input = function Input(_ref) {
50
52
  }) : /*#__PURE__*/_react["default"].createElement(_Arrow.Arrow, {
51
53
  isOpen: isOpen
52
54
  }))));
53
- };
55
+ });
56
+ Input.displayName = 'Input';
@@ -10,7 +10,7 @@ export type TGroup = {
10
10
  label: string;
11
11
  id: string;
12
12
  };
13
- export type TProps<TValue> = Pick<TInputProps, 'label' | 'hasError' | 'placeholder' | 'onFocus' | 'onBlur' | 'name' | 'size'> & {
13
+ export type TProps<TValue> = Pick<TInputProps, 'label' | 'hasError' | 'placeholder' | 'name' | 'size'> & {
14
14
  value: TValue | null;
15
15
  onChange: (value: TValue | null) => void;
16
16
  options: TOption<TValue>[];
@@ -18,5 +18,7 @@ export type TProps<TValue> = Pick<TInputProps, 'label' | 'hasError' | 'placehold
18
18
  isResetButtonEnabled?: boolean;
19
19
  renderOption?: (entity?: any) => ReactNode;
20
20
  dropdownHeader?: ReactNode;
21
+ isDrawerOptions?: boolean;
22
+ scrollbarMaxHeight?: number;
21
23
  };
22
- export declare const Select: <TValue extends string | number>({ label, hasError, placeholder, onFocus, onBlur, name, value, onChange, options, groups, isResetButtonEnabled, size, renderOption, dropdownHeader, }: TProps<TValue>) => import("react/jsx-runtime").JSX.Element;
24
+ export declare const Select: <TValue extends string | number>({ label, hasError, placeholder, name, value, onChange, options, groups, isResetButtonEnabled, size, renderOption, dropdownHeader, isDrawerOptions, scrollbarMaxHeight, }: TProps<TValue>) => import("react/jsx-runtime").JSX.Element;
@@ -14,6 +14,7 @@ var _Scrollbar = require("../../common/Scrollbar");
14
14
  var _useOutsideClick = require("../../../hooks/useOutsideClick");
15
15
  var _palette = require("../../../palette");
16
16
  var _useOptionGroups = require("./hooks/useOptionGroups");
17
+ var _Drawer = require("../../common/Drawer");
17
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
18
19
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
19
20
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
@@ -22,14 +23,12 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
22
23
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
23
24
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
24
25
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
25
- var LIST_HEIGHT = 294;
26
+ var MAX_LIST_HEIGHT = 294;
26
27
  var OPTION_IDENTIFIER = 'option-identifier';
27
28
  var Select = exports.Select = function Select(_ref) {
28
29
  var label = _ref.label,
29
30
  hasError = _ref.hasError,
30
31
  placeholder = _ref.placeholder,
31
- onFocus = _ref.onFocus,
32
- onBlur = _ref.onBlur,
33
32
  name = _ref.name,
34
33
  value = _ref.value,
35
34
  onChange = _ref.onChange,
@@ -40,12 +39,13 @@ var Select = exports.Select = function Select(_ref) {
40
39
  isResetButtonEnabled = _ref$isResetButtonEna === void 0 ? false : _ref$isResetButtonEna,
41
40
  size = _ref.size,
42
41
  renderOption = _ref.renderOption,
43
- dropdownHeader = _ref.dropdownHeader;
42
+ dropdownHeader = _ref.dropdownHeader,
43
+ _ref$isDrawerOptions = _ref.isDrawerOptions,
44
+ isDrawerOptions = _ref$isDrawerOptions === void 0 ? false : _ref$isDrawerOptions,
45
+ _ref$scrollbarMaxHeig = _ref.scrollbarMaxHeight,
46
+ scrollbarMaxHeight = _ref$scrollbarMaxHeig === void 0 ? MAX_LIST_HEIGHT : _ref$scrollbarMaxHeig;
44
47
  var palette = (0, _palette.useComponentPalette)('select');
45
- var _useInputFocus = (0, _useInputFocus2.useInputFocus)({
46
- onFocus: onFocus,
47
- onBlur: onBlur
48
- }),
48
+ var _useInputFocus = (0, _useInputFocus2.useInputFocus)(),
49
49
  inFocus = _useInputFocus.inFocus,
50
50
  focusHandler = _useInputFocus.handleFocus,
51
51
  blurHandler = _useInputFocus.handleBlur;
@@ -66,6 +66,7 @@ var Select = exports.Select = function Select(_ref) {
66
66
  так появилась логика delayBlur
67
67
  */
68
68
  var delayBlur = (0, _react.useRef)(null);
69
+ var inputRef = (0, _react.useRef)(null);
69
70
  var selectedOption = (0, _react.useMemo)(function () {
70
71
  return options.find(function (option) {
71
72
  return option.value === value;
@@ -106,27 +107,12 @@ var Select = exports.Select = function Select(_ref) {
106
107
  var handleReset = (0, _react.useCallback)(function () {
107
108
  return onChange(null);
108
109
  }, [onChange]);
109
- return /*#__PURE__*/_react["default"].createElement(S.Wrapper, {
110
- ref: wrapperRef
111
- }, /*#__PURE__*/_react["default"].createElement(S.InputWrapper, null, /*#__PURE__*/_react["default"].createElement(_Input.Input, {
112
- label: label,
113
- hasError: hasError,
114
- inFocus: inFocus,
115
- placeholder: placeholder,
116
- onFocus: handleFocus,
117
- onBlur: handleBlur,
118
- value: (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) || '',
119
- name: name,
120
- isOpen: isOpen,
121
- onReset: isResetButtonEnabled ? handleReset : undefined,
122
- size: size
123
- })), /*#__PURE__*/_react["default"].createElement(_Dropdown.Dropdown, {
124
- isOpen: isOpen,
125
- isAutoPosition: true,
126
- width: "100%"
127
- }, /*#__PURE__*/_react["default"].createElement(_Scrollbar.Scrollbar, {
128
- maxHeight: LIST_HEIGHT
129
- }, dropdownHeader, optionGroups.map(function (_ref2) {
110
+ var handleInputClick = function handleInputClick() {
111
+ var _inputRef$current;
112
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.blur();
113
+ handleShow();
114
+ };
115
+ var dropdownContent = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, dropdownHeader, optionGroups.map(function (_ref2) {
130
116
  var group = _ref2.group,
131
117
  groupOptions = _ref2.options;
132
118
  return /*#__PURE__*/_react["default"].createElement(_react.Fragment, {
@@ -144,5 +130,34 @@ var Select = exports.Select = function Select(_ref) {
144
130
  $isGrouped: !!group
145
131
  }, renderOption ? renderOption(option.entity) : /*#__PURE__*/_react["default"].createElement(S.DefaultOptionWrapper, null, " ", option.label));
146
132
  }));
147
- }))));
133
+ }));
134
+ return /*#__PURE__*/_react["default"].createElement(S.Wrapper, {
135
+ ref: isDrawerOptions ? undefined : wrapperRef
136
+ }, /*#__PURE__*/_react["default"].createElement(S.InputWrapper, null, /*#__PURE__*/_react["default"].createElement(_Input.Input, {
137
+ ref: inputRef,
138
+ label: label,
139
+ hasError: hasError,
140
+ inFocus: inFocus,
141
+ placeholder: placeholder,
142
+ onFocus: isDrawerOptions ? undefined : handleFocus,
143
+ onBlur: isDrawerOptions ? undefined : handleBlur,
144
+ value: (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) || '',
145
+ name: name,
146
+ isOpen: isOpen,
147
+ onReset: isResetButtonEnabled ? handleReset : undefined,
148
+ size: size,
149
+ onClick: isDrawerOptions ? handleInputClick : undefined
150
+ })), isDrawerOptions ? /*#__PURE__*/_react["default"].createElement(_Drawer.Drawer, {
151
+ onClose: handleHide,
152
+ isOpen: isOpen,
153
+ isPadding: false
154
+ }, /*#__PURE__*/_react["default"].createElement(S.DrawerContent, null, /*#__PURE__*/_react["default"].createElement(_Scrollbar.Scrollbar, {
155
+ maxHeight: scrollbarMaxHeight
156
+ }, dropdownContent, /*#__PURE__*/_react["default"].createElement(S.DrawerBottom, null)))) : /*#__PURE__*/_react["default"].createElement(_Dropdown.Dropdown, {
157
+ isOpen: isOpen,
158
+ isAutoPosition: true,
159
+ width: "100%"
160
+ }, /*#__PURE__*/_react["default"].createElement(_Scrollbar.Scrollbar, {
161
+ maxHeight: scrollbarMaxHeight
162
+ }, dropdownContent)));
148
163
  };
@@ -8,3 +8,5 @@ export declare const Option: import("styled-components/dist/types").IStyledCompo
8
8
  }>> & string & Omit<import("react").FC<import("../../common/Typography").TTypographyProps>, keyof import("react").Component<any, {}, any>>;
9
9
  export declare const Group: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("../../common/Typography").TTypographyProps & import("styled-components/dist/types").BaseObject, import("styled-components/dist/types").BaseObject>> & string & Omit<import("react").FC<import("../../common/Typography").TTypographyProps>, keyof import("react").Component<any, {}, any>>;
10
10
  export declare const DefaultOptionWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
11
+ export declare const DrawerContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
12
+ export declare const DrawerBottom: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
@@ -4,7 +4,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.Wrapper = exports.Option = exports.InputWrapper = exports.Group = exports.DefaultOptionWrapper = void 0;
7
+ exports.Wrapper = exports.Option = exports.InputWrapper = exports.Group = exports.DrawerContent = exports.DrawerBottom = exports.DefaultOptionWrapper = void 0;
8
8
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
9
  var _Typography = require("../../common/Typography");
10
10
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
@@ -34,4 +34,12 @@ var Group = exports.Group = (0, _styledComponents["default"])(_Typography.Typogr
34
34
  var DefaultOptionWrapper = exports.DefaultOptionWrapper = _styledComponents["default"].div.withConfig({
35
35
  displayName: "styles__DefaultOptionWrapper",
36
36
  componentId: "sc-1x9n0z5-4"
37
- })(["padding:12px 20px;"]);
37
+ })(["padding:12px 20px;"]);
38
+ var DrawerContent = exports.DrawerContent = _styledComponents["default"].div.withConfig({
39
+ displayName: "styles__DrawerContent",
40
+ componentId: "sc-1x9n0z5-5"
41
+ })(["padding-top:36px;"]);
42
+ var DrawerBottom = exports.DrawerBottom = _styledComponents["default"].div.withConfig({
43
+ displayName: "styles__DrawerBottom",
44
+ componentId: "sc-1x9n0z5-6"
45
+ })(["height:36px;"]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@invoicebox/ui",
3
- "version": "0.1.0-alpha.182",
3
+ "version": "0.1.0-alpha.184",
4
4
  "description": "Invoicebox UI",
5
5
  "license": "Apache License 2.0",
6
6
  "scripts": {