popupMixin.js 6.2 KB

1
  1. "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 _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)}function ownKeys(t,e){var i,n=Object.keys(t);return Object.getOwnPropertySymbols&&(i=Object.getOwnPropertySymbols(t),e&&(i=i.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,i)),n}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=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"==_typeof(e)?e:String(e)}function _toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}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 t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"#wux-picker",i=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;t!==e&&(t=e),this.hasFieldDecorator&&(e=this.getFieldContext())&&(t=e.data.value,e.changeValue(t)),this.data.inputValue!==t&&this.updated(t)},close:function(e){var t;"function"==typeof e&&(t=this.getPickerValue(this.data.inputValue),e.call(this,this.formatPickerValue(t))),this.fireVisibleChange(!1)},onClosed:function(){var e,t=this.data.value;this.hasFieldDecorator&&(e=this.getFieldContext())&&(t=e.data.value),this.picker=null,this.setData({inputValue:t})},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){var t;this.mounted&&(t=e.detail.value,this.updated(t,!0),this.triggerEvent("valueChange",this.formatPickerValue(e.detail)))},getPickerValue:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:this.data.inputValue;return this.picker=this.picker||this.querySelector(t),this.picker&&this.picker.getValue(e)},formatPickerValue:function(e){return _objectSpread(_objectSpread({},e),{},_defineProperty({},i.labelPropName,i.format(e,this.data)))},getFieldContext:function(){return this.getRelationsByName(FIELD_NAME)[0]},setChildProps:function(){var e,t,o,r=this;this.data.disabled||(e=this.getRelationsByName(0<arguments.length&&void 0!==arguments[0]?arguments[0]:CELL_NAME),t=this.data.trigger,o=void 0===t?DEFAULT_TRIGGER:t,0<e.length&&e.forEach(function(e){var t=e.data,i=t.inputEvents,n={oriInputEvents:_objectSpread({},i),inputEvents:{}};t.oriInputEvents&&delete n.oriInputEvents,n.inputEvents[o]=function(){var e;t.oriInputEvents&&t.oriInputEvents[o]?(e=t.oriInputEvents)[o].apply(e,arguments):i&&i[o]&&i[o].apply(i,arguments),r.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,e=e.value,n=n?i:t;this.mounted=!0,this.setVisibleState(n),this.updated(e)},detached:function(){this.mounted=!1}},definitionFilter:function(e){Object.assign(e.relations=e.relations||{},_defineProperty(_defineProperty(_defineProperty({},TOUCH_VIEW_NAME,{type:"child",observer:function(){this.setChildProps(TOUCH_VIEW_NAME)}}),CELL_NAME,{type:"child",observer:function(){this.setChildProps()}}),FIELD_NAME,{type:"ancestor"})),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)}})}})}