@vtx/components 3.1.32 → 3.1.34

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.
@@ -61,7 +61,6 @@
61
61
  background: #f6f6f6 !important;
62
62
  }
63
63
  .vtx-datagrid .ant-table-tbody > tr.ant-table-row-selected > td {
64
- background: transparent !important;
65
64
  border-color: #f0f0f0 !important;
66
65
  }
67
66
  .vtx-datagrid .ant-table-thead > tr > th {
@@ -96,7 +96,7 @@
96
96
  // }
97
97
  // }
98
98
  .ant-table-tbody > tr.ant-table-row-selected > td {
99
- background: transparent !important;
99
+ // background: transparent !important;
100
100
  border-color: #f0f0f0 !important;
101
101
  }
102
102
 
@@ -68,8 +68,6 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
68
68
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
69
69
 
70
70
  var VtxSelect = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
71
- var _elRef$current;
72
-
73
71
  var _useState = (0, _react.useState)(0),
74
72
  _useState2 = _slicedToArray(_useState, 2),
75
73
  popWidth = _useState2[0],
@@ -95,9 +93,23 @@ var VtxSelect = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
95
93
  selectAll = _props$selectAll === void 0 ? true : _props$selectAll,
96
94
  _props$defaultBindBod = props.defaultBindBodyToPopupContainer,
97
95
  defaultBindBodyToPopupContainer = _props$defaultBindBod === void 0 ? true : _props$defaultBindBod;
98
- (0, _react.useLayoutEffect)(function () {
99
- mode === 'multiple' && setPopWidth(elRef.current.clientWidth);
100
- }, [(_elRef$current = elRef.current) === null || _elRef$current === void 0 ? void 0 : _elRef$current.clientWidth]);
96
+ (0, _react.useEffect)(function () {
97
+ if (mode === 'multiple') {
98
+ var timer = setInterval(function () {
99
+ var _elRef$current;
100
+
101
+ var _width = (_elRef$current = elRef.current) === null || _elRef$current === void 0 ? void 0 : _elRef$current.clientWidth;
102
+
103
+ if (_width > 0) {
104
+ setPopWidth(_width);
105
+ clearInterval(timer);
106
+ }
107
+ }, 1000);
108
+ return function () {
109
+ return clearInterval(timer);
110
+ };
111
+ }
112
+ }, []);
101
113
  var newChildren = props.children ? Array.isArray(props.children) ? props.children : [props.children] : [];
102
114
 
103
115
  var getContent = function getContent() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["VtxSelect","forwardRef","props","ref","useState","popWidth","setPopWidth","elRef","useRef","elId","Date","now","value","mode","size","onChange","maxTagCount","maxTagTextLength","maxTagPlaceholder","showAll","selectStyle","selectAll","defaultBindBodyToPopupContainer","useLayoutEffect","current","clientWidth","newChildren","children","Array","isArray","getContent","child","forEach","item","key","length","map","index","name","getChildren","margin","e","preventDefault","valueClone","splice","options","filter","ite","includes","substring","Empty","PRESENTED_IMAGE_SIMPLE","newProps","showSearch","optionFilterProp","placeholder","allowClear","dropdownRender","menu","valueLength","target","checked","keys","classnames","style","paddingRight","triggerNode","document","body","width","isObject","Option","Select","OptGroup","propTypes","PropTypes","oneOfType","string","array","number","object","func","bool","node"],"sources":["vtx-select/index.jsx"],"sourcesContent":["import React, { useState, useLayoutEffect, useRef, forwardRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport Select from 'antd/lib/select';\r\nimport Tag from 'antd/lib/tag';\r\nimport Button from 'antd/lib/button';\r\nimport Empty from 'antd/lib/empty';\r\nimport Popover from 'antd/lib/popover';\r\nimport Tooltip from 'antd/lib/tooltip';\r\nimport Checkbox from 'antd/lib/checkbox';\r\nimport Divider from 'antd/lib/divider';\r\nimport MoreOutlined from '@ant-design/icons/MoreOutlined';\r\nimport isObject from '../_util/isObject';\r\n\r\nconst VtxSelect = forwardRef((props, ref) => {\r\n const [popWidth, setPopWidth] = useState(0);\r\n const elRef = useRef();\r\n const elId = useRef(`vtx-select-${Date.now()}`);\r\n\r\n const {\r\n value,\r\n mode,\r\n size = 'default', //同步button大小\r\n onChange,\r\n maxTagCount = 2,\r\n maxTagTextLength = 5,\r\n maxTagPlaceholder = '...',\r\n showAll = true, //是否显示全部选项\r\n selectStyle,\r\n selectAll = true,\r\n defaultBindBodyToPopupContainer = true,\r\n } = props;\r\n\r\n useLayoutEffect(() => {\r\n mode === 'multiple' && setPopWidth(elRef.current.clientWidth);\r\n }, [elRef.current?.clientWidth]);\r\n\r\n const newChildren = props.children\r\n ? Array.isArray(props.children)\r\n ? props.children\r\n : [props.children]\r\n : [];\r\n\r\n const getContent = () => {\r\n const child = {};\r\n newChildren.forEach(item => {\r\n child[item.key] = item?.props?.children;\r\n });\r\n return (\r\n <div className=\"vtx-all-list\">\r\n {Array.isArray(value) && value.length ? (\r\n value.map((item, index) => {\r\n const name = getChildren(child, item);\r\n return (\r\n <Tag\r\n style={{ margin: '4px' }}\r\n key={index}\r\n closable\r\n onClose={e => {\r\n e.preventDefault();\r\n const valueClone = [...value];\r\n valueClone.splice(index, 1);\r\n const options = newChildren.filter(ite =>\r\n valueClone.includes(ite.props.value),\r\n );\r\n onChange(valueClone, options);\r\n }}\r\n >\r\n <Tooltip title={name}>\r\n {name.length > maxTagTextLength\r\n ? `${name.substring(0, maxTagTextLength)}...`\r\n : name}\r\n </Tooltip>\r\n </Tag>\r\n );\r\n })\r\n ) : (\r\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />\r\n )}\r\n </div>\r\n );\r\n };\r\n\r\n let newProps = {\r\n showSearch: true,\r\n optionFilterProp: 'children',\r\n placeholder: '请选择',\r\n allowClear: true,\r\n ...props,\r\n };\r\n\r\n if (mode === 'multiple') {\r\n newProps = {\r\n ...newProps,\r\n maxTagCount: maxTagCount,\r\n maxTagTextLength: maxTagTextLength,\r\n maxTagPlaceholder: maxTagPlaceholder,\r\n };\r\n if (selectAll) {\r\n newProps = {\r\n ...newProps,\r\n dropdownRender: menu => {\r\n const valueLength = Array.isArray(value) && value.length ? value.length : 0;\r\n return (\r\n <div>\r\n <div\r\n className=\"vtx-multi-select-all\"\r\n onMouseDown={e => e.preventDefault()}\r\n >\r\n <Checkbox\r\n indeterminate={valueLength && valueLength < newChildren.length}\r\n checked={valueLength && valueLength === newChildren.length}\r\n onChange={e => {\r\n if (e.target.checked) {\r\n const keys = newChildren.map(item => item.key);\r\n onChange && onChange(keys, newChildren);\r\n } else {\r\n onChange && onChange([], []);\r\n }\r\n }}\r\n >\r\n 全选\r\n </Checkbox>\r\n </div>\r\n <Divider style={{ margin: '4px 0' }} />\r\n {menu}\r\n </div>\r\n );\r\n },\r\n };\r\n }\r\n }\r\n\r\n return (\r\n <div\r\n className={classnames({\r\n 'vtx-select': mode !== 'multiple',\r\n 'vtx-multi-select': mode == 'multiple' || mode == 'tags',\r\n })}\r\n id={elId.current}\r\n ref={elRef}\r\n style={{\r\n ...props.style,\r\n paddingRight: (mode == 'multiple' || mode == 'tags') && showAll ? 32 : 0,\r\n }}\r\n >\r\n <Select\r\n ref={ref}\r\n getPopupContainer={triggerNode => {\r\n return defaultBindBodyToPopupContainer ? document.body : triggerNode;\r\n }}\r\n {...newProps}\r\n style={{ width: '100%', ...selectStyle }}\r\n >\r\n {props.children}\r\n </Select>\r\n {(mode == 'multiple' || mode == 'tags') && showAll ? (\r\n <Popover\r\n content={getContent()}\r\n placement=\"bottomRight\"\r\n trigger=\"click\"\r\n overlayStyle={{ width: popWidth }}\r\n >\r\n <Button className=\"vtx-select-count\" icon={<MoreOutlined />} size={size} />\r\n </Popover>\r\n ) : null}\r\n </div>\r\n );\r\n});\r\n\r\nfunction getChildren(child = {}, value) {\r\n const key = isObject(value) ? value.key : value;\r\n return child[key] || '';\r\n}\r\n\r\nVtxSelect.Option = Select.Option;\r\nVtxSelect.OptGroup = Select.OptGroup;\r\n\r\nVtxSelect.propTypes = {\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.array,\r\n PropTypes.number,\r\n PropTypes.object,\r\n ]),\r\n mode: PropTypes.string,\r\n size: PropTypes.string,\r\n style: PropTypes.object,\r\n selectStyle: PropTypes.object,\r\n onChange: PropTypes.func,\r\n defaultBindBodyToPopupContainer: PropTypes.bool,\r\n maxTagCount: PropTypes.number,\r\n maxTagTextLength: PropTypes.number,\r\n maxTagPlaceholder: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\r\n showAll: PropTypes.bool,\r\n children: PropTypes.node,\r\n selectAll: PropTypes.bool,\r\n};\r\n\r\nexport default VtxSelect;\r\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,SAAS,gBAAG,IAAAC,iBAAA,EAAW,UAACC,KAAD,EAAQC,GAAR,EAAgB;EAAA;;EACzC,gBAAgC,IAAAC,eAAA,EAAS,CAAT,CAAhC;EAAA;EAAA,IAAOC,QAAP;EAAA,IAAiBC,WAAjB;;EACA,IAAMC,KAAK,GAAG,IAAAC,aAAA,GAAd;EACA,IAAMC,IAAI,GAAG,IAAAD,aAAA,uBAAqBE,IAAI,CAACC,GAAL,EAArB,EAAb;EAEA,IACIC,KADJ,GAYIV,KAZJ,CACIU,KADJ;EAAA,IAEIC,IAFJ,GAYIX,KAZJ,CAEIW,IAFJ;EAAA,kBAYIX,KAZJ,CAGIY,IAHJ;EAAA,IAGIA,IAHJ,4BAGW,SAHX;EAAA,IAIIC,SAJJ,GAYIb,KAZJ,CAIIa,QAJJ;EAAA,yBAYIb,KAZJ,CAKIc,WALJ;EAAA,IAKIA,WALJ,mCAKkB,CALlB;EAAA,4BAYId,KAZJ,CAMIe,gBANJ;EAAA,IAMIA,gBANJ,sCAMuB,CANvB;EAAA,4BAYIf,KAZJ,CAOIgB,iBAPJ;EAAA,IAOIA,iBAPJ,sCAOwB,KAPxB;EAAA,qBAYIhB,KAZJ,CAQIiB,OARJ;EAAA,IAQIA,OARJ,+BAQc,IARd;EAAA,IASIC,WATJ,GAYIlB,KAZJ,CASIkB,WATJ;EAAA,uBAYIlB,KAZJ,CAUImB,SAVJ;EAAA,IAUIA,SAVJ,iCAUgB,IAVhB;EAAA,4BAYInB,KAZJ,CAWIoB,+BAXJ;EAAA,IAWIA,+BAXJ,sCAWsC,IAXtC;EAcA,IAAAC,sBAAA,EAAgB,YAAM;IAClBV,IAAI,KAAK,UAAT,IAAuBP,WAAW,CAACC,KAAK,CAACiB,OAAN,CAAcC,WAAf,CAAlC;EACH,CAFD,EAEG,mBAAClB,KAAK,CAACiB,OAAP,mDAAC,eAAeC,WAAhB,CAFH;EAIA,IAAMC,WAAW,GAAGxB,KAAK,CAACyB,QAAN,GACdC,KAAK,CAACC,OAAN,CAAc3B,KAAK,CAACyB,QAApB,IACIzB,KAAK,CAACyB,QADV,GAEI,CAACzB,KAAK,CAACyB,QAAP,CAHU,GAId,EAJN;;EAMA,IAAMG,UAAU,GAAG,SAAbA,UAAa,GAAM;IACrB,IAAMC,KAAK,GAAG,EAAd;IACAL,WAAW,CAACM,OAAZ,CAAoB,UAAAC,IAAI,EAAI;MAAA;;MACxBF,KAAK,CAACE,IAAI,CAACC,GAAN,CAAL,GAAkBD,IAAlB,aAAkBA,IAAlB,sCAAkBA,IAAI,CAAE/B,KAAxB,gDAAkB,YAAayB,QAA/B;IACH,CAFD;IAGA,oBACI;MAAK,SAAS,EAAC;IAAf,GACKC,KAAK,CAACC,OAAN,CAAcjB,KAAd,KAAwBA,KAAK,CAACuB,MAA9B,GACGvB,KAAK,CAACwB,GAAN,CAAU,UAACH,IAAD,EAAOI,KAAP,EAAiB;MACvB,IAAMC,IAAI,GAAGC,WAAW,CAACR,KAAD,EAAQE,IAAR,CAAxB;MACA,oBACI,gCAAC,eAAD;QACI,KAAK,EAAE;UAAEO,MAAM,EAAE;QAAV,CADX;QAEI,GAAG,EAAEH,KAFT;QAGI,QAAQ,MAHZ;QAII,OAAO,EAAE,iBAAAI,CAAC,EAAI;UACVA,CAAC,CAACC,cAAF;;UACA,IAAMC,UAAU,sBAAO/B,KAAP,CAAhB;;UACA+B,UAAU,CAACC,MAAX,CAAkBP,KAAlB,EAAyB,CAAzB;UACA,IAAMQ,OAAO,GAAGnB,WAAW,CAACoB,MAAZ,CAAmB,UAAAC,GAAG;YAAA,OAClCJ,UAAU,CAACK,QAAX,CAAoBD,GAAG,CAAC7C,KAAJ,CAAUU,KAA9B,CADkC;UAAA,CAAtB,CAAhB;;UAGAG,SAAQ,CAAC4B,UAAD,EAAaE,OAAb,CAAR;QACH;MAZL,gBAcI,gCAAC,mBAAD;QAAS,KAAK,EAAEP;MAAhB,GACKA,IAAI,CAACH,MAAL,GAAclB,gBAAd,aACQqB,IAAI,CAACW,SAAL,CAAe,CAAf,EAAkBhC,gBAAlB,CADR,WAEKqB,IAHV,CAdJ,CADJ;IAsBH,CAxBD,CADH,gBA2BG,gCAAC,iBAAD;MAAO,KAAK,EAAEY,iBAAA,CAAMC;IAApB,EA5BR,CADJ;EAiCH,CAtCD;;EAwCA,IAAIC,QAAQ;IACRC,UAAU,EAAE,IADJ;IAERC,gBAAgB,EAAE,UAFV;IAGRC,WAAW,EAAE,KAHL;IAIRC,UAAU,EAAE;EAJJ,GAKLtD,KALK,CAAZ;;EAQA,IAAIW,IAAI,KAAK,UAAb,EAAyB;IACrBuC,QAAQ,mCACDA,QADC;MAEJpC,WAAW,EAAEA,WAFT;MAGJC,gBAAgB,EAAEA,gBAHd;MAIJC,iBAAiB,EAAEA;IAJf,EAAR;;IAMA,IAAIG,SAAJ,EAAe;MACX+B,QAAQ,mCACDA,QADC;QAEJK,cAAc,EAAE,wBAAAC,IAAI,EAAI;UACpB,IAAMC,WAAW,GAAG/B,KAAK,CAACC,OAAN,CAAcjB,KAAd,KAAwBA,KAAK,CAACuB,MAA9B,GAAuCvB,KAAK,CAACuB,MAA7C,GAAsD,CAA1E;UACA,oBACI,0DACI;YACI,SAAS,EAAC,sBADd;YAEI,WAAW,EAAE,qBAAAM,CAAC;cAAA,OAAIA,CAAC,CAACC,cAAF,EAAJ;YAAA;UAFlB,gBAII,gCAAC,oBAAD;YACI,aAAa,EAAEiB,WAAW,IAAIA,WAAW,GAAGjC,WAAW,CAACS,MAD5D;YAEI,OAAO,EAAEwB,WAAW,IAAIA,WAAW,KAAKjC,WAAW,CAACS,MAFxD;YAGI,QAAQ,EAAE,kBAAAM,CAAC,EAAI;cACX,IAAIA,CAAC,CAACmB,MAAF,CAASC,OAAb,EAAsB;gBAClB,IAAMC,IAAI,GAAGpC,WAAW,CAACU,GAAZ,CAAgB,UAAAH,IAAI;kBAAA,OAAIA,IAAI,CAACC,GAAT;gBAAA,CAApB,CAAb;gBACAnB,SAAQ,IAAIA,SAAQ,CAAC+C,IAAD,EAAOpC,WAAP,CAApB;cACH,CAHD,MAGO;gBACHX,SAAQ,IAAIA,SAAQ,CAAC,EAAD,EAAK,EAAL,CAApB;cACH;YACJ;UAVL,kBAJJ,CADJ,eAoBI,gCAAC,mBAAD;YAAS,KAAK,EAAE;cAAEyB,MAAM,EAAE;YAAV;UAAhB,EApBJ,EAqBKkB,IArBL,CADJ;QAyBH;MA7BG,EAAR;IA+BH;EACJ;;EAED,oBACI;IACI,SAAS,EAAE,IAAAK,sBAAA,EAAW;MAClB,cAAclD,IAAI,KAAK,UADL;MAElB,oBAAoBA,IAAI,IAAI,UAAR,IAAsBA,IAAI,IAAI;IAFhC,CAAX,CADf;IAKI,EAAE,EAAEJ,IAAI,CAACe,OALb;IAMI,GAAG,EAAEjB,KANT;IAOI,KAAK,kCACEL,KAAK,CAAC8D,KADR;MAEDC,YAAY,EAAE,CAACpD,IAAI,IAAI,UAAR,IAAsBA,IAAI,IAAI,MAA/B,KAA0CM,OAA1C,GAAoD,EAApD,GAAyD;IAFtE;EAPT,gBAYI,gCAAC,kBAAD;IACI,GAAG,EAAEhB,GADT;IAEI,iBAAiB,EAAE,2BAAA+D,WAAW,EAAI;MAC9B,OAAO5C,+BAA+B,GAAG6C,QAAQ,CAACC,IAAZ,GAAmBF,WAAzD;IACH;EAJL,GAKQd,QALR;IAMI,KAAK;MAAIiB,KAAK,EAAE;IAAX,GAAsBjD,WAAtB;EANT,IAQKlB,KAAK,CAACyB,QARX,CAZJ,EAsBK,CAACd,IAAI,IAAI,UAAR,IAAsBA,IAAI,IAAI,MAA/B,KAA0CM,OAA1C,gBACG,gCAAC,mBAAD;IACI,OAAO,EAAEW,UAAU,EADvB;IAEI,SAAS,EAAC,aAFd;IAGI,OAAO,EAAC,OAHZ;IAII,YAAY,EAAE;MAAEuC,KAAK,EAAEhE;IAAT;EAJlB,gBAMI,gCAAC,kBAAD;IAAQ,SAAS,EAAC,kBAAlB;IAAqC,IAAI,eAAE,gCAAC,wBAAD,OAA3C;IAA6D,IAAI,EAAES;EAAnE,EANJ,CADH,GASG,IA/BR,CADJ;AAmCH,CA1JiB,CAAlB;;AA4JA,SAASyB,WAAT,GAAwC;EAAA,IAAnBR,KAAmB,uEAAX,EAAW;EAAA,IAAPnB,KAAO;EACpC,IAAMsB,GAAG,GAAG,IAAAoC,oBAAA,EAAS1D,KAAT,IAAkBA,KAAK,CAACsB,GAAxB,GAA8BtB,KAA1C;EACA,OAAOmB,KAAK,CAACG,GAAD,CAAL,IAAc,EAArB;AACH;;AAEDlC,SAAS,CAACuE,MAAV,GAAmBC,kBAAA,CAAOD,MAA1B;AACAvE,SAAS,CAACyE,QAAV,GAAqBD,kBAAA,CAAOC,QAA5B;AAEAzE,SAAS,CAAC0E,SAAV,GAAsB;EAClB9D,KAAK,EAAE+D,qBAAA,CAAUC,SAAV,CAAoB,CACvBD,qBAAA,CAAUE,MADa,EAEvBF,qBAAA,CAAUG,KAFa,EAGvBH,qBAAA,CAAUI,MAHa,EAIvBJ,qBAAA,CAAUK,MAJa,CAApB,CADW;EAOlBnE,IAAI,EAAE8D,qBAAA,CAAUE,MAPE;EAQlB/D,IAAI,EAAE6D,qBAAA,CAAUE,MARE;EASlBb,KAAK,EAAEW,qBAAA,CAAUK,MATC;EAUlB5D,WAAW,EAAEuD,qBAAA,CAAUK,MAVL;EAWlBjE,QAAQ,EAAE4D,qBAAA,CAAUM,IAXF;EAYlB3D,+BAA+B,EAAEqD,qBAAA,CAAUO,IAZzB;EAalBlE,WAAW,EAAE2D,qBAAA,CAAUI,MAbL;EAclB9D,gBAAgB,EAAE0D,qBAAA,CAAUI,MAdV;EAelB7D,iBAAiB,EAAEyD,qBAAA,CAAUC,SAAV,CAAoB,CAACD,qBAAA,CAAUM,IAAX,EAAiBN,qBAAA,CAAUQ,IAA3B,CAApB,CAfD;EAgBlBhE,OAAO,EAAEwD,qBAAA,CAAUO,IAhBD;EAiBlBvD,QAAQ,EAAEgD,qBAAA,CAAUQ,IAjBF;EAkBlB9D,SAAS,EAAEsD,qBAAA,CAAUO;AAlBH,CAAtB;eAqBelF,S"}
1
+ {"version":3,"file":"index.js","names":["VtxSelect","forwardRef","props","ref","useState","popWidth","setPopWidth","elRef","useRef","elId","Date","now","value","mode","size","onChange","maxTagCount","maxTagTextLength","maxTagPlaceholder","showAll","selectStyle","selectAll","defaultBindBodyToPopupContainer","useEffect","timer","setInterval","_width","current","clientWidth","clearInterval","newChildren","children","Array","isArray","getContent","child","forEach","item","key","length","map","index","name","getChildren","margin","e","preventDefault","valueClone","splice","options","filter","ite","includes","substring","Empty","PRESENTED_IMAGE_SIMPLE","newProps","showSearch","optionFilterProp","placeholder","allowClear","dropdownRender","menu","valueLength","target","checked","keys","classnames","style","paddingRight","triggerNode","document","body","width","isObject","Option","Select","OptGroup","propTypes","PropTypes","oneOfType","string","array","number","object","func","bool","node"],"sources":["vtx-select/index.jsx"],"sourcesContent":["import React, { useState, useEffect, useRef, forwardRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport Select from 'antd/lib/select';\r\nimport Tag from 'antd/lib/tag';\r\nimport Button from 'antd/lib/button';\r\nimport Empty from 'antd/lib/empty';\r\nimport Popover from 'antd/lib/popover';\r\nimport Tooltip from 'antd/lib/tooltip';\r\nimport Checkbox from 'antd/lib/checkbox';\r\nimport Divider from 'antd/lib/divider';\r\nimport MoreOutlined from '@ant-design/icons/MoreOutlined';\r\nimport isObject from '../_util/isObject';\r\n\r\nconst VtxSelect = forwardRef((props, ref) => {\r\n const [popWidth, setPopWidth] = useState(0);\r\n const elRef = useRef();\r\n const elId = useRef(`vtx-select-${Date.now()}`);\r\n\r\n const {\r\n value,\r\n mode,\r\n size = 'default', //同步button大小\r\n onChange,\r\n maxTagCount = 2,\r\n maxTagTextLength = 5,\r\n maxTagPlaceholder = '...',\r\n showAll = true, //是否显示全部选项\r\n selectStyle,\r\n selectAll = true,\r\n defaultBindBodyToPopupContainer = true,\r\n } = props;\r\n\r\n useEffect(() => {\r\n if(mode === 'multiple') {\r\n const timer = setInterval(() => {\r\n const _width = elRef.current?.clientWidth;\r\n if(_width > 0) {\r\n setPopWidth(_width);\r\n clearInterval(timer);\r\n }\r\n }, 1000)\r\n return () => clearInterval(timer);\r\n }\r\n }, []);\r\n\r\n const newChildren = props.children\r\n ? Array.isArray(props.children)\r\n ? props.children\r\n : [props.children]\r\n : [];\r\n\r\n const getContent = () => {\r\n const child = {};\r\n newChildren.forEach(item => {\r\n child[item.key] = item?.props?.children;\r\n });\r\n return (\r\n <div className=\"vtx-all-list\">\r\n {Array.isArray(value) && value.length ? (\r\n value.map((item, index) => {\r\n const name = getChildren(child, item);\r\n return (\r\n <Tag\r\n style={{ margin: '4px' }}\r\n key={index}\r\n closable\r\n onClose={e => {\r\n e.preventDefault();\r\n const valueClone = [...value];\r\n valueClone.splice(index, 1);\r\n const options = newChildren.filter(ite =>\r\n valueClone.includes(ite.props.value),\r\n );\r\n onChange(valueClone, options);\r\n }}\r\n >\r\n <Tooltip title={name}>\r\n {name.length > maxTagTextLength\r\n ? `${name.substring(0, maxTagTextLength)}...`\r\n : name}\r\n </Tooltip>\r\n </Tag>\r\n );\r\n })\r\n ) : (\r\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />\r\n )}\r\n </div>\r\n );\r\n };\r\n\r\n let newProps = {\r\n showSearch: true,\r\n optionFilterProp: 'children',\r\n placeholder: '请选择',\r\n allowClear: true,\r\n ...props,\r\n };\r\n\r\n if (mode === 'multiple') {\r\n newProps = {\r\n ...newProps,\r\n maxTagCount: maxTagCount,\r\n maxTagTextLength: maxTagTextLength,\r\n maxTagPlaceholder: maxTagPlaceholder,\r\n };\r\n if (selectAll) {\r\n newProps = {\r\n ...newProps,\r\n dropdownRender: menu => {\r\n const valueLength = Array.isArray(value) && value.length ? value.length : 0;\r\n return (\r\n <div>\r\n <div\r\n className=\"vtx-multi-select-all\"\r\n onMouseDown={e => e.preventDefault()}\r\n >\r\n <Checkbox\r\n indeterminate={valueLength && valueLength < newChildren.length}\r\n checked={valueLength && valueLength === newChildren.length}\r\n onChange={e => {\r\n if (e.target.checked) {\r\n const keys = newChildren.map(item => item.key);\r\n onChange && onChange(keys, newChildren);\r\n } else {\r\n onChange && onChange([], []);\r\n }\r\n }}\r\n >\r\n 全选\r\n </Checkbox>\r\n </div>\r\n <Divider style={{ margin: '4px 0' }} />\r\n {menu}\r\n </div>\r\n );\r\n },\r\n };\r\n }\r\n }\r\n\r\n return (\r\n <div\r\n className={classnames({\r\n 'vtx-select': mode !== 'multiple',\r\n 'vtx-multi-select': mode == 'multiple' || mode == 'tags',\r\n })}\r\n id={elId.current}\r\n ref={elRef}\r\n style={{\r\n ...props.style,\r\n paddingRight: (mode == 'multiple' || mode == 'tags') && showAll ? 32 : 0,\r\n }}\r\n >\r\n <Select\r\n ref={ref}\r\n getPopupContainer={triggerNode => {\r\n return defaultBindBodyToPopupContainer ? document.body : triggerNode;\r\n }}\r\n {...newProps}\r\n style={{ width: '100%', ...selectStyle }}\r\n >\r\n {props.children}\r\n </Select>\r\n {(mode == 'multiple' || mode == 'tags') && showAll ? (\r\n <Popover\r\n content={getContent()}\r\n placement=\"bottomRight\"\r\n trigger=\"click\"\r\n overlayStyle={{ width: popWidth }}\r\n >\r\n <Button className=\"vtx-select-count\" icon={<MoreOutlined />} size={size} />\r\n </Popover>\r\n ) : null}\r\n </div>\r\n );\r\n});\r\n\r\nfunction getChildren(child = {}, value) {\r\n const key = isObject(value) ? value.key : value;\r\n return child[key] || '';\r\n}\r\n\r\nVtxSelect.Option = Select.Option;\r\nVtxSelect.OptGroup = Select.OptGroup;\r\n\r\nVtxSelect.propTypes = {\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.array,\r\n PropTypes.number,\r\n PropTypes.object,\r\n ]),\r\n mode: PropTypes.string,\r\n size: PropTypes.string,\r\n style: PropTypes.object,\r\n selectStyle: PropTypes.object,\r\n onChange: PropTypes.func,\r\n defaultBindBodyToPopupContainer: PropTypes.bool,\r\n maxTagCount: PropTypes.number,\r\n maxTagTextLength: PropTypes.number,\r\n maxTagPlaceholder: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\r\n showAll: PropTypes.bool,\r\n children: PropTypes.node,\r\n selectAll: PropTypes.bool,\r\n};\r\n\r\nexport default VtxSelect;\r\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtx/components",
3
- "version": "3.1.32",
3
+ "version": "3.1.34",
4
4
  "description": "React components for Vortex",
5
5
  "keywords": [
6
6
  "react",