ken-form-design
Version:
基于vue、ant-design-vue的表单设计器,可视化开发表单
1,715 lines (1,456 loc) • 52.8 kB
JavaScript
((typeof self !== 'undefined' ? self : this)["webpackJsonpken_form_design"] = (typeof self !== 'undefined' ? self : this)["webpackJsonpken_form_design"] || []).push([[4],{
/***/ "3962":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _moment = __webpack_require__("c1df");
var _moment2 = _interopRequireDefault(_moment);
var _vueTypes = __webpack_require__("7b44");
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _BaseMixin = __webpack_require__("48bb");
var _BaseMixin2 = _interopRequireDefault(_BaseMixin);
var _Header = __webpack_require__("dfc9");
var _Header2 = _interopRequireDefault(_Header);
var _Combobox = __webpack_require__("b6d6");
var _Combobox2 = _interopRequireDefault(_Combobox);
var _propsUtil = __webpack_require__("73c8");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function noop() {}
function generateOptions(length, disabledOptions, hideDisabledOptions) {
var step = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
var arr = [];
for (var value = 0; value < length; value += step) {
if (!disabledOptions || disabledOptions.indexOf(value) < 0 || !hideDisabledOptions) {
arr.push(value);
}
}
return arr;
}
function toNearestValidTime(time, hourOptions, minuteOptions, secondOptions) {
var hour = hourOptions.slice().sort(function (a, b) {
return Math.abs(time.hour() - a) - Math.abs(time.hour() - b);
})[0];
var minute = minuteOptions.slice().sort(function (a, b) {
return Math.abs(time.minute() - a) - Math.abs(time.minute() - b);
})[0];
var second = secondOptions.slice().sort(function (a, b) {
return Math.abs(time.second() - a) - Math.abs(time.second() - b);
})[0];
return (0, _moment2['default'])(hour + ':' + minute + ':' + second, 'HH:mm:ss');
}
var Panel = {
mixins: [_BaseMixin2['default']],
props: {
clearText: _vueTypes2['default'].string,
prefixCls: _vueTypes2['default'].string.def('rc-time-picker-panel'),
defaultOpenValue: {
type: Object,
'default': function _default() {
return (0, _moment2['default'])();
}
},
value: _vueTypes2['default'].any,
defaultValue: _vueTypes2['default'].any,
placeholder: _vueTypes2['default'].string,
format: _vueTypes2['default'].string,
inputReadOnly: _vueTypes2['default'].bool.def(false),
disabledHours: _vueTypes2['default'].func.def(noop),
disabledMinutes: _vueTypes2['default'].func.def(noop),
disabledSeconds: _vueTypes2['default'].func.def(noop),
hideDisabledOptions: _vueTypes2['default'].bool,
// onChange: PropTypes.func,
// onEsc: PropTypes.func,
allowEmpty: _vueTypes2['default'].bool,
showHour: _vueTypes2['default'].bool,
showMinute: _vueTypes2['default'].bool,
showSecond: _vueTypes2['default'].bool,
// onClear: PropTypes.func,
use12Hours: _vueTypes2['default'].bool.def(false),
hourStep: _vueTypes2['default'].number,
minuteStep: _vueTypes2['default'].number,
secondStep: _vueTypes2['default'].number,
addon: _vueTypes2['default'].func.def(noop),
focusOnOpen: _vueTypes2['default'].bool,
// onKeydown: PropTypes.func,
clearIcon: _vueTypes2['default'].any
},
data: function data() {
return {
sValue: this.value,
selectionRange: [],
currentSelectPanel: ''
};
},
watch: {
value: function value(val) {
this.setState({
sValue: val
});
}
},
methods: {
onChange: function onChange(newValue) {
this.setState({ sValue: newValue });
this.__emit('change', newValue);
},
onAmPmChange: function onAmPmChange(ampm) {
this.__emit('amPmChange', ampm);
},
onCurrentSelectPanelChange: function onCurrentSelectPanelChange(currentSelectPanel) {
this.setState({ currentSelectPanel: currentSelectPanel });
},
// https://github.com/ant-design/ant-design/issues/5829
close: function close() {
this.__emit('esc');
},
onEsc: function onEsc(e) {
this.__emit('esc', e);
},
disabledHours2: function disabledHours2() {
var use12Hours = this.use12Hours,
disabledHours = this.disabledHours;
var disabledOptions = disabledHours();
if (use12Hours && Array.isArray(disabledOptions)) {
if (this.isAM()) {
disabledOptions = disabledOptions.filter(function (h) {
return h < 12;
}).map(function (h) {
return h === 0 ? 12 : h;
});
} else {
disabledOptions = disabledOptions.map(function (h) {
return h === 12 ? 12 : h - 12;
});
}
}
return disabledOptions;
},
isAM: function isAM() {
var value = this.sValue || this.defaultOpenValue;
return value.hour() >= 0 && value.hour() < 12;
}
},
render: function render() {
var h = arguments[0];
var prefixCls = this.prefixCls,
placeholder = this.placeholder,
disabledMinutes = this.disabledMinutes,
addon = this.addon,
disabledSeconds = this.disabledSeconds,
hideDisabledOptions = this.hideDisabledOptions,
showHour = this.showHour,
showMinute = this.showMinute,
showSecond = this.showSecond,
format = this.format,
defaultOpenValue = this.defaultOpenValue,
clearText = this.clearText,
use12Hours = this.use12Hours,
focusOnOpen = this.focusOnOpen,
hourStep = this.hourStep,
minuteStep = this.minuteStep,
secondStep = this.secondStep,
inputReadOnly = this.inputReadOnly,
sValue = this.sValue,
currentSelectPanel = this.currentSelectPanel;
var clearIcon = (0, _propsUtil.getComponentFromProp)(this, 'clearIcon');
var _getListeners = (0, _propsUtil.getListeners)(this),
_getListeners$esc = _getListeners.esc,
esc = _getListeners$esc === undefined ? noop : _getListeners$esc,
_getListeners$keydown = _getListeners.keydown,
keydown = _getListeners$keydown === undefined ? noop : _getListeners$keydown;
var disabledHourOptions = this.disabledHours2();
var disabledMinuteOptions = disabledMinutes(sValue ? sValue.hour() : null);
var disabledSecondOptions = disabledSeconds(sValue ? sValue.hour() : null, sValue ? sValue.minute() : null);
var hourOptions = generateOptions(24, disabledHourOptions, hideDisabledOptions, hourStep);
var minuteOptions = generateOptions(60, disabledMinuteOptions, hideDisabledOptions, minuteStep);
var secondOptions = generateOptions(60, disabledSecondOptions, hideDisabledOptions, secondStep);
var validDefaultOpenValue = toNearestValidTime(defaultOpenValue, hourOptions, minuteOptions, secondOptions);
return h(
'div',
{ 'class': prefixCls + '-inner' },
[h(_Header2['default'], {
attrs: {
clearText: clearText,
prefixCls: prefixCls,
defaultOpenValue: validDefaultOpenValue,
value: sValue,
currentSelectPanel: currentSelectPanel,
format: format,
placeholder: placeholder,
hourOptions: hourOptions,
minuteOptions: minuteOptions,
secondOptions: secondOptions,
disabledHours: this.disabledHours2,
disabledMinutes: disabledMinutes,
disabledSeconds: disabledSeconds,
focusOnOpen: focusOnOpen,
inputReadOnly: inputReadOnly,
clearIcon: clearIcon
},
on: {
'esc': esc,
'change': this.onChange,
'keydown': keydown
}
}), h(_Combobox2['default'], {
attrs: {
prefixCls: prefixCls,
value: sValue,
defaultOpenValue: validDefaultOpenValue,
format: format,
showHour: showHour,
showMinute: showMinute,
showSecond: showSecond,
hourOptions: hourOptions,
minuteOptions: minuteOptions,
secondOptions: secondOptions,
disabledHours: this.disabledHours2,
disabledMinutes: disabledMinutes,
disabledSeconds: disabledSeconds,
use12Hours: use12Hours,
isAM: this.isAM()
},
on: {
'change': this.onChange,
'amPmChange': this.onAmPmChange,
'currentSelectPanelChange': this.onCurrentSelectPanelChange,
'esc': this.onEsc
}
}), addon(this)]
);
}
};
exports['default'] = Panel;
/***/ }),
/***/ "628f":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _TimePicker = __webpack_require__("ab96");
Object.defineProperty(exports, 'default', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_TimePicker)['default'];
}
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
/***/ }),
/***/ "86d2":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var autoAdjustOverflow = {
adjustX: 1,
adjustY: 1
};
var targetOffset = [0, 0];
var placements = {
bottomLeft: {
points: ['tl', 'tl'],
overflow: autoAdjustOverflow,
offset: [0, -3],
targetOffset: targetOffset
},
bottomRight: {
points: ['tr', 'tr'],
overflow: autoAdjustOverflow,
offset: [0, -3],
targetOffset: targetOffset
},
topRight: {
points: ['br', 'br'],
overflow: autoAdjustOverflow,
offset: [0, 3],
targetOffset: targetOffset
},
topLeft: {
points: ['bl', 'bl'],
overflow: autoAdjustOverflow,
offset: [0, 3],
targetOffset: targetOffset
}
};
exports['default'] = placements;
/***/ }),
/***/ "9076":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = __webpack_require__("6042");
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _vueTypes = __webpack_require__("7b44");
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _BaseMixin = __webpack_require__("48bb");
var _BaseMixin2 = _interopRequireDefault(_BaseMixin);
var _classnames2 = __webpack_require__("4d26");
var _classnames3 = _interopRequireDefault(_classnames2);
var _raf = __webpack_require__("c449");
var _raf2 = _interopRequireDefault(_raf);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function noop() {}
var scrollTo = function scrollTo(element, to, duration) {
// jump to target if duration zero
if (duration <= 0) {
(0, _raf2['default'])(function () {
element.scrollTop = to;
});
return;
}
var difference = to - element.scrollTop;
var perTick = difference / duration * 10;
(0, _raf2['default'])(function () {
element.scrollTop += perTick;
if (element.scrollTop === to) return;
scrollTo(element, to, duration - 10);
});
};
var Select = {
mixins: [_BaseMixin2['default']],
props: {
prefixCls: _vueTypes2['default'].string,
options: _vueTypes2['default'].array,
selectedIndex: _vueTypes2['default'].number,
type: _vueTypes2['default'].string
// onSelect: PropTypes.func,
// onMouseEnter: PropTypes.func,
},
data: function data() {
return {
active: false
};
},
mounted: function mounted() {
var _this = this;
this.$nextTick(function () {
// jump to selected option
_this.scrollToSelected(0);
});
},
watch: {
selectedIndex: function selectedIndex() {
var _this2 = this;
this.$nextTick(function () {
// smooth scroll to selected option
_this2.scrollToSelected(120);
});
}
},
methods: {
onSelect: function onSelect(value) {
var type = this.type;
this.__emit('select', type, value);
},
onEsc: function onEsc(e) {
this.__emit('esc', e);
},
getOptions: function getOptions() {
var _this3 = this;
var h = this.$createElement;
var options = this.options,
selectedIndex = this.selectedIndex,
prefixCls = this.prefixCls;
return options.map(function (item, index) {
var _classnames;
var cls = (0, _classnames3['default'])((_classnames = {}, (0, _defineProperty3['default'])(_classnames, prefixCls + '-select-option-selected', selectedIndex === index), (0, _defineProperty3['default'])(_classnames, prefixCls + '-select-option-disabled', item.disabled), _classnames));
var onClick = item.disabled ? noop : function () {
_this3.onSelect(item.value);
};
var onKeyDown = function onKeyDown(e) {
if (e.keyCode === 13) onClick();else if (e.keyCode === 27) _this3.onEsc();
};
return h(
'li',
{
attrs: {
role: 'button',
disabled: item.disabled,
tabIndex: '0'
},
on: {
'click': onClick,
'keydown': onKeyDown
},
'class': cls,
key: index },
[item.value]
);
});
},
handleMouseEnter: function handleMouseEnter(e) {
this.setState({ active: true });
this.__emit('mouseenter', e);
},
handleMouseLeave: function handleMouseLeave() {
this.setState({ active: false });
},
scrollToSelected: function scrollToSelected(duration) {
// move to selected item
var select = this.$el;
var list = this.$refs.list;
if (!list) {
return;
}
var index = this.selectedIndex;
if (index < 0) {
index = 0;
}
var topOption = list.children[index];
var to = topOption.offsetTop;
scrollTo(select, to, duration);
}
},
render: function render() {
var _cls;
var h = arguments[0];
var prefixCls = this.prefixCls,
options = this.options,
active = this.active;
if (options.length === 0) {
return null;
}
var cls = (_cls = {}, (0, _defineProperty3['default'])(_cls, prefixCls + '-select', 1), (0, _defineProperty3['default'])(_cls, prefixCls + '-select-active', active), _cls);
return h(
'div',
{ 'class': cls, on: {
'mouseenter': this.handleMouseEnter,
'mouseleave': this.handleMouseLeave
}
},
[h(
'ul',
{ ref: 'list' },
[this.getOptions()]
)]
);
}
};
exports['default'] = Select;
/***/ }),
/***/ "ab96":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = __webpack_require__("6042");
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _moment = __webpack_require__("c1df");
var _moment2 = _interopRequireDefault(_moment);
var _classnames = __webpack_require__("4d26");
var _classnames2 = _interopRequireDefault(_classnames);
var _vueTypes = __webpack_require__("7b44");
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _BaseMixin = __webpack_require__("48bb");
var _BaseMixin2 = _interopRequireDefault(_BaseMixin);
var _propsUtil = __webpack_require__("73c8");
var _vnode = __webpack_require__("d2f9");
var _vcTrigger = __webpack_require__("2f52");
var _vcTrigger2 = _interopRequireDefault(_vcTrigger);
var _Panel = __webpack_require__("3962");
var _Panel2 = _interopRequireDefault(_Panel);
var _placements = __webpack_require__("86d2");
var _placements2 = _interopRequireDefault(_placements);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function noop() {}
exports['default'] = {
name: 'VcTimePicker',
mixins: [_BaseMixin2['default']],
props: (0, _propsUtil.initDefaultProps)({
prefixCls: _vueTypes2['default'].string,
clearText: _vueTypes2['default'].string,
value: _vueTypes2['default'].any,
defaultOpenValue: {
type: Object,
'default': function _default() {
return (0, _moment2['default'])();
}
},
inputReadOnly: _vueTypes2['default'].bool,
disabled: _vueTypes2['default'].bool,
allowEmpty: _vueTypes2['default'].bool,
defaultValue: _vueTypes2['default'].any,
open: _vueTypes2['default'].bool,
defaultOpen: _vueTypes2['default'].bool,
align: _vueTypes2['default'].object,
placement: _vueTypes2['default'].any,
transitionName: _vueTypes2['default'].string,
getPopupContainer: _vueTypes2['default'].func,
placeholder: _vueTypes2['default'].string,
format: _vueTypes2['default'].string,
showHour: _vueTypes2['default'].bool,
showMinute: _vueTypes2['default'].bool,
showSecond: _vueTypes2['default'].bool,
popupClassName: _vueTypes2['default'].string,
popupStyle: _vueTypes2['default'].object,
disabledHours: _vueTypes2['default'].func,
disabledMinutes: _vueTypes2['default'].func,
disabledSeconds: _vueTypes2['default'].func,
hideDisabledOptions: _vueTypes2['default'].bool,
// onChange: PropTypes.func,
// onAmPmChange: PropTypes.func,
// onOpen: PropTypes.func,
// onClose: PropTypes.func,
// onFocus: PropTypes.func,
// onBlur: PropTypes.func,
name: _vueTypes2['default'].string,
autoComplete: _vueTypes2['default'].string,
use12Hours: _vueTypes2['default'].bool,
hourStep: _vueTypes2['default'].number,
minuteStep: _vueTypes2['default'].number,
secondStep: _vueTypes2['default'].number,
focusOnOpen: _vueTypes2['default'].bool,
// onKeyDown: PropTypes.func,
autoFocus: _vueTypes2['default'].bool,
id: _vueTypes2['default'].string,
inputIcon: _vueTypes2['default'].any,
clearIcon: _vueTypes2['default'].any,
addon: _vueTypes2['default'].func
}, {
clearText: 'clear',
prefixCls: 'rc-time-picker',
defaultOpen: false,
inputReadOnly: false,
popupClassName: '',
popupStyle: {},
align: {},
allowEmpty: true,
showHour: true,
showMinute: true,
showSecond: true,
disabledHours: noop,
disabledMinutes: noop,
disabledSeconds: noop,
hideDisabledOptions: false,
placement: 'bottomLeft',
use12Hours: false,
focusOnOpen: false
}),
data: function data() {
var defaultOpen = this.defaultOpen,
defaultValue = this.defaultValue,
_open = this.open,
open = _open === undefined ? defaultOpen : _open,
_value = this.value,
value = _value === undefined ? defaultValue : _value;
return {
sOpen: open,
sValue: value
};
},
watch: {
value: function value(val) {
this.setState({
sValue: val
});
},
open: function open(val) {
if (val !== undefined) {
this.setState({
sOpen: val
});
}
}
},
mounted: function mounted() {
var _this = this;
this.$nextTick(function () {
if (_this.autoFocus) {
_this.focus();
}
});
},
methods: {
onPanelChange: function onPanelChange(value) {
this.setValue(value);
},
onAmPmChange: function onAmPmChange(ampm) {
this.__emit('amPmChange', ampm);
},
onClear: function onClear(event) {
event.stopPropagation();
this.setValue(null);
this.setOpen(false);
},
onVisibleChange: function onVisibleChange(open) {
this.setOpen(open);
},
onEsc: function onEsc() {
this.setOpen(false);
this.focus();
},
onKeyDown: function onKeyDown(e) {
if (e.keyCode === 40) {
this.setOpen(true);
}
},
onKeyDown2: function onKeyDown2(e) {
this.__emit('keydown', e);
},
setValue: function setValue(value) {
if (!(0, _propsUtil.hasProp)(this, 'value')) {
this.setState({
sValue: value
});
}
this.__emit('change', value);
},
getFormat: function getFormat() {
var format = this.format,
showHour = this.showHour,
showMinute = this.showMinute,
showSecond = this.showSecond,
use12Hours = this.use12Hours;
if (format) {
return format;
}
if (use12Hours) {
var fmtString = [showHour ? 'h' : '', showMinute ? 'mm' : '', showSecond ? 'ss' : ''].filter(function (item) {
return !!item;
}).join(':');
return fmtString.concat(' a');
}
return [showHour ? 'HH' : '', showMinute ? 'mm' : '', showSecond ? 'ss' : ''].filter(function (item) {
return !!item;
}).join(':');
},
getPanelElement: function getPanelElement() {
var h = this.$createElement;
var prefixCls = this.prefixCls,
placeholder = this.placeholder,
disabledHours = this.disabledHours,
addon = this.addon,
disabledMinutes = this.disabledMinutes,
disabledSeconds = this.disabledSeconds,
hideDisabledOptions = this.hideDisabledOptions,
inputReadOnly = this.inputReadOnly,
showHour = this.showHour,
showMinute = this.showMinute,
showSecond = this.showSecond,
defaultOpenValue = this.defaultOpenValue,
clearText = this.clearText,
use12Hours = this.use12Hours,
focusOnOpen = this.focusOnOpen,
onKeyDown2 = this.onKeyDown2,
hourStep = this.hourStep,
minuteStep = this.minuteStep,
secondStep = this.secondStep,
sValue = this.sValue;
var clearIcon = (0, _propsUtil.getComponentFromProp)(this, 'clearIcon');
return h(_Panel2['default'], {
attrs: {
clearText: clearText,
prefixCls: prefixCls + '-panel',
value: sValue,
inputReadOnly: inputReadOnly,
defaultOpenValue: defaultOpenValue,
showHour: showHour,
showMinute: showMinute,
showSecond: showSecond,
format: this.getFormat(),
placeholder: placeholder,
disabledHours: disabledHours,
disabledMinutes: disabledMinutes,
disabledSeconds: disabledSeconds,
hideDisabledOptions: hideDisabledOptions,
use12Hours: use12Hours,
hourStep: hourStep,
minuteStep: minuteStep,
secondStep: secondStep,
focusOnOpen: focusOnOpen,
clearIcon: clearIcon,
addon: addon
},
ref: 'panel', on: {
'change': this.onPanelChange,
'amPmChange': this.onAmPmChange,
'esc': this.onEsc,
'keydown': onKeyDown2
}
});
},
getPopupClassName: function getPopupClassName() {
var showHour = this.showHour,
showMinute = this.showMinute,
showSecond = this.showSecond,
use12Hours = this.use12Hours,
prefixCls = this.prefixCls,
popupClassName = this.popupClassName;
var selectColumnCount = 0;
if (showHour) {
selectColumnCount += 1;
}
if (showMinute) {
selectColumnCount += 1;
}
if (showSecond) {
selectColumnCount += 1;
}
if (use12Hours) {
selectColumnCount += 1;
}
// Keep it for old compatibility
return (0, _classnames2['default'])(popupClassName, (0, _defineProperty3['default'])({}, prefixCls + '-panel-narrow', (!showHour || !showMinute || !showSecond) && !use12Hours), prefixCls + '-panel-column-' + selectColumnCount);
},
setOpen: function setOpen(open) {
if (this.sOpen !== open) {
if (!(0, _propsUtil.hasProp)(this, 'open')) {
this.setState({ sOpen: open });
}
if (open) {
this.__emit('open', { open: open });
} else {
this.__emit('close', { open: open });
}
}
},
focus: function focus() {
this.$refs.picker.focus();
},
blur: function blur() {
this.$refs.picker.blur();
},
onFocus: function onFocus(e) {
this.__emit('focus', e);
},
onBlur: function onBlur(e) {
this.__emit('blur', e);
},
renderClearButton: function renderClearButton() {
var _this2 = this;
var h = this.$createElement;
var sValue = this.sValue;
var _$props = this.$props,
prefixCls = _$props.prefixCls,
allowEmpty = _$props.allowEmpty,
clearText = _$props.clearText,
disabled = _$props.disabled;
if (!allowEmpty || !sValue || disabled) {
return null;
}
var clearIcon = (0, _propsUtil.getComponentFromProp)(this, 'clearIcon');
if ((0, _propsUtil.isValidElement)(clearIcon)) {
var _ref = (0, _propsUtil.getEvents)(clearIcon) || {},
_click = _ref.click;
return (0, _vnode.cloneElement)(clearIcon, {
on: {
click: function click() {
if (_click) _click.apply(undefined, arguments);
_this2.onClear.apply(_this2, arguments);
}
}
});
}
return h(
'a',
{
attrs: {
role: 'button',
title: clearText,
tabIndex: 0
},
'class': prefixCls + '-clear', on: {
'click': this.onClear
}
},
[clearIcon || h('i', { 'class': prefixCls + '-clear-icon' })]
);
}
},
render: function render() {
var h = arguments[0];
var prefixCls = this.prefixCls,
placeholder = this.placeholder,
placement = this.placement,
align = this.align,
id = this.id,
disabled = this.disabled,
transitionName = this.transitionName,
getPopupContainer = this.getPopupContainer,
name = this.name,
autoComplete = this.autoComplete,
autoFocus = this.autoFocus,
sOpen = this.sOpen,
sValue = this.sValue,
onFocus = this.onFocus,
onBlur = this.onBlur,
popupStyle = this.popupStyle;
var popupClassName = this.getPopupClassName();
var inputIcon = (0, _propsUtil.getComponentFromProp)(this, 'inputIcon');
return h(
_vcTrigger2['default'],
{
attrs: {
prefixCls: prefixCls + '-panel',
popupClassName: popupClassName,
popupStyle: popupStyle,
popupAlign: align,
builtinPlacements: _placements2['default'],
popupPlacement: placement,
action: disabled ? [] : ['click'],
destroyPopupOnHide: true,
getPopupContainer: getPopupContainer,
popupTransitionName: transitionName,
popupVisible: sOpen
},
on: {
'popupVisibleChange': this.onVisibleChange
}
},
[h(
'template',
{ slot: 'popup' },
[this.getPanelElement()]
), h(
'span',
{ 'class': '' + prefixCls },
[h('input', {
'class': prefixCls + '-input',
ref: 'picker',
attrs: { type: 'text',
placeholder: placeholder,
name: name,
disabled: disabled,
autoComplete: autoComplete,
autoFocus: autoFocus,
readOnly: true,
id: id
},
on: {
'keydown': this.onKeyDown,
'focus': onFocus,
'blur': onBlur
},
domProps: {
'value': sValue && sValue.format(this.getFormat()) || ''
}
}), inputIcon || h('span', { 'class': prefixCls + '-icon' }), this.renderClearButton()]
)]
);
}
};
/***/ }),
/***/ "afdf":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TimePickerProps = undefined;
var _defineProperty2 = __webpack_require__("6042");
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _extends2 = __webpack_require__("41b2");
var _extends3 = _interopRequireDefault(_extends2);
exports.generateShowHourMinuteSecond = generateShowHourMinuteSecond;
var _omit = __webpack_require__("0464");
var _omit2 = _interopRequireDefault(_omit);
var _vcTimePicker = __webpack_require__("628f");
var _vcTimePicker2 = _interopRequireDefault(_vcTimePicker);
var _LocaleReceiver = __webpack_require__("3f5f");
var _LocaleReceiver2 = _interopRequireDefault(_LocaleReceiver);
var _BaseMixin = __webpack_require__("48bb");
var _BaseMixin2 = _interopRequireDefault(_BaseMixin);
var _vueTypes = __webpack_require__("7b44");
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _warning = __webpack_require__("a7e2");
var _warning2 = _interopRequireDefault(_warning);
var _icon = __webpack_require__("50f6");
var _icon2 = _interopRequireDefault(_icon);
var _en_US = __webpack_require__("ba1d");
var _en_US2 = _interopRequireDefault(_en_US);
var _propsUtil = __webpack_require__("73c8");
var _vnode = __webpack_require__("d2f9");
var _configConsumerProps = __webpack_require__("bad7");
var _base = __webpack_require__("baff");
var _base2 = _interopRequireDefault(_base);
var _momentUtil = __webpack_require__("4b93");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function generateShowHourMinuteSecond(format) {
// Ref: http://momentjs.com/docs/#/parsing/string-format/
return {
showHour: format.indexOf('H') > -1 || format.indexOf('h') > -1 || format.indexOf('k') > -1,
showMinute: format.indexOf('m') > -1,
showSecond: format.indexOf('s') > -1
};
}
var TimePickerProps = exports.TimePickerProps = function TimePickerProps() {
return {
size: _vueTypes2['default'].oneOf(['large', 'default', 'small']),
value: _momentUtil.TimeOrTimesType,
defaultValue: _momentUtil.TimeOrTimesType,
open: _vueTypes2['default'].bool,
format: _vueTypes2['default'].string,
disabled: _vueTypes2['default'].bool,
placeholder: _vueTypes2['default'].string,
prefixCls: _vueTypes2['default'].string,
hideDisabledOptions: _vueTypes2['default'].bool,
disabledHours: _vueTypes2['default'].func,
disabledMinutes: _vueTypes2['default'].func,
disabledSeconds: _vueTypes2['default'].func,
getPopupContainer: _vueTypes2['default'].func,
use12Hours: _vueTypes2['default'].bool,
focusOnOpen: _vueTypes2['default'].bool,
hourStep: _vueTypes2['default'].number,
minuteStep: _vueTypes2['default'].number,
secondStep: _vueTypes2['default'].number,
allowEmpty: _vueTypes2['default'].bool,
allowClear: _vueTypes2['default'].bool,
inputReadOnly: _vueTypes2['default'].bool,
clearText: _vueTypes2['default'].string,
defaultOpenValue: _vueTypes2['default'].object,
popupClassName: _vueTypes2['default'].string,
popupStyle: _vueTypes2['default'].object,
suffixIcon: _vueTypes2['default'].any,
align: _vueTypes2['default'].object,
placement: _vueTypes2['default'].any,
transitionName: _vueTypes2['default'].string,
autoFocus: _vueTypes2['default'].bool,
addon: _vueTypes2['default'].any,
clearIcon: _vueTypes2['default'].any,
locale: _vueTypes2['default'].object,
valueFormat: _vueTypes2['default'].string
};
};
var TimePicker = {
name: 'ATimePicker',
mixins: [_BaseMixin2['default']],
props: (0, _propsUtil.initDefaultProps)(TimePickerProps(), {
align: {
offset: [0, -2]
},
disabled: false,
disabledHours: undefined,
disabledMinutes: undefined,
disabledSeconds: undefined,
hideDisabledOptions: false,
placement: 'bottomLeft',
transitionName: 'slide-up',
focusOnOpen: true,
allowClear: true
}),
model: {
prop: 'value',
event: 'change'
},
provide: function provide() {
return {
savePopupRef: this.savePopupRef
};
},
inject: {
configProvider: { 'default': function _default() {
return _configConsumerProps.ConfigConsumerProps;
} }
},
data: function data() {
var value = this.value,
defaultValue = this.defaultValue,
valueFormat = this.valueFormat;
(0, _momentUtil.checkValidate)('TimePicker', defaultValue, 'defaultValue', valueFormat);
(0, _momentUtil.checkValidate)('TimePicker', value, 'value', valueFormat);
(0, _warning2['default'])(!(0, _propsUtil.hasProp)(this, 'allowEmpty'), 'TimePicker', '`allowEmpty` is deprecated. Please use `allowClear` instead.');
return {
sValue: (0, _momentUtil.stringToMoment)(value || defaultValue, valueFormat)
};
},
watch: {
value: function value(val) {
(0, _momentUtil.checkValidate)('TimePicker', val, 'value', this.valueFormat);
this.setState({ sValue: (0, _momentUtil.stringToMoment)(val, this.valueFormat) });
}
},
methods: {
getDefaultFormat: function getDefaultFormat() {
var format = this.format,
use12Hours = this.use12Hours;
if (format) {
return format;
} else if (use12Hours) {
return 'h:mm:ss a';
}
return 'HH:mm:ss';
},
getAllowClear: function getAllowClear() {
var _$props = this.$props,
allowClear = _$props.allowClear,
allowEmpty = _$props.allowEmpty;
if ((0, _propsUtil.hasProp)(this, 'allowClear')) {
return allowClear;
}
return allowEmpty;
},
getDefaultLocale: function getDefaultLocale() {
var defaultLocale = (0, _extends3['default'])({}, _en_US2['default'], this.$props.locale);
return defaultLocale;
},
savePopupRef: function savePopupRef(ref) {
this.popupRef = ref;
},
handleChange: function handleChange(value) {
if (!(0, _propsUtil.hasProp)(this, 'value')) {
this.setState({ sValue: value });
}
var _format = this.format,
format = _format === undefined ? 'HH:mm:ss' : _format;
this.$emit('change', this.valueFormat ? (0, _momentUtil.momentToString)(value, this.valueFormat) : value, value && value.format(format) || '');
},
handleOpenClose: function handleOpenClose(_ref) {
var open = _ref.open;
this.$emit('openChange', open);
this.$emit('update:open', open);
},
focus: function focus() {
this.$refs.timePicker.focus();
},
blur: function blur() {
this.$refs.timePicker.blur();
},
renderInputIcon: function renderInputIcon(prefixCls) {
var h = this.$createElement;
var suffixIcon = (0, _propsUtil.getComponentFromProp)(this, 'suffixIcon');
suffixIcon = Array.isArray(suffixIcon) ? suffixIcon[0] : suffixIcon;
var clockIcon = suffixIcon && (0, _propsUtil.isValidElement)(suffixIcon) && (0, _vnode.cloneElement)(suffixIcon, {
'class': prefixCls + '-clock-icon'
}) || h(_icon2['default'], {
attrs: { type: 'clock-circle' },
'class': prefixCls + '-clock-icon' });
return h(
'span',
{ 'class': prefixCls + '-icon' },
[clockIcon]
);
},
renderClearIcon: function renderClearIcon(prefixCls) {
var h = this.$createElement;
var clearIcon = (0, _propsUtil.getComponentFromProp)(this, 'clearIcon');
var clearIconPrefixCls = prefixCls + '-clear';
if (clearIcon && (0, _propsUtil.isValidElement)(clearIcon)) {
return (0, _vnode.cloneElement)(clearIcon, {
'class': clearIconPrefixCls
});
}
return h(_icon2['default'], {
attrs: { type: 'close-circle', theme: 'filled' },
'class': clearIconPrefixCls });
},
renderTimePicker: function renderTimePicker(locale) {
var h = this.$createElement;
var props = (0, _propsUtil.getOptionProps)(this);
props = (0, _omit2['default'])(props, ['defaultValue', 'suffixIcon', 'allowEmpty', 'allowClear']);
var _props = props,
customizePrefixCls = _props.prefixCls,
getPopupContainer = _props.getPopupContainer,
placeholder = _props.placeholder,
size = _props.size;
var getPrefixCls = this.configProvider.getPrefixCls;
var prefixCls = getPrefixCls('time-picker', customizePrefixCls);
var format = this.getDefaultFormat();
var pickerClassName = (0, _defineProperty3['default'])({}, prefixCls + '-' + size, !!size);
var tempAddon = (0, _propsUtil.getComponentFromProp)(this, 'addon', {}, false);
var pickerAddon = function pickerAddon(panel) {
return tempAddon ? h(
'div',
{ 'class': prefixCls + '-panel-addon' },
[typeof tempAddon === 'function' ? tempAddon(panel) : tempAddon]
) : null;
};
var inputIcon = this.renderInputIcon(prefixCls);
var clearIcon = this.renderClearIcon(prefixCls);
var getContextPopupContainer = this.configProvider.getPopupContainer;
var timeProps = {
props: (0, _extends3['default'])({}, generateShowHourMinuteSecond(format), props, {
allowEmpty: this.getAllowClear(),
prefixCls: prefixCls,
getPopupContainer: getPopupContainer || getContextPopupContainer,
format: format,
value: this.sValue,
placeholder: placeholder === undefined ? locale.placeholder : placeholder,
addon: pickerAddon,
inputIcon: inputIcon,
clearIcon: clearIcon
}),
'class': pickerClassName,
ref: 'timePicker',
on: (0, _extends3['default'])({}, (0, _propsUtil.getListeners)(this), {
change: this.handleChange,
open: this.handleOpenClose,
close: this.handleOpenClose
})
};
return h(_vcTimePicker2['default'], timeProps);
}
},
render: function render() {
var h = arguments[0];
return h(_LocaleReceiver2['default'], {
attrs: {
componentName: 'TimePicker',
defaultLocale: this.getDefaultLocale()
},
scopedSlots: { 'default': this.renderTimePicker }
});
}
};
/* istanbul ignore next */
TimePicker.install = function (Vue) {
Vue.use(_base2['default']);
Vue.component(TimePicker.name, TimePicker);
};
exports['default'] = TimePicker;
/***/ }),
/***/ "b6d6":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _vueTypes = __webpack_require__("7b44");
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _Select = __webpack_require__("9076");
var _Select2 = _interopRequireDefault(_Select);
var _BaseMixin = __webpack_require__("48bb");
var _BaseMixin2 = _interopRequireDefault(_BaseMixin);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var formatOption = function formatOption(option, disabledOptions) {
var value = '' + option;
if (option < 10) {
value = '0' + option;
}
var disabled = false;
if (disabledOptions && disabledOptions.indexOf(option) >= 0) {
disabled = true;
}
return {
value: value,
disabled: disabled
};
};
var Combobox = {
mixins: [_BaseMixin2['default']],
name: 'Combobox',
props: {
format: _vueTypes2['default'].string,
defaultOpenValue: _vueTypes2['default'].object,
prefixCls: _vueTypes2['default'].string,
value: _vueTypes2['default'].object,
// onChange: PropTypes.func,
// onAmPmChange: PropTypes.func,
showHour: _vueTypes2['default'].bool,
showMinute: _vueTypes2['default'].bool,
showSecond: _vueTypes2['default'].bool,
hourOptions: _vueTypes2['default'].array,
minuteOptions: _vueTypes2['default'].array,
secondOptions: _vueTypes2['default'].array,
disabledHours: _vueTypes2['default'].func,
disabledMinutes: _vueTypes2['default'].func,
disabledSeconds: _vueTypes2['default'].func,
// onCurrentSelectPanelChange: PropTypes.func,
use12Hours: _vueTypes2['default'].bool,
isAM: _vueTypes2['default'].bool
},
methods: {
onItemChange: function onItemChange(type, itemValue) {
var defaultOpenValue = this.defaultOpenValue,
use12Hours = this.use12Hours,
propValue = this.value,
isAM = this.isAM;
var value = (propValue || defaultOpenValue).clone();
if (type === 'hour') {
if (use12Hours) {
if (isAM) {
value.hour(+itemValue % 12);
} else {
value.hour(+itemValue % 12 + 12);
}
} else {
value.hour(+itemValue);
}
} else if (type === 'minute') {
value.minute(+itemValue);
} else if (type === 'ampm') {
var ampm = itemValue.toUpperCase();
if (use12Hours) {
if (ampm === 'PM' && value.hour() < 12) {
value.hour(value.hour() % 12 + 12);
}
if (ampm === 'AM') {
if (value.hour() >= 12) {
value.hour(value.hour() - 12);
}
}
}
this.__emit('amPmChange', ampm);
} else {
value.second(+itemValue);
}
this.__emit('change', value);
},
onEnterSelectPanel: function onEnterSelectPanel(range) {
this.__emit('currentSelectPanelChange', range);
},
onEsc: function onEsc(e) {
this.__emit('esc', e);
},
getHourSelect: function getHourSelect(hour) {
var _this = this;
var h = this.$createElement;
var prefixCls = this.prefixCls,
hourOptions = this.hourOptions,
disabledHours = this.disabledHours,
showHour = this.showHour,
use12Hours = this.use12Hours;
if (!showHour) {
return null;
}
var disabledOptions = disabledHours();
var hourOptionsAdj = void 0;
var hourAdj = void 0;
if (use12Hours) {
hourOptionsAdj = [12].concat(hourOptions.filter(function (h) {
return h < 12 && h > 0;
}));
hourAdj = hour % 12 || 12;
} else {
hourOptionsAdj = hourOptions;
hourAdj = hour;
}
return h(_Select2['default'], {
attrs: {
prefixCls: prefixCls,
options: hourOptionsAdj.map(function (option) {
return formatOption(option, disabledOptions);
}),
selectedIndex: hourOptionsAdj.indexOf(hourAdj),
type: 'hour'
},
on: {
'select': this.onItemChange,
'mouseenter': function mouseenter() {
return _this.onEnterSelectPanel('hour');
},
'esc': this.onEsc
}
});
},
getMinuteSelect: function getMinuteSelect(minute) {
var _this2 = this;
var h = this.$createElement;
var prefixCls = this.prefixCls,
minuteOptions = this.minuteOptions,
disabledMinutes = this.disabledMinutes,
defaultOpenValue = this.defaultOpenValue,
showMinute = this.showMinute,
propValue = this.value;
if (!showMinute) {
return null;
}
var value = propValue || defaultOpenValue;
var disabledOptions = disabledMinutes(value.hour());
return h(_Select2['default'], {
attrs: {
prefixCls: prefixCls,
options: minuteOptions.map(function (option) {
return formatOption(option, disabledOptions);
}),
selectedIndex: minuteOptions.indexOf(minute),
type: 'minute'
},
on: {
'select': this.onItemChange,
'mouseenter': function mouseenter() {
return _this2.onEnterSelectPanel('minute');
},
'esc': this.onEsc
}
});
},
getSecondSelect: function getSecondSelect(second) {
var _this3 = this;
var h = this.$createElement;
var prefixCls = this.prefixCls,
secondOptions = this.secondOptions,
disabledSeconds = this.disabledSeconds,
showSecond = this.showSecond,
defaultOpenValue = this.defaultOpenValue,
propValue = this.value;
if (!showSecond) {
return null;
}
var value = propValue || defaultOpenValue;
var disabledOptions = disabledSeconds(value.hour(), value.minute());
return h(_Select2['default'], {
attrs: {
prefixCls: prefixCls,
options: secondOptions.map(function (option) {
return formatOption(option, disabledOptions);
}),
selectedIndex: secondOptions.indexOf(second),
type: 'second'
},
on: {
'select': this.onItemChange,
'mouseenter': function mouseenter() {
return _this3.onEnterSelectPanel('second');
},
'esc': this.onEsc
}
});
},
getAMPMSelect: function getAMPMSelect() {
var _this4 = this;
var h = this.$createElement;
var prefixCls = this.prefixCls,
use12Hours = this.use12Hours,
format = this.format,
isAM = this.isAM;
if (!use12Hours) {
return null;
}
var AMPMOptions = ['am', 'pm'] // If format has A char, then we should uppercase AM/PM
.map(function (c) {
return format.match(/\sA/) ? c.toUpperCase() : c;
}).map(function (c) {
return { value: c };
});
var selected = isAM ? 0 : 1;
return h(_Select2['default'], {
attrs: {
prefixCls: prefixCls,
options: AMPMOptions,
selectedIndex: selected,
type: 'ampm'
},
on: {
'select': this.onItemChange,
'mouseenter': function mouseenter() {
return _this4.onEnterSelectPanel('ampm');
},
'esc': this.onEsc
}
});
}
},
render: function render() {
var h = arguments[0];
var prefixCls = this.prefixCls,
defaultOpenValue = this.defaultOpenValue,
propValue = this.value;
var value = propValue || defaultOpenValue;
return h(
'div',
{ 'class': prefixCls + '-combobox' },
[this.getHourSelect(value.hour()), this.getMinuteSelect(value.minute()), this.getSecondSelect(value.second()), this.getAMPMSelect(value.hour())]
);
}
};
exports['default'] = Combobox;
/***/ }),
/***/ "dfc9":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _babelHelperVueJsxMergeProps = __webpack_require__("92fa");
var _babelHelperVueJsxMergeProps2 = _interopRequireDefault(_babelHelperVueJsxMergeProps);
var _vueTypes = __webpack_require__("7b44");
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _BaseMixin = __webpack_require__("48bb");
var _BaseMixin2 = _interopRequireDefault(_BaseMixin);
var _moment = __webpack_require__("c1df");
var _moment2 = _interopRequireDefault(_moment);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var Header = {
mixins: [_BaseMixin2['default']],
props: {
format: _vueTypes2['default'].string,
prefixCls: _vueTypes2['default'].string,
disabledDate: _vueTypes2['default'].func,
placeholder: _vueTypes2['default'].string,
clearText: _vueTypes2['default'].string,
value: _vueTypes2['default'].object,
inputReadOnly: _vueTypes2['default'].bool.def(false),
hourOptions: _vueTypes2['default'].array,
minuteOptions: _vueTypes2['default'].array,
secondOptions: _vueTypes2['default'].array,
disabledHours: _vueTypes2['default'].func,
disabledMinutes: _vueTypes2['default'].func,
disabledSeconds: _vueTypes2['default'].func,
// onChange: PropTypes.func,
// onClear: PropTypes.func,
// onEsc: PropTypes.func,
allowEmpty: _vueTypes2['default'].bool,
defaultOpenValue: _vueTypes2['default'].object,
currentSelectPanel: _vueTypes2['default'].string,
focusOnOpen: _vueTypes2['default'].bool,
// onKeyDown: PropTypes.func,
clearIcon: _vueTypes2['default'].any
},
data: function data() {
var value = this.value,
format = this.format;
return {
str: value && value.format(format) || '',
invalid: false
};
},
mounted: function mounted() {
var _this = this;
if (this.focusOnOpen) {
// Wait one frame for the panel to be positioned before focusing
var requestAnimationFrame = window.requestAnimationFrame || window.setTimeout;
requestAnimationFrame(function () {
_this.$refs.input.focus();
_this.$refs.input.select();
});
}
},
watch: {
value: function value(val) {
var _this2 = this;
this.$nextTick(function () {
_this2.setState({
str: val && val.format(_this2.format) || '',
invalid: false
});
});
}
},
methods: {
onInputChange: function onInputChange(e) {
var _e$target = e.target,
str = _e$target.value,
composing = _e$target.composing;
var _str = this.str,
oldStr = _str === undefined ? '' : _str;
if (e.isComposing || composing || oldStr === str) return;
this.setState({
str: str
});
var format = this.format,
hourOptions = this.hourOptions,
minuteOptions = this.minuteOptions,
secondOptions = this.secondOptions,
disabledHours = this.disabledHours,
disabledMinutes = this.disabledMinutes,
disabledSeconds = this.disabledSeconds,
originalValue = this.value;
if (str) {
var value = this.getProtoValue().clone();
var parsed = (0, _moment2['default'])(str, format, true);
if (!parsed.isValid()) {
this.setState({
invalid: true
});
return;
}
value.hour(parsed.hour()).minute(parsed.minute()).second(parsed.second());
// if time value not allowed, response warning.
if (hourOptions.indexOf(value.hour()) < 0 || minuteOptions.indexOf(value.minute()) < 0 || s