@mirai/ui 1.0.239 → 1.0.240
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.
|
@@ -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"}
|