@jobber/components 4.24.1 → 4.24.3

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,9 +1,15 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import { XOR } from "ts-xor";
3
3
  import { GroupOption, Option } from "./Option";
4
+ import { InputTextRef } from "../InputText";
4
5
  import { FormFieldProps } from "../FormField";
5
6
  type OptionCollection = XOR<Option[], GroupOption[]>;
6
- interface AutocompleteProps extends Pick<FormFieldProps, "inputRef" | "invalid" | "name" | "onBlur" | "onFocus" | "prefix" | "size" | "suffix" | "validations"> {
7
+ interface AutocompleteProps extends Pick<FormFieldProps, "invalid" | "name" | "onBlur" | "onFocus" | "prefix" | "size" | "suffix" | "validations"> {
8
+ /**
9
+ * @deprecated
10
+ * Use `ref` instead.
11
+ */
12
+ readonly inputRef?: FormFieldProps["inputRef"];
7
13
  /**
8
14
  * Initial options to show when user first focuses the Autocomplete
9
15
  */
@@ -40,5 +46,5 @@ interface AutocompleteProps extends Pick<FormFieldProps, "inputRef" | "invalid"
40
46
  */
41
47
  readonly placeholder: string;
42
48
  }
43
- export declare function Autocomplete({ initialOptions, value, allowFreeForm, size, debounce: debounceRate, onChange, getOptions, placeholder, onBlur, onFocus, validations, ...inputProps }: AutocompleteProps): JSX.Element;
49
+ export declare const Autocomplete: React.ForwardRefExoticComponent<AutocompleteProps & React.RefAttributes<InputTextRef>>;
44
50
  export {};
@@ -13,10 +13,10 @@ var reactPopper = require('react-popper');
13
13
  var Text = require('../Text-e7ed0974.js');
14
14
  var Icon = require('../Icon-405a216c.js');
15
15
  var Heading = require('../Heading-a1191b15.js');
16
- var InputText = require('../InputText-e9b345ff.js');
16
+ var InputText = require('../InputText-13fda8a4.js');
17
17
  require('../Typography-fd6f932a.js');
18
18
  require('@jobber/design');
19
- require('../FormField-090113ec.js');
19
+ require('../FormField-f75add82.js');
20
20
  require('uuid');
21
21
  require('react-hook-form');
22
22
  require('../Button-7698424c.js');
@@ -147,7 +147,7 @@ function useRepositionMenu(attachTo, visible = false) {
147
147
 
148
148
  // Max statements increased to make room for the debounce functions
149
149
  /* eslint max-statements: ["error", 14] */
150
- function Autocomplete(_a) {
150
+ function AutocompleteInternal(_a, ref) {
151
151
  var _b;
152
152
  var { initialOptions = [], value, allowFreeForm = true, size = undefined, debounce: debounceRate = 300, onChange, getOptions, placeholder, onBlur, onFocus, validations } = _a, inputProps = tslib_es6.__rest(_a, ["initialOptions", "value", "allowFreeForm", "size", "debounce", "onChange", "getOptions", "placeholder", "onBlur", "onFocus", "validations"]);
153
153
  const [options, setOptions] = React.useState(initialOptions);
@@ -164,7 +164,7 @@ function Autocomplete(_a) {
164
164
  updateInput((_a = value === null || value === void 0 ? void 0 : value.label) !== null && _a !== void 0 ? _a : "");
165
165
  }, [value]);
166
166
  return (React__default["default"].createElement("div", { className: styles.autocomplete, ref: autocompleteRef },
167
- React__default["default"].createElement(InputText.InputText, Object.assign({ autocomplete: false, size: size, value: inputText, onChange: handleInputChange, placeholder: placeholder, onFocus: handleInputFocus, onBlur: handleInputBlur, validations: validations }, inputProps)),
167
+ React__default["default"].createElement(InputText.InputText, Object.assign({ ref: ref, autocomplete: false, size: size, value: inputText, onChange: handleInputChange, placeholder: placeholder, onFocus: handleInputFocus, onBlur: handleInputBlur, validations: validations }, inputProps)),
168
168
  menuVisible && (React__default["default"].createElement(Menu, { attachTo: autocompleteRef, visible: menuVisible && options.length > 0, options: options, selectedOption: value, onOptionSelect: handleMenuChange }))));
169
169
  function updateInput(newText) {
170
170
  setInputText(newText);
@@ -214,5 +214,6 @@ function mapToOptions(items) {
214
214
  return result;
215
215
  }, []);
216
216
  }
217
+ const Autocomplete = React.forwardRef(AutocompleteInternal);
217
218
 
218
219
  exports.Autocomplete = Autocomplete;
@@ -8,10 +8,10 @@ var React = require('react');
8
8
  var jobberHooks = require('@jobber/hooks/useResizeObserver');
9
9
  var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
10
10
  var tslib_es6 = require('../tslib.es6-5b8768b7.js');
11
- var Option = require('../Option-8277f540.js');
11
+ var Option = require('../Option-1ac0003d.js');
12
12
  var Button = require('../Button-7698424c.js');
13
13
  var Text = require('../Text-e7ed0974.js');
14
- require('../FormField-090113ec.js');
14
+ require('../FormField-f75add82.js');
15
15
  require('uuid');
16
16
  require('react-hook-form');
17
17
  require('../Icon-405a216c.js');
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var FormField = require('../FormField-090113ec.js');
5
+ var FormField = require('../FormField-f75add82.js');
6
6
  require('../tslib.es6-5b8768b7.js');
7
7
  require('react');
8
8
  require('uuid');
@@ -83,7 +83,9 @@ function FormFieldWrapper({ align, description, descriptionIdentifier, placehold
83
83
  React__default["default"].createElement("div", { className: wrapperClasses, style: wrapperInlineStyle },
84
84
  (prefix === null || prefix === void 0 ? void 0 : prefix.icon) && React__default["default"].createElement(AffixIcon, Object.assign({}, prefix, { size: size })),
85
85
  React__default["default"].createElement("div", { className: styles.inputWrapper },
86
- React__default["default"].createElement("label", { className: styles.label, htmlFor: identifier, style: (prefixRef === null || prefixRef === void 0 ? void 0 : prefixRef.current) || (suffixRef === null || suffixRef === void 0 ? void 0 : suffixRef.current) ? labelStyle : undefined }, placeholder),
86
+ placeholder && (React__default["default"].createElement("label", { className: styles.label, htmlFor: identifier, style: (prefixRef === null || prefixRef === void 0 ? void 0 : prefixRef.current) || (suffixRef === null || suffixRef === void 0 ? void 0 : suffixRef.current)
87
+ ? labelStyle
88
+ : undefined }, placeholder)),
87
89
  (prefix === null || prefix === void 0 ? void 0 : prefix.label) && React__default["default"].createElement(AffixLabel, Object.assign({}, prefix, { labelRef: prefixRef })),
88
90
  React__default["default"].createElement("div", { className: styles.childrenWrapper }, children),
89
91
  (suffix === null || suffix === void 0 ? void 0 : suffix.label) && (React__default["default"].createElement(AffixLabel, Object.assign({}, suffix, { labelRef: suffixRef, variation: "suffix" })))),
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var omit = require('lodash/omit');
6
6
  var React = require('react');
7
- var FormField = require('../FormField-090113ec.js');
7
+ var FormField = require('../FormField-f75add82.js');
8
8
  var DatePicker = require('../DatePicker-38b0c40b.js');
9
9
  require('../tslib.es6-5b8768b7.js');
10
10
  require('uuid');
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var FormField = require('../FormField-090113ec.js');
6
+ var FormField = require('../FormField-f75add82.js');
7
7
  require('../tslib.es6-5b8768b7.js');
8
8
  require('uuid');
9
9
  require('react-hook-form');
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var InputNumber = require('../InputNumber-80a381e9.js');
5
+ var InputNumber = require('../InputNumber-b5a7fe5a.js');
6
6
  require('react');
7
- require('../FormField-090113ec.js');
7
+ require('../FormField-f75add82.js');
8
8
  require('../tslib.es6-5b8768b7.js');
9
9
  require('uuid');
10
10
  require('react-hook-form');
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var FormField = require('./FormField-090113ec.js');
4
+ var FormField = require('./FormField-f75add82.js');
5
5
 
6
6
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
7
7
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var FormField = require('../FormField-090113ec.js');
6
+ var FormField = require('../FormField-f75add82.js');
7
7
  require('../tslib.es6-5b8768b7.js');
8
8
  require('uuid');
9
9
  require('react-hook-form');
@@ -6,7 +6,7 @@ var tslib_es6 = require('../tslib.es6-5b8768b7.js');
6
6
  var React = require('react');
7
7
  var reactHookForm = require('react-hook-form');
8
8
  var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
9
- var FormField = require('../FormField-090113ec.js');
9
+ var FormField = require('../FormField-f75add82.js');
10
10
  require('uuid');
11
11
  require('classnames');
12
12
  require('../Button-7698424c.js');
@@ -7,6 +7,7 @@ export interface InputTextRef {
7
7
  insert(text: string): void;
8
8
  blur(): void;
9
9
  focus(): void;
10
+ scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;
10
11
  }
11
12
  export declare const InputText: React.ForwardRefExoticComponent<({
12
13
  readonly multiline: true;
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var InputText = require('../InputText-e9b345ff.js');
5
+ var InputText = require('../InputText-13fda8a4.js');
6
6
  require('react');
7
- require('../FormField-090113ec.js');
7
+ require('../FormField-f75add82.js');
8
8
  require('../tslib.es6-5b8768b7.js');
9
9
  require('uuid');
10
10
  require('react-hook-form');
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var FormField = require('./FormField-090113ec.js');
4
+ var FormField = require('./FormField-f75add82.js');
5
5
 
6
6
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
7
7
 
8
8
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
9
9
 
10
10
  function InputTextInternal(props, ref) {
11
- const inputRef = React.createRef();
12
- const actionsRef = React.createRef();
11
+ const inputRef = React.useRef(null);
12
+ const actionsRef = React.useRef(null);
13
13
  const rowRange = getRowRange();
14
14
  React.useImperativeHandle(ref, () => ({
15
15
  insert: (text) => {
@@ -27,6 +27,12 @@ function InputTextInternal(props, ref) {
27
27
  input.focus();
28
28
  }
29
29
  },
30
+ scrollIntoView: arg => {
31
+ const input = inputRef.current;
32
+ if (input) {
33
+ input.scrollIntoView(arg);
34
+ }
35
+ },
30
36
  }));
31
37
  React.useLayoutEffect(() => {
32
38
  if (inputRef && inputRef.current instanceof HTMLTextAreaElement) {
@@ -6,7 +6,7 @@ var tslib_es6 = require('../tslib.es6-5b8768b7.js');
6
6
  var React = require('react');
7
7
  var debounce = require('lodash/debounce');
8
8
  var temporal = require('@std-proposal/temporal');
9
- var FormField = require('../FormField-090113ec.js');
9
+ var FormField = require('../FormField-f75add82.js');
10
10
  require('uuid');
11
11
  require('react-hook-form');
12
12
  require('../style-inject.es-9d2f5f4e.js');
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var FormField = require('./FormField-090113ec.js');
4
+ var FormField = require('./FormField-f75add82.js');
5
5
 
6
6
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
7
7
 
@@ -9,11 +9,11 @@ var RadioGroup = require('../RadioGroup-67a5f560.js');
9
9
  var Text = require('../Text-e7ed0974.js');
10
10
  require('classnames');
11
11
  require('../Typography-fd6f932a.js');
12
- var Option = require('../Option-8277f540.js');
13
- var InputNumber = require('../InputNumber-80a381e9.js');
12
+ var Option = require('../Option-1ac0003d.js');
13
+ var InputNumber = require('../InputNumber-b5a7fe5a.js');
14
14
  var InputGroup = require('../InputGroup-34e64048.js');
15
15
  var Content = require('../Content-a6590328.js');
16
- require('../FormField-090113ec.js');
16
+ require('../FormField-f75add82.js');
17
17
  require('../tslib.es6-5b8768b7.js');
18
18
  require('react-hook-form');
19
19
  require('../Button-7698424c.js');
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Option = require('../Option-8277f540.js');
5
+ var Option = require('../Option-1ac0003d.js');
6
6
  require('react');
7
- require('../FormField-090113ec.js');
7
+ require('../FormField-f75add82.js');
8
8
  require('../tslib.es6-5b8768b7.js');
9
9
  require('uuid');
10
10
  require('react-hook-form');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobber/components",
3
- "version": "4.24.1",
3
+ "version": "4.24.3",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -83,5 +83,5 @@
83
83
  "> 1%",
84
84
  "IE 10"
85
85
  ],
86
- "gitHead": "b464a5ae9d3305c1dc1b92d99dc93bd042fefb7f"
86
+ "gitHead": "33085d6b006f5be78d2cc3c48ebba91d419cb461"
87
87
  }