intelicoreact 1.1.40 → 1.1.42

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.
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
14
+ var _classnames = _interopRequireDefault(require("classnames"));
15
+
16
+ require("./Text.scss");
17
+
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
+
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
+
22
+ var RC = 'text';
23
+ /**
24
+ *
25
+ * @param value
26
+ * @param className
27
+ * @param classesObj
28
+ * @param icon
29
+ * @param link
30
+ * @param align
31
+ * @param testId
32
+ * @return {JSX.Element|null}
33
+ * @constructor
34
+ */
35
+ //? Прототип лежит на проекте кабинета src\JS\Components\Atomic\FormElements\Text\Text.js
36
+ //? Что поменял?
37
+ //? - в верстке убрал дополнительную вложенность
38
+ //? (теперь только 1 внешний контейнер, доп. классы назначаются рядом с className)
39
+ //? - убрал пропы as и isTitle, они были для работы с предзаданными классами связанными с токенизацией
40
+ //? возможность прокинуть доп. классы объектом с условиями оставил через пропу classesObj
41
+ //? - заменил пропу text на value
42
+ //? - заменил пропу iconMain на icon
43
+ //? - переработал пропу link, может быть строкой или объектом
44
+ //? если это объект, то у него могут быть свойства
45
+ //? - path - значение для href
46
+ //? - target - значение для атрибута target, имеет смысл передавать, если не передаются onClick или redirect
47
+ //? - onClick - альтернативный обработчик нажатия, если он есть то он будет ипользован в приоритете,
48
+ //? ф-я будет вызвана с 1 аргументом - props, в объекте props будет свойство ev (event) и все содержание link,
49
+ //? по умолчанию до использования onClick будут вызваны e.preventDefault() и e.stopPropagation
50
+ //? - redirect - альтернативный исполнитель редиректа (например history.push),
51
+ //? если есть и нет onClick - будет вызван с одним аргументом (link.path)
52
+ //? - isNoPreventDefault - отключает вызов e.preventDefault перед вызовом onClick или redirect
53
+ //? - isNoStopPropagation - отключает вызов e.preventDefault перед вызовом onClick или redirect
54
+
55
+ var Text = function Text(_ref) {
56
+ var _objectSpread2;
57
+
58
+ var value = _ref.value,
59
+ className = _ref.className,
60
+ classesObj = _ref.classesObj,
61
+ icon = _ref.icon,
62
+ link = _ref.link,
63
+ _ref$align = _ref.align,
64
+ align = _ref$align === void 0 ? 'left' : _ref$align,
65
+ _ref$testId = _ref.testId,
66
+ testId = _ref$testId === void 0 ? 'text-lib-component' : _ref$testId;
67
+ if (!value) return null;
68
+ var isLinkAsObj = link instanceof Object && !Array.isArray(link);
69
+ var isLinkAsString = typeof link === 'string';
70
+ var isLink = isLinkAsObj || isLinkAsString;
71
+ var linkObj = isLinkAsObj ? link : {};
72
+ var _linkObj$path = linkObj.path,
73
+ path = _linkObj$path === void 0 ? '' : _linkObj$path,
74
+ target = linkObj.target,
75
+ redirect = linkObj.redirect,
76
+ onClickInner = linkObj.onClick,
77
+ isNoPreventDefault = linkObj.isNoPreventDefault,
78
+ isNoStopPropagation = linkObj.isNoStopPropagation;
79
+
80
+ var preparedPath = function () {
81
+ if (!isLink) return '';
82
+ return isLinkAsObj ? path : link;
83
+ }();
84
+
85
+ var atributes = {};
86
+
87
+ if (typeof onClickInner === 'function' || typeof redirect === 'function') {
88
+ atributes.onClick = function onClick(ev) {
89
+ if (!isNoPreventDefault) ev.preventDefault();
90
+ if (!isNoStopPropagation) ev.stopPropagation(); //? если переданы и onClick, и redirect, то onClick считается приоритетнее redirect
91
+
92
+ if (onClickInner) {
93
+ onClickInner(_objectSpread({
94
+ ev: ev
95
+ }, link));
96
+ return;
97
+ }
98
+
99
+ redirect(preparedPath);
100
+ };
101
+ }
102
+
103
+ var mainInner = /*#__PURE__*/React.createElement(React.Fragment, null, icon && /*#__PURE__*/React.createElement("div", {
104
+ className: "".concat(RC, "__icon-container")
105
+ }, icon), value);
106
+ return /*#__PURE__*/React.createElement("div", {
107
+ "data-testid": "text--".concat(testId),
108
+ className: (0, _classnames.default)(RC, className, _objectSpread((_objectSpread2 = {}, (0, _defineProperty2.default)(_objectSpread2, "".concat(RC, "-left"), align === 'left'), (0, _defineProperty2.default)(_objectSpread2, "".concat(RC, "-center"), align === 'center'), (0, _defineProperty2.default)(_objectSpread2, "".concat(RC, "-right"), align === 'right'), (0, _defineProperty2.default)(_objectSpread2, "".concat(RC, "-justify"), align === 'justify'), _objectSpread2), classesObj))
109
+ }, isLink ? /*#__PURE__*/React.createElement("a", (0, _extends2.default)({}, atributes, {
110
+ href: preparedPath,
111
+ target: target !== null && target !== void 0 ? target : '_self',
112
+ rel: "noreferrer"
113
+ }), mainInner) : mainInner);
114
+ };
115
+
116
+ var _default = Text;
117
+ exports.default = _default;
@@ -0,0 +1,15 @@
1
+ .text {
2
+ &-left {
3
+ text-align: left;
4
+ }
5
+ &-center {
6
+ text-align: center;
7
+ }
8
+ &-right {
9
+ text-align: right;
10
+ }
11
+ &-justify {
12
+ text-align: justify;
13
+ }
14
+ }
15
+
@@ -43,7 +43,8 @@ var Hint = function Hint(_ref) {
43
43
  onClickCallback = _ref.onClickCallback,
44
44
  key = _ref.key,
45
45
  id = _ref.id,
46
- children = _ref.children;
46
+ children = _ref.children,
47
+ icon = _ref.icon;
47
48
  var hintId = (_ref2 = key !== null && key !== void 0 ? key : id) !== null && _ref2 !== void 0 ? _ref2 : time;
48
49
 
49
50
  var _useState = (0, _react.useState)(false),
@@ -140,7 +141,7 @@ var Hint = function Hint(_ref) {
140
141
  className: (0, _classnames.default)('hint__button', {
141
142
  hint__button_active: isOpen
142
143
  })
143
- }, variant === 'outlined' && /*#__PURE__*/_react.default.createElement(_reactFeather.HelpCircle, {
144
+ }, icon || /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, variant === 'outlined' && /*#__PURE__*/_react.default.createElement(_reactFeather.HelpCircle, {
144
145
  width: 16,
145
146
  height: 16,
146
147
  className: "hint__icon outlined"
@@ -171,7 +172,7 @@ var Hint = function Hint(_ref) {
171
172
  color: '#F06D8D',
172
173
  width: 16,
173
174
  height: 16
174
- }), label && /*#__PURE__*/_react.default.createElement("span", {
175
+ })), label && /*#__PURE__*/_react.default.createElement("span", {
175
176
  className: (0, _classnames.default)('hint__label', {
176
177
  'color--primary': isOpen
177
178
  })
@@ -19,6 +19,8 @@ var _classnames = _interopRequireDefault(require("classnames"));
19
19
 
20
20
  var _Input = _interopRequireDefault(require("../../Atomic/FormElements/Input/Input"));
21
21
 
22
+ var _Hint = _interopRequireDefault(require("../../Atomic/UI/Hint/Hint"));
23
+
22
24
  require("./InputAddress.scss");
23
25
 
24
26
  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); }
@@ -99,6 +101,15 @@ var InputAddress = function InputAddress(_ref) {
99
101
  isListVisible = _useState18[0],
100
102
  setIsListVisible = _useState18[1];
101
103
 
104
+ var isWrongAddress = (0, _react.useMemo)(function () {
105
+ var _query$street;
106
+
107
+ if (query === '') return false;
108
+ if (!(query !== null && query !== void 0 && query.hasOwnProperty('streetNumber')) || !(query !== null && query !== void 0 && query.streetNumber)) return true;
109
+ if (!(query !== null && query !== void 0 && query.hasOwnProperty('street')) || !(query !== null && query !== void 0 && (_query$street = query.street) !== null && _query$street !== void 0 && _query$street.fullName)) return true;
110
+ return false;
111
+ }, [query]);
112
+
102
113
  var setQueryAsItem = function setQueryAsItem(e, item) {
103
114
  if (e) e === null || e === void 0 ? void 0 : e.stopPropagation();
104
115
  setIsSelectedFromList(true);
@@ -211,7 +222,6 @@ var InputAddress = function InputAddress(_ref) {
211
222
 
212
223
  var onBlur = function onBlur() {
213
224
  if (typeof query === 'string' && !isSelectedFromList) {
214
- setQuery('');
215
225
  onChange('');
216
226
  setInternalError(true);
217
227
  }
@@ -246,9 +256,9 @@ var InputAddress = function InputAddress(_ref) {
246
256
  }, [value]);
247
257
 
248
258
  var renderInput = function renderInput() {
249
- var _query$street;
259
+ var _query$street2;
250
260
 
251
- var value = typeof query === "string" ? query : "".concat((query === null || query === void 0 ? void 0 : query.streetNumber) || '', " ").concat((query === null || query === void 0 ? void 0 : (_query$street = query.street) === null || _query$street === void 0 ? void 0 : _query$street.fullName) || '');
261
+ var value = typeof query === "string" ? query : "".concat((query === null || query === void 0 ? void 0 : query.streetNumber) || '', " ").concat((query === null || query === void 0 ? void 0 : (_query$street2 = query.street) === null || _query$street2 === void 0 ? void 0 : _query$street2.fullName) || '');
252
262
  return /*#__PURE__*/_react.default.createElement("div", {
253
263
  className: (0, _classnames.default)('input-address__input-wrapper')
254
264
  }, /*#__PURE__*/_react.default.createElement(_Input.default, {
@@ -260,13 +270,22 @@ var InputAddress = function InputAddress(_ref) {
260
270
  onFocus: onFocus,
261
271
  onBlur: onBlur,
262
272
  onKeyDown: onKeyDown
263
- }), isClearable && /*#__PURE__*/_react.default.createElement("div", {
273
+ }), isWrongAddress && /*#__PURE__*/_react.default.createElement("div", {
274
+ className: (0, _classnames.default)('input-address__alert', {
275
+ 'input-address__alert--visible': !isFocused
276
+ })
277
+ }, /*#__PURE__*/_react.default.createElement(_Hint.default, {
278
+ side: "left",
279
+ hint: "Select the correct address from the list of suggestions (must contains house number and street name)",
280
+ icon: /*#__PURE__*/_react.default.createElement(_reactFeather.AlertTriangle, null),
281
+ handleOpenType: "hover"
282
+ })), isClearable && (isWrongAddress && !isFocused ? null : /*#__PURE__*/_react.default.createElement("div", {
264
283
  className: (0, _classnames.default)('input-address__clear-query', {
265
284
  'input-address__clear-query--input-focused': isFocused
266
285
  })
267
286
  }, /*#__PURE__*/_react.default.createElement(_reactFeather.X, {
268
287
  onClick: onClearClick
269
- })));
288
+ }))));
270
289
  };
271
290
 
272
291
  var renderLoader = function renderLoader() {
@@ -303,7 +322,7 @@ var InputAddress = function InputAddress(_ref) {
303
322
 
304
323
  return /*#__PURE__*/_react.default.createElement("div", {
305
324
  className: (0, _classnames.default)('input-address', {
306
- 'input-address--error': error || internalError
325
+ 'input-address--error': error || internalError || isWrongAddress && !isFocused
307
326
  })
308
327
  }, renderInput(), isListVisible && renderList());
309
328
  };
@@ -16,6 +16,26 @@
16
16
  cursor: pointer;
17
17
  }
18
18
 
19
+ &__alert {
20
+ visibility: hidden;
21
+ position: absolute;
22
+ display: flex;
23
+ top: 50%;
24
+ right: 8px;
25
+ transform: translateY(-50%);
26
+ cursor: pointer;
27
+
28
+ &--visible {
29
+ visibility: visible;
30
+ }
31
+
32
+ svg {
33
+ height: 16px;
34
+ width: 16px;
35
+ color: #FA564C;
36
+ }
37
+ }
38
+
19
39
  &__input-wrapper:hover &__clear-query,
20
40
  &__clear-query--input-focused {
21
41
  visibility: visible;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intelicoreact",
3
- "version": "1.1.40",
3
+ "version": "1.1.42",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "files": [