@mirai/ui 1.0.239 → 1.0.241
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/build/components/Table/Table.js +27 -9
- package/build/components/Table/Table.js.map +1 -1
- package/build/components/Table/helpers/exists.js +2 -3
- package/build/components/Table/helpers/exists.js.map +1 -1
- package/build/components/Tooltip/Tooltip.js +10 -7
- package/build/components/Tooltip/Tooltip.js.map +1 -1
- package/build/components/Tooltip/__tests__/__snapshots__/Tooltip.test.jsx.snap +18 -10
- package/package.json +1 -1
|
@@ -14,7 +14,7 @@ var _Table = require("./Table.constants");
|
|
|
14
14
|
var _Table2 = require("./Table.Filter");
|
|
15
15
|
var _TableModule = _interopRequireDefault(require("./Table.module.css"));
|
|
16
16
|
var _Table3 = require("./Table.Row");
|
|
17
|
-
var _excluded = ["dataSource", "filter", "inline", "l10n", "pagination", "schema", "search", "selected", "sort", "store", "onPress", "onScroll", "onSelect"];
|
|
17
|
+
var _excluded = ["dataSource", "filter", "inline", "id", "l10n", "pagination", "schema", "search", "selected", "sort", "store", "onPress", "onScroll", "onSelect"];
|
|
18
18
|
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); }
|
|
19
19
|
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; }
|
|
20
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -41,6 +41,8 @@ var Table = function Table(_ref) {
|
|
|
41
41
|
propFilter = _ref.filter,
|
|
42
42
|
_ref$inline = _ref.inline,
|
|
43
43
|
inline = _ref$inline === void 0 ? true : _ref$inline,
|
|
44
|
+
_ref$id = _ref.id,
|
|
45
|
+
id = _ref$id === void 0 ? false : _ref$id,
|
|
44
46
|
l10n = _ref.l10n,
|
|
45
47
|
pagination = _ref.pagination,
|
|
46
48
|
schema = _ref.schema,
|
|
@@ -96,16 +98,31 @@ var Table = function Table(_ref) {
|
|
|
96
98
|
selected: selected,
|
|
97
99
|
sort: sort
|
|
98
100
|
});
|
|
99
|
-
onSelect(selected.length !== next.length ?
|
|
101
|
+
onSelect(selected.length !== next.length ? id ? next.map(function (_ref2) {
|
|
102
|
+
var id = _ref2.id;
|
|
103
|
+
return id;
|
|
104
|
+
}) : next : [], event);
|
|
100
105
|
};
|
|
101
106
|
var handleScroll = function handleScroll(event) {
|
|
102
107
|
if (pagination && event.percentY > _Table.PAGINATION_DISPATCHER && limit < dataSource.length) setLimit(limit + pagination);
|
|
103
108
|
onScroll(event);
|
|
104
109
|
};
|
|
105
110
|
var handleSelect = function handleSelect(row, event) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
111
|
+
var updatedSelected;
|
|
112
|
+
if (id) {
|
|
113
|
+
var rowId = row.id;
|
|
114
|
+
updatedSelected = selected.includes(rowId) ? selected.filter(function (selectedId) {
|
|
115
|
+
return selectedId !== rowId;
|
|
116
|
+
}) : [].concat(_toConsumableArray(selected), [rowId]);
|
|
117
|
+
console.log({
|
|
118
|
+
selected: selected
|
|
119
|
+
});
|
|
120
|
+
} else {
|
|
121
|
+
updatedSelected = (0, _helpers2.exists)(row, selected) ? selected.filter(function (item) {
|
|
122
|
+
return !(0, _helpers2.exists)(row, [item]);
|
|
123
|
+
}) : [].concat(_toConsumableArray(selected), [row]);
|
|
124
|
+
}
|
|
125
|
+
onSelect(updatedSelected, event);
|
|
109
126
|
};
|
|
110
127
|
var handleSort = function handleSort(field) {
|
|
111
128
|
setSort(sort[field] === undefined ? _defineProperty({}, field, true) : sort[field] ? _defineProperty({}, field, false) : {});
|
|
@@ -114,12 +131,12 @@ var Table = function Table(_ref) {
|
|
|
114
131
|
role = _others$role === void 0 ? 'table' : _others$role,
|
|
115
132
|
testId = others.testId;
|
|
116
133
|
var fields = Object.keys(schema);
|
|
117
|
-
var
|
|
118
|
-
var
|
|
119
|
-
field =
|
|
134
|
+
var _ref5 = (filter === null || filter === void 0 ? void 0 : filter.filter(function () {
|
|
135
|
+
var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
136
|
+
field = _ref6.field;
|
|
120
137
|
return fields.includes(field);
|
|
121
138
|
})) || {},
|
|
122
|
-
filterFields =
|
|
139
|
+
filterFields = _ref5.length;
|
|
123
140
|
return /*#__PURE__*/_react.default.createElement(_primitives.ScrollView, _objectSpread(_objectSpread({}, others), {}, {
|
|
124
141
|
role: role,
|
|
125
142
|
onScroll: handleScroll,
|
|
@@ -176,6 +193,7 @@ Table.propTypes = {
|
|
|
176
193
|
dataSource: _propTypes.default.arrayOf(_propTypes.default.shape({})),
|
|
177
194
|
filter: _propTypes.default.arrayOf(_propTypes.default.shape({})),
|
|
178
195
|
inline: _propTypes.default.bool,
|
|
196
|
+
id: _propTypes.default.bool,
|
|
179
197
|
l10n: _Table.L10N_SHAPE,
|
|
180
198
|
pagination: _propTypes.default.number,
|
|
181
199
|
schema: _propTypes.default.shape({}).isRequired,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","names":["Table","dataSource","propFilter","filter","inline","l10n","pagination","schema","search","selected","sort","propSort","store","onPress","onScroll","onSelect","others","useState","setFilter","limit","setLimit","setSort","useEffect","nextFilter","storeFilter","Storage","get","length","set","handleAddFilter","item","handleRemoveFilter","index","splice","handleHeadSelect","row","event","next","select","handleScroll","percentY","PAGINATION_DISPATCHER","handleSelect","exists","handleSort","field","undefined","role","testId","fields","Object","keys","includes","filterFields","React","createElement","ScrollView","className","styles","style","container","outlined","table","useMemo","map","displayName","propTypes","PropTypes","arrayOf","shape","bool","L10N_SHAPE","number","isRequired","string","func"],"sources":["../../../src/components/Table/Table.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { Fragment, useEffect, useMemo, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { Primitive, ScrollView } from '../../primitives';\nimport { exists, select, Storage } from './helpers';\nimport { L10N_SHAPE, PAGINATION_DISPATCHER } from './Table.constants';\nimport { Filter } from './Table.Filter';\nimport style from './Table.module.css';\nimport { Row } from './Table.Row';\n\nexport const Table = ({\n dataSource = [],\n filter: propFilter,\n inline = true,\n l10n,\n pagination,\n schema,\n search,\n selected = [],\n sort: propSort = true,\n store,\n onPress,\n onScroll = () => {},\n onSelect,\n ...others\n}) => {\n const [filter, setFilter] = useState([]);\n const [limit, setLimit] = useState(pagination);\n const [sort, setSort] = useState({});\n\n useEffect(() => {\n let nextFilter = propFilter;\n if (store) {\n const storeFilter = Storage.get(`${store}:filter`);\n if (storeFilter?.length) nextFilter = storeFilter;\n }\n\n setFilter(nextFilter);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!store) return;\n Storage.set(`${store}:filter`, filter);\n }, [filter, store]);\n\n const handleAddFilter = (item) => {\n setFilter([...filter, item]);\n };\n\n const handleRemoveFilter = (index) => {\n filter?.splice(index, 1);\n setFilter([...filter]);\n };\n\n const handleHeadSelect = (row, event) => {\n const next = select({ dataSource, filter, schema, search, selected, sort });\n onSelect(selected.length !== next.length ? next : [], event);\n };\n\n const handleScroll = (event) => {\n if (pagination && event.percentY > PAGINATION_DISPATCHER && limit < dataSource.length) setLimit(limit + pagination);\n onScroll(event);\n };\n\n const handleSelect = (row, event) => {\n onSelect(exists(row, selected) ? selected.filter((item) => !exists(row, [item])) : [...selected, row], event);\n };\n\n const handleSort = (field) => {\n setSort(sort[field] === undefined ? { [field]: true } : sort[field] ? { [field]: false } : {});\n };\n\n const { role = 'table', testId } = others;\n const fields = Object.keys(schema);\n const { length: filterFields } = filter?.filter(({ field } = {}) => fields.includes(field)) || {};\n\n return React.createElement(\n ScrollView,\n {\n ...others,\n role,\n onScroll: handleScroll,\n className: styles(style.container, !inline && style.outlined, others.className),\n },\n <>\n {filterFields > 0 && (\n <Filter filter={filter} schema={schema} role=\"table-filter\" onRemove={(index) => handleRemoveFilter(index)} />\n )}\n <Primitive tag=\"table\" className={style.table}>\n <Primitive tag=\"thead\">\n <Row\n checked={dataSource.length > 0 ? selected.length === dataSource.length : undefined}\n indeterminate={dataSource.length > 0 && selected.length > 0}\n l10n={l10n}\n schema={schema}\n sort={sort}\n onFilter={propFilter ? handleAddFilter : undefined}\n onSelect={onSelect ? handleHeadSelect : undefined}\n onSort={propSort ? handleSort : undefined}\n testId={testId ? `${testId}-head` : undefined}\n />\n </Primitive>\n <Primitive tag=\"tbody\">\n {useMemo(\n () => select({ dataSource, filter, limit, schema, search, selected, sort }),\n [dataSource, filter, limit, schema, search, selected, sort],\n ).map((row, index) => (\n <Row\n checked={exists(row, selected)}\n dataSource={row}\n key={index}\n schema={schema}\n onPress={onPress}\n onSelect={onSelect ? handleSelect : undefined}\n testId={testId ? `${testId}-${index}` : undefined}\n />\n ))}\n </Primitive>\n </Primitive>\n </>,\n );\n};\n\nTable.displayName = 'Component:Table';\n\nTable.propTypes = {\n dataSource: PropTypes.arrayOf(PropTypes.shape({})),\n filter: PropTypes.arrayOf(PropTypes.shape({})),\n inline: PropTypes.bool,\n l10n: L10N_SHAPE,\n pagination: PropTypes.number,\n schema: PropTypes.shape({}).isRequired,\n search: PropTypes.string,\n selected: PropTypes.arrayOf(PropTypes.shape()),\n sort: PropTypes.bool,\n store: PropTypes.string,\n onPress: PropTypes.func,\n onScroll: PropTypes.func,\n onSelect: PropTypes.func,\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Table.js","names":["Table","dataSource","propFilter","filter","inline","id","l10n","pagination","schema","search","selected","sort","propSort","store","onPress","onScroll","onSelect","others","useState","setFilter","limit","setLimit","setSort","useEffect","nextFilter","storeFilter","Storage","get","length","set","handleAddFilter","item","handleRemoveFilter","index","splice","handleHeadSelect","row","event","next","select","map","handleScroll","percentY","PAGINATION_DISPATCHER","handleSelect","updatedSelected","rowId","includes","selectedId","console","log","exists","handleSort","field","undefined","role","testId","fields","Object","keys","filterFields","React","createElement","ScrollView","className","styles","style","container","outlined","table","useMemo","displayName","propTypes","PropTypes","arrayOf","shape","bool","L10N_SHAPE","number","isRequired","string","func"],"sources":["../../../src/components/Table/Table.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { Fragment, useEffect, useMemo, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { Primitive, ScrollView } from '../../primitives';\nimport { exists, select, Storage } from './helpers';\nimport { L10N_SHAPE, PAGINATION_DISPATCHER } from './Table.constants';\nimport { Filter } from './Table.Filter';\nimport style from './Table.module.css';\nimport { Row } from './Table.Row';\n\nexport const Table = ({\n dataSource = [],\n filter: propFilter,\n inline = true,\n id = false,\n l10n,\n pagination,\n schema,\n search,\n selected = [],\n sort: propSort = true,\n store,\n onPress,\n onScroll = () => {},\n onSelect,\n ...others\n}) => {\n const [filter, setFilter] = useState([]);\n const [limit, setLimit] = useState(pagination);\n const [sort, setSort] = useState({});\n\n useEffect(() => {\n let nextFilter = propFilter;\n if (store) {\n const storeFilter = Storage.get(`${store}:filter`);\n if (storeFilter?.length) nextFilter = storeFilter;\n }\n\n setFilter(nextFilter);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!store) return;\n Storage.set(`${store}:filter`, filter);\n }, [filter, store]);\n\n const handleAddFilter = (item) => {\n setFilter([...filter, item]);\n };\n\n const handleRemoveFilter = (index) => {\n filter?.splice(index, 1);\n setFilter([...filter]);\n };\n\n const handleHeadSelect = (row, event) => {\n const next = select({ dataSource, filter, schema, search, selected, sort });\n onSelect(selected.length !== next.length ? (id ? next.map(({ id }) => id) : next) : [], event);\n };\n\n const handleScroll = (event) => {\n if (pagination && event.percentY > PAGINATION_DISPATCHER && limit < dataSource.length) setLimit(limit + pagination);\n onScroll(event);\n };\n\n const handleSelect = (row, event) => {\n let updatedSelected;\n\n if (id) {\n const rowId = row.id;\n updatedSelected = selected.includes(rowId)\n ? selected.filter((selectedId) => selectedId !== rowId)\n : [...selected, rowId];\n console.log({ selected });\n } else {\n updatedSelected = exists(row, selected) ? selected.filter((item) => !exists(row, [item])) : [...selected, row];\n }\n\n onSelect(updatedSelected, event);\n };\n\n const handleSort = (field) => {\n setSort(sort[field] === undefined ? { [field]: true } : sort[field] ? { [field]: false } : {});\n };\n\n const { role = 'table', testId } = others;\n const fields = Object.keys(schema);\n const { length: filterFields } = filter?.filter(({ field } = {}) => fields.includes(field)) || {};\n\n return React.createElement(\n ScrollView,\n {\n ...others,\n role,\n onScroll: handleScroll,\n className: styles(style.container, !inline && style.outlined, others.className),\n },\n <>\n {filterFields > 0 && (\n <Filter filter={filter} schema={schema} role=\"table-filter\" onRemove={(index) => handleRemoveFilter(index)} />\n )}\n <Primitive tag=\"table\" className={style.table}>\n <Primitive tag=\"thead\">\n <Row\n checked={dataSource.length > 0 ? selected.length === dataSource.length : undefined}\n indeterminate={dataSource.length > 0 && selected.length > 0}\n l10n={l10n}\n schema={schema}\n sort={sort}\n onFilter={propFilter ? handleAddFilter : undefined}\n onSelect={onSelect ? handleHeadSelect : undefined}\n onSort={propSort ? handleSort : undefined}\n testId={testId ? `${testId}-head` : undefined}\n />\n </Primitive>\n <Primitive tag=\"tbody\">\n {useMemo(\n () => select({ dataSource, filter, limit, schema, search, selected, sort }),\n [dataSource, filter, limit, schema, search, selected, sort],\n ).map((row, index) => (\n <Row\n checked={exists(row, selected)}\n dataSource={row}\n key={index}\n schema={schema}\n onPress={onPress}\n onSelect={onSelect ? handleSelect : undefined}\n testId={testId ? `${testId}-${index}` : undefined}\n />\n ))}\n </Primitive>\n </Primitive>\n </>,\n );\n};\n\nTable.displayName = 'Component:Table';\n\nTable.propTypes = {\n dataSource: PropTypes.arrayOf(PropTypes.shape({})),\n filter: PropTypes.arrayOf(PropTypes.shape({})),\n inline: PropTypes.bool,\n id: PropTypes.bool,\n l10n: L10N_SHAPE,\n pagination: PropTypes.number,\n schema: PropTypes.shape({}).isRequired,\n search: PropTypes.string,\n selected: PropTypes.arrayOf(PropTypes.shape()),\n sort: PropTypes.bool,\n store: PropTypes.string,\n onPress: PropTypes.func,\n onScroll: PropTypes.func,\n onSelect: PropTypes.func,\n};\n"],"mappings":"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"}
|
|
@@ -24,9 +24,8 @@ var reduce = function reduce() {
|
|
|
24
24
|
};
|
|
25
25
|
var exists = function exists(row) {
|
|
26
26
|
var values = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return reduce(item) === reducedRow;
|
|
27
|
+
return row && row.id ? values.includes(row.id) : !!values.find(function (item) {
|
|
28
|
+
return reduce(item) === reduce(row);
|
|
30
29
|
});
|
|
31
30
|
};
|
|
32
31
|
exports.exists = exists;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exists.js","names":["TYPES","reduce","row","JSON","stringify","Object","entries","result","key","value","includes","exists","values","
|
|
1
|
+
{"version":3,"file":"exists.js","names":["TYPES","reduce","row","JSON","stringify","Object","entries","result","key","value","includes","exists","values","id","find","item"],"sources":["../../../../src/components/Table/helpers/exists.js"],"sourcesContent":["const TYPES = ['string', 'number'];\n\nconst reduce = (row = {}) =>\n JSON.stringify(\n Object.entries(row).reduce((result, [key, value]) => {\n if (TYPES.includes(typeof value)) result[key] = value;\n\n return result;\n }, {}),\n );\n\nexport const exists = (row, values = []) => {\n return row && row.id ? values.includes(row.id) : !!values.find((item) => reduce(item) === reduce(row));\n};\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAMA,KAAK,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAElC,IAAMC,MAAM,GAAG,SAATA,MAAM;EAAA,IAAIC,GAAG,uEAAG,CAAC,CAAC;EAAA,OACtBC,IAAI,CAACC,SAAS,CACZC,MAAM,CAACC,OAAO,CAACJ,GAAG,CAAC,CAACD,MAAM,CAAC,UAACM,MAAM,QAAmB;IAAA;MAAhBC,GAAG;MAAEC,KAAK;IAC7C,IAAIT,KAAK,CAACU,QAAQ,SAAQD,KAAK,EAAC,EAAEF,MAAM,CAACC,GAAG,CAAC,GAAGC,KAAK;IAErD,OAAOF,MAAM;EACf,CAAC,EAAE,CAAC,CAAC,CAAC,CACP;AAAA;AAEI,IAAMI,MAAM,GAAG,SAATA,MAAM,CAAIT,GAAG,EAAkB;EAAA,IAAhBU,MAAM,uEAAG,EAAE;EACrC,OAAOV,GAAG,IAAIA,GAAG,CAACW,EAAE,GAAGD,MAAM,CAACF,QAAQ,CAACR,GAAG,CAACW,EAAE,CAAC,GAAG,CAAC,CAACD,MAAM,CAACE,IAAI,CAAC,UAACC,IAAI;IAAA,OAAKd,MAAM,CAACc,IAAI,CAAC,KAAKd,MAAM,CAACC,GAAG,CAAC;EAAA,EAAC;AACxG,CAAC;AAAC"}
|
|
@@ -51,6 +51,7 @@ var Tooltip = function Tooltip(_ref) {
|
|
|
51
51
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
52
52
|
position = _useState4[0],
|
|
53
53
|
setPosition = _useState4[1];
|
|
54
|
+
var contentRef = (0, _react.useRef)();
|
|
54
55
|
var ref = (0, _react.useRef)();
|
|
55
56
|
var fixed = inherit.fixed,
|
|
56
57
|
_inherit$role = inherit.role,
|
|
@@ -64,10 +65,10 @@ var Tooltip = function Tooltip(_ref) {
|
|
|
64
65
|
(0, _react.useEffect)(function () {
|
|
65
66
|
if (!pressable || !visible) return;
|
|
66
67
|
var handleClickOutside = function handleClickOutside() {
|
|
67
|
-
var _ref$current;
|
|
68
|
+
var _contentRef$current, _ref$current;
|
|
68
69
|
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
69
70
|
target = _ref2.target;
|
|
70
|
-
return !((_ref$current = ref.current) !== null && _ref$current !== void 0 && _ref$current.contains(target)) && setVisible(false);
|
|
71
|
+
return !((_contentRef$current = contentRef.current) !== null && _contentRef$current !== void 0 && _contentRef$current.contains(target)) && !((_ref$current = ref.current) !== null && _ref$current !== void 0 && _ref$current.contains(target)) && setVisible(false);
|
|
71
72
|
};
|
|
72
73
|
document.addEventListener('click', handleClickOutside, true);
|
|
73
74
|
return function () {
|
|
@@ -88,11 +89,11 @@ var Tooltip = function Tooltip(_ref) {
|
|
|
88
89
|
left: propLeft,
|
|
89
90
|
right: propRight,
|
|
90
91
|
onPosition: setPosition
|
|
91
|
-
}, _react.default.
|
|
92
|
+
}, /*#__PURE__*/_react.default.createElement(pressable ? _primitives.View : _react.default.Fragment, _objectSpread({}, pressable ? {
|
|
93
|
+
ref: ref
|
|
94
|
+
} : undefined), _react.default.Children.map(children, function (child, index) {
|
|
92
95
|
var _objectSpread2;
|
|
93
|
-
return /*#__PURE__*/_react.default.cloneElement(child, _objectSpread(_objectSpread(
|
|
94
|
-
ref: ref
|
|
95
|
-
} : null), {}, {
|
|
96
|
+
return /*#__PURE__*/_react.default.cloneElement(child, _objectSpread(_objectSpread({
|
|
96
97
|
key: index
|
|
97
98
|
}, child.props), {}, (_objectSpread2 = {
|
|
98
99
|
onClick: pressable ? function () {
|
|
@@ -103,7 +104,9 @@ var Tooltip = function Tooltip(_ref) {
|
|
|
103
104
|
} : undefined), _defineProperty(_objectSpread2, (0, _helpers2.isPressableInstance)(child) ? 'onLeave' : 'onMouseLeave', !pressable ? function () {
|
|
104
105
|
return setVisible(false);
|
|
105
106
|
} : undefined), _defineProperty(_objectSpread2, "className", (0, _helpers.styles)(_TooltipModule.default.dispatcher, child.props.className)), _defineProperty(_objectSpread2, "testId", testId ? "".concat(testId, "-dispatcher") : undefined), _objectSpread2)));
|
|
106
|
-
}), /*#__PURE__*/_react.default.createElement(_primitives.LayerContent, null, /*#__PURE__*/_react.default.createElement(_primitives.View, _extends({}, others, {
|
|
107
|
+
})), /*#__PURE__*/_react.default.createElement(_primitives.LayerContent, null, /*#__PURE__*/_react.default.createElement(_primitives.View, _extends({}, others, pressable ? {
|
|
108
|
+
ref: contentRef
|
|
109
|
+
} : undefined, {
|
|
107
110
|
className: (0, _helpers.styles)(_TooltipModule.default.tooltip, (propLeft || propRight) && _TooltipModule.default.align, left && _TooltipModule.default.left, right && _TooltipModule.default.right, top ? _TooltipModule.default.top : _TooltipModule.default.bottom, others.className)
|
|
108
111
|
}), Template ? /*#__PURE__*/_react.default.createElement(Template, null) : /*#__PURE__*/_react.default.createElement(_primitives.Text, {
|
|
109
112
|
bold: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","names":["Tooltip","children","propLeft","left","pressable","propRight","right","Template","text","timestamp","propTop","top","visible","propVisible","inherit","useState","setVisible","position","setPosition","
|
|
1
|
+
{"version":3,"file":"Tooltip.js","names":["Tooltip","children","propLeft","left","pressable","propRight","right","Template","text","timestamp","propTop","top","visible","propVisible","inherit","useState","setVisible","position","setPosition","contentRef","useRef","ref","fixed","role","testId","others","useEffect","handleClickOutside","target","current","contains","document","addEventListener","removeEventListener","React","createElement","View","Fragment","undefined","Children","map","child","index","cloneElement","key","props","onClick","isPressableInstance","styles","style","dispatcher","className","tooltip","align","bottom","displayName","propTypes","PropTypes","node","isRequired","bool","oneOfType","func","string","number"],"sources":["../../../src/components/Tooltip/Tooltip.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect, useState, useRef } from 'react';\n\nimport { styles } from '../../helpers';\nimport { Layer, LayerContent, Text, View } from '../../primitives';\nimport { isPressableInstance } from './helpers';\nimport style from './Tooltip.module.css';\n\nconst Tooltip = ({\n children,\n left: propLeft,\n pressable = false,\n right: propRight,\n Template,\n text,\n timestamp,\n top: propTop,\n visible: propVisible = false,\n ...inherit\n}) => {\n const [visible, setVisible] = useState(propVisible);\n const [position, setPosition] = useState({});\n const contentRef = useRef();\n const ref = useRef();\n\n const { fixed, role = 'tooltip', testId, ...others } = inherit;\n const { left, right, top = propTop } = position;\n\n useEffect(() => {\n if (!pressable || !visible) return;\n\n const handleClickOutside = ({ target } = {}) =>\n !contentRef.current?.contains(target) && !ref.current?.contains(target) && setVisible(false);\n\n document.addEventListener('click', handleClickOutside, true);\n\n return () => document.removeEventListener('click', handleClickOutside, true);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [visible]);\n\n return text || Template ? (\n <Layer\n {...{ fixed, role, testId, timestamp, top, visible }}\n centered\n forceRender={false}\n left={propLeft}\n right={propRight}\n onPosition={setPosition}\n >\n {React.createElement(\n pressable ? View : React.Fragment,\n { ...(pressable ? { ref } : undefined) },\n React.Children.map(children, (child, index) => {\n return React.cloneElement(child, {\n key: index,\n ...child.props,\n onClick: pressable ? () => setVisible(!visible) : undefined,\n [isPressableInstance(child) ? 'onEnter' : 'onMouseEnter']: !pressable ? () => setVisible(true) : undefined,\n [isPressableInstance(child) ? 'onLeave' : 'onMouseLeave']: !pressable ? () => setVisible(false) : undefined,\n className: styles(style.dispatcher, child.props.className),\n testId: testId ? `${testId}-dispatcher` : undefined,\n });\n }),\n )}\n\n <LayerContent>\n <View\n {...others}\n {...(pressable ? { ref: contentRef } : undefined)}\n className={styles(\n style.tooltip,\n (propLeft || propRight) && style.align,\n left && style.left,\n right && style.right,\n top ? style.top : style.bottom,\n others.className,\n )}\n >\n {Template ? (\n <Template />\n ) : (\n <Text bold small className={style.text}>\n {text}\n </Text>\n )}\n </View>\n </LayerContent>\n </Layer>\n ) : (\n <>{children}</>\n );\n};\n\nTooltip.displayName = 'Component:Tooltip';\n\nTooltip.propTypes = {\n children: PropTypes.node.isRequired,\n left: PropTypes.bool,\n pressable: PropTypes.bool,\n right: PropTypes.bool,\n Template: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n text: PropTypes.string,\n timestamp: PropTypes.number,\n top: PropTypes.bool,\n visible: PropTypes.bool,\n};\n\nexport { Tooltip };\n"],"mappings":"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"}
|
|
@@ -35,12 +35,16 @@ exports[` 3`] = `
|
|
|
35
35
|
<span
|
|
36
36
|
data-testid="onPress"
|
|
37
37
|
>
|
|
38
|
-
<
|
|
39
|
-
class="
|
|
40
|
-
data-testid="onPress-dispatcher"
|
|
38
|
+
<div
|
|
39
|
+
class="view"
|
|
41
40
|
>
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
<button
|
|
42
|
+
class="pressable button dispatcher"
|
|
43
|
+
data-testid="onPress-dispatcher"
|
|
44
|
+
>
|
|
45
|
+
Action
|
|
46
|
+
</button>
|
|
47
|
+
</div>
|
|
44
48
|
</span>
|
|
45
49
|
</DocumentFragment>
|
|
46
50
|
`;
|
|
@@ -50,12 +54,16 @@ exports[` 4`] = `
|
|
|
50
54
|
<span
|
|
51
55
|
data-testid="onPress"
|
|
52
56
|
>
|
|
53
|
-
<
|
|
54
|
-
class="
|
|
55
|
-
data-testid="onPress-dispatcher"
|
|
57
|
+
<div
|
|
58
|
+
class="view"
|
|
56
59
|
>
|
|
57
|
-
|
|
58
|
-
|
|
60
|
+
<button
|
|
61
|
+
class="pressable button dispatcher"
|
|
62
|
+
data-testid="onPress-dispatcher"
|
|
63
|
+
>
|
|
64
|
+
Action
|
|
65
|
+
</button>
|
|
66
|
+
</div>
|
|
59
67
|
</span>
|
|
60
68
|
</DocumentFragment>
|
|
61
69
|
`;
|