@dataloop-ai/components 0.19.160 → 0.19.162

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.19.160",
3
+ "version": "0.19.162",
4
4
  "exports": {
5
5
  ".": "./index.ts",
6
6
  "./models": "./models.ts",
@@ -26,7 +26,7 @@
26
26
  :aria-haspopup="true"
27
27
  :aria-disabled="
28
28
  disabled === true ||
29
- (split === false && disableMainButton === true) ||
29
+ (!split && disableMainButton === true) ||
30
30
  disableDropdown === true
31
31
  "
32
32
  :overflow="overflow"
@@ -46,7 +46,7 @@
46
46
  :aria-haspopup="true"
47
47
  :aria-disabled="
48
48
  disabled === true ||
49
- (split === false && disableMainButton === true) ||
49
+ (!split && disableMainButton === true) ||
50
50
  disableDropdown === true
51
51
  "
52
52
  :no-wrap="noWrap"
@@ -155,8 +155,8 @@
155
155
  @show="onShow"
156
156
  @before-hide="onBeforeHide"
157
157
  @hide="onHide"
158
- @highlightedIndex="setHighlightedIndex"
159
- @handleSelectedItem="handleSelectedItem"
158
+ @highlighted-item="setHighlightedIndex"
159
+ @selected-item="handleSelectedItem"
160
160
  >
161
161
  <slot />
162
162
  </dl-menu>
@@ -182,6 +182,7 @@ import {
182
182
  import { v4 } from 'uuid'
183
183
  import { DlTextTransformOptions } from '../../shared/types'
184
184
  import { getColor } from '../../../utils'
185
+ import { arrowNavigationEvents } from '../../../hooks/use-arrow-navigation'
185
186
 
186
187
  export default defineComponent({
187
188
  name: 'DlDropdownButton',
@@ -197,9 +198,9 @@ export default defineComponent({
197
198
  },
198
199
  props: {
199
200
  modelValue: Boolean,
200
- split: Boolean,
201
+ split: { type: Boolean, default: false },
201
202
  dropdownIcon: { type: String, default: 'icon-dl-down-chevron' },
202
- contentClass: { type: [Array, String, Object], default: '' },
203
+ contentClass: { type: String, default: '' },
203
204
  contentStyle: { type: [Array, String, Object], default: '' },
204
205
  mainButtonStyle: { type: [Array, String, Object], default: '' },
205
206
  cover: Boolean,
@@ -244,7 +245,7 @@ export default defineComponent({
244
245
  overflow: { type: Boolean, default: false, required: false },
245
246
  tooltip: { type: String, default: null, required: false },
246
247
  arrowNavItems: {
247
- type: [String, Array, Object],
248
+ type: Array as PropType<any[]>,
248
249
  default: () => [] as any[]
249
250
  }
250
251
  },
@@ -256,8 +257,7 @@ export default defineComponent({
256
257
  'show',
257
258
  'before-hide',
258
259
  'hide',
259
- 'highlightedIndex',
260
- 'handleSelectedItem'
260
+ ...arrowNavigationEvents
261
261
  ],
262
262
 
263
263
  setup(props, { emit }) {
@@ -322,7 +322,7 @@ export default defineComponent({
322
322
  () => props.modelValue,
323
323
  (val) => {
324
324
  if (menuRef.value) {
325
- (menuRef!.value as Record<string, Function>)[
325
+ ;(menuRef!.value as Record<string, Function>)[
326
326
  val ? 'show' : 'hide'
327
327
  ]()
328
328
  }
@@ -363,26 +363,26 @@ export default defineComponent({
363
363
 
364
364
  function toggle(evt: Event) {
365
365
  if (menuRef.value) {
366
- (menuRef.value as Record<string, Function>).toggle(evt)
366
+ ;(menuRef.value as Record<string, Function>).toggle(evt)
367
367
  }
368
368
  }
369
369
 
370
370
  function show(evt?: Event) {
371
371
  if (menuRef.value) {
372
- (menuRef.value as Record<string, Function>).show(evt)
372
+ ;(menuRef.value as Record<string, Function>).show(evt)
373
373
  }
374
374
  }
375
375
 
376
376
  function hide(evt?: any) {
377
377
  if (menuRef.value) {
378
- (menuRef.value as Record<string, Function>).hide(evt)
378
+ ;(menuRef.value as Record<string, Function>).hide(evt)
379
379
  }
380
380
  }
381
381
  const setHighlightedIndex = (value: any) => {
382
382
  emit('highlightedIndex', value)
383
383
  }
384
384
  const handleSelectedItem = (value: any) => {
385
- emit('handleSelectedItem', value)
385
+ emit('selected-item', value)
386
386
  }
387
387
 
388
388
  onMounted(() => {
@@ -145,8 +145,8 @@
145
145
  :fit-content="fitContent"
146
146
  :arrow-nav-items="stringSuggestions"
147
147
  @click="onMenuShow"
148
- @highlightedIndex="setHighlightedIndex"
149
- @handleSelectedItem="handleSelectedItem"
148
+ @highlighted-item="setHighlightedIndex"
149
+ @selected-item="handleSelectedItem"
150
150
  >
151
151
  <dl-list
152
152
  bordered
@@ -65,6 +65,7 @@
65
65
  :expanded="expanded"
66
66
  @set-input-value="setInputFromSuggestion"
67
67
  @escapekey="onEscapeKey"
68
+ @enterkey="onEnterKey({ fromSuggestion: true })"
68
69
  />
69
70
  <dl-menu
70
71
  v-if="showDatePicker && focused"
@@ -145,6 +146,7 @@ import {
145
146
  removeLeadingExpression
146
147
  } from '../../../../../hooks/use-suggestions'
147
148
  import { parseSmartQuery, stringifySmartQuery } from '../../../../../utils'
149
+ import { stateManager } from '../../../../../StateManager'
148
150
 
149
151
  export default defineComponent({
150
152
  components: {
@@ -216,6 +218,10 @@ export default defineComponent({
216
218
  strict: {
217
219
  type: Boolean,
218
220
  default: false
221
+ },
222
+ inputDebounce: {
223
+ type: Number,
224
+ default: 300
219
225
  }
220
226
  },
221
227
  emits: [
@@ -246,7 +252,8 @@ export default defineComponent({
246
252
  omitSuggestions,
247
253
  height,
248
254
  width,
249
- forbiddenKeys
255
+ forbiddenKeys,
256
+ inputDebounce
250
257
  } = toRefs(props)
251
258
  //#endregion
252
259
 
@@ -415,7 +422,13 @@ export default defineComponent({
415
422
  setSelectionOffset(input.value, caretPosition, caretPosition)
416
423
  }
417
424
 
418
- const debouncedSetInputValue = debounce(setInputValue, 300)
425
+ const debouncedSetInputValue = computed<any>(() => {
426
+ if (stateManager?.disableDebounce) {
427
+ return setInputValue
428
+ }
429
+
430
+ return debounce(setInputValue, inputDebounce.value)
431
+ })
419
432
 
420
433
  let lastSearchQuery: string
421
434
 
@@ -448,7 +461,13 @@ export default defineComponent({
448
461
  setInputValue(inputValue, { noEmit: true })
449
462
  }
450
463
 
451
- const debouncedSetInputFromModel = debounce(setInputFromModel, 300)
464
+ const debouncedSetInputFromModel = computed<any>(() => {
465
+ if (stateManager?.disableDebounce) {
466
+ return setInputFromModel
467
+ }
468
+
469
+ return debounce(setInputFromModel, inputDebounce.value)
470
+ })
452
471
 
453
472
  const setMenuOffset = (value: number[]) => {
454
473
  menuOffset.value = value
@@ -571,7 +590,7 @@ export default defineComponent({
571
590
  if (text.endsWith('.')) {
572
591
  setInputValue(text)
573
592
  } else {
574
- debouncedSetInputValue(text)
593
+ debouncedSetInputValue.value(text)
575
594
  }
576
595
  }
577
596
 
@@ -608,7 +627,9 @@ export default defineComponent({
608
627
  aliased !== searchQuery.value.trim() ||
609
628
  !input.value?.innerHTML.length
610
629
  ) {
611
- debouncedSetInputFromModel(aliased)
630
+ nextTick(() => {
631
+ debouncedSetInputFromModel.value(aliased)
632
+ })
612
633
  }
613
634
  }
614
635
  }
@@ -654,8 +675,13 @@ export default defineComponent({
654
675
  }
655
676
  }
656
677
 
657
- const onEnterKey = () => {
658
- if (showSuggestions.value || showDatePicker.value) {
678
+ const onEnterKey = (options: { fromSuggestion?: boolean } = {}) => {
679
+ const { fromSuggestion } = options
680
+
681
+ if (
682
+ (!fromSuggestion && showSuggestions.value) ||
683
+ showDatePicker.value
684
+ ) {
659
685
  return
660
686
  }
661
687
 
@@ -952,7 +978,8 @@ export default defineComponent({
952
978
  computedStatus,
953
979
  setInputFromSuggestion,
954
980
  inputPlaceholder,
955
- onEscapeKey
981
+ onEscapeKey,
982
+ onEnterKey
956
983
  }
957
984
  }
958
985
  })
@@ -1,8 +1,5 @@
1
1
  <template>
2
- <div
3
- v-if="suggestions.length > 0"
4
- class="dl-suggestions-dropdown"
5
- >
2
+ <div v-if="suggestions.length > 0" class="dl-suggestions-dropdown">
6
3
  <dl-menu
7
4
  :target="defaultTarget"
8
5
  :offset="offset"
@@ -16,8 +13,8 @@
16
13
  @update:model-value="emitModelValue($event)"
17
14
  @show="onShow"
18
15
  @hide="onHide"
19
- @highlightedIndex="setHighlightedIndex"
20
- @handleSelectedItem="handleSelectedItem"
16
+ @highlighted-item="setHighlightedIndex"
17
+ @selected-item="handleSelectedItem"
21
18
  @escapekey="onEscapeKey"
22
19
  >
23
20
  <dl-list>
@@ -82,7 +79,7 @@ export default defineComponent({
82
79
  default: 1
83
80
  }
84
81
  },
85
- emits: ['set-input-value', 'update:model-value', 'escapekey'],
82
+ emits: ['set-input-value', 'update:model-value', 'escapekey', 'enterkey'],
86
83
  setup(props, { emit }) {
87
84
  const isMenuOpen = ref(false)
88
85
  const highlightedIndex = ref(-1)
@@ -97,6 +94,11 @@ export default defineComponent({
97
94
  highlightedIndex.value = value
98
95
  }
99
96
  const handleSelectedItem = (value: any) => {
97
+ if (!value) {
98
+ // enter occurred on non selected values
99
+ emit('enterkey')
100
+ return
101
+ }
100
102
  handleOption(value)
101
103
  }
102
104
  const emitModelValue = (event: any) => {
@@ -16,15 +16,9 @@
16
16
  'dl-select__title-container--s': isSmall
17
17
  }"
18
18
  >
19
- <label
20
- v-show="!!title.length"
21
- class="dl-select__title"
22
- >
19
+ <label v-show="!!title.length" class="dl-select__title">
23
20
  {{ title
24
- }}<span
25
- v-show="required"
26
- :class="asteriskClasses"
27
- > *</span>
21
+ }}<span v-show="required" :class="asteriskClasses"> *</span>
28
22
  {{ !required && optional ? ' (Optional)' : null }}
29
23
  </label>
30
24
  <span v-show="!!tooltip.length">
@@ -49,15 +43,8 @@
49
43
  :value="topMessage"
50
44
  />
51
45
  </div>
52
- <div
53
- class="select-wrapper"
54
- tabindex="0"
55
- :style="placeholderStyles"
56
- >
57
- <div
58
- ref="select"
59
- :class="selectClasses"
60
- >
46
+ <div class="select-wrapper" tabindex="0" :style="placeholderStyles">
47
+ <div ref="select" :class="selectClasses">
61
48
  <div
62
49
  v-show="hasPrepend || searchable"
63
50
  :class="[
@@ -84,14 +71,11 @@
84
71
  @input="handleSearchInput"
85
72
  @focus="handleSearchFocus"
86
73
  @blur="handleSearchBlur"
87
- >
74
+ />
88
75
  <dl-tooltip v-if="disabled && disabledTooltip">
89
76
  {{ disabledTooltip }}
90
77
  </dl-tooltip>
91
- <div
92
- v-if="hasSelectedSlot"
93
- style="width: 100%"
94
- >
78
+ <div v-if="hasSelectedSlot" style="width: 100%">
95
79
  <slot
96
80
  v-if="searchable ? !isExpanded : true"
97
81
  :opt="selectedOption"
@@ -168,18 +152,13 @@
168
152
  :trigger-percentage="triggerPercentage"
169
153
  @show="onMenuOpen"
170
154
  @hide="closeMenu"
171
- @highlightedIndex="setHighlightedIndex"
172
- @handleSelectedItem="handleSelectedItem"
155
+ @highlighted-item="setHighlightedIndex"
156
+ @selected-item="handleSelectedItem"
173
157
  >
174
- <dl-list
175
- class="select-list"
176
- :padding="false"
177
- >
158
+ <dl-list class="select-list" :padding="false">
178
159
  <dl-list-item v-if="noOptions">
179
160
  <dl-item-section color="dl-color-medium">
180
- <slot name="no-options">
181
- No options
182
- </slot>
161
+ <slot name="no-options"> No options </slot>
183
162
  </dl-item-section>
184
163
  </dl-list-item>
185
164
  <dl-list-item v-if="hasBeforeOptions && !noOptions">
@@ -246,10 +225,7 @@
246
225
  @selected="handleSelected"
247
226
  @deselected="handleDeselected"
248
227
  >
249
- <slot
250
- name="option"
251
- :opt="item"
252
- >
228
+ <slot name="option" :opt="item">
253
229
  <span
254
230
  v-if="fitContent"
255
231
  class="inner-option"
@@ -292,17 +268,14 @@
292
268
  :children="getOptionChildren(option)"
293
269
  :capitalized="capitalizedOptions"
294
270
  :readonly="isReadonlyOption(option)"
295
- :is-expanded="option.expanded"
271
+ :is-expanded="isExpandedOption(option)"
296
272
  @update:model-value="handleModelValueUpdate"
297
273
  @click="selectOption(option)"
298
274
  @selected="handleSelected"
299
275
  @deselected="handleDeselected"
300
276
  @depth-change="handleDepthChange"
301
277
  >
302
- <slot
303
- :opt="option"
304
- name="option"
305
- >
278
+ <slot :opt="option" name="option">
306
279
  <span
307
280
  v-if="fitContent"
308
281
  class="inner-option"
@@ -808,6 +781,15 @@ export default defineComponent({
808
781
  this.setSelectedIndex()
809
782
  },
810
783
  methods: {
784
+ isExpandedOption(option: DlSelectOptionType): boolean {
785
+ if (typeof option === 'string') {
786
+ return false
787
+ }
788
+ if (typeof option === 'number') {
789
+ return false
790
+ }
791
+ return !!option?.expanded
792
+ },
811
793
  handleDepthChange() {
812
794
  // todo: remove this hack
813
795
  setTimeout(() => {
@@ -1,12 +1,6 @@
1
1
  <template>
2
- <dl-teleport
3
- v-if="portalIsActive"
4
- :to="portalEl"
5
- >
6
- <transition
7
- name="fade"
8
- appear
9
- >
2
+ <dl-teleport v-if="portalIsActive" :to="portalEl">
3
+ <transition name="fade" appear>
10
4
  <div
11
5
  v-if="showing"
12
6
  :id="uuid"
@@ -83,7 +77,10 @@ import {
83
77
  } from './utils'
84
78
  import { isMobileOrTablet } from '../../../utils'
85
79
  import { v4 } from 'uuid'
86
- import { useArrowNavigation } from '../../../hooks/use-arrow-navigation'
80
+ import {
81
+ arrowNavigationEvents,
82
+ useArrowNavigation
83
+ } from '../../../hooks/use-arrow-navigation'
87
84
 
88
85
  export default defineComponent({
89
86
  name: 'DlMenu',
@@ -154,7 +151,7 @@ export default defineComponent({
154
151
  default: ''
155
152
  },
156
153
  arrowNavItems: {
157
- type: [String, Array, Object],
154
+ type: Array as PropType<any[]>,
158
155
  default: () => [] as any[]
159
156
  },
160
157
  zIndex: {
@@ -176,10 +173,9 @@ export default defineComponent({
176
173
 
177
174
  emits: [
178
175
  ...useModelToggleEmits,
176
+ ...arrowNavigationEvents,
179
177
  'click',
180
- 'escapekey',
181
- 'highlightedIndex',
182
- 'handleSelectedItem'
178
+ 'escapekey'
183
179
  ],
184
180
 
185
181
  setup(props, { attrs }) {
@@ -195,7 +191,7 @@ export default defineComponent({
195
191
 
196
192
  const innerRef: Ref<HTMLElement | null> = ref(null)
197
193
  const showing = ref(false)
198
- const { toggleKey } = toRefs(props)
194
+ const { toggleKey, arrowNavItems } = toRefs(props)
199
195
 
200
196
  const { registerTick, removeTick } = useTick()
201
197
  const { registerTimeout, removeTimeout } = useTimeout()
@@ -371,7 +367,7 @@ export default defineComponent({
371
367
 
372
368
  function configureScrollTarget() {
373
369
  if (anchorEl.value !== null || props.scrollTarget) {
374
- (localScrollTarget as Ref<any>).value = getScrollTarget(
370
+ ;(localScrollTarget as Ref<any>).value = getScrollTarget(
375
371
  anchorEl.value as HTMLElement,
376
372
  props.scrollTarget
377
373
  )
@@ -466,16 +462,16 @@ export default defineComponent({
466
462
  Object.assign(proxy, { focus, updatePosition })
467
463
 
468
464
  const isMenuOpen = ref(false)
469
- const navItems = computed(() => props.arrowNavItems)
470
465
  const { selectedItem, highlightedIndex } = useArrowNavigation(
471
- navItems,
472
- isMenuOpen
466
+ arrowNavItems,
467
+ isMenuOpen,
468
+ emit
473
469
  )
474
470
  watch(selectedItem, (value: any) => {
475
- emit('handleSelectedItem', value)
471
+ emit('selected-item', value)
476
472
  })
477
473
  watch(highlightedIndex, (value: any) => {
478
- emit('highlightedIndex', value)
474
+ emit('highlighted-item', value, arrowNavItems.value[value] ?? null)
479
475
  })
480
476
 
481
477
  return {
@@ -32,7 +32,7 @@
32
32
  outlined
33
33
  split
34
34
  :label="outlinedLabel"
35
- @handleSelectedItem="handleOutlinedSelect"
35
+ @selected-item="handleOutlinedSelect"
36
36
  >
37
37
  <dl-list>
38
38
  <dl-list-item
@@ -68,11 +68,7 @@
68
68
  </dl-list>
69
69
  </dl-dropdown-button>
70
70
 
71
- <dl-dropdown-button
72
- split
73
- :label="containedLabel"
74
- auto-close
75
- >
71
+ <dl-dropdown-button split :label="containedLabel" auto-close>
76
72
  <dl-list>
77
73
  <dl-list-item
78
74
  v-for="val in ['Photos', 'Videos', 'Articles']"
@@ -94,10 +90,7 @@
94
90
  @click="onClick"
95
91
  >
96
92
  <dl-list>
97
- <dl-list-item
98
- clickable
99
- @click="() => onClose('Photos')"
100
- >
93
+ <dl-list-item clickable @click="() => onClose('Photos')">
101
94
  <dl-item-section> Photos </dl-item-section>
102
95
  </dl-list-item>
103
96
 
@@ -111,10 +104,7 @@
111
104
  </dl-item-section>
112
105
  </dl-list-item>
113
106
 
114
- <dl-list-item
115
- clickable
116
- @click="() => onClose('Articles')"
117
- >
107
+ <dl-list-item clickable @click="() => onClose('Articles')">
118
108
  <dl-item-section> Articles </dl-item-section>
119
109
  </dl-list-item>
120
110
  </dl-list>
@@ -123,15 +113,8 @@
123
113
 
124
114
  <div style="display: flex; gap: 20px; flex-direction: column">
125
115
  <h2>One Button</h2>
126
- <div
127
- class="grid grid-cols-3"
128
- style="column-gap: 10px"
129
- >
130
- <dl-dropdown-button
131
- auto-close
132
- outlined
133
- :label="outlinedLabel"
134
- >
116
+ <div class="grid grid-cols-3" style="column-gap: 10px">
117
+ <dl-dropdown-button auto-close outlined :label="outlinedLabel">
135
118
  <dl-list>
136
119
  <dl-list-item clickable>
137
120
  <dl-item-section> Photos </dl-item-section>
@@ -211,10 +194,7 @@
211
194
  </dl-dropdown-button>
212
195
  </div>
213
196
 
214
- <div
215
- class="grid grid-cols-3"
216
- style="column-gap: 10px"
217
- >
197
+ <div class="grid grid-cols-3" style="column-gap: 10px">
218
198
  <dl-dropdown-button
219
199
  auto-close
220
200
  :model-value="showing"
@@ -315,8 +295,8 @@
315
295
  tooltip="Tooltip message"
316
296
  :arrow-nav-items="listItems"
317
297
  @show="onOpen"
318
- @highlightedIndex="setHighlightedIndex"
319
- @handleSelectedItem="handleSelectedItem"
298
+ @highlighted-item="setHighlightedIndex"
299
+ @selected-item="handleSelectedItem"
320
300
  >
321
301
  <dl-list>
322
302
  <dl-list-item
@@ -342,7 +322,7 @@
342
322
  outlined
343
323
  text-color="red"
344
324
  :label="outlinedLabel"
345
- @handleSelectedItem="handleOutlinedSelect"
325
+ @selected-item="handleOutlinedSelect"
346
326
  >
347
327
  <dl-list>
348
328
  <dl-list-item
@@ -2,7 +2,15 @@ import { ref, isRef, onMounted, onBeforeUnmount, computed } from 'vue-demi'
2
2
 
3
3
  type ItemType = Record<string, any> | string
4
4
 
5
- export function useArrowNavigation(items: any, isOpen: any) {
5
+ export const arrowNavigationEvents = ['selected-item', 'highlighted-index']
6
+
7
+ // todo: add tests for util
8
+
9
+ export function useArrowNavigation(
10
+ items: any,
11
+ isOpen: any,
12
+ emit?: (event: string, ...args: any[]) => void
13
+ ) {
6
14
  const selectItem = ref<ItemType | null>(null)
7
15
  const highlightIndex = ref<number>(-1)
8
16
 
@@ -66,6 +74,8 @@ export function useArrowNavigation(items: any, isOpen: any) {
66
74
  if (isEligibleToHandleEnter.value) {
67
75
  selectedItem.value = itemsData.value[highlightedIndex.value]
68
76
  resetHighlightedIndex()
77
+ } else if (emit) {
78
+ emit('selected-item', null)
69
79
  }
70
80
  }
71
81
 
@@ -123,7 +123,11 @@ const mergeWords = (words: string[]) => {
123
123
  export const useSuggestions = (
124
124
  schema: Ref<Schema>,
125
125
  aliases: Ref<Alias[]>,
126
- options: { strict?: Ref<boolean>; forbiddenKeys?: Ref<string[]>; omitSuggestions?: Ref<string[]> } = {}
126
+ options: {
127
+ strict?: Ref<boolean>
128
+ forbiddenKeys?: Ref<string[]>
129
+ omitSuggestions?: Ref<string[]>
130
+ } = {}
127
131
  ) => {
128
132
  const { strict, forbiddenKeys, omitSuggestions } = options
129
133
  const aliasesArray = aliases.value ?? []
@@ -159,7 +163,10 @@ export const useSuggestions = (
159
163
  const expressions = mapWordsToExpressions(mergedWords)
160
164
 
161
165
  error.value = input.length
162
- ? getError(schemaValue, aliasesArray, expressions, { strict, forbiddenKeys })
166
+ ? getError(schemaValue, aliasesArray, expressions, {
167
+ strict,
168
+ forbiddenKeys
169
+ })
163
170
  : null
164
171
  }
165
172
 
@@ -191,7 +198,9 @@ export const useSuggestions = (
191
198
  if (!matchedField && isNextCharSpace(input, field)) {
192
199
  localSuggestions =
193
200
  value && input.endsWith(space)
194
- ? [Logical.AND, Logical.OR]
201
+ ? keyword
202
+ ? sortedSuggestions
203
+ : [Logical.AND, Logical.OR]
195
204
  : []
196
205
  continue
197
206
  }
@@ -362,7 +371,7 @@ const getError = (
362
371
  schema: Schema,
363
372
  aliases: Alias[],
364
373
  expressions: Expression[],
365
- options: { strict?: Ref<boolean>; forbiddenKeys?: Ref<string[]>; } = {}
374
+ options: { strict?: Ref<boolean>; forbiddenKeys?: Ref<string[]> } = {}
366
375
  ): string | null => {
367
376
  const { strict, forbiddenKeys } = options
368
377
  const hasErrorInStructure = expressions
@@ -438,7 +447,7 @@ const getError = (
438
447
  return (acc = errors.INVALID_VALUE(field))
439
448
  }
440
449
 
441
- return (acc === 'warning' ? acc : acc = null)
450
+ return acc === 'warning' ? acc : (acc = null)
442
451
  }, null)
443
452
  }
444
453