epmet 工作端 小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
5.8 KiB

"use strict";var _baseComponent=_interopRequireDefault(require("../helpers/baseComponent")),_classNames=_interopRequireDefault(require("../helpers/classNames")),_styleToCssString=_interopRequireDefault(require("../helpers/styleToCssString")),_runes=_interopRequireDefault(require("../helpers/runes2"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function _iterableToArrayLimit(e,t){var r=[],n=!0,i=!1,o=void 0;try{for(var a,c=e[Symbol.iterator]();!(n=(a=c.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){i=!0,o=e}finally{try{n||null==c.return||c.return()}finally{if(i)throw o}}return r}function _arrayWithHoles(e){if(Array.isArray(e))return e}function ownKeys(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(r,!0).forEach(function(e){_defineProperty(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ownKeys(r).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function pxToNumber(e){if(!e)return 0;var t=e.match(/^\d*(\.\d*)?/);return t?Number(t[0]):0}function getSubString(e,t,r){return e.slice(t,r).join("")}(0,_baseComponent.default)({properties:{prefixCls:{type:String,value:"wux-ellipsis"},content:{type:String,value:""},direction:{type:String,value:"end"},defaultExpanded:{type:Boolean,value:!1},expandText:{type:String,value:""},collapseText:{type:String,value:""},rows:{type:Number,value:1}},data:{ellipsised:{leading:"",tailing:""},expanded:!1,exceeded:!1,innerText:"",end:-1,containerStyle:""},observers:_defineProperty({},"prefixCls, content, direction, rows, expandText, collapseText",function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n=t[0],i=t[1],o=t[2],a=t[3],c=t[4],s=t[5];this.calcEllipsised({prefixCls:n,content:i,direction:o,rows:a,expandText:c,collapseText:s})}),computed:{classes:["prefixCls",function(e){return{wrap:(0,_classNames.default)(e),container:(0,_classNames.default)(e,["".concat(e,"--container")]),expanded:"".concat(e,"__expanded"),collapsed:"".concat(e,"__collapsed")}}]},methods:{onTap:function(){this.triggerEvent("click")},setExpanded:function(e){var t=e.target.dataset.expanded;this.setDataPromise({expanded:"1"===t})},calcEllipsised:function(n){function i(e){a.data.exceeded!==e&&a.setDataPromise({exceeded:e})}function o(e){a.data.ellipsised!==e&&a.setDataPromise({ellipsised:e})}var a=this,e=(0,_runes.default)(n.content),c=n.content.length,s=Math.floor((0+c)/2),t={innerText:n.content,chars:e,end:c,middle:s,containerStyle:""};this.getRootRef().then(function(e){return a.setDataPromise(_objectSpread({},t,{containerStyle:(0,_styleToCssString.default)({width:e.width,wordBreak:e.wordBreak}),removeContainer:!1})).then(function(){return Promise.all([Promise.resolve(e),a.getContainerRef()])})}).then(function(e){var t=_slicedToArray(e,2),r=t[0];t[1].offsetHeight<=r.maxHeight?i(!1):(i(!0),"middle"===n.direction?a.checkMiddle([0,s],[s,c],a.data).then(o):a.check(0,c,a.data).then(o))})},check:function(n,i,o){var a=this,e=o.chars,t=o.content.length,r=o.expanded?o.collapseText:o.expandText;if(i-n<=1)return"end"===o.direction?Promise.resolve({leading:getSubString(e,0,n)+"..."}):Promise.resolve({tailing:"..."+getSubString(e,i,t)});var c=Math.round((n+i)/2),s="end"===o.direction?getSubString(e,0,c)+"..."+r:r+"..."+getSubString(e,c,t);return this.setDataPromise({innerText:s}).then(function(){return Promise.all([a.getRootRef(),a.getContainerRef()])}