@dataloop-ai/components 0.20.261-new-input.4 → 0.20.261-new-input.6

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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dataloop-ai/components",
3
- "version": "0.20.261-new-input.4",
3
+ "version": "0.20.261-new-input.6",
4
4
  "exports": {
5
5
  ".": "./index.ts",
6
6
  "./models": "./models.ts",
@@ -161,6 +161,7 @@
161
161
  <dl-menu
162
162
  v-if="showSuggestItems"
163
163
  :model-value="isMenuOpen"
164
+ :menu-class="suggestionMenuClass()"
164
165
  persistent
165
166
  no-focus
166
167
  no-refocus
@@ -842,7 +843,6 @@ export default defineComponent({
842
843
  }
843
844
 
844
845
  const onAutoSuggestClick = (e: Event, item: string): void => {
845
- console.log('### onAutoSuggestClick', item, e)
846
846
  if (typeof item !== 'string' || !item.trim().length) {
847
847
  return
848
848
  }
@@ -1290,7 +1290,6 @@ export default defineComponent({
1290
1290
  }
1291
1291
  },
1292
1292
  onClick(e: Event, item: DlInputSuggestion) {
1293
- console.log('### onClick', item, e)
1294
1293
  this.onAutoSuggestClick(e, item.suggestion)
1295
1294
  },
1296
1295
  async handlePaste() {
@@ -1357,20 +1356,25 @@ export default defineComponent({
1357
1356
  this.$emit('focus', e)
1358
1357
  },
1359
1358
  blur(): void {
1360
- console.log('### blur')
1361
1359
  const inputRef = this.$refs.input as HTMLInputElement
1362
1360
  inputRef.blur()
1363
1361
  },
1362
+ suggestionMenuClass(): string {
1363
+ return `${this.uuid}__suggestion-menu`
1364
+ },
1365
+ isBlurToSuggestionMenu(e: FocusEvent): boolean {
1366
+ const relatedTarget = e.relatedTarget as HTMLElement | null
1367
+ return !!relatedTarget?.closest(`.${this.suggestionMenuClass()}`)
1368
+ },
1364
1369
  closeSuggestionMenuAfterBlur(): void {
1365
- // Delay close so suggestion item click can finish before menu teardown.
1366
- setTimeout(() => {
1367
- if (!this.focused) {
1368
- this.isMenuOpen = false
1369
- }
1370
- }, 0)
1370
+ if (!this.focused) {
1371
+ this.isMenuOpen = false
1372
+ }
1371
1373
  },
1372
- onBlur(e: InputEvent): void {
1373
- console.log('### onBlur', e)
1374
+ onBlur(e: FocusEvent): void {
1375
+ if (this.isBlurToSuggestionMenu(e)) {
1376
+ return
1377
+ }
1374
1378
  const el = e.target as HTMLElement
1375
1379
  el.innerText = (el.innerText ?? '').endsWith('.')
1376
1380
  ? el.innerText.slice(0, -1)
@@ -1393,7 +1397,9 @@ export default defineComponent({
1393
1397
  this.$emit('focus', e)
1394
1398
  },
1395
1399
  onNativeBlur(e: FocusEvent): void {
1396
- console.log('### onNativeBlur', e)
1400
+ if (this.isBlurToSuggestionMenu(e)) {
1401
+ return
1402
+ }
1397
1403
  this.focused = false
1398
1404
  this.closeSuggestionMenuAfterBlur()
1399
1405
  this.$emit('blur', e)