@invoicebox/ui 0.1.0-alpha.313 → 0.1.0-alpha.315
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/common/Tooltip/index.d.ts +9 -0
- package/dist/components/common/Tooltip/index.js +60 -0
- package/dist/components/common/Tooltip/index.stories.d.ts +6 -0
- package/dist/components/common/Tooltip/index.stories.js +43 -0
- package/dist/components/common/Tooltip/palette.d.ts +7 -0
- package/dist/components/common/Tooltip/palette.js +13 -0
- package/dist/components/common/Tooltip/styles.d.ts +9 -0
- package/dist/components/common/Tooltip/styles.js +34 -0
- package/dist/components/form/Checkbox/CheckIcon.d.ts +2 -0
- package/dist/components/form/Checkbox/CheckIcon.js +23 -0
- package/dist/components/form/Checkbox/index.d.ts +11 -0
- package/dist/components/form/Checkbox/index.js +47 -0
- package/dist/components/form/Checkbox/index.stories.d.ts +8 -0
- package/dist/components/form/Checkbox/index.stories.js +69 -0
- package/dist/components/form/Checkbox/palette.d.ts +12 -0
- package/dist/components/form/Checkbox/palette.js +20 -0
- package/dist/components/form/Checkbox/styles.d.ts +13 -0
- package/dist/components/form/Checkbox/styles.js +71 -0
- package/dist/components/form/CurrencyInput/CoreCurrencyInput/index.js +1 -1
- package/dist/components/form/Select/components/MultipleValue/index.d.ts +9 -0
- package/dist/components/form/Select/components/MultipleValue/index.js +129 -0
- package/dist/components/form/Select/components/MultipleValue/styles.d.ts +8 -0
- package/dist/components/form/Select/components/MultipleValue/styles.js +31 -0
- package/dist/components/form/Select/index.d.ts +17 -4
- package/dist/components/form/Select/index.js +98 -44
- package/dist/components/form/Select/index.stories.d.ts +3 -1
- package/dist/components/form/Select/index.stories.js +32 -1
- package/dist/components/form/Select/palette.d.ts +2 -0
- package/dist/components/form/Select/palette.js +3 -1
- package/dist/components/form/Select/styles.d.ts +4 -0
- package/dist/components/form/Select/styles.js +26 -10
- package/dist/esm/components/common/Tooltip/index.js +51 -0
- package/dist/esm/components/common/Tooltip/index.stories.js +36 -0
- package/dist/esm/components/common/Tooltip/palette.js +7 -0
- package/dist/esm/components/common/Tooltip/styles.js +27 -0
- package/dist/esm/components/form/Checkbox/CheckIcon.js +16 -0
- package/dist/esm/components/form/Checkbox/index.js +38 -0
- package/dist/esm/components/form/Checkbox/index.stories.js +60 -0
- package/dist/esm/components/form/Checkbox/palette.js +13 -0
- package/dist/esm/components/form/Checkbox/styles.js +64 -0
- package/dist/esm/components/form/CurrencyInput/CoreCurrencyInput/index.js +1 -1
- package/dist/esm/components/form/Select/components/MultipleValue/index.js +120 -0
- package/dist/esm/components/form/Select/components/MultipleValue/styles.js +22 -0
- package/dist/esm/components/form/Select/index.js +98 -44
- package/dist/esm/components/form/Select/index.stories.js +31 -0
- package/dist/esm/components/form/Select/palette.js +3 -1
- package/dist/esm/components/form/Select/styles.js +25 -9
- package/dist/esm/index.js +2 -0
- package/dist/esm/palette/context.js +5 -1
- package/dist/esm/palette/provider.js +5 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +14 -0
- package/dist/palette/context.d.ts +4 -0
- package/dist/palette/context.js +5 -1
- package/dist/palette/provider.js +5 -1
- package/dist/palette/usePalette.d.ts +2 -0
- package/package.json +1 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PropsWithChildren, ReactNode } from 'react';
|
|
2
|
+
type TPlacement = 'top' | 'bottom';
|
|
3
|
+
export type TProps = {
|
|
4
|
+
overlay: ReactNode;
|
|
5
|
+
placement?: TPlacement;
|
|
6
|
+
gap?: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const Tooltip: ({ overlay, placement, gap, children }: PropsWithChildren<TProps>) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
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.Tooltip = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _reactDom = require("react-dom");
|
|
10
|
+
var _Typography = require("../Typography");
|
|
11
|
+
var _palette = require("../../../palette");
|
|
12
|
+
var S = _interopRequireWildcard(require("./styles"));
|
|
13
|
+
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); }
|
|
14
|
+
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; }
|
|
15
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
16
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
17
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
18
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
19
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
20
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
21
|
+
var Tooltip = exports.Tooltip = function Tooltip(_ref) {
|
|
22
|
+
var overlay = _ref.overlay,
|
|
23
|
+
_ref$placement = _ref.placement,
|
|
24
|
+
placement = _ref$placement === void 0 ? 'top' : _ref$placement,
|
|
25
|
+
_ref$gap = _ref.gap,
|
|
26
|
+
gap = _ref$gap === void 0 ? 8 : _ref$gap,
|
|
27
|
+
children = _ref.children;
|
|
28
|
+
var palette = (0, _palette.useComponentPalette)('tooltip');
|
|
29
|
+
var triggerRef = (0, _react.useRef)(null);
|
|
30
|
+
var _useState = (0, _react.useState)(null),
|
|
31
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
32
|
+
coords = _useState2[0],
|
|
33
|
+
setCoords = _useState2[1];
|
|
34
|
+
var show = (0, _react.useCallback)(function () {
|
|
35
|
+
var el = triggerRef.current;
|
|
36
|
+
if (!el || !overlay) return;
|
|
37
|
+
var rect = el.getBoundingClientRect();
|
|
38
|
+
setCoords({
|
|
39
|
+
top: placement === 'top' ? rect.top - gap : rect.bottom + gap,
|
|
40
|
+
left: rect.left + rect.width / 2
|
|
41
|
+
});
|
|
42
|
+
}, [overlay, placement, gap]);
|
|
43
|
+
var hide = (0, _react.useCallback)(function () {
|
|
44
|
+
return setCoords(null);
|
|
45
|
+
}, []);
|
|
46
|
+
return /*#__PURE__*/_react["default"].createElement(S.Trigger, {
|
|
47
|
+
ref: triggerRef,
|
|
48
|
+
onMouseEnter: show,
|
|
49
|
+
onMouseLeave: hide,
|
|
50
|
+
onFocus: show,
|
|
51
|
+
onBlur: hide
|
|
52
|
+
}, children, coords && /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/_react["default"].createElement(S.Overlay, {
|
|
53
|
+
$palette: palette,
|
|
54
|
+
$top: coords.top,
|
|
55
|
+
$left: coords.left,
|
|
56
|
+
$placement: placement
|
|
57
|
+
}, typeof overlay === 'string' ? /*#__PURE__*/_react["default"].createElement(_Typography.Typography, {
|
|
58
|
+
variant: "captionRegular"
|
|
59
|
+
}, overlay) : overlay), document.body));
|
|
60
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.Top = exports.Bottom = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _ = require(".");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
10
|
+
var meta = {
|
|
11
|
+
title: 'common/Tooltip',
|
|
12
|
+
component: _.Tooltip,
|
|
13
|
+
tags: ['autodocs']
|
|
14
|
+
};
|
|
15
|
+
var _default = exports["default"] = meta;
|
|
16
|
+
var Component = function Component(props) {
|
|
17
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
18
|
+
style: {
|
|
19
|
+
padding: 80,
|
|
20
|
+
display: 'flex',
|
|
21
|
+
justifyContent: 'center'
|
|
22
|
+
}
|
|
23
|
+
}, /*#__PURE__*/_react["default"].createElement(_.Tooltip, props, /*#__PURE__*/_react["default"].createElement("span", {
|
|
24
|
+
style: {
|
|
25
|
+
border: '1px dashed #999',
|
|
26
|
+
padding: 8
|
|
27
|
+
}
|
|
28
|
+
}, "\u041D\u0430\u0432\u0435\u0434\u0438 \u043D\u0430 \u043C\u0435\u043D\u044F")));
|
|
29
|
+
};
|
|
30
|
+
var Top = exports.Top = {
|
|
31
|
+
args: {
|
|
32
|
+
overlay: 'Подсказка сверху',
|
|
33
|
+
placement: 'top'
|
|
34
|
+
},
|
|
35
|
+
render: Component
|
|
36
|
+
};
|
|
37
|
+
var Bottom = exports.Bottom = {
|
|
38
|
+
args: {
|
|
39
|
+
overlay: 'Подсказка снизу',
|
|
40
|
+
placement: 'bottom'
|
|
41
|
+
},
|
|
42
|
+
render: Component
|
|
43
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.generateTooltipPalette = void 0;
|
|
7
|
+
var generateTooltipPalette = exports.generateTooltipPalette = function generateTooltipPalette(abstractPalette) {
|
|
8
|
+
return {
|
|
9
|
+
bg: abstractPalette.base,
|
|
10
|
+
color: abstractPalette.primary,
|
|
11
|
+
shadow: '0px 8px 21px rgba(53, 63, 71, 0.16)'
|
|
12
|
+
};
|
|
13
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { TTooltipPalette } from './palette';
|
|
3
|
+
export declare const Trigger: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>> & string;
|
|
4
|
+
export declare const Overlay: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
5
|
+
$palette: TTooltipPalette;
|
|
6
|
+
$top: number;
|
|
7
|
+
$left: number;
|
|
8
|
+
$placement: 'top' | 'bottom';
|
|
9
|
+
}>> & string;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Trigger = exports.Overlay = void 0;
|
|
7
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
9
|
+
var Trigger = exports.Trigger = _styledComponents["default"].span.withConfig({
|
|
10
|
+
displayName: "styles__Trigger",
|
|
11
|
+
componentId: "sc-153dwvc-0"
|
|
12
|
+
})(["display:inline-flex;"]);
|
|
13
|
+
var Overlay = exports.Overlay = _styledComponents["default"].div.withConfig({
|
|
14
|
+
displayName: "styles__Overlay",
|
|
15
|
+
componentId: "sc-153dwvc-1"
|
|
16
|
+
})(["position:fixed;z-index:9999;top:", "px;left:", "px;transform:", ";box-sizing:border-box;min-height:28px;padding:4px 6px;border-radius:10px;background-color:", ";color:", ";box-shadow:", ";pointer-events:none;max-width:240px;"], function (_ref) {
|
|
17
|
+
var $top = _ref.$top;
|
|
18
|
+
return $top;
|
|
19
|
+
}, function (_ref2) {
|
|
20
|
+
var $left = _ref2.$left;
|
|
21
|
+
return $left;
|
|
22
|
+
}, function (_ref3) {
|
|
23
|
+
var $placement = _ref3.$placement;
|
|
24
|
+
return $placement === 'top' ? 'translate(-50%, -100%)' : 'translate(-50%, 0)';
|
|
25
|
+
}, function (_ref4) {
|
|
26
|
+
var $palette = _ref4.$palette;
|
|
27
|
+
return $palette.bg;
|
|
28
|
+
}, function (_ref5) {
|
|
29
|
+
var $palette = _ref5.$palette;
|
|
30
|
+
return $palette.color;
|
|
31
|
+
}, function (_ref6) {
|
|
32
|
+
var $palette = _ref6.$palette;
|
|
33
|
+
return $palette.shadow;
|
|
34
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CheckIcon = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
9
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
10
|
+
var CheckIcon = exports.CheckIcon = function CheckIcon(props) {
|
|
11
|
+
return /*#__PURE__*/_react["default"].createElement("svg", _extends({
|
|
12
|
+
width: "12",
|
|
13
|
+
height: "11",
|
|
14
|
+
viewBox: "0 0 12 11",
|
|
15
|
+
fill: "none",
|
|
16
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
17
|
+
}, props), /*#__PURE__*/_react["default"].createElement("path", {
|
|
18
|
+
fillRule: "evenodd",
|
|
19
|
+
clipRule: "evenodd",
|
|
20
|
+
d: "M5.43158 10.0674C5.22406 10.3745 4.94736 10.5156 4.62744 10.5156C4.3075 10.5156 4.0481 10.3911 3.78006 10.0757L0.442444 6.19092C0.295471 6.0166 0.208984 5.79248 0.208984 5.58496C0.208984 5.14502 0.563507 4.82129 0.987183 4.82129C1.26389 4.82129 1.49734 4.9209 1.72217 5.19482L4.5842 8.63965L9.9624 0.430176C10.1526 0.147949 10.4034 0.00683594 10.6541 0.00683594C11.0778 0.00683594 11.4842 0.280762 11.4842 0.720703C11.4842 0.919922 11.3718 1.14404 11.2421 1.32666L5.43158 10.0674Z",
|
|
21
|
+
fill: "white"
|
|
22
|
+
}));
|
|
23
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React, { FC, InputHTMLAttributes } from 'react';
|
|
2
|
+
export type TProps = InputHTMLAttributes<HTMLInputElement> & {
|
|
3
|
+
className?: string;
|
|
4
|
+
checked: boolean;
|
|
5
|
+
label?: string | React.ReactNode;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
disabledText?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const Checkbox: FC<TProps>;
|
|
10
|
+
declare const _default: React.NamedExoticComponent<TProps>;
|
|
11
|
+
export default _default;
|
|
@@ -0,0 +1,47 @@
|
|
|
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"] = exports.Checkbox = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _Typography = require("../../common/Typography");
|
|
10
|
+
var _Tooltip = require("../../common/Tooltip");
|
|
11
|
+
var _palette = require("../../../palette");
|
|
12
|
+
var S = _interopRequireWildcard(require("./styles"));
|
|
13
|
+
var _excluded = ["disabled", "className", "checked", "disabledText", "label"];
|
|
14
|
+
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); }
|
|
15
|
+
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; }
|
|
16
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
17
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
18
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }
|
|
19
|
+
var Checkbox = exports.Checkbox = function Checkbox(_ref) {
|
|
20
|
+
var _ref$disabled = _ref.disabled,
|
|
21
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
22
|
+
className = _ref.className,
|
|
23
|
+
_ref$checked = _ref.checked,
|
|
24
|
+
checked = _ref$checked === void 0 ? false : _ref$checked,
|
|
25
|
+
disabledText = _ref.disabledText,
|
|
26
|
+
label = _ref.label,
|
|
27
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
28
|
+
var palette = (0, _palette.useComponentPalette)('checkbox');
|
|
29
|
+
var content = (0, _react.useMemo)(function () {
|
|
30
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(S.HiddenCheckbox, _extends({
|
|
31
|
+
type: "checkbox",
|
|
32
|
+
disabled: disabled,
|
|
33
|
+
checked: checked
|
|
34
|
+
}, props)), /*#__PURE__*/_react["default"].createElement(S.StyledCheckbox, null, /*#__PURE__*/_react["default"].createElement(S.CheckboxIcon, null)));
|
|
35
|
+
}, [checked, disabled, props]);
|
|
36
|
+
return /*#__PURE__*/_react["default"].createElement(S.CheckboxLabel, {
|
|
37
|
+
$checked: checked,
|
|
38
|
+
$disabled: disabled,
|
|
39
|
+
$palette: palette,
|
|
40
|
+
className: className
|
|
41
|
+
}, /*#__PURE__*/_react["default"].createElement(S.CheckboxContainer, null, disabled && disabledText ? /*#__PURE__*/_react["default"].createElement(_Tooltip.Tooltip, {
|
|
42
|
+
overlay: disabledText
|
|
43
|
+
}, content) : content), label && /*#__PURE__*/_react["default"].createElement(_Typography.Typography, {
|
|
44
|
+
variant: "bodyMRegular"
|
|
45
|
+
}, label));
|
|
46
|
+
};
|
|
47
|
+
var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(Checkbox);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { Checkbox, TProps } from '.';
|
|
3
|
+
declare const meta: Meta<typeof Checkbox>;
|
|
4
|
+
export default meta;
|
|
5
|
+
export declare const Default: StoryObj<TProps>;
|
|
6
|
+
export declare const Checked: StoryObj<TProps>;
|
|
7
|
+
export declare const Disabled: StoryObj<TProps>;
|
|
8
|
+
export declare const DisabledChecked: StoryObj<TProps>;
|
|
@@ -0,0 +1,69 @@
|
|
|
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"] = exports.DisabledChecked = exports.Disabled = exports.Default = exports.Checked = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _ = require(".");
|
|
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 _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
13
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
14
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
15
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
16
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
17
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
18
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
19
|
+
var meta = {
|
|
20
|
+
title: 'form/Checkbox',
|
|
21
|
+
component: _.Checkbox,
|
|
22
|
+
tags: ['autodocs']
|
|
23
|
+
};
|
|
24
|
+
var _default = exports["default"] = meta;
|
|
25
|
+
var Component = function Component(props) {
|
|
26
|
+
var _useState = (0, _react.useState)(props.checked),
|
|
27
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
28
|
+
checked = _useState2[0],
|
|
29
|
+
setChecked = _useState2[1];
|
|
30
|
+
return /*#__PURE__*/_react["default"].createElement(_.Checkbox, _extends({}, props, {
|
|
31
|
+
checked: checked,
|
|
32
|
+
onChange: function onChange() {
|
|
33
|
+
return setChecked(function (prev) {
|
|
34
|
+
return !prev;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}));
|
|
38
|
+
};
|
|
39
|
+
var Default = exports.Default = {
|
|
40
|
+
args: {
|
|
41
|
+
checked: false,
|
|
42
|
+
label: 'Label'
|
|
43
|
+
},
|
|
44
|
+
render: Component
|
|
45
|
+
};
|
|
46
|
+
var Checked = exports.Checked = {
|
|
47
|
+
args: {
|
|
48
|
+
checked: true,
|
|
49
|
+
label: 'Label'
|
|
50
|
+
},
|
|
51
|
+
render: Component
|
|
52
|
+
};
|
|
53
|
+
var Disabled = exports.Disabled = {
|
|
54
|
+
args: {
|
|
55
|
+
checked: false,
|
|
56
|
+
disabled: true,
|
|
57
|
+
label: 'Label',
|
|
58
|
+
disabledText: 'Недоступно'
|
|
59
|
+
},
|
|
60
|
+
render: Component
|
|
61
|
+
};
|
|
62
|
+
var DisabledChecked = exports.DisabledChecked = {
|
|
63
|
+
args: {
|
|
64
|
+
checked: true,
|
|
65
|
+
disabled: true,
|
|
66
|
+
label: 'Label'
|
|
67
|
+
},
|
|
68
|
+
render: Component
|
|
69
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TAbstractPalette } from '../../../palette';
|
|
2
|
+
export type TCheckboxPalette = {
|
|
3
|
+
labelColor: string;
|
|
4
|
+
mark: string;
|
|
5
|
+
borderDefault: string;
|
|
6
|
+
borderHover: string;
|
|
7
|
+
checkedBg: string;
|
|
8
|
+
checkedHoverBg: string;
|
|
9
|
+
disabledBg: string;
|
|
10
|
+
disabledBorder: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const generateCheckboxPalette: (abstractPalette: TAbstractPalette) => TCheckboxPalette;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.generateCheckboxPalette = void 0;
|
|
7
|
+
var _hexToRgba = _interopRequireDefault(require("../../../utils/hexToRgba"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
9
|
+
var generateCheckboxPalette = exports.generateCheckboxPalette = function generateCheckboxPalette(abstractPalette) {
|
|
10
|
+
return {
|
|
11
|
+
labelColor: abstractPalette.primary,
|
|
12
|
+
mark: abstractPalette.base,
|
|
13
|
+
borderDefault: (0, _hexToRgba["default"])(abstractPalette.primary, 0.3),
|
|
14
|
+
borderHover: (0, _hexToRgba["default"])(abstractPalette.primary, 0.5),
|
|
15
|
+
checkedBg: abstractPalette.secondary,
|
|
16
|
+
checkedHoverBg: '#EDC743',
|
|
17
|
+
disabledBg: (0, _hexToRgba["default"])(abstractPalette.neutralBrutal, 0.3),
|
|
18
|
+
disabledBorder: (0, _hexToRgba["default"])(abstractPalette.neutralBrutal, 0.3)
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { TCheckboxPalette } from './palette';
|
|
3
|
+
export declare const CheckboxContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
4
|
+
export declare const HiddenCheckbox: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>> & string;
|
|
5
|
+
export declare const CheckboxIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<import("react").SVGProps<SVGSVGElement>, "ref"> & {
|
|
6
|
+
ref?: ((instance: SVGSVGElement | null) => void) | import("react").RefObject<SVGSVGElement> | null | undefined;
|
|
7
|
+
}, never>> & string & Omit<(props: import("react").SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element, keyof import("react").Component<any, {}, any>>;
|
|
8
|
+
export declare const StyledCheckbox: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
9
|
+
export declare const CheckboxLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, {
|
|
10
|
+
$checked: boolean;
|
|
11
|
+
$disabled: boolean;
|
|
12
|
+
$palette: TCheckboxPalette;
|
|
13
|
+
}>> & string;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.StyledCheckbox = exports.HiddenCheckbox = exports.CheckboxLabel = exports.CheckboxIcon = exports.CheckboxContainer = void 0;
|
|
7
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
8
|
+
var _CheckIcon = require("./CheckIcon");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
10
|
+
var TRANSITION = 'all .2s ease-in-out';
|
|
11
|
+
var BORDER_RADIUS_MIN = 4;
|
|
12
|
+
var CheckboxContainer = exports.CheckboxContainer = _styledComponents["default"].div.withConfig({
|
|
13
|
+
displayName: "styles__CheckboxContainer",
|
|
14
|
+
componentId: "sc-11prdl0-0"
|
|
15
|
+
})(["display:inline-block;vertical-align:middle;"]);
|
|
16
|
+
var HiddenCheckbox = exports.HiddenCheckbox = _styledComponents["default"].input.withConfig({
|
|
17
|
+
displayName: "styles__HiddenCheckbox",
|
|
18
|
+
componentId: "sc-11prdl0-1"
|
|
19
|
+
})(["display:none;"]);
|
|
20
|
+
var CheckboxIcon = exports.CheckboxIcon = (0, _styledComponents["default"])(_CheckIcon.CheckIcon).withConfig({
|
|
21
|
+
displayName: "styles__CheckboxIcon",
|
|
22
|
+
componentId: "sc-11prdl0-2"
|
|
23
|
+
})(["transition:", ";"], TRANSITION);
|
|
24
|
+
var StyledCheckbox = exports.StyledCheckbox = _styledComponents["default"].div.withConfig({
|
|
25
|
+
displayName: "styles__StyledCheckbox",
|
|
26
|
+
componentId: "sc-11prdl0-3"
|
|
27
|
+
})(["display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:", "px;transition:", ";"], BORDER_RADIUS_MIN, TRANSITION);
|
|
28
|
+
var getStylesCheckbox = function getStylesCheckbox(palette, disabled, checked) {
|
|
29
|
+
if (disabled) {
|
|
30
|
+
if (checked) {
|
|
31
|
+
return "background-color: ".concat(palette.disabledBg, "; border: none");
|
|
32
|
+
}
|
|
33
|
+
return "border: 1px solid ".concat(palette.disabledBorder);
|
|
34
|
+
}
|
|
35
|
+
if (checked) {
|
|
36
|
+
return "background-color: ".concat(palette.checkedBg, "; border: none");
|
|
37
|
+
}
|
|
38
|
+
return "border: 1px solid ".concat(palette.borderDefault);
|
|
39
|
+
};
|
|
40
|
+
var getHoverStylesCheckbox = function getHoverStylesCheckbox(palette, disabled, checked) {
|
|
41
|
+
if (disabled) {
|
|
42
|
+
if (checked) {
|
|
43
|
+
return "background-color: ".concat(palette.disabledBg, "; border: none");
|
|
44
|
+
}
|
|
45
|
+
return "border: 1px solid ".concat(palette.disabledBg);
|
|
46
|
+
}
|
|
47
|
+
if (checked) {
|
|
48
|
+
return "background-color: ".concat(palette.checkedHoverBg, "; border: none");
|
|
49
|
+
}
|
|
50
|
+
return "border: 1px solid ".concat(palette.borderHover);
|
|
51
|
+
};
|
|
52
|
+
var CheckboxLabel = exports.CheckboxLabel = _styledComponents["default"].label.withConfig({
|
|
53
|
+
displayName: "styles__CheckboxLabel",
|
|
54
|
+
componentId: "sc-11prdl0-4"
|
|
55
|
+
})(["display:flex;align-items:center;grid-column-gap:10px;user-select:none;width:fit-content;cursor:pointer;color:", ";", "{", ";", "{opacity:", ";}}&:hover{", "{", ";}}"], function (_ref) {
|
|
56
|
+
var $palette = _ref.$palette;
|
|
57
|
+
return $palette.labelColor;
|
|
58
|
+
}, StyledCheckbox, function (_ref2) {
|
|
59
|
+
var $checked = _ref2.$checked,
|
|
60
|
+
$disabled = _ref2.$disabled,
|
|
61
|
+
$palette = _ref2.$palette;
|
|
62
|
+
return getStylesCheckbox($palette, $disabled, $checked);
|
|
63
|
+
}, CheckboxIcon, function (_ref3) {
|
|
64
|
+
var $checked = _ref3.$checked;
|
|
65
|
+
return $checked ? 1 : 0;
|
|
66
|
+
}, StyledCheckbox, function (_ref4) {
|
|
67
|
+
var $checked = _ref4.$checked,
|
|
68
|
+
$disabled = _ref4.$disabled,
|
|
69
|
+
$palette = _ref4.$palette;
|
|
70
|
+
return getHoverStylesCheckbox($palette, $disabled, $checked);
|
|
71
|
+
});
|
|
@@ -58,7 +58,7 @@ var CoreCurrencyInput = exports.CoreCurrencyInput = function CoreCurrencyInput(_
|
|
|
58
58
|
size: fieldSize
|
|
59
59
|
}, /*#__PURE__*/_react["default"].createElement(_styles.InputWrapper, null, modernPlaceholder, /*#__PURE__*/_react["default"].createElement(_styles.StyledCurrencyInputFromLibrary, {
|
|
60
60
|
$palette: palette,
|
|
61
|
-
$hasBorder: !useModernStyles,
|
|
61
|
+
$hasBorder: !useModernStyles || hasError,
|
|
62
62
|
$paddingLeft: 18,
|
|
63
63
|
$paddingRight: 18,
|
|
64
64
|
$borderRadius: 10,
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TOption } from '../..';
|
|
2
|
+
import { TProps as TChipProps } from '../../../../common/Chip';
|
|
3
|
+
export type TProps<TValue> = {
|
|
4
|
+
selectedOptions: TOption<TValue>[];
|
|
5
|
+
onRemove: (value: TValue) => void;
|
|
6
|
+
collapse?: boolean;
|
|
7
|
+
chipProps?: Partial<Omit<TChipProps, 'label'>>;
|
|
8
|
+
};
|
|
9
|
+
export declare const MultipleValue: <TValue extends string | number>({ selectedOptions, onRemove, collapse, chipProps, }: TProps<TValue>) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,129 @@
|
|
|
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.MultipleValue = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var S = _interopRequireWildcard(require("./styles"));
|
|
10
|
+
var _palette = require("../../../../../palette");
|
|
11
|
+
var _Chip = require("../../../../common/Chip");
|
|
12
|
+
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); }
|
|
13
|
+
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; }
|
|
14
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
15
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
16
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
17
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
18
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
19
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
20
|
+
var CHIP_SIZE = 'xs';
|
|
21
|
+
var MultipleValue = exports.MultipleValue = function MultipleValue(_ref) {
|
|
22
|
+
var _chipProps$color, _chipProps$bgColor, _chipProps$size;
|
|
23
|
+
var selectedOptions = _ref.selectedOptions,
|
|
24
|
+
onRemove = _ref.onRemove,
|
|
25
|
+
_ref$collapse = _ref.collapse,
|
|
26
|
+
collapse = _ref$collapse === void 0 ? false : _ref$collapse,
|
|
27
|
+
chipProps = _ref.chipProps;
|
|
28
|
+
var palette = (0, _palette.useComponentPalette)('select');
|
|
29
|
+
var chipColor = (_chipProps$color = chipProps === null || chipProps === void 0 ? void 0 : chipProps.color) !== null && _chipProps$color !== void 0 ? _chipProps$color : palette.tagColor;
|
|
30
|
+
var chipBgColor = (_chipProps$bgColor = chipProps === null || chipProps === void 0 ? void 0 : chipProps.bgColor) !== null && _chipProps$bgColor !== void 0 ? _chipProps$bgColor : palette.tagBg;
|
|
31
|
+
var chipSize = (_chipProps$size = chipProps === null || chipProps === void 0 ? void 0 : chipProps.size) !== null && _chipProps$size !== void 0 ? _chipProps$size : CHIP_SIZE;
|
|
32
|
+
var wrapperRef = (0, _react.useRef)(null);
|
|
33
|
+
var tagRefs = (0, _react.useRef)([]);
|
|
34
|
+
var counterRef = (0, _react.useRef)(null);
|
|
35
|
+
var _useState = (0, _react.useState)(selectedOptions.length),
|
|
36
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
37
|
+
visibleCount = _useState2[0],
|
|
38
|
+
setVisibleCount = _useState2[1];
|
|
39
|
+
var handleRemove = (0, _react.useCallback)(function (event, value) {
|
|
40
|
+
event.preventDefault();
|
|
41
|
+
event.stopPropagation();
|
|
42
|
+
onRemove(value);
|
|
43
|
+
}, [onRemove]);
|
|
44
|
+
(0, _react.useLayoutEffect)(function () {
|
|
45
|
+
if (!collapse) {
|
|
46
|
+
setVisibleCount(selectedOptions.length);
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
var wrapper = wrapperRef.current;
|
|
50
|
+
if (!wrapper) return undefined;
|
|
51
|
+
var recalculate = function recalculate() {
|
|
52
|
+
var _counterRef$current;
|
|
53
|
+
var total = selectedOptions.length;
|
|
54
|
+
var containerWidth = wrapper.clientWidth;
|
|
55
|
+
var widths = tagRefs.current.slice(0, total).map(function (el) {
|
|
56
|
+
return (el === null || el === void 0 ? void 0 : el.offsetWidth) || 0;
|
|
57
|
+
});
|
|
58
|
+
var counterWidth = ((_counterRef$current = counterRef.current) === null || _counterRef$current === void 0 ? void 0 : _counterRef$current.offsetWidth) || 0;
|
|
59
|
+
var countFitting = function countFitting(reserve) {
|
|
60
|
+
var used = 0;
|
|
61
|
+
var count = 0;
|
|
62
|
+
for (var i = 0; i < total; i += 1) {
|
|
63
|
+
var width = widths[i] + (count > 0 ? S.TAGS_GAP : 0);
|
|
64
|
+
if (used + width <= containerWidth - reserve) {
|
|
65
|
+
used += width;
|
|
66
|
+
count += 1;
|
|
67
|
+
} else {
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return count;
|
|
72
|
+
};
|
|
73
|
+
var count = countFitting(0);
|
|
74
|
+
// если влезли не все теги, оставляем место под счётчик "+N"
|
|
75
|
+
if (count < total) {
|
|
76
|
+
count = Math.max(countFitting(counterWidth + S.TAGS_GAP), 1);
|
|
77
|
+
}
|
|
78
|
+
setVisibleCount(count);
|
|
79
|
+
};
|
|
80
|
+
recalculate();
|
|
81
|
+
var observer = new ResizeObserver(recalculate);
|
|
82
|
+
observer.observe(wrapper);
|
|
83
|
+
return function () {
|
|
84
|
+
return observer.disconnect();
|
|
85
|
+
};
|
|
86
|
+
}, [collapse, selectedOptions]);
|
|
87
|
+
var safeVisibleCount = collapse ? visibleCount : selectedOptions.length;
|
|
88
|
+
var hiddenCount = selectedOptions.length - safeVisibleCount;
|
|
89
|
+
var hiddenStyle = {
|
|
90
|
+
position: 'absolute',
|
|
91
|
+
visibility: 'hidden',
|
|
92
|
+
pointerEvents: 'none'
|
|
93
|
+
};
|
|
94
|
+
return /*#__PURE__*/_react["default"].createElement(S.Wrapper, {
|
|
95
|
+
ref: wrapperRef,
|
|
96
|
+
$collapse: collapse
|
|
97
|
+
}, selectedOptions.map(function (option, index) {
|
|
98
|
+
return /*#__PURE__*/_react["default"].createElement(S.ItemWrapper, {
|
|
99
|
+
key: option.value,
|
|
100
|
+
ref: function ref(el) {
|
|
101
|
+
tagRefs.current[index] = el;
|
|
102
|
+
},
|
|
103
|
+
style: collapse && index >= safeVisibleCount ? hiddenStyle : undefined
|
|
104
|
+
}, /*#__PURE__*/_react["default"].createElement(_Chip.Chip, {
|
|
105
|
+
size: chipSize,
|
|
106
|
+
color: chipColor,
|
|
107
|
+
bgColor: chipBgColor,
|
|
108
|
+
label: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(S.TagLabel, {
|
|
109
|
+
variant: "smallMedium"
|
|
110
|
+
}, option.label), /*#__PURE__*/_react["default"].createElement(S.TagRemove, {
|
|
111
|
+
type: "button",
|
|
112
|
+
onMouseDown: function onMouseDown(event) {
|
|
113
|
+
return event.preventDefault();
|
|
114
|
+
},
|
|
115
|
+
onClick: function onClick(event) {
|
|
116
|
+
return handleRemove(event, option.value);
|
|
117
|
+
}
|
|
118
|
+
}, "\xD7"))
|
|
119
|
+
}));
|
|
120
|
+
}), collapse && /*#__PURE__*/_react["default"].createElement(S.ItemWrapper, {
|
|
121
|
+
ref: counterRef,
|
|
122
|
+
style: hiddenCount > 0 ? undefined : hiddenStyle
|
|
123
|
+
}, /*#__PURE__*/_react["default"].createElement(_Chip.Chip, {
|
|
124
|
+
size: chipSize,
|
|
125
|
+
color: chipColor,
|
|
126
|
+
bgColor: chipBgColor,
|
|
127
|
+
label: "+".concat(hiddenCount)
|
|
128
|
+
})));
|
|
129
|
+
};
|