@dataloop-ai/components 0.20.160-ds-v3.0 → 0.20.161

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.160-ds-v3.0",
3
+ "version": "0.20.161",
4
4
  "exports": {
5
5
  ".": "./index.ts",
6
6
  "./models": "./models.ts",
@@ -23,7 +23,7 @@
23
23
  "check-only": "if grep -E -H -r --exclude-dir=.git --exclude-dir=node_modules --exclude=*.json --exclude=*.yml '^(describe|it).only' .; then echo 'Found only in test files' && exit 1; fi"
24
24
  },
25
25
  "dependencies": {
26
- "@dataloop-ai/icons": "^3.1.30",
26
+ "@dataloop-ai/icons": "^3.1.33",
27
27
  "@types/flat": "^5.0.2",
28
28
  "@types/lodash": "^4.14.184",
29
29
  "@types/sortablejs": "^1.15.7",
@@ -8,7 +8,7 @@
8
8
  >
9
9
  <template #header>
10
10
  <dl-dialog-box-header
11
- title="DQL Editor"
11
+ title="DQL Search"
12
12
  :close-button="true"
13
13
  @onClose="isOpen = false"
14
14
  />
@@ -21,93 +21,31 @@
21
21
  >
22
22
  <dl-select
23
23
  :model-value="selectedOption"
24
- ref="jsonQueryMenu"
25
24
  width="300px"
26
25
  :options="selectOptions"
27
26
  placeholder="New Query"
28
- searchable
29
- after-options-padding="0"
30
- no-options-padding="0"
31
- menu-style="overflow-y: hidden;"
32
27
  @update:model-value="onQuerySelect"
33
28
  >
34
29
  <template #selected="scope">
35
- <span class="json-query-menu-selected">
30
+ <span class="json-query-menu-option">
36
31
  {{ scope.opt ? scope.opt.label : '' }}
37
32
  </span>
38
33
  </template>
39
34
  <template #option="scope">
40
- <div class="json-query-menu-option">
41
- <div class="json-query-menu-option-label">
42
- {{ scope.opt.label }}
43
- </div>
44
- <dl-icon
45
- v-if="scope.opt.label !== 'New Query'"
46
- icon="icon-dl-delete"
47
- color="dl-color-negative"
48
- class="json-query-menu-option-delete"
49
- @click.stop="onDelete(scope.opt)"
50
- >
51
- <dl-tooltip>Delete</dl-tooltip>
52
- </dl-icon>
53
- </div>
54
- </template>
55
- <template #after-options>
56
- <dl-separator
57
- style="margin: 0 0 2px 0 !important"
58
- type="horizontal"
59
- />
60
- <dl-button
61
- icon="icon-dl-save"
62
- flat
63
- fluid
64
- secondary
65
- size="s"
66
- label="Save Query"
67
- class="json-query-menu-save-button"
68
- @click="onSave"
69
- />
70
- </template>
71
- <template #no-options>
72
- <div class="json-query-menu-no-option">
73
- {{ noOptionsLabel }}
74
- </div>
75
- <dl-separator
76
- style="margin: 0 0 2px 0 !important"
77
- type="horizontal"
78
- />
79
- <dl-button
80
- icon="icon-dl-save"
81
- flat
82
- fluid
83
- secondary
84
- size="s"
85
- label="Save Query"
86
- class="json-query-menu-save-button"
87
- @click="onSave"
88
- />
35
+ <span class="json-query-menu-option">
36
+ {{ scope.opt.label }}
37
+ </span>
89
38
  </template>
90
39
  </dl-select>
91
- <div>
92
- <dl-button
93
- icon="icon-dl-align-left"
94
- tooltip="Align Left"
95
- flat
96
- color="secondary"
97
- padding="0px 3px"
98
- :disabled="alignDisabled"
99
- @click="alignJSON"
100
- />
101
- <dl-button
102
- icon="icon-dl-copy"
103
- tooltip="Copy"
104
- flat
105
- color="secondary"
106
- padding="0px 3px"
107
- :disabled="alignDisabled"
108
- @click="copyJSON"
109
- />
110
- </div>
40
+ <dl-button
41
+ icon="icon-dl-align-left"
42
+ label="Align Left"
43
+ flat
44
+ color="secondary"
45
+ padding="0px 3px"
46
+ :disabled="alignDisabled"
47
+ @click="alignJSON"
48
+ />
111
49
  </div>
112
50
  <dl-json-editor
113
51
  ref="jsonEditor"
@@ -127,7 +65,7 @@
127
65
  flat
128
66
  color="secondary"
129
67
  padding="0"
130
- @click="optionToDelete = selectedOption"
68
+ @click="showDeleteDialog = true"
131
69
  />
132
70
  <div class="json-editor-footer-actions">
133
71
  <dl-button
@@ -163,20 +101,27 @@
163
101
  <template #body>
164
102
  <dl-input
165
103
  v-model="newQueryName"
166
- :red-asterisk="true"
167
- :required="true"
168
- title="Query Name"
169
- placeholder="Insert query name"
104
+ title="Query name"
105
+ style="text-align: center"
106
+ placeholder="Type query name"
170
107
  />
171
108
  </template>
172
109
  <template #footer>
173
110
  <div class="dl-smart-search__buttons--save">
174
111
  <dl-button
175
112
  :disabled="!newQueryName"
113
+ outlined
114
+ style="margin-right: 5px"
176
115
  @click="() => saveQuery(false)"
177
116
  >
178
117
  Save
179
118
  </dl-button>
119
+ <dl-button
120
+ :disabled="!newQueryName"
121
+ @click="() => saveQuery(true)"
122
+ >
123
+ Save and Search
124
+ </dl-button>
180
125
  </div>
181
126
  </template>
182
127
  </dl-dialog-box>
@@ -190,13 +135,12 @@
190
135
  />
191
136
  </template>
192
137
  <template #body>
193
- <dl-typography size="h5">
194
- Are you sure you want to permanently delete the following query?
195
- <br />
196
- {{ optionToDelete.label }}
197
- <br />
198
- <br />
199
- This action cannot be undone.
138
+ <dl-typography
139
+ size="h3"
140
+ style="display: flex; justify-content: center"
141
+ >
142
+ Are you sure you want to delete
143
+ {{ selectedOption.label }}?
200
144
  </dl-typography>
201
145
  </template>
202
146
  <template #footer>
@@ -222,12 +166,10 @@ import {
222
166
  } from 'vue-demi'
223
167
  import { DlSelect } from '../../../DlSelect'
224
168
  import { DlSelectOption } from '../../../DlSelect/types'
225
- import { DlSeparator } from '../../../../essential/DlSeparator'
226
169
  import { DlButton } from '../../../../basic'
227
170
  import { DlDialogBox, DlDialogBoxHeader } from '../../../DlDialogBox'
228
171
  import { DlJsonEditor } from '../../../DlJsonEditor'
229
- import { DlTooltip } from '../../../../shared/DlTooltip'
230
- import { DlTypography, DlIcon } from '../../../../essential'
172
+ import { DlTypography } from '../../../../essential'
231
173
  import { DlInput } from '../../../DlInput'
232
174
  import { stateManager } from '../../../../../StateManager'
233
175
  import { cloneDeep, isEqual, uniqBy } from 'lodash'
@@ -237,12 +179,9 @@ export default defineComponent({
237
179
  components: {
238
180
  DlDialogBox,
239
181
  DlDialogBoxHeader,
240
- DlIcon,
241
182
  DlJsonEditor,
242
183
  DlButton,
243
184
  DlSelect,
244
- DlSeparator,
245
- DlTooltip,
246
185
  DlTypography,
247
186
  DlInput
248
187
  },
@@ -275,24 +214,11 @@ export default defineComponent({
275
214
  'update:modelValue',
276
215
  'search',
277
216
  'change',
278
- 'copied',
279
217
  'update:options',
280
218
  'save',
281
219
  'delete',
282
220
  'select'
283
221
  ],
284
- methods: {
285
- onDelete(option: DlSelectOption) {
286
- const select = this.$refs['jsonQueryMenu'] as InstanceType<typeof DlSelect>
287
- select?.closeMenu()
288
- this.optionToDelete = option
289
- },
290
- onSave() {
291
- const select = this.$refs['jsonQueryMenu'] as InstanceType<typeof DlSelect>
292
- select?.closeMenu()
293
- this.showSaveDialog = true
294
- }
295
- },
296
222
  setup(props, { emit }) {
297
223
  const { modelValue, options, json, selectedFilter } = toRefs(props)
298
224
 
@@ -304,15 +230,7 @@ export default defineComponent({
304
230
  const currentQuery = ref<{ [key: string]: any }>(cloneDeep(json.value))
305
231
  const jsonEditor = ref<any>(null)
306
232
  const showSaveDialog = ref(false)
307
- const optionToDelete = ref<DlSelectOption>(null)
308
- const showDeleteDialog = computed<boolean>({
309
- get: () => !!optionToDelete.value,
310
- set: (val) => {
311
- if (!val) {
312
- optionToDelete.value = null
313
- }
314
- }
315
- })
233
+ const showDeleteDialog = ref(false)
316
234
  const newQueryName = ref('')
317
235
  const alignDisabled = ref(false)
318
236
 
@@ -334,12 +252,6 @@ export default defineComponent({
334
252
  }
335
253
  )
336
254
 
337
- const noOptionsLabel = computed<string>(() => {
338
- return selectOptions.value.length
339
- ? 'No Results Found'
340
- : 'No Saved Queries'
341
- })
342
-
343
255
  watch(
344
256
  selectedFilter,
345
257
  () => {
@@ -361,11 +273,6 @@ export default defineComponent({
361
273
  jsonEditor.value?.format()
362
274
  }
363
275
 
364
- const copyJSON = async () => {
365
- await navigator.clipboard.writeText(stringifiedJSON.value)
366
- emit('copied')
367
- }
368
-
369
276
  const onQuerySelect = (option: DlSelectOption) => {
370
277
  if (option.label === selectedOption.value.label) {
371
278
  return
@@ -449,10 +356,10 @@ export default defineComponent({
449
356
 
450
357
  const deleteQuery = () => {
451
358
  const toDelete = options.value.find(
452
- (o: DlSelectOption) => o.label === optionToDelete.value.label
359
+ (o: DlSelectOption) => o.label === selectedOption.value.label
453
360
  )
454
361
  const newOptions = options.value.filter(
455
- (o: DlSelectOption) => o.label !== optionToDelete.value.label
362
+ (o: DlSelectOption) => o.label !== selectedOption.value.label
456
363
  )
457
364
 
458
365
  emit('delete', toDelete)
@@ -483,14 +390,11 @@ export default defineComponent({
483
390
  showSaveDialog,
484
391
  stringifiedJSON,
485
392
  selectedOption,
486
- noOptionsLabel,
487
393
  hasActiveFilter,
488
394
  alignJSON,
489
- copyJSON,
490
395
  onQuerySelect,
491
396
  newQueryName,
492
397
  alignDisabled,
493
- optionToDelete,
494
398
  showDeleteDialog,
495
399
  selectOptions,
496
400
  search,
@@ -522,50 +426,10 @@ export default defineComponent({
522
426
  }
523
427
 
524
428
  .json-query-menu-option {
525
- display: flex;
526
- flex-direction: row;
527
- }
528
- .json-query-menu-option-label,
529
- .json-query-menu-selected {
530
- line-height: 20px;
531
429
  white-space: nowrap;
532
430
  display: inline-block;
533
431
  width: 265px;
534
432
  overflow: hidden;
535
433
  text-overflow: ellipsis;
536
434
  }
537
- .json-query-menu-option:hover .json-query-menu-option-label {
538
- margin-right: 6px;
539
- width: 255px;
540
- }
541
- .json-query-menu-option-delete {
542
- overflow-x: hidden;
543
- width: 0;
544
- }
545
- .json-query-menu-option:hover .json-query-menu-option-delete {
546
- border-radius: 4px;
547
- overflow-x: visible;
548
- padding: 4px;
549
- width: auto;
550
- }
551
- .json-query-menu-option-delete:hover {
552
- background-color: var(--dl-color-fill-secondary);
553
- }
554
- .json-query-menu-option-delete:active {
555
- background-color: var(--dl-color-negative-background);
556
- }
557
- .json-query-menu-no-option {
558
- display: flex;
559
- padding: 20px 0;
560
- flex-direction: column;
561
- align-items: center;
562
- align-self: stretch;
563
- }
564
- .json-query-menu-save-button:hover {
565
- background-color: var(--dl-color-fill-secondary);
566
- }
567
- .dl-smart-search__buttons--save {
568
- text-align: right;
569
- width: 100%;
570
- }
571
435
  </style>
@@ -145,6 +145,7 @@
145
145
  </div>
146
146
  </div>
147
147
  <dl-menu
148
+ v-if="!noOptions || !hideEmptyMenu"
148
149
  ref="menu"
149
150
  v-model="isExpanded"
150
151
  fit-container
@@ -169,17 +170,13 @@
169
170
  <slot name="before-options" />
170
171
  </dl-item-section>
171
172
  </dl-list-item>
172
- <dl-list-item
173
- v-if="noOptions"
174
- :style="computedNoOptionsStyle"
175
- :padding="noOptionsPadding"
176
- >
173
+ <dl-list-item v-if="noOptions" :style="computedNoOptionsStyle">
177
174
  <dl-item-section color="dl-color-medium">
178
175
  <slot name="no-options"> No options </slot>
179
176
  </dl-item-section>
180
177
  </dl-list-item>
181
178
  <dl-list
182
- v-else-if="showMenuList"
179
+ v-if="showMenuList"
183
180
  class="select-list"
184
181
  :padding="false"
185
182
  :style="
@@ -513,13 +510,13 @@ export default defineComponent({
513
510
  type: String,
514
511
  default: null
515
512
  },
516
- noOptionsPadding: {
517
- type: String,
518
- default: null
519
- },
520
513
  keepFocusOnBlur: {
521
514
  type: Boolean,
522
515
  default: false
516
+ },
517
+ hideEmptyMenu: {
518
+ type: Boolean,
519
+ default: false
523
520
  }
524
521
  },
525
522
  emits: [
@@ -36,7 +36,8 @@
36
36
  {{ childDisabledCheckboxTooltip }}
37
37
  </dl-tooltip>
38
38
  <DlCheckbox
39
- v-if="!isCheckboxDisabled && row.isSelectable"
39
+ v-if="!row.hideCheckbox"
40
+ :disabled="isCheckboxDisabled || !row.isSelectable"
40
41
  :color="color"
41
42
  :model-value="modelValue"
42
43
  :indeterminate-value="true"