@dataloop-ai/components 0.20.183 → 0.20.186-ds-v3.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.
Files changed (21) hide show
  1. package/package.json +1 -1
  2. package/src/components/compound/DlDateTime/DlDateTimeRange/DateTimeRangeContent.vue +177 -0
  3. package/src/components/compound/DlDateTime/DlDateTimeRange/DlDateTimeRange.vue +101 -106
  4. package/src/components/compound/DlDateTime/DlDateTimeRange/types.ts +5 -0
  5. package/src/components/compound/DlDialogBox/DlDialogBox.vue +12 -2
  6. package/src/components/compound/DlDropdownButton/DlDropdownButton.vue +24 -27
  7. package/src/components/compound/DlInput/DlInput.vue +4 -0
  8. package/src/components/compound/DlSearches/DlSearch/DlSearch.vue +12 -0
  9. package/src/components/compound/DlSearches/DlSmartSearch/DlSmartSearch.vue +3 -8
  10. package/src/components/compound/DlSearches/DlSmartSearch/components/DlSmartSearchInput.vue +58 -18
  11. package/src/components/compound/DlSearches/DlSmartSearch/components/DlSmartSearchJsonEditorDialog.vue +187 -45
  12. package/src/components/compound/DlSelect/DlSelect.vue +15 -3
  13. package/src/components/compound/DlSelect/components/DlSelectOption.vue +7 -6
  14. package/src/components/compound/DlTable/DlTable.vue +34 -21
  15. package/src/components/compound/DlTable/hooks/use-sortable.ts +5 -0
  16. package/src/components/compound/DlTreeTable/DlTreeTable.vue +4 -2
  17. package/src/components/compound/DlTreeTable/views/DlTrTreeView.vue +1 -1
  18. package/src/components/essential/DlSwitch/DlSwitch.vue +14 -4
  19. package/src/components/shared/DlVirtualScroll/DlVirtualScroll.vue +3 -1
  20. package/src/demos/DlDateTimeRangeDemo.vue +20 -0
  21. package/src/demos/SmartSearchDemo/DlSmartSearchDemo.vue +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dataloop-ai/components",
3
- "version": "0.20.183",
3
+ "version": "0.20.186-ds-v3.0",
4
4
  "exports": {
5
5
  ".": "./index.ts",
6
6
  "./models": "./models.ts",
@@ -0,0 +1,177 @@
1
+ <template>
2
+ <div class="dl-date-time-range--card">
3
+ <div v-if="mode === 'multi'" class="dl-date-time-range--card_sidebar">
4
+ <card-sidebar
5
+ v-if="typeState === 'day'"
6
+ :options="sidebarDayOptions"
7
+ :current-option="currentSidebarOption"
8
+ @click="handleDayTypeOptionClick"
9
+ />
10
+ <card-sidebar
11
+ v-else
12
+ :options="sidebarMonthOptions"
13
+ :current-option="currentSidebarOption"
14
+ @click="handleMonthTypeOptionClick"
15
+ />
16
+ </div>
17
+ <div
18
+ class="dl-date-time-range--card_content"
19
+ :style="cardContentStyles"
20
+ >
21
+ <dl-date-picker
22
+ :model-value="dateInterval"
23
+ :type="typeState"
24
+ :available-range="availableRange"
25
+ :disabled="isInputDisabled"
26
+ :normalize-calendars="normalizeCalendars"
27
+ :active-date-from="activeDateFrom"
28
+ :active-date-to="activeDateTo"
29
+ @update:model-value="updateDateIntervalWithAutoClose"
30
+ @update:from-to-date="updateFromToDate"
31
+ />
32
+ <dl-time-picker
33
+ v-if="showTime && typeState === 'day'"
34
+ :disabled="isInputDisabled"
35
+ :model-value="dateInterval"
36
+ @update:model-value="updateDateInterval"
37
+ />
38
+
39
+ <dl-button
40
+ v-if="!hideClearButton"
41
+ size="s"
42
+ outlined
43
+ class="dl-date-time-range--button"
44
+ @click="handleClear"
45
+ >
46
+ <span style="text-transform: capitalize"> Clear </span>
47
+ </dl-button>
48
+ </div>
49
+ </div>
50
+ </template>
51
+
52
+ <script lang="ts">
53
+ import { defineComponent, PropType } from 'vue-demi'
54
+ import { DlTimePicker } from '../DlTimePicker'
55
+ import { DateInterval } from '../types'
56
+ import CardSidebar from './CardSidebar.vue'
57
+ import { DayTypeOption, MonthTypeOption } from './types'
58
+ import DlDatePicker from '../DlDatePicker/DlDatePicker.vue'
59
+ import { CalendarDate } from '../DlDatePicker/models/CalendarDate'
60
+ import { DlButton } from '../../../basic'
61
+
62
+ export default defineComponent({
63
+ components: {
64
+ CardSidebar,
65
+ DlDatePicker,
66
+ DlTimePicker,
67
+ DlButton
68
+ },
69
+ props: {
70
+ mode: {
71
+ type: String as PropType<'single' | 'multi'>,
72
+ required: true
73
+ },
74
+ typeState: {
75
+ type: String as PropType<'day' | 'month'>,
76
+ required: true
77
+ },
78
+ sidebarDayOptions: {
79
+ type: Array as PropType<DayTypeOption[]>,
80
+ required: true
81
+ },
82
+ sidebarMonthOptions: {
83
+ type: Array as PropType<MonthTypeOption[]>,
84
+ required: true
85
+ },
86
+ currentSidebarOption: {
87
+ type: String,
88
+ required: true
89
+ },
90
+ dateInterval: {
91
+ type: Object as PropType<DateInterval | null>,
92
+ default: null
93
+ },
94
+ availableRange: {
95
+ type: Object as PropType<Partial<DateInterval> | null>,
96
+ default: null
97
+ },
98
+ isInputDisabled: {
99
+ type: Boolean,
100
+ default: false
101
+ },
102
+ normalizeCalendars: {
103
+ type: Boolean,
104
+ default: false
105
+ },
106
+ activeDateFrom: {
107
+ type: Object as PropType<CalendarDate | null>,
108
+ default: null
109
+ },
110
+ activeDateTo: {
111
+ type: Object as PropType<CalendarDate | null>,
112
+ default: null
113
+ },
114
+ showTime: {
115
+ type: Boolean,
116
+ default: false
117
+ },
118
+ cardContentStyles: {
119
+ type: Object as PropType<Record<string, any>>,
120
+ default: () => ({})
121
+ },
122
+ hideClearButton: {
123
+ type: Boolean,
124
+ default: false
125
+ }
126
+ },
127
+ emits: [
128
+ 'day-type-option-click',
129
+ 'month-type-option-click',
130
+ 'update-date-interval',
131
+ 'update-date-interval-with-auto-close',
132
+ 'update-from-to-date',
133
+ 'clear'
134
+ ],
135
+ methods: {
136
+ handleDayTypeOptionClick(option: DayTypeOption) {
137
+ this.$emit('day-type-option-click', option)
138
+ },
139
+ handleMonthTypeOptionClick(option: MonthTypeOption) {
140
+ this.$emit('month-type-option-click', option)
141
+ },
142
+ updateDateInterval(value: DateInterval | null) {
143
+ this.$emit('update-date-interval', value)
144
+ },
145
+ updateDateIntervalWithAutoClose(value: DateInterval) {
146
+ this.$emit('update-date-interval-with-auto-close', value)
147
+ },
148
+ updateFromToDate(value?: { from: CalendarDate; to: CalendarDate }) {
149
+ this.$emit('update-from-to-date', value)
150
+ },
151
+ handleClear() {
152
+ this.$emit('clear')
153
+ }
154
+ }
155
+ })
156
+ </script>
157
+
158
+ <style lang="scss" scoped>
159
+ .dl-date-time-range--card {
160
+ background-color: var(--dl-color-bg);
161
+ z-index: 1;
162
+ display: flex;
163
+ border-radius: 2px;
164
+ }
165
+
166
+ .dl-date-time-range--card_content {
167
+ width: var(--card-content-width);
168
+ }
169
+
170
+ .dl-date-time-range--button {
171
+ display: flex;
172
+ margin-left: auto;
173
+ width: fit-content;
174
+ margin-right: 16px;
175
+ margin-bottom: 16px;
176
+ }
177
+ </style>
@@ -1,104 +1,71 @@
1
1
  <template>
2
2
  <div :id="uuid" class="dl-date-time-range">
3
- <date-input
4
- :text="dateInputText"
5
- :input-style="dateInputStyle"
6
- :disabled="disabled"
7
- :width="width"
8
- >
9
- <dl-menu
10
- ref="dateTimeRangeMenu"
11
- anchor="bottom middle"
12
- self="top middle"
13
- :offset="[0, 5]"
3
+ <template v-if="isInputMode">
4
+ <date-input
5
+ :text="dateInputText"
6
+ :input-style="dateInputStyle"
14
7
  :disabled="disabled"
8
+ :width="width"
15
9
  >
16
- <div class="dl-date-time-range--card">
17
- <div
18
- v-if="mode === 'multi'"
19
- class="dl-date-time-range--card_sidebar"
20
- >
21
- <card-sidebar
22
- v-if="typeState === 'day'"
23
- :options="sidebarDayOptions"
24
- :current-option="currentSidebarOption"
25
- @click="handleDayTypeOptionClick"
26
- />
27
- <card-sidebar
28
- v-else
29
- :options="sidebarMonthOptions"
30
- :current-option="currentSidebarOption"
31
- @click="handleMonthTypeOptionClick"
32
- />
33
- </div>
34
- <div
35
- class="dl-date-time-range--card_content"
36
- :style="cardContentStyles"
37
- >
38
- <dl-date-picker
39
- :model-value="dateInterval"
40
- :type="typeState"
41
- :available-range="availableRange"
42
- :disabled="isInputDisabled"
43
- :normalize-calendars="normalizeCalendars"
44
- :active-date-from="activeDateFrom"
45
- :active-date-to="activeDateTo"
46
- @update:model-value="
47
- updateDateIntervalWithAutoClose
48
- "
49
- @update:from-to-date="updateFromToDate"
50
- />
51
- <dl-time-picker
52
- v-if="showTime && typeState === 'day'"
53
- :disabled="isInputDisabled"
54
- :model-value="dateInterval"
55
- @update:model-value="updateDateInterval"
56
- />
57
-
58
- <dl-button
59
- size="s"
60
- outlined
61
- class="dl-date-time-range--button"
62
- @click="handleClearAction"
63
- >
64
- <span style="text-transform: capitalize">
65
- Clear
66
- </span>
67
- </dl-button>
68
- </div>
69
- </div>
70
- </dl-menu>
71
- </date-input>
10
+ <dl-menu
11
+ ref="dateTimeRangeMenu"
12
+ anchor="bottom middle"
13
+ self="top middle"
14
+ :offset="[0, 5]"
15
+ :disabled="disabled"
16
+ >
17
+ <date-time-range-content
18
+ v-bind="dateTimeRangeContentProps"
19
+ @day-type-option-click="handleDayTypeOptionClick"
20
+ @month-type-option-click="handleMonthTypeOptionClick"
21
+ @update-date-interval="updateDateInterval"
22
+ @update-date-interval-with-auto-close="
23
+ updateDateIntervalWithAutoClose
24
+ "
25
+ @update-from-to-date="updateFromToDate"
26
+ @clear="handleClearAction"
27
+ />
28
+ </dl-menu>
29
+ </date-input>
30
+ </template>
31
+ <template v-else>
32
+ <date-time-range-content
33
+ v-bind="dateTimeRangeContentProps"
34
+ @day-type-option-click="handleDayTypeOptionClick"
35
+ @month-type-option-click="handleMonthTypeOptionClick"
36
+ @update-date-interval="updateDateInterval"
37
+ @update-date-interval-with-auto-close="
38
+ updateDateIntervalWithAutoClose
39
+ "
40
+ @update-from-to-date="updateFromToDate"
41
+ @clear="handleClearAction"
42
+ />
43
+ </template>
72
44
  </div>
73
45
  </template>
74
46
  <script lang="ts">
75
- import { DlTimePicker } from '../DlTimePicker'
76
47
  import { DateInterval } from '../types'
77
- import CardSidebar from './CardSidebar.vue'
78
48
  import {
79
49
  DayTypeOption,
80
50
  DAY_SIDEBAR_OPTION,
81
51
  MonthTypeOption,
82
- MONTH_SIDEBAR_OPTION
52
+ MONTH_SIDEBAR_OPTION,
53
+ DATETIME_RANGE_VIEW_MODE
83
54
  } from './types'
84
55
  import { CustomDate } from '../DlDatePicker/models/CustomDate'
85
- import DlDatePicker from '../DlDatePicker/DlDatePicker.vue'
86
56
  import { CalendarDate } from '../DlDatePicker/models/CalendarDate'
87
57
  import DateInput from './DateInput.vue'
58
+ import DateTimeRangeContent from './DateTimeRangeContent.vue'
88
59
  import { DlMenu } from '../../../essential'
89
- import { DlButton } from '../../../basic'
90
60
  import { defineComponent, PropType } from 'vue-demi'
91
61
  import { isInRange } from '../DlDatePicker/utils'
92
62
  import { v4 } from 'uuid'
93
63
 
94
64
  export default defineComponent({
95
65
  components: {
96
- CardSidebar,
97
- DlDatePicker,
98
- DlTimePicker,
99
66
  DateInput,
100
- DlMenu,
101
- DlButton
67
+ DateTimeRangeContent,
68
+ DlMenu
102
69
  },
103
70
  model: {
104
71
  prop: 'modelValue',
@@ -152,6 +119,14 @@ export default defineComponent({
152
119
  shouldClearSelectFirstOption: {
153
120
  type: Boolean,
154
121
  default: false
122
+ },
123
+ viewMode: {
124
+ type: String as PropType<DATETIME_RANGE_VIEW_MODE>,
125
+ default: DATETIME_RANGE_VIEW_MODE.input
126
+ },
127
+ hideClearButton: {
128
+ type: Boolean,
129
+ default: false
155
130
  }
156
131
  },
157
132
  emits: ['update:model-value', 'set-type', 'change'],
@@ -437,6 +412,27 @@ export default defineComponent({
437
412
  return {
438
413
  '--card-content-width': this.datePickerCardWidth
439
414
  }
415
+ },
416
+ isInputMode(): boolean {
417
+ return this.viewMode === DATETIME_RANGE_VIEW_MODE.input
418
+ },
419
+ dateTimeRangeContentProps(): Record<string, any> {
420
+ return {
421
+ mode: this.mode,
422
+ typeState: this.typeState,
423
+ sidebarDayOptions: this.sidebarDayOptions,
424
+ sidebarMonthOptions: this.sidebarMonthOptions,
425
+ currentSidebarOption: this.currentSidebarOption,
426
+ dateInterval: this.dateInterval,
427
+ availableRange: this.availableRange,
428
+ isInputDisabled: this.isInputDisabled,
429
+ normalizeCalendars: this.normalizeCalendars,
430
+ activeDateFrom: this.activeDateFrom,
431
+ activeDateTo: this.activeDateTo,
432
+ showTime: this.showTime,
433
+ cardContentStyles: this.cardContentStyles,
434
+ hideClearButton: this.hideClearButton
435
+ }
440
436
  }
441
437
  },
442
438
  watch: {
@@ -516,7 +512,10 @@ export default defineComponent({
516
512
  this.typeState = value
517
513
  this.$emit('set-type', value)
518
514
  },
519
- updateDateInterval(value: DateInterval | null) {
515
+ updateDateInterval(
516
+ value: DateInterval | null,
517
+ skipSidebarUpdate = false
518
+ ) {
520
519
  if (value === null) {
521
520
  this.dateInterval = null
522
521
  } else {
@@ -524,6 +523,14 @@ export default defineComponent({
524
523
  from: value.from,
525
524
  to: new Date(value.to)
526
525
  }
526
+ // When in multi mode, update sidebar option to custom if user manually selects date
527
+ if (this.mode === 'multi' && !skipSidebarUpdate) {
528
+ this.currentSidebarOption =
529
+ this.typeState === 'day'
530
+ ? DAY_SIDEBAR_OPTION.custom
531
+ : MONTH_SIDEBAR_OPTION.custom
532
+ this.isInputDisabled = false
533
+ }
527
534
  }
528
535
  this.$emit('update:model-value', value)
529
536
  this.$emit('change', value)
@@ -532,16 +539,24 @@ export default defineComponent({
532
539
  this.activeDateFrom = value?.from || null
533
540
  this.activeDateTo = value?.to || null
534
541
  },
535
- updateDateIntervalWithAutoClose(value: DateInterval) {
536
- this.updateDateInterval(value)
542
+ updateDateIntervalWithAutoClose(
543
+ value: DateInterval,
544
+ skipSidebarUpdate = false
545
+ ) {
546
+ this.updateDateInterval(value, skipSidebarUpdate)
537
547
 
538
- if (this.autoClose) {
548
+ if (
549
+ this.autoClose &&
550
+ this.viewMode === DATETIME_RANGE_VIEW_MODE.input
551
+ ) {
539
552
  const dateTimeRangeMenu = this.$refs[
540
553
  'dateTimeRangeMenu'
541
554
  ] as unknown as {
542
555
  hide: () => void
543
556
  }
544
- dateTimeRangeMenu.hide()
557
+ if (dateTimeRangeMenu) {
558
+ dateTimeRangeMenu.hide()
559
+ }
545
560
  }
546
561
  },
547
562
  handleDayTypeOptionClick(option: DayTypeOption) {
@@ -555,9 +570,9 @@ export default defineComponent({
555
570
 
556
571
  if (option.key === DAY_SIDEBAR_OPTION.custom_by_month) {
557
572
  this.handleTypeChange('month')
558
- this.updateDateInterval(option.value)
573
+ this.updateDateInterval(option.value, true)
559
574
  } else {
560
- this.updateDateIntervalWithAutoClose(option.value)
575
+ this.updateDateIntervalWithAutoClose(option.value, true)
561
576
  }
562
577
  },
563
578
  handleMonthTypeOptionClick(option: MonthTypeOption) {
@@ -571,9 +586,9 @@ export default defineComponent({
571
586
 
572
587
  if (option.key === MONTH_SIDEBAR_OPTION.custom_by_day) {
573
588
  this.handleTypeChange('day')
574
- this.updateDateInterval(option.value)
589
+ this.updateDateInterval(option.value, true)
575
590
  } else {
576
- this.updateDateIntervalWithAutoClose(option.value)
591
+ this.updateDateIntervalWithAutoClose(option.value, true)
577
592
  }
578
593
  }
579
594
  }
@@ -583,25 +598,5 @@ export default defineComponent({
583
598
  .dl-date-time-range {
584
599
  display: flex;
585
600
  justify-content: center;
586
-
587
- &--card {
588
- background-color: var(--dl-color-bg);
589
- z-index: 1;
590
- display: flex;
591
- border-radius: 2px;
592
- border-radius: 2px;
593
- }
594
-
595
- &--card_content {
596
- width: var(--card-content-width);
597
- }
598
-
599
- &--button {
600
- display: flex;
601
- margin-left: auto;
602
- width: fit-content;
603
- margin-right: 16px;
604
- margin-bottom: 16px;
605
- }
606
601
  }
607
602
  </style>
@@ -40,3 +40,8 @@ export type MonthTypeOption = {
40
40
  value?: DateInterval
41
41
  disabled?: boolean
42
42
  }
43
+
44
+ export enum DATETIME_RANGE_VIEW_MODE {
45
+ input = 'input',
46
+ inline = 'inline'
47
+ }
@@ -178,10 +178,20 @@ export default defineComponent({
178
178
  return !!parentClassList?.contains('content')
179
179
  },
180
180
  hasHeader(): boolean {
181
- return !!this.$slots.header && !this.hideHeader
181
+ const slotKeys = Object.keys(this.$slots)
182
+ return (
183
+ !this.hideHeader &&
184
+ slotKeys.includes('header') &&
185
+ !!this.$slots.header
186
+ )
182
187
  },
183
188
  hasFooter(): boolean {
184
- return !!this.$slots.footer && !this.hideFooter
189
+ const slotKeys = Object.keys(this.$slots)
190
+ return (
191
+ !this.hideFooter &&
192
+ slotKeys.includes('footer') &&
193
+ !!this.$slots.footer
194
+ )
185
195
  }
186
196
  },
187
197
  watch: {
@@ -58,15 +58,17 @@
58
58
  :style="`
59
59
  background-color: ${separatorColor}`"
60
60
  />
61
- <dl-icon
62
- class="expand-icon"
63
- :class="iconClass"
64
- :icon="dropdownIcon"
65
- :size="iconSize"
66
- :color="getIconColor"
67
- :tooltip="iconTooltip"
68
- @click="onIconClicked"
69
- />
61
+ <slot name="suffix-icon">
62
+ <dl-icon
63
+ class="expand-icon"
64
+ :class="iconClass"
65
+ :icon="dropdownIcon"
66
+ :size="iconSize"
67
+ :color="getIconColor"
68
+ :tooltip="iconTooltip"
69
+ @click="onIconClicked"
70
+ />
71
+ </slot>
70
72
  </dl-button>
71
73
  <dl-menu
72
74
  ref="menuRef"
@@ -116,10 +118,7 @@
116
118
  @click="onClick"
117
119
  >
118
120
  <div class="dl-button-dropdown--simple__title">
119
- <template v-if="hasLabelSlot">
120
- <slot name="label" />
121
- </template>
122
- <template v-else>
121
+ <slot name="label">
123
122
  <span
124
123
  :class="{
125
124
  'dl-button-no-wrap': noWrap
@@ -128,15 +127,17 @@
128
127
  >
129
128
  {{ label }}
130
129
  </span>
131
- </template>
132
- <dl-icon
133
- :class="iconClass"
134
- :icon="dropdownIcon"
135
- :size="iconSize"
136
- :color="getIconColor"
137
- :tooltip="iconTooltip"
138
- @click="onIconClicked"
139
- />
130
+ </slot>
131
+ <slot name="suffix-icon">
132
+ <dl-icon
133
+ :class="iconClass"
134
+ :icon="dropdownIcon"
135
+ :size="iconSize"
136
+ :color="getIconColor"
137
+ :tooltip="iconTooltip"
138
+ @click="onIconClicked"
139
+ />
140
+ </slot>
140
141
  </div>
141
142
 
142
143
  <dl-menu
@@ -301,9 +302,6 @@ export default defineComponent({
301
302
  const showing = ref<boolean>(!!props.modelValue) as Ref<boolean>
302
303
  const menuRef = ref(null)
303
304
 
304
- const hasLabelSlot = computed(() => {
305
- return !!slots.label
306
- })
307
305
  const attributes = computed(() => {
308
306
  const acc: Record<string, string> = {
309
307
  'aria-expanded': showing.value === true ? 'true' : 'false',
@@ -512,8 +510,7 @@ export default defineComponent({
512
510
  cssVars,
513
511
  getIconColor,
514
512
  computedTextColor,
515
- separatorColor,
516
- hasLabelSlot
513
+ separatorColor
517
514
  }
518
515
  }
519
516
  })
@@ -1470,6 +1470,9 @@ export default defineComponent({
1470
1470
  &--s {
1471
1471
  height: 18px;
1472
1472
  }
1473
+ &--m {
1474
+ height: 26px;
1475
+ }
1473
1476
  }
1474
1477
 
1475
1478
  &__input {
@@ -1518,6 +1521,7 @@ export default defineComponent({
1518
1521
  }
1519
1522
 
1520
1523
  &--m {
1524
+ height: 12px;
1521
1525
  line-height: 12px;
1522
1526
  padding-top: 7px;
1523
1527
  padding-bottom: 7px;
@@ -158,6 +158,18 @@ export default defineComponent({
158
158
  },
159
159
  onSearchButtonPress(): void {
160
160
  this.$emit('search', this.modelValue)
161
+ },
162
+ focus(): void {
163
+ const inputComponent = this.$refs.input as InstanceType<
164
+ typeof DlInput
165
+ >
166
+ inputComponent?.focus()
167
+ },
168
+ blur(): void {
169
+ const inputComponent = this.$refs.input as InstanceType<
170
+ typeof DlInput
171
+ >
172
+ inputComponent?.blur()
161
173
  }
162
174
  }
163
175
  })
@@ -1,12 +1,6 @@
1
1
  <template>
2
- <div
3
- class="dl-smart-search"
4
- :style="cssVars"
5
- >
6
- <div
7
- ref="inputWrapper"
8
- class="dl-smart-search__input-wrapper"
9
- >
2
+ <div class="dl-smart-search" :style="cssVars">
3
+ <div ref="inputWrapper" class="dl-smart-search__input-wrapper">
10
4
  <dl-smart-search-input
11
5
  ref="smartSearchInput"
12
6
  v-model="queryObject"
@@ -18,6 +12,7 @@
18
12
  :color-schema="colorSchema"
19
13
  :strict="strict"
20
14
  :placeholder="placeholder"
15
+ :disabled="disabled"
21
16
  @focus="isFocused = true"
22
17
  @blur="isFocused = false"
23
18
  @search="emitSearchQuery"