@invoicebox/ui 0.1.0-alpha.187 → 0.1.0-alpha.189
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/dist/components/form/Select/components/Loader/index.d.ts +2 -0
- package/dist/components/form/Select/components/Loader/index.js +26 -0
- package/dist/components/form/Select/components/Loader/styles.d.ts +4 -0
- package/dist/components/form/Select/components/Loader/styles.js +20 -0
- package/dist/components/form/Select/components/loading.png +0 -0
- package/dist/components/form/Select/index.d.ts +4 -1
- package/dist/components/form/Select/index.js +36 -8
- package/dist/components/form/Select/index.stories.d.ts +1 -0
- package/dist/components/form/Select/index.stories.js +10 -2
- package/dist/components/form/Select/palette.d.ts +1 -0
- package/dist/components/form/Select/palette.js +2 -1
- package/dist/components/form/Select/styles.d.ts +3 -0
- package/dist/components/form/Select/styles.js +9 -2
- package/dist/validate/index.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var S = _interopRequireWildcard(require("./styles"));
|
|
10
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
11
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
13
|
+
var Loader = function Loader() {
|
|
14
|
+
return /*#__PURE__*/_react["default"].createElement(S.Wrapper, null, /*#__PURE__*/_react["default"].createElement(S.SvgLoader, {
|
|
15
|
+
viewBox: "25 25 50 50"
|
|
16
|
+
}, /*#__PURE__*/_react["default"].createElement(S.CircleLoader, {
|
|
17
|
+
className: "loader-path",
|
|
18
|
+
cx: "50",
|
|
19
|
+
cy: "50",
|
|
20
|
+
r: "20",
|
|
21
|
+
fill: "none",
|
|
22
|
+
stroke: "#70c542",
|
|
23
|
+
strokeWidth: "2"
|
|
24
|
+
})));
|
|
25
|
+
};
|
|
26
|
+
var _default = exports["default"] = Loader;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const Wrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
3
|
+
export declare const SvgLoader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").SVGProps<SVGSVGElement>, never>> & string;
|
|
4
|
+
export declare const CircleLoader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").SVGProps<SVGCircleElement>, never>> & string;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Wrapper = exports.SvgLoader = exports.CircleLoader = void 0;
|
|
7
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
9
|
+
var Wrapper = exports.Wrapper = _styledComponents["default"].div.withConfig({
|
|
10
|
+
displayName: "styles__Wrapper",
|
|
11
|
+
componentId: "sc-86q913-0"
|
|
12
|
+
})(["height:24px;width:24px;position:relative;margin:0 auto;@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg);}}@keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg);}}@-webkit-keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0;}50%{stroke-dasharray:89,200;stroke-dashoffset:-35;}100%{stroke-dasharray:89,200;stroke-dashoffset:-124;}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0;}50%{stroke-dasharray:89,200;stroke-dashoffset:-35;}100%{stroke-dasharray:89,200;stroke-dashoffset:-124;}}@-webkit-keyframes color{0%{stroke:#353f47;}40%{stroke:#353f47;}66%{stroke:#353f47;}80%,90%{stroke:#353f47;}}@keyframes color{0%{stroke:#353f47;}40%{stroke:#353f47;}66%{stroke:#353f47;}80%,90%{stroke:#353f47;}}"]);
|
|
13
|
+
var SvgLoader = exports.SvgLoader = _styledComponents["default"].svg.withConfig({
|
|
14
|
+
displayName: "styles__SvgLoader",
|
|
15
|
+
componentId: "sc-86q913-1"
|
|
16
|
+
})(["-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;height:100%;-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto;"]);
|
|
17
|
+
var CircleLoader = exports.CircleLoader = _styledComponents["default"].circle.withConfig({
|
|
18
|
+
displayName: "styles__CircleLoader",
|
|
19
|
+
componentId: "sc-86q913-2"
|
|
20
|
+
})(["stroke-dasharray:150,200;stroke-dashoffset:-10;-webkit-animation:dash 1.5s ease-in-out infinite,color 6s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite,color 6s ease-in-out infinite;stroke-linecap:round;"]);
|
|
Binary file
|
|
@@ -20,7 +20,10 @@ export type TProps<TValue> = Pick<TInputProps, 'label' | 'hasError' | 'placehold
|
|
|
20
20
|
renderOption?: (entity?: any) => ReactNode;
|
|
21
21
|
renderGroup?: (entity?: any) => ReactNode;
|
|
22
22
|
dropdownHeader?: ReactNode;
|
|
23
|
+
scrollbarHeader?: ReactNode;
|
|
23
24
|
isDrawerOptions?: boolean;
|
|
24
25
|
scrollbarMaxHeight?: number;
|
|
26
|
+
emptyOptionsLabel?: string;
|
|
27
|
+
isLoading?: boolean;
|
|
25
28
|
};
|
|
26
|
-
export declare const Select: <TValue extends string | number>({ label, hasError, placeholder, name, value, onChange, options, groups, isResetButtonEnabled, size, renderOption, dropdownHeader, isDrawerOptions, renderGroup, scrollbarMaxHeight, }: TProps<TValue>) => import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
export declare const Select: <TValue extends string | number>({ label, hasError, placeholder, name, value, onChange, options, groups, isResetButtonEnabled, size, renderOption, dropdownHeader, isDrawerOptions, renderGroup, scrollbarMaxHeight, scrollbarHeader, emptyOptionsLabel, isLoading, }: TProps<TValue>) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -15,6 +15,8 @@ var _useOutsideClick = require("../../../hooks/useOutsideClick");
|
|
|
15
15
|
var _palette = require("../../../palette");
|
|
16
16
|
var _useOptionGroups = require("./hooks/useOptionGroups");
|
|
17
17
|
var _Drawer = require("../../common/Drawer");
|
|
18
|
+
var _Loader = _interopRequireDefault(require("./components/Loader"));
|
|
19
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
18
20
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
19
21
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
20
22
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
@@ -44,7 +46,10 @@ var Select = exports.Select = function Select(_ref) {
|
|
|
44
46
|
isDrawerOptions = _ref$isDrawerOptions === void 0 ? false : _ref$isDrawerOptions,
|
|
45
47
|
renderGroup = _ref.renderGroup,
|
|
46
48
|
_ref$scrollbarMaxHeig = _ref.scrollbarMaxHeight,
|
|
47
|
-
scrollbarMaxHeight = _ref$scrollbarMaxHeig === void 0 ? MAX_LIST_HEIGHT : _ref$scrollbarMaxHeig
|
|
49
|
+
scrollbarMaxHeight = _ref$scrollbarMaxHeig === void 0 ? MAX_LIST_HEIGHT : _ref$scrollbarMaxHeig,
|
|
50
|
+
scrollbarHeader = _ref.scrollbarHeader,
|
|
51
|
+
emptyOptionsLabel = _ref.emptyOptionsLabel,
|
|
52
|
+
isLoading = _ref.isLoading;
|
|
48
53
|
var palette = (0, _palette.useComponentPalette)('select');
|
|
49
54
|
var _useInputFocus = (0, _useInputFocus2.useInputFocus)(),
|
|
50
55
|
inFocus = _useInputFocus.inFocus,
|
|
@@ -140,7 +145,7 @@ var Select = exports.Select = function Select(_ref) {
|
|
|
140
145
|
}
|
|
141
146
|
return null;
|
|
142
147
|
};
|
|
143
|
-
var
|
|
148
|
+
var scrollbarContent = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, scrollbarHeader, optionGroups.map(function (_ref2) {
|
|
144
149
|
var group = _ref2.group,
|
|
145
150
|
groupOptions = _ref2.options;
|
|
146
151
|
return /*#__PURE__*/_react["default"].createElement(_react.Fragment, {
|
|
@@ -157,6 +162,33 @@ var Select = exports.Select = function Select(_ref) {
|
|
|
157
162
|
}, handleOptionRender(option));
|
|
158
163
|
}));
|
|
159
164
|
}));
|
|
165
|
+
var emptyLabel = /*#__PURE__*/_react["default"].createElement(S.DefaultOptionWrapper, null, /*#__PURE__*/_react["default"].createElement(S.EmptyLabel, {
|
|
166
|
+
variant: 'bodyMRegular',
|
|
167
|
+
$color: palette.empty
|
|
168
|
+
}, emptyOptionsLabel || 'Нет значений'));
|
|
169
|
+
var loader = /*#__PURE__*/_react["default"].createElement(S.DefaultOptionWrapper, null, /*#__PURE__*/_react["default"].createElement(_Loader["default"], null));
|
|
170
|
+
var handleDropdownContentRender = function handleDropdownContentRender() {
|
|
171
|
+
if (isLoading) {
|
|
172
|
+
return loader;
|
|
173
|
+
}
|
|
174
|
+
if (optionGroups.length) {
|
|
175
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, dropdownHeader, /*#__PURE__*/_react["default"].createElement(_Scrollbar.Scrollbar, {
|
|
176
|
+
maxHeight: scrollbarMaxHeight
|
|
177
|
+
}, scrollbarContent));
|
|
178
|
+
}
|
|
179
|
+
return emptyLabel;
|
|
180
|
+
};
|
|
181
|
+
var handleDrawerContentRender = function handleDrawerContentRender() {
|
|
182
|
+
if (isLoading) {
|
|
183
|
+
return loader;
|
|
184
|
+
}
|
|
185
|
+
if (optionGroups.length) {
|
|
186
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, dropdownHeader, /*#__PURE__*/_react["default"].createElement(_Scrollbar.Scrollbar, {
|
|
187
|
+
maxHeight: scrollbarMaxHeight
|
|
188
|
+
}, scrollbarContent, /*#__PURE__*/_react["default"].createElement(S.DrawerBottom, null)));
|
|
189
|
+
}
|
|
190
|
+
return emptyLabel;
|
|
191
|
+
};
|
|
160
192
|
return /*#__PURE__*/_react["default"].createElement(S.Wrapper, {
|
|
161
193
|
ref: isDrawerOptions ? undefined : wrapperRef
|
|
162
194
|
}, /*#__PURE__*/_react["default"].createElement(S.InputWrapper, null, /*#__PURE__*/_react["default"].createElement(_Input.Input, {
|
|
@@ -177,13 +209,9 @@ var Select = exports.Select = function Select(_ref) {
|
|
|
177
209
|
onClose: handleHide,
|
|
178
210
|
isOpen: isOpen,
|
|
179
211
|
isPadding: false
|
|
180
|
-
}, /*#__PURE__*/_react["default"].createElement(S.DrawerContent, null, /*#__PURE__*/_react["default"].createElement(
|
|
181
|
-
maxHeight: scrollbarMaxHeight
|
|
182
|
-
}, dropdownContent, /*#__PURE__*/_react["default"].createElement(S.DrawerBottom, null)))) : /*#__PURE__*/_react["default"].createElement(_Dropdown.Dropdown, {
|
|
212
|
+
}, /*#__PURE__*/_react["default"].createElement(S.DrawerContent, null, handleDrawerContentRender())) : /*#__PURE__*/_react["default"].createElement(_Dropdown.Dropdown, {
|
|
183
213
|
isOpen: isOpen,
|
|
184
214
|
isAutoPosition: true,
|
|
185
215
|
width: "100%"
|
|
186
|
-
},
|
|
187
|
-
maxHeight: scrollbarMaxHeight
|
|
188
|
-
}, dropdownContent)));
|
|
216
|
+
}, handleDropdownContentRender()));
|
|
189
217
|
};
|
|
@@ -3,6 +3,7 @@ import { Select, TProps } from '.';
|
|
|
3
3
|
declare const meta: Meta<typeof Select>;
|
|
4
4
|
export default meta;
|
|
5
5
|
export declare const Default: StoryObj<TProps<string>>;
|
|
6
|
+
export declare const EmptyOptions: StoryObj<TProps<string>>;
|
|
6
7
|
export declare const WithDropdownHeader: StoryObj<TProps<string>>;
|
|
7
8
|
export declare const RenderOption: StoryObj<TProps<string>>;
|
|
8
9
|
export declare const WithGroups: StoryObj<TProps<string>>;
|
|
@@ -4,7 +4,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports["default"] = exports.WithGroups = exports.WithDropdownHeader = exports.WithCustomGroups = exports.RenderOptionWithGroups = exports.RenderOption = exports.Default = void 0;
|
|
7
|
+
exports["default"] = exports.WithGroups = exports.WithDropdownHeader = exports.WithCustomGroups = exports.RenderOptionWithGroups = exports.RenderOption = exports.EmptyOptions = exports.Default = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _addonActions = require("@storybook/addon-actions");
|
|
10
10
|
var _ = require(".");
|
|
@@ -49,6 +49,7 @@ var COMMON_ARGS = {
|
|
|
49
49
|
placeholder: 'Placeholder',
|
|
50
50
|
isResetButtonEnabled: false,
|
|
51
51
|
size: 'L',
|
|
52
|
+
isLoading: false,
|
|
52
53
|
options: [{
|
|
53
54
|
label: 'Option 1',
|
|
54
55
|
value: 'option-1',
|
|
@@ -137,9 +138,16 @@ var Default = exports.Default = {
|
|
|
137
138
|
args: _objectSpread({}, COMMON_ARGS),
|
|
138
139
|
render: Component
|
|
139
140
|
};
|
|
141
|
+
var EmptyOptions = exports.EmptyOptions = {
|
|
142
|
+
args: _objectSpread(_objectSpread({}, COMMON_ARGS), {}, {
|
|
143
|
+
options: []
|
|
144
|
+
}),
|
|
145
|
+
render: Component
|
|
146
|
+
};
|
|
140
147
|
var WithDropdownHeader = exports.WithDropdownHeader = {
|
|
141
148
|
args: _objectSpread(_objectSpread({}, COMMON_ARGS), {}, {
|
|
142
|
-
dropdownHeader: /*#__PURE__*/_react["default"].createElement("div", null, "Dropdown header")
|
|
149
|
+
dropdownHeader: /*#__PURE__*/_react["default"].createElement("div", null, "Dropdown header"),
|
|
150
|
+
options: []
|
|
143
151
|
}),
|
|
144
152
|
render: Component
|
|
145
153
|
};
|
|
@@ -8,6 +8,7 @@ var _hexToRgba = _interopRequireDefault(require("hex-to-rgba"));
|
|
|
8
8
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
9
9
|
var generateSelectPalette = exports.generateSelectPalette = function generateSelectPalette(abstractPalette) {
|
|
10
10
|
return {
|
|
11
|
-
bgHover: (0, _hexToRgba["default"])(abstractPalette.neutralUsual, 0.5)
|
|
11
|
+
bgHover: (0, _hexToRgba["default"])(abstractPalette.neutralUsual, 0.5),
|
|
12
|
+
empty: abstractPalette.neutralFoggy
|
|
12
13
|
};
|
|
13
14
|
};
|
|
@@ -10,3 +10,6 @@ export declare const Group: import("styled-components/dist/types").IStyledCompon
|
|
|
10
10
|
export declare const DefaultOptionWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
11
11
|
export declare const DrawerContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
12
12
|
export declare const DrawerBottom: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
13
|
+
export declare const EmptyLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("../../common/Typography").TTypographyProps & import("styled-components/dist/types").BaseObject, {
|
|
14
|
+
$color: string;
|
|
15
|
+
}>> & string & Omit<import("react").FC<import("../../common/Typography").TTypographyProps>, keyof import("react").Component<any, {}, any>>;
|
|
@@ -4,7 +4,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.Wrapper = exports.Option = exports.InputWrapper = exports.Group = exports.DrawerContent = exports.DrawerBottom = exports.DefaultOptionWrapper = void 0;
|
|
7
|
+
exports.Wrapper = exports.Option = exports.InputWrapper = exports.Group = exports.EmptyLabel = exports.DrawerContent = exports.DrawerBottom = exports.DefaultOptionWrapper = void 0;
|
|
8
8
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
9
9
|
var _Typography = require("../../common/Typography");
|
|
10
10
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
@@ -42,4 +42,11 @@ var DrawerContent = exports.DrawerContent = _styledComponents["default"].div.wit
|
|
|
42
42
|
var DrawerBottom = exports.DrawerBottom = _styledComponents["default"].div.withConfig({
|
|
43
43
|
displayName: "styles__DrawerBottom",
|
|
44
44
|
componentId: "sc-1x9n0z5-6"
|
|
45
|
-
})(["height:36px;"]);
|
|
45
|
+
})(["height:36px;"]);
|
|
46
|
+
var EmptyLabel = exports.EmptyLabel = (0, _styledComponents["default"])(_Typography.Typography).withConfig({
|
|
47
|
+
displayName: "styles__EmptyLabel",
|
|
48
|
+
componentId: "sc-1x9n0z5-7"
|
|
49
|
+
})(["color:", ";"], function (_ref3) {
|
|
50
|
+
var $color = _ref3.$color;
|
|
51
|
+
return $color;
|
|
52
|
+
});
|
package/dist/validate/index.js
CHANGED
|
@@ -36,7 +36,7 @@ var Validate = exports.Validate = /*#__PURE__*/function () {
|
|
|
36
36
|
if (value === '') {
|
|
37
37
|
return true;
|
|
38
38
|
}
|
|
39
|
-
if (value.match(/^(
|
|
39
|
+
if (value.match(/^(http[s\u017F]?:\/\/)?(www\.)?([\x2D0-9A-Za-z\u017F\u0401\u0410-\u044F\u0451\u1C80-\u1C83\u1C85\u1C86\u212A]+\.[A-Za-z\u017F\u0401\u0410-\u044F\u0451\u1C80-\u1C83\u1C85\u1C86\u212A]{2,})(\/(?:(?![\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uD800-\uDFFF\uFEFF])[^]|[\uD800-\uDBFF][\uDC00-\uDFFF])*)?$/i)) {
|
|
40
40
|
return true;
|
|
41
41
|
}
|
|
42
42
|
return createError('Некорректный адрес');
|