import _mergeJSXProps2 from "@vue/babel-helper-vue-jsx-merge-props"; import _mergeJSXProps from "@vue/babel-helper-vue-jsx-merge-props"; import _extends from "@babel/runtime/helpers/esm/extends"; // Utils import { createNamespace } from '../utils'; import { inherit, emit } from '../utils/functional'; import { preventDefault } from '../utils/dom/event'; // Components import Field from '../field'; // Types var _createNamespace = createNamespace('search'), createComponent = _createNamespace[0], bem = _createNamespace[1], t = _createNamespace[2]; function Search(h, props, slots, ctx) { function Label() { if (slots.label || props.label) { return h("div", { "class": bem('label') }, [slots.label ? slots.label() : props.label]); } } function Action() { if (!props.showAction) { return; } function onCancel() { if (slots.action) { return; } emit(ctx, 'input', ''); emit(ctx, 'cancel'); } return h("div", { "class": bem('action'), "attrs": { "role": "button", "tabindex": "0" }, "on": { "click": onCancel } }, [slots.action ? slots.action() : props.actionText || t('cancel')]); } var fieldData = { attrs: ctx.data.attrs, on: _extends({}, ctx.listeners, { keypress: function keypress(event) { // press enter if (event.keyCode === 13) { preventDefault(event); emit(ctx, 'search', props.value); } emit(ctx, 'keypress', event); } }) }; var inheritData = inherit(ctx); inheritData.attrs = undefined; return h("div", _mergeJSXProps2([{ "class": bem({ 'show-action': props.showAction }), "style": { background: props.background } }, inheritData]), [slots.left == null ? void 0 : slots.left(), h("div", { "class": bem('content', props.shape) }, [Label(), h(Field, _mergeJSXProps([{ "attrs": { "type": "search", "border": false, "value": props.value, "leftIcon": props.leftIcon, "rightIcon": props.rightIcon, "clearable": props.clearable, "clearTrigger": props.clearTrigger }, "scopedSlots": { 'left-icon': slots['left-icon'], 'right-icon': slots['right-icon'] } }, fieldData]))]), Action()]); } Search.props = { value: String, label: String, rightIcon: String, actionText: String, background: String, showAction: Boolean, clearTrigger: String, shape: { type: String, default: 'square' }, clearable: { type: Boolean, default: true }, leftIcon: { type: String, default: 'search' } }; export default createComponent(Search);