Checkbox.js 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _babelHelperVueJsxMergeProps = require('babel-helper-vue-jsx-merge-props');
  6. var _babelHelperVueJsxMergeProps2 = _interopRequireDefault(_babelHelperVueJsxMergeProps);
  7. var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
  8. var _defineProperty3 = _interopRequireDefault(_defineProperty2);
  9. var _extends2 = require('babel-runtime/helpers/extends');
  10. var _extends3 = _interopRequireDefault(_extends2);
  11. var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
  12. var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
  13. var _vueTypes = require('../_util/vue-types');
  14. var _vueTypes2 = _interopRequireDefault(_vueTypes);
  15. var _classnames = require('classnames');
  16. var _classnames2 = _interopRequireDefault(_classnames);
  17. var _vcCheckbox = require('../vc-checkbox');
  18. var _vcCheckbox2 = _interopRequireDefault(_vcCheckbox);
  19. var _propsUtil = require('../_util/props-util');
  20. var _propsUtil2 = _interopRequireDefault(_propsUtil);
  21. var _configConsumerProps = require('../config-provider/configConsumerProps');
  22. var _warning = require('../_util/warning');
  23. var _warning2 = _interopRequireDefault(_warning);
  24. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
  25. function noop() {}
  26. exports['default'] = {
  27. name: 'ACheckbox',
  28. inheritAttrs: false,
  29. __ANT_CHECKBOX: true,
  30. model: {
  31. prop: 'checked'
  32. },
  33. props: {
  34. prefixCls: _vueTypes2['default'].string,
  35. defaultChecked: _vueTypes2['default'].bool,
  36. checked: _vueTypes2['default'].bool,
  37. disabled: _vueTypes2['default'].bool,
  38. isGroup: _vueTypes2['default'].bool,
  39. value: _vueTypes2['default'].any,
  40. name: _vueTypes2['default'].string,
  41. id: _vueTypes2['default'].string,
  42. indeterminate: _vueTypes2['default'].bool,
  43. type: _vueTypes2['default'].string.def('checkbox'),
  44. autoFocus: _vueTypes2['default'].bool
  45. },
  46. inject: {
  47. configProvider: { 'default': function _default() {
  48. return _configConsumerProps.ConfigConsumerProps;
  49. } },
  50. checkboxGroupContext: { 'default': function _default() {
  51. return undefined;
  52. } }
  53. },
  54. watch: {
  55. value: function value(_value, prevValue) {
  56. var _this = this;
  57. this.$nextTick(function () {
  58. var _checkboxGroupContext = _this.checkboxGroupContext,
  59. checkboxGroup = _checkboxGroupContext === undefined ? {} : _checkboxGroupContext;
  60. if (checkboxGroup.registerValue && checkboxGroup.cancelValue) {
  61. checkboxGroup.cancelValue(prevValue);
  62. checkboxGroup.registerValue(_value);
  63. }
  64. });
  65. }
  66. },
  67. mounted: function mounted() {
  68. var value = this.value,
  69. _checkboxGroupContext2 = this.checkboxGroupContext,
  70. checkboxGroup = _checkboxGroupContext2 === undefined ? {} : _checkboxGroupContext2;
  71. if (checkboxGroup.registerValue) {
  72. checkboxGroup.registerValue(value);
  73. }
  74. (0, _warning2['default'])((0, _propsUtil2['default'])(this, 'checked') || this.checkboxGroupContext || !(0, _propsUtil2['default'])(this, 'value'), 'Checkbox', '`value` is not validate prop, do you mean `checked`?');
  75. },
  76. beforeDestroy: function beforeDestroy() {
  77. var value = this.value,
  78. _checkboxGroupContext3 = this.checkboxGroupContext,
  79. checkboxGroup = _checkboxGroupContext3 === undefined ? {} : _checkboxGroupContext3;
  80. if (checkboxGroup.cancelValue) {
  81. checkboxGroup.cancelValue(value);
  82. }
  83. },
  84. methods: {
  85. handleChange: function handleChange(event) {
  86. var targetChecked = event.target.checked;
  87. this.$emit('input', targetChecked);
  88. this.$emit('change', event);
  89. },
  90. focus: function focus() {
  91. this.$refs.vcCheckbox.focus();
  92. },
  93. blur: function blur() {
  94. this.$refs.vcCheckbox.blur();
  95. }
  96. },
  97. render: function render() {
  98. var _this2 = this,
  99. _classNames;
  100. var h = arguments[0];
  101. var checkboxGroup = this.checkboxGroupContext,
  102. $slots = this.$slots;
  103. var props = (0, _propsUtil.getOptionProps)(this);
  104. var children = $slots['default'];
  105. var _getListeners = (0, _propsUtil.getListeners)(this),
  106. _getListeners$mouseen = _getListeners.mouseenter,
  107. mouseenter = _getListeners$mouseen === undefined ? noop : _getListeners$mouseen,
  108. _getListeners$mousele = _getListeners.mouseleave,
  109. mouseleave = _getListeners$mousele === undefined ? noop : _getListeners$mousele,
  110. input = _getListeners.input,
  111. restListeners = (0, _objectWithoutProperties3['default'])(_getListeners, ['mouseenter', 'mouseleave', 'input']);
  112. var customizePrefixCls = props.prefixCls,
  113. indeterminate = props.indeterminate,
  114. restProps = (0, _objectWithoutProperties3['default'])(props, ['prefixCls', 'indeterminate']);
  115. var getPrefixCls = this.configProvider.getPrefixCls;
  116. var prefixCls = getPrefixCls('checkbox', customizePrefixCls);
  117. var checkboxProps = {
  118. props: (0, _extends3['default'])({}, restProps, { prefixCls: prefixCls }),
  119. on: restListeners,
  120. attrs: (0, _propsUtil.getAttrs)(this)
  121. };
  122. if (checkboxGroup) {
  123. checkboxProps.on.change = function () {
  124. for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
  125. args[_key] = arguments[_key];
  126. }
  127. _this2.$emit.apply(_this2, ['change'].concat(args));
  128. checkboxGroup.toggleOption({ label: children, value: props.value });
  129. };
  130. checkboxProps.props.name = checkboxGroup.name;
  131. checkboxProps.props.checked = checkboxGroup.sValue.indexOf(props.value) !== -1;
  132. checkboxProps.props.disabled = props.disabled || checkboxGroup.disabled;
  133. checkboxProps.props.indeterminate = indeterminate;
  134. } else {
  135. checkboxProps.on.change = this.handleChange;
  136. }
  137. var classString = (0, _classnames2['default'])((_classNames = {}, (0, _defineProperty3['default'])(_classNames, prefixCls + '-wrapper', true), (0, _defineProperty3['default'])(_classNames, prefixCls + '-wrapper-checked', checkboxProps.props.checked), (0, _defineProperty3['default'])(_classNames, prefixCls + '-wrapper-disabled', checkboxProps.props.disabled), _classNames));
  138. var checkboxClass = (0, _classnames2['default'])((0, _defineProperty3['default'])({}, prefixCls + '-indeterminate', indeterminate));
  139. return h(
  140. 'label',
  141. { 'class': classString, on: {
  142. 'mouseenter': mouseenter,
  143. 'mouseleave': mouseleave
  144. }
  145. },
  146. [h(_vcCheckbox2['default'], (0, _babelHelperVueJsxMergeProps2['default'])([checkboxProps, { 'class': checkboxClass, ref: 'vcCheckbox' }])), children !== undefined && h('span', [children])]
  147. );
  148. }
  149. };