@dataloop-ai/components 0.20.261-new-input.1 → 0.20.261-new-input.2
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/package.json
CHANGED
|
@@ -160,14 +160,15 @@
|
|
|
160
160
|
</div>
|
|
161
161
|
<dl-menu
|
|
162
162
|
v-if="showSuggestItems"
|
|
163
|
-
|
|
164
|
-
|
|
163
|
+
:model-value="isMenuOpen"
|
|
164
|
+
persistent
|
|
165
165
|
no-focus
|
|
166
|
+
no-refocus
|
|
166
167
|
:offset="[0, 3]"
|
|
167
168
|
fit-container
|
|
168
169
|
:fit-content="fitContent"
|
|
169
170
|
:arrow-nav-items="stringSuggestions"
|
|
170
|
-
@
|
|
171
|
+
@update:model-value="onSuggestionMenuModelUpdate"
|
|
171
172
|
@highlighted-item="setHighlightedIndex"
|
|
172
173
|
@selected-item="handleSelectedItem"
|
|
173
174
|
>
|
|
@@ -176,7 +177,10 @@
|
|
|
176
177
|
:style="{ maxWidth: suggestMenuWidth }"
|
|
177
178
|
>
|
|
178
179
|
<slot name="suggestion-header">
|
|
179
|
-
<dl-list-item
|
|
180
|
+
<dl-list-item
|
|
181
|
+
v-if="suggestionHeader"
|
|
182
|
+
class="dl-input__suggestion--header"
|
|
183
|
+
>
|
|
180
184
|
{{ suggestionHeader }}
|
|
181
185
|
</dl-list-item>
|
|
182
186
|
</slot>
|
|
@@ -193,6 +197,7 @@
|
|
|
193
197
|
:highlighted="
|
|
194
198
|
suggestIndex === highlightedIndex
|
|
195
199
|
"
|
|
200
|
+
@mousedown.prevent
|
|
196
201
|
@click="onClick($event, item)"
|
|
197
202
|
>
|
|
198
203
|
<slot
|
|
@@ -742,7 +747,10 @@ export default defineComponent({
|
|
|
742
747
|
const setHighlightedIndex = (value: any) => {
|
|
743
748
|
highlightedIndex.value = value
|
|
744
749
|
}
|
|
745
|
-
const handleSelectedItem = (value:
|
|
750
|
+
const handleSelectedItem = (value: unknown) => {
|
|
751
|
+
if (typeof value !== 'string') {
|
|
752
|
+
return
|
|
753
|
+
}
|
|
746
754
|
onAutoSuggestClick(null, value)
|
|
747
755
|
}
|
|
748
756
|
|
|
@@ -834,7 +842,11 @@ export default defineComponent({
|
|
|
834
842
|
}
|
|
835
843
|
|
|
836
844
|
const onAutoSuggestClick = (e: Event, item: string): void => {
|
|
837
|
-
|
|
845
|
+
if (typeof item !== 'string' || !item.trim().length) {
|
|
846
|
+
return
|
|
847
|
+
}
|
|
848
|
+
const currentValue = String(modelValue.value ?? '')
|
|
849
|
+
const newValue = clearSuggestion(currentValue, item)
|
|
838
850
|
if (!maxLength.value || newValue.length < maxLength.value) {
|
|
839
851
|
const toEmit = newValue.replace(new RegExp(' ', 'g'), ' ')
|
|
840
852
|
emit('input', toEmit, e)
|
|
@@ -843,6 +855,7 @@ export default defineComponent({
|
|
|
843
855
|
setCaretAtTheEnd(input.value)
|
|
844
856
|
isInternalChange.value = true
|
|
845
857
|
}
|
|
858
|
+
isMenuOpen.value = false
|
|
846
859
|
}
|
|
847
860
|
|
|
848
861
|
const emitAddFile = (file: DlInputFile) => {
|
|
@@ -1396,8 +1409,12 @@ export default defineComponent({
|
|
|
1396
1409
|
onPassShowClick(): void {
|
|
1397
1410
|
this.showPass = !this.showPass
|
|
1398
1411
|
},
|
|
1399
|
-
|
|
1400
|
-
this.
|
|
1412
|
+
onSuggestionMenuModelUpdate(value: boolean): void {
|
|
1413
|
+
if (!value && this.focused && this.openSuggestionsOnFocus) {
|
|
1414
|
+
this.openSuggestionMenuOnFocus()
|
|
1415
|
+
return
|
|
1416
|
+
}
|
|
1417
|
+
this.isMenuOpen = value
|
|
1401
1418
|
},
|
|
1402
1419
|
getSuggestWords(
|
|
1403
1420
|
item: string,
|
|
@@ -1747,6 +1764,13 @@ export default defineComponent({
|
|
|
1747
1764
|
}
|
|
1748
1765
|
|
|
1749
1766
|
&__suggestion {
|
|
1767
|
+
&--header {
|
|
1768
|
+
font-family: var(--dl-typography-body-body3-font-family);
|
|
1769
|
+
font-size: var(--dl-typography-body-body3-font-size);
|
|
1770
|
+
line-height: var(--dl-typography-body-body3-line-height);
|
|
1771
|
+
font-weight: var(--dl-typography-body-body3-font-weight);
|
|
1772
|
+
color: var(--dell-gray-600);
|
|
1773
|
+
}
|
|
1750
1774
|
&--highlighted {
|
|
1751
1775
|
background-color: var(--dl-color-warning);
|
|
1752
1776
|
border-radius: 2px;
|
|
@@ -16,7 +16,8 @@ export function addEventListenersToElement(
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
export function clearSuggestion(text: string, suggestion: string) {
|
|
19
|
-
|
|
19
|
+
const prefix = text.split(' ').slice(0, -1).join(' ')
|
|
20
|
+
return prefix ? `${prefix} ${suggestion}` : suggestion
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
export function setInnerHTMLWithCursor(
|
|
@@ -124,6 +124,15 @@
|
|
|
124
124
|
/>
|
|
125
125
|
</template>
|
|
126
126
|
</dl-input>
|
|
127
|
+
<dl-input
|
|
128
|
+
v-model="headerSuggestionsValue"
|
|
129
|
+
style="width: 320px"
|
|
130
|
+
title="Suggestions with header and icons"
|
|
131
|
+
placeholder="Type to see suggestions"
|
|
132
|
+
suggestion-header="Suggested users"
|
|
133
|
+
:auto-suggest-items="headerSuggestionsItems"
|
|
134
|
+
open-suggestions-on-focus
|
|
135
|
+
/>
|
|
127
136
|
<div class="numberClip" style="max-width: 64px">
|
|
128
137
|
<dl-input
|
|
129
138
|
v-model="numberClip"
|
|
@@ -249,7 +258,10 @@
|
|
|
249
258
|
import { v4 } from 'uuid'
|
|
250
259
|
import { computed, defineComponent, ref } from 'vue-demi'
|
|
251
260
|
import { DlInput, DlButton, DlIcon, DlSwitch } from '../components'
|
|
252
|
-
import {
|
|
261
|
+
import {
|
|
262
|
+
DlInputFile,
|
|
263
|
+
DlInputSuggestion
|
|
264
|
+
} from '../components/compound/DlInput/types'
|
|
253
265
|
export default defineComponent({
|
|
254
266
|
name: 'DlInputDemo',
|
|
255
267
|
components: {
|
|
@@ -265,6 +277,21 @@ export default defineComponent({
|
|
|
265
277
|
const sizeSFieldValue = ref<string>('')
|
|
266
278
|
const errorFieldValue = ref<string>('')
|
|
267
279
|
const saveInputValue = ref<string>('Test vaaalueeee')
|
|
280
|
+
const headerSuggestionsValue = ref<string>('')
|
|
281
|
+
const headerSuggestionsItems = ref<DlInputSuggestion[]>([
|
|
282
|
+
{
|
|
283
|
+
suggestion: '@john-doe',
|
|
284
|
+
startIcon: 'icon-dl-user'
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
suggestion: '@jane-smith',
|
|
288
|
+
startIcon: 'icon-dl-user'
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
suggestion: '@team-design',
|
|
292
|
+
startIcon: 'icon-dl-users'
|
|
293
|
+
}
|
|
294
|
+
])
|
|
268
295
|
|
|
269
296
|
const files = ref<DlInputFile[]>([])
|
|
270
297
|
const addFile = (e: Event) => {
|
|
@@ -313,6 +340,8 @@ export default defineComponent({
|
|
|
313
340
|
warningFieldValue,
|
|
314
341
|
errorFieldValue,
|
|
315
342
|
saveInputValue,
|
|
343
|
+
headerSuggestionsValue,
|
|
344
|
+
headerSuggestionsItems,
|
|
316
345
|
sizeSFieldValue,
|
|
317
346
|
files,
|
|
318
347
|
updateFiles,
|