@mirai/ui 1.0.137 → 1.0.138
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/README.md +10 -2
- package/build/components/Table/Table.js +4 -2
- package/build/components/Table/Table.js.map +1 -1
- package/build/components/Table/Table.stories.js +12 -5
- package/build/components/Table/Table.stories.js.map +1 -1
- package/build/components/Table/helpers/select.js +17 -10
- package/build/components/Table/helpers/select.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -777,7 +777,13 @@ const dataSource = [
|
|
|
777
777
|
{ username: 'svet', email: 'svet@mirai.com', year: 2021, action: <Button>View</Button> },
|
|
778
778
|
{ username: 'javi', email: 'hi@soyjavi.com', year: 2022, twitter: 'soyjavi' },
|
|
779
779
|
{ username: 'victor', email: 'victor@mirai.com', year: 2021 },
|
|
780
|
-
{
|
|
780
|
+
{
|
|
781
|
+
username: 'mario/2',
|
|
782
|
+
email: 'mario.2@mirai.com',
|
|
783
|
+
year: 2022,
|
|
784
|
+
tags: ['en', 'jp'].map((language) => <Text>{language}</Text>),
|
|
785
|
+
languages: ['en', 'jp'],
|
|
786
|
+
},
|
|
781
787
|
];
|
|
782
788
|
|
|
783
789
|
const schema = {
|
|
@@ -785,7 +791,9 @@ const schema = {
|
|
|
785
791
|
email: { label: 'Email' },
|
|
786
792
|
year: { label: 'Year', type: 'number' },
|
|
787
793
|
twitter: { label: 'Twitter' },
|
|
788
|
-
action: { label: 'Action' },
|
|
794
|
+
action: { label: 'Action', type: 'component' },
|
|
795
|
+
tags: { label: 'Tags', type: 'component', bind: 'languages' },
|
|
796
|
+
languages: { label: 'Languages', type: 'hidden' },
|
|
789
797
|
};
|
|
790
798
|
|
|
791
799
|
const MyComponent = () => {
|
|
@@ -115,12 +115,14 @@ var Table = function Table(_ref) {
|
|
|
115
115
|
onSort: handleSort,
|
|
116
116
|
"data-testid": testId ? "".concat(testId, "-head") : undefined
|
|
117
117
|
})), /*#__PURE__*/_react.default.createElement("tbody", null, (0, _react.useMemo)(function () {
|
|
118
|
-
return (0, _helpers2.select)(
|
|
118
|
+
return (0, _helpers2.select)({
|
|
119
|
+
dataSource: dataSource,
|
|
119
120
|
filter: filter,
|
|
121
|
+
schema: schema,
|
|
120
122
|
search: search,
|
|
121
123
|
sort: sort
|
|
122
124
|
});
|
|
123
|
-
}, [dataSource, filter, search, sort]).map(function (row, index) {
|
|
125
|
+
}, [dataSource, filter, schema, search, sort]).map(function (row, index) {
|
|
124
126
|
return /*#__PURE__*/_react.default.createElement(_Table2.Row, {
|
|
125
127
|
checked: !!selected.find(function (item) {
|
|
126
128
|
return JSON.stringify(item) === JSON.stringify(row);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","names":["Table","dataSource","filter","propFilter","inline","schema","search","selected","propSelected","onPress","onScroll","onSelect","others","useState","setFilter","setSelected","sort","setSort","useEffect","JSON","stringify","handleAddFilter","item","handleRemoveFilter","index","splice","handleHeadSelect","row","event","next","length","handleSelect","exists","includes","push","handleSort","field","undefined","testId","React","createElement","ScrollView","View","Fragment","className","styles","style","outlined","table","useMemo","select","map","find","displayName","propTypes","PropTypes","arrayOf","shape","bool","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 { ScrollView, View } from '../../primitives';\nimport { select } from './helpers';\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 schema,\n search,\n selected: propSelected = [],\n onPress,\n onScroll,\n onSelect,\n ...others\n}) => {\n const [filter, setFilter] = useState(propFilter);\n const [selected, setSelected] = useState(propSelected);\n const [sort, setSort] = useState({});\n\n useEffect(() => {\n if (JSON.stringify(filter) !== JSON.stringify(propFilter)) setFilter(propFilter);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [propFilter]);\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 setSelected(() => {\n const next = selected.length !== dataSource.length ? dataSource : [];\n onSelect(next, event);\n\n return next;\n });\n };\n\n const handleSelect = (row, event) => {\n setSelected(() => {\n const exists = selected.includes(row);\n const next = selected.filter((item) => item !== row);\n if (!exists) next.push(row);\n onSelect(next, event);\n\n return next;\n });\n };\n\n const handleSort = (field) => {\n setSort(sort[field] === undefined ? { [field]: true } : sort[field] ? { [field]: false } : {});\n };\n\n const { ['data-testid']: testId } = others;\n\n return React.createElement(\n onScroll ? ScrollView : !inline ? View : Fragment,\n onScroll || !inline\n ? { ...others, onScroll, className: styles(!inline && style.outlined, others.className) }\n : undefined,\n <>\n {filter.length > 0 && <Filter filter={filter} onRemove={(index) => handleRemoveFilter(index)} />}\n <table\n {...(!onScroll ? others : undefined)}\n className={styles(style.table, !onScroll && !inline && others.className)}\n >\n <thead>\n <Row\n checked={selected.length === dataSource.length}\n indeterminate={selected.length > 0}\n schema={schema}\n sort={sort}\n onFilter={handleAddFilter}\n onSelect={onSelect ? handleHeadSelect : undefined}\n onSort={handleSort}\n data-testid={testId ? `${testId}-head` : undefined}\n />\n </thead>\n <tbody>\n {useMemo(() => select(dataSource,
|
|
1
|
+
{"version":3,"file":"Table.js","names":["Table","dataSource","filter","propFilter","inline","schema","search","selected","propSelected","onPress","onScroll","onSelect","others","useState","setFilter","setSelected","sort","setSort","useEffect","JSON","stringify","handleAddFilter","item","handleRemoveFilter","index","splice","handleHeadSelect","row","event","next","length","handleSelect","exists","includes","push","handleSort","field","undefined","testId","React","createElement","ScrollView","View","Fragment","className","styles","style","outlined","table","useMemo","select","map","find","displayName","propTypes","PropTypes","arrayOf","shape","bool","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 { ScrollView, View } from '../../primitives';\nimport { select } from './helpers';\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 schema,\n search,\n selected: propSelected = [],\n onPress,\n onScroll,\n onSelect,\n ...others\n}) => {\n const [filter, setFilter] = useState(propFilter);\n const [selected, setSelected] = useState(propSelected);\n const [sort, setSort] = useState({});\n\n useEffect(() => {\n if (JSON.stringify(filter) !== JSON.stringify(propFilter)) setFilter(propFilter);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [propFilter]);\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 setSelected(() => {\n const next = selected.length !== dataSource.length ? dataSource : [];\n onSelect(next, event);\n\n return next;\n });\n };\n\n const handleSelect = (row, event) => {\n setSelected(() => {\n const exists = selected.includes(row);\n const next = selected.filter((item) => item !== row);\n if (!exists) next.push(row);\n onSelect(next, event);\n\n return next;\n });\n };\n\n const handleSort = (field) => {\n setSort(sort[field] === undefined ? { [field]: true } : sort[field] ? { [field]: false } : {});\n };\n\n const { ['data-testid']: testId } = others;\n\n return React.createElement(\n onScroll ? ScrollView : !inline ? View : Fragment,\n onScroll || !inline\n ? { ...others, onScroll, className: styles(!inline && style.outlined, others.className) }\n : undefined,\n <>\n {filter.length > 0 && <Filter filter={filter} onRemove={(index) => handleRemoveFilter(index)} />}\n <table\n {...(!onScroll ? others : undefined)}\n className={styles(style.table, !onScroll && !inline && others.className)}\n >\n <thead>\n <Row\n checked={selected.length === dataSource.length}\n indeterminate={selected.length > 0}\n schema={schema}\n sort={sort}\n onFilter={handleAddFilter}\n onSelect={onSelect ? handleHeadSelect : undefined}\n onSort={handleSort}\n data-testid={testId ? `${testId}-head` : undefined}\n />\n </thead>\n <tbody>\n {useMemo(\n () => select({ dataSource, filter, schema, search, sort }),\n [dataSource, filter, schema, search, sort],\n ).map((row, index) => (\n <Row\n checked={!!selected.find((item) => JSON.stringify(item) === JSON.stringify(row))}\n dataSource={row}\n key={index}\n schema={schema}\n onPress={onPress}\n onSelect={onSelect ? handleSelect : undefined}\n data-testid={testId ? `${testId}-${index}` : undefined}\n />\n ))}\n </tbody>\n </table>\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 schema: PropTypes.shape({}).isRequired,\n search: PropTypes.string,\n selected: PropTypes.arrayOf(PropTypes.shape()),\n onPress: PropTypes.func,\n onScroll: PropTypes.func,\n onSelect: PropTypes.func,\n};\n"],"mappings":"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"}
|
|
@@ -104,7 +104,7 @@ var dataSource = [{
|
|
|
104
104
|
}, {
|
|
105
105
|
username: 'svet',
|
|
106
106
|
email: 'svet@mirai.com',
|
|
107
|
-
tags: ['en'].map(function (language) {
|
|
107
|
+
tags: ['en', 'es'].map(function (language) {
|
|
108
108
|
return /*#__PURE__*/_react.default.createElement(_.Text, {
|
|
109
109
|
key: language,
|
|
110
110
|
bold: true,
|
|
@@ -112,12 +112,13 @@ var dataSource = [{
|
|
|
112
112
|
className: _TableStoriesModule.default.tag
|
|
113
113
|
}, language);
|
|
114
114
|
}),
|
|
115
|
-
languages: ['english'],
|
|
115
|
+
languages: ['english', 'spanish'],
|
|
116
116
|
year: 2021,
|
|
117
117
|
twitter: undefined,
|
|
118
118
|
action: /*#__PURE__*/_react.default.createElement(_.Button, {
|
|
119
119
|
small: true
|
|
120
|
-
}, "Click Me")
|
|
120
|
+
}, "Click Me"),
|
|
121
|
+
actionTitle: 'Click Me'
|
|
121
122
|
}, {
|
|
122
123
|
username: 'javi',
|
|
123
124
|
email: 'hi@soyjavi.com',
|
|
@@ -161,7 +162,8 @@ Story.args = (_Story$args = {
|
|
|
161
162
|
},
|
|
162
163
|
tags: {
|
|
163
164
|
label: 'Tags',
|
|
164
|
-
type: 'component'
|
|
165
|
+
type: 'component',
|
|
166
|
+
bind: 'languages'
|
|
165
167
|
},
|
|
166
168
|
languages: {
|
|
167
169
|
label: 'Languages (hidden)',
|
|
@@ -179,7 +181,12 @@ Story.args = (_Story$args = {
|
|
|
179
181
|
},
|
|
180
182
|
action: {
|
|
181
183
|
label: 'Action',
|
|
182
|
-
type: 'component'
|
|
184
|
+
type: 'component',
|
|
185
|
+
bind: 'actionTitle'
|
|
186
|
+
},
|
|
187
|
+
actionTitle: {
|
|
188
|
+
label: 'Action (hidden)',
|
|
189
|
+
type: 'hidden'
|
|
183
190
|
}
|
|
184
191
|
},
|
|
185
192
|
search: ''
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.stories.js","names":["title","Story","props","useState","selected","setSelected","search","setSearch","useEffect","handleScroll","others","console","log","handlePress","handleSelect","style","table","dataSource","username","email","year","tags","map","language","tag","languages","action","twitter","undefined","bio","storyName","args","filter","field","value","min","max","inline","schema","label","type","height","width","background","argTypes"],"sources":["../../../src/components/Table/Table.stories.jsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\n\nimport { Button, InputText, Text } from '../../';\nimport { Table } from './Table';\nimport style from './Table.stories.module.css';\n\nexport default { title: 'Components' };\n\nexport const Story = (props) => {\n const [selected, setSelected] = useState();\n const [search, setSearch] = useState();\n\n useEffect(() => {\n setSearch(props.search);\n }, [props.search]);\n\n const handleScroll = (...others) => console.log('<Table>::onScroll', ...others);\n\n const handlePress = (...others) => console.log('<Table>::onPress', ...others);\n\n const handleSelect = (...others) => {\n console.log('<Table>::onSelect', ...others);\n setSelected(...others);\n };\n\n return (\n <>\n <InputText name=\"search\" placeholder=\"search...\" type=\"search\" value={search} onChange={setSearch} />\n\n <Table\n {...props}\n search={search}\n selected={selected}\n onPress={handlePress}\n onScroll={handleScroll}\n onSelect={handleSelect}\n className={style.table}\n />\n </>\n );\n};\n\nconst dataSource = [\n {\n username: 'jose',\n email: 'jose@mirai.com',\n year: 1,\n tags: ['es', 'en', 'ja'].map((language) => (\n <Text key={language} bold small className={style.tag}>\n {language}\n </Text>\n )),\n languages: ['spanish', 'english', 'japanese'],\n action: null,\n },\n { username: 'mario/1', email: 'mario.1@mirai.com', tags: null, year: 2005 },\n { username: 'carlos', email: 'carlos@mirai.com', tags: null, year: 2012 },\n {\n username: 'svet',\n email: 'svet@mirai.com',\n tags: ['en'].map((language) => (\n <Text key={language} bold small className={style.tag}>\n {language}\n </Text>\n )),\n languages: ['english'],\n year: 2021,\n twitter: undefined,\n action: <Button small>Click Me</Button>,\n },\n {\n username: 'javi',\n email: 'hi@soyjavi.com',\n tags: null,\n year: 2022,\n twitter: 'soyjavi',\n bio: \"Hi, I'm Javi. For as long as I can remember, I have always loved build software and helping people through it. I strive to design simple, clean, and beautiful products in the hope that they will make a difference in the world.\",\n },\n { username: 'victor', email: 'victor@mirai.com', tags: null, year: 2021 },\n { username: 'mario/2', email: 'mario.2@mirai.com', tags: null, year: 2022 },\n];\n\nStory.storyName = 'Table';\n\nStory.args = {\n dataSource,\n filter: [\n { field: 'email', value: '@mirai.com' },\n { field: 'email', value: '@soyjavi.com' },\n { field: 'year', min: 2020, max: 2023 },\n ],\n inline: true,\n schema: {\n username: { label: 'User Name', type: 'text' },\n email: { label: 'Email' },\n tags: { label: 'Tags', type: 'component' },\n languages: { label: 'Languages (hidden)', type: 'hidden' },\n year: { label: 'Year', type: 'number' },\n twitter: { label: 'Twitter' },\n bio: { label: 'Biography' },\n action: { label: 'Action', type: 'component' },\n },\n search: '',\n // inherited properties\n ['data-testid']: 'test-story',\n style: { height: '128px !important;', width: 128, background: 'green' },\n};\n\nStory.argTypes = {};\n"],"mappings":";;;;;;;AAAA;AAEA;AACA;AACA;AAA+C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAEhC;EAAEA,KAAK,EAAE;AAAa,CAAC;AAAA;AAE/B,IAAMC,KAAK,GAAG,SAARA,KAAK,CAAIC,KAAK,EAAK;EAC9B,gBAAgC,IAAAC,eAAQ,GAAE;IAAA;IAAnCC,QAAQ;IAAEC,WAAW;EAC5B,iBAA4B,IAAAF,eAAQ,GAAE;IAAA;IAA/BG,MAAM;IAAEC,SAAS;EAExB,IAAAC,gBAAS,EAAC,YAAM;IACdD,SAAS,CAACL,KAAK,CAACI,MAAM,CAAC;EACzB,CAAC,EAAE,CAACJ,KAAK,CAACI,MAAM,CAAC,CAAC;EAElB,IAAMG,YAAY,GAAG,SAAfA,YAAY;IAAA;IAAA,kCAAOC,MAAM;MAANA,MAAM;IAAA;IAAA,OAAK,YAAAC,OAAO,EAACC,GAAG,kBAAC,mBAAmB,SAAKF,MAAM,EAAC;EAAA;EAE/E,IAAMG,WAAW,GAAG,SAAdA,WAAW;IAAA;IAAA,mCAAOH,MAAM;MAANA,MAAM;IAAA;IAAA,OAAK,aAAAC,OAAO,EAACC,GAAG,mBAAC,kBAAkB,SAAKF,MAAM,EAAC;EAAA;EAE7E,IAAMI,YAAY,GAAG,SAAfA,YAAY,GAAkB;IAAA;IAAA,mCAAXJ,MAAM;MAANA,MAAM;IAAA;IAC7B,aAAAC,OAAO,EAACC,GAAG,mBAAC,mBAAmB,SAAKF,MAAM,EAAC;IAC3CL,WAAW,eAAIK,MAAM,CAAC;EACxB,CAAC;EAED,oBACE,yEACE,6BAAC,WAAS;IAAC,IAAI,EAAC,QAAQ;IAAC,WAAW,EAAC,WAAW;IAAC,IAAI,EAAC,QAAQ;IAAC,KAAK,EAAEJ,MAAO;IAAC,QAAQ,EAAEC;EAAU,EAAG,eAErG,6BAAC,YAAK,eACAL,KAAK;IACT,MAAM,EAAEI,MAAO;IACf,QAAQ,EAAEF,QAAS;IACnB,OAAO,EAAES,WAAY;IACrB,QAAQ,EAAEJ,YAAa;IACvB,QAAQ,EAAEK,YAAa;IACvB,SAAS,EAAEC,2BAAK,CAACC;EAAM,GACvB,CACD;AAEP,CAAC;AAAC;AAEF,IAAMC,UAAU,GAAG,CACjB;EACEC,QAAQ,EAAE,MAAM;EAChBC,KAAK,EAAE,gBAAgB;EACvBC,IAAI,EAAE,CAAC;EACPC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAACC,GAAG,CAAC,UAACC,QAAQ;IAAA,oBACpC,6BAAC,MAAI;MAAC,GAAG,EAAEA,QAAS;MAAC,IAAI;MAAC,KAAK;MAAC,SAAS,EAAER,2BAAK,CAACS;IAAI,GAClDD,QAAQ,CACJ;EAAA,CACR,CAAC;EACFE,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC;EAC7CC,MAAM,EAAE;AACV,CAAC,EACD;EAAER,QAAQ,EAAE,SAAS;EAAEC,KAAK,EAAE,mBAAmB;EAAEE,IAAI,EAAE,IAAI;EAAED,IAAI,EAAE;AAAK,CAAC,EAC3E;EAAEF,QAAQ,EAAE,QAAQ;EAAEC,KAAK,EAAE,kBAAkB;EAAEE,IAAI,EAAE,IAAI;EAAED,IAAI,EAAE;AAAK,CAAC,EACzE;EACEF,QAAQ,EAAE,MAAM;EAChBC,KAAK,EAAE,gBAAgB;EACvBE,IAAI,EAAE,CAAC,IAAI,CAAC,CAACC,GAAG,CAAC,UAACC,QAAQ;IAAA,
|
|
1
|
+
{"version":3,"file":"Table.stories.js","names":["title","Story","props","useState","selected","setSelected","search","setSearch","useEffect","handleScroll","others","console","log","handlePress","handleSelect","style","table","dataSource","username","email","year","tags","map","language","tag","languages","action","twitter","undefined","actionTitle","bio","storyName","args","filter","field","value","min","max","inline","schema","label","type","bind","height","width","background","argTypes"],"sources":["../../../src/components/Table/Table.stories.jsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\n\nimport { Button, InputText, Text } from '../../';\nimport { Table } from './Table';\nimport style from './Table.stories.module.css';\n\nexport default { title: 'Components' };\n\nexport const Story = (props) => {\n const [selected, setSelected] = useState();\n const [search, setSearch] = useState();\n\n useEffect(() => {\n setSearch(props.search);\n }, [props.search]);\n\n const handleScroll = (...others) => console.log('<Table>::onScroll', ...others);\n\n const handlePress = (...others) => console.log('<Table>::onPress', ...others);\n\n const handleSelect = (...others) => {\n console.log('<Table>::onSelect', ...others);\n setSelected(...others);\n };\n\n return (\n <>\n <InputText name=\"search\" placeholder=\"search...\" type=\"search\" value={search} onChange={setSearch} />\n\n <Table\n {...props}\n search={search}\n selected={selected}\n onPress={handlePress}\n onScroll={handleScroll}\n onSelect={handleSelect}\n className={style.table}\n />\n </>\n );\n};\n\nconst dataSource = [\n {\n username: 'jose',\n email: 'jose@mirai.com',\n year: 1,\n tags: ['es', 'en', 'ja'].map((language) => (\n <Text key={language} bold small className={style.tag}>\n {language}\n </Text>\n )),\n languages: ['spanish', 'english', 'japanese'],\n action: null,\n },\n { username: 'mario/1', email: 'mario.1@mirai.com', tags: null, year: 2005 },\n { username: 'carlos', email: 'carlos@mirai.com', tags: null, year: 2012 },\n {\n username: 'svet',\n email: 'svet@mirai.com',\n tags: ['en', 'es'].map((language) => (\n <Text key={language} bold small className={style.tag}>\n {language}\n </Text>\n )),\n languages: ['english', 'spanish'],\n year: 2021,\n twitter: undefined,\n action: <Button small>Click Me</Button>,\n actionTitle: 'Click Me',\n },\n {\n username: 'javi',\n email: 'hi@soyjavi.com',\n tags: null,\n year: 2022,\n twitter: 'soyjavi',\n bio: \"Hi, I'm Javi. For as long as I can remember, I have always loved build software and helping people through it. I strive to design simple, clean, and beautiful products in the hope that they will make a difference in the world.\",\n },\n { username: 'victor', email: 'victor@mirai.com', tags: null, year: 2021 },\n { username: 'mario/2', email: 'mario.2@mirai.com', tags: null, year: 2022 },\n];\n\nStory.storyName = 'Table';\n\nStory.args = {\n dataSource,\n filter: [\n { field: 'email', value: '@mirai.com' },\n { field: 'email', value: '@soyjavi.com' },\n { field: 'year', min: 2020, max: 2023 },\n ],\n inline: true,\n schema: {\n username: { label: 'User Name', type: 'text' },\n email: { label: 'Email' },\n tags: { label: 'Tags', type: 'component', bind: 'languages' },\n languages: { label: 'Languages (hidden)', type: 'hidden' },\n year: { label: 'Year', type: 'number' },\n twitter: { label: 'Twitter' },\n bio: { label: 'Biography' },\n action: { label: 'Action', type: 'component', bind: 'actionTitle' },\n actionTitle: { label: 'Action (hidden)', type: 'hidden' },\n },\n search: '',\n // inherited properties\n ['data-testid']: 'test-story',\n style: { height: '128px !important;', width: 128, background: 'green' },\n};\n\nStory.argTypes = {};\n"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.select = void 0;
|
|
7
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
8
8
|
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; }
|
|
9
9
|
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; }
|
|
10
10
|
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; }
|
|
@@ -17,9 +17,12 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
|
|
|
17
17
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
18
18
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
19
19
|
var select = function select() {
|
|
20
|
-
var
|
|
21
|
-
|
|
20
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
21
|
+
_ref$dataSource = _ref.dataSource,
|
|
22
|
+
dataSource = _ref$dataSource === void 0 ? [] : _ref$dataSource,
|
|
22
23
|
filter = _ref.filter,
|
|
24
|
+
_ref$schema = _ref.schema,
|
|
25
|
+
schema = _ref$schema === void 0 ? {} : _ref$schema,
|
|
23
26
|
search = _ref.search,
|
|
24
27
|
_ref$sort = _ref.sort,
|
|
25
28
|
sort = _ref$sort === void 0 ? {} : _ref$sort;
|
|
@@ -43,25 +46,29 @@ var select = function select() {
|
|
|
43
46
|
flatten = flatten.filter(function () {
|
|
44
47
|
var row = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
45
48
|
return filterGrouped.every(function (_ref3) {
|
|
46
|
-
var
|
|
49
|
+
var _fieldValue;
|
|
47
50
|
var field = _ref3.field,
|
|
48
51
|
_ref3$max = _ref3.max,
|
|
49
52
|
max = _ref3$max === void 0 ? Infinity : _ref3$max,
|
|
50
53
|
_ref3$min = _ref3.min,
|
|
51
54
|
min = _ref3$min === void 0 ? -Infinity : _ref3$min,
|
|
52
55
|
value = _ref3.value;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
var fieldValue = row[schema[field].bind || field];
|
|
57
|
+
if (Array.isArray(fieldValue)) fieldValue = fieldValue.join(' ');
|
|
58
|
+
return value ? !Array.isArray(value) ? (_fieldValue = fieldValue) === null || _fieldValue === void 0 ? void 0 : _fieldValue.toLowerCase().includes(value.toLowerCase()) : value.some(function (item) {
|
|
59
|
+
var _fieldValue2;
|
|
60
|
+
return (_fieldValue2 = fieldValue) === null || _fieldValue2 === void 0 ? void 0 : _fieldValue2.toLowerCase().includes(item.toLowerCase());
|
|
56
61
|
}) : min || max ? row[field] >= min && row[field] <= max : false;
|
|
57
62
|
});
|
|
58
63
|
});
|
|
59
64
|
}
|
|
60
65
|
if (search) {
|
|
61
66
|
flatten.forEach(function (row, index) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
return
|
|
67
|
+
var rowValues = Object.keys(row).filter(function (key) {
|
|
68
|
+
var _schema$key;
|
|
69
|
+
return ((_schema$key = schema[key]) === null || _schema$key === void 0 ? void 0 : _schema$key.type) !== 'component';
|
|
70
|
+
}).map(function (key) {
|
|
71
|
+
return row[key];
|
|
65
72
|
});
|
|
66
73
|
if (JSON.stringify(rowValues).toLowerCase().includes(search.toLowerCase())) values.push(flatten[index]);
|
|
67
74
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","names":["select","dataSource","filter","search","sort","flatten","values","length","filterGrouped","reduce","group","item","itemFound","find","field","value","Array","isArray","push","row","every","max","Infinity","min","toLowerCase","includes","some","forEach","index","rowValues","Object","
|
|
1
|
+
{"version":3,"file":"select.js","names":["select","dataSource","filter","schema","search","sort","flatten","values","length","filterGrouped","reduce","group","item","itemFound","find","field","value","Array","isArray","push","row","every","max","Infinity","min","fieldValue","bind","join","toLowerCase","includes","some","forEach","index","rowValues","Object","keys","key","type","map","JSON","stringify","order","a","b"],"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 if (filter?.length > 0) {\n const filterGrouped = [...filter].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\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]?.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 order = sort[key] ? 1 : -1;\n values.sort((a, b) => (a[key] >= b[key] ? 1 * order : -1 * order));\n });\n\n return values;\n};\n"],"mappings":"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"}
|