UNPKG

wux-weapp

Version:

一套组件化、可复用、易扩展的微信小程序 UI 组件库

1 lines 8.16 kB
"use strict";var _baseComponent=_interopRequireDefault(require("../helpers/baseComponent")),_classNames=_interopRequireDefault(require("../helpers/libs/classNames")),_index=_interopRequireDefault(require("./locales/index")),_props=require("./props"),_utils=require("./utils");function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function ownKeys(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,i)}return a}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(a,!0).forEach(function(t){_defineProperty(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ownKeys(a).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}function _toConsumableArray(t){return _arrayWithoutHoles(t)||_iterableToArray(t)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function _iterableToArray(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}function _arrayWithoutHoles(t){if(Array.isArray(t)){for(var e=0,a=new Array(t.length);e<t.length;e++)a[e]=t[e];return a}}function _defineProperty(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}(0,_baseComponent.default)({properties:_props.props,data:{inputValue:[],options:[]},observers:_defineProperty({inputValue:function(t){this.updatedCols(t)}},"value, mode, minuteStep, use12Hours, minDate, maxDate, minHour, maxHour, minMinute, maxMinute, lang",function(t){this.setValue(t)}),methods:{getDefaultMinDate:function(){return this.defaultMinDate||(this.defaultMinDate=new Date(2e3,1,1,0,0,0)),this.defaultMinDate},getDefaultMaxDate:function(){return this.defaultMaxDate||(this.defaultMaxDate=new Date(2030,1,1,23,59,59)),this.defaultMaxDate},getMinDate:function(){return this.data.minDate?(0,_utils.convertStringArrayToDate)(this.data.minDate,this.data):this.getDefaultMinDate()},getMaxDate:function(){return this.data.maxDate?(0,_utils.convertStringArrayToDate)(this.data.maxDate,this.data):this.getDefaultMaxDate()},getDateMember:function(t,e){var a=1<arguments.length&&void 0!==e?e:"year";return this[{min:"getMinDate",max:"getMaxDate"}[0<arguments.length&&void 0!==t?t:"min"]]()[{year:"getFullYear",month:"getMonth",day:"getDate",hour:"getHours",minute:"getMinutes"}[a]]()},getDisplayHour:function(t){return this.data.use12Hours&&(0===t&&(t=12),12<t&&(t-=12)),t},setHours:function(t,e){if(this.data.use12Hours){var a=e;a=24<=(a=12<=t.getHours()?e+12:e)?0:a,t.setHours(a)}else t.setHours(e)},setAmPm:function(t,e){0===e?t.setTime(+t-_utils.ONE_DAY/2):t.setTime(+t+_utils.ONE_DAY/2)},getNewDate:function(t,e){var a=parseInt(t[e],10),i=this.data.mode,r=(0,_utils.cloneDate)(this.getDate());if(i===_utils.DATETIME||i===_utils.DATE||i===_utils.YEAR||i===_utils.MONTH)switch(e){case 0:r.setFullYear(a);break;case 1:(0,_utils.setMonth)(r,a);break;case 2:r.setDate(a);break;case 3:this.setHours(r,a);break;case 4:r.setMinutes(a);break;case 5:this.setAmPm(r,a)}else if(i===_utils.TIME)switch(e){case 0:this.setHours(r,a);break;case 1:r.setMinutes(a);break;case 2:this.setAmPm(r,a)}return this.clipDate(r)},clipDate:function(t){var e=this.data.mode,a=this.getMinDate(),i=this.getMaxDate();if(e===_utils.DATETIME){if(t<a)return(0,_utils.cloneDate)(a);if(i<t)return(0,_utils.cloneDate)(i)}else if(e===_utils.DATE||e===_utils.YEAR||e===_utils.MONTH){if(+t+_utils.ONE_DAY<=a)return(0,_utils.cloneDate)(a);if(t>=+i+_utils.ONE_DAY)return(0,_utils.cloneDate)(i)}else if(e===_utils.TIME){var r=i.getHours(),n=i.getMinutes(),u=a.getHours(),s=a.getMinutes(),l=t.getHours(),o=t.getMinutes();if(l<u||l===u&&o<s)return(0,_utils.cloneDate)(a);if(r<l||l===r&&n<o)return(0,_utils.cloneDate)(i)}return t},isValidStringArray:function(t){return!!t&&(t instanceof Date||("string"==typeof t||"number"==typeof t?0<t.toString().length:!Array.isArray(t)||0<t.length))},getDate:function(t){var e=t||this.data.value;return this.clipDate(this.isValidStringArray(e)?(0,_utils.convertStringArrayToDate)(e,this.data):this.getMinDate())},getDateData:function(t){var e=this.data,a=e.mode,i=e.lang,r=_index.default[i],n=t.getFullYear(),u=t.getMonth(),s=this.getDateMember("min","year"),l=this.getDateMember("max","year"),o=this.getDateMember("min","month"),h=this.getDateMember("max","month"),c=this.getDateMember("min","day"),D=this.getDateMember("max","day"),m=(0,_utils.fomartArray)(s,l).map(function(t){return{value:t+"",label:t+r.year+""}});if(a===_utils.YEAR)return[m];var g=s===n?o:0,f=l===n?h:11,_=(0,_utils.fomartArray)(g,f).map(function(t){return{value:t+"",label:t+1+r.month+""}});if(a===_utils.MONTH)return[m,_];var d=s===n&&o===u?c:1,p=l===n&&h===u?D:(0,_utils.getDaysInMonth)(t);return[m,_,(0,_utils.fomartArray)(d,p).map(function(t){return{value:t+"",label:t+r.day+""}})]},getTimeData:function(t){var e=this.data,a=e.minHour,i=e.maxHour,r=e.minMinute,n=e.maxMinute,u=this.data,s=u.mode,l=u.minuteStep,o=u.use12Hours,h=u.lang,c=_index.default[h],D=this.getDateMember("min","minute"),m=this.getDateMember("max","minute"),g=this.getDateMember("min","hour"),f=this.getDateMember("max","hour"),_=t.getHours();if(s===_utils.DATETIME){var d=t.getFullYear(),p=t.getMonth(),b=t.getDate(),M=this.getDateMember("min","year"),y=this.getDateMember("max","year"),v=this.getDateMember("min","month"),A=this.getDateMember("max","month"),T=this.getDateMember("min","day"),x=this.getDateMember("max","day");M===d&&v===p&&T===b&&(a=g)===_&&(r=D),y===d&&A===p&&x===b&&(i=f)===_&&(n=m)}else(a=g)===_&&(r=D),(i=f)===_&&(n=m);var E=[];0===a&&0===i||0!==a&&0!==i?a=this.getDisplayHour(a):0===a&&o&&(a=1,E.push({value:"0",label:c.hour?"12"+c.hour:"12"})),i=this.getDisplayHour(i),E=[].concat(_toConsumableArray(E),_toConsumableArray((0,_utils.fomartArray)(a,i).map(function(t){return{value:t+"",label:c.hour?t+c.hour+"":(0,_utils.pad)(t)}})));for(var O=[],H=t.getMinutes(),w=r;w<=n;w+=l)O.push({value:w+"",label:c.minute?w+c.minute+"":(0,_utils.pad)(w)}),w<H&&H<w+l&&O.push({value:H+"",label:c.minute?H+c.minute+"":(0,_utils.pad)(H)});var N=[{value:"0",label:c.am},{value:"1",label:c.pm}];return[E,O].concat(o?[N]:[])},generateDatePickerColumns:function(t,e){var a=this.data,i=a.mode,r=a.tillNow,n=a.lang,u=_index.default[n],s=this.getDate(e),l=[];return i===_utils.YEAR&&(l=this.getDateData(s)),i===_utils.MONTH&&(l=this.getDateData(s)),i!==_utils.DATETIME&&i!==_utils.DATE||(l=this.getDateData(s)),i!==_utils.DATETIME&&i!==_utils.TIME||(l=l.concat(this.getTimeData(s))),r&&(l[0].push({label:u.tillNow,value:_utils.TILL_NOW}),t&&t[0]===_utils.TILL_NOW&&l.forEach(function(t,e){1<=e&&(l[e]=[])})),l},onValueChange:function(t){var e=t.detail,a=e.value,i=e.index,r=a[0]===_utils.TILL_NOW,n=r?this.getDate(new Date):this.getNewDate(a,i),u=this.generateDatePickerColumns(a,n),s=this.getValue(a,u);this.triggerEvent("valueChange",_objectSpread({},t.detail,{},s,{date:+n,tillNow:r}))},updatedCols:function(t){var e=this.generateDatePickerColumns(t);this.setData({cols:e})},updated:function(t){this.data.inputValue!==t&&this.setData({inputValue:t})},setValue:function(t){var e=this.fixValue(t);this.updated(e)},fixValue:function(t){var e=this.data,a=e.mode,i=e.use12Hours,r=[];return(0,_utils.isTillNow)(t)?(r=[_utils.TILL_NOW,"","","","",""],a===_utils.YEAR?r=r.slice(0,1):a===_utils.MONTH?r=r.slice(0,2):a===_utils.DATE?r=r.slice(0,3):a===_utils.TIME?r=r.slice(0,i?3:2):a===_utils.DATETIME&&(r=r.slice(0,i?6:5))):r=(0,_utils.convertDateToStringArray)(this.getDate(t),e),r},getValue:function(t,e){var a=0<arguments.length&&void 0!==t?t:this.data.inputValue,i=1<arguments.length&&void 0!==e?e:this.data.cols;this.picker=this.picker||this.querySelector("#wux-picker");var r=this.fixValue(a),n=this.picker.getValue(r,i),u=n.value[0]===_utils.TILL_NOW;return _objectSpread({},n,{date:+this.getDate(),tillNow:u})}},attached:function(){this.setValue(this.data.value)}});