UNPKG

wux-weapp

Version:

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

1 lines 5.68 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=popupMixin;var _classNames3=_interopRequireDefault(require("../libs/classNames")),_eventsMixin=_interopRequireDefault(require("./eventsMixin")),_fieldNamesBehavior=_interopRequireDefault(require("./fieldNamesBehavior"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function ownKeys(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),i.push.apply(i,n)}return i}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(i,!0).forEach(function(e){_defineProperty(t,e,i[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):ownKeys(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 DEFAULT_TRIGGER="onClick",CELL_NAME="../cell/index",FIELD_NAME="../field/index",TOUCH_VIEW_NAME="../touch-view/index",defaultToolbar={title:"请选择",cancelText:"取消",confirmText:"确定"},defaultEvents={onChange:function(){},onConfirm:function(){},onCancel:function(){},onVisibleChange:function(){},onValueChange:function(){}},defaultPlatformProps={labelPropName:"label",format:function(e,t){return Array.isArray(e.displayValue)?e.displayValue.join(","):e.displayValue}};function popupMixin(){var i=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"#wux-picker",t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:defaultPlatformProps;return Behavior({behaviors:[_fieldNamesBehavior.default,(0,_eventsMixin.default)({defaultEvents:defaultEvents})],properties:{toolbar:{type:Object,value:_objectSpread({},defaultToolbar)},trigger:{type:String,value:DEFAULT_TRIGGER},defaultVisible:{type:Boolean,value:!1},visible:{type:Boolean,value:!1},controlled:{type:Boolean,value:!1},disabled:{type:Boolean,value:!1}},data:{popupVisible:!1,inputValue:[]},methods:{setVisibleState:function(e){this.data.popupVisible!==e&&this.setData({popupVisible:e})},fireVisibleChange:function(e){this.data.popupVisible!==e&&(this.data.controlled||this.setVisibleState(e),this.triggerEvent("visibleChange",{visible:e}))},open:function(){this.fireVisibleChange(!0)},onShow:function(){var e=this.data.value,t=this.data.inputValue;if(t!==e&&(t=e),this.hasFieldDecorator){var i=this.getFieldContext();i&&(t=i.data.value,i.changeValue(t))}this.data.inputValue!==t&&this.updated(t)},close:function(e){if("function"==typeof e){var t=this.getPickerValue(this.data.inputValue);e.call(this,this.formatPickerValue(t))}this.fireVisibleChange(!1)},onClosed:function(){var e=this.data.value;if(this.hasFieldDecorator){var t=this.getFieldContext();t&&(e=t.data.value)}this.picker=null,this.setData({inputValue:e})},onConfirm:function(){var t=this;this.close(function(e){t.triggerEvent("change",e),t.triggerEvent("confirm",e)})},onCancel:function(){var t=this;this.close(function(e){return t.triggerEvent("cancel",e)})},onValueChange:function(e){if(this.mounted){var t=e.detail.value;this.updated(t,!0),this.triggerEvent("valueChange",this.formatPickerValue(e.detail))}},getPickerValue:function(e){var t=0<arguments.length&&void 0!==e?e:this.data.inputValue;return this.picker=this.picker||this.querySelector(i),this.picker&&this.picker.getValue(t)},formatPickerValue:function(e){return _objectSpread({},e,_defineProperty({},t.labelPropName,t.format(e,this.data)))},getFieldContext:function(){return this.getRelationsByName(FIELD_NAME)[0]},setChildProps:function(e){var a=this,t=0<arguments.length&&void 0!==e?e:CELL_NAME;if(!this.data.disabled){var i=this.getRelationsByName(t),n=this.data.trigger,r=void 0===n?DEFAULT_TRIGGER:n;0<i.length&&i.forEach(function(e){var t=e.data,i=t.inputEvents,n={oriInputEvents:_objectSpread({},i),inputEvents:{}};t.oriInputEvents&&delete n.oriInputEvents,n.inputEvents[r]=function(){var e;t.oriInputEvents&&t.oriInputEvents[r]?(e=t.oriInputEvents)[r].apply(e,arguments):i&&i[r]&&i[r].apply(i,arguments);a.onTriggerClick()},e.setData(n)})}},onTriggerClick:function(){this.fireVisibleChange(!this.data.popupVisible)},noop:function(){},updated:function(e,t){this.hasFieldDecorator&&!t||this.data.inputValue!==e&&this.setData({inputValue:e})}},lifetimes:{ready:function(){var e=this.data,t=e.defaultVisible,i=e.visible,n=e.controlled,a=e.value,r=n?i:t;this.mounted=!0,this.setVisibleState(r),this.updated(a)},detached:function(){this.mounted=!1}},definitionFilter:function(e){var t;Object.assign(e.relations=e.relations||{},(_defineProperty(t={},TOUCH_VIEW_NAME,{type:"child",observer:function(){this.setChildProps(TOUCH_VIEW_NAME)}}),_defineProperty(t,CELL_NAME,{type:"child",observer:function(){this.setChildProps()}}),_defineProperty(t,FIELD_NAME,{type:"ancestor"}),t)),Object.assign(e.computed=e.computed||{},{classes:["prefixCls",function(e){return{wrap:(0,_classNames3.default)(e),toolbar:"".concat(e,"__toolbar"),inner:"".concat(e,"__inner"),cancel:(0,_classNames3.default)("".concat(e,"__button"),_defineProperty({},"".concat(e,"__button--cancel"),!0)),confirm:(0,_classNames3.default)("".concat(e,"__button"),_defineProperty({},"".concat(e,"__button--confirm"),!0)),hover:"".concat(e,"__button--hover"),disabled:"".concat(e,"__button--disabled"),title:"".concat(e,"__title")}}]}),Object.assign(e.observers=e.observers||{},{visible:function(e){this.mounted&&this.data.controlled&&this.setVisibleState(e)},value:function(e){this.mounted&&this.updated(e)}})}})}