linear-react-components-ui 1.0.10-beta.2 → 1.0.10-beta.21

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 (281) hide show
  1. package/.eslintrc.json +1 -0
  2. package/.vscode/settings.json +1 -1
  3. package/README.md +19 -12
  4. package/lib/@types/Align.d.ts +2 -1
  5. package/lib/alerts/AlertContainer.d.ts +2 -0
  6. package/lib/alerts/AlertProvider.d.ts +2 -0
  7. package/lib/alerts/BaseAlert.d.ts +2 -0
  8. package/lib/alerts/Message.d.ts +2 -0
  9. package/lib/alerts/Message.js +1 -1
  10. package/lib/alerts/alert.spec.js +133 -0
  11. package/lib/alerts/helpers.d.ts +2 -0
  12. package/lib/alerts/index.d.ts +2 -0
  13. package/lib/alerts/types.d.ts +3 -1
  14. package/lib/alerts/withAlert.d.ts +2 -0
  15. package/lib/assets/styles/dialog.scss +9 -6
  16. package/lib/assets/styles/drawers.scss +9 -0
  17. package/lib/assets/styles/effects.scss +2 -2
  18. package/lib/assets/styles/radio.scss +52 -8
  19. package/lib/assets/styles/table.scss +30 -0
  20. package/lib/assets/styles/tooltip.scss +42 -2
  21. package/lib/avatar/avatar.spec.js +190 -0
  22. package/lib/badge/badge.spec.js +127 -0
  23. package/lib/buttons/ActivateButton.d.ts +2 -0
  24. package/lib/buttons/AddButton.d.ts +2 -0
  25. package/lib/buttons/Button.d.ts +2 -0
  26. package/lib/buttons/CancelButton.d.ts +2 -0
  27. package/lib/buttons/DangerButton.d.ts +2 -0
  28. package/lib/buttons/DefaultButton.d.ts +2 -0
  29. package/lib/buttons/DefaultButton.js +14 -4
  30. package/lib/buttons/DestroyButton.d.ts +2 -0
  31. package/lib/buttons/EditButton.d.ts +2 -0
  32. package/lib/buttons/InactivateButton.d.ts +2 -0
  33. package/lib/buttons/InfoButton.d.ts +2 -0
  34. package/lib/buttons/PrimaryButton.d.ts +2 -0
  35. package/lib/buttons/RestoreButton.d.ts +2 -0
  36. package/lib/buttons/SaveButton.d.ts +2 -0
  37. package/lib/buttons/SpinnerLoading.js +230 -0
  38. package/lib/buttons/SuccessButton.d.ts +2 -0
  39. package/lib/buttons/WarningButton.d.ts +2 -0
  40. package/lib/buttons/buttons.spec.js +504 -0
  41. package/lib/buttons/index.d.ts +2 -0
  42. package/lib/buttons/split_button/index.d.ts +2 -0
  43. package/lib/buttons/types.d.ts +6 -2
  44. package/lib/calendar/calendar.spec.js +171 -0
  45. package/lib/checkbox/checkbox.spec.js +215 -0
  46. package/lib/dialog/Alert.d.ts +3 -0
  47. package/lib/dialog/Custom.d.ts +3 -0
  48. package/lib/dialog/Custom.js +1 -1
  49. package/lib/dialog/Error.d.ts +3 -0
  50. package/lib/dialog/Information.d.ts +3 -0
  51. package/lib/dialog/Question.d.ts +3 -0
  52. package/lib/dialog/Warning.d.ts +3 -0
  53. package/lib/dialog/base/Content.d.ts +3 -0
  54. package/lib/dialog/base/Footer.d.ts +3 -0
  55. package/lib/dialog/base/Header.d.ts +3 -0
  56. package/lib/dialog/base/Header.js +12 -1
  57. package/lib/dialog/base/index.d.ts +3 -0
  58. package/lib/dialog/base/index.js +78 -16
  59. package/lib/dialog/dialog.spec.js +488 -0
  60. package/lib/dialog/form/index.d.ts +7 -3
  61. package/lib/dialog/form/index.js +11 -4
  62. package/lib/dialog/index.d.ts +3 -0
  63. package/lib/dialog/types.d.ts +10 -4
  64. package/lib/drawer/Content.d.ts +2 -0
  65. package/lib/drawer/Drawer.d.ts +3 -1
  66. package/lib/drawer/Drawer.js +22 -2
  67. package/lib/drawer/Drawer.spec.js +258 -0
  68. package/lib/drawer/Header.d.ts +2 -0
  69. package/lib/drawer/helpers.d.ts +2 -0
  70. package/lib/drawer/index.d.ts +2 -0
  71. package/lib/drawer/types.d.ts +4 -1
  72. package/lib/dropdown/Popup.js +5 -0
  73. package/lib/dropdown/dropdown.spec.js +169 -0
  74. package/lib/fieldset/fieldset.spec.js +329 -0
  75. package/lib/form/Field.d.ts +2 -1
  76. package/lib/form/Field.js +33 -24
  77. package/lib/form/FieldArray.d.ts +1 -0
  78. package/lib/form/FieldArray.js +41 -4
  79. package/lib/form/FieldNumber.d.ts +1 -0
  80. package/lib/form/FieldNumber.js +24 -5
  81. package/lib/form/FieldPeriod.d.ts +1 -0
  82. package/lib/form/FieldPeriod.js +16 -2
  83. package/lib/form/form.spec.js +293 -0
  84. package/lib/form/helpers.d.ts +2 -1
  85. package/lib/form/helpers.js +2 -2
  86. package/lib/form/index.d.ts +4 -2
  87. package/lib/form/index.js +72 -35
  88. package/lib/form/types.d.ts +25 -6
  89. package/lib/form/withFieldHOC.d.ts +1 -0
  90. package/lib/form/withFieldHOC.js +1 -0
  91. package/lib/form/withFormSecurity.d.ts +1 -0
  92. package/lib/form/withFormSecurity.js +2 -1
  93. package/lib/gridlayout/gridLayout.spec.js +169 -0
  94. package/lib/icons/helper.d.ts +4 -0
  95. package/lib/icons/helper.js +4 -0
  96. package/lib/icons/icons.spec.js +86 -0
  97. package/lib/icons/index.d.ts +2 -0
  98. package/lib/icons/types.d.ts +3 -1
  99. package/lib/index.d.ts +4 -1
  100. package/lib/inputs/base/InputTextBase.d.ts +1 -0
  101. package/lib/inputs/base/InputTextBase.js +10 -2
  102. package/lib/inputs/base/base.spec.js +690 -0
  103. package/lib/inputs/base/helpers.d.ts +2 -1
  104. package/lib/inputs/base/index.js +1 -0
  105. package/lib/inputs/base/types.d.ts +2 -1
  106. package/lib/inputs/color/color_input.spec.js +174 -0
  107. package/lib/inputs/date/Dialog.d.ts +1 -0
  108. package/lib/inputs/date/Dropdown.d.ts +1 -0
  109. package/lib/inputs/date/date.spec.js +354 -0
  110. package/lib/inputs/date/helpers.d.ts +2 -1
  111. package/lib/inputs/date/helpers.js +3 -2
  112. package/lib/inputs/date/index.d.ts +1 -0
  113. package/lib/inputs/date/index.js +24 -9
  114. package/lib/inputs/date/types.d.ts +3 -1
  115. package/lib/inputs/file/DefaultFile.d.ts +1 -0
  116. package/lib/inputs/file/DragDropFile.d.ts +1 -0
  117. package/lib/inputs/file/File.d.ts +1 -0
  118. package/lib/inputs/file/FileButtonSettings.d.ts +1 -0
  119. package/lib/inputs/file/helpers.d.ts +1 -0
  120. package/lib/inputs/file/index.d.ts +1 -0
  121. package/lib/inputs/file/types.d.ts +1 -0
  122. package/lib/inputs/inputHOC.d.ts +3 -0
  123. package/lib/inputs/mask/BaseMask.d.ts +1 -0
  124. package/lib/inputs/mask/BaseMask.js +20 -5
  125. package/lib/inputs/mask/Cnpj.d.ts +1 -0
  126. package/lib/inputs/mask/Cpf.d.ts +1 -0
  127. package/lib/inputs/mask/Cpf.js +4 -4
  128. package/lib/inputs/mask/Phone.d.ts +1 -0
  129. package/lib/inputs/mask/ZipCode.d.ts +1 -0
  130. package/lib/inputs/mask/helpers.d.ts +3 -0
  131. package/lib/inputs/mask/helpers.js +1 -1
  132. package/lib/inputs/mask/imaskHOC.d.ts +3 -0
  133. package/lib/inputs/mask/imaskHOC.js +16 -12
  134. package/lib/inputs/mask/index.d.ts +1 -0
  135. package/lib/inputs/mask/input_mask.spec.js +607 -0
  136. package/lib/inputs/mask/types.d.ts +2 -1
  137. package/lib/inputs/multiSelect/ActionButtons.d.ts +2 -1
  138. package/lib/inputs/multiSelect/ActionButtons.js +4 -1
  139. package/lib/inputs/multiSelect/Dropdown.d.ts +1 -0
  140. package/lib/inputs/multiSelect/Dropdown.js +4 -4
  141. package/lib/inputs/multiSelect/helper.d.ts +8 -6
  142. package/lib/inputs/multiSelect/helper.js +5 -1
  143. package/lib/inputs/multiSelect/index.d.ts +1 -0
  144. package/lib/inputs/multiSelect/index.js +15 -11
  145. package/lib/inputs/multiSelect/types.d.ts +16 -6
  146. package/lib/inputs/number/BaseNumber.d.ts +3 -0
  147. package/lib/inputs/number/BaseNumber.js +1 -2
  148. package/lib/inputs/number/Currency.d.ts +3 -0
  149. package/lib/inputs/number/Decimal.d.ts +3 -0
  150. package/lib/inputs/number/format_number.d.ts +2 -1
  151. package/lib/inputs/number/format_number.js +8 -3
  152. package/lib/inputs/number/index.d.ts +3 -0
  153. package/lib/inputs/number/numberfield.spec.js +215 -0
  154. package/lib/inputs/number/types.d.ts +3 -1
  155. package/lib/inputs/period/Dialog.d.ts +1 -0
  156. package/lib/inputs/period/Dropdown.d.ts +1 -0
  157. package/lib/inputs/period/PeriodList.d.ts +1 -0
  158. package/lib/inputs/period/helper.d.ts +1 -0
  159. package/lib/inputs/period/index.d.ts +1 -0
  160. package/lib/inputs/period/index.js +8 -9
  161. package/lib/inputs/period/types.d.ts +3 -2
  162. package/lib/inputs/search/index.d.ts +3 -0
  163. package/lib/inputs/search/search_input.spec.js +209 -0
  164. package/lib/inputs/select/ActionButtons.d.ts +3 -0
  165. package/lib/inputs/select/Dropdown.d.ts +3 -0
  166. package/lib/inputs/select/Dropdown.js +1 -1
  167. package/lib/inputs/select/helper.d.ts +7 -9
  168. package/lib/inputs/select/helper.js +11 -2
  169. package/lib/inputs/select/index.d.ts +1 -0
  170. package/lib/inputs/select/index.js +6 -5
  171. package/lib/inputs/select/multiple/Selecteds.d.ts +1 -0
  172. package/lib/inputs/select/multiple/Selecteds.js +1 -1
  173. package/lib/inputs/select/multiple/index.d.ts +1 -0
  174. package/lib/inputs/select/multiple/index.js +13 -10
  175. package/lib/inputs/select/select.spec.js +395 -0
  176. package/lib/inputs/select/simple/index.d.ts +1 -0
  177. package/lib/inputs/select/simple/index.js +35 -18
  178. package/lib/inputs/select/types.d.ts +22 -7
  179. package/lib/inputs/text/index.d.ts +1 -0
  180. package/lib/inputs/text/textfield.spec.js +215 -0
  181. package/lib/inputs/text/types.d.ts +1 -1
  182. package/lib/inputs/textarea/index.d.ts +1 -0
  183. package/lib/inputs/textarea/index.js +1 -1
  184. package/lib/inputs/textarea/textarea.spec.js +59 -0
  185. package/lib/inputs/textarea/types.d.ts +1 -0
  186. package/lib/inputs/types.d.ts +7 -3
  187. package/lib/internals/types.d.ts +1 -0
  188. package/lib/internals/withTooltip.js +13 -6
  189. package/lib/labelMessages/index.d.ts +2 -0
  190. package/lib/labelMessages/index.js +3 -4
  191. package/lib/labelMessages/labelMessages.spec.js +176 -0
  192. package/lib/labelMessages/types.d.ts +3 -1
  193. package/lib/labels/DangerLabel.d.ts +2 -0
  194. package/lib/labels/DefaultLabel.d.ts +2 -0
  195. package/lib/labels/InfoLabel.d.ts +2 -0
  196. package/lib/labels/PrimaryLabel.d.ts +2 -0
  197. package/lib/labels/SuccessLabel.d.ts +2 -0
  198. package/lib/labels/WarningLabel.d.ts +2 -0
  199. package/lib/labels/index.d.ts +2 -0
  200. package/lib/labels/label.spec.js +162 -0
  201. package/lib/labels/types.d.ts +3 -1
  202. package/lib/list/Header.d.ts +2 -0
  203. package/lib/list/Item.d.ts +2 -0
  204. package/lib/list/helpers.d.ts +2 -0
  205. package/lib/list/index.d.ts +2 -0
  206. package/lib/list/list.spec.js +769 -0
  207. package/lib/list/types.d.ts +4 -2
  208. package/lib/menus/float/MenuItem.d.ts +2 -0
  209. package/lib/menus/float/float-menu.spec.js +221 -0
  210. package/lib/menus/float/helpers.d.ts +2 -0
  211. package/lib/menus/float/index.d.ts +2 -0
  212. package/lib/menus/float/types.d.ts +3 -1
  213. package/lib/menus/index.d.ts +2 -0
  214. package/lib/menus/sidenav/ExpandMenu.d.ts +2 -0
  215. package/lib/menus/sidenav/MenuLink.d.ts +2 -0
  216. package/lib/menus/sidenav/NavMenuGroup.d.ts +2 -0
  217. package/lib/menus/sidenav/NavMenuItem.d.ts +2 -0
  218. package/lib/menus/sidenav/NavSubMenuItem.d.ts +2 -0
  219. package/lib/menus/sidenav/helpers.d.ts +2 -0
  220. package/lib/menus/sidenav/index.d.ts +2 -0
  221. package/lib/menus/sidenav/popup_menu_search/EmptyList.d.ts +2 -0
  222. package/lib/menus/sidenav/popup_menu_search/index.d.ts +2 -0
  223. package/lib/menus/sidenav/sidenav.spec.js +379 -0
  224. package/lib/menus/sidenav/types.d.ts +4 -2
  225. package/lib/panel/Content.d.ts +3 -1
  226. package/lib/panel/DangerPanel.d.ts +3 -1
  227. package/lib/panel/Default.d.ts +3 -1
  228. package/lib/panel/Header.d.ts +3 -1
  229. package/lib/panel/Header.js +3 -4
  230. package/lib/panel/InfoPanel.d.ts +3 -1
  231. package/lib/panel/PrimaryPanel.d.ts +3 -1
  232. package/lib/panel/SuccessPanel.d.ts +3 -1
  233. package/lib/panel/ToolBar.d.ts +3 -1
  234. package/lib/panel/WarningPanel.d.ts +3 -1
  235. package/lib/panel/helpers.d.ts +3 -1
  236. package/lib/panel/index.d.ts +3 -1
  237. package/lib/panel/panel.spec.js +216 -0
  238. package/lib/panel/types.d.ts +3 -1
  239. package/lib/popover/PopoverText.d.ts +2 -0
  240. package/lib/popover/PopoverTitle.d.ts +2 -0
  241. package/lib/popover/index.d.ts +2 -0
  242. package/lib/popover/index.js +1 -2
  243. package/lib/popover/popover.spec.js +146 -0
  244. package/lib/popover/types.d.ts +3 -1
  245. package/lib/progress/progress.spec.js +94 -0
  246. package/lib/radio/index.d.ts +2 -1
  247. package/lib/radio/index.js +5 -1
  248. package/lib/radio/radio.spec.js +189 -0
  249. package/lib/radio/types.d.ts +4 -1
  250. package/lib/spinner/spinner.spec.js +152 -0
  251. package/lib/split/split.spec.js +163 -0
  252. package/lib/table/Body.js +9 -12
  253. package/lib/table/Header.js +19 -16
  254. package/lib/table/Row.js +20 -3
  255. package/lib/table/index.js +1 -0
  256. package/lib/table/table.spec.js +352 -0
  257. package/lib/table/types.d.ts +7 -0
  258. package/lib/tabs/DropdownItems.d.ts +2 -0
  259. package/lib/tabs/Menu.d.ts +2 -0
  260. package/lib/tabs/MenuItems.d.ts +2 -0
  261. package/lib/tabs/Panel.d.ts +2 -0
  262. package/lib/tabs/index.d.ts +2 -0
  263. package/lib/tabs/tabHelpers.d.ts +2 -0
  264. package/lib/tabs/tabs.spec.js +321 -0
  265. package/lib/tabs/types.d.ts +3 -1
  266. package/lib/toolbar/ButtonBar.d.ts +2 -0
  267. package/lib/toolbar/LabelBar.d.ts +2 -0
  268. package/lib/toolbar/ToolBarGroup.d.ts +2 -0
  269. package/lib/toolbar/helpers.d.ts +2 -0
  270. package/lib/toolbar/index.d.ts +2 -0
  271. package/lib/toolbar/toolbar.spec.js +394 -0
  272. package/lib/toolbar/types.d.ts +4 -2
  273. package/lib/tooltip/index.d.ts +1 -1
  274. package/lib/tooltip/index.js +5 -1
  275. package/lib/tooltip/tooltip.spec.js +215 -0
  276. package/lib/tooltip/types.d.ts +1 -0
  277. package/lib/treeview/index.js +1 -0
  278. package/lib/treeview/treeview.spec.js +279 -0
  279. package/lib/{types-90c43ae1.d.ts → types-c1e2d0c9.d.ts} +2 -1
  280. package/lib/uitour/uitour.spec.js +176 -0
  281. package/package.json +67 -64
package/lib/form/index.js CHANGED
@@ -22,6 +22,12 @@ Object.defineProperty(exports, "FieldNumber", {
22
22
  return _FieldNumber.default;
23
23
  }
24
24
  });
25
+ Object.defineProperty(exports, "FieldPeriod", {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _FieldPeriod.default;
29
+ }
30
+ });
25
31
  exports.default = void 0;
26
32
  var _react = _interopRequireWildcard(require("react"));
27
33
  var _lodash = _interopRequireDefault(require("lodash"));
@@ -29,6 +35,7 @@ var _helpers = require("./helpers");
29
35
  var _Field = _interopRequireDefault(require("./Field"));
30
36
  var _FieldNumber = _interopRequireDefault(require("./FieldNumber"));
31
37
  var _FieldArray = _interopRequireDefault(require("./FieldArray"));
38
+ var _FieldPeriod = _interopRequireDefault(require("./FieldPeriod"));
32
39
  require("../assets/styles/form.scss");
33
40
  var _dialog = require("../dialog");
34
41
  var _withFormSecurity = require("./withFormSecurity");
@@ -61,13 +68,16 @@ var Form = function Form(_ref) {
61
68
  customClass = _ref.customClass,
62
69
  securityTitle = _ref.securityTitle,
63
70
  securityText = _ref.securityText,
71
+ securityData = _ref.securityData,
64
72
  onDataChange = _ref.onDataChange,
65
73
  onValidateForm = _ref.onValidateForm,
66
74
  externalFieldErrors = _ref.externalFieldErrors,
67
75
  onSubmit = _ref.onSubmit,
68
76
  skeletonize = _ref.skeletonize,
69
77
  disabled = _ref.disabled,
70
- children = _ref.children;
78
+ children = _ref.children,
79
+ _ref$useInternalState = _ref.useInternalState,
80
+ useInternalState = _ref$useInternalState === void 0 ? false : _ref$useInternalState;
71
81
  var _useState = (0, _react.useState)(dataSource),
72
82
  _useState2 = _slicedToArray(_useState, 2),
73
83
  data = _useState2[0],
@@ -86,6 +96,7 @@ var Form = function Form(_ref) {
86
96
  setFieldErrors = _useState8[1];
87
97
  var fieldsValidators = (0, _react.useRef)({});
88
98
  var context = (0, _react.useContext)(_withFormSecurity.FormSecurityContext);
99
+ var usedData = useInternalState ? data : dataSource;
89
100
  var getValidatesErrorMessages = function getValidatesErrorMessages(validators, fieldValue) {
90
101
  var validatorsArray = !(validators instanceof Array) ? [validators] : validators;
91
102
  var errors = [];
@@ -97,25 +108,35 @@ var Form = function Form(_ref) {
97
108
  });
98
109
  return errors;
99
110
  };
100
- var checkIsValid = function checkIsValid(value) {
101
- var updateState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
102
- var dataValidate = value || data;
103
- var currentFieldErrors = {};
104
- _lodash.default.forEach(fieldsValidators.current, function (validators, fieldName) {
111
+ var getErrorMessages = function getErrorMessages(currentData, currentValidators) {
112
+ var dataValidate = currentData || usedData;
113
+ var currentFieldErrors = _extends({}, fieldErrors);
114
+ _lodash.default.forEach(currentValidators, function (validators, fieldName) {
105
115
  var fieldValue = _lodash.default.get(dataValidate, fieldName);
106
116
  var messages = getValidatesErrorMessages(validators, fieldValue);
107
- if (messages.length > 0) {
108
- currentFieldErrors = _extends({}, fieldErrors, _defineProperty({}, fieldName, messages));
109
- }
117
+ currentFieldErrors = _extends({}, currentFieldErrors, _defineProperty({}, fieldName, messages));
110
118
  });
119
+ return currentFieldErrors;
120
+ };
121
+ var checkIsValid = function checkIsValid(currentData) {
122
+ var updateState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
123
+ var currentValidators = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
124
+ var currentFieldErrors = getErrorMessages(currentData, currentValidators || fieldsValidators.current);
111
125
  if (updateState) setFieldErrors(currentFieldErrors);
112
- return _lodash.default.isEmpty(currentFieldErrors);
126
+ return Object.values(currentFieldErrors).every(function (value) {
127
+ return value.length === 0;
128
+ });
113
129
  };
114
130
  var onFieldChange = function onFieldChange(event) {
115
131
  var target = event.target;
116
- setData(function (prevState) {
117
- return (0, _helpers.changeValue)(prevState, target);
118
- });
132
+ if (!useInternalState && onDataChange) {
133
+ var newData = (0, _helpers.changeValue)(dataSource, target);
134
+ onDataChange(newData);
135
+ } else {
136
+ setData(function (prevState) {
137
+ return (0, _helpers.changeValue)(prevState, target);
138
+ });
139
+ }
119
140
  };
120
141
  var onValidate = function onValidate(fieldName, fieldValue, validators) {
121
142
  if (validators) {
@@ -131,20 +152,24 @@ var Form = function Form(_ref) {
131
152
  };
132
153
  var onFormSubmit = function onFormSubmit(event) {
133
154
  if (event) event.preventDefault();
134
- if (checkIsValid(data)) onSubmit(data);
155
+ if (checkIsValid(usedData)) onSubmit(usedData);
135
156
  };
136
157
  var onReset = function onReset() {
137
- setData(JSON.parse(JSON.stringify(originalData)));
158
+ if (!useInternalState && onDataChange) {
159
+ onDataChange(JSON.parse(JSON.stringify(originalData)));
160
+ } else {
161
+ setData(JSON.parse(JSON.stringify(originalData)));
162
+ }
138
163
  setFieldErrors({});
139
164
  };
140
165
  var onRemoveFieldValidators = function onRemoveFieldValidators(fieldName) {
141
- var newFieldsValidators = _lodash.default.omit(fieldsValidators.current, fieldName);
166
+ var newFieldsValidators = _lodash.default.omit(fieldsValidators, fieldName);
142
167
  fieldsValidators.current = newFieldsValidators;
143
168
  };
144
169
  var onBeforeUnload = function onBeforeUnload(e) {
145
170
  var event = e;
146
171
  event.preventDefault();
147
- if (_lodash.default.isEqual(data, originalData)) {
172
+ if (_lodash.default.isEqual(usedData, originalData)) {
148
173
  return;
149
174
  }
150
175
  event.returnValue = true;
@@ -169,25 +194,32 @@ var Form = function Form(_ref) {
169
194
  }
170
195
  return propsForm;
171
196
  };
172
- (0, _react.useEffect)(function () {
197
+ var updateFormState = function updateFormState() {
173
198
  if (!_lodash.default.isEmpty(context)) {
174
199
  var onChangedData = context.onChangedData;
175
- if (!_lodash.default.isEqual(data, originalData)) {
200
+ if (securityData && !_lodash.default.isEqual(usedData, securityData)) {
176
201
  onChangedData(true);
177
202
  } else {
178
203
  onChangedData(false);
179
204
  }
180
205
  }
206
+ if (onDataChange) onDataChange(usedData);
181
207
 
182
208
  // TODO - Usar debounce para evitar chamada a cada letra digitada
183
- if (onDataChange) onDataChange(data);
184
- if (onValidateForm) onValidateForm(checkIsValid(data, false));
209
+ if (onValidateForm) onValidateForm(checkIsValid(usedData, true));
185
210
  if (!disabled) {
186
211
  handlerSubmit(onFormSubmit);
187
212
  if (handlerReset) handlerReset(onReset);
188
- if (handlerValidates) handlerValidates(checkIsValid(data));
213
+ if (handlerValidates) handlerValidates(checkIsValid(usedData));
189
214
  }
190
- }, [data]);
215
+ if (_lodash.default.isEmpty(usedData)) setOriginalData(usedData);
216
+ };
217
+ (0, _react.useEffect)(function () {
218
+ if (useInternalState) updateFormState();
219
+ }, [JSON.stringify(data), useInternalState]);
220
+ (0, _react.useEffect)(function () {
221
+ if (!useInternalState && onDataChange) updateFormState();
222
+ }, [JSON.stringify(dataSource), useInternalState]);
191
223
  (0, _react.useEffect)(function () {
192
224
  if (securityBeforeUnload) {
193
225
  if (context) context.setSecurityBeforeUnload(true);
@@ -198,27 +230,32 @@ var Form = function Form(_ref) {
198
230
  };
199
231
  }, [securityBeforeUnload, onBeforeUnload]);
200
232
  (0, _react.useEffect)(function () {
201
- if (!disabled) {
202
- if (submitOnPressEnterKey !== submitFormOnEnter || dataSource !== originalData) {
203
- setData(function (prevState) {
204
- return !_lodash.default.isEqual(data, dataSource) ? dataSource : prevState;
205
- });
206
- setOriginalData(function (prevState) {
207
- return prevState || dataSource;
208
- });
209
- setSubmitFormOnEnter(submitOnPressEnterKey);
210
- }
233
+ if (!disabled && submitOnPressEnterKey !== submitFormOnEnter) {
234
+ setSubmitFormOnEnter(submitOnPressEnterKey);
211
235
  }
212
- }, [submitOnPressEnterKey, dataSource]);
236
+ }, [submitOnPressEnterKey]);
213
237
  var contextValues = {
214
238
  skeletonize: skeletonize,
215
239
  handlerFieldChange: onFieldChange,
216
240
  handlerFieldValidade: onValidate,
217
241
  handlerStoreValidators: function handlerStoreValidators(fieldName, fieldValidates) {
242
+ var oldFieldsValidators = _extends({}, fieldsValidators.current);
218
243
  fieldsValidators.current = _extends({}, fieldsValidators.current, _defineProperty({}, fieldName, fieldValidates));
244
+ if (onValidateForm && oldFieldsValidators && oldFieldsValidators[fieldName]) {
245
+ var oldValidatorsValue = Object.values(oldFieldsValidators[fieldName]);
246
+ var newValidatorValue = Object.values(fieldValidates);
247
+ var validatorsIsNotEqual = oldValidatorsValue.length !== newValidatorValue.length;
248
+ if (validatorsIsNotEqual) {
249
+ if (!useInternalState && onDataChange) {
250
+ onValidateForm(checkIsValid(dataSource, true, fieldsValidators.current));
251
+ } else {
252
+ onValidateForm(checkIsValid(data, true, fieldsValidators.current));
253
+ }
254
+ }
255
+ }
219
256
  },
220
257
  handlerRemoveValidators: onRemoveFieldValidators,
221
- data: data,
258
+ data: useInternalState ? data : dataSource,
222
259
  fieldErrors: fieldErrors,
223
260
  externalFieldErrors: externalFieldErrors
224
261
  };
@@ -1,5 +1,6 @@
1
- import { ChangeEvent, ReactNode, CSSProperties, ComponentType, MouseEventHandler } from 'react';
1
+ import { ChangeEvent, ComponentType, MouseEventHandler, ReactNode, CSSProperties } from 'react';
2
2
  import { AllOptions } from '../inputs/select/types.js';
3
+ import '../@types/Align.js';
3
4
  import '../@types/DataCombo.js';
4
5
  import '../@types/PermissionAttr.js';
5
6
  import '../inputs/base/types.js';
@@ -16,7 +17,7 @@ type OnFielChangeEvent = Event & {
16
17
  type CustomKeyboardEvent = ChangeEvent<HTMLInputElement> & {
17
18
  keyCode: number;
18
19
  };
19
- interface IFormProps {
20
+ type BaseFormProps = {
20
21
  dataSource: object;
21
22
  children: ReactNode;
22
23
  onSubmit: (data: object) => void;
@@ -27,14 +28,21 @@ interface IFormProps {
27
28
  submitOnPressEnterKey?: boolean;
28
29
  style?: CSSProperties;
29
30
  customClass?: string;
30
- onDataChange?: (data: object) => void;
31
31
  securityBeforeUnload?: boolean;
32
32
  securityTitle?: string;
33
33
  securityText?: string;
34
+ securityData?: object;
34
35
  externalFieldErrors?: object;
35
36
  skeletonize?: boolean;
36
37
  disabled?: boolean;
37
- }
38
+ };
39
+ type FormProps = BaseFormProps & ({
40
+ useInternalState?: false;
41
+ onDataChange: (data: object) => void;
42
+ } | {
43
+ useInternalState: true;
44
+ onDataChange?: (data: object) => void;
45
+ });
38
46
  interface IFieldProps extends WithFieldProps {
39
47
  data?: object;
40
48
  dataSource?: object;
@@ -65,6 +73,9 @@ interface IFieldProps extends WithFieldProps {
65
73
  gridLayout?: string;
66
74
  allOptions?: AllOptions;
67
75
  searchNotFoundText?: string;
76
+ min?: number;
77
+ max?: number;
78
+ autoFocus?: boolean;
68
79
  }
69
80
  interface CustomEvent {
70
81
  target: {
@@ -128,7 +139,7 @@ interface FormContextProps {
128
139
  skeletonize?: boolean;
129
140
  handlerFieldChange: (event: OnFielChangeEvent) => void;
130
141
  handlerFieldValidade: (name: string, value: string, validatorsArray: Validator[] | Validator) => void;
131
- handlerStoreValidators: (fieldName: string, fieldValidates: object) => void;
142
+ handlerStoreValidators: (fieldName: string, fieldValidates: Validator) => void;
132
143
  handlerRemoveValidators: (fieldName: string) => void;
133
144
  data: object;
134
145
  fieldErrors: object;
@@ -141,6 +152,7 @@ interface WithFieldProps {
141
152
  validators?: Validator | Validator[] | PeriodValidator | PeriodValidator[];
142
153
  }
143
154
  interface IWithFieldContext {
155
+ validatorFromComponent: Validator | Validator[] | undefined;
144
156
  handlerSetValidatorFromComponent: (validator: Validator | Validator[]) => void;
145
157
  }
146
158
  interface IWithFormSecurity {
@@ -166,6 +178,7 @@ interface IEventParams {
166
178
  handlerFieldValidade?: (name: string, value: string, validatorsArray: Validator[] | Validator) => void;
167
179
  handlerFieldChange?: (event: ChangeEvent<HTMLInputElement> | CustomKeyboardEvent) => void;
168
180
  validatorFromComponent?: Validator | Validator[];
181
+ handleShowValidateMessages: (value: boolean) => void;
169
182
  }
170
183
  interface IGetErrorMessagesParams {
171
184
  name: string;
@@ -177,5 +190,11 @@ interface IGetErrorMessagesParams {
177
190
  };
178
191
  externalMessagesErrors?: string[];
179
192
  }
193
+ type FieldErrors = {
194
+ [name: string]: string[];
195
+ };
196
+ type FieldValidator = {
197
+ [name: string]: Validator | Validator[];
198
+ };
180
199
 
181
- export { CustomEvent, CustomKeyboardEvent, FormContextProps, IEventParams, IFieldArrayProps, IFieldPeriodProps, IFieldProps, IFormProps, IFormSecurityContext, IGetErrorMessagesParams, IWithFieldContext, IWithFormSecurity, OnFielChangeEvent, PeriodChangeEvent, PeriodValidator, Validator, WithFieldProps };
200
+ export { CustomEvent, CustomKeyboardEvent, FieldErrors, FieldValidator, FormContextProps, FormProps, IEventParams, IFieldArrayProps, IFieldPeriodProps, IFieldProps, IFormSecurityContext, IGetErrorMessagesParams, IWithFieldContext, IWithFormSecurity, OnFielChangeEvent, PeriodChangeEvent, PeriodValidator, Validator, WithFieldProps };
@@ -1,6 +1,7 @@
1
1
  import React__default from 'react';
2
2
  import { WithFieldProps } from './types.js';
3
3
  import '../inputs/select/types.js';
4
+ import '../@types/Align.js';
4
5
  import '../@types/DataCombo.js';
5
6
  import '../@types/PermissionAttr.js';
6
7
  import '../inputs/base/types.js';
@@ -40,6 +40,7 @@ var withFieldHOC = function withFieldHOC(WrappedComponent) {
40
40
  updateValidators();
41
41
  }, [validators]);
42
42
  var contextValues = {
43
+ validatorFromComponent: validatorFromComponent,
43
44
  handlerSetValidatorFromComponent: function handlerSetValidatorFromComponent(validator) {
44
45
  setValidatorFromComponent(validator);
45
46
  }
@@ -1,6 +1,7 @@
1
1
  import React__default from 'react';
2
2
  import { IFormSecurityContext, IWithFormSecurity } from './types.js';
3
3
  import '../inputs/select/types.js';
4
+ import '../@types/Align.js';
4
5
  import '../@types/DataCombo.js';
5
6
  import '../@types/PermissionAttr.js';
6
7
  import '../inputs/base/types.js';
@@ -48,7 +48,8 @@ var withFormSecurity = function withFormSecurity(WrappedComponent) {
48
48
  showQuestion: showQuestion,
49
49
  onConfirmClick: onConfirmClick,
50
50
  onUnconfirmClick: onUnconfirmClick,
51
- setSecurityBeforeUnload: setSecurityBeforeUnload
51
+ setSecurityBeforeUnload: setSecurityBeforeUnload,
52
+ securityBeforeUnload: securityBeforeUnload.current
52
53
  };
53
54
  return /*#__PURE__*/_react.default.createElement(FormSecurityContext.Provider, {
54
55
  value: contextValues
@@ -0,0 +1,169 @@
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 _ = _interopRequireWildcard(require("."));
12
+
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
+
15
+ 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; }
16
+
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+
19
+ 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); }
20
+
21
+ var gridLayout = function gridLayout(propsRow, propsCol) {
22
+ return /*#__PURE__*/_react.default.createElement(_.GridRow, _extends({
23
+ customClass: "mock-gridRow",
24
+ style: {
25
+ backgroundColor: 'red'
26
+ }
27
+ }, propsRow), /*#__PURE__*/_react.default.createElement(_.default, _extends({
28
+ customClass: "mock-gridCol",
29
+ style: {
30
+ backgroundColor: 'blue'
31
+ }
32
+ }, propsCol), "Grid Layout"));
33
+ };
34
+
35
+ describe('GridLayout', function () {
36
+ it('should render correctly', function () {
37
+ var _render = (0, _react2.render)(gridLayout()),
38
+ container = _render.container;
39
+
40
+ expect(container.firstChild).toBeTruthy();
41
+ });
42
+ describe('GridRow', function () {
43
+ it('should apply custom class', function () {
44
+ var _render2 = (0, _react2.render)(gridLayout()),
45
+ container = _render2.container;
46
+
47
+ expect(container.querySelector('.row')).toHaveClass('mock-gridRow');
48
+ });
49
+ it('should apply style', function () {
50
+ var _render3 = (0, _react2.render)(gridLayout()),
51
+ container = _render3.container;
52
+
53
+ expect(container.querySelector('.row')).toHaveStyle('background-color: red;');
54
+ });
55
+ it('should apply with trim', function () {
56
+ var _render4 = (0, _react2.render)(gridLayout({
57
+ withTrim: true
58
+ })),
59
+ container = _render4.container;
60
+
61
+ expect(container.querySelector('.row')).toHaveClass('-withtrim');
62
+ });
63
+ it('should apply horizontal align start', function () {
64
+ var _render5 = (0, _react2.render)(gridLayout({
65
+ horizontalAlign: 'start'
66
+ })),
67
+ container = _render5.container;
68
+
69
+ expect(container.querySelector('.row')).toHaveClass('justify-content-start');
70
+ });
71
+ it('should apply horizontal align end', function () {
72
+ var _render6 = (0, _react2.render)(gridLayout({
73
+ horizontalAlign: 'end'
74
+ })),
75
+ container = _render6.container;
76
+
77
+ expect(container.querySelector('.row')).toHaveClass('justify-content-end');
78
+ });
79
+ it('should apply horizontal align center', function () {
80
+ var _render7 = (0, _react2.render)(gridLayout({
81
+ horizontalAlign: 'center'
82
+ })),
83
+ container = _render7.container;
84
+
85
+ expect(container.querySelector('.row')).toHaveClass('justify-content-center');
86
+ });
87
+ it('should apply horizontal align around', function () {
88
+ var _render8 = (0, _react2.render)(gridLayout({
89
+ horizontalAlign: 'around'
90
+ })),
91
+ container = _render8.container;
92
+
93
+ expect(container.querySelector('.row')).toHaveClass('justify-content-around');
94
+ });
95
+ it('should apply horizontal align between', function () {
96
+ var _render9 = (0, _react2.render)(gridLayout({
97
+ horizontalAlign: 'between'
98
+ })),
99
+ container = _render9.container;
100
+
101
+ expect(container.querySelector('.row')).toHaveClass('justify-content-between');
102
+ });
103
+ it('should apply vertical align items-start', function () {
104
+ var _render10 = (0, _react2.render)(gridLayout({
105
+ verticalAlign: 'items-start'
106
+ })),
107
+ container = _render10.container;
108
+
109
+ expect(container.querySelector('.row')).toHaveClass('align-items-start');
110
+ });
111
+ it('should apply vertical align items-center', function () {
112
+ var _render11 = (0, _react2.render)(gridLayout({
113
+ verticalAlign: 'items-center'
114
+ })),
115
+ container = _render11.container;
116
+
117
+ expect(container.querySelector('.row')).toHaveClass('align-items-center');
118
+ });
119
+ it('should apply vertical align items-end', function () {
120
+ var _render12 = (0, _react2.render)(gridLayout({
121
+ verticalAlign: 'items-end'
122
+ })),
123
+ container = _render12.container;
124
+
125
+ expect(container.querySelector('.row')).toHaveClass('align-items-end');
126
+ });
127
+ it('should hide component when visible is false', function () {
128
+ var _render13 = (0, _react2.render)(gridLayout({
129
+ visible: false
130
+ })),
131
+ container = _render13.container;
132
+
133
+ expect(container.querySelector('.row')).not.toBeInTheDocument();
134
+ });
135
+ });
136
+ describe('GridCol', function () {
137
+ it('should apply custom class', function () {
138
+ var _render14 = (0, _react2.render)(gridLayout()),
139
+ container = _render14.container;
140
+
141
+ expect(container.querySelector('.grid-container')).toHaveClass('mock-gridCol');
142
+ });
143
+ it('should apply style', function () {
144
+ var _render15 = (0, _react2.render)(gridLayout()),
145
+ container = _render15.container;
146
+
147
+ expect(container.querySelector('.grid-container')).toHaveStyle('background-color: blue;');
148
+ });
149
+ it('should apply columns to grid', function () {
150
+ var _render16 = (0, _react2.render)(gridLayout({}, {
151
+ cols: '12 12 12 12'
152
+ })),
153
+ container = _render16.container;
154
+
155
+ expect(container.querySelector('.grid-container')).toHaveClass('col-xs-12');
156
+ expect(container.querySelector('.grid-container')).toHaveClass('col-sm-12');
157
+ expect(container.querySelector('.grid-container')).toHaveClass('col-md-12');
158
+ expect(container.querySelector('.grid-container')).toHaveClass('col-lg-12');
159
+ });
160
+ it('should hide component when visible is false', function () {
161
+ var _render17 = (0, _react2.render)(gridLayout({}, {
162
+ visible: false
163
+ })),
164
+ container = _render17.container;
165
+
166
+ expect(container.querySelector('.grid-container')).not.toBeInTheDocument();
167
+ });
168
+ });
169
+ });
@@ -575,6 +575,10 @@ declare const _default: {
575
575
  viewbox: string;
576
576
  paths: string[];
577
577
  };
578
+ select2: {
579
+ viewbox: string;
580
+ paths: string[];
581
+ };
578
582
  };
579
583
 
580
584
  export { _default as default };
@@ -580,6 +580,10 @@ var _default = {
580
580
  stackEmpty: {
581
581
  viewbox: '0 0 16 16',
582
582
  paths: ['M16 13v-12h-11v1.155l-2.619 0.368 0.17 1.211-2.551 0.732 3.308 11.535 10.189-2.921 0.558-0.079h1.945zM6 2h9v10h-9v-10zM5 3.070v9.93h2.543l-2.721 0.382-1.418-10.088 1.595-0.224zM3.929 14.879l-2.808-9.793 1.558-0.447 1.373 9.766 2.997-0.421-3.119 0.894z']
583
+ },
584
+ select2: {
585
+ viewbox: '0 0 16 16',
586
+ paths: ['M13.002 14.658v0l-2.16-4.329 4.278-0.74-10.119-7.589v12.649l3.158-2.978 2.16 4.329z', 'M1 10.5v-9c0-0.271 0.229-0.5 0.5-0.5h11c0.271 0 0.5 0.229 0.5 0.5v4l1 0.75v-4.75c0-0.825-0.675-1.5-1.5-1.5h-11c-0.825 0-1.5 0.675-1.5 1.5v9c0 0.825 0.675 1.5 1.5 1.5h1.5v-1h-1.5c-0.271 0-0.5-0.229-0.5-0.5z']
583
587
  }
584
588
  };
585
589
  exports.default = _default;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ var _react2 = require("@testing-library/react");
6
+
7
+ require("@testing-library/jest-dom/extend-expect");
8
+
9
+ var _index = _interopRequireDefault(require("./index"));
10
+
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+
13
+ 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); }
14
+
15
+ var IconMock = function IconMock(props) {
16
+ return /*#__PURE__*/_react.default.createElement(_index.default, _extends({
17
+ name: "user"
18
+ }, props));
19
+ };
20
+
21
+ var mockSvgStruct = {
22
+ viewbox: '0 0 18 18',
23
+ paths: ['M17.064,4.656l-2.05-2.035C14.936,2.544,14.831,2.5,14.721,2.5H3.854c-0.229,0-0.417,0.188-0.417,417v14.167c0,0.229,0.188,0.417,0.417,0.417h12.917c0.229,0,0.416-0.188,0.416-0.417V4.952C17.188,4.84,17.144,4.733,17.064,4.656M6.354,3.333h7.917V10H6.354V3.333z M16.354,16.667H4.271V3.333h1.25v7.083c0,0.229,0.188,0.417,0.417,0.417h8.75c0.229,0,0.416-0.188,0.416-0.417V3.886l1.25,1.239V16.667z M13.402,4.688v3.958c0,0.229-0.186,0.417-0.417,0.417c-0.229,0-0.417-0.188-0.417-0.417V4.688c0-0.229,0.188-0.417,0.417-0.417C13.217,4.271,13.402,4.458,13.402,4.688']
24
+ };
25
+ describe('Icons', function () {
26
+ it('should render correctly', function () {
27
+ var _render = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(IconMock, null)),
28
+ getByTestId = _render.getByTestId;
29
+
30
+ expect(getByTestId('icon')).toBeTruthy();
31
+ });
32
+ it('should change icon size', function () {
33
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(IconMock, {
34
+ size: 64
35
+ })),
36
+ getByTestId = _render2.getByTestId;
37
+
38
+ expect(getByTestId('icon')).toHaveAttribute('width', '64px');
39
+ expect(getByTestId('icon')).toHaveAttribute('height', '64px');
40
+ });
41
+ it('should change icon color', function () {
42
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(IconMock, {
43
+ color: "red"
44
+ })),
45
+ getByTestId = _render3.getByTestId;
46
+
47
+ expect(getByTestId('icon')).toHaveAttribute('fill', 'red');
48
+ });
49
+ it('should change pointer-events', function () {
50
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(IconMock, {
51
+ pointerEvents: "all"
52
+ })),
53
+ getByTestId = _render4.getByTestId;
54
+
55
+ expect(getByTestId('icon')).toHaveAttribute('pointer-events', 'all');
56
+ });
57
+ it('should fire click on icon', function () {
58
+ var mockOnClick = jest.fn();
59
+
60
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(IconMock, {
61
+ onClick: mockOnClick
62
+ })),
63
+ getByTestId = _render5.getByTestId;
64
+
65
+ _react2.fireEvent.click(getByTestId('icon'));
66
+
67
+ expect(mockOnClick).toHaveBeenCalled();
68
+ });
69
+ it('should hide component when visible is false', function () {
70
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(IconMock, {
71
+ visible: false
72
+ })),
73
+ container = _render6.container;
74
+
75
+ expect(container.firstChild).not.toBeInTheDocument();
76
+ });
77
+ it('should render icon when use svgStruct', function () {
78
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.default, {
79
+ svgStruct: mockSvgStruct
80
+ })),
81
+ getByTestId = _render7.getByTestId;
82
+
83
+ expect(getByTestId('icon')).toHaveAttribute('viewBox', mockSvgStruct.viewbox);
84
+ expect(getByTestId('icon-path')).toHaveAttribute('d', mockSvgStruct.paths[0]);
85
+ });
86
+ });
@@ -2,6 +2,8 @@ import { IIconProps } from './types.js';
2
2
  import 'react';
3
3
  import '../@types/PointerEvents.js';
4
4
  import '../@types/SizePixels.js';
5
+ import '../@types/Icon.js';
6
+ import './helper.js';
5
7
 
6
8
  declare const Icon: ({ name, onClick, svgStruct, size, style, visible, disabled, customClass, color, pointerEvents, }: IIconProps) => JSX.Element | null;
7
9
 
@@ -1,6 +1,8 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { PointerEvents } from '../@types/PointerEvents.js';
3
3
  import { SizePixels } from '../@types/SizePixels.js';
4
+ import { IconNames } from '../@types/Icon.js';
5
+ import './helper.js';
4
6
 
5
7
  type ListIconType = {
6
8
  [name: string]: {
@@ -16,7 +18,7 @@ interface IIconProps {
16
18
  visible?: boolean;
17
19
  disabled?: boolean;
18
20
  pointerEvents?: PointerEvents;
19
- name?: string;
21
+ name?: IconNames;
20
22
  viewBox?: string;
21
23
  svgStruct?: {
22
24
  viewbox: string;
package/lib/index.d.ts CHANGED
@@ -7,10 +7,12 @@ export { default as List } from './list/index.js';
7
7
  export { default as Radio } from './radio/index.js';
8
8
  export { default as Tab } from './tabs/index.js';
9
9
  export { default as Dialog } from './dialog/base/index.js';
10
- import './types-90c43ae1.js';
10
+ import './types-c1e2d0c9.js';
11
11
  import 'react';
12
12
  import './@types/PermissionAttr.js';
13
13
  import './internals/colorStyles.js';
14
+ import './@types/Icon.js';
15
+ import './icons/helper.js';
14
16
  import './toolbar/ToolBarGroup.js';
15
17
  import './toolbar/types.js';
16
18
  import './@types/ButtonTypes.js';
@@ -33,3 +35,4 @@ import './radio/types.js';
33
35
  import './tabs/Panel.js';
34
36
  import './tabs/types.js';
35
37
  import './dialog/types.js';
38
+ import './@types/Align.js';
@@ -1,5 +1,6 @@
1
1
  import { IBaseProps } from './types.js';
2
2
  import 'react';
3
+ import '../../@types/Align.js';
3
4
  import '../../@types/Period.js';
4
5
  import '../../@types/PermissionAttr.js';
5
6