vhb-table
Version:
一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、贼灵活的配置项、扩展接口等...
1 lines • 38.7 kB
JavaScript
"use strict";function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-h-b-table/src/conf")),_size=_interopRequireDefault(require("../../mixins/size")),_utils=_interopRequireWildcard(require("../../tools/utils")),_dom=_interopRequireDefault(require("../../tools/dom")),_event=require("../../tools/event"),_date=require("./date"),_number=require("./number"),_log=require("../../tools/log");function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,i=new WeakMap;return(_getRequireWildcardCache=function(e){return e?i:t})(e)}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==_typeof(e)&&"function"!=typeof e)return{default:e};var i=_getRequireWildcardCache(t);if(i&&i.has(e))return i.get(e);var a={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var r=n?Object.getOwnPropertyDescriptor(e,s):null;r&&(r.get||r.set)?Object.defineProperty(a,s,r):a[s]=e[s]}return a.default=e,i&&i.set(e,a),a}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function ownKeys(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),i.push.apply(i,a)}return i}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(i),!0).forEach(function(e){_defineProperty(t,e,i[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):ownKeys(Object(i)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))})}return t}function _defineProperty(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var yearSize=20,monthSize=20,quarterSize=8;function getNumberValue(e,t){var i=e.type,a=e.exponential,n=e.digitsValue,s=e.inpMaxlength,r="float"===i?(0,_number.toFloatValueFixed)(t,n):_xeUtils.default.toValueString(t);return!a||t!==r&&_xeUtils.default.toValueString(t).toLowerCase()!==_xeUtils.default.toNumber(r).toExponential()?r.slice(0,s):t}function renderDateLabel(t,e,i,a){var n=e.festivalMethod;if(n){var s=n(_objectSpread({$input:e,type:e.datePanelType,viewType:e.datePanelType},i)),r=s?_xeUtils.default.isString(s)?{label:s}:s:{},l=r.extra?_xeUtils.default.isString(r.extra)?{label:r.extra}:r.extra:null,u=[t("span",{class:["vhb-input--date-label",{"is-notice":r.notice}]},l&&l.label?[t("span",a),t("span",{class:["vhb-input--date-label--extra",l.important?"is-important":"",l.className],style:l.style},_xeUtils.default.toValueString(l.label))]:a)],o=r.label;if(o){var d=_xeUtils.default.toValueString(o).split(",");u.push(t("span",{class:["vhb-input--date-festival",r.important?"is-important":"",r.className],style:r.style},[1<d.length?t("span",{class:["vhb-input--date-festival--overlap","overlap--".concat(d.length)]},d.map(function(e){return t("span",e.substring(0,3))})):t("span",{class:"vhb-input--date-festival--label"},d[0].substring(0,3))]))}return u}return a}function isDateDisabled(e,t){var i=e.disabledMethod;return i&&i({$input:e,type:e.datePanelType,viewType:e.datePanelType,date:t.date})}function renderDateDayTable(t,i){var e=i.datePanelType,a=i.dateValue,n=i.datePanelValue,s=i.dateHeaders,r=i.dayDatas,l="yyyy-MM-dd";return[t("table",{class:"vhb-input--date-".concat(e,"-view"),attrs:{cellspacing:0,cellpadding:0,border:0}},[t("thead",[t("tr",s.map(function(e){return t("th",e.label)}))]),t("tbody",r.map(function(e){return t("tr",e.map(function(e){return t("td",{class:{"is--prev":e.isPrev,"is--current":e.isCurrent,"is--now":e.isNow,"is--next":e.isNext,"is--disabled":isDateDisabled(i,e),"is--selected":_xeUtils.default.isDateSame(a,e.date,l),"is--hover":_xeUtils.default.isDateSame(n,e.date,l)},on:{click:function(){return i.dateSelectEvent(e)},mouseenter:function(){return i.dateMouseenterEvent(e)}}},renderDateLabel(t,i,e,e.label))}))}))])]}function renderDateWeekTable(a,n){var e=n.datePanelType,s=n.dateValue,r=n.datePanelValue,t=n.weekHeaders,i=n.weekDates,l="yyyyMMdd";return[a("table",{class:"vhb-input--date-".concat(e,"-view"),attrs:{cellspacing:0,cellpadding:0,border:0}},[a("thead",[a("tr",t.map(function(e){return a("th",e.label)}))]),a("tbody",i.map(function(e){var t=e.some(function(e){return _xeUtils.default.isDateSame(s,e.date,l)}),i=e.some(function(e){return _xeUtils.default.isDateSame(r,e.date,l)});return a("tr",e.map(function(e){return a("td",{class:{"is--prev":e.isPrev,"is--current":e.isCurrent,"is--now":e.isNow,"is--next":e.isNext,"is--disabled":isDateDisabled(n,e),"is--selected":t,"is--hover":i},on:{click:function(){return n.dateSelectEvent(e)},mouseenter:function(){return n.dateMouseenterEvent(e)}}},renderDateLabel(a,n,e,e.label))}))}))])]}function renderDateMonthTable(t,i){var a=i.dateValue,e=i.datePanelType,n=i.monthDatas,s=i.datePanelValue;return[t("table",{class:"vhb-input--date-".concat(e,"-view"),attrs:{cellspacing:0,cellpadding:0,border:0}},[t("tbody",n.map(function(e){return t("tr",e.map(function(e){return t("td",{class:{"is--prev":e.isPrev,"is--current":e.isCurrent,"is--now":e.isNow,"is--next":e.isNext,"is--disabled":isDateDisabled(i,e),"is--selected":_xeUtils.default.isDateSame(a,e.date,"yyyyMM"),"is--hover":_xeUtils.default.isDateSame(s,e.date,"yyyyMM")},on:{click:function(){return i.dateSelectEvent(e)},mouseenter:function(){return i.dateMouseenterEvent(e)}}},renderDateLabel(t,i,e,_conf.default.i18n("vhb.input.date.months.m".concat(e.month))))}))}))])]}function renderDateQuarterTable(t,i){var a=i.dateValue,e=i.datePanelType,n=i.quarterDatas,s=i.datePanelValue;return[t("table",{class:"vhb-input--date-".concat(e,"-view"),attrs:{cellspacing:0,cellpadding:0,border:0}},[t("tbody",n.map(function(e){return t("tr",e.map(function(e){return t("td",{class:{"is--prev":e.isPrev,"is--current":e.isCurrent,"is--now":e.isNow,"is--next":e.isNext,"is--disabled":isDateDisabled(i,e),"is--selected":_xeUtils.default.isDateSame(a,e.date,"yyyyq"),"is--hover":_xeUtils.default.isDateSame(s,e.date,"yyyyq")},on:{click:function(){return i.dateSelectEvent(e)},mouseenter:function(){return i.dateMouseenterEvent(e)}}},renderDateLabel(t,i,e,_conf.default.i18n("vhb.input.date.quarters.q".concat(e.quarter))))}))}))])]}function renderDateYearTable(t,i){var a=i.dateValue,e=i.datePanelType,n=i.yearDatas,s=i.datePanelValue;return[t("table",{class:"vhb-input--date-".concat(e,"-view"),attrs:{cellspacing:0,cellpadding:0,border:0}},[t("tbody",n.map(function(e){return t("tr",e.map(function(e){return t("td",{class:{"is--disabled":isDateDisabled(i,e),"is--current":e.isCurrent,"is--now":e.isNow,"is--selected":_xeUtils.default.isDateSame(a,e.date,"yyyy"),"is--hover":_xeUtils.default.isDateSame(s,e.date,"yyyy")},on:{click:function(){return i.dateSelectEvent(e)},mouseenter:function(){return i.dateMouseenterEvent(e)}}},renderDateLabel(t,i,e,e.year))}))}))])]}function renderDateTable(e,t){switch(t.datePanelType){case"week":return renderDateWeekTable(e,t);case"month":return renderDateMonthTable(e,t);case"quarter":return renderDateQuarterTable(e,t);case"year":return renderDateYearTable(e,t)}return renderDateDayTable(e,t)}function renderDatePanel(e,t){var i=t.datePanelType,a=t.selectDatePanelLabel,n=t.isDisabledPrevDateBtn,s=t.isDisabledNextDateBtn;return[e("div",{class:"vhb-input--date-picker-header"},[e("div",{class:"vhb-input--date-picker-type-wrapper"},[e("span","year"===i?{class:"vhb-input--date-picker-label"}:{class:"vhb-input--date-picker-btn",on:{click:t.dateToggleTypeEvent}},a)]),e("div",{class:"vhb-input--date-picker-btn-wrapper"},[e("span",{class:["vhb-input--date-picker-btn vhb-input--date-picker-prev-btn",{"is--disabled":n}],on:{click:t.datePrevEvent}},[e("i",{class:"vhb-icon--caret-left"})]),e("span",{class:"vhb-input--date-picker-btn vhb-input--date-picker-current-btn",on:{click:t.dateTodayMonthEvent}},[e("i",{class:"vhb-icon--dot"})]),e("span",{class:["vhb-input--date-picker-btn vhb-input--date-picker-next-btn",{"is--disabled":s}],on:{click:t.dateNextEvent}},[e("i",{class:"vhb-icon--caret-right"})])])]),e("div",{class:"vhb-input--date-picker-body"},renderDateTable(e,t))]}function renderTimePanel(i,a){var e=a.dateTimeLabel,n=a.datetimePanelValue,t=a.hourList,s=a.minuteList,r=a.secondList;return[i("div",{class:"vhb-input--time-picker-header"},[i("span",{class:"vhb-input--time-picker-title"},e),i("button",{class:"vhb-input--time-picker-confirm",attrs:{type:"button"},on:{click:a.dateConfirmEvent}},_conf.default.i18n("vhb.button.confirm"))]),i("div",{ref:"timeBody",class:"vhb-input--time-picker-body"},[i("ul",{class:"vhb-input--time-picker-hour-list"},t.map(function(t,e){return i("li",{key:e,class:{"is--selected":n&&n.getHours()===t.value},on:{click:function(e){return a.dateHourEvent(e,t)}}},t.label)})),i("ul",{class:"vhb-input--time-picker-minute-list"},s.map(function(t,e){return i("li",{key:e,class:{"is--selected":n&&n.getMinutes()===t.value},on:{click:function(e){return a.dateMinuteEvent(e,t)}}},t.label)})),i("ul",{class:"vhb-input--time-picker-second-list"},r.map(function(t,e){return i("li",{key:e,class:{"is--selected":n&&n.getSeconds()===t.value},on:{click:function(e){return a.dateSecondEvent(e,t)}}},t.label)}))])]}function renderPanel(e,t){var i,a=t.type,n=t.vSize,s=t.isDatePickerType,r=t.transfer,l=t.animatVisible,u=t.visiblePanel,o=t.panelPlacement,d=t.panelStyle,h=[];return s?("datetime"===a?h.push(e("div",{class:"vhb-input--panel-layout-wrapper"},[e("div",{class:"vhb-input--panel-left-wrapper"},renderDatePanel(e,t)),e("div",{class:"vhb-input--panel-right-wrapper"},renderTimePanel(e,t))])):"time"===a?h.push(e("div",{class:"vhb-input--panel-wrapper"},renderTimePanel(e,t))):h.push(e("div",{class:"vhb-input--panel-wrapper"},renderDatePanel(e,t))),e("div",{ref:"panel",class:["vhb-table--ignore-clear vhb-input--panel","type--".concat(a),(i={},_defineProperty(i,"size--".concat(n),n),_defineProperty(i,"is--transfer",r),_defineProperty(i,"animat--leave",l),_defineProperty(i,"animat--enter",u),i)],attrs:{placement:o},style:d},h)):null}function renderNumberIcon(e,t){return e("span",{class:"vhb-input--number-suffix"},[e("span",{class:"vhb-input--number-prev is--prev",on:{mousedown:t.numberMousedownEvent,mouseup:t.numberStopDown,mouseleave:t.numberStopDown}},[e("i",{class:["vhb-input--number-prev-icon",_conf.default.icon.INPUT_PREV_NUM]})]),e("span",{class:"vhb-input--number-next is--next",on:{mousedown:t.numberMousedownEvent,mouseup:t.numberStopDown,mouseleave:t.numberStopDown}},[e("i",{class:["vhb-input--number-next-icon",_conf.default.icon.INPUT_NEXT_NUM]})])])}function renderDatePickerIcon(e,t){return e("span",{class:"vhb-input--date-picker-suffix",on:{click:t.datePickerOpenEvent}},[e("i",{class:["vhb-input--date-picker-icon",_conf.default.icon.INPUT_DATE]})])}function renderSearchIcon(e,t){return e("span",{class:"vhb-input--search-suffix",on:{click:t.searchEvent}},[e("i",{class:["vhb-input--search-icon",_conf.default.icon.INPUT_SEARCH]})])}function renderPasswordIcon(e,t){var i=t.showPwd;return e("span",{class:"vhb-input--password-suffix",on:{click:t.passwordToggleEvent}},[e("i",{class:["vhb-input--password-icon",i?_conf.default.icon.INPUT_SHOW_PWD:_conf.default.icon.INPUT_PWD]})])}function rendePrefixIcon(e,t){var i=t.$scopedSlots,a=t.prefixIcon,n=[];return i.prefix?n.push(e("span",{class:"vhb-input--prefix-icon"},i.prefix.call(this,{},e))):a&&n.push(e("i",{class:["vhb-input--prefix-icon",a]})),n.length?e("span",{class:"vhb-input--prefix",on:{click:t.clickPrefixEvent}},n):null}function renderSuffixIcon(e,t){var i=t.$scopedSlots,a=t.inputValue,n=t.isClearable,s=t.disabled,r=t.suffixIcon,l=[];return i.suffix?l.push(e("span",{class:"vhb-input--suffix-icon"},i.suffix.call(this,{},e))):r&&l.push(e("i",{class:["vhb-input--suffix-icon",r]})),n&&l.push(e("i",{class:["vhb-input--clear-icon",_conf.default.icon.INPUT_CLEAR]})),l.length?e("span",{class:["vhb-input--suffix",{"is--clear":n&&!s&&!(""===a||_xeUtils.default.eqNull(a))}],on:{click:t.clickSuffixEvent}},l):null}function renderExtraSuffixIcon(e,t){var i,a=t.controls,n=t.isPawdType,s=t.isNumType,r=t.isDatePickerType,l=t.isSearch;return n?i=renderPasswordIcon(e,t):s?a&&(i=renderNumberIcon(e,t)):r?i=renderDatePickerIcon(e,t):l&&(i=renderSearchIcon(e,t)),i?e("span",{class:"vhb-input--extra-suffix"},[i]):null}var _default2={name:"VhbInput",mixins:[_size.default],model:{prop:"value",event:"modelValue"},props:{value:[String,Number,Date],immediate:{type:Boolean,default:!0},name:String,type:{type:String,default:"text"},clearable:{type:Boolean,default:function(){return _conf.default.input.clearable}},readonly:Boolean,disabled:Boolean,placeholder:String,maxlength:[String,Number],autocomplete:{type:String,default:"off"},align:String,form:String,className:String,size:{type:String,default:function(){return _conf.default.input.size||_conf.default.size}},min:{type:[String,Number],default:null},max:{type:[String,Number],default:null},step:[String,Number],exponential:{type:Boolean,default:function(){return _conf.default.input.exponential}},controls:{type:Boolean,default:function(){return _conf.default.input.controls}},digits:{type:[String,Number],default:function(){return _conf.default.input.digits}},dateConfig:Object,minDate:{type:[String,Number,Date],default:function(){return _conf.default.input.minDate}},maxDate:{type:[String,Number,Date],default:function(){return _conf.default.input.maxDate}},startWeek:Number,startDay:{type:[String,Number],default:function(){return _conf.default.input.startDay}},labelFormat:{type:String,default:function(){return _conf.default.input.labelFormat}},valueFormat:{type:String,default:function(){return _conf.default.input.valueFormat}},editable:{type:Boolean,default:!0},festivalMethod:{type:Function,default:function(){return _conf.default.input.festivalMethod}},disabledMethod:{type:Function,default:function(){return _conf.default.input.disabledMethod}},selectDay:{type:Number,default:function(){return _conf.default.input.selectDay}},prefixIcon:String,suffixIcon:String,placement:String,transfer:{type:Boolean,default:function(){return _conf.default.input.transfer}}},data:function(){return{panelIndex:0,showPwd:!1,visiblePanel:!1,animatVisible:!1,panelStyle:null,panelPlacement:null,isActivated:!1,inputValue:this.value,datetimePanelValue:null,datePanelValue:null,datePanelLabel:"",datePanelType:"day",selectMonth:null,currentDate:null}},computed:{isNumType:function(){return-1<["number","integer","float"].indexOf(this.type)},isDatePickerType:function(){return this.hasTime||-1<["date","week","month","quarter","year"].indexOf(this.type)},hasTime:function(){var e=this.type;return"time"===e||"datetime"===e},isPawdType:function(){return"password"===this.type},isSearch:function(){return"search"===this.type},stepValue:function(){var e=this.type,t=this.step;return"integer"===e?_xeUtils.default.toInteger(t)||1:"float"===e?_xeUtils.default.toNumber(t)||1/Math.pow(10,this.digitsValue):_xeUtils.default.toNumber(t)||1},digitsValue:function(){return _xeUtils.default.toInteger(this.digits)||1},isClearable:function(){return this.clearable&&(this.isPawdType||this.isNumType||this.isDatePickerType||"text"===this.type||"search"===this.type)},isDisabledPrevDateBtn:function(){var e=this.selectMonth,t=this.dateMinTime;return!!e&&e<=t},isDisabledNextDateBtn:function(){var e=this.selectMonth,t=this.dateMaxTime;return!!e&&t<=e},dateMinTime:function(){return this.minDate?_xeUtils.default.toStringDate(this.minDate):null},dateMaxTime:function(){return this.maxDate?_xeUtils.default.toStringDate(this.maxDate):null},dateValue:function(){var e=this.value,t=this.isDatePickerType,i=this.dateValueFormat,a=null;if(e&&t){var n=this.parseDate(e,i);_xeUtils.default.isValidDate(n)&&(a=n)}return a},dateTimeLabel:function(){var e=this.datetimePanelValue;return e?_xeUtils.default.toDateString(e,"HH:mm:ss"):""},hmsTime:function(){var e=this.dateValue;return e&&this.hasTime?1e3*(3600*e.getHours()+60*e.getMinutes()+e.getSeconds()):0},dateLabelFormat:function(){return this.isDatePickerType?this.labelFormat||_conf.default.i18n("vhb.input.date.labelFormat.".concat(this.type)):null},dateValueFormat:function(){var e=this.type;return"time"===e?"HH:mm:ss":this.valueFormat||("datetime"===e?"yyyy-MM-dd HH:mm:ss":"yyyy-MM-dd")},selectDatePanelLabel:function(){if(this.isDatePickerType){var e,t=this.datePanelType,i=this.selectMonth,a=this.yearList,n="";return i&&(n=i.getFullYear(),e=i.getMonth()+1),"quarter"===t?_conf.default.i18n("vhb.input.date.quarterLabel",[n]):"month"===t?_conf.default.i18n("vhb.input.date.monthLabel",[n]):"year"===t?a.length?"".concat(a[0].year," - ").concat(a[a.length-1].year):"":_conf.default.i18n("vhb.input.date.dayLabel",[n,e?_conf.default.i18n("vhb.input.date.m".concat(e)):"-"])}return""},firstDayOfWeek:function(){var e=this.startDay,t=this.startWeek;return _xeUtils.default.toNumber(_xeUtils.default.isNumber(e)||_xeUtils.default.isString(e)?e:t)},weekDatas:function(){var e=[];if(this.isDatePickerType){var t=this.firstDayOfWeek;e.push(t);for(var i=0;i<6;i++)6<=t?t=0:t++,e.push(t)}return e},dateHeaders:function(){return this.isDatePickerType?this.weekDatas.map(function(e){return{value:e,label:_conf.default.i18n("vhb.input.date.weeks.w".concat(e))}}):[]},weekHeaders:function(){return this.isDatePickerType?[{label:_conf.default.i18n("vhb.input.date.weeks.w")}].concat(this.dateHeaders):[]},yearList:function(){var e=this.selectMonth,t=this.currentDate,i=[];if(e&&t)for(var a=t.getFullYear(),n=new Date((""+e.getFullYear()).replace(/\d{1}$/,"0"),0,1),s=-10;s<yearSize-10;s++){var r=_xeUtils.default.getWhatYear(n,s,"first"),l=r.getFullYear();i.push({date:r,isCurrent:!0,isNow:a===l,year:l})}return i},yearDatas:function(){return _xeUtils.default.chunk(this.yearList,4)},quarterList:function(){var e=this.selectMonth,t=this.currentDate,i=[];if(e&&t)for(var a=t.getFullYear(),n=(0,_date.getDateQuarter)(t),s=_xeUtils.default.getWhatYear(e,0,"first"),r=s.getFullYear(),l=-2;l<quarterSize-2;l++){var u=_xeUtils.default.getWhatQuarter(s,l),o=u.getFullYear(),d=(0,_date.getDateQuarter)(u),h=o<r;i.push({date:u,isPrev:h,isCurrent:o===r,isNow:o===a&&d===n,isNext:!h&&r<o,quarter:d})}return i},quarterDatas:function(){return _xeUtils.default.chunk(this.quarterList,2)},monthList:function(){var e=this.selectMonth,t=this.currentDate,i=[];if(e&&t)for(var a=t.getFullYear(),n=t.getMonth(),s=_xeUtils.default.getWhatYear(e,0,"first").getFullYear(),r=-4;r<monthSize-4;r++){var l=_xeUtils.default.getWhatYear(e,0,r),u=l.getFullYear(),o=l.getMonth(),d=u<s;i.push({date:l,isPrev:d,isCurrent:u===s,isNow:u===a&&o===n,isNext:!d&&s<u,month:o})}return i},monthDatas:function(){return _xeUtils.default.chunk(this.monthList,4)},dayList:function(){var e=this.weekDatas,t=this.selectMonth,i=this.currentDate,a=this.hmsTime,n=[];if(t&&i)for(var s=i.getFullYear(),r=i.getMonth(),l=i.getDate(),u=t.getFullYear(),o=t.getMonth(),d=t.getDay(),h=-e.indexOf(d),c=new Date(_xeUtils.default.getWhatDay(t,h).getTime()+a),f=0;f<42;f++){var p=_xeUtils.default.getWhatDay(c,f),v=p.getFullYear(),m=p.getMonth(),b=p.getDate(),y=p<t;n.push({date:p,isPrev:y,isCurrent:v===u&&m===o,isNow:v===s&&m===r&&b===l,isNext:!y&&o!==m,label:b})}return n},dayDatas:function(){return _xeUtils.default.chunk(this.dayList,7)},weekDates:function(){var e=this.dayDatas,i=this.firstDayOfWeek;return e.map(function(e){var t=e[0];return[{date:t.date,isWeekNumber:!0,isPrev:!1,isCurrent:!1,isNow:!1,isNext:!1,label:_xeUtils.default.getYearWeek(t.date,i)}].concat(e)})},hourList:function(){var e=[];if(this.hasTime)for(var t=0;t<24;t++)e.push({value:t,label:(""+t).padStart(2,0)});return e},minuteList:function(){var e=[];if(this.hasTime)for(var t=0;t<60;t++)e.push({value:t,label:(""+t).padStart(2,0)});return e},secondList:function(){return this.minuteList},inpImmediate:function(){var e=this.type;return this.immediate||!("text"===e||"number"===e||"integer"===e||"float"===e)},inpPlaceholder:function(){var e=this.placeholder;return e?(0,_utils.getFuncText)(e):""},inputType:function(){var e=this.isDatePickerType,t=this.isNumType,i=this.isPawdType,a=this.type,n=this.showPwd;return e||t||i&&n||"number"===a?"text":a},inpMaxlength:function(){var e=this.isNumType,t=this.maxlength;return e&&!_xeUtils.default.toNumber(t)?16:t},inpReadonly:function(){var e=this.type,t=this.readonly,i=this.editable;return t||!i||"week"===e||"quarter"===e}},watch:{value:function(e){this.inputValue=e,this.changeValue()},type:function(){Object.assign(this,{inputValue:this.value,datetimePanelValue:null,datePanelValue:null,datePanelLabel:"",datePanelType:"day",selectMonth:null,currentDate:null}),this.initValue()},dateLabelFormat:function(){this.isDatePickerType&&(this.dateParseValue(this.datePanelValue),this.inputValue=this.datePanelLabel)}},created:function(){this.initValue(),_event.GlobalEvent.on(this,"mousewheel",this.handleGlobalMousewheelEvent),_event.GlobalEvent.on(this,"mousedown",this.handleGlobalMousedownEvent),_event.GlobalEvent.on(this,"keydown",this.handleGlobalKeydownEvent),_event.GlobalEvent.on(this,"blur",this.handleGlobalBlurEvent)},mounted:function(){this.dateConfig&&(0,_log.warnLog)("vhb.error.removeProp",["date-config"]),this.isDatePickerType&&this.transfer&&document.body.appendChild(this.$refs.panel)},beforeDestroy:function(){var e=this.$refs.panel;e&&e.parentNode&&e.parentNode.removeChild(e)},destroyed:function(){this.numberStopDown(),_event.GlobalEvent.off(this,"mousewheel"),_event.GlobalEvent.off(this,"mousedown"),_event.GlobalEvent.off(this,"keydown"),_event.GlobalEvent.off(this,"blur")},render:function(e){var t,i=this.name,a=this.form,n=this.inputType,s=this.inpPlaceholder,r=this.inpMaxlength,l=this.inpReadonly,u=this.className,o=this.controls,d=this.inputValue,h=this.isDatePickerType,c=this.visiblePanel,f=this.isActivated,p=this.vSize,v=this.type,m=this.align,b=this.readonly,y=this.disabled,g=this.autocomplete,x=[],P=rendePrefixIcon(e,this),D=renderSuffixIcon(e,this);return P&&x.push(P),x.push(e("input",{ref:"input",class:"vhb-input--inner",domProps:{value:d},attrs:{name:i,form:a,type:n,placeholder:s,maxlength:r,readonly:l,disabled:y,autocomplete:g},on:{keydown:this.keydownEvent,keyup:this.triggerEvent,wheel:this.wheelEvent,click:this.clickEvent,input:this.inputEvent,change:this.changeEvent,focus:this.focusEvent,blur:this.blurEvent}})),D&&x.push(D),x.push(renderExtraSuffixIcon(e,this)),h&&x.push(renderPanel(e,this)),e("div",{class:["vhb-input","type--".concat(v),u,(t={},_defineProperty(t,"size--".concat(p),p),_defineProperty(t,"is--".concat(m),m),_defineProperty(t,"is--controls",o),_defineProperty(t,"is--prefix",!!P),_defineProperty(t,"is--suffix",!!D),_defineProperty(t,"is--readonly",b),_defineProperty(t,"is--visivle",c),_defineProperty(t,"is--disabled",y),_defineProperty(t,"is--active",f),t)]},x)},methods:{focus:function(){return this.isActivated=!0,this.$refs.input.focus(),this.$nextTick()},blur:function(){return this.$refs.input.blur(),this.isActivated=!1,this.$nextTick()},triggerEvent:function(e){var t=this.$refs,i=this.inputValue;this.$emit(e.type,{$panel:t.panel,value:i,$event:e})},emitModel:function(e,t){this.inputValue=e,this.$emit("modelValue",e),this.$emit("input",{value:e,$event:t}),_xeUtils.default.toValueString(this.value)!==e&&this.$emit("change",{value:e,$event:t})},emitInputEvent:function(e,t){var i=this.inpImmediate,a=this.isDatePickerType;this.inputValue=e,a||(i?this.emitModel(e,t):this.$emit("input",{value:e,$event:t}))},inputEvent:function(e){var t=e.target.value;this.emitInputEvent(t,e)},changeEvent:function(e){this.inpImmediate||this.triggerEvent(e)},focusEvent:function(e){this.isActivated=!0,this.triggerEvent(e)},blurEvent:function(e){var t=this.inputValue;this.inpImmediate||this.emitModel(t,e),this.afterCheckValue(),this.visiblePanel||(this.isActivated=!1),this.$emit("blur",{value:t,$event:e})},keydownEvent:function(e){var t=this.exponential,i=this.controls;if(this.isNumType){var a=e.ctrlKey,n=e.shiftKey,s=e.altKey,r=e.keyCode;a||n||s||!(32===r||(!t||69!==r)&&65<=r&&r<=90||186<=r&&r<=188||191<=r)||e.preventDefault(),i&&this.numberKeydownEvent(e)}this.triggerEvent(e)},wheelEvent:function(e){if(this.isNumType&&this.controls&&this.isActivated){var t=e.deltaY;0<t?this.numberNextEvent(e):t<0&&this.numberPrevEvent(e),e.preventDefault()}this.triggerEvent(e)},clickEvent:function(e){this.isDatePickerType&&this.datePickerOpenEvent(e),this.triggerEvent(e)},clickPrefixEvent:function(e){var t=this.$refs,i=this.disabled,a=this.inputValue;i||this.$emit("prefix-click",{$panel:t.panel,value:a,$event:e})},clickSuffixEvent:function(e){var t=this.$refs,i=this.disabled,a=this.inputValue;i||(_dom.default.hasClass(e.currentTarget,"is--clear")?(this.emitModel("",e),this.clearValueEvent(e,"")):this.$emit("suffix-click",{$panel:t.panel,value:a,$event:e}))},clearValueEvent:function(e,t){var i=this.$refs,a=this.type,n=this.isNumType;this.isDatePickerType&&this.hidePanel(),(n||-1<["text","search","password"].indexOf(a))&&this.focus(),this.$emit("clear",{$panel:i.panel,value:t,$event:e})},parseDate:function(e,t){return"time"===this.type?(0,_date.toStringTimeDate)(e):_xeUtils.default.toStringDate(e,t)},initValue:function(){var e=this.type,t=this.isDatePickerType,i=this.inputValue,a=this.digitsValue;if(t)this.changeValue();else if("float"===e&&i){var n=(0,_number.toFloatValueFixed)(i,a);i!==n&&this.emitModel(n,{type:"init"})}},changeValue:function(){this.isDatePickerType&&(this.dateParseValue(this.inputValue),this.inputValue=this.datePanelLabel)},afterCheckValue:function(){var e=this.type,t=this.exponential,i=this.inpReadonly,a=this.inputValue,n=this.isDatePickerType,s=this.isNumType,r=this.datetimePanelValue,l=this.dateLabelFormat,u=this.min,o=this.max,d=this.firstDayOfWeek;if(!i)if(s){if(a){var h="integer"===e?_xeUtils.default.toInteger((0,_number.handleNumber)(a)):_xeUtils.default.toNumber((0,_number.handleNumber)(a));if(this.vaildMinNum(h)?this.vaildMaxNum(h)||(h=o):h=u,t){var c=_xeUtils.default.toValueString(a).toLowerCase();c===_xeUtils.default.toNumber(h).toExponential()&&(h=c)}this.emitModel(getNumberValue(this,h),{type:"check"})}}else if(n)if(a)if("week"===e||"quarter"===e);else{var f=this.parseDate(a,l);if(_xeUtils.default.isValidDate(f))if("time"===e)a!==(f=(0,_date.toStringTimeDate)(f))&&this.emitModel(f,{type:"check"}),this.inputValue=f;else{var p=!1;"datetime"===e?a===_xeUtils.default.toDateString(this.dateValue,l)&&a===_xeUtils.default.toDateString(f,l)||(p=!0,r.setHours(f.getHours()),r.setMinutes(f.getMinutes()),r.setSeconds(f.getSeconds())):p=!0,this.inputValue=_xeUtils.default.toDateString(f,l,{firstDay:d}),p&&this.dateChange(f)}else this.dateRevert()}else this.emitModel("",{type:"check"})},passwordToggleEvent:function(e){var t=this.disabled,i=this.readonly,a=this.showPwd;t||i||(this.showPwd=!a),this.$emit("toggle-visible",{visible:this.showPwd,$event:e})},searchEvent:function(e){this.$emit("search-click",{$event:e})},vaildMinNum:function(e){return null===this.min||e>=_xeUtils.default.toNumber(this.min)},vaildMaxNum:function(e){return null===this.max||e<=_xeUtils.default.toNumber(this.max)},numberStopDown:function(){clearTimeout(this.downbumTimeout)},numberDownPrevEvent:function(e){var t=this;this.downbumTimeout=setTimeout(function(){t.numberPrevEvent(e),t.numberDownPrevEvent(e)},60)},numberDownNextEvent:function(e){var t=this;this.downbumTimeout=setTimeout(function(){t.numberNextEvent(e),t.numberDownNextEvent(e)},60)},numberKeydownEvent:function(e){var t=e.keyCode,i=38===t;(i||40===t)&&(e.preventDefault(),i?this.numberPrevEvent(e):this.numberNextEvent(e))},numberMousedownEvent:function(e){var t=this;if(this.numberStopDown(),0===e.button){var i=_dom.default.hasClass(e.currentTarget,"is--prev");i?this.numberPrevEvent(e):this.numberNextEvent(e),this.downbumTimeout=setTimeout(function(){i?t.numberDownPrevEvent(e):t.numberDownNextEvent(e)},500)}},numberPrevEvent:function(e){var t=this.disabled,i=this.readonly;clearTimeout(this.downbumTimeout),t||i||this.numberChange(!0,e),this.$emit("prev-number",{$event:e})},numberNextEvent:function(e){var t=this.disabled,i=this.readonly;clearTimeout(this.downbumTimeout),t||i||this.numberChange(!1,e),this.$emit("next-number",{$event:e})},numberChange:function(e,t){var i,a=this.min,n=this.max,s=this.type,r=this.inputValue,l=this.stepValue,u="integer"===s?_xeUtils.default.toInteger((0,_number.handleNumber)(r)):_xeUtils.default.toNumber((0,_number.handleNumber)(r)),o=e?_xeUtils.default.add(u,l):_xeUtils.default.subtract(u,l);i=this.vaildMinNum(o)?this.vaildMaxNum(o)?o:n:a,this.emitInputEvent(getNumberValue(this,i),t)},datePickerOpenEvent:function(e){this.readonly||(e.preventDefault(),this.showPanel())},dateMonthHandle:function(e,t){this.selectMonth=_xeUtils.default.getWhatMonth(e,t,"first")},dateNowHandle:function(){var e=_xeUtils.default.getWhatDay(Date.now(),0,"first");this.currentDate=e,this.dateMonthHandle(e,0)},dateToggleTypeEvent:function(){var e=this.datePanelType;e="month"===e||"quarter"===e?"year":"month",this.datePanelType=e},datePrevEvent:function(e){var t=this.isDisabledPrevDateBtn,i=this.type,a=this.datePanelType;t||(this.selectMonth="year"===i?_xeUtils.default.getWhatYear(this.selectMonth,-yearSize,"first"):"month"===i||"quarter"===i?"year"===a?_xeUtils.default.getWhatYear(this.selectMonth,-yearSize,"first"):_xeUtils.default.getWhatYear(this.selectMonth,-1,"first"):"year"===a?_xeUtils.default.getWhatYear(this.selectMonth,-yearSize,"first"):"month"===a?_xeUtils.default.getWhatYear(this.selectMonth,-1,"first"):_xeUtils.default.getWhatMonth(this.selectMonth,-1,"first"),this.$emit("date-prev",{type:i,$event:e}))},dateTodayMonthEvent:function(e){this.dateNowHandle(),this.dateChange(this.currentDate),this.hidePanel(),this.$emit("date-today",{type:this.type,$event:e})},dateNextEvent:function(e){var t=this.isDisabledNextDateBtn,i=this.type,a=this.datePanelType;t||(this.selectMonth="year"===i?_xeUtils.default.getWhatYear(this.selectMonth,yearSize,"first"):"month"===i||"quarter"===i?"year"===a?_xeUtils.default.getWhatYear(this.selectMonth,yearSize,"first"):_xeUtils.default.getWhatYear(this.selectMonth,1,"first"):"year"===a?_xeUtils.default.getWhatYear(this.selectMonth,yearSize,"first"):"month"===a?_xeUtils.default.getWhatYear(this.selectMonth,1,"first"):_xeUtils.default.getWhatMonth(this.selectMonth,1,"first"),this.$emit("date-next",{type:i,$event:e}))},dateSelectEvent:function(e){isDateDisabled(this,e)||this.dateSelectItem(e.date)},dateSelectItem:function(e){var t=this.type,i=this.datePanelType,a="week"===t;"month"===t?"year"===i?(this.datePanelType="month",this.dateCheckMonth(e)):(this.dateChange(e),this.hidePanel()):"year"===t?(this.hidePanel(),this.dateChange(e)):"quarter"===t?"year"===i?(this.datePanelType="quarter",this.dateCheckMonth(e)):(this.dateChange(e),this.hidePanel()):"month"===i?(this.datePanelType="week"===t?t:"day",this.dateCheckMonth(e)):"year"===i?(this.datePanelType="month",this.dateCheckMonth(e)):(this.dateChange(e),this.hidePanel()),a&&this.changeValue()},dateMouseenterEvent:function(e){if(!isDateDisabled(this,e)){var t=this.datePanelType;"month"===t?this.dateMoveMonth(e.date):"quarter"===t?this.dateMoveQuarter(e.date):"year"===t?this.dateMoveYear(e.date):this.dateMoveDay(e.date)}},dateHourEvent:function(e,t){this.datetimePanelValue.setHours(t.value),this.dateTimeChangeEvent(e)},dateConfirmEvent:function(){this.dateChange(this.dateValue||this.currentDate),this.hidePanel()},dateMinuteEvent:function(e,t){this.datetimePanelValue.setMinutes(t.value),this.dateTimeChangeEvent(e)},dateSecondEvent:function(e,t){this.datetimePanelValue.setSeconds(t.value),this.dateTimeChangeEvent(e)},dateTimeChangeEvent:function(e){this.datetimePanelValue=new Date(this.datetimePanelValue.getTime()),this.updateTimePos(e.currentTarget)},updateTimePos:function(e){if(e){var t=e.offsetHeight;e.parentNode.scrollTop=e.offsetTop-4*t}},dateMoveDay:function(t){isDateDisabled(this,{date:t})||(this.dayList.some(function(e){return _xeUtils.default.isDateSame(e.date,t,"yyyyMMdd")})||this.dateCheckMonth(t),this.dateParseValue(t))},dateMoveMonth:function(t){isDateDisabled(this,{date:t})||(this.monthList.some(function(e){return _xeUtils.default.isDateSame(e.date,t,"yyyyMM")})||this.dateCheckMonth(t),this.dateParseValue(t))},dateMoveQuarter:function(t){isDateDisabled(this,{date:t})||(this.quarterList.some(function(e){return _xeUtils.default.isDateSame(e.date,t,"yyyyq")})||this.dateCheckMonth(t),this.dateParseValue(t))},dateMoveYear:function(t){isDateDisabled(this,{date:t})||(this.yearList.some(function(e){return _xeUtils.default.isDateSame(e.date,t,"yyyy")})||this.dateCheckMonth(t),this.dateParseValue(t))},dateParseValue:function(e){var t=this.type,i=this.dateLabelFormat,a=this.valueFormat,n=this.firstDayOfWeek,s=null,r="";if(e&&(s=this.parseDate(e,a)),_xeUtils.default.isValidDate(s)){if(r=_xeUtils.default.toDateString(s,i,{firstDay:n}),i&&"week"===t&&_xeUtils.default.getWhatWeek(s,0,n,n).getFullYear()<s.getFullYear()){var l=i.indexOf("yyyy");if(-1<l){var u=Number(r.substring(l,l+4));u&&!isNaN(u)&&(r=r.replace("".concat(u),"".concat(u-1)))}}}else s=null;this.datePanelValue=s,this.datePanelLabel=r},dateOffsetEvent:function(e){var t=this.isActivated,i=this.datePanelValue,a=this.datePanelType,n=this.firstDayOfWeek;if(t){e.preventDefault();var s=e.keyCode,r=37===s,l=38===s,u=39===s,o=40===s;if("year"===a){var d=_xeUtils.default.getWhatYear(i||Date.now(),0,"first");r?d=_xeUtils.default.getWhatYear(d,-1):l?d=_xeUtils.default.getWhatYear(d,-4):u?d=_xeUtils.default.getWhatYear(d,1):o&&(d=_xeUtils.default.getWhatYear(d,4)),this.dateMoveYear(d)}else if("quarter"===a){var h=_xeUtils.default.getWhatQuarter(i||Date.now(),0,"first");r?h=_xeUtils.default.getWhatQuarter(h,-1):l?h=_xeUtils.default.getWhatQuarter(h,-2):u?h=_xeUtils.default.getWhatQuarter(h,1):o&&(h=_xeUtils.default.getWhatQuarter(h,2)),this.dateMoveQuarter(h)}else if("month"===a){var c=_xeUtils.default.getWhatMonth(i||Date.now(),0,"first");r?c=_xeUtils.default.getWhatMonth(c,-1):l?c=_xeUtils.default.getWhatMonth(c,-4):u?c=_xeUtils.default.getWhatMonth(c,1):o&&(c=_xeUtils.default.getWhatMonth(c,4)),this.dateMoveMonth(c)}else{var f=i||_xeUtils.default.getWhatDay(Date.now(),0,"first");r?f=_xeUtils.default.getWhatDay(f,-1):l?f=_xeUtils.default.getWhatWeek(f,-1,n):u?f=_xeUtils.default.getWhatDay(f,1):o&&(f=_xeUtils.default.getWhatWeek(f,1,n)),this.dateMoveDay(f)}}},datePgOffsetEvent:function(e){if(this.isActivated){var t=33===e.keyCode;e.preventDefault(),t?this.datePrevEvent(e):this.dateNextEvent(e)}},dateChange:function(e){var t=this.value,i=this.datetimePanelValue,a=this.dateValueFormat,n=this.firstDayOfWeek;if("week"===this.type){var s=_xeUtils.default.toNumber(this.selectDay);e=_xeUtils.default.getWhatWeek(e,0,s,n)}else this.hasTime&&(e.setHours(i.getHours()),e.setMinutes(i.getMinutes()),e.setSeconds(i.getSeconds()));var r=_xeUtils.default.toDateString(e,a,{firstDay:n});this.dateCheckMonth(e),_xeUtils.default.isEqual(t,r)||this.emitModel(r,{type:"update"})},dateCheckMonth:function(e){var t=_xeUtils.default.getWhatMonth(e,0,"first");_xeUtils.default.isEqual(t,this.selectMonth)||(this.selectMonth=t)},dateOpenPanel:function(){var e=this,t=this.type,i=this.dateValue;-1<["year","quarter","month","week"].indexOf(t)?this.datePanelType=t:this.datePanelType="day",this.currentDate=_xeUtils.default.getWhatDay(Date.now(),0,"first"),i?(this.dateMonthHandle(i,0),this.dateParseValue(i)):this.dateNowHandle(),this.hasTime&&(this.datetimePanelValue=this.datePanelValue||_xeUtils.default.getWhatDay(Date.now(),0,"first"),this.$nextTick(function(){_xeUtils.default.arrayEach(e.$refs.timeBody.querySelectorAll("li.is--selected"),e.updateTimePos)}))},dateRevert:function(){this.inputValue=this.datePanelLabel},updateZindex:function(){this.panelIndex<_utils.default.getLastZIndex()&&(this.panelIndex=_utils.default.nextZIndex())},showPanel:function(){var e=this,t=this.disabled,i=this.visiblePanel,a=this.isDatePickerType;t||i||(clearTimeout(this.hidePanelTimeout),this.isActivated=!0,this.animatVisible=!0,a&&this.dateOpenPanel(),setTimeout(function(){e.visiblePanel=!0},10),this.updateZindex(),this.updatePlacement())},hidePanel:function(){var e=this;this.visiblePanel=!1,this.hidePanelTimeout=setTimeout(function(){e.animatVisible=!1},350)},updatePlacement:function(){var g=this;return this.$nextTick().then(function(){var e=g.$refs,t=g.transfer,i=g.placement,a=g.panelIndex,n=e.input,s=e.panel;if(n&&s){var r=n.offsetHeight,l=n.offsetWidth,u=s.offsetHeight,o=s.offsetWidth,d={zIndex:a},h=_dom.default.getAbsolutePos(n),c=h.boundingTop,f=h.boundingLeft,p=h.visibleHeight,v=h.visibleWidth,m="bottom";if(t){var b=f,y=c+r;"top"===i?(m="top",y=c-u):i||(p<y+u+5&&(m="top",y=c-u),y<5&&(m="bottom",y=c+r)),v<b+o+5&&(b-=b+o+5-v),b<5&&(b=5),Object.assign(d,{left:"".concat(b,"px"),top:"".concat(y,"px"),minWidth:"".concat(l,"px")})}else"top"===i?(m="top",d.bottom="".concat(r,"px")):i||p<c+r+u&&5<c-r-u&&(m="top",d.bottom="".concat(r,"px"));return g.panelStyle=d,g.panelPlacement=m,g.$nextTick()}})},handleGlobalMousedownEvent:function(e){var t=this.$refs,i=this.$el,a=this.disabled,n=this.visiblePanel,s=this.isActivated;!a&&s&&(this.isActivated=_dom.default.getEventTargetNode(e,i).flag||_dom.default.getEventTargetNode(e,t.panel).flag,this.isActivated||(this.isDatePickerType?n&&(this.hidePanel(),this.afterCheckValue()):this.afterCheckValue()))},handleGlobalKeydownEvent:function(e){var t=this.isDatePickerType,i=this.visiblePanel,a=this.clearable;if(!this.disabled){var n=e.keyCode,s=9===n,r=46===n,l=27===n,u=13===n,o=38===n,d=40===n,h=33===n,c=34===n,f=37===n||o||39===n||d,p=this.isActivated;s?(p&&this.afterCheckValue(),p=!1,this.isActivated=p):f?t&&p&&(i?this.dateOffsetEvent(e):(o||d)&&this.datePickerOpenEvent(e)):u?t&&(i?this.datePanelValue?this.dateSelectItem(this.datePanelValue):this.hidePanel():p&&this.datePickerOpenEvent(e)):(h||c)&&t&&p&&this.datePgOffsetEvent(e),s||l?i&&this.hidePanel():r&&a&&p&&this.clearValueEvent(e,null)}},handleGlobalMousewheelEvent:function(e){var t=this.$refs,i=this.disabled,a=this.visiblePanel;i||a&&(_dom.default.getEventTargetNode(e,t.panel).flag?this.updatePlacement():(this.hidePanel(),this.afterCheckValue()))},handleGlobalBlurEvent:function(){var e=this.isActivated;this.visiblePanel?(this.hidePanel(),this.afterCheckValue()):e&&this.afterCheckValue()}}};exports.default=_default2;