UNPKG

dtd

Version:

根据数梦工场视觉规范打造的组件库,感谢react-components和ant design

1 lines 8.33 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _extends2=require("babel-runtime/helpers/extends"),_extends3=_interopRequireDefault(_extends2),_defineProperty2=require("babel-runtime/helpers/defineProperty"),_defineProperty3=_interopRequireDefault(_defineProperty2),_classCallCheck2=require("babel-runtime/helpers/classCallCheck"),_classCallCheck3=_interopRequireDefault(_classCallCheck2),_createClass2=require("babel-runtime/helpers/createClass"),_createClass3=_interopRequireDefault(_createClass2),_possibleConstructorReturn2=require("babel-runtime/helpers/possibleConstructorReturn"),_possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2),_inherits2=require("babel-runtime/helpers/inherits"),_inherits3=_interopRequireDefault(_inherits2),_react=require("react"),React=_interopRequireWildcard(_react),_rcCascader=require("rc-cascader"),_rcCascader2=_interopRequireDefault(_rcCascader),_arrayTreeFilter=require("array-tree-filter"),_arrayTreeFilter2=_interopRequireDefault(_arrayTreeFilter),_classnames=require("classnames"),_classnames2=_interopRequireDefault(_classnames),_omit=require("omit.js"),_omit2=_interopRequireDefault(_omit),_KeyCode=require("rc-util/lib/KeyCode"),_KeyCode2=_interopRequireDefault(_KeyCode),_input=require("../input"),_input2=_interopRequireDefault(_input),_icon=require("../icon"),_icon2=_interopRequireDefault(_icon);function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __rest=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&(n[r[i]]=e[r[i]])}return n};function highlightKeyword(e,n,r){return e.split(n).map(function(e,t){return 0===t?e:[React.createElement("span",{className:r+"-menu-item-keyword",key:"seperator"},n),e]})}function defaultFilterOption(t,e){return e.some(function(e){return-1<e.label.indexOf(t)})}function defaultRenderFilteredOption(i,e,a){return e.map(function(e,t){var n=e.label,r=-1<n.indexOf(i)?highlightKeyword(n,i,a):n;return 0===t?r:[" / ",r]})}function defaultSortFilteredOption(e,t,n){function r(e){return-1<e.label.indexOf(n)}return e.findIndex(r)-t.findIndex(r)}var defaultDisplayRender=function(e){return e.join(" / ")},Cascader=function(e){function t(e){(0,_classCallCheck3.default)(this,t);var i=(0,_possibleConstructorReturn3.default)(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return i.handleChange=function(e,t){if(i.setState({inputValue:""}),t[0].__IS_FILTERED_OPTION){var n=e[0],r=t[0].path;i.setValue(n,r)}else i.setValue(e,t)},i.handlePopupVisibleChange=function(e){"popupVisible"in i.props||i.setState({popupVisible:e,inputFocused:e,inputValue:e?i.state.inputValue:""});var t=i.props.onPopupVisibleChange;t&&t(e)},i.handleInputBlur=function(){i.setState({inputFocused:!1})},i.handleInputClick=function(e){var t=i.state,n=t.inputFocused,r=t.popupVisible;(n||r)&&(e.stopPropagation(),e.nativeEvent.stopImmediatePropagation())},i.handleKeyDown=function(e){e.keyCode===_KeyCode2.default.BACKSPACE&&e.stopPropagation()},i.handleInputChange=function(e){var t=e.target.value;i.setState({inputValue:t})},i.setValue=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[];"value"in i.props||i.setState({value:e});var n=i.props.onChange;n&&n(e,t)},i.clearSelection=function(e){e.preventDefault(),e.stopPropagation(),i.state.inputValue?i.setState({inputValue:""}):(i.setValue([]),i.handlePopupVisibleChange(!1))},i.saveInput=function(e){i.input=e},i.state={value:e.value||e.defaultValue||[],inputValue:"",inputFocused:!1,popupVisible:e.popupVisible,flattenOptions:e.showSearch&&i.flattenTree(e.options,e.changeOnSelect)},i}return(0,_inherits3.default)(t,e),(0,_createClass3.default)(t,[{key:"componentWillReceiveProps",value:function(e){"value"in e&&this.setState({value:e.value||[]}),"popupVisible"in e&&this.setState({popupVisible:e.popupVisible}),e.showSearch&&this.props.options!==e.options&&this.setState({flattenOptions:this.flattenTree(e.options,e.changeOnSelect)})}},{key:"getLabel",value:function(){var e=this.props,t=e.options,n=e.displayRender,r=void 0===n?defaultDisplayRender:n,i=this.state.value,a=Array.isArray(i[0])?i[0]:i,l=(0,_arrayTreeFilter2.default)(t,function(e,t){return e.value===a[t]});return r(l.map(function(e){return e.label}),l)}},{key:"flattenTree",value:function(e,n){var r=this,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:[],a=[];return e.forEach(function(e){var t=i.concat(e);!n&&e.children&&e.children.length||a.push(t),e.children&&(a=a.concat(r.flattenTree(e.children,n,t)))}),a}},{key:"generateFilteredOptions",value:function(t){var n=this,e=this.props,r=e.showSearch,i=e.notFoundContent,a=r.filter,l=void 0===a?defaultFilterOption:a,u=r.render,o=void 0===u?defaultRenderFilteredOption:u,s=r.sort,p=void 0===s?defaultSortFilteredOption:s,c=this.state,d=c.flattenOptions,f=c.inputValue,h=d.filter(function(e){return l(n.state.inputValue,e)}).sort(function(e,t){return p(e,t,f)});return 0<h.length?h.map(function(e){return{__IS_FILTERED_OPTION:!0,path:e,label:o(f,e,t),value:e.map(function(e){return e.value}),disabled:e.some(function(e){return e.disabled})}}):[{label:i,value:"ANT_CASCADER_NOT_FOUND",disabled:!0}]}},{key:"focus",value:function(){this.input.focus()}},{key:"blur",value:function(){this.input.blur()}},{key:"render",value:function(){var e,t,n,r=this.props,i=this.state,a=r.prefixCls,l=r.inputPrefixCls,u=r.children,o=r.placeholder,s=r.size,p=r.disabled,c=r.className,d=r.style,f=r.allowClear,h=r.showSearch,_=void 0!==h&&h,C=__rest(r,["prefixCls","inputPrefixCls","children","placeholder","size","disabled","className","style","allowClear","showSearch"]),v=i.value,b=(0,_classnames2.default)((e={},(0,_defineProperty3.default)(e,l+"-lg","large"===s),(0,_defineProperty3.default)(e,l+"-sm","small"===s),e)),m=f&&!p&&0<v.length||i.inputValue?React.createElement(_icon2.default,{type:"close-circle",className:a+"-picker-clear",onClick:this.clearSelection}):null,y=(0,_classnames2.default)((t={},(0,_defineProperty3.default)(t,a+"-picker-arrow",!0),(0,_defineProperty3.default)(t,a+"-picker-arrow-expand",i.popupVisible),t)),g=(0,_classnames2.default)(c,a+"-picker",(n={},(0,_defineProperty3.default)(n,a+"-picker-with-value",i.inputValue),(0,_defineProperty3.default)(n,a+"-picker-disabled",p),(0,_defineProperty3.default)(n,a+"-picker-"+s,!!s),n)),O=(0,_omit2.default)(C,["onChange","options","popupPlacement","transitionName","displayRender","onPopupVisibleChange","changeOnSelect","expandTrigger","popupVisible","getPopupContainer","loadData","popupClassName","filterOption","renderFilteredOption","sortFilteredOption","notFoundContent"]),R=r.options;i.inputValue&&(R=this.generateFilteredOptions(a)),i.popupVisible?this.cachedOptions=R:R=this.cachedOptions;var P={};1===(R||[]).length&&"ANT_CASCADER_NOT_FOUND"===R[0].value&&(P.height="auto"),!1!==_.matchInputWidth&&i.inputValue&&this.input&&(P.width=this.input.input.offsetWidth);var V=u||React.createElement("span",{style:d,className:g},React.createElement("span",{className:a+"-picker-label"},this.getLabel()),React.createElement(_input2.default,(0,_extends3.default)({},O,{ref:this.saveInput,prefixCls:l,placeholder:v&&0<v.length?void 0:o,className:a+"-input "+b,value:i.inputValue,disabled:p,readOnly:!_,autoComplete:"off",onClick:_?this.handleInputClick:void 0,onBlur:_?this.handleInputBlur:void 0,onKeyDown:this.handleKeyDown,onChange:_?this.handleInputChange:void 0})),m,React.createElement(_icon2.default,{type:"caret-down",className:y}));return React.createElement(_rcCascader2.default,(0,_extends3.default)({},r,{options:R,value:v,popupVisible:i.popupVisible,onPopupVisibleChange:this.handlePopupVisibleChange,onChange:this.handleChange,dropdownMenuColumnStyle:P}),V)}}]),t}(React.Component);(exports.default=Cascader).defaultProps={prefixCls:"dt-cascader",inputPrefixCls:"dt-input",placeholder:"Please select",transitionName:"slide-up",popupPlacement:"bottomLeft",options:[],disabled:!1,allowClear:!0,notFoundContent:"Not Found"},module.exports=exports.default;