@opentiny/vue-search-box 0.1.6 → 2.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/index.es.js +2772 -0
- package/es/index.es.js.map +1 -0
- package/lib/index.cjs.js +2 -0
- package/lib/index.cjs.js.map +1 -0
- package/package.json +36 -56
- package/README.md +0 -134
- package/README.zh-CN.md +0 -135
- package/dist/es/components/first-level-panel.vue.es.js +0 -4
- package/dist/es/components/first-level-panel.vue.es2.js +0 -177
- package/dist/es/components/second-level-panel.vue.es.js +0 -4
- package/dist/es/components/second-level-panel.vue.es2.js +0 -466
- package/dist/es/composables/use-checkbox.es.js +0 -74
- package/dist/es/composables/use-custom.es.js +0 -49
- package/dist/es/composables/use-datepicker.es.js +0 -86
- package/dist/es/composables/use-dropdown.es.js +0 -216
- package/dist/es/composables/use-edit.es.js +0 -108
- package/dist/es/composables/use-init.es.js +0 -78
- package/dist/es/composables/use-match.es.js +0 -170
- package/dist/es/composables/use-num-range.es.js +0 -77
- package/dist/es/composables/use-placeholder.es.js +0 -41
- package/dist/es/composables/use-tag.es.js +0 -56
- package/dist/es/index-Tlzvfwv-.css +0 -401
- package/dist/es/index.es.js +0 -45
- package/dist/es/index.type.es.js +0 -1
- package/dist/es/index.vue.es.js +0 -4
- package/dist/es/index.vue.es2.js +0 -780
- package/dist/es/smb-theme.es.js +0 -18
- package/dist/es/utils/clone.es.js +0 -29
- package/dist/es/utils/date.es.js +0 -431
- package/dist/es/utils/dropdown.es.js +0 -24
- package/dist/es/utils/en_US.es.js +0 -45
- package/dist/es/utils/index.es.js +0 -13
- package/dist/es/utils/tag.es.js +0 -44
- package/dist/es/utils/type.es.js +0 -4
- package/dist/es/utils/validate.es.js +0 -179
- package/dist/es/utils/zh_CN.es.js +0 -45
- package/dist/index.css +0 -401
- package/dist/lib/components/first-level-panel.vue.cjs.js +0 -4
- package/dist/lib/components/first-level-panel.vue.cjs2.js +0 -177
- package/dist/lib/components/second-level-panel.vue.cjs.js +0 -4
- package/dist/lib/components/second-level-panel.vue.cjs2.js +0 -466
- package/dist/lib/composables/use-checkbox.cjs.js +0 -74
- package/dist/lib/composables/use-custom.cjs.js +0 -49
- package/dist/lib/composables/use-datepicker.cjs.js +0 -86
- package/dist/lib/composables/use-dropdown.cjs.js +0 -216
- package/dist/lib/composables/use-edit.cjs.js +0 -108
- package/dist/lib/composables/use-init.cjs.js +0 -78
- package/dist/lib/composables/use-match.cjs.js +0 -170
- package/dist/lib/composables/use-num-range.cjs.js +0 -77
- package/dist/lib/composables/use-placeholder.cjs.js +0 -41
- package/dist/lib/composables/use-tag.cjs.js +0 -56
- package/dist/lib/index-Tlzvfwv-.css +0 -401
- package/dist/lib/index.cjs.js +0 -45
- package/dist/lib/index.type.cjs.js +0 -1
- package/dist/lib/index.vue.cjs.js +0 -4
- package/dist/lib/index.vue.cjs2.js +0 -780
- package/dist/lib/smb-theme.cjs.js +0 -18
- package/dist/lib/utils/clone.cjs.js +0 -29
- package/dist/lib/utils/date.cjs.js +0 -431
- package/dist/lib/utils/dropdown.cjs.js +0 -24
- package/dist/lib/utils/en_US.cjs.js +0 -45
- package/dist/lib/utils/index.cjs.js +0 -13
- package/dist/lib/utils/tag.cjs.js +0 -44
- package/dist/lib/utils/type.cjs.js +0 -4
- package/dist/lib/utils/validate.cjs.js +0 -179
- package/dist/lib/utils/zh_CN.cjs.js +0 -45
- package/dist/types/composables/use-checkbox.d.ts +0 -8
- package/dist/types/composables/use-custom.d.ts +0 -7
- package/dist/types/composables/use-datepicker.d.ts +0 -11
- package/dist/types/composables/use-dropdown.d.ts +0 -14
- package/dist/types/composables/use-edit.d.ts +0 -13
- package/dist/types/composables/use-init.d.ts +0 -10
- package/dist/types/composables/use-match.d.ts +0 -8
- package/dist/types/composables/use-num-range.d.ts +0 -9
- package/dist/types/composables/use-placeholder.d.ts +0 -8
- package/dist/types/composables/use-tag.d.ts +0 -9
- package/dist/types/smb-theme.d.ts +0 -15
- package/dist/types/utils/clone.d.ts +0 -12
- package/dist/types/utils/date.d.ts +0 -234
- package/dist/types/utils/dropdown.d.ts +0 -12
- package/dist/types/utils/en_US.d.ts +0 -43
- package/dist/types/utils/index.d.ts +0 -1
- package/dist/types/utils/tag.d.ts +0 -46
- package/dist/types/utils/type.d.ts +0 -6
- package/dist/types/utils/validate.d.ts +0 -31
- package/dist/types/utils/zh_CN.d.ts +0 -43
- /package/{dist/types → types}/index.type.d.ts +0 -0
package/package.json
CHANGED
|
@@ -1,70 +1,50 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opentiny/vue-search-box",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.27.0",
|
|
4
4
|
"description": "",
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
|
|
5
|
+
"main": "lib/index.cjs.js",
|
|
6
|
+
"module": "es/index.es.js",
|
|
7
|
+
"types": "types/index.d.ts",
|
|
8
|
+
"sideEffects": false,
|
|
9
|
+
"publishConfig": {
|
|
10
|
+
"access": "public"
|
|
8
11
|
},
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"url": "git+https://github.com/opentiny/tiny-search-box.git"
|
|
12
|
+
"peerDependencies": {
|
|
13
|
+
"vue": "^2.6.14"
|
|
12
14
|
},
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
"
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@opentiny/vue-button": "^2.26.0",
|
|
17
|
+
"@opentiny/vue-checkbox": "^2.26.0",
|
|
18
|
+
"@opentiny/vue-checkbox-group": "^2.26.0",
|
|
19
|
+
"@opentiny/vue-date-picker": "^2.26.0",
|
|
20
|
+
"@opentiny/vue-dropdown": "^2.26.0",
|
|
21
|
+
"@opentiny/vue-dropdown-item": "^2.26.0",
|
|
22
|
+
"@opentiny/vue-dropdown-menu": "^2.26.0",
|
|
23
|
+
"@opentiny/vue-form": "^2.26.0",
|
|
24
|
+
"@opentiny/vue-form-item": "^2.26.0",
|
|
25
|
+
"@opentiny/vue-icon": "^2.26.0",
|
|
26
|
+
"@opentiny/vue-input": "^2.26.0",
|
|
27
|
+
"@opentiny/vue-loading": "^2.26.0",
|
|
28
|
+
"@opentiny/vue-option": "^2.26.0",
|
|
29
|
+
"@opentiny/vue-popover": "^2.26.0",
|
|
30
|
+
"@opentiny/vue-select": "^2.26.0",
|
|
31
|
+
"@opentiny/vue-tag": "^2.26.0",
|
|
32
|
+
"@opentiny/vue-tooltip": "^2.26.0",
|
|
33
|
+
"@opentiny/vue-common": "^2.26.0",
|
|
34
|
+
"@opentiny/vue-theme": "^3.26.0"
|
|
23
35
|
},
|
|
24
|
-
"files": [
|
|
25
|
-
"dist"
|
|
26
|
-
],
|
|
27
36
|
"keywords": [
|
|
28
37
|
"search",
|
|
29
38
|
"comprehensive search",
|
|
30
39
|
"opentiny"
|
|
31
40
|
],
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
"@opentiny/vue-button": "^3.22.0",
|
|
37
|
-
"@opentiny/vue-checkbox": "^3.22.0",
|
|
38
|
-
"@opentiny/vue-checkbox-group": "^3.22.0",
|
|
39
|
-
"@opentiny/vue-date-picker": "^3.22.0",
|
|
40
|
-
"@opentiny/vue-dropdown": "^3.22.0",
|
|
41
|
-
"@opentiny/vue-dropdown-item": "^3.22.0",
|
|
42
|
-
"@opentiny/vue-dropdown-menu": "^3.22.0",
|
|
43
|
-
"@opentiny/vue-form": "^3.22.0",
|
|
44
|
-
"@opentiny/vue-form-item": "^3.22.0",
|
|
45
|
-
"@opentiny/vue-icon": "^3.22.0",
|
|
46
|
-
"@opentiny/vue-input": "^3.22.0",
|
|
47
|
-
"@opentiny/vue-loading": "^3.22.0",
|
|
48
|
-
"@opentiny/vue-option": "^3.22.0",
|
|
49
|
-
"@opentiny/vue-popover": "^3.22.0",
|
|
50
|
-
"@opentiny/vue-select": "^3.22.0",
|
|
51
|
-
"@opentiny/vue-tag": "^3.22.0",
|
|
52
|
-
"@opentiny/vue-tooltip": "^3.22.0"
|
|
53
|
-
},
|
|
54
|
-
"devDependencies": {
|
|
55
|
-
"@vitejs/plugin-vue": "^4.0.0",
|
|
56
|
-
"commander": "^6.2.0",
|
|
57
|
-
"glob": "^11.0.0",
|
|
58
|
-
"vue": "^3.0.0",
|
|
59
|
-
"less": "^4.2.2",
|
|
60
|
-
"shelljs": "^0.8.4",
|
|
61
|
-
"typescript": "^5.8.2",
|
|
62
|
-
"vite": "^6.2.2",
|
|
63
|
-
"vite-plugin-dts": "^4.3.0"
|
|
41
|
+
"license": "MIT",
|
|
42
|
+
"repository": {
|
|
43
|
+
"type": "git",
|
|
44
|
+
"url": "git+https://github.com/opentiny/tiny-search-box.git"
|
|
64
45
|
},
|
|
65
|
-
"
|
|
66
|
-
|
|
67
|
-
"
|
|
68
|
-
"prepublish": "node scripts/pre-release.cjs"
|
|
46
|
+
"homepage": "https://github.com/opentiny/tiny-search-box#readme",
|
|
47
|
+
"bugs": {
|
|
48
|
+
"url": "https://github.com/opentiny/tiny-search-box/issues"
|
|
69
49
|
}
|
|
70
50
|
}
|
package/README.md
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
# TinySearchBox
|
|
2
|
-
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
3
|
-
[](#contributors-)
|
|
4
|
-
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
5
|
-
|
|
6
|
-
TinySearchBox is a comprehensive search component based on Vue3. It uses the TinyVue component library and follows the OpenTiny design specifications. It is easy to use and powerful. It supports single selection, multiple selection, time, time range and so on.
|
|
7
|
-
|
|
8
|
-
English | [简体中文](README.zh-CN.md)
|
|
9
|
-
|
|
10
|
-
## Advantages
|
|
11
|
-
|
|
12
|
-
TinySearchBox has the following advantages:
|
|
13
|
-
|
|
14
|
-
- Gather the filtering criteria into one input box for higher filtering efficiency and a better user experience
|
|
15
|
-
- Supports multiple types of conditional filtering such as single selection, multiple selection, time, time interval, number size, and number interval
|
|
16
|
-
- Powerful search functions, supporting fuzzy search, custom search, etc.
|
|
17
|
-
|
|
18
|
-

|
|
19
|
-
|
|
20
|
-
## Quick Start
|
|
21
|
-
|
|
22
|
-
Install TinySearchBox:
|
|
23
|
-
|
|
24
|
-
```shell
|
|
25
|
-
npm i @opentiny/vue-search-box
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Import TinySearchBox:
|
|
29
|
-
|
|
30
|
-
```javascript
|
|
31
|
-
import TinySearchBox from '@opentiny/vue-search-box';
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Import styles:
|
|
35
|
-
|
|
36
|
-
```css
|
|
37
|
-
@import '@opentiny/vue-search-box/dist/index.css';
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
html:
|
|
41
|
-
|
|
42
|
-
```html
|
|
43
|
-
<script setup>
|
|
44
|
-
const tags = ref([]);
|
|
45
|
-
const items = ref([
|
|
46
|
-
{
|
|
47
|
-
label: '名称',
|
|
48
|
-
field: 'testName',
|
|
49
|
-
replace: true,
|
|
50
|
-
placeholder: '我是自定义名称的占位符',
|
|
51
|
-
options: [
|
|
52
|
-
{
|
|
53
|
-
label: 'test-1'
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
label: 'test-2'
|
|
57
|
-
}
|
|
58
|
-
]
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
label: '可用地区',
|
|
62
|
-
field: 'testRegion',
|
|
63
|
-
type: 'checkbox',
|
|
64
|
-
mergeTag: true,
|
|
65
|
-
placeholder: '我是自定义可选地区的占位符',
|
|
66
|
-
editAttrDisabled: true, // 编辑状态此属性禁用,不可变更
|
|
67
|
-
options: [
|
|
68
|
-
{
|
|
69
|
-
label: '华南区',
|
|
70
|
-
id: '2-1'
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
label: '华北区',
|
|
74
|
-
id: '2-2'
|
|
75
|
-
}
|
|
76
|
-
]
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
label: '大小',
|
|
80
|
-
field: 'size',
|
|
81
|
-
type: 'numRange',
|
|
82
|
-
placeholder: '我是自定义大小的占位符',
|
|
83
|
-
unit: 'GB',
|
|
84
|
-
start: -1,
|
|
85
|
-
min: -1,
|
|
86
|
-
max: 20
|
|
87
|
-
}
|
|
88
|
-
]);
|
|
89
|
-
</script>
|
|
90
|
-
|
|
91
|
-
<template>
|
|
92
|
-
<TinySearchBox v-model="tags" :items="items"></TinySearchBox>
|
|
93
|
-
</template>
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## Development
|
|
97
|
-
|
|
98
|
-
```shell
|
|
99
|
-
git clone git@github.com:opentiny/tiny-search-box.git
|
|
100
|
-
cd tiny-search-box
|
|
101
|
-
pnpm i
|
|
102
|
-
pnpm dev
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
Open a browser to access:[http://localhost:5173/tiny-search-box/](http://localhost:5173/tiny-search-box/)
|
|
106
|
-
|
|
107
|
-
## License
|
|
108
|
-
|
|
109
|
-
[MIT](LICENSE)
|
|
110
|
-
|
|
111
|
-
## Contributors ✨
|
|
112
|
-
|
|
113
|
-
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
|
|
114
|
-
|
|
115
|
-
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
|
116
|
-
<!-- prettier-ignore-start -->
|
|
117
|
-
<!-- markdownlint-disable -->
|
|
118
|
-
<table>
|
|
119
|
-
<tbody>
|
|
120
|
-
<tr>
|
|
121
|
-
<td align="center" valign="top" width="12.5%"><a href="https://github.com/chenxi-20"><img src="https://avatars.githubusercontent.com/u/76168465?v=4?s=100" width="100px;" alt="chenxi-20"/><br /><sub><b>chenxi-20</b></sub></a><br /><a href="https://github.com/opentiny/tiny-vue/commits?author=chenxi-20" title="Code">💻</a></td>
|
|
122
|
-
<td align="center" valign="top" width="12.5%"><a href="https://kagol.github.io/blogs"><img src="https://avatars.githubusercontent.com/u/9566362?v=4?s=100" width="100px;" alt="Kagol"/><br /><sub><b>Kagol</b></sub></a><br /><a href="https://github.com/opentiny/tiny-search-box/commits?author=kagol" title="Code">💻</a></td>
|
|
123
|
-
<td align="center" valign="top" width="12.5%"><a href="https://github.com/zzcr"><img src="https://avatars.githubusercontent.com/u/18521562?v=4?s=100" width="100px;" alt="ajaxzheng"/><br /><sub><b>ajaxzheng</b></sub></a><br /><a href="https://github.com/opentiny/tiny-search-box/commits?author=zzcr" title="Code">💻</a></td>
|
|
124
|
-
<td align="center" valign="top" width="12.5%"><a href="https://github.com/discreted66"><img src="https://avatars.githubusercontent.com/u/190872652?v=4?s=100" width="100px;" alt="liukun"/><br /><sub><b>liukun</b></sub></a><br /><a href="https://github.com/opentiny/tiny-vue/commits?author=discreted66" title="Code">💻</a></td>
|
|
125
|
-
</tr>
|
|
126
|
-
</tbody>
|
|
127
|
-
</table>
|
|
128
|
-
|
|
129
|
-
<!-- markdownlint-restore -->
|
|
130
|
-
<!-- prettier-ignore-end -->
|
|
131
|
-
|
|
132
|
-
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
|
133
|
-
|
|
134
|
-
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
|
package/README.zh-CN.md
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
# TinySearchBox 综合搜索组件
|
|
2
|
-
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
3
|
-
[](#contributors-)
|
|
4
|
-
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
5
|
-
|
|
6
|
-
TinySearchBox 是一个基于 Vue3 的综合搜索组件,使用 TinyVue 组件库,遵循 OpenTiny 设计规范,简单易用、功能强大,支持单选、多选、时间、时间区间等多条件筛选。
|
|
7
|
-
|
|
8
|
-
[English](README.md) | 简体中文
|
|
9
|
-
|
|
10
|
-
## 项目优势
|
|
11
|
-
|
|
12
|
-
TinySearchBox 主要有以下特点和优势:
|
|
13
|
-
|
|
14
|
-
- 将筛选条件聚拢在一个输入框中,筛选效率更高、用户体验更好
|
|
15
|
-
- 支持单选、多选、时间、时间区间、数字大小、数字区间等多种类型条件筛选
|
|
16
|
-
- 强大的搜索功能,支持模糊搜索、自定义搜索等
|
|
17
|
-
|
|
18
|
-

|
|
19
|
-
|
|
20
|
-
## 快速上手
|
|
21
|
-
|
|
22
|
-
安装 TinySearchBox
|
|
23
|
-
|
|
24
|
-
```shell
|
|
25
|
-
npm i @opentiny/vue-search-box
|
|
26
|
-
```
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
导入 TinySearchBox 综合搜索:
|
|
30
|
-
|
|
31
|
-
```javascript
|
|
32
|
-
import TinySearchBox from '@opentiny/vue-search-box';
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
引入样式:
|
|
36
|
-
|
|
37
|
-
```css
|
|
38
|
-
@import '@opentiny/vue-search-box/dist/index.css';
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
在模板中使用:
|
|
42
|
-
|
|
43
|
-
```html
|
|
44
|
-
<script setup>
|
|
45
|
-
const tags = ref([]);
|
|
46
|
-
const items = ref([
|
|
47
|
-
{
|
|
48
|
-
label: '名称',
|
|
49
|
-
field: 'testName',
|
|
50
|
-
replace: true,
|
|
51
|
-
placeholder: '我是自定义名称的占位符',
|
|
52
|
-
options: [
|
|
53
|
-
{
|
|
54
|
-
label: 'test-1'
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
label: 'test-2'
|
|
58
|
-
}
|
|
59
|
-
]
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
label: '可用地区',
|
|
63
|
-
field: 'testRegion',
|
|
64
|
-
type: 'checkbox',
|
|
65
|
-
mergeTag: true,
|
|
66
|
-
placeholder: '我是自定义可选地区的占位符',
|
|
67
|
-
editAttrDisabled: true, // 编辑状态此属性禁用,不可变更
|
|
68
|
-
options: [
|
|
69
|
-
{
|
|
70
|
-
label: '华南区',
|
|
71
|
-
id: '2-1'
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
label: '华北区',
|
|
75
|
-
id: '2-2'
|
|
76
|
-
}
|
|
77
|
-
]
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
label: '大小',
|
|
81
|
-
field: 'size',
|
|
82
|
-
type: 'numRange',
|
|
83
|
-
placeholder: '我是自定义大小的占位符',
|
|
84
|
-
unit: 'GB',
|
|
85
|
-
start: -1,
|
|
86
|
-
min: -1,
|
|
87
|
-
max: 20
|
|
88
|
-
}
|
|
89
|
-
]);
|
|
90
|
-
</script>
|
|
91
|
-
|
|
92
|
-
<template>
|
|
93
|
-
<tiny-search-box v-model="tags" :items="items"></tiny-search-box>
|
|
94
|
-
</template>
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
## 本地开发
|
|
98
|
-
|
|
99
|
-
```shell
|
|
100
|
-
git clone git@github.com:opentiny/tiny-search-box.git
|
|
101
|
-
cd tiny-search-box
|
|
102
|
-
pnpm i
|
|
103
|
-
pnpm dev
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
打开浏览器访问:[http://localhost:5173/tiny-search-box/](http://localhost:5173/tiny-search-box/)
|
|
107
|
-
|
|
108
|
-
## License
|
|
109
|
-
|
|
110
|
-
[MIT](LICENSE)
|
|
111
|
-
|
|
112
|
-
## Contributors ✨
|
|
113
|
-
|
|
114
|
-
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
|
|
115
|
-
|
|
116
|
-
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
|
117
|
-
<!-- prettier-ignore-start -->
|
|
118
|
-
<!-- markdownlint-disable -->
|
|
119
|
-
<table>
|
|
120
|
-
<tbody>
|
|
121
|
-
<tr>
|
|
122
|
-
<td align="center" valign="top" width="12.5%"><a href="https://github.com/chenxi-20"><img src="https://avatars.githubusercontent.com/u/76168465?v=4?s=100" width="100px;" alt="chenxi-20"/><br /><sub><b>chenxi-20</b></sub></a><br /><a href="https://github.com/opentiny/tiny-vue/commits?author=chenxi-20" title="Code">💻</a></td>
|
|
123
|
-
<td align="center" valign="top" width="12.5%"><a href="https://kagol.github.io/blogs"><img src="https://avatars.githubusercontent.com/u/9566362?v=4?s=100" width="100px;" alt="Kagol"/><br /><sub><b>Kagol</b></sub></a><br /><a href="https://github.com/opentiny/tiny-search-box/commits?author=kagol" title="Code">💻</a></td>
|
|
124
|
-
<td align="center" valign="top" width="12.5%"><a href="https://github.com/zzcr"><img src="https://avatars.githubusercontent.com/u/18521562?v=4?s=100" width="100px;" alt="ajaxzheng"/><br /><sub><b>ajaxzheng</b></sub></a><br /><a href="https://github.com/opentiny/tiny-search-box/commits?author=zzcr" title="Code">💻</a></td>
|
|
125
|
-
<td align="center" valign="top" width="12.5%"><a href="https://github.com/discreted66"><img src="https://avatars.githubusercontent.com/u/190872652?v=4?s=100" width="100px;" alt="liukun"/><br /><sub><b>liukun</b></sub></a><br /><a href="https://github.com/opentiny/tiny-vue/commits?author=discreted66" title="Code">💻</a></td>
|
|
126
|
-
</tr>
|
|
127
|
-
</tbody>
|
|
128
|
-
</table>
|
|
129
|
-
|
|
130
|
-
<!-- markdownlint-restore -->
|
|
131
|
-
<!-- prettier-ignore-end -->
|
|
132
|
-
|
|
133
|
-
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
|
134
|
-
|
|
135
|
-
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
import { defineComponent, createElementBlock, openBlock, Fragment, withDirectives, createVNode, unref, withCtx, createElementVNode, toDisplayString, vShow, renderList, createCommentVNode, createBlock, createTextVNode } from "vue";
|
|
2
|
-
import TinyDropdownItem from "@opentiny/vue-dropdown-item";
|
|
3
|
-
import { t } from "../index.es.js";
|
|
4
|
-
/* empty css */
|
|
5
|
-
const _hoisted_1 = { class: "tvp-search-box__filter-type" };
|
|
6
|
-
const _hoisted_2 = {
|
|
7
|
-
key: 0,
|
|
8
|
-
class: "tvp-search-box__text-highlight"
|
|
9
|
-
};
|
|
10
|
-
const _hoisted_3 = { class: "tvp-search-box__filter-type" };
|
|
11
|
-
const _hoisted_4 = {
|
|
12
|
-
key: 0,
|
|
13
|
-
class: "tvp-search-box__text-highlight"
|
|
14
|
-
};
|
|
15
|
-
const _hoisted_5 = { class: "tvp-search-box__filter-type" };
|
|
16
|
-
const _hoisted_6 = {
|
|
17
|
-
id: "potential-loading",
|
|
18
|
-
class: "tvp-search-box__potential-box"
|
|
19
|
-
};
|
|
20
|
-
const _hoisted_7 = { key: 0 };
|
|
21
|
-
const _hoisted_8 = { class: "tvp-search-box__text-highlight" };
|
|
22
|
-
const _hoisted_9 = { class: "tvp-search-box__first-panel" };
|
|
23
|
-
const _hoisted_10 = {
|
|
24
|
-
key: 0,
|
|
25
|
-
class: "tvp-search-box__filter-type"
|
|
26
|
-
};
|
|
27
|
-
const _hoisted_11 = ["title"];
|
|
28
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
29
|
-
...{
|
|
30
|
-
name: "TinySearchBoxFirstLevelPanel"
|
|
31
|
-
},
|
|
32
|
-
__name: "first-level-panel",
|
|
33
|
-
props: {
|
|
34
|
-
state: {
|
|
35
|
-
type: Object,
|
|
36
|
-
default: () => ({})
|
|
37
|
-
},
|
|
38
|
-
potentialOptions: {
|
|
39
|
-
type: Array,
|
|
40
|
-
default: () => []
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
emits: ["events", "selectInputValue", "selectPropItem", "selectRadioItem"],
|
|
44
|
-
setup(__props, { emit: __emit }) {
|
|
45
|
-
const emits = __emit;
|
|
46
|
-
const events = (eventName, p1, p2) => {
|
|
47
|
-
emits("events", eventName, p1, p2);
|
|
48
|
-
};
|
|
49
|
-
const selectInputValue = (e) => {
|
|
50
|
-
events("selectInputValue", e);
|
|
51
|
-
};
|
|
52
|
-
const selectPropItem = (e) => {
|
|
53
|
-
events("selectPropItem", e);
|
|
54
|
-
};
|
|
55
|
-
const selectRadioItem = (e, v) => {
|
|
56
|
-
events("selectRadioItem", e, v);
|
|
57
|
-
};
|
|
58
|
-
return (_ctx, _cache) => {
|
|
59
|
-
return openBlock(), createElementBlock(Fragment, null, [
|
|
60
|
-
withDirectives(createVNode(unref(TinyDropdownItem), {
|
|
61
|
-
class: "tvp-search-box__filter-item tvp-search-box__dropdown-item tvp-search-box__dropdown-item-init",
|
|
62
|
-
onClick: _cache[0] || (_cache[0] = ($event) => selectInputValue(__props.state.inputValue))
|
|
63
|
-
}, {
|
|
64
|
-
default: withCtx(() => [
|
|
65
|
-
createElementVNode("span", null, toDisplayString(unref(t)("tvp.tvpSearchbox.initUse")) + """ + toDisplayString(__props.state.inputValue) + """, 1)
|
|
66
|
-
]),
|
|
67
|
-
_: 1
|
|
68
|
-
}, 512), [
|
|
69
|
-
[vShow, __props.state.inputValue.trim()]
|
|
70
|
-
]),
|
|
71
|
-
withDirectives(createElementVNode("div", null, [
|
|
72
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.state.matchItems, (value, key) => {
|
|
73
|
-
return openBlock(), createElementBlock(Fragment, { key }, [
|
|
74
|
-
value["attr"].length ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
75
|
-
createElementVNode("span", _hoisted_1, toDisplayString(key === "0" ? unref(t)("tvp.tvpSearchbox.attributeType") : key), 1),
|
|
76
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(value["attr"], (item, index) => {
|
|
77
|
-
return openBlock(), createBlock(unref(TinyDropdownItem), {
|
|
78
|
-
key: item.label + index,
|
|
79
|
-
class: "tvp-search-box__filter-item tvp-search-box__dropdown-item",
|
|
80
|
-
onClick: ($event) => selectPropItem(item)
|
|
81
|
-
}, {
|
|
82
|
-
default: withCtx(() => [
|
|
83
|
-
createElementVNode("span", null, [
|
|
84
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(item.match, (text) => {
|
|
85
|
-
return openBlock(), createElementBlock(Fragment, { key: text }, [
|
|
86
|
-
text.toLowerCase() === item.hightlighStr ? (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(text), 1)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
87
|
-
createTextVNode(toDisplayString(text), 1)
|
|
88
|
-
], 64))
|
|
89
|
-
], 64);
|
|
90
|
-
}), 128))
|
|
91
|
-
])
|
|
92
|
-
]),
|
|
93
|
-
_: 2
|
|
94
|
-
}, 1032, ["onClick"]);
|
|
95
|
-
}), 128))
|
|
96
|
-
], 64)) : createCommentVNode("", true),
|
|
97
|
-
value["attrValue"].length ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
98
|
-
createElementVNode("span", _hoisted_3, toDisplayString(unref(t)("tvp.tvpSearchbox.propertyValue", [key === "0" ? unref(t)("tvp.tvpSearchbox.attributeType") : key])), 1),
|
|
99
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(value["attrValue"], (item, index) => {
|
|
100
|
-
return openBlock(), createBlock(unref(TinyDropdownItem), {
|
|
101
|
-
key: item.label + index,
|
|
102
|
-
disabled: item.isChecked,
|
|
103
|
-
class: "tvp-search-box__filter-item tvp-search-box__dropdown-item",
|
|
104
|
-
onClick: ($event) => selectRadioItem(item, true)
|
|
105
|
-
}, {
|
|
106
|
-
default: withCtx(() => [
|
|
107
|
-
createElementVNode("span", null, [
|
|
108
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(item.match, (text) => {
|
|
109
|
-
return openBlock(), createElementBlock(Fragment, { key: text }, [
|
|
110
|
-
text.toLowerCase() === item.hightlighStr ? (openBlock(), createElementBlock("span", _hoisted_4, toDisplayString(text), 1)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
111
|
-
createTextVNode(toDisplayString(text), 1)
|
|
112
|
-
], 64))
|
|
113
|
-
], 64);
|
|
114
|
-
}), 128))
|
|
115
|
-
])
|
|
116
|
-
]),
|
|
117
|
-
_: 2
|
|
118
|
-
}, 1032, ["disabled", "onClick"]);
|
|
119
|
-
}), 128))
|
|
120
|
-
], 64)) : createCommentVNode("", true)
|
|
121
|
-
], 64);
|
|
122
|
-
}), 128)),
|
|
123
|
-
withDirectives(createElementVNode("div", null, [
|
|
124
|
-
createElementVNode("span", _hoisted_5, toDisplayString(unref(t)("tvp.tvpSearchbox.matched")), 1),
|
|
125
|
-
createElementVNode("div", _hoisted_6, [
|
|
126
|
-
__props.state.potentialOptions ? (openBlock(), createElementBlock("div", _hoisted_7, [
|
|
127
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.state.potentialOptions, (item, index) => {
|
|
128
|
-
return openBlock(), createBlock(unref(TinyDropdownItem), {
|
|
129
|
-
key: item.label + index,
|
|
130
|
-
class: "tvp-search-box__filter-item tvp-search-box__dropdown-item",
|
|
131
|
-
onClick: ($event) => selectRadioItem(item, true)
|
|
132
|
-
}, {
|
|
133
|
-
default: withCtx(() => [
|
|
134
|
-
createTextVNode(toDisplayString(item.label) + ": ", 1),
|
|
135
|
-
createElementVNode("span", _hoisted_8, toDisplayString(item.value), 1)
|
|
136
|
-
]),
|
|
137
|
-
_: 2
|
|
138
|
-
}, 1032, ["onClick"]);
|
|
139
|
-
}), 128))
|
|
140
|
-
])) : createCommentVNode("", true)
|
|
141
|
-
])
|
|
142
|
-
], 512), [
|
|
143
|
-
[vShow, __props.state.potentialOptions]
|
|
144
|
-
])
|
|
145
|
-
], 512), [
|
|
146
|
-
[vShow, !__props.state.propItem.label && __props.state.inputValue.trim()]
|
|
147
|
-
]),
|
|
148
|
-
withDirectives(createElementVNode("div", _hoisted_9, [
|
|
149
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.state.groupItems, (group, key) => {
|
|
150
|
-
return openBlock(), createElementBlock(Fragment, { key }, [
|
|
151
|
-
group.length ? (openBlock(), createElementBlock("span", _hoisted_10, toDisplayString(key === "0" ? unref(t)("tvp.tvpSearchbox.attributeType") : key), 1)) : createCommentVNode("", true),
|
|
152
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(group, (item, index) => {
|
|
153
|
-
return openBlock(), createBlock(unref(TinyDropdownItem), {
|
|
154
|
-
key: (item.field || item.label) + index,
|
|
155
|
-
class: "tvp-search-box__dropdown-item",
|
|
156
|
-
onClick: ($event) => selectPropItem(item)
|
|
157
|
-
}, {
|
|
158
|
-
default: withCtx(() => [
|
|
159
|
-
createElementVNode("span", {
|
|
160
|
-
title: item.label
|
|
161
|
-
}, toDisplayString(item.label), 9, _hoisted_11)
|
|
162
|
-
]),
|
|
163
|
-
_: 2
|
|
164
|
-
}, 1032, ["onClick"]);
|
|
165
|
-
}), 128))
|
|
166
|
-
], 64);
|
|
167
|
-
}), 128))
|
|
168
|
-
], 512), [
|
|
169
|
-
[vShow, __props.state.visible && !__props.state.propItem.label && !__props.state.inputValue.trim()]
|
|
170
|
-
])
|
|
171
|
-
], 64);
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
});
|
|
175
|
-
export {
|
|
176
|
-
_sfc_main as default
|
|
177
|
-
};
|