@dataloop-ai/components 0.18.102 → 0.18.103

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.18.102",
3
+ "version": "0.18.103",
4
4
  "exports": {
5
5
  ".": "./index.ts",
6
6
  "./models": "./models.ts",
@@ -300,7 +300,7 @@ export default defineComponent({
300
300
  const setInputFromSuggestion = (value: string) => {
301
301
  let stringValue = ''
302
302
  if (searchQuery.value.length) {
303
- const query = searchQuery.value
303
+ let query = searchQuery.value
304
304
  .replace(new RegExp(' ', 'g'), ' ')
305
305
  .split(' ')
306
306
  .map((string: string) => string.trim())
@@ -316,6 +316,14 @@ export default defineComponent({
316
316
  query[query.length - 1] = query[
317
317
  query.length - 1
318
318
  ].replace('.', '')
319
+ } else if (
320
+ value
321
+ .toLowerCase()
322
+ .startsWith(
323
+ query[query.length - 1].toLowerCase()
324
+ )
325
+ ) {
326
+ query = query.slice(0, query.length - 1)
319
327
  }
320
328
  stringValue = [...query, value, ''].join(' ')
321
329
  }
@@ -324,7 +332,14 @@ export default defineComponent({
324
332
  query[query.length - 1] = query[
325
333
  query.length - 1
326
334
  ].replace('.', '')
335
+ } else if (
336
+ value
337
+ .toLowerCase()
338
+ .startsWith(query[query.length - 1].toLowerCase())
339
+ ) {
340
+ query = query.slice(0, query.length - 1)
327
341
  }
342
+
328
343
  stringValue = [...query, value, ''].join(' ')
329
344
  }
330
345
  } else {
@@ -1,79 +0,0 @@
1
- <template>
2
- <div
3
- :id="uuid"
4
- class="dl-filters-wrapper"
5
- >
6
- <dl-tabs
7
- v-model="currentTab"
8
- volatile
9
- full-width
10
- :items="tabItems"
11
- font-size="14px"
12
- />
13
- <div class="dl-filters-tabs">
14
- <dl-tab-panels v-model="currentTab">
15
- <dl-tab-panel
16
- v-for="tab in tabItems"
17
- :key="tab.name"
18
- :name="tab.name"
19
- >
20
- <div>
21
- <filters-query
22
- v-for="(query, index) in filters[currentTab]"
23
- :key="index"
24
- :type="currentTab"
25
- :name="query.name"
26
- @select="$emit('filters-select', currentTab, query)"
27
- @delete="$emit('filters-delete', currentTab, query)"
28
- />
29
- </div>
30
- </dl-tab-panel>
31
- </dl-tab-panels>
32
- </div>
33
- </div>
34
- </template>
35
-
36
- <script lang="ts">
37
- import { defineComponent, PropType } from 'vue-demi'
38
- import { DlTabs } from '../../../../DlTabs'
39
- import { DlTabPanels, DlTabPanel } from '../../../../DlTabPanels'
40
- import { Filters } from '../../types'
41
- import { getTabItems } from '../../utils'
42
- import FiltersQuery from './components/FiltersQuery.vue'
43
- import { v4 } from 'uuid'
44
-
45
- export default defineComponent({
46
- components: {
47
- DlTabs,
48
- DlTabPanels,
49
- DlTabPanel,
50
- FiltersQuery
51
- },
52
- props: {
53
- filters: {
54
- type: Object as PropType<Filters>,
55
- default: (): Filters => ({ saved: [], recent: [], suggested: [] })
56
- }
57
- },
58
- emits: ['filters-delete', 'filters-select'],
59
- data() {
60
- return {
61
- uuid: `dl-smart-search-filters-${v4()}`,
62
- currentTab: 'saved'
63
- }
64
- },
65
- computed: {
66
- tabItems(): { label: string; name: string }[] {
67
- return getTabItems(this.filters)
68
- }
69
- }
70
- })
71
- </script>
72
- <style scoped lang="scss">
73
- .dl-filters-wrapper {
74
- min-height: 300px;
75
- }
76
- .dl-filters-tabs {
77
- margin-top: 5px;
78
- }
79
- </style>
@@ -1,100 +0,0 @@
1
- <template>
2
- <div
3
- class="query"
4
- @mouseenter="actionsVisible = true"
5
- @mouseleave="actionsVisible = false"
6
- >
7
- <div
8
- class="query__header"
9
- @mousedown="$emit('select')"
10
- >
11
- <dl-icon :icon="icon" />
12
- <span class="query__header--title">
13
- {{ name }}
14
- </span>
15
- </div>
16
- <div
17
- v-if="actionsVisible"
18
- class="query__actions"
19
- >
20
- <div
21
- class="query__actions--icon"
22
- @mousedown="$emit('delete')"
23
- >
24
- <dl-icon
25
- :inline="false"
26
- size="14px"
27
- icon="icon-dl-delete"
28
- />
29
- <dl-tooltip>Delete</dl-tooltip>
30
- </div>
31
- </div>
32
- </div>
33
- </template>
34
-
35
- <script lang="ts">
36
- import { defineComponent } from 'vue-demi'
37
- import { DlIcon } from '../../../../../../essential'
38
- import { DlTooltip } from '../../../../../../shared'
39
-
40
- export default defineComponent({
41
- components: {
42
- DlIcon,
43
- DlTooltip
44
- },
45
- props: {
46
- type: {
47
- type: String,
48
- default: 'saved'
49
- },
50
- name: {
51
- type: String,
52
- default: ''
53
- }
54
- },
55
- emits: ['delete', 'select'],
56
- data() {
57
- return {
58
- actionsVisible: false
59
- }
60
- },
61
- computed: {
62
- icon(): string {
63
- return this.type === 'saved' ? 'icon-dl-save' : 'icon-dl-time'
64
- }
65
- }
66
- })
67
- </script>
68
-
69
- <style lang="scss" scoped>
70
- .query {
71
- height: 18px;
72
- padding: 5px 10px;
73
- border-radius: 3px;
74
- display: flex;
75
- justify-content: space-between;
76
- color: var(--dl-color-darker);
77
- &__header {
78
- cursor: pointer;
79
- display: flex;
80
- align-items: center;
81
- &--title {
82
- font-size: 12px;
83
- margin: 0px 12px;
84
- }
85
- }
86
-
87
- &__actions {
88
- display: flex;
89
- align-items: center;
90
- &--icon {
91
- cursor: pointer;
92
- margin: 0px 5px;
93
- }
94
- }
95
-
96
- &:hover {
97
- background-color: var(--dl-color-fill);
98
- }
99
- }
100
- </style>
@@ -1,124 +0,0 @@
1
- <!-- <template>
2
- <dl-button
3
- class="dl-smart-search__buttons--filters"
4
- shaded
5
- outlined
6
- size="s"
7
- >
8
- Saved Filters
9
- <dl-menu
10
- v-model="filtersModel"
11
- :offset="[0, 5]"
12
- anchor="bottom middle"
13
- self="top middle"
14
- >
15
- <dl-smart-search-filters
16
- :filters="filters"
17
- @filters-select="handleFiltersSelect"
18
- @filters-delete="handleFiltersDelete"
19
- />
20
- </dl-menu>
21
- </dl-button>
22
- </template>
23
-
24
- <script lang="ts">
25
- import {
26
- defineComponent,
27
- ref,
28
- watch,
29
- PropType,
30
- toRefs,
31
- computed
32
- } from 'vue-demi'
33
- import { DlSelect } from '../../../DlSelect'
34
- import { DlSelectOption } from '../../../DlSelect/types'
35
- import { DlButton } from '../../../../basic'
36
- import { DlDialogBox, DlDialogBoxHeader } from '../../../DlDialogBox'
37
- import { DlJsonEditor } from '../../../DlJsonEditor'
38
- import { DlTypography } from '../../../../essential'
39
- import { DlInput } from '../../../DlInput'
40
-
41
- export default defineComponent({
42
- components: {
43
- DlDialogBox,
44
- DlDialogBoxHeader,
45
- DlJsonEditor,
46
- DlButton,
47
- DlSelect,
48
- DlTypography,
49
- DlInput
50
- },
51
- model: {
52
- prop: 'modelValue',
53
- event: 'update:modelValue'
54
- },
55
- props: {
56
- modelValue: {
57
- required: false,
58
- type: Boolean,
59
- default: false
60
- },
61
- json: {
62
- required: true,
63
- type: String
64
- },
65
- options: {
66
- required: true,
67
- type: Array as PropType<DlSelectOption[]>,
68
- default: () => [] as DlSelectOption[]
69
- }
70
- },
71
- emits: ['update:modelValue', 'search', 'update:json', 'save', 'delete'],
72
- setup(props, { emit }) {
73
- const { modelValue, options, json } = toRefs(props)
74
-
75
- const isOpen = computed({
76
- get: () => modelValue.value,
77
- set: (val) => emit('update:modelValue', val)
78
- })
79
-
80
- const jsonEditor = ref<typeof DlJsonEditor>(null)
81
- const showSaveDialog = ref(false)
82
- const showDeleteDialog = ref(false)
83
- const stringifiedJSON = ref(json.value)
84
- const newQueryName = ref('')
85
- const selectedOption = ref<DlSelectOption>(
86
- options.value.find((o) => o.value === json.value) ?? {
87
- label: 'New Query',
88
- value: json.value
89
- }
90
- )
91
-
92
- const canDelete = computed(
93
- () =>
94
- !options.value?.filter(
95
- (q: DlSelectOption) => q.value === stringifiedJSON
96
- ).length
97
- )
98
-
99
- const alignJSON = () => {
100
- jsonEditor.value.format()
101
- }
102
-
103
- const onQuerySelect = (option: DlSelectOption) => {
104
- selectedOption.value = option
105
- stringifiedJSON.value = option.value
106
- }
107
-
108
- return {
109
- isOpen,
110
- jsonEditor,
111
- showSaveDialog,
112
- stringifiedJSON,
113
- selectedOption,
114
- canDelete,
115
- alignJSON,
116
- onQuerySelect,
117
- newQueryName,
118
- showDeleteDialog
119
- }
120
- }
121
- })
122
- </script>
123
-
124
- <style scoped lang="scss"></style> -->