UNPKG

2.84 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
5var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports["default"] = void 0;
11
12var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
14var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
15
16var _classnames = _interopRequireDefault(require("classnames"));
17
18var _react = _interopRequireWildcard(require("react"));
19
20var _ClearButton = _interopRequireDefault(require("./ClearButton"));
21
22var _token = require("../behaviors/token");
23
24var _utils = require("../utils");
25
26var InteractiveToken = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
27 var active = _ref.active,
28 children = _ref.children,
29 className = _ref.className,
30 onRemove = _ref.onRemove,
31 tabIndex = _ref.tabIndex,
32 props = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["active", "children", "className", "onRemove", "tabIndex"]);
33 return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, props, {
34 className: (0, _classnames["default"])('rbt-token', 'rbt-token-removeable', {
35 'rbt-token-active': !!active
36 }, className),
37 ref: ref,
38 tabIndex: tabIndex || 0
39 }), children, /*#__PURE__*/_react["default"].createElement(_ClearButton["default"], {
40 className: "rbt-token-remove-button",
41 label: "Remove",
42 onClick: onRemove,
43 tabIndex: -1
44 }));
45});
46
47var StaticToken = function StaticToken(_ref2) {
48 var children = _ref2.children,
49 className = _ref2.className,
50 disabled = _ref2.disabled,
51 href = _ref2.href;
52 var classnames = (0, _classnames["default"])('rbt-token', {
53 'rbt-token-disabled': disabled
54 }, className);
55
56 if (href && !disabled) {
57 return /*#__PURE__*/_react["default"].createElement("a", {
58 className: classnames,
59 href: href
60 }, children);
61 }
62
63 return /*#__PURE__*/_react["default"].createElement("div", {
64 className: classnames
65 }, children);
66};
67/**
68 * Token
69 *
70 * Individual token component, generally displayed within the TokenizerInput
71 * component, but can also be rendered on its own.
72 */
73
74
75var Token = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
76 var disabled = props.disabled,
77 onRemove = props.onRemove,
78 readOnly = props.readOnly;
79 return !disabled && !readOnly && (0, _utils.isFunction)(onRemove) ? /*#__PURE__*/_react["default"].createElement(InteractiveToken, (0, _extends2["default"])({}, props, {
80 ref: ref
81 })) : /*#__PURE__*/_react["default"].createElement(StaticToken, props);
82});
83
84var _default = (0, _token.withToken)(Token);
85
86exports["default"] = _default;
\No newline at end of file