@bagelink/vue 0.0.825 → 0.0.827
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/dist/components/form/inputs/SelectInput.vue.d.ts +2 -0
- package/dist/components/form/inputs/SelectInput.vue.d.ts.map +1 -1
- package/dist/components/layout/Skeleton.vue.d.ts +4 -2
- package/dist/components/layout/Skeleton.vue.d.ts.map +1 -1
- package/dist/index.cjs +115 -86
- package/dist/index.mjs +115 -86
- package/dist/style.css +13 -13
- package/dist/utils/BagelFormUtils.d.ts +1 -0
- package/dist/utils/BagelFormUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/form/inputs/SelectInput.vue +36 -12
- package/src/components/layout/Skeleton.vue +7 -5
- package/src/utils/BagelFormUtils.ts +3 -0
package/dist/style.css
CHANGED
|
@@ -1188,10 +1188,10 @@ p {
|
|
|
1188
1188
|
}
|
|
1189
1189
|
.resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper__popper{z-index:10000;top:0;left:0;outline:none}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;pointer-events:none}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{position:absolute;top:0;left:0;width:100%;height:100%;display:none}.v-popper__inner{position:relative;box-sizing:border-box;overflow-y:auto}.v-popper__inner>div{position:relative;z-index:1;max-width:inherit;max-height:inherit}.v-popper__arrow-container{position:absolute;width:10px;height:10px}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;position:absolute;top:0;left:0;width:0;height:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper--theme-tooltip .v-popper__inner{background:rgba(0,0,0,.8);color:#fff;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}.v-popper--theme-dropdown .v-popper__inner{background:#fff;color:#000;border-radius:6px;border:1px solid #ddd;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}
|
|
1190
1190
|
|
|
1191
|
-
.selectinput[data-v-
|
|
1191
|
+
.selectinput[data-v-e3164caf] {
|
|
1192
1192
|
width: 100%;
|
|
1193
1193
|
}
|
|
1194
|
-
.selectinput-option[data-v-
|
|
1194
|
+
.selectinput-option[data-v-e3164caf] {
|
|
1195
1195
|
padding: 6px 12px;
|
|
1196
1196
|
cursor: pointer;
|
|
1197
1197
|
border-radius: 5px;
|
|
@@ -1203,23 +1203,23 @@ p {
|
|
|
1203
1203
|
font-size: var(--input-font-size);
|
|
1204
1204
|
margin-block: 0.15rem;
|
|
1205
1205
|
}
|
|
1206
|
-
.selectinput-option .bgl_icon-font[data-v-
|
|
1206
|
+
.selectinput-option .bgl_icon-font[data-v-e3164caf]{
|
|
1207
1207
|
line-height: normal;
|
|
1208
1208
|
}
|
|
1209
|
-
.selectinput-options.multiselect .selectinput-option[data-v-
|
|
1209
|
+
.selectinput-options.multiselect .selectinput-option[data-v-e3164caf] {
|
|
1210
1210
|
grid-template-columns: 10px 1fr;
|
|
1211
1211
|
}
|
|
1212
|
-
.selectinput-options[data-v-
|
|
1212
|
+
.selectinput-options[data-v-e3164caf] {
|
|
1213
1213
|
max-height: 300px;
|
|
1214
1214
|
overflow-y: auto;
|
|
1215
1215
|
}
|
|
1216
|
-
.selectinput-option[data-v-
|
|
1216
|
+
.selectinput-option[data-v-e3164caf]:hover {
|
|
1217
1217
|
background: var(--bgl-gray-20);
|
|
1218
1218
|
}
|
|
1219
|
-
.isEmpty p[data-v-
|
|
1219
|
+
.isEmpty p[data-v-e3164caf] {
|
|
1220
1220
|
opacity: 0.3;
|
|
1221
1221
|
}
|
|
1222
|
-
.selected[data-v-
|
|
1222
|
+
.selected[data-v-e3164caf]{
|
|
1223
1223
|
/* background: var(--bgl-primary-tint); */
|
|
1224
1224
|
background: var(--bgl-selected);
|
|
1225
1225
|
}
|
|
@@ -1814,25 +1814,25 @@ p {
|
|
|
1814
1814
|
transform: translateX(-20px);
|
|
1815
1815
|
}
|
|
1816
1816
|
|
|
1817
|
-
.skeleton-wrap[data-v-
|
|
1817
|
+
.skeleton-wrap[data-v-9a44f23a] {
|
|
1818
1818
|
margin-bottom: var(--skeleton-margin);
|
|
1819
1819
|
}
|
|
1820
|
-
.skeleton[data-v-
|
|
1820
|
+
.skeleton[data-v-9a44f23a] {
|
|
1821
1821
|
background-color: var(--skeleton-bg);
|
|
1822
1822
|
border-radius: var(--bg-card-radius);
|
|
1823
1823
|
margin-bottom: 0.25em;
|
|
1824
1824
|
position: relative;
|
|
1825
1825
|
overflow: hidden;
|
|
1826
1826
|
}
|
|
1827
|
-
.skeleton[data-v-
|
|
1827
|
+
.skeleton[data-v-9a44f23a]::before {
|
|
1828
1828
|
content: "";
|
|
1829
1829
|
background: linear-gradient(90deg, transparent 20%, var(--skeleton-pulse) 50%, transparent 80%);
|
|
1830
|
-
animation: loadingAnimation-
|
|
1830
|
+
animation: loadingAnimation-9a44f23a 1s ease-in-out infinite;
|
|
1831
1831
|
position: absolute;
|
|
1832
1832
|
inset: 0px;
|
|
1833
1833
|
transform: translateX(-100%);
|
|
1834
1834
|
}
|
|
1835
|
-
@keyframes loadingAnimation-
|
|
1835
|
+
@keyframes loadingAnimation-9a44f23a {
|
|
1836
1836
|
to {
|
|
1837
1837
|
transform: translateX(100%);
|
|
1838
1838
|
}
|
|
@@ -16,6 +16,7 @@ interface TextInputOptions extends InputOptions {
|
|
|
16
16
|
interface SlctInputOptions extends InputOptions {
|
|
17
17
|
searchable?: boolean;
|
|
18
18
|
multiselect?: boolean;
|
|
19
|
+
onSearch?: (search: string) => any;
|
|
19
20
|
}
|
|
20
21
|
interface NumFieldOptions extends InputOptions {
|
|
21
22
|
max?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BagelFormUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BagelFormUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,cAAc,EAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAAY,MAAM,eAAe,CAAA;AAGjG,UAAU,YAAY;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,KAAK,WAAW,GAAG,YAAY,CAAA;AAE/B,UAAU,gBAAiB,SAAQ,YAAY;IAC9C,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAA;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,UAAU,gBAAiB,SAAQ,YAAY;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"BagelFormUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BagelFormUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
Btn,
|
|
4
4
|
Card,
|
|
5
|
+
Skeleton,
|
|
5
6
|
Dropdown,
|
|
6
7
|
Icon,
|
|
7
8
|
type MaterialIcons,
|
|
@@ -26,9 +27,10 @@ const props = defineProps<{
|
|
|
26
27
|
defaultValue?: Option
|
|
27
28
|
clearable?: boolean
|
|
28
29
|
searchPlaceholder?: string
|
|
30
|
+
onSearch?: (search: string) => Promise<Option[]>
|
|
29
31
|
}>()
|
|
30
32
|
|
|
31
|
-
const emit = defineEmits(['update:modelValue'])
|
|
33
|
+
const emit = defineEmits(['update:modelValue']) // Add 'search' event
|
|
32
34
|
|
|
33
35
|
const searchPlaceholder = $computed(() => props.searchPlaceholder || 'Search')
|
|
34
36
|
|
|
@@ -60,17 +62,35 @@ const selectedLabel = $computed((): string => {
|
|
|
60
62
|
return selectedItems.map(item => getLabel(item)).join(', ')
|
|
61
63
|
})
|
|
62
64
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
let serverOptions: Option[] = $ref([])
|
|
66
|
+
let isSearching = $ref(false)
|
|
67
|
+
|
|
68
|
+
async function runServerSearch() {
|
|
69
|
+
if (props.onSearch !== undefined) {
|
|
70
|
+
isSearching = true
|
|
71
|
+
serverOptions = await props.onSearch(search)
|
|
72
|
+
isSearching = false
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const filteredOptions = $computed(() => {
|
|
77
|
+
if (props.onSearch !== undefined) {
|
|
78
|
+
if (isSearching) return []
|
|
79
|
+
if (search.trim().length) return serverOptions
|
|
80
|
+
return props.options
|
|
81
|
+
}
|
|
82
|
+
return props.options.filter((option) => {
|
|
83
|
+
const searchTerm = search
|
|
84
|
+
.split(/\s+/)
|
|
85
|
+
.filter(Boolean)
|
|
86
|
+
.map(t => new RegExp(t.replaceAll(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'gi'))
|
|
87
|
+
return (
|
|
88
|
+
Boolean(option)
|
|
89
|
+
&& (searchTerm.every(s => getLabel(option).match(s))
|
|
90
|
+
)
|
|
71
91
|
)
|
|
72
|
-
)
|
|
73
|
-
})
|
|
92
|
+
})
|
|
93
|
+
})
|
|
74
94
|
|
|
75
95
|
const isSelected = (option: Option) => selectedItems.find(item => getValue(option) === getValue(item)) !== undefined
|
|
76
96
|
|
|
@@ -87,7 +107,7 @@ function updateOpen(visible: boolean) {
|
|
|
87
107
|
if (props.searchable && !props.multiselect && selectedItemCount) search = selectedLabel as string
|
|
88
108
|
setTimeout(
|
|
89
109
|
() => (searchInput as any)?.$el?.querySelector('input')?.focus(),
|
|
90
|
-
|
|
110
|
+
100,
|
|
91
111
|
)
|
|
92
112
|
}
|
|
93
113
|
}
|
|
@@ -176,6 +196,7 @@ watch(
|
|
|
176
196
|
)
|
|
177
197
|
|
|
178
198
|
onMounted(() => {
|
|
199
|
+
console.log('mounted')
|
|
179
200
|
if (props.defaultValue !== undefined) {
|
|
180
201
|
const defaultOption = props.options.find(
|
|
181
202
|
o => getValue(o) === getValue(props.defaultValue),
|
|
@@ -193,6 +214,7 @@ onMounted(() => {
|
|
|
193
214
|
ref="dropdown"
|
|
194
215
|
placement="bottom-start"
|
|
195
216
|
class="bagel-input selectinput"
|
|
217
|
+
noAutoFocus
|
|
196
218
|
@hide="updateOpen(false)"
|
|
197
219
|
>
|
|
198
220
|
<template #trigger>
|
|
@@ -207,6 +229,7 @@ onMounted(() => {
|
|
|
207
229
|
dense
|
|
208
230
|
:placeholder="searchPlaceholder"
|
|
209
231
|
icon="search"
|
|
232
|
+
@debounce="runServerSearch"
|
|
210
233
|
@input="selected = false"
|
|
211
234
|
/>
|
|
212
235
|
<button
|
|
@@ -249,6 +272,7 @@ onMounted(() => {
|
|
|
249
272
|
</div>
|
|
250
273
|
</label>
|
|
251
274
|
</template>
|
|
275
|
+
<Skeleton v-if="isSearching" :count="3" width="230px" height="30px" class="mx-1 my-05" />
|
|
252
276
|
<Card
|
|
253
277
|
class="p-05"
|
|
254
278
|
:style="{ width: fullWidth ? '100%' : 'auto' }"
|
|
@@ -4,13 +4,15 @@ const {
|
|
|
4
4
|
height = '50px',
|
|
5
5
|
width = 'auto',
|
|
6
6
|
borderRadius = 'var(--skeleton-radius)',
|
|
7
|
-
round = false
|
|
7
|
+
round = false,
|
|
8
|
+
class: className = '',
|
|
8
9
|
} = defineProps<{
|
|
9
|
-
count?: number
|
|
10
|
+
count?: number | string
|
|
10
11
|
height?: string
|
|
11
12
|
width?: string
|
|
12
13
|
round?: boolean
|
|
13
14
|
borderRadius?: string
|
|
15
|
+
class?: string
|
|
14
16
|
}>()
|
|
15
17
|
import { useSlots } from 'vue'
|
|
16
18
|
|
|
@@ -18,11 +20,11 @@ const slots = useSlots()
|
|
|
18
20
|
</script>
|
|
19
21
|
|
|
20
22
|
<template>
|
|
21
|
-
<template v-for="i in count" :key="i">
|
|
22
|
-
<div v-if="slots.default" class="skeleton-wrap">
|
|
23
|
+
<template v-for="i in +count" :key="i">
|
|
24
|
+
<div v-if="slots.default" class="skeleton-wrap" :class="className">
|
|
23
25
|
<slot />
|
|
24
26
|
</div>
|
|
25
|
-
<div v-else class="skeleton" :style="{ height, width, borderRadius }" :class="{ round }" />
|
|
27
|
+
<div v-else class="skeleton" :style="{ height, width, borderRadius }" :class="{ round, [className as string]: true }" />
|
|
26
28
|
</template>
|
|
27
29
|
</template>
|
|
28
30
|
|
|
@@ -21,6 +21,7 @@ interface TextInputOptions extends InputOptions {
|
|
|
21
21
|
interface SlctInputOptions extends InputOptions {
|
|
22
22
|
searchable?: boolean
|
|
23
23
|
multiselect?: boolean
|
|
24
|
+
onSearch?: (search: string) => any
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
interface NumFieldOptions extends InputOptions {
|
|
@@ -80,6 +81,7 @@ export function slctField(
|
|
|
80
81
|
label?: string,
|
|
81
82
|
options?: Option[] | (() => Option[]),
|
|
82
83
|
config?: SlctInputOptions,
|
|
84
|
+
|
|
83
85
|
): Field {
|
|
84
86
|
return {
|
|
85
87
|
$el: 'select',
|
|
@@ -94,6 +96,7 @@ export function slctField(
|
|
|
94
96
|
disabled: config?.disabled,
|
|
95
97
|
searchable: config?.searchable,
|
|
96
98
|
multiselect: config?.multiselect,
|
|
99
|
+
onSearch: config?.onSearch,
|
|
97
100
|
},
|
|
98
101
|
}
|
|
99
102
|
}
|