flipper-ui 0.29.5 → 0.29.7

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.
@@ -77,6 +77,7 @@ var renderEditMode = function renderEditMode(column, row, updateRow, errors) {
77
77
  var type = column.type === 'number' ? 'number' : 'text';
78
78
  var value = row[column.field];
79
79
  return /*#__PURE__*/_react["default"].createElement(_textField["default"], {
80
+ options: column.options,
80
81
  defaultValue: value,
81
82
  type: type,
82
83
  fullWidth: true,
@@ -1,3 +1,4 @@
1
+ import { IOption } from '@/core/inputs/text-field';
1
2
  import type { CSSProperties, FunctionComponent } from 'react';
2
3
  export type RecordUnknown = Record<string, unknown>;
3
4
  export type StackView = RecordUnknown;
@@ -29,6 +30,7 @@ interface ColumnSpecDefault<D extends Data> extends ColumnSpecBase<RenderCellPro
29
30
  type: ColumnType;
30
31
  field: keyof D;
31
32
  editable?: boolean;
33
+ options?: string | IOption[];
32
34
  getValue?(value: unknown): string;
33
35
  }
34
36
  export type ActionsCellProps<D extends Data> = {
@@ -1,8 +1,15 @@
1
1
  import { TextFieldProps as MuiTextFieldProps } from '@material-ui/core';
2
2
  import React, { ChangeEvent, KeyboardEvent, FocusEvent, ReactNode, MouseEvent } from 'react';
3
3
  import { DefaultProps } from '../../types';
4
+ export interface IOption {
5
+ label: string;
6
+ name?: string;
7
+ disabled?: boolean;
8
+ value: string | number;
9
+ }
4
10
  export interface TextFieldProps extends DefaultProps, Omit<MuiTextFieldProps, 'margin' | 'variant'> {
5
11
  autoComplete?: string;
12
+ options?: IOption[] | string;
6
13
  autoFocus?: boolean;
7
14
  defaultValue?: string | number;
8
15
  disabled?: boolean;
@@ -50,7 +57,10 @@ interface IEditProps extends Pick<TextFieldProps, 'showEdit' | 'style'> {
50
57
  export declare const TextFieldWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
51
58
  export declare const StaticTextFieldWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
52
59
  export declare const useStyles: (props?: any) => import("@material-ui/styles").ClassNameMap<"input" | "iconOutlined" | "outlinedInput" | "outlinedLabel" | "outlinedMultiline">;
60
+ export declare const coerceComboOptions: (input: string) => IOption[];
61
+ export declare const toLispCase: (name: string) => string;
53
62
  export declare const HelperBox: (props: IHelperProps) => JSX.Element;
63
+ export declare const renderOptions: (options: TextFieldProps['options']) => "" | JSX.Element[] | undefined;
54
64
  export declare const EditBox: (props: IEditProps) => JSX.Element;
55
- export declare const TextField: ({ margin, padding, style, error, variant, InputLabelProps, InputProps, SelectProps, autoComplete, onHelperClick, helperIcon, fullWidth, hasClear, onClear, ...otherProps }: TextFieldProps) => JSX.Element;
65
+ export declare const TextField: ({ options, margin, padding, style, error, variant, InputLabelProps, InputProps, SelectProps, autoComplete, onHelperClick, helperIcon, fullWidth, hasClear, onClear, children, ...otherProps }: TextFieldProps) => JSX.Element;
56
66
  export default TextField;
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.useStyles = exports["default"] = exports.TextFieldWrapper = exports.TextField = exports.StaticTextFieldWrapper = exports.HelperBox = exports.EditBox = void 0;
7
+ exports.useStyles = exports.toLispCase = exports.renderOptions = exports["default"] = exports.coerceComboOptions = exports.TextFieldWrapper = exports.TextField = exports.StaticTextFieldWrapper = exports.HelperBox = exports.EditBox = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
@@ -12,6 +12,7 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
12
12
  var _InputAdornment = _interopRequireDefault(require("@material-ui/core/InputAdornment"));
13
13
  var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
14
14
  var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
15
+ var _ListItem = _interopRequireDefault(require("@material-ui/core/ListItem"));
15
16
  var _styles = require("@material-ui/core/styles");
16
17
  var _react = _interopRequireDefault(require("react"));
17
18
  var _Clear = _interopRequireDefault(require("@material-ui/icons/Clear"));
@@ -20,7 +21,15 @@ var _Edit = _interopRequireDefault(require("@material-ui/icons/Edit"));
20
21
  var _Save = _interopRequireDefault(require("@material-ui/icons/Save"));
21
22
  var _iconButton = _interopRequireDefault(require("../icon-button"));
22
23
  var _styledComponents = _interopRequireDefault(require("styled-components"));
23
- var _excluded = ["margin", "padding", "style", "error", "variant", "InputLabelProps", "InputProps", "SelectProps", "autoComplete", "onHelperClick", "helperIcon", "fullWidth", "hasClear", "onClear"];
24
+ var _when = _interopRequireDefault(require("ramda/es/when"));
25
+ var _is = _interopRequireDefault(require("ramda/es/is"));
26
+ var _pipe = _interopRequireDefault(require("ramda/es/pipe"));
27
+ var _split = _interopRequireDefault(require("ramda/es/split"));
28
+ var _map = _interopRequireDefault(require("ramda/es/map"));
29
+ var _zipObj = _interopRequireDefault(require("ramda/es/zipObj"));
30
+ var _reject = _interopRequireDefault(require("ramda/es/reject"));
31
+ var _propEq = _interopRequireDefault(require("ramda/es/propEq"));
32
+ var _excluded = ["options", "margin", "padding", "style", "error", "variant", "InputLabelProps", "InputProps", "SelectProps", "autoComplete", "onHelperClick", "helperIcon", "fullWidth", "hasClear", "onClear", "children"];
24
33
  var _templateObject, _templateObject2, _templateObject3;
25
34
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
26
35
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -52,6 +61,14 @@ var useStyles = (0, _styles.makeStyles)({
52
61
  }
53
62
  });
54
63
  exports.useStyles = useStyles;
64
+ var coerceComboOptions = (0, _when["default"])((0, _is["default"])(String), (0, _pipe["default"])((0, _split["default"])(';'), (0, _map["default"])((0, _pipe["default"])((0, _split["default"])('='), (0, _zipObj["default"])(['value', 'label']))), (0, _reject["default"])((0, _propEq["default"])('value', ''))));
65
+ exports.coerceComboOptions = coerceComboOptions;
66
+ var toLispCase = function toLispCase(name) {
67
+ return name.replace(/([a-z])([A-Z])/g, function (_, first, second) {
68
+ return first + '-' + second;
69
+ }).toLowerCase();
70
+ };
71
+ exports.toLispCase = toLispCase;
55
72
  var HelperBox = function HelperBox(props) {
56
73
  return /*#__PURE__*/_react["default"].createElement(Helper, {
57
74
  role: "helper-box"
@@ -62,7 +79,23 @@ var HelperBox = function HelperBox(props) {
62
79
  color: "primary"
63
80
  })));
64
81
  };
82
+ /* Jest-ignore-start ignore next */
65
83
  exports.HelperBox = HelperBox;
84
+ var renderOptions = function renderOptions(options) {
85
+ console.log(options);
86
+ var comboOptions = typeof options === 'string' ? coerceComboOptions(options) : options;
87
+ return options &&
88
+ // @ts-ignore
89
+ comboOptions.map(function (option) {
90
+ return /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
91
+ id: toLispCase("option-".concat(option.value)),
92
+ key: option.value,
93
+ disabled: option.disabled,
94
+ value: option.value
95
+ }, option.label);
96
+ });
97
+ };
98
+ exports.renderOptions = renderOptions;
66
99
  var EditBox = function EditBox(props) {
67
100
  return /*#__PURE__*/_react["default"].createElement("div", {
68
101
  role: "edit-box"
@@ -93,7 +126,8 @@ var renderEndAdornment = function renderEndAdornment(onClear) {
93
126
  })));
94
127
  };
95
128
  var TextField = function TextField(_ref) {
96
- var margin = _ref.margin,
129
+ var options = _ref.options,
130
+ margin = _ref.margin,
97
131
  padding = _ref.padding,
98
132
  _ref$style = _ref.style,
99
133
  style = _ref$style === void 0 ? {} : _ref$style,
@@ -113,6 +147,7 @@ var TextField = function TextField(_ref) {
113
147
  fullWidth = _ref.fullWidth,
114
148
  hasClear = _ref.hasClear,
115
149
  onClear = _ref.onClear,
150
+ children = _ref.children,
116
151
  otherProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
117
152
  var clearStyle = (0, _styles.makeStyles)({
118
153
  iconOutlined: {
@@ -134,6 +169,7 @@ var TextField = function TextField(_ref) {
134
169
  };
135
170
  var Wrapper = hasClear ? StaticTextFieldWrapper : TextFieldWrapper;
136
171
  return /*#__PURE__*/_react["default"].createElement(Wrapper, null, /*#__PURE__*/_react["default"].createElement(_TextField["default"], (0, _extends2["default"])({
172
+ select: !!(options !== null && options !== void 0 && options.length),
137
173
  fullWidth: fullWidth,
138
174
  autoComplete: autoComplete,
139
175
  error: error,
@@ -161,7 +197,7 @@ var TextField = function TextField(_ref) {
161
197
  iconOutlined: hasClear ? clearClass.iconOutlined : classes.iconOutlined
162
198
  }
163
199
  }, endAdornment), SelectProps)
164
- }, otherProps)), onHelperClick && /*#__PURE__*/_react["default"].createElement(HelperBox, {
200
+ }, otherProps), options ? renderOptions(options) : children), onHelperClick && /*#__PURE__*/_react["default"].createElement(HelperBox, {
165
201
  helperIcon: helperIcon,
166
202
  onHelperClick: handleClick
167
203
  }));
@@ -5,3 +5,4 @@ export declare const withInputAdornment: any;
5
5
  export declare const withHelperButton: any;
6
6
  export declare const withSelect: () => JSX.Element;
7
7
  export declare const useWithSelectAndClear: () => JSX.Element;
8
+ export declare const combobox: () => JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flipper-ui",
3
- "version": "0.29.5",
3
+ "version": "0.29.7",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "homepage": "https://flipper-ui.ngi.com.br/",
@@ -0,0 +1,8 @@
1
+ import { IOption, TextFieldProps } from '@/core/inputs/text-field';
2
+ interface IProps {
3
+ initialOption?: string;
4
+ inputProps?: TextFieldProps;
5
+ options?: IOption[] | string;
6
+ }
7
+ declare const Default: ({ inputProps, initialOption, options }: IProps) => JSX.Element;
8
+ export default Default;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _textField = _interopRequireDefault(require("../../core/inputs/text-field"));
12
+ var React = _interopRequireWildcard(require("react"));
13
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+ var Default = function Default(_ref) {
16
+ var inputProps = _ref.inputProps,
17
+ initialOption = _ref.initialOption,
18
+ options = _ref.options;
19
+ var _React$useState = React.useState(initialOption ? initialOption : ''),
20
+ _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
21
+ value = _React$useState2[0],
22
+ setValue = _React$useState2[1];
23
+ var handleChange = function handleChange(event) {
24
+ setValue(event.target.value);
25
+ };
26
+ var handleClear = function handleClear() {
27
+ setValue('');
28
+ };
29
+ return /*#__PURE__*/React.createElement(_textField["default"], (0, _extends2["default"])({
30
+ value: value,
31
+ onChange: handleChange,
32
+ onClear: handleClear
33
+ }, inputProps, {
34
+ options: options
35
+ }));
36
+ };
37
+ var _default = Default;
38
+ exports["default"] = _default;