@kne-components/entry-selector 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/asset-manifest.json +12 -12
- package/build/index.html +1 -1
- package/build/remoteEntry.js +1 -1
- package/build/remoteEntry.js.map +1 -1
- package/build/static/js/147.98c6198d.chunk.js +2 -0
- package/build/static/js/147.98c6198d.chunk.js.map +1 -0
- package/build/static/js/{198.1c5d3585.chunk.js → 198.4a7ba90c.chunk.js} +2 -2
- package/build/static/js/{198.1c5d3585.chunk.js.map → 198.4a7ba90c.chunk.js.map} +1 -1
- package/build/static/js/{268.787ddc9b.chunk.js → 268.97763f17.chunk.js} +2 -2
- package/build/static/js/{268.787ddc9b.chunk.js.map → 268.97763f17.chunk.js.map} +1 -1
- package/build/static/js/528.aa437ae3.chunk.js +2 -0
- package/build/static/js/528.aa437ae3.chunk.js.map +1 -0
- package/build/static/js/{main.2e7705f6.js → main.58f904db.js} +2 -2
- package/build/static/js/{main.2e7705f6.js.map → main.58f904db.js.map} +1 -1
- package/package.json +1 -1
- package/build/static/js/147.f34af9cb.chunk.js +0 -2
- package/build/static/js/147.f34af9cb.chunk.js.map +0 -1
- package/build/static/js/528.eeca4ea0.chunk.js +0 -2
- package/build/static/js/528.eeca4ea0.chunk.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_kne_components_entry_selector=self.webpackChunk_kne_components_entry_selector||[]).push([[147,528],{71830:(e,t,l)=>{l.r(t),l.d(t,{default:()=>P});var r=l(94922),n=l.n(r),a=l(17096),s=l(20274),c=l(80816),i=l(63965),o=l(3359),d=l(7717),m=l(71952),p=l(54159),u=l.n(p),h=l(5599),f=l(55199),g=l(20046);l(16577),l(9062);function E(){return E=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var r in l)({}).hasOwnProperty.call(l,r)&&(e[r]=l[r])}return e},E.apply(null,arguments)}var y={"entry-selector":"_TIU4-","list-outer":"_ZXEhy","list-header":"_HAF3g","list-scroll":"_VO7i-",list:"_8w58c","list-lib":"_9m0I0","list-index":"_P8KYX","columns-control-content-list":"_agPfO","columns-control-content-item":"_iFzfk","is-drag":"_uB1q2","columns-control-content-item-icon":"_WHlyH","sortable-drag":"_dxhFH","sortable-ghost":"_7ZIH8"};const x=["onAdd","api","options","selectedTitle","listTitle","renderListTitle","renderSelectedItem","renderItem","renderOptions","getSearchProps","searchPlaceholder","maxScrollerHeight"],P=(0,s.createWithIntlProvider)({defaultLocale:"zh-CN",messages:{"zh-CN":{add:"\u6dfb\u52a0",selected:"\u5df2\u9009\u62e9",list:"\u5217\u8868",searchPlaceholder:"\u8bf7\u8f93\u5165\u5173\u952e\u5b57"},"en-US":{add:"Add",selected:"Selected",list:"List",searchPlaceholder:"Please input keyword"}},namespace:"entry-selector"})(e=>{let{onAdd:t,api:l,options:p,selectedTitle:P,listTitle:_,renderListTitle:v,renderSelectedItem:b,renderItem:N,renderOptions:S,getSearchProps:k,searchPlaceholder:A,maxScrollerHeight:C=800}=e,I=function(e,t){if(null==e)return{};var l={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;l[r]=e[r]}return l}(e,x);const[O,w]=(0,d.A)(I),[F,T]=(0,r.useState)({}),{formatMessage:H}=(0,s.useIntl)(),L=(0,r.useRef)(null),j=(0,r.useRef)(new Map);return n().createElement(f.Flex,{vertical:!0,gap:8,className:y["entry-selector"],style:{"--max-scroller-height":"".concat(C,"px")}},"function"===typeof t&&n().createElement(f.Flex,null,n().createElement(f.Button,{shape:"round",size:"small",type:"primary",onClick:()=>{t({fetchApi:L.current,value:O,onChange:w})}},H({id:"add"}))),n().createElement(m.h,E({},I,{completeTips:null,searchProps:F,getSearchProps:k,api:l,ref:L,className:y["list-scroll"],autoHide:!1,render:e=>{let{fetchApi:t,children:l}=e;const{data:r}=t,{pageData:s,totalCount:i}=Object.assign({},{pageData:[],totalCount:0},r);s.forEach(e=>{j.current.set(e.id,e)});const o=j.current,d=(O||[]).map(e=>{let{id:t}=e;return o.get(t)}).filter(e=>!!e);return n().createElement(f.Row,{gutter:[12,12]},n().createElement(f.Col,{span:12},n().createElement("div",{className:y["list-outer"]},i>0&&n().createElement("div",{className:y["list-header"]},P||H({id:"selected"})),n().createElement(g.A,{className:y["list-scroll"],autoHide:!1},O&&O.length>0?n().createElement(f.List,{className:y.list,size:"small"},n().createElement(a.ReactSortable,{filter:".ignore-elements",dragClass:y["sortable-drag"],ghostClass:y["sortable-ghost"],forceFallback:!0,animation:300,delayOnTouchStart:!0,delay:2,list:d,setList:e=>{w(t=>{const l=new Map((t||[]).map(e=>[e.id,e]));return e.map(e=>{let{id:t}=e;return l.get(t)})})}},(O||[]).map(e=>{let{id:t}=e;return o.get(t)}).filter(e=>!!e).map((e,l)=>{const r=n().createElement("span",{className:"list-item-title"},e.title),a=new Map((O||[]).map(e=>[e.id,e]));return n().createElement(f.List.Item,{key:e.id,className:u()(y["columns-control-content-item"],y["is-drag"])},n().createElement(c.A,{className:y["columns-control-content-item-icon"]}),n().createElement("div",{className:y["list-index"]},l+1),n().createElement(f.Flex,{vertical:!0,flex:1},"function"===typeof b?b(a.get(e.id),{el:r,target:e,fetchApi:t,searchProps:F,setSearchProps:T,onChange:e=>w(t=>{const l=(t||[]).slice(0),r=l.findIndex(t=>{let{id:l}=t;return l===e.id}),n=l[r];return r>-1&&l.splice(r,1,Object.assign({},"function"===typeof e?e(n):e)),l})}):r))}))):n().createElement(f.Flex,{className:y.list,justify:"center",align:"center"},n().createElement(f.Empty,null))))),n().createElement(f.Col,{span:12},n().createElement("div",{className:y["list-outer"]},n().createElement(f.Flex,{className:y["list-header"],justify:"space-between"},n().createElement("div",{className:y["list-header-title"]},_||"function"===typeof v&&v({fetchApi:t,searchProps:F,setSearchProps:T})||H({id:"list"})),n().createElement("div",null,"function"===typeof k&&n().createElement(h.A,{size:"small",placeholder:A||H({id:"searchPlaceholder"}),value:F.searchText,onSearch:e=>{T(t=>Object.assign({},t,{searchText:e}))}}))),l)))}}),e=>{let{fetchApi:t,list:l}=e;return n().createElement(f.List,{className:u()(y.list,y["list-lib"]),size:"small",dataSource:l,renderItem:e=>{const l=n().createElement("span",{className:"list-item-title"},e.title),r="function"===typeof S?S(e,{searchProps:F,setSearchProps:T,fetchApi:t,options:p}):p;return n().createElement(f.List.Item,{key:e.id,onClick:()=>{w(t=>{const l=(t||[]).slice(0),r=l.findIndex(t=>{let{id:l}=t;return l===e.id});return r>-1?l.splice(r,1):l.push({id:e.id}),l})}},n().createElement(f.Checkbox,{checked:(O||[]).findIndex(t=>{let{id:l}=t;return l===e.id})>-1}),n().createElement(f.Flex,{vertical:!0,flex:1},"function"===typeof N?N(e,{fetchApi:t,el:l,searchProps:F,setSearchProps:T}):l),r&&n().createElement(f.Flex,{flex:"0 0 50px",onClick:e=>{e.stopPropagation()}},n().createElement(o.Ay,{more:n().createElement(f.Button,{type:"link",icon:n().createElement(i.A,null)}),list:r})))}})}))})}}]);
|
|
2
|
-
//# sourceMappingURL=147.f34af9cb.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/js/147.f34af9cb.chunk.js","mappings":"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","sources":["../../src/index.js","../../src/locale/zh-CN.js","../../src/locale/en-US.js"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport zhCn from './locale/zh-CN';\nimport enUS from './locale/en-US';\nimport { ReactSortable } from 'react-sortablejs';\nimport { createWithIntlProvider, useIntl } from '@kne/react-intl';\nimport { MoreOutlined, HolderOutlined } from '@ant-design/icons';\nimport ButtonGroup from '@kne/button-group';\nimport useControllerValue from '@kne/use-control-value';\nimport { FetchScrollLoader } from '@kne/scroll-loader';\nimport classnames from 'classnames';\nimport SearchInput from '@kne/search-input';\nimport { Flex, Button, Row, Col, List, Empty, Checkbox } from 'antd';\nimport SimpleBar from 'simplebar-react';\nimport 'simplebar/dist/simplebar.min.css';\nimport '@kne/button-group/dist/index.css';\nimport style from './style.module.scss';\n\nconst EntrySelector = createWithIntlProvider({\n defaultLocale: 'zh-CN',\n messages: {\n 'zh-CN': zhCn,\n 'en-US': enUS\n },\n namespace: 'entry-selector'\n})(({ onAdd, api, options, selectedTitle, listTitle, renderListTitle, renderSelectedItem, renderItem, renderOptions, getSearchProps, searchPlaceholder, maxScrollerHeight = 800, ...props }) => {\n const [value, onChange] = useControllerValue(props);\n const [searchProps, setSearchProps] = useState({});\n const { formatMessage } = useIntl();\n const ref = useRef(null);\n const selectedMappingRef = useRef(new Map());\n return (\n <Flex\n vertical\n gap={8}\n className={style['entry-selector']}\n style={{\n '--max-scroller-height': `${maxScrollerHeight}px`\n }}\n >\n {typeof onAdd === 'function' && (\n <Flex>\n <Button\n shape=\"round\"\n size=\"small\"\n type=\"primary\"\n onClick={() => {\n onAdd({ fetchApi: ref.current, value, onChange });\n }}\n >\n {formatMessage({ id: 'add' })}\n </Button>\n </Flex>\n )}\n <FetchScrollLoader\n {...props}\n completeTips={null}\n searchProps={searchProps}\n getSearchProps={getSearchProps}\n api={api}\n ref={ref}\n className={style['list-scroll']}\n autoHide={false}\n render={({ fetchApi, children }) => {\n const { data } = fetchApi;\n const { pageData, totalCount } = Object.assign(\n {},\n {\n pageData: [],\n totalCount: 0\n },\n data\n );\n pageData.forEach(item => {\n selectedMappingRef.current.set(item.id, item);\n });\n const listMapping = selectedMappingRef.current;\n const currentList = (value || []).map(({ id }) => listMapping.get(id)).filter(item => !!item);\n return (\n <Row gutter={[12, 12]}>\n <Col span={12}>\n <div className={style['list-outer']}>\n {totalCount > 0 && <div className={style['list-header']}>{selectedTitle || formatMessage({ id: 'selected' })}</div>}\n <SimpleBar className={style['list-scroll']} autoHide={false}>\n {value && value.length > 0 ? (\n <List className={style['list']} size=\"small\">\n <ReactSortable\n filter=\".ignore-elements\"\n dragClass={style['sortable-drag']}\n ghostClass={style['sortable-ghost']}\n forceFallback\n animation={300}\n delayOnTouchStart\n delay={2}\n list={currentList}\n setList={list => {\n onChange(value => {\n const mapping = new Map((value || []).map(item => [item.id, item]));\n return list.map(({ id }) => {\n return mapping.get(id);\n });\n });\n }}\n >\n {(value || [])\n .map(({ id }) => listMapping.get(id))\n .filter(item => !!item)\n .map((item, index) => {\n const defaultItem = <span className={'list-item-title'}>{item.title}</span>;\n const mapping = new Map((value || []).map(item => [item.id, item]));\n return (\n <List.Item key={item.id} className={classnames(style['columns-control-content-item'], style['is-drag'])}>\n <HolderOutlined className={style['columns-control-content-item-icon']} />\n <div className={style['list-index']}>{index + 1}</div>\n <Flex vertical flex={1}>\n {typeof renderSelectedItem === 'function'\n ? renderSelectedItem(mapping.get(item.id), {\n el: defaultItem,\n target: item,\n fetchApi,\n searchProps,\n setSearchProps,\n onChange: item => {\n return onChange(value => {\n const newValue = (value || []).slice(0);\n const index = newValue.findIndex(({ id }) => id === item.id);\n const currentItem = newValue[index];\n if (index > -1) {\n newValue.splice(index, 1, Object.assign({}, typeof item === 'function' ? item(currentItem) : item));\n }\n return newValue;\n });\n }\n })\n : defaultItem}\n </Flex>\n </List.Item>\n );\n })}\n </ReactSortable>\n </List>\n ) : (\n <Flex className={style['list']} justify=\"center\" align=\"center\">\n <Empty />\n </Flex>\n )}\n </SimpleBar>\n </div>\n </Col>\n <Col span={12}>\n <div className={style['list-outer']}>\n <Flex className={style['list-header']} justify=\"space-between\">\n <div className={style['list-header-title']}>\n {listTitle ||\n (typeof renderListTitle === 'function' &&\n renderListTitle({\n fetchApi,\n searchProps,\n setSearchProps\n })) ||\n formatMessage({ id: 'list' })}\n </div>\n <div>\n {typeof getSearchProps === 'function' && (\n <SearchInput\n size=\"small\"\n placeholder={searchPlaceholder || formatMessage({ id: 'searchPlaceholder' })}\n value={searchProps.searchText}\n onSearch={value => {\n setSearchProps(searchProps => Object.assign({}, searchProps, { searchText: value }));\n }}\n />\n )}\n </div>\n </Flex>\n {children}\n </div>\n </Col>\n </Row>\n );\n }}\n >\n {({ fetchApi, list }) => {\n return (\n <List\n className={classnames(style['list'], style['list-lib'])}\n size=\"small\"\n dataSource={list}\n renderItem={item => {\n const defaultItem = <span className={'list-item-title'}>{item.title}</span>;\n const targetOptions =\n typeof renderOptions === 'function'\n ? renderOptions(item, {\n searchProps,\n setSearchProps,\n fetchApi,\n options\n })\n : options;\n return (\n <List.Item\n key={item.id}\n onClick={() => {\n onChange(value => {\n const newValue = (value || []).slice(0);\n const index = newValue.findIndex(({ id }) => id === item.id);\n if (index > -1) {\n newValue.splice(index, 1);\n } else {\n newValue.push({ id: item.id });\n }\n\n return newValue;\n });\n }}\n >\n <Checkbox checked={(value || []).findIndex(({ id }) => id === item.id) > -1} />\n <Flex vertical flex={1}>\n {typeof renderItem === 'function'\n ? renderItem(item, {\n fetchApi,\n el: defaultItem,\n searchProps,\n setSearchProps\n })\n : defaultItem}\n </Flex>\n {targetOptions && (\n <Flex\n flex={'0 0 50px'}\n onClick={e => {\n e.stopPropagation();\n }}\n >\n <ButtonGroup more={<Button type=\"link\" icon={<MoreOutlined />} />} list={targetOptions} />\n </Flex>\n )}\n </List.Item>\n );\n }}\n />\n );\n }}\n </FetchScrollLoader>\n </Flex>\n );\n});\n\nexport default EntrySelector;\n","const locale = {\n add: '添加',\n selected: '已选择',\n list: '列表',\n searchPlaceholder: '请输入关键字'\n};\n\nexport default locale;\n","const locale = {\n add: 'Add',\n selected: 'Selected',\n list: 'List',\n searchPlaceholder: 'Please input keyword'\n};\n\nexport default locale;\n"],"names":["EntrySelector","createWithIntlProvider","defaultLocale","messages","add","selected","list","searchPlaceholder","namespace","_ref","onAdd","api","options","selectedTitle","listTitle","renderListTitle","renderSelectedItem","renderItem","renderOptions","getSearchProps","maxScrollerHeight","props","_objectWithoutPropertiesLoose","_excluded","value","onChange","useControllerValue","searchProps","setSearchProps","useState","formatMessage","useIntl","ref","useRef","selectedMappingRef","Map","React","Flex","vertical","gap","className","style","concat","Button","shape","size","type","onClick","fetchApi","current","id","FetchScrollLoader","_extends","completeTips","autoHide","render","_ref2","children","data","pageData","totalCount","Object","assign","forEach","item","set","listMapping","currentList","map","_ref3","get","filter","Row","gutter","Col","span","SimpleBar","length","List","ReactSortable","dragClass","ghostClass","forceFallback","animation","delayOnTouchStart","delay","setList","mapping","_ref4","_ref5","index","defaultItem","title","Item","key","classnames","HolderOutlined","flex","el","target","newValue","slice","findIndex","_ref6","currentItem","splice","justify","align","Empty","SearchInput","placeholder","searchText","onSearch","_ref7","dataSource","targetOptions","_ref8","push","Checkbox","checked","_ref9","e","stopPropagation","ButtonGroup","more","icon","MoreOutlined"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_kne_components_entry_selector=self.webpackChunk_kne_components_entry_selector||[]).push([[147,528],{71830:(e,t,l)=>{l.r(t),l.d(t,{default:()=>P});var r=l(94922),n=l.n(r),a=l(17096),s=l(20274),c=l(80816),i=l(63965),o=l(3359),d=l(7717),m=l(71952),p=l(54159),u=l.n(p),h=l(5599),f=l(55199),g=l(20046);l(16577),l(9062);function E(){return E=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var r in l)({}).hasOwnProperty.call(l,r)&&(e[r]=l[r])}return e},E.apply(null,arguments)}var y={"entry-selector":"_TIU4-","list-outer":"_ZXEhy","list-header":"_HAF3g","list-scroll":"_VO7i-",list:"_8w58c","list-lib":"_9m0I0","list-index":"_P8KYX","columns-control-content-list":"_agPfO","columns-control-content-item":"_iFzfk","is-drag":"_uB1q2","columns-control-content-item-icon":"_WHlyH","sortable-drag":"_dxhFH","sortable-ghost":"_7ZIH8"};const x=["onAdd","api","options","selectedTitle","listTitle","renderListTitle","renderSelectedItem","renderItem","renderOptions","getSearchProps","searchPlaceholder","maxScrollerHeight"],P=(0,s.createWithIntlProvider)({defaultLocale:"zh-CN",messages:{"zh-CN":{add:"\u6dfb\u52a0",selected:"\u5df2\u9009\u62e9",list:"\u5217\u8868",searchPlaceholder:"\u8bf7\u8f93\u5165\u5173\u952e\u5b57"},"en-US":{add:"Add",selected:"Selected",list:"List",searchPlaceholder:"Please input keyword"}},namespace:"entry-selector"})(e=>{let{onAdd:t,api:l,options:p,selectedTitle:P,listTitle:_,renderListTitle:v,renderSelectedItem:b,renderItem:N,renderOptions:S,getSearchProps:k,searchPlaceholder:A,maxScrollerHeight:C=800}=e,I=function(e,t){if(null==e)return{};var l={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;l[r]=e[r]}return l}(e,x);const[O,w]=(0,d.A)(I),[F,T]=(0,r.useState)({}),{formatMessage:H}=(0,s.useIntl)(),L=(0,r.useRef)(null),j=(0,r.useRef)(new Map);return n().createElement(f.Flex,{vertical:!0,gap:8,className:y["entry-selector"],style:{"--max-scroller-height":"".concat(C,"px")}},"function"===typeof t&&n().createElement(f.Flex,null,n().createElement(f.Button,{shape:"round",size:"small",type:"primary",onClick:()=>{t({fetchApi:L.current,value:O,onChange:w})}},H({id:"add"}))),n().createElement(m.h,E({},I,{completeTips:null,searchProps:F,getSearchProps:k,api:l,ref:L,className:y["list-scroll"],autoHide:!1,render:e=>{let{fetchApi:t,children:l}=e;const{data:r}=t,{pageData:s,totalCount:i}=Object.assign({},{pageData:[],totalCount:0},r);s.forEach(e=>{j.current.set(e.id,e)});const o=j.current,d=(O||[]).map(e=>{let{id:t}=e;return o.get(t)}).filter(e=>!!e);return n().createElement(f.Row,{gutter:[12,12]},n().createElement(f.Col,{span:12},n().createElement("div",{className:y["list-outer"]},i>0&&n().createElement("div",{className:y["list-header"]},P||H({id:"selected"})),n().createElement(g.A,{className:y["list-scroll"],autoHide:!1},O&&O.length>0?n().createElement(f.List,{className:y.list,size:"small"},n().createElement(a.ReactSortable,{filter:".ignore-elements",dragClass:y["sortable-drag"],ghostClass:y["sortable-ghost"],forceFallback:!0,animation:300,delayOnTouchStart:!0,delay:2,list:d,setList:e=>{w(t=>{const l=new Map((t||[]).map(e=>[e.id,e]));return e.map(e=>{let{id:t}=e;return l.get(t)})})}},(O||[]).map(e=>{let{id:t}=e;return o.get(t)}).filter(e=>!!e).map((e,l)=>{const r=n().createElement("span",{className:"list-item-title"},e.title),a=new Map((O||[]).map(e=>[e.id,e]));return n().createElement(f.List.Item,{key:e.id,className:u()(y["columns-control-content-item"],y["is-drag"])},n().createElement(c.A,{className:y["columns-control-content-item-icon"]}),n().createElement("div",{className:y["list-index"]},l+1),n().createElement(f.Flex,{vertical:!0,flex:1},"function"===typeof b?b(a.get(e.id),{el:r,target:e,fetchApi:t,searchProps:F,setSearchProps:T,onChange:e=>w(t=>{const l=(t||[]).slice(0),r=l.findIndex(t=>{let{id:l}=t;return l===e.id}),n=l[r];return r>-1&&l.splice(r,1,Object.assign({},"function"===typeof e?e(n):e)),l})}):r))}))):n().createElement(f.Flex,{className:y.list,justify:"center",align:"center"},n().createElement(f.Empty,null))))),n().createElement(f.Col,{span:12},n().createElement("div",{className:y["list-outer"]},n().createElement(f.Flex,{className:y["list-header"],justify:"space-between"},n().createElement("div",{className:y["list-header-title"]},_||"function"===typeof v&&v({fetchApi:t,searchProps:F,setSearchProps:T})||H({id:"list"})),n().createElement("div",null,"function"===typeof k&&n().createElement(h.A,{size:"small",placeholder:A||H({id:"searchPlaceholder"}),value:F.searchText,onSearch:e=>{T(t=>Object.assign({},t,{searchText:e}))}}))),l)))}}),e=>{let{fetchApi:t,list:l}=e;return n().createElement(f.List,{className:u()(y.list,y["list-lib"]),size:"small",dataSource:l,renderItem:e=>{const l=n().createElement("span",{className:"list-item-title"},e.title),r="function"===typeof S?S(e,{searchProps:F,setSearchProps:T,fetchApi:t,options:p}):p;return n().createElement(f.List.Item,{key:e.id,onClick:()=>{w(t=>{const l=(t||[]).slice(0),r=l.findIndex(t=>{let{id:l}=t;return l===e.id});return r>-1?l.splice(r,1):l.push({id:e.id}),l})}},n().createElement(f.Checkbox,{checked:(O||[]).findIndex(t=>{let{id:l}=t;return l===e.id})>-1}),n().createElement(f.Flex,{vertical:!0,flex:1},"function"===typeof N?N(e,{fetchApi:t,el:l,searchProps:F,setSearchProps:T}):l),r&&n().createElement(f.Flex,{flex:"0 0 50px",onClick:e=>{e.stopPropagation()}},n().createElement(o.Ay,{more:n().createElement(f.Button,{type:"link",icon:n().createElement(i.A,null)}),list:r})))}})}))})}}]);
|
|
2
|
-
//# sourceMappingURL=528.eeca4ea0.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/js/528.eeca4ea0.chunk.js","mappings":"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","sources":["../../src/index.js","../../src/locale/zh-CN.js","../../src/locale/en-US.js"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport zhCn from './locale/zh-CN';\nimport enUS from './locale/en-US';\nimport { ReactSortable } from 'react-sortablejs';\nimport { createWithIntlProvider, useIntl } from '@kne/react-intl';\nimport { MoreOutlined, HolderOutlined } from '@ant-design/icons';\nimport ButtonGroup from '@kne/button-group';\nimport useControllerValue from '@kne/use-control-value';\nimport { FetchScrollLoader } from '@kne/scroll-loader';\nimport classnames from 'classnames';\nimport SearchInput from '@kne/search-input';\nimport { Flex, Button, Row, Col, List, Empty, Checkbox } from 'antd';\nimport SimpleBar from 'simplebar-react';\nimport 'simplebar/dist/simplebar.min.css';\nimport '@kne/button-group/dist/index.css';\nimport style from './style.module.scss';\n\nconst EntrySelector = createWithIntlProvider({\n defaultLocale: 'zh-CN',\n messages: {\n 'zh-CN': zhCn,\n 'en-US': enUS\n },\n namespace: 'entry-selector'\n})(({ onAdd, api, options, selectedTitle, listTitle, renderListTitle, renderSelectedItem, renderItem, renderOptions, getSearchProps, searchPlaceholder, maxScrollerHeight = 800, ...props }) => {\n const [value, onChange] = useControllerValue(props);\n const [searchProps, setSearchProps] = useState({});\n const { formatMessage } = useIntl();\n const ref = useRef(null);\n const selectedMappingRef = useRef(new Map());\n return (\n <Flex\n vertical\n gap={8}\n className={style['entry-selector']}\n style={{\n '--max-scroller-height': `${maxScrollerHeight}px`\n }}\n >\n {typeof onAdd === 'function' && (\n <Flex>\n <Button\n shape=\"round\"\n size=\"small\"\n type=\"primary\"\n onClick={() => {\n onAdd({ fetchApi: ref.current, value, onChange });\n }}\n >\n {formatMessage({ id: 'add' })}\n </Button>\n </Flex>\n )}\n <FetchScrollLoader\n {...props}\n completeTips={null}\n searchProps={searchProps}\n getSearchProps={getSearchProps}\n api={api}\n ref={ref}\n className={style['list-scroll']}\n autoHide={false}\n render={({ fetchApi, children }) => {\n const { data } = fetchApi;\n const { pageData, totalCount } = Object.assign(\n {},\n {\n pageData: [],\n totalCount: 0\n },\n data\n );\n pageData.forEach(item => {\n selectedMappingRef.current.set(item.id, item);\n });\n const listMapping = selectedMappingRef.current;\n const currentList = (value || []).map(({ id }) => listMapping.get(id)).filter(item => !!item);\n return (\n <Row gutter={[12, 12]}>\n <Col span={12}>\n <div className={style['list-outer']}>\n {totalCount > 0 && <div className={style['list-header']}>{selectedTitle || formatMessage({ id: 'selected' })}</div>}\n <SimpleBar className={style['list-scroll']} autoHide={false}>\n {value && value.length > 0 ? (\n <List className={style['list']} size=\"small\">\n <ReactSortable\n filter=\".ignore-elements\"\n dragClass={style['sortable-drag']}\n ghostClass={style['sortable-ghost']}\n forceFallback\n animation={300}\n delayOnTouchStart\n delay={2}\n list={currentList}\n setList={list => {\n onChange(value => {\n const mapping = new Map((value || []).map(item => [item.id, item]));\n return list.map(({ id }) => {\n return mapping.get(id);\n });\n });\n }}\n >\n {(value || [])\n .map(({ id }) => listMapping.get(id))\n .filter(item => !!item)\n .map((item, index) => {\n const defaultItem = <span className={'list-item-title'}>{item.title}</span>;\n const mapping = new Map((value || []).map(item => [item.id, item]));\n return (\n <List.Item key={item.id} className={classnames(style['columns-control-content-item'], style['is-drag'])}>\n <HolderOutlined className={style['columns-control-content-item-icon']} />\n <div className={style['list-index']}>{index + 1}</div>\n <Flex vertical flex={1}>\n {typeof renderSelectedItem === 'function'\n ? renderSelectedItem(mapping.get(item.id), {\n el: defaultItem,\n target: item,\n fetchApi,\n searchProps,\n setSearchProps,\n onChange: item => {\n return onChange(value => {\n const newValue = (value || []).slice(0);\n const index = newValue.findIndex(({ id }) => id === item.id);\n const currentItem = newValue[index];\n if (index > -1) {\n newValue.splice(index, 1, Object.assign({}, typeof item === 'function' ? item(currentItem) : item));\n }\n return newValue;\n });\n }\n })\n : defaultItem}\n </Flex>\n </List.Item>\n );\n })}\n </ReactSortable>\n </List>\n ) : (\n <Flex className={style['list']} justify=\"center\" align=\"center\">\n <Empty />\n </Flex>\n )}\n </SimpleBar>\n </div>\n </Col>\n <Col span={12}>\n <div className={style['list-outer']}>\n <Flex className={style['list-header']} justify=\"space-between\">\n <div className={style['list-header-title']}>\n {listTitle ||\n (typeof renderListTitle === 'function' &&\n renderListTitle({\n fetchApi,\n searchProps,\n setSearchProps\n })) ||\n formatMessage({ id: 'list' })}\n </div>\n <div>\n {typeof getSearchProps === 'function' && (\n <SearchInput\n size=\"small\"\n placeholder={searchPlaceholder || formatMessage({ id: 'searchPlaceholder' })}\n value={searchProps.searchText}\n onSearch={value => {\n setSearchProps(searchProps => Object.assign({}, searchProps, { searchText: value }));\n }}\n />\n )}\n </div>\n </Flex>\n {children}\n </div>\n </Col>\n </Row>\n );\n }}\n >\n {({ fetchApi, list }) => {\n return (\n <List\n className={classnames(style['list'], style['list-lib'])}\n size=\"small\"\n dataSource={list}\n renderItem={item => {\n const defaultItem = <span className={'list-item-title'}>{item.title}</span>;\n const targetOptions =\n typeof renderOptions === 'function'\n ? renderOptions(item, {\n searchProps,\n setSearchProps,\n fetchApi,\n options\n })\n : options;\n return (\n <List.Item\n key={item.id}\n onClick={() => {\n onChange(value => {\n const newValue = (value || []).slice(0);\n const index = newValue.findIndex(({ id }) => id === item.id);\n if (index > -1) {\n newValue.splice(index, 1);\n } else {\n newValue.push({ id: item.id });\n }\n\n return newValue;\n });\n }}\n >\n <Checkbox checked={(value || []).findIndex(({ id }) => id === item.id) > -1} />\n <Flex vertical flex={1}>\n {typeof renderItem === 'function'\n ? renderItem(item, {\n fetchApi,\n el: defaultItem,\n searchProps,\n setSearchProps\n })\n : defaultItem}\n </Flex>\n {targetOptions && (\n <Flex\n flex={'0 0 50px'}\n onClick={e => {\n e.stopPropagation();\n }}\n >\n <ButtonGroup more={<Button type=\"link\" icon={<MoreOutlined />} />} list={targetOptions} />\n </Flex>\n )}\n </List.Item>\n );\n }}\n />\n );\n }}\n </FetchScrollLoader>\n </Flex>\n );\n});\n\nexport default EntrySelector;\n","const locale = {\n add: '添加',\n selected: '已选择',\n list: '列表',\n searchPlaceholder: '请输入关键字'\n};\n\nexport default locale;\n","const locale = {\n add: 'Add',\n selected: 'Selected',\n list: 'List',\n searchPlaceholder: 'Please input keyword'\n};\n\nexport default locale;\n"],"names":["EntrySelector","createWithIntlProvider","defaultLocale","messages","add","selected","list","searchPlaceholder","namespace","_ref","onAdd","api","options","selectedTitle","listTitle","renderListTitle","renderSelectedItem","renderItem","renderOptions","getSearchProps","maxScrollerHeight","props","_objectWithoutPropertiesLoose","_excluded","value","onChange","useControllerValue","searchProps","setSearchProps","useState","formatMessage","useIntl","ref","useRef","selectedMappingRef","Map","React","Flex","vertical","gap","className","style","concat","Button","shape","size","type","onClick","fetchApi","current","id","FetchScrollLoader","_extends","completeTips","autoHide","render","_ref2","children","data","pageData","totalCount","Object","assign","forEach","item","set","listMapping","currentList","map","_ref3","get","filter","Row","gutter","Col","span","SimpleBar","length","List","ReactSortable","dragClass","ghostClass","forceFallback","animation","delayOnTouchStart","delay","setList","mapping","_ref4","_ref5","index","defaultItem","title","Item","key","classnames","HolderOutlined","flex","el","target","newValue","slice","findIndex","_ref6","currentItem","splice","justify","align","Empty","SearchInput","placeholder","searchText","onSearch","_ref7","dataSource","targetOptions","_ref8","push","Checkbox","checked","_ref9","e","stopPropagation","ButtonGroup","more","icon","MoreOutlined"],"sourceRoot":""}
|