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.
- package/.eslintrc.json +1 -0
- package/.vscode/settings.json +1 -1
- package/README.md +19 -12
- package/lib/@types/Align.d.ts +2 -1
- package/lib/alerts/AlertContainer.d.ts +2 -0
- package/lib/alerts/AlertProvider.d.ts +2 -0
- package/lib/alerts/BaseAlert.d.ts +2 -0
- package/lib/alerts/Message.d.ts +2 -0
- package/lib/alerts/Message.js +1 -1
- package/lib/alerts/alert.spec.js +133 -0
- package/lib/alerts/helpers.d.ts +2 -0
- package/lib/alerts/index.d.ts +2 -0
- package/lib/alerts/types.d.ts +3 -1
- package/lib/alerts/withAlert.d.ts +2 -0
- package/lib/assets/styles/dialog.scss +9 -6
- package/lib/assets/styles/drawers.scss +9 -0
- package/lib/assets/styles/effects.scss +2 -2
- package/lib/assets/styles/radio.scss +52 -8
- package/lib/assets/styles/table.scss +30 -0
- package/lib/assets/styles/tooltip.scss +42 -2
- package/lib/avatar/avatar.spec.js +190 -0
- package/lib/badge/badge.spec.js +127 -0
- package/lib/buttons/ActivateButton.d.ts +2 -0
- package/lib/buttons/AddButton.d.ts +2 -0
- package/lib/buttons/Button.d.ts +2 -0
- package/lib/buttons/CancelButton.d.ts +2 -0
- package/lib/buttons/DangerButton.d.ts +2 -0
- package/lib/buttons/DefaultButton.d.ts +2 -0
- package/lib/buttons/DefaultButton.js +14 -4
- package/lib/buttons/DestroyButton.d.ts +2 -0
- package/lib/buttons/EditButton.d.ts +2 -0
- package/lib/buttons/InactivateButton.d.ts +2 -0
- package/lib/buttons/InfoButton.d.ts +2 -0
- package/lib/buttons/PrimaryButton.d.ts +2 -0
- package/lib/buttons/RestoreButton.d.ts +2 -0
- package/lib/buttons/SaveButton.d.ts +2 -0
- package/lib/buttons/SpinnerLoading.js +230 -0
- package/lib/buttons/SuccessButton.d.ts +2 -0
- package/lib/buttons/WarningButton.d.ts +2 -0
- package/lib/buttons/buttons.spec.js +504 -0
- package/lib/buttons/index.d.ts +2 -0
- package/lib/buttons/split_button/index.d.ts +2 -0
- package/lib/buttons/types.d.ts +6 -2
- package/lib/calendar/calendar.spec.js +171 -0
- package/lib/checkbox/checkbox.spec.js +215 -0
- package/lib/dialog/Alert.d.ts +3 -0
- package/lib/dialog/Custom.d.ts +3 -0
- package/lib/dialog/Custom.js +1 -1
- package/lib/dialog/Error.d.ts +3 -0
- package/lib/dialog/Information.d.ts +3 -0
- package/lib/dialog/Question.d.ts +3 -0
- package/lib/dialog/Warning.d.ts +3 -0
- package/lib/dialog/base/Content.d.ts +3 -0
- package/lib/dialog/base/Footer.d.ts +3 -0
- package/lib/dialog/base/Header.d.ts +3 -0
- package/lib/dialog/base/Header.js +12 -1
- package/lib/dialog/base/index.d.ts +3 -0
- package/lib/dialog/base/index.js +78 -16
- package/lib/dialog/dialog.spec.js +488 -0
- package/lib/dialog/form/index.d.ts +7 -3
- package/lib/dialog/form/index.js +11 -4
- package/lib/dialog/index.d.ts +3 -0
- package/lib/dialog/types.d.ts +10 -4
- package/lib/drawer/Content.d.ts +2 -0
- package/lib/drawer/Drawer.d.ts +3 -1
- package/lib/drawer/Drawer.js +22 -2
- package/lib/drawer/Drawer.spec.js +258 -0
- package/lib/drawer/Header.d.ts +2 -0
- package/lib/drawer/helpers.d.ts +2 -0
- package/lib/drawer/index.d.ts +2 -0
- package/lib/drawer/types.d.ts +4 -1
- package/lib/dropdown/Popup.js +5 -0
- package/lib/dropdown/dropdown.spec.js +169 -0
- package/lib/fieldset/fieldset.spec.js +329 -0
- package/lib/form/Field.d.ts +2 -1
- package/lib/form/Field.js +33 -24
- package/lib/form/FieldArray.d.ts +1 -0
- package/lib/form/FieldArray.js +41 -4
- package/lib/form/FieldNumber.d.ts +1 -0
- package/lib/form/FieldNumber.js +24 -5
- package/lib/form/FieldPeriod.d.ts +1 -0
- package/lib/form/FieldPeriod.js +16 -2
- package/lib/form/form.spec.js +293 -0
- package/lib/form/helpers.d.ts +2 -1
- package/lib/form/helpers.js +2 -2
- package/lib/form/index.d.ts +4 -2
- package/lib/form/index.js +72 -35
- package/lib/form/types.d.ts +25 -6
- package/lib/form/withFieldHOC.d.ts +1 -0
- package/lib/form/withFieldHOC.js +1 -0
- package/lib/form/withFormSecurity.d.ts +1 -0
- package/lib/form/withFormSecurity.js +2 -1
- package/lib/gridlayout/gridLayout.spec.js +169 -0
- package/lib/icons/helper.d.ts +4 -0
- package/lib/icons/helper.js +4 -0
- package/lib/icons/icons.spec.js +86 -0
- package/lib/icons/index.d.ts +2 -0
- package/lib/icons/types.d.ts +3 -1
- package/lib/index.d.ts +4 -1
- package/lib/inputs/base/InputTextBase.d.ts +1 -0
- package/lib/inputs/base/InputTextBase.js +10 -2
- package/lib/inputs/base/base.spec.js +690 -0
- package/lib/inputs/base/helpers.d.ts +2 -1
- package/lib/inputs/base/index.js +1 -0
- package/lib/inputs/base/types.d.ts +2 -1
- package/lib/inputs/color/color_input.spec.js +174 -0
- package/lib/inputs/date/Dialog.d.ts +1 -0
- package/lib/inputs/date/Dropdown.d.ts +1 -0
- package/lib/inputs/date/date.spec.js +354 -0
- package/lib/inputs/date/helpers.d.ts +2 -1
- package/lib/inputs/date/helpers.js +3 -2
- package/lib/inputs/date/index.d.ts +1 -0
- package/lib/inputs/date/index.js +24 -9
- package/lib/inputs/date/types.d.ts +3 -1
- package/lib/inputs/file/DefaultFile.d.ts +1 -0
- package/lib/inputs/file/DragDropFile.d.ts +1 -0
- package/lib/inputs/file/File.d.ts +1 -0
- package/lib/inputs/file/FileButtonSettings.d.ts +1 -0
- package/lib/inputs/file/helpers.d.ts +1 -0
- package/lib/inputs/file/index.d.ts +1 -0
- package/lib/inputs/file/types.d.ts +1 -0
- package/lib/inputs/inputHOC.d.ts +3 -0
- package/lib/inputs/mask/BaseMask.d.ts +1 -0
- package/lib/inputs/mask/BaseMask.js +20 -5
- package/lib/inputs/mask/Cnpj.d.ts +1 -0
- package/lib/inputs/mask/Cpf.d.ts +1 -0
- package/lib/inputs/mask/Cpf.js +4 -4
- package/lib/inputs/mask/Phone.d.ts +1 -0
- package/lib/inputs/mask/ZipCode.d.ts +1 -0
- package/lib/inputs/mask/helpers.d.ts +3 -0
- package/lib/inputs/mask/helpers.js +1 -1
- package/lib/inputs/mask/imaskHOC.d.ts +3 -0
- package/lib/inputs/mask/imaskHOC.js +16 -12
- package/lib/inputs/mask/index.d.ts +1 -0
- package/lib/inputs/mask/input_mask.spec.js +607 -0
- package/lib/inputs/mask/types.d.ts +2 -1
- package/lib/inputs/multiSelect/ActionButtons.d.ts +2 -1
- package/lib/inputs/multiSelect/ActionButtons.js +4 -1
- package/lib/inputs/multiSelect/Dropdown.d.ts +1 -0
- package/lib/inputs/multiSelect/Dropdown.js +4 -4
- package/lib/inputs/multiSelect/helper.d.ts +8 -6
- package/lib/inputs/multiSelect/helper.js +5 -1
- package/lib/inputs/multiSelect/index.d.ts +1 -0
- package/lib/inputs/multiSelect/index.js +15 -11
- package/lib/inputs/multiSelect/types.d.ts +16 -6
- package/lib/inputs/number/BaseNumber.d.ts +3 -0
- package/lib/inputs/number/BaseNumber.js +1 -2
- package/lib/inputs/number/Currency.d.ts +3 -0
- package/lib/inputs/number/Decimal.d.ts +3 -0
- package/lib/inputs/number/format_number.d.ts +2 -1
- package/lib/inputs/number/format_number.js +8 -3
- package/lib/inputs/number/index.d.ts +3 -0
- package/lib/inputs/number/numberfield.spec.js +215 -0
- package/lib/inputs/number/types.d.ts +3 -1
- package/lib/inputs/period/Dialog.d.ts +1 -0
- package/lib/inputs/period/Dropdown.d.ts +1 -0
- package/lib/inputs/period/PeriodList.d.ts +1 -0
- package/lib/inputs/period/helper.d.ts +1 -0
- package/lib/inputs/period/index.d.ts +1 -0
- package/lib/inputs/period/index.js +8 -9
- package/lib/inputs/period/types.d.ts +3 -2
- package/lib/inputs/search/index.d.ts +3 -0
- package/lib/inputs/search/search_input.spec.js +209 -0
- package/lib/inputs/select/ActionButtons.d.ts +3 -0
- package/lib/inputs/select/Dropdown.d.ts +3 -0
- package/lib/inputs/select/Dropdown.js +1 -1
- package/lib/inputs/select/helper.d.ts +7 -9
- package/lib/inputs/select/helper.js +11 -2
- package/lib/inputs/select/index.d.ts +1 -0
- package/lib/inputs/select/index.js +6 -5
- package/lib/inputs/select/multiple/Selecteds.d.ts +1 -0
- package/lib/inputs/select/multiple/Selecteds.js +1 -1
- package/lib/inputs/select/multiple/index.d.ts +1 -0
- package/lib/inputs/select/multiple/index.js +13 -10
- package/lib/inputs/select/select.spec.js +395 -0
- package/lib/inputs/select/simple/index.d.ts +1 -0
- package/lib/inputs/select/simple/index.js +35 -18
- package/lib/inputs/select/types.d.ts +22 -7
- package/lib/inputs/text/index.d.ts +1 -0
- package/lib/inputs/text/textfield.spec.js +215 -0
- package/lib/inputs/text/types.d.ts +1 -1
- package/lib/inputs/textarea/index.d.ts +1 -0
- package/lib/inputs/textarea/index.js +1 -1
- package/lib/inputs/textarea/textarea.spec.js +59 -0
- package/lib/inputs/textarea/types.d.ts +1 -0
- package/lib/inputs/types.d.ts +7 -3
- package/lib/internals/types.d.ts +1 -0
- package/lib/internals/withTooltip.js +13 -6
- package/lib/labelMessages/index.d.ts +2 -0
- package/lib/labelMessages/index.js +3 -4
- package/lib/labelMessages/labelMessages.spec.js +176 -0
- package/lib/labelMessages/types.d.ts +3 -1
- package/lib/labels/DangerLabel.d.ts +2 -0
- package/lib/labels/DefaultLabel.d.ts +2 -0
- package/lib/labels/InfoLabel.d.ts +2 -0
- package/lib/labels/PrimaryLabel.d.ts +2 -0
- package/lib/labels/SuccessLabel.d.ts +2 -0
- package/lib/labels/WarningLabel.d.ts +2 -0
- package/lib/labels/index.d.ts +2 -0
- package/lib/labels/label.spec.js +162 -0
- package/lib/labels/types.d.ts +3 -1
- package/lib/list/Header.d.ts +2 -0
- package/lib/list/Item.d.ts +2 -0
- package/lib/list/helpers.d.ts +2 -0
- package/lib/list/index.d.ts +2 -0
- package/lib/list/list.spec.js +769 -0
- package/lib/list/types.d.ts +4 -2
- package/lib/menus/float/MenuItem.d.ts +2 -0
- package/lib/menus/float/float-menu.spec.js +221 -0
- package/lib/menus/float/helpers.d.ts +2 -0
- package/lib/menus/float/index.d.ts +2 -0
- package/lib/menus/float/types.d.ts +3 -1
- package/lib/menus/index.d.ts +2 -0
- package/lib/menus/sidenav/ExpandMenu.d.ts +2 -0
- package/lib/menus/sidenav/MenuLink.d.ts +2 -0
- package/lib/menus/sidenav/NavMenuGroup.d.ts +2 -0
- package/lib/menus/sidenav/NavMenuItem.d.ts +2 -0
- package/lib/menus/sidenav/NavSubMenuItem.d.ts +2 -0
- package/lib/menus/sidenav/helpers.d.ts +2 -0
- package/lib/menus/sidenav/index.d.ts +2 -0
- package/lib/menus/sidenav/popup_menu_search/EmptyList.d.ts +2 -0
- package/lib/menus/sidenav/popup_menu_search/index.d.ts +2 -0
- package/lib/menus/sidenav/sidenav.spec.js +379 -0
- package/lib/menus/sidenav/types.d.ts +4 -2
- package/lib/panel/Content.d.ts +3 -1
- package/lib/panel/DangerPanel.d.ts +3 -1
- package/lib/panel/Default.d.ts +3 -1
- package/lib/panel/Header.d.ts +3 -1
- package/lib/panel/Header.js +3 -4
- package/lib/panel/InfoPanel.d.ts +3 -1
- package/lib/panel/PrimaryPanel.d.ts +3 -1
- package/lib/panel/SuccessPanel.d.ts +3 -1
- package/lib/panel/ToolBar.d.ts +3 -1
- package/lib/panel/WarningPanel.d.ts +3 -1
- package/lib/panel/helpers.d.ts +3 -1
- package/lib/panel/index.d.ts +3 -1
- package/lib/panel/panel.spec.js +216 -0
- package/lib/panel/types.d.ts +3 -1
- package/lib/popover/PopoverText.d.ts +2 -0
- package/lib/popover/PopoverTitle.d.ts +2 -0
- package/lib/popover/index.d.ts +2 -0
- package/lib/popover/index.js +1 -2
- package/lib/popover/popover.spec.js +146 -0
- package/lib/popover/types.d.ts +3 -1
- package/lib/progress/progress.spec.js +94 -0
- package/lib/radio/index.d.ts +2 -1
- package/lib/radio/index.js +5 -1
- package/lib/radio/radio.spec.js +189 -0
- package/lib/radio/types.d.ts +4 -1
- package/lib/spinner/spinner.spec.js +152 -0
- package/lib/split/split.spec.js +163 -0
- package/lib/table/Body.js +9 -12
- package/lib/table/Header.js +19 -16
- package/lib/table/Row.js +20 -3
- package/lib/table/index.js +1 -0
- package/lib/table/table.spec.js +352 -0
- package/lib/table/types.d.ts +7 -0
- package/lib/tabs/DropdownItems.d.ts +2 -0
- package/lib/tabs/Menu.d.ts +2 -0
- package/lib/tabs/MenuItems.d.ts +2 -0
- package/lib/tabs/Panel.d.ts +2 -0
- package/lib/tabs/index.d.ts +2 -0
- package/lib/tabs/tabHelpers.d.ts +2 -0
- package/lib/tabs/tabs.spec.js +321 -0
- package/lib/tabs/types.d.ts +3 -1
- package/lib/toolbar/ButtonBar.d.ts +2 -0
- package/lib/toolbar/LabelBar.d.ts +2 -0
- package/lib/toolbar/ToolBarGroup.d.ts +2 -0
- package/lib/toolbar/helpers.d.ts +2 -0
- package/lib/toolbar/index.d.ts +2 -0
- package/lib/toolbar/toolbar.spec.js +394 -0
- package/lib/toolbar/types.d.ts +4 -2
- package/lib/tooltip/index.d.ts +1 -1
- package/lib/tooltip/index.js +5 -1
- package/lib/tooltip/tooltip.spec.js +215 -0
- package/lib/tooltip/types.d.ts +1 -0
- package/lib/treeview/index.js +1 -0
- package/lib/treeview/treeview.spec.js +279 -0
- package/lib/{types-90c43ae1.d.ts → types-c1e2d0c9.d.ts} +2 -1
- package/lib/uitour/uitour.spec.js +176 -0
- 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
|
|
101
|
-
var
|
|
102
|
-
var
|
|
103
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
117
|
-
|
|
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(
|
|
155
|
+
if (checkIsValid(usedData)) onSubmit(usedData);
|
|
135
156
|
};
|
|
136
157
|
var onReset = function onReset() {
|
|
137
|
-
|
|
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
|
|
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(
|
|
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
|
-
|
|
197
|
+
var updateFormState = function updateFormState() {
|
|
173
198
|
if (!_lodash.default.isEmpty(context)) {
|
|
174
199
|
var onChangedData = context.onChangedData;
|
|
175
|
-
if (!_lodash.default.isEqual(
|
|
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 (
|
|
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(
|
|
213
|
+
if (handlerValidates) handlerValidates(checkIsValid(usedData));
|
|
189
214
|
}
|
|
190
|
-
|
|
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
|
-
|
|
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
|
|
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
|
};
|
package/lib/form/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { ChangeEvent,
|
|
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
|
-
|
|
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:
|
|
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,
|
|
200
|
+
export { CustomEvent, CustomKeyboardEvent, FieldErrors, FieldValidator, FormContextProps, FormProps, IEventParams, IFieldArrayProps, IFieldPeriodProps, IFieldProps, IFormSecurityContext, IGetErrorMessagesParams, IWithFieldContext, IWithFormSecurity, OnFielChangeEvent, PeriodChangeEvent, PeriodValidator, Validator, WithFieldProps };
|
package/lib/form/withFieldHOC.js
CHANGED
|
@@ -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
|
+
});
|
package/lib/icons/helper.d.ts
CHANGED
package/lib/icons/helper.js
CHANGED
|
@@ -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
|
+
});
|
package/lib/icons/index.d.ts
CHANGED
|
@@ -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
|
|
package/lib/icons/types.d.ts
CHANGED
|
@@ -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?:
|
|
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-
|
|
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';
|