@mirai/ui 1.0.186 → 1.0.187

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.
@@ -157,6 +157,7 @@ var ColumnFilter = function ColumnFilter(_ref) {
157
157
  wide: true,
158
158
  onPress: handleCancel
159
159
  }, actionCancel), /*#__PURE__*/_react.default.createElement(_Button.Button, {
160
+ disabled: type !== 'boolean' && !form.value && !form.min && !form.max,
160
161
  wide: true,
161
162
  onPress: handleSubmit,
162
163
  testId: testId ? "".concat(testId, "-submit") : undefined
@@ -1 +1 @@
1
- {"version":3,"file":"Table.ColumnFilter.js","names":["ColumnFilter","field","l10n","actionCancel","actionSubmit","labelMax","labelMin","schema","visible","propVisible","onFocus","onSubmit","others","useState","form","setForm","setVisible","label","type","useEffect","value","undefined","handlePress","event","preventDefault","handleCancel","handleSubmit","testId","children","divider","style","items","min","input","max","SWITCH","styles","menuFilter","className","position","ICON","FILTER","icon","disabled","displayName","propTypes","PropTypes","string","isRequired","L10N_SHAPE","shape","bool","func"],"sources":["../../../src/components/Table/Table.ColumnFilter.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { Icon, ICON, Pressable, Text, View } from '../../primitives';\nimport { Button } from '../Button';\nimport { InputOption, SWITCH } from '../InputOption';\nimport { InputText } from '../InputText';\nimport { Menu } from '../Menu';\nimport { L10N_SHAPE } from './Table.constants';\nimport style from './Table.module.css';\n\nconst ColumnFilter = ({\n field,\n l10n: { actionCancel = '$Cancel', actionSubmit = '$Submit', labelMax = '$max', labelMin = '$min' } = {},\n schema = {},\n visible: propVisible = false,\n onFocus = () => {},\n onSubmit = () => {},\n ...others\n}) => {\n const [form, setForm] = useState({});\n const [visible, setVisible] = useState(propVisible);\n\n const { label, type = 'text' } = schema[field] || {};\n\n useEffect(() => {\n setVisible(propVisible);\n }, [propVisible]);\n\n useEffect(() => {\n setForm({ value: type === 'boolean' ? 'false' : undefined });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [visible]);\n\n const handlePress = (event) => {\n event.preventDefault();\n setVisible(!visible);\n onFocus(!visible ? field : undefined);\n };\n\n const handleCancel = () => {\n setVisible(false);\n };\n\n const handleSubmit = (event) => {\n event.preventDefault();\n setVisible(false);\n onSubmit({ field, type, ...form }, event);\n };\n\n const { testId } = others;\n\n return (\n <Menu\n {...others}\n options={[\n {\n children: (\n <Text bold small>\n {label || field}\n </Text>\n ),\n divider: true,\n },\n {\n children:\n type === 'number' ? (\n <View row className={style.items}>\n <InputText\n label={labelMin}\n name=\"min\"\n type=\"number\"\n value={form.min}\n onChange={(min) => setForm({ ...form, min })}\n className={style.input}\n />\n <InputText\n label={labelMax}\n name=\"max\"\n type=\"number\"\n value={form.max}\n onChange={(max) => setForm({ ...form, max })}\n className={style.input}\n />\n </View>\n ) : type === 'boolean' ? (\n <InputOption\n name=\"search\"\n type={SWITCH}\n checked={form.value === 'true'}\n onChange={(value) => setForm({ value: value ? 'true' : 'false' })}\n className={style.input}\n />\n ) : (\n <InputText\n name=\"search\"\n type=\"search\"\n value={form.value}\n onChange={(value) => setForm({ value })}\n className={style.input}\n />\n ),\n divider: true,\n },\n {\n children: (\n <View row wide className={style.items}>\n <Button secondary wide onPress={handleCancel}>\n {actionCancel}\n </Button>\n <Button wide onPress={handleSubmit} testId={testId ? `${testId}-submit` : undefined}>\n {actionSubmit}\n </Button>\n </View>\n ),\n },\n ]}\n bottom\n centered\n visible={visible}\n className={styles(style.menuFilter, others.className)}\n >\n <Pressable onPress={handlePress} style={{ position: 'relative' }}>\n <Icon value={ICON.FILTER} className={styles(style.icon, !visible && style.disabled)} />\n </Pressable>\n </Menu>\n );\n};\n\nColumnFilter.displayName = 'Component:Table:ColumnFilter';\n\nColumnFilter.propTypes = {\n field: PropTypes.string.isRequired,\n l10n: L10N_SHAPE,\n schema: PropTypes.shape({}).isRequired,\n visible: PropTypes.bool,\n onFocus: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n};\n\nexport { ColumnFilter };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Table.ColumnFilter.js","names":["ColumnFilter","field","l10n","actionCancel","actionSubmit","labelMax","labelMin","schema","visible","propVisible","onFocus","onSubmit","others","useState","form","setForm","setVisible","label","type","useEffect","value","undefined","handlePress","event","preventDefault","handleCancel","handleSubmit","testId","children","divider","style","items","min","input","max","SWITCH","styles","menuFilter","className","position","ICON","FILTER","icon","disabled","displayName","propTypes","PropTypes","string","isRequired","L10N_SHAPE","shape","bool","func"],"sources":["../../../src/components/Table/Table.ColumnFilter.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { Icon, ICON, Pressable, Text, View } from '../../primitives';\nimport { Button } from '../Button';\nimport { InputOption, SWITCH } from '../InputOption';\nimport { InputText } from '../InputText';\nimport { Menu } from '../Menu';\nimport { L10N_SHAPE } from './Table.constants';\nimport style from './Table.module.css';\n\nconst ColumnFilter = ({\n field,\n l10n: { actionCancel = '$Cancel', actionSubmit = '$Submit', labelMax = '$max', labelMin = '$min' } = {},\n schema = {},\n visible: propVisible = false,\n onFocus = () => {},\n onSubmit = () => {},\n ...others\n}) => {\n const [form, setForm] = useState({});\n const [visible, setVisible] = useState(propVisible);\n\n const { label, type = 'text' } = schema[field] || {};\n\n useEffect(() => {\n setVisible(propVisible);\n }, [propVisible]);\n\n useEffect(() => {\n setForm({ value: type === 'boolean' ? 'false' : undefined });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [visible]);\n\n const handlePress = (event) => {\n event.preventDefault();\n setVisible(!visible);\n onFocus(!visible ? field : undefined);\n };\n\n const handleCancel = () => {\n setVisible(false);\n };\n\n const handleSubmit = (event) => {\n event.preventDefault();\n setVisible(false);\n onSubmit({ field, type, ...form }, event);\n };\n\n const { testId } = others;\n\n return (\n <Menu\n {...others}\n options={[\n {\n children: (\n <Text bold small>\n {label || field}\n </Text>\n ),\n divider: true,\n },\n {\n children:\n type === 'number' ? (\n <View row className={style.items}>\n <InputText\n label={labelMin}\n name=\"min\"\n type=\"number\"\n value={form.min}\n onChange={(min) => setForm({ ...form, min })}\n className={style.input}\n />\n <InputText\n label={labelMax}\n name=\"max\"\n type=\"number\"\n value={form.max}\n onChange={(max) => setForm({ ...form, max })}\n className={style.input}\n />\n </View>\n ) : type === 'boolean' ? (\n <InputOption\n name=\"search\"\n type={SWITCH}\n checked={form.value === 'true'}\n onChange={(value) => setForm({ value: value ? 'true' : 'false' })}\n className={style.input}\n />\n ) : (\n <InputText\n name=\"search\"\n type=\"search\"\n value={form.value}\n onChange={(value) => setForm({ value })}\n className={style.input}\n />\n ),\n divider: true,\n },\n {\n children: (\n <View row wide className={style.items}>\n <Button secondary wide onPress={handleCancel}>\n {actionCancel}\n </Button>\n <Button\n disabled={type !== 'boolean' && !form.value && !form.min && !form.max}\n wide\n onPress={handleSubmit}\n testId={testId ? `${testId}-submit` : undefined}\n >\n {actionSubmit}\n </Button>\n </View>\n ),\n },\n ]}\n bottom\n centered\n visible={visible}\n className={styles(style.menuFilter, others.className)}\n >\n <Pressable onPress={handlePress} style={{ position: 'relative' }}>\n <Icon value={ICON.FILTER} className={styles(style.icon, !visible && style.disabled)} />\n </Pressable>\n </Menu>\n );\n};\n\nColumnFilter.displayName = 'Component:Table:ColumnFilter';\n\nColumnFilter.propTypes = {\n field: PropTypes.string.isRequired,\n l10n: L10N_SHAPE,\n schema: PropTypes.shape({}).isRequired,\n visible: PropTypes.bool,\n onFocus: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n};\n\nexport { ColumnFilter };\n"],"mappings":"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"}
@@ -18,7 +18,6 @@ var _excluded = ["dataSource", "filter", "inline", "l10n", "schema", "search", "
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 }; }
21
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
22
21
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
23
22
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
24
23
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -100,7 +99,9 @@ var Table = function Table(_ref) {
100
99
  var handleSort = function handleSort(field) {
101
100
  setSort(sort[field] === undefined ? _defineProperty({}, field, true) : sort[field] ? _defineProperty({}, field, false) : {});
102
101
  };
103
- var testId = others.testId;
102
+ var _others$role = others.role,
103
+ role = _others$role === void 0 ? 'table' : _others$role,
104
+ testId = others.testId;
104
105
  var fields = Object.keys(schema);
105
106
  var _ref4 = (filter === null || filter === void 0 ? void 0 : filter.filter(function () {
106
107
  var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
@@ -108,29 +109,25 @@ var Table = function Table(_ref) {
108
109
  return fields.includes(field);
109
110
  })) || {},
110
111
  filterFields = _ref4.length;
111
- return /*#__PURE__*/_react.default.createElement(onScroll ? _primitives.ScrollView : _primitives.View, onScroll || !inline ? _objectSpread(_objectSpread({}, others), {}, {
112
- role: others.role || 'table',
112
+ return /*#__PURE__*/_react.default.createElement(onScroll ? _primitives.ScrollView : _primitives.View, _objectSpread(_objectSpread({}, others), {}, {
113
+ role: role,
113
114
  onScroll: onScroll,
114
- className: (0, _helpers.styles)(!inline && _TableModule.default.outlined, others.className)
115
- }) : {
116
- className: others.className
117
- }, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, filterFields > 0 && /*#__PURE__*/_react.default.createElement(_Table2.Filter, {
115
+ className: (0, _helpers.styles)(_TableModule.default.container, !inline && _TableModule.default.outlined, others.className)
116
+ }), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, filterFields > 0 && /*#__PURE__*/_react.default.createElement(_Table2.Filter, {
118
117
  filter: filter,
119
118
  schema: schema,
120
119
  role: "table-filter",
121
120
  onRemove: function onRemove(index) {
122
121
  return handleRemoveFilter(index);
123
122
  }
124
- }), /*#__PURE__*/_react.default.createElement(_primitives.Primitive, _extends({
125
- role: "table",
126
- tag: "table"
127
- }, !onScroll ? others : undefined, {
128
- className: (0, _helpers.styles)(_TableModule.default.table, !onScroll && !inline && others.className)
129
123
  }), /*#__PURE__*/_react.default.createElement(_primitives.Primitive, {
124
+ tag: "table",
125
+ className: _TableModule.default.table
126
+ }, /*#__PURE__*/_react.default.createElement(_primitives.Primitive, {
130
127
  tag: "thead"
131
128
  }, /*#__PURE__*/_react.default.createElement(_Table3.Row, {
132
129
  checked: dataSource.length > 0 ? selected.length === dataSource.length : undefined,
133
- indeterminate: selected.length > 0,
130
+ indeterminate: dataSource.length > 0 && selected.length > 0,
134
131
  l10n: l10n,
135
132
  schema: schema,
136
133
  sort: sort,
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","names":["Table","dataSource","filter","propFilter","inline","l10n","schema","search","selected","propSelected","store","onPress","onScroll","onSelect","others","useState","setFilter","setSelected","sort","setSort","useEffect","nextFilter","storeFilter","Storage","get","length","set","handleAddFilter","item","handleRemoveFilter","index","splice","handleHeadSelect","row","event","next","handleSelect","exists","handleSort","field","undefined","testId","fields","Object","keys","includes","filterFields","React","createElement","ScrollView","View","role","className","styles","style","outlined","table","useMemo","select","map","displayName","propTypes","PropTypes","arrayOf","shape","bool","L10N_SHAPE","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, View } from '../../primitives';\nimport { exists, select, Storage } from './helpers';\nimport { L10N_SHAPE } 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 schema,\n search,\n selected: propSelected = [],\n store,\n onPress,\n onScroll,\n onSelect,\n ...others\n}) => {\n const [filter, setFilter] = useState([]);\n const [selected, setSelected] = useState(propSelected);\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 = selected.length !== dataSource.length ? dataSource : [];\n\n onSelect(next, event);\n setSelected(next);\n };\n\n const handleSelect = (row, event) => {\n const next = exists(row, selected) ? selected.filter((item) => !exists(row, [item])) : [...selected, row];\n\n onSelect(next, event);\n setSelected(next);\n };\n\n const handleSort = (field) => {\n setSort(sort[field] === undefined ? { [field]: true } : sort[field] ? { [field]: false } : {});\n };\n\n const { testId } = others;\n const fields = Object.keys(schema);\n const { length: filterFields } = filter?.filter(({ field } = {}) => fields.includes(field)) || {};\n\n return React.createElement(\n onScroll ? ScrollView : View,\n onScroll || !inline\n ? {\n ...others,\n role: others.role || 'table',\n onScroll,\n className: styles(!inline && style.outlined, others.className),\n }\n : { className: others.className },\n <>\n {filterFields > 0 && (\n <Filter filter={filter} schema={schema} role=\"table-filter\" onRemove={(index) => handleRemoveFilter(index)} />\n )}\n <Primitive\n role=\"table\"\n tag=\"table\"\n {...(!onScroll ? others : undefined)}\n className={styles(style.table, !onScroll && !inline && others.className)}\n >\n <Primitive tag=\"thead\">\n <Row\n checked={dataSource.length > 0 ? selected.length === dataSource.length : undefined}\n indeterminate={selected.length > 0}\n l10n={l10n}\n schema={schema}\n sort={sort}\n onFilter={handleAddFilter}\n onSelect={onSelect ? handleHeadSelect : undefined}\n onSort={handleSort}\n testId={testId ? `${testId}-head` : undefined}\n />\n </Primitive>\n <Primitive tag=\"tbody\">\n {useMemo(\n () => select({ dataSource, filter, schema, search, selected, sort }),\n [dataSource, filter, 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 schema: PropTypes.shape({}).isRequired,\n search: PropTypes.string,\n store: PropTypes.string,\n selected: PropTypes.arrayOf(PropTypes.shape()),\n onPress: PropTypes.func,\n onScroll: PropTypes.func,\n onSelect: PropTypes.func,\n};\n"],"mappings":";;;;;;;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAkC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAE3B,IAAMA,KAAK,GAAG,SAARA,KAAK,OAaZ;EAAA,2BAZJC,UAAU;IAAVA,UAAU,gCAAG,EAAE;IAAA,mBACfC,MAAM;IAAEC,UAAU,4BAAG,EAAE;IAAA,mBACvBC,MAAM;IAANA,MAAM,4BAAG,IAAI;IACbC,IAAI,QAAJA,IAAI;IACJC,MAAM,QAANA,MAAM;IACNC,MAAM,QAANA,MAAM;IAAA,qBACNC,QAAQ;IAAEC,YAAY,8BAAG,EAAE;IAC3BC,KAAK,QAALA,KAAK;IACLC,OAAO,QAAPA,OAAO;IACPC,QAAQ,QAARA,QAAQ;IACRC,QAAQ,QAARA,QAAQ;IACLC,MAAM;EAET,gBAA4B,IAAAC,eAAQ,EAAC,EAAE,CAAC;IAAA;IAAjCb,MAAM;IAAEc,SAAS;EACxB,iBAAgC,IAAAD,eAAQ,EAACN,YAAY,CAAC;IAAA;IAA/CD,QAAQ;IAAES,WAAW;EAC5B,iBAAwB,IAAAF,eAAQ,EAAC,CAAC,CAAC,CAAC;IAAA;IAA7BG,IAAI;IAAEC,OAAO;EAEpB,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAIC,UAAU,GAAGlB,UAAU;IAC3B,IAAIO,KAAK,EAAE;MACT,IAAMY,WAAW,GAAGC,iBAAO,CAACC,GAAG,WAAId,KAAK,aAAU;MAClD,IAAIY,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAEG,MAAM,EAAEJ,UAAU,GAAGC,WAAW;IACnD;IAEAN,SAAS,CAACK,UAAU,CAAC;IACrB;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAD,gBAAS,EAAC,YAAM;IACd,IAAI,CAACV,KAAK,EAAE;IACZa,iBAAO,CAACG,GAAG,WAAIhB,KAAK,cAAWR,MAAM,CAAC;EACxC,CAAC,EAAE,CAACA,MAAM,EAAEQ,KAAK,CAAC,CAAC;EAEnB,IAAMiB,eAAe,GAAG,SAAlBA,eAAe,CAAIC,IAAI,EAAK;IAChCZ,SAAS,8BAAKd,MAAM,IAAE0B,IAAI,GAAE;EAC9B,CAAC;EAED,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkB,CAAIC,KAAK,EAAK;IACpC5B,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE6B,MAAM,CAACD,KAAK,EAAE,CAAC,CAAC;IACxBd,SAAS,oBAAKd,MAAM,EAAE;EACxB,CAAC;EAED,IAAM8B,gBAAgB,GAAG,SAAnBA,gBAAgB,CAAIC,GAAG,EAAEC,KAAK,EAAK;IACvC,IAAMC,IAAI,GAAG3B,QAAQ,CAACiB,MAAM,KAAKxB,UAAU,CAACwB,MAAM,GAAGxB,UAAU,GAAG,EAAE;IAEpEY,QAAQ,CAACsB,IAAI,EAAED,KAAK,CAAC;IACrBjB,WAAW,CAACkB,IAAI,CAAC;EACnB,CAAC;EAED,IAAMC,YAAY,GAAG,SAAfA,YAAY,CAAIH,GAAG,EAAEC,KAAK,EAAK;IACnC,IAAMC,IAAI,GAAG,IAAAE,gBAAM,EAACJ,GAAG,EAAEzB,QAAQ,CAAC,GAAGA,QAAQ,CAACN,MAAM,CAAC,UAAC0B,IAAI;MAAA,OAAK,CAAC,IAAAS,gBAAM,EAACJ,GAAG,EAAE,CAACL,IAAI,CAAC,CAAC;IAAA,EAAC,gCAAOpB,QAAQ,IAAEyB,GAAG,EAAC;IAEzGpB,QAAQ,CAACsB,IAAI,EAAED,KAAK,CAAC;IACrBjB,WAAW,CAACkB,IAAI,CAAC;EACnB,CAAC;EAED,IAAMG,UAAU,GAAG,SAAbA,UAAU,CAAIC,KAAK,EAAK;IAC5BpB,OAAO,CAACD,IAAI,CAACqB,KAAK,CAAC,KAAKC,SAAS,uBAAMD,KAAK,EAAG,IAAI,IAAKrB,IAAI,CAACqB,KAAK,CAAC,uBAAMA,KAAK,EAAG,KAAK,IAAK,CAAC,CAAC,CAAC;EAChG,CAAC;EAED,IAAQE,MAAM,GAAK3B,MAAM,CAAjB2B,MAAM;EACd,IAAMC,MAAM,GAAGC,MAAM,CAACC,IAAI,CAACtC,MAAM,CAAC;EAClC,YAAiC,CAAAJ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEA,MAAM,CAAC;MAAA,gFAAa,CAAC,CAAC;QAAZqC,KAAK,SAALA,KAAK;MAAA,OAAYG,MAAM,CAACG,QAAQ,CAACN,KAAK,CAAC;IAAA,EAAC,KAAI,CAAC,CAAC;IAAjFO,YAAY,SAApBrB,MAAM;EAEd,oBAAOsB,cAAK,CAACC,aAAa,CACxBpC,QAAQ,GAAGqC,sBAAU,GAAGC,gBAAI,EAC5BtC,QAAQ,IAAI,CAACR,MAAM,mCAEVU,MAAM;IACTqC,IAAI,EAAErC,MAAM,CAACqC,IAAI,IAAI,OAAO;IAC5BvC,QAAQ,EAARA,QAAQ;IACRwC,SAAS,EAAE,IAAAC,eAAM,EAAC,CAACjD,MAAM,IAAIkD,oBAAK,CAACC,QAAQ,EAAEzC,MAAM,CAACsC,SAAS;EAAC,KAEhE;IAAEA,SAAS,EAAEtC,MAAM,CAACsC;EAAU,CAAC,eACnC,4DACGN,YAAY,GAAG,CAAC,iBACf,6BAAC,cAAM;IAAC,MAAM,EAAE5C,MAAO;IAAC,MAAM,EAAEI,MAAO;IAAC,IAAI,EAAC,cAAc;IAAC,QAAQ,EAAE,kBAACwB,KAAK;MAAA,OAAKD,kBAAkB,CAACC,KAAK,CAAC;IAAA;EAAC,EAC5G,eACD,6BAAC,qBAAS;IACR,IAAI,EAAC,OAAO;IACZ,GAAG,EAAC;EAAO,GACN,CAAClB,QAAQ,GAAGE,MAAM,GAAG0B,SAAS;IACnC,SAAS,EAAE,IAAAa,eAAM,EAACC,oBAAK,CAACE,KAAK,EAAE,CAAC5C,QAAQ,IAAI,CAACR,MAAM,IAAIU,MAAM,CAACsC,SAAS;EAAE,iBAEzE,6BAAC,qBAAS;IAAC,GAAG,EAAC;EAAO,gBACpB,6BAAC,WAAG;IACF,OAAO,EAAEnD,UAAU,CAACwB,MAAM,GAAG,CAAC,GAAGjB,QAAQ,CAACiB,MAAM,KAAKxB,UAAU,CAACwB,MAAM,GAAGe,SAAU;IACnF,aAAa,EAAEhC,QAAQ,CAACiB,MAAM,GAAG,CAAE;IACnC,IAAI,EAAEpB,IAAK;IACX,MAAM,EAAEC,MAAO;IACf,IAAI,EAAEY,IAAK;IACX,QAAQ,EAAES,eAAgB;IAC1B,QAAQ,EAAEd,QAAQ,GAAGmB,gBAAgB,GAAGQ,SAAU;IAClD,MAAM,EAAEF,UAAW;IACnB,MAAM,EAAEG,MAAM,aAAMA,MAAM,aAAUD;EAAU,EAC9C,CACQ,eACZ,6BAAC,qBAAS;IAAC,GAAG,EAAC;EAAO,GACnB,IAAAiB,cAAO,EACN;IAAA,OAAM,IAAAC,gBAAM,EAAC;MAAEzD,UAAU,EAAVA,UAAU;MAAEC,MAAM,EAANA,MAAM;MAAEI,MAAM,EAANA,MAAM;MAAEC,MAAM,EAANA,MAAM;MAAEC,QAAQ,EAARA,QAAQ;MAAEU,IAAI,EAAJA;IAAK,CAAC,CAAC;EAAA,GACpE,CAACjB,UAAU,EAAEC,MAAM,EAAEI,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEU,IAAI,CAAC,CACrD,CAACyC,GAAG,CAAC,UAAC1B,GAAG,EAAEH,KAAK;IAAA,oBACf,6BAAC,WAAG;MACF,OAAO,EAAE,IAAAO,gBAAM,EAACJ,GAAG,EAAEzB,QAAQ,CAAE;MAC/B,UAAU,EAAEyB,GAAI;MAChB,GAAG,EAAEH,KAAM;MACX,MAAM,EAAExB,MAAO;MACf,OAAO,EAAEK,OAAQ;MACjB,QAAQ,EAAEE,QAAQ,GAAGuB,YAAY,GAAGI,SAAU;MAC9C,MAAM,EAAEC,MAAM,aAAMA,MAAM,cAAIX,KAAK,IAAKU;IAAU,EAClD;EAAA,CACH,CAAC,CACQ,CACF,CACX,CACJ;AACH,CAAC;AAAC;AAEFxC,KAAK,CAAC4D,WAAW,GAAG,iBAAiB;AAErC5D,KAAK,CAAC6D,SAAS,GAAG;EAChB5D,UAAU,EAAE6D,kBAAS,CAACC,OAAO,CAACD,kBAAS,CAACE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;EAClD9D,MAAM,EAAE4D,kBAAS,CAACC,OAAO,CAACD,kBAAS,CAACE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;EAC9C5D,MAAM,EAAE0D,kBAAS,CAACG,IAAI;EACtB5D,IAAI,EAAE6D,iBAAU;EAChB5D,MAAM,EAAEwD,kBAAS,CAACE,KAAK,CAAC,CAAC,CAAC,CAAC,CAACG,UAAU;EACtC5D,MAAM,EAAEuD,kBAAS,CAACM,MAAM;EACxB1D,KAAK,EAAEoD,kBAAS,CAACM,MAAM;EACvB5D,QAAQ,EAAEsD,kBAAS,CAACC,OAAO,CAACD,kBAAS,CAACE,KAAK,EAAE,CAAC;EAC9CrD,OAAO,EAAEmD,kBAAS,CAACO,IAAI;EACvBzD,QAAQ,EAAEkD,kBAAS,CAACO,IAAI;EACxBxD,QAAQ,EAAEiD,kBAAS,CAACO;AACtB,CAAC"}
1
+ {"version":3,"file":"Table.js","names":["Table","dataSource","filter","propFilter","inline","l10n","schema","search","selected","propSelected","store","onPress","onScroll","onSelect","others","useState","setFilter","setSelected","sort","setSort","useEffect","nextFilter","storeFilter","Storage","get","length","set","handleAddFilter","item","handleRemoveFilter","index","splice","handleHeadSelect","row","event","next","handleSelect","exists","handleSort","field","undefined","role","testId","fields","Object","keys","includes","filterFields","React","createElement","ScrollView","View","className","styles","style","container","outlined","table","useMemo","select","map","displayName","propTypes","PropTypes","arrayOf","shape","bool","L10N_SHAPE","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, View } from '../../primitives';\nimport { exists, select, Storage } from './helpers';\nimport { L10N_SHAPE } 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 schema,\n search,\n selected: propSelected = [],\n store,\n onPress,\n onScroll,\n onSelect,\n ...others\n}) => {\n const [filter, setFilter] = useState([]);\n const [selected, setSelected] = useState(propSelected);\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 = selected.length !== dataSource.length ? dataSource : [];\n\n onSelect(next, event);\n setSelected(next);\n };\n\n const handleSelect = (row, event) => {\n const next = exists(row, selected) ? selected.filter((item) => !exists(row, [item])) : [...selected, row];\n\n onSelect(next, event);\n setSelected(next);\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 onScroll ? ScrollView : View,\n {\n ...others,\n role,\n onScroll,\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={handleAddFilter}\n onSelect={onSelect ? handleHeadSelect : undefined}\n onSort={handleSort}\n testId={testId ? `${testId}-head` : undefined}\n />\n </Primitive>\n <Primitive tag=\"tbody\">\n {useMemo(\n () => select({ dataSource, filter, schema, search, selected, sort }),\n [dataSource, filter, 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 schema: PropTypes.shape({}).isRequired,\n search: PropTypes.string,\n store: PropTypes.string,\n selected: PropTypes.arrayOf(PropTypes.shape()),\n onPress: PropTypes.func,\n onScroll: PropTypes.func,\n onSelect: PropTypes.func,\n};\n"],"mappings":";;;;;;;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAkC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAE3B,IAAMA,KAAK,GAAG,SAARA,KAAK,OAaZ;EAAA,2BAZJC,UAAU;IAAVA,UAAU,gCAAG,EAAE;IAAA,mBACfC,MAAM;IAAEC,UAAU,4BAAG,EAAE;IAAA,mBACvBC,MAAM;IAANA,MAAM,4BAAG,IAAI;IACbC,IAAI,QAAJA,IAAI;IACJC,MAAM,QAANA,MAAM;IACNC,MAAM,QAANA,MAAM;IAAA,qBACNC,QAAQ;IAAEC,YAAY,8BAAG,EAAE;IAC3BC,KAAK,QAALA,KAAK;IACLC,OAAO,QAAPA,OAAO;IACPC,QAAQ,QAARA,QAAQ;IACRC,QAAQ,QAARA,QAAQ;IACLC,MAAM;EAET,gBAA4B,IAAAC,eAAQ,EAAC,EAAE,CAAC;IAAA;IAAjCb,MAAM;IAAEc,SAAS;EACxB,iBAAgC,IAAAD,eAAQ,EAACN,YAAY,CAAC;IAAA;IAA/CD,QAAQ;IAAES,WAAW;EAC5B,iBAAwB,IAAAF,eAAQ,EAAC,CAAC,CAAC,CAAC;IAAA;IAA7BG,IAAI;IAAEC,OAAO;EAEpB,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAIC,UAAU,GAAGlB,UAAU;IAC3B,IAAIO,KAAK,EAAE;MACT,IAAMY,WAAW,GAAGC,iBAAO,CAACC,GAAG,WAAId,KAAK,aAAU;MAClD,IAAIY,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAEG,MAAM,EAAEJ,UAAU,GAAGC,WAAW;IACnD;IAEAN,SAAS,CAACK,UAAU,CAAC;IACrB;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAD,gBAAS,EAAC,YAAM;IACd,IAAI,CAACV,KAAK,EAAE;IACZa,iBAAO,CAACG,GAAG,WAAIhB,KAAK,cAAWR,MAAM,CAAC;EACxC,CAAC,EAAE,CAACA,MAAM,EAAEQ,KAAK,CAAC,CAAC;EAEnB,IAAMiB,eAAe,GAAG,SAAlBA,eAAe,CAAIC,IAAI,EAAK;IAChCZ,SAAS,8BAAKd,MAAM,IAAE0B,IAAI,GAAE;EAC9B,CAAC;EAED,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkB,CAAIC,KAAK,EAAK;IACpC5B,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE6B,MAAM,CAACD,KAAK,EAAE,CAAC,CAAC;IACxBd,SAAS,oBAAKd,MAAM,EAAE;EACxB,CAAC;EAED,IAAM8B,gBAAgB,GAAG,SAAnBA,gBAAgB,CAAIC,GAAG,EAAEC,KAAK,EAAK;IACvC,IAAMC,IAAI,GAAG3B,QAAQ,CAACiB,MAAM,KAAKxB,UAAU,CAACwB,MAAM,GAAGxB,UAAU,GAAG,EAAE;IAEpEY,QAAQ,CAACsB,IAAI,EAAED,KAAK,CAAC;IACrBjB,WAAW,CAACkB,IAAI,CAAC;EACnB,CAAC;EAED,IAAMC,YAAY,GAAG,SAAfA,YAAY,CAAIH,GAAG,EAAEC,KAAK,EAAK;IACnC,IAAMC,IAAI,GAAG,IAAAE,gBAAM,EAACJ,GAAG,EAAEzB,QAAQ,CAAC,GAAGA,QAAQ,CAACN,MAAM,CAAC,UAAC0B,IAAI;MAAA,OAAK,CAAC,IAAAS,gBAAM,EAACJ,GAAG,EAAE,CAACL,IAAI,CAAC,CAAC;IAAA,EAAC,gCAAOpB,QAAQ,IAAEyB,GAAG,EAAC;IAEzGpB,QAAQ,CAACsB,IAAI,EAAED,KAAK,CAAC;IACrBjB,WAAW,CAACkB,IAAI,CAAC;EACnB,CAAC;EAED,IAAMG,UAAU,GAAG,SAAbA,UAAU,CAAIC,KAAK,EAAK;IAC5BpB,OAAO,CAACD,IAAI,CAACqB,KAAK,CAAC,KAAKC,SAAS,uBAAMD,KAAK,EAAG,IAAI,IAAKrB,IAAI,CAACqB,KAAK,CAAC,uBAAMA,KAAK,EAAG,KAAK,IAAK,CAAC,CAAC,CAAC;EAChG,CAAC;EAED,mBAAmCzB,MAAM,CAAjC2B,IAAI;IAAJA,IAAI,6BAAG,OAAO;IAAEC,MAAM,GAAK5B,MAAM,CAAjB4B,MAAM;EAC9B,IAAMC,MAAM,GAAGC,MAAM,CAACC,IAAI,CAACvC,MAAM,CAAC;EAClC,YAAiC,CAAAJ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEA,MAAM,CAAC;MAAA,gFAAa,CAAC,CAAC;QAAZqC,KAAK,SAALA,KAAK;MAAA,OAAYI,MAAM,CAACG,QAAQ,CAACP,KAAK,CAAC;IAAA,EAAC,KAAI,CAAC,CAAC;IAAjFQ,YAAY,SAApBtB,MAAM;EAEd,oBAAOuB,cAAK,CAACC,aAAa,CACxBrC,QAAQ,GAAGsC,sBAAU,GAAGC,gBAAI,kCAEvBrC,MAAM;IACT2B,IAAI,EAAJA,IAAI;IACJ7B,QAAQ,EAARA,QAAQ;IACRwC,SAAS,EAAE,IAAAC,eAAM,EAACC,oBAAK,CAACC,SAAS,EAAE,CAACnD,MAAM,IAAIkD,oBAAK,CAACE,QAAQ,EAAE1C,MAAM,CAACsC,SAAS;EAAC,iBAEjF,4DACGL,YAAY,GAAG,CAAC,iBACf,6BAAC,cAAM;IAAC,MAAM,EAAE7C,MAAO;IAAC,MAAM,EAAEI,MAAO;IAAC,IAAI,EAAC,cAAc;IAAC,QAAQ,EAAE,kBAACwB,KAAK;MAAA,OAAKD,kBAAkB,CAACC,KAAK,CAAC;IAAA;EAAC,EAC5G,eACD,6BAAC,qBAAS;IAAC,GAAG,EAAC,OAAO;IAAC,SAAS,EAAEwB,oBAAK,CAACG;EAAM,gBAC5C,6BAAC,qBAAS;IAAC,GAAG,EAAC;EAAO,gBACpB,6BAAC,WAAG;IACF,OAAO,EAAExD,UAAU,CAACwB,MAAM,GAAG,CAAC,GAAGjB,QAAQ,CAACiB,MAAM,KAAKxB,UAAU,CAACwB,MAAM,GAAGe,SAAU;IACnF,aAAa,EAAEvC,UAAU,CAACwB,MAAM,GAAG,CAAC,IAAIjB,QAAQ,CAACiB,MAAM,GAAG,CAAE;IAC5D,IAAI,EAAEpB,IAAK;IACX,MAAM,EAAEC,MAAO;IACf,IAAI,EAAEY,IAAK;IACX,QAAQ,EAAES,eAAgB;IAC1B,QAAQ,EAAEd,QAAQ,GAAGmB,gBAAgB,GAAGQ,SAAU;IAClD,MAAM,EAAEF,UAAW;IACnB,MAAM,EAAEI,MAAM,aAAMA,MAAM,aAAUF;EAAU,EAC9C,CACQ,eACZ,6BAAC,qBAAS;IAAC,GAAG,EAAC;EAAO,GACnB,IAAAkB,cAAO,EACN;IAAA,OAAM,IAAAC,gBAAM,EAAC;MAAE1D,UAAU,EAAVA,UAAU;MAAEC,MAAM,EAANA,MAAM;MAAEI,MAAM,EAANA,MAAM;MAAEC,MAAM,EAANA,MAAM;MAAEC,QAAQ,EAARA,QAAQ;MAAEU,IAAI,EAAJA;IAAK,CAAC,CAAC;EAAA,GACpE,CAACjB,UAAU,EAAEC,MAAM,EAAEI,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEU,IAAI,CAAC,CACrD,CAAC0C,GAAG,CAAC,UAAC3B,GAAG,EAAEH,KAAK;IAAA,oBACf,6BAAC,WAAG;MACF,OAAO,EAAE,IAAAO,gBAAM,EAACJ,GAAG,EAAEzB,QAAQ,CAAE;MAC/B,UAAU,EAAEyB,GAAI;MAChB,GAAG,EAAEH,KAAM;MACX,MAAM,EAAExB,MAAO;MACf,OAAO,EAAEK,OAAQ;MACjB,QAAQ,EAAEE,QAAQ,GAAGuB,YAAY,GAAGI,SAAU;MAC9C,MAAM,EAAEE,MAAM,aAAMA,MAAM,cAAIZ,KAAK,IAAKU;IAAU,EAClD;EAAA,CACH,CAAC,CACQ,CACF,CACX,CACJ;AACH,CAAC;AAAC;AAEFxC,KAAK,CAAC6D,WAAW,GAAG,iBAAiB;AAErC7D,KAAK,CAAC8D,SAAS,GAAG;EAChB7D,UAAU,EAAE8D,kBAAS,CAACC,OAAO,CAACD,kBAAS,CAACE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;EAClD/D,MAAM,EAAE6D,kBAAS,CAACC,OAAO,CAACD,kBAAS,CAACE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;EAC9C7D,MAAM,EAAE2D,kBAAS,CAACG,IAAI;EACtB7D,IAAI,EAAE8D,iBAAU;EAChB7D,MAAM,EAAEyD,kBAAS,CAACE,KAAK,CAAC,CAAC,CAAC,CAAC,CAACG,UAAU;EACtC7D,MAAM,EAAEwD,kBAAS,CAACM,MAAM;EACxB3D,KAAK,EAAEqD,kBAAS,CAACM,MAAM;EACvB7D,QAAQ,EAAEuD,kBAAS,CAACC,OAAO,CAACD,kBAAS,CAACE,KAAK,EAAE,CAAC;EAC9CtD,OAAO,EAAEoD,kBAAS,CAACO,IAAI;EACvB1D,QAAQ,EAAEmD,kBAAS,CAACO,IAAI;EACxBzD,QAAQ,EAAEkD,kBAAS,CAACO;AACtB,CAAC"}
@@ -1,3 +1,12 @@
1
+ .container {
2
+ width: 100%;
3
+ }
4
+
5
+ .container.outlined {
6
+ border: solid var(--mirai-ui-border-width) var(--mirai-ui-table-border-color);
7
+ border-radius: var(--mirai-ui-table-border-radius);
8
+ }
9
+
1
10
  .table {
2
11
  background-color: var(--mirai-ui-table-background);
3
12
  border-collapse: collapse;
@@ -12,13 +21,13 @@
12
21
 
13
22
  .table thead {
14
23
  background-color: var(--mirai-ui-table-background);
24
+ box-shadow: 0 var(--mirai-ui-border-width) var(--mirai-ui-table-border-color);
15
25
  position: sticky;
16
26
  top: 0;
17
27
  z-index: var(--mirai-ui-layer-L);
18
28
  }
19
29
 
20
30
  .table thead tr {
21
- box-shadow: 0 var(--mirai-ui-border-width) var(--mirai-ui-table-border-color);
22
31
  font-family: var(--mirai-ui-font-bold);
23
32
  font-size: var(--mirai-ui-font-size-small);
24
33
  font-weight: var(--mirai-ui-font-bold-weight);
@@ -104,12 +113,6 @@
104
113
  min-width: var(--mirai-ui-checkbox-size);
105
114
  }
106
115
 
107
- .outlined {
108
- border: solid var(--mirai-ui-border-width) var(--mirai-ui-table-border-color);
109
- border-radius: var(--mirai-ui-table-border-radius);
110
- overflow-y: hidden;
111
- }
112
-
113
116
  /* <ColumnFilter> */
114
117
  .table .menuFilter .items {
115
118
  gap: var(--mirai-ui-space-M);
@@ -149,9 +152,11 @@
149
152
  width: var(--mirai-ui-space-L);
150
153
  }
151
154
 
155
+ /* Mobile */
152
156
  @media only screen and (max-width: 430px) {
153
157
  }
154
158
 
159
+ /* Table & Desktop */
155
160
  @media only screen and (min-width: 431px) {
156
161
  .table thead tr th:hover {
157
162
  color: var(--mirai-ui-table-color);
@@ -176,3 +181,10 @@
176
181
  background-color: var(--mirai-ui-content-background);
177
182
  }
178
183
  }
184
+
185
+ /* Safari */
186
+ @media screen and (-webkit-min-device-pixel-ratio: 0) {
187
+ .table thead {
188
+ border-bottom: solid var(--mirai-ui-border-width) var(--mirai-ui-table-border-color);
189
+ }
190
+ }
@@ -112,7 +112,8 @@ exports[`component:<Table>:<ColumnFilter> inherit:className 1`] = `
112
112
  $Cancel
113
113
  </button>
114
114
  <button
115
- class="pressable button wide"
115
+ class="pressable disabled button disabled wide"
116
+ disabled=""
116
117
  >
117
118
  $Submit
118
119
  </button>
@@ -236,7 +237,8 @@ exports[`component:<Table>:<ColumnFilter> prop:l10n 1`] = `
236
237
  Cancel
237
238
  </button>
238
239
  <button
239
- class="pressable button wide"
240
+ class="pressable disabled button disabled wide"
241
+ disabled=""
240
242
  >
241
243
  Submit
242
244
  </button>
@@ -360,7 +362,8 @@ exports[`component:<Table>:<ColumnFilter> prop:schema type:number 1`] = `
360
362
  Cancel
361
363
  </button>
362
364
  <button
363
- class="pressable button wide"
365
+ class="pressable disabled button disabled wide"
366
+ disabled=""
364
367
  >
365
368
  Submit
366
369
  </button>
@@ -484,7 +487,8 @@ exports[`component:<Table>:<ColumnFilter> prop:schema type:text 1`] = `
484
487
  Cancel
485
488
  </button>
486
489
  <button
487
- class="pressable button wide"
490
+ class="pressable disabled button disabled wide"
491
+ disabled=""
488
492
  >
489
493
  Submit
490
494
  </button>
@@ -608,7 +612,8 @@ exports[`component:<Table>:<ColumnFilter> renders 1`] = `
608
612
  $Cancel
609
613
  </button>
610
614
  <button
611
- class="pressable button wide"
615
+ class="pressable disabled button disabled wide"
616
+ disabled=""
612
617
  >
613
618
  $Submit
614
619
  </button>
@@ -737,8 +742,9 @@ exports[`component:<Table>:<ColumnFilter> testId 1`] = `
737
742
  $Cancel
738
743
  </button>
739
744
  <button
740
- class="pressable button wide"
745
+ class="pressable disabled button disabled wide"
741
746
  data-testid="mirai-submit"
747
+ disabled=""
742
748
  >
743
749
  $Submit
744
750
  </button>
@@ -3,7 +3,7 @@
3
3
  exports[`component:<Table> inherit:className 1`] = `
4
4
  <DocumentFragment>
5
5
  <div
6
- class="view mirai"
6
+ class="view container mirai"
7
7
  >
8
8
  <table
9
9
  class="table"
@@ -559,7 +559,7 @@ exports[`component:<Table> inherit:className 1`] = `
559
559
  exports[`component:<Table> prop:filter 1`] = `
560
560
  <DocumentFragment>
561
561
  <div
562
- class="view"
562
+ class="view container"
563
563
  >
564
564
  <div
565
565
  class="view row wide filters"
@@ -1142,7 +1142,7 @@ exports[`component:<Table> prop:filter 1`] = `
1142
1142
  exports[`component:<Table> prop:inline (false 1`] = `
1143
1143
  <DocumentFragment>
1144
1144
  <div
1145
- class="view outlined"
1145
+ class="view container outlined"
1146
1146
  >
1147
1147
  <table
1148
1148
  class="table"
@@ -1698,7 +1698,7 @@ exports[`component:<Table> prop:inline (false 1`] = `
1698
1698
  exports[`component:<Table> prop:onScroll 1`] = `
1699
1699
  <DocumentFragment>
1700
1700
  <div
1701
- class="scrollview snap"
1701
+ class="scrollview snap container"
1702
1702
  data-testid="onScroll"
1703
1703
  >
1704
1704
  <table
@@ -2351,11 +2351,11 @@ exports[`component:<Table> prop:onScroll 1`] = `
2351
2351
  exports[`component:<Table> prop:onSelect 1`] = `
2352
2352
  <DocumentFragment>
2353
2353
  <div
2354
- class="view"
2354
+ class="view container"
2355
+ data-testid="onSelect"
2355
2356
  >
2356
2357
  <table
2357
2358
  class="table"
2358
- data-testid="onSelect"
2359
2359
  >
2360
2360
  <thead>
2361
2361
  <tr
@@ -3124,7 +3124,7 @@ exports[`component:<Table> prop:onSelect 1`] = `
3124
3124
  exports[`component:<Table> prop:search 1`] = `
3125
3125
  <DocumentFragment>
3126
3126
  <div
3127
- class="view"
3127
+ class="view container"
3128
3128
  >
3129
3129
  <table
3130
3130
  class="table"
@@ -3478,7 +3478,7 @@ exports[`component:<Table> prop:search 1`] = `
3478
3478
  exports[`component:<Table> prop:selected 1`] = `
3479
3479
  <DocumentFragment>
3480
3480
  <div
3481
- class="view"
3481
+ class="view container"
3482
3482
  >
3483
3483
  <table
3484
3484
  class="table"
@@ -4036,7 +4036,7 @@ exports[`component:<Table> prop:selected 1`] = `
4036
4036
  exports[`component:<Table> prop:store 1`] = `
4037
4037
  <DocumentFragment>
4038
4038
  <div
4039
- class="view"
4039
+ class="view container"
4040
4040
  >
4041
4041
  <div
4042
4042
  class="view row wide filters"
@@ -4402,7 +4402,7 @@ exports[`component:<Table> prop:store 1`] = `
4402
4402
  exports[`component:<Table> renders 1`] = `
4403
4403
  <DocumentFragment>
4404
4404
  <div
4405
- class="view"
4405
+ class="view container"
4406
4406
  >
4407
4407
  <table
4408
4408
  class="table"
@@ -4958,11 +4958,11 @@ exports[`component:<Table> renders 1`] = `
4958
4958
  exports[`component:<Table> testId 1`] = `
4959
4959
  <DocumentFragment>
4960
4960
  <div
4961
- class="view"
4961
+ class="view container"
4962
+ data-testid="mirai"
4962
4963
  >
4963
4964
  <table
4964
4965
  class="table"
4965
- data-testid="mirai"
4966
4966
  >
4967
4967
  <thead>
4968
4968
  <tr
@@ -53,18 +53,18 @@ var select = function select() {
53
53
  return filterGrouped.every(function (_ref4) {
54
54
  var _fieldValue;
55
55
  var field = _ref4.field,
56
- _ref4$max = _ref4.max,
57
- max = _ref4$max === void 0 ? Infinity : _ref4$max,
58
- _ref4$min = _ref4.min,
59
- min = _ref4$min === void 0 ? -Infinity : _ref4$min,
56
+ max = _ref4.max,
57
+ min = _ref4.min,
60
58
  value = _ref4.value;
59
+ var fieldKey = schema[field].bind || field;
60
+ var type = schema[fieldKey].type;
61
61
  var fieldValue = row[schema[field].bind || field];
62
- if (Array.isArray(fieldValue)) fieldValue = fieldValue.join(' ');
63
- if (typeof fieldValue === 'boolean') fieldValue = fieldValue ? 'true' : 'false';
62
+ if (Array.isArray(fieldValue)) fieldValue = fieldValue.join(' ').toLowerCase();
63
+ if (type === 'boolean') fieldValue = fieldValue ? 'true' : 'false';
64
64
  return value ? !Array.isArray(value) ? (_fieldValue = fieldValue) === null || _fieldValue === void 0 ? void 0 : _fieldValue.toLowerCase().includes(value.toLowerCase()) : value.some(function (item) {
65
65
  var _fieldValue2;
66
- return (_fieldValue2 = fieldValue) === null || _fieldValue2 === void 0 ? void 0 : _fieldValue2.toLowerCase().includes(item.toLowerCase());
67
- }) : min || max ? row[field] >= min && row[field] <= max : false;
66
+ return (_fieldValue2 = fieldValue) === null || _fieldValue2 === void 0 ? void 0 : _fieldValue2.includes(item.toLowerCase());
67
+ }) : type === 'number' ? (fieldValue || Infinity) >= (min || -Infinity) && (fieldValue || -Infinity) <= (max || Infinity) : false;
68
68
  });
69
69
  });
70
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","names":["select","dataSource","filter","schema","search","sort","flatten","values","fields","Object","keys","length","filterGrouped","field","includes","reduce","group","item","itemFound","find","value","Array","isArray","push","row","every","max","Infinity","min","fieldValue","bind","join","toLowerCase","some","forEach","index","rowValues","key","type","map","JSON","stringify","fieldKey","order","a","b","undefined"],"sources":["../../../../src/components/Table/helpers/select.js"],"sourcesContent":["export const select = ({ dataSource = [], filter = [], schema = {}, search, sort = {} } = {}) => {\n let flatten = [...dataSource];\n let values = [];\n\n const fields = Object.keys(schema);\n\n if (filter?.length > 0) {\n const filterGrouped = [...filter]\n .filter(({ field }) => fields.includes(field))\n .reduce((group, item = {}) => {\n const itemFound = group.find(({ field }) => item.field === field);\n\n if (itemFound && item.value) {\n if (!Array.isArray(itemFound.value)) itemFound.value = [itemFound.value];\n itemFound.value.push(item.value);\n } else {\n group.push({ ...item });\n }\n\n return group;\n }, []);\n\n flatten = flatten.filter((row = {}) =>\n filterGrouped.every(({ field, max = Infinity, min = -Infinity, value }) => {\n let fieldValue = row[schema[field].bind || field];\n if (Array.isArray(fieldValue)) fieldValue = fieldValue.join(' ');\n if (typeof fieldValue === 'boolean') fieldValue = fieldValue ? 'true' : 'false';\n\n return value\n ? !Array.isArray(value)\n ? fieldValue?.toLowerCase().includes(value.toLowerCase())\n : value.some((item) => fieldValue?.toLowerCase().includes(item.toLowerCase()))\n : min || max\n ? row[field] >= min && row[field] <= max\n : false;\n }),\n );\n }\n\n if (search) {\n flatten.forEach((row, index) => {\n const rowValues = Object.keys(row)\n .filter((key) => !schema[key]?.bind && schema[key]?.type !== 'component')\n .map((key) => row[key]);\n\n if (JSON.stringify(rowValues).toLowerCase().includes(search.toLowerCase())) values.push(flatten[index]);\n });\n } else {\n values = [...flatten];\n }\n\n Object.keys(sort).forEach((key) => {\n const fieldKey = schema[key].bind || key;\n const order = sort[key] ? 1 : -1;\n\n values.sort(\n ({ [fieldKey]: a } = {}, { [fieldKey]: b } = {}) =>\n (a === undefined || a < b ? -1 : b === undefined || a > b ? 1 : 0) * order,\n );\n });\n\n return values;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"select.js","names":["select","dataSource","filter","schema","search","sort","flatten","values","fields","Object","keys","length","filterGrouped","field","includes","reduce","group","item","itemFound","find","value","Array","isArray","push","row","every","max","min","fieldKey","bind","type","fieldValue","join","toLowerCase","some","Infinity","forEach","index","rowValues","key","map","JSON","stringify","order","a","b","undefined"],"sources":["../../../../src/components/Table/helpers/select.js"],"sourcesContent":["export const select = ({ dataSource = [], filter = [], schema = {}, search, sort = {} } = {}) => {\n let flatten = [...dataSource];\n let values = [];\n\n const fields = Object.keys(schema);\n\n if (filter?.length > 0) {\n const filterGrouped = [...filter]\n .filter(({ field }) => fields.includes(field))\n .reduce((group, item = {}) => {\n const itemFound = group.find(({ field }) => item.field === field);\n\n if (itemFound && item.value) {\n if (!Array.isArray(itemFound.value)) itemFound.value = [itemFound.value];\n itemFound.value.push(item.value);\n } else {\n group.push({ ...item });\n }\n\n return group;\n }, []);\n\n flatten = flatten.filter((row = {}) =>\n filterGrouped.every(({ field, max, min, value }) => {\n const fieldKey = schema[field].bind || field;\n const { type } = schema[fieldKey];\n let fieldValue = row[schema[field].bind || field];\n\n if (Array.isArray(fieldValue)) fieldValue = fieldValue.join(' ').toLowerCase();\n if (type === 'boolean') fieldValue = fieldValue ? 'true' : 'false';\n\n return value\n ? !Array.isArray(value)\n ? fieldValue?.toLowerCase().includes(value.toLowerCase())\n : value.some((item) => fieldValue?.includes(item.toLowerCase()))\n : type === 'number'\n ? (fieldValue || Infinity) >= (min || -Infinity) && (fieldValue || -Infinity) <= (max || Infinity)\n : false;\n }),\n );\n }\n\n if (search) {\n flatten.forEach((row, index) => {\n const rowValues = Object.keys(row)\n .filter((key) => !schema[key]?.bind && schema[key]?.type !== 'component')\n .map((key) => row[key]);\n\n if (JSON.stringify(rowValues).toLowerCase().includes(search.toLowerCase())) values.push(flatten[index]);\n });\n } else {\n values = [...flatten];\n }\n\n Object.keys(sort).forEach((key) => {\n const fieldKey = schema[key].bind || key;\n const order = sort[key] ? 1 : -1;\n\n values.sort(\n ({ [fieldKey]: a } = {}, { [fieldKey]: b } = {}) =>\n (a === undefined || a < b ? -1 : b === undefined || a > b ? 1 : 0) * order,\n );\n });\n\n return values;\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirai/ui",
3
- "version": "1.0.186",
3
+ "version": "1.0.187",
4
4
  "repository": "git@gitlab.com:miraicorp/dev/frontend/ui.git",
5
5
  "author": "JΛVI <hello@soyjavi.com>",
6
6
  "license": "MIT",