1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
| 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);
|
|