linear-react-components-ui 0.4.75 → 0.4.76-beta.11

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.
Files changed (131) hide show
  1. package/.eslintrc.js +2 -5
  2. package/.tool-versions +1 -0
  3. package/.vscode/settings.json +8 -9
  4. package/README.md +33 -0
  5. package/config/jest/cssTransform.js +14 -0
  6. package/config/jest/fileTransform.js +12 -0
  7. package/config/jest/storageMock.js +40 -0
  8. package/jest.config.js +18 -0
  9. package/lib/alerts/alert.spec.js +133 -0
  10. package/lib/assets/styles/dropdown.scss +28 -2
  11. package/lib/assets/styles/effects.scss +12 -0
  12. package/lib/assets/styles/floatMenu.scss +0 -1
  13. package/lib/assets/styles/multiSelect.scss +105 -0
  14. package/lib/assets/styles/panel.scss +0 -1
  15. package/lib/assets/styles/periodpicker.scss +65 -0
  16. package/lib/assets/styles/popover.scss +9 -11
  17. package/lib/assets/styles/progress.scss +8 -1
  18. package/lib/assets/styles/select.scss +1 -0
  19. package/lib/assets/styles/table.scss +13 -5
  20. package/lib/assets/styles/tabs.scss +79 -44
  21. package/lib/assets/styles/treeview.scss +32 -0
  22. package/lib/avatar/avatar.spec.js +190 -0
  23. package/lib/avatar/index.js +6 -2
  24. package/lib/badge/badge.spec.js +127 -0
  25. package/lib/badge/index.js +3 -5
  26. package/lib/buttons/DefaultButton.js +7 -1
  27. package/lib/buttons/buttons.spec.js +504 -0
  28. package/lib/calendar/calendar.spec.js +171 -0
  29. package/lib/checkbox/Label.js +37 -0
  30. package/lib/checkbox/checkbox.spec.js +215 -0
  31. package/lib/checkbox/index.js +21 -6
  32. package/lib/dialog/Custom.js +7 -1
  33. package/lib/dialog/base/index.js +18 -6
  34. package/lib/dialog/dialog.spec.js +488 -0
  35. package/lib/dialog/form/index.js +23 -4
  36. package/lib/drawer/Drawer.js +3 -0
  37. package/lib/drawer/Drawer.spec.js +258 -0
  38. package/lib/drawer/Header.js +4 -1
  39. package/lib/drawer/index.js +4 -1
  40. package/lib/dropdown/Popup.js +1 -0
  41. package/lib/dropdown/dropdown.spec.js +168 -0
  42. package/lib/dropdown/withDropdown.js +10 -4
  43. package/lib/fieldset/fieldset.spec.js +329 -0
  44. package/lib/form/Field.js +2 -0
  45. package/lib/form/FieldNumber.js +10 -2
  46. package/lib/form/FieldPeriod.js +100 -0
  47. package/lib/form/form.spec.js +285 -0
  48. package/lib/form/helpers.js +9 -1
  49. package/lib/form/index.js +209 -222
  50. package/lib/form/withFieldHOC.js +2 -0
  51. package/lib/form/withFormSecurity.js +106 -0
  52. package/lib/gridlayout/GridRow.js +1 -1
  53. package/lib/gridlayout/gridLayout.spec.js +169 -0
  54. package/lib/icons/helper.js +16 -0
  55. package/lib/icons/icons.spec.js +86 -0
  56. package/lib/icons/index.js +2 -0
  57. package/lib/inputs/base/InputTextBase.js +24 -5
  58. package/lib/inputs/base/base.spec.js +690 -0
  59. package/lib/inputs/base/helpers.js +19 -3
  60. package/lib/inputs/color/color_input.spec.js +174 -0
  61. package/lib/inputs/color/index.js +2 -2
  62. package/lib/inputs/date/Dropdown.js +3 -3
  63. package/lib/inputs/date/date.spec.js +344 -0
  64. package/lib/inputs/date/helpers.js +36 -0
  65. package/lib/inputs/date/index.js +11 -9
  66. package/lib/inputs/mask/Cpf.js +9 -9
  67. package/lib/inputs/mask/input_mask.spec.js +590 -0
  68. package/lib/inputs/multiSelect/ActionButtons.js +68 -0
  69. package/lib/inputs/multiSelect/Dropdown.js +200 -0
  70. package/lib/inputs/multiSelect/helper.js +18 -0
  71. package/lib/inputs/multiSelect/index.js +343 -0
  72. package/lib/inputs/number/BaseNumber.js +1 -1
  73. package/lib/inputs/number/index.js +7 -5
  74. package/lib/inputs/number/numberfield.spec.js +215 -0
  75. package/lib/inputs/period/Dialog.js +38 -0
  76. package/lib/inputs/period/Dropdown.js +90 -0
  77. package/lib/inputs/period/PeriodList.js +79 -0
  78. package/lib/inputs/period/helper.js +118 -0
  79. package/lib/inputs/period/index.js +490 -0
  80. package/lib/inputs/search/search_input.spec.js +209 -0
  81. package/lib/inputs/select/Dropdown.js +4 -4
  82. package/lib/inputs/select/index.js +26 -3
  83. package/lib/inputs/select/multiple/index.js +9 -7
  84. package/lib/inputs/select/select.spec.js +391 -0
  85. package/lib/inputs/select/simple/index.js +30 -18
  86. package/lib/inputs/text/textfield.spec.js +215 -0
  87. package/lib/inputs/textarea/textarea.spec.js +59 -0
  88. package/lib/internals/withTooltip.js +86 -82
  89. package/lib/labelMessages/index.js +3 -2
  90. package/lib/labelMessages/labelMessages.spec.js +176 -0
  91. package/lib/labels/label.spec.js +162 -0
  92. package/lib/list/Item.js +3 -3
  93. package/lib/list/index.js +21 -10
  94. package/lib/list/list.spec.js +611 -0
  95. package/lib/menus/float/MenuItem.js +25 -8
  96. package/lib/menus/float/float-menu.spec.js +221 -0
  97. package/lib/menus/sidenav/index.js +7 -3
  98. package/lib/menus/sidenav/popup_menu_search/index.js +1 -1
  99. package/lib/menus/sidenav/sidenav.spec.js +312 -0
  100. package/lib/noPermission/index.js +2 -1
  101. package/lib/panel/panel.spec.js +216 -0
  102. package/lib/popover/index.js +2 -1
  103. package/lib/popover/popover.spec.js +146 -0
  104. package/lib/progress/Bar.js +40 -9
  105. package/lib/progress/index.js +12 -4
  106. package/lib/progress/progress.spec.js +86 -0
  107. package/lib/radio/radio.spec.js +189 -0
  108. package/lib/spinner/SpinnerLoading.js +14 -24
  109. package/lib/spinner/index.js +6 -1
  110. package/lib/spinner/spinner.spec.js +152 -0
  111. package/lib/split/Split.js +10 -12
  112. package/lib/split/split.spec.js +151 -0
  113. package/lib/table/Header.js +3 -1
  114. package/lib/table/Row.js +2 -5
  115. package/lib/table/index.js +1 -4
  116. package/lib/table/table.spec.js +352 -0
  117. package/lib/tabs/DropdownItems.js +84 -0
  118. package/lib/tabs/Menu.js +18 -5
  119. package/lib/tabs/MenuItems.js +7 -7
  120. package/lib/tabs/Panel.js +1 -3
  121. package/lib/tabs/index.js +151 -20
  122. package/lib/tabs/tabs.spec.js +349 -0
  123. package/lib/toolbar/index.js +8 -4
  124. package/lib/toolbar/toolbar.spec.js +394 -0
  125. package/lib/tooltip/index.js +20 -6
  126. package/lib/tooltip/tooltip.spec.js +203 -0
  127. package/lib/treeview/Node.js +347 -48
  128. package/lib/treeview/index.js +456 -35
  129. package/lib/treeview/treeview.spec.js +261 -0
  130. package/package.json +19 -9
  131. package/.DS_Store +0 -0
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ require("@testing-library/jest-dom/extend-expect");
10
+
11
+ var _index = _interopRequireDefault(require("./index"));
12
+
13
+ var _storageMock = _interopRequireWildcard(require("../../../../config/jest/storageMock"));
14
+
15
+ 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); }
16
+
17
+ 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; }
18
+
19
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
20
+
21
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
22
+
23
+ var searchField = function searchField(fieldProps, advancedFilterProps) {
24
+ return /*#__PURE__*/_react["default"].createElement(_index["default"], _extends({
25
+ advancedFilterProps: _extends({
26
+ headerTitle: 'Pesquisa Avançada',
27
+ content: 'Conteúdo da Pesquisa'
28
+ }, advancedFilterProps)
29
+ }, fieldProps));
30
+ };
31
+
32
+ describe('SearchField', function () {
33
+ it('should render correctly', function () {
34
+ var _render = (0, _react2.render)(searchField()),
35
+ container = _render.container;
36
+
37
+ expect(container.firstChild).toBeTruthy();
38
+ });
39
+ it('should be apply value', function () {
40
+ var value = '1 ';
41
+
42
+ var _render2 = (0, _react2.render)(searchField({
43
+ value: value
44
+ })),
45
+ container = _render2.container;
46
+
47
+ var inputHTML = container.querySelector('.textinput');
48
+ expect(inputHTML.value).toBe(value);
49
+ });
50
+ it('should apply textAlign', function () {
51
+ var textAlign = 'left';
52
+
53
+ var _render3 = (0, _react2.render)(searchField({
54
+ textAlign: textAlign
55
+ })),
56
+ container = _render3.container;
57
+
58
+ var inputHTML = container.querySelector('.textinput');
59
+ expect(inputHTML).toHaveClass("text-align-".concat(textAlign));
60
+ });
61
+ it('should apply resetButton and execute onReset callback', function () {
62
+ var onReset = jest.fn();
63
+
64
+ var _render4 = (0, _react2.render)(searchField({
65
+ onReset: onReset,
66
+ resetButton: true,
67
+ value: 'foo'
68
+ })),
69
+ getAllByTestId = _render4.getAllByTestId;
70
+
71
+ _react2.fireEvent.click(getAllByTestId('icon')[0]);
72
+
73
+ expect(onReset).toBeCalled();
74
+ });
75
+ describe('advancedFilterProps', function () {
76
+ it('should drawerHeader content headerTitle', function () {
77
+ var _render5 = (0, _react2.render)(searchField()),
78
+ container = _render5.container;
79
+
80
+ _react2.fireEvent.click(container.querySelector('.button-component'));
81
+
82
+ expect(document.querySelector('.drawerheader')).toHaveTextContent('Pesquisa Avançada');
83
+ });
84
+ it('should drawerContent to have content', function () {
85
+ var _render6 = (0, _react2.render)(searchField()),
86
+ container = _render6.container;
87
+
88
+ _react2.fireEvent.click(container.querySelector('.button-component'));
89
+
90
+ expect(document.querySelector('.drawercontent')).toHaveTextContent('Conteúdo da Pesquisa');
91
+ });
92
+ it('should execute onStateChange on Drawer Open', function () {
93
+ var onStateChange = jest.fn();
94
+
95
+ var _render7 = (0, _react2.render)(searchField({}, {
96
+ onStateChange: onStateChange
97
+ })),
98
+ container = _render7.container;
99
+
100
+ _react2.fireEvent.click(container.querySelector('.button-component'));
101
+
102
+ expect(onStateChange).toBeCalledTimes(1);
103
+ });
104
+ });
105
+ describe('Permission', function () {
106
+ var setSessionStorageMock = function setSessionStorageMock() {
107
+ Object.defineProperty(window, 'sessionStorage', {
108
+ value: (0, _storageMock["default"])()
109
+ });
110
+ };
111
+
112
+ it('should render subject when permission granted', function () {
113
+ setSessionStorageMock();
114
+ var permissionAttr = (0, _storageMock.permissionAttrMockAuthorized)('unvisible');
115
+
116
+ var _render8 = (0, _react2.render)(searchField({
117
+ permissionAttr: permissionAttr
118
+ })),
119
+ container = _render8.container;
120
+
121
+ expect(container.querySelector('.input-base-component')).not.toBeNull();
122
+ });
123
+ it('should check permission, be unavaible and onDenied is unvisible', function () {
124
+ setSessionStorageMock();
125
+ var permissionAttr = (0, _storageMock.permissionAttrMockUnauthorized)('unvisible');
126
+
127
+ var _render9 = (0, _react2.render)(searchField({
128
+ permissionAttr: permissionAttr
129
+ })),
130
+ container = _render9.container;
131
+
132
+ expect(container.querySelector('.input-base-component')).toBeNull();
133
+ });
134
+ it('should check permission, be unavaible and onDenied is disabled', function () {
135
+ setSessionStorageMock();
136
+ var permissionAttr = (0, _storageMock.permissionAttrMockUnauthorized)('disabled');
137
+ var onChange = jest.fn();
138
+
139
+ var _render10 = (0, _react2.render)(searchField({
140
+ permissionAttr: permissionAttr,
141
+ onChange: onChange
142
+ })),
143
+ container = _render10.container;
144
+
145
+ var inputHTML = container.querySelector('.textinput');
146
+ var inputWrapper = container.querySelector('.inputwrapper');
147
+
148
+ _react2.fireEvent.change(inputHTML, {
149
+ target: {
150
+ value: 'sus'
151
+ }
152
+ });
153
+
154
+ expect(inputHTML.disabled).toBeTruthy();
155
+ expect(onChange).not.toBeCalled();
156
+ expect(inputWrapper).toHaveClass('-disabled');
157
+ });
158
+ it('should check permission, be unavaible and onDenied is readOnly', function () {
159
+ setSessionStorageMock();
160
+ var permissionAttr = (0, _storageMock.permissionAttrMockUnauthorized)('disabled');
161
+ var onChange = jest.fn();
162
+
163
+ var _render11 = (0, _react2.render)(searchField({
164
+ permissionAttr: permissionAttr,
165
+ onChange: onChange
166
+ })),
167
+ container = _render11.container;
168
+
169
+ var inputHTML = container.querySelector('.textinput');
170
+ var inputWrapper = container.querySelector('.inputwrapper');
171
+
172
+ _react2.fireEvent.change(inputHTML, {
173
+ target: {
174
+ value: 'sus'
175
+ }
176
+ });
177
+
178
+ expect(inputHTML.disabled).toBeTruthy();
179
+ expect(onChange).not.toBeCalled();
180
+ expect(inputWrapper).toHaveClass('-disabled');
181
+ });
182
+ it('should check permission, be unavaible and onDenied is hideContent', function () {
183
+ setSessionStorageMock();
184
+ var permissionAttr = (0, _storageMock.permissionAttrMockUnauthorized)('hideContent');
185
+ var onChange = jest.fn();
186
+
187
+ var _render12 = (0, _react2.render)(searchField({
188
+ permissionAttr: permissionAttr,
189
+ onChange: onChange,
190
+ value: 'text'
191
+ })),
192
+ container = _render12.container;
193
+
194
+ var inputHTML = container.querySelector('.textinput');
195
+ var inputWrapper = container.querySelector('.inputwrapper');
196
+
197
+ _react2.fireEvent.change(inputHTML, {
198
+ target: {
199
+ value: 'sus'
200
+ }
201
+ });
202
+
203
+ expect(inputHTML.value).toBe('');
204
+ expect(inputHTML.disabled).toBeTruthy();
205
+ expect(onChange).not.toBeCalled();
206
+ expect(inputWrapper).toHaveClass('-disabled');
207
+ });
208
+ });
209
+ });
@@ -105,9 +105,6 @@ var Dropdown = function Dropdown(_ref) {
105
105
  onFocus: function onFocus() {
106
106
  handleOnFocus();
107
107
  },
108
- onBlur: function onBlur() {
109
- handleOnBlur();
110
- },
111
108
  onChange: function onChange(e) {
112
109
  handleOnFilter(e.target.value);
113
110
  },
@@ -132,7 +129,10 @@ var Dropdown = function Dropdown(_ref) {
132
129
  tabIndex: "-1",
133
130
  onKeyPress: function onKeyPress() {},
134
131
  onClick: function onClick() {
135
- if (!disabled) handleOnSelect(item);
132
+ if (!disabled) {
133
+ handleOnSelect(item);
134
+ handleOnBlur(item);
135
+ }
136
136
  }
137
137
  }, item.iconName && /*#__PURE__*/_react["default"].createElement(_icons["default"], {
138
138
  name: item.iconName,
@@ -15,17 +15,40 @@ var _simple = _interopRequireDefault(require("./simple"));
15
15
 
16
16
  require("../../assets/styles/select.scss");
17
17
 
18
+ var _gridlayout = _interopRequireDefault(require("../../gridlayout"));
19
+
20
+ var _excluded = ["gridLayout", "multiple"];
21
+
18
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
23
 
24
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
25
+
26
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
27
+
20
28
  var SelectField = function SelectField(props) {
21
- return props.multiple ? /*#__PURE__*/_react["default"].createElement(_multiple["default"], props) : /*#__PURE__*/_react["default"].createElement(_simple["default"], props);
29
+ var gridLayout = props.gridLayout,
30
+ multiple = props.multiple,
31
+ newProps = _objectWithoutProperties(props, _excluded);
32
+
33
+ var component = multiple ? /*#__PURE__*/_react["default"].createElement(_multiple["default"], newProps) : /*#__PURE__*/_react["default"].createElement(_simple["default"], newProps);
34
+
35
+ if (gridLayout !== undefined) {
36
+ return /*#__PURE__*/_react["default"].createElement(_gridlayout["default"], {
37
+ customClass: "-withinput",
38
+ cols: gridLayout
39
+ }, component);
40
+ }
41
+
42
+ return component;
22
43
  };
23
44
 
24
45
  SelectField.propTypes = {
25
- multiple: _propTypes["default"].bool
46
+ multiple: _propTypes["default"].bool,
47
+ gridLayout: _propTypes["default"].string
26
48
  };
27
49
  SelectField.defaultProps = {
28
- multiple: false
50
+ multiple: false,
51
+ gridLayout: undefined
29
52
  };
30
53
  var _default = SelectField;
31
54
  exports["default"] = _default;
@@ -84,6 +84,7 @@ var MultipleSelect = /*#__PURE__*/function (_Component) {
84
84
  _this.componentId = "select-component".concat(_uuid["default"].v1());
85
85
  _this.componentRef = /*#__PURE__*/_react["default"].createRef();
86
86
  _this.state = {
87
+ valueFromProps: null,
87
88
  dataCombo: props.dataSource,
88
89
  currents: [],
89
90
  selected: null,
@@ -385,18 +386,19 @@ Object.defineProperty(MultipleSelect, "getDerivedStateFromProps", {
385
386
  value = props.value,
386
387
  idKey = props.idKey;
387
388
 
388
- if (dataSource !== state.dataCombo) {
389
- var dataCombo = remoteSearch ? dataSource : (0, _helper.getFilteredMultipleDataCombo)(_extends({}, props, state));
390
- return {
391
- dataCombo: dataCombo,
392
- selected: dataSource.length > 0 && remoteSearch ? dataSource[0] : null
393
- };
394
- } else if (value !== null && dataSource.length > 0) {
389
+ if (value !== state.valueFromProps && dataSource.length > 0) {
395
390
  return {
391
+ valueFromProps: value,
396
392
  currents: dataSource.filter(function (item) {
397
393
  return value.includes(item[idKey]);
398
394
  })
399
395
  };
396
+ } else if (dataSource !== state.dataCombo) {
397
+ var dataCombo = remoteSearch ? dataSource : (0, _helper.getFilteredMultipleDataCombo)(_extends({}, props, state));
398
+ return {
399
+ dataCombo: dataCombo,
400
+ selected: dataSource.length > 0 && remoteSearch ? dataSource[0] : null
401
+ };
400
402
  }
401
403
 
402
404
  return null;