"use strict";var _baseComponent=_interopRequireDefault(require("../helpers/baseComponent")),_classNames2=_interopRequireDefault(require("../helpers/libs/classNames")),_shallowEqual=_interopRequireDefault(require("../helpers/libs/shallowEqual")),_styleToCssString=_interopRequireDefault(require("../helpers/libs/styleToCssString")),_fieldNamesBehavior=_interopRequireDefault(require("../helpers/mixins/fieldNamesBehavior")),_gestures=require("../helpers/shared/gestures"),_useNativeAPI=require("../helpers/hooks/useNativeAPI"),_props=require("./props"),_utils=require("./utils");function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function _defineProperty(t,e,i){return(e=_toPropertyKey(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function _toPropertyKey(t){t=_toPrimitive(t,"string");return"symbol"==_typeof(t)?t:String(t)}function _toPrimitive(t,e){if("object"!=_typeof(t)||!t)return t;var i=t[Symbol.toPrimitive];if(void 0===i)return("string"===e?String:Number)(t);i=i.call(t,e||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}function getStyles(t){return Array.isArray(t)?t.map(function(t){return(0,_styleToCssString.default)(t)}):(0,_styleToCssString.default)(t)}(0,_baseComponent.default)({behaviors:[_fieldNamesBehavior.default],properties:_props.props,data:{inputValue:null,selectedIndex:null,selectedValue:null,cols:[],extIndicatorStyle:"",extItemStyle:"",extMaskStyle:"",contentStyle:"",itemCount:7,styles:{}},computed:{classes:["prefixCls, labelAlign",function(t,e){return{wrap:(0,_classNames2.default)(t,_defineProperty({},"".concat(t,"--").concat(e),e)),mask:"".concat(t,"__mask"),indicator:"".concat(t,"__indicator"),content:"".concat(t,"__content"),item:"".concat(t,"__item")}}]},observers:_defineProperty(_defineProperty({itemHeight:function(t){this.updatedStyles(t)},itemStyle:function(t){this.setData({extItemStyle:getStyles(t)})},indicatorStyle:function(t){this.setData({extIndicatorStyle:getStyles(t)})},maskStyle:function(t){this.setData({extMaskStyle:getStyles(t)})}},"value, options",function(t,e){var i=this.data.controlled,s=this.getFieldNames(),e=(0,_utils.getRealCol)(e,s);(0,_shallowEqual.default)(this.data.cols,e)||this.setData({cols:e}),i&&this.setValue(t,!0)}),"inputValue",function(t){var t=this.getValue(t),e=t.selectedIndex,t=t.selectedValue;this.setData({selectedIndex:e,selectedValue:t})}),methods:{updatedStyles:function(t){var e=this.data.itemCount,i=(e%2==0&&e--,e--,e/=2,"height: ".concat(t*this.data.itemCount,"px;")),s="line-height: ".concat(t,"px; height: ").concat(t,"px;"),l="padding: ".concat(t*e,"px 0;"),a="top: ".concat(t*e,"px; height: ").concat(t,"px;"),t="background-size: 100% ".concat(t*e,"px;");this.setData({styles:{wrap:i,item:s,content:l,indicator:a,mask:t}})},updated:function(t,e){var i=this;this.data.inputValue===t&&!e||this.setData({inputValue:t}),e&&this.select(t,this.data.itemHeight,function(t){return i.scrollTo(t,0,!1)})},setValue:function(t,e){t=this.getValue(t).value;this.updated(t,e)},getValue:function(){var t=0=this.data.cols.length||!e||i.call(this,t*e)},computeChildIndex:function(t,e,i){t=Math.round(t/e);return Math.min(t,i-1)},getChildMeta:function(t,e){var i=this.data.cols;return i[this.computeChildIndex(t,e,i.length)]},scrollingComplete:function(){var t,e,i=this.scrollY;0<=i&&(t=this.getFieldName("value"),e=this.data.itemHeight,i=this.getChildMeta(i,e))&&(e=i[t],this.data.inputValue!==e)&&this.fireValueChange(e)},onScrollChange:function(){var t,e,i,s=this.scrollY;0<=s&&(t=this.getFieldName("value"),i=(e=this.data).cols,e=e.itemHeight,s=this.computeChildIndex(s,e,i.length),this.scrollValue!==s)&&((e=i[this.scrollValue=s])&&(i=this.getValue(e[t]),this.triggerEvent("scrollChange",i)),(0,_useNativeAPI.vibrateShort)())},fireValueChange:function(t){this.data.controlled||this.updated(t),this.triggerEvent("valueChange",this.getValue(t)),(0,_useNativeAPI.vibrateShort)()}},created:function(){this.scrollValue=void 0,this.scrollY=-1,this.lastY=0,this.startY=0,this.isMoving=!1},attached:function(){var t=this.data,e=t.defaultValue,i=t.value,s=t.controlled,l=t.options,t=t.itemHeight,s=s?i:e,i=this.getFieldNames(),e=(0,_utils.getRealCol)(l,i);this.updatedStyles(t),this.setData({cols:e}),this.setValue(s,!0)}});