@adminforth/text-complete 2.1.1 → 3.0.1
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/build.log +2 -2
- package/custom/completionInput.vue +50 -64
- package/custom/package-lock.json +0 -13
- package/custom/package.json +0 -1
- package/custom/pnpm-lock.yaml +0 -12
- package/dist/custom/completionInput.vue +50 -64
- package/dist/custom/package-lock.json +0 -13
- package/dist/custom/package.json +0 -1
- package/dist/custom/pnpm-lock.yaml +0 -12
- package/dist/index.js +1 -0
- package/index.ts +1 -0
- package/package.json +3 -3
package/build.log
CHANGED
|
@@ -10,5 +10,5 @@ custom/package.json
|
|
|
10
10
|
custom/pnpm-lock.yaml
|
|
11
11
|
custom/tsconfig.json
|
|
12
12
|
|
|
13
|
-
sent
|
|
14
|
-
total size is
|
|
13
|
+
sent 29,022 bytes received 115 bytes 58,274.00 bytes/sec
|
|
14
|
+
total size is 28,596 speedup is 0.98
|
|
@@ -1,70 +1,59 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
<div
|
|
3
|
+
class="af-text-complete-input flex gap-2 w-full px-2.5 text-sm leading-5 bg-lightInputBackground text-lightInputText border border-lightInputBorder rounded-default shadow-customLight dark:bg-darkInputBackground dark:text-darkInputText dark:border-darkInputBorder transition-colors"
|
|
4
|
+
:class="[
|
|
5
|
+
column.type === 'text' ? 'min-h-[3.625rem] py-2' : 'py-1.5',
|
|
6
|
+
isFocused
|
|
7
|
+
? 'ring-[3px] ring-lightInputFocusRing border-lightInputFocusBorder dark:ring-darkInputFocusRing dark:border-darkInputFocusBorder'
|
|
8
|
+
: 'hover:border-lightInputBorderHover dark:hover:border-darkInputBorderHover',
|
|
9
|
+
]"
|
|
10
|
+
@focusin="isFocused = true"
|
|
11
|
+
@focusout="isFocused = false"
|
|
6
12
|
>
|
|
7
|
-
<SuggestionInput
|
|
13
|
+
<SuggestionInput
|
|
8
14
|
ref="suggestionInputRef"
|
|
9
|
-
class="w-
|
|
15
|
+
class="flex-1 min-w-0 !border-0"
|
|
10
16
|
v-model="currentValue"
|
|
11
17
|
:type="column.type"
|
|
12
18
|
:completionRequest="complete"
|
|
13
19
|
:debounceTime="meta.debounceTime"
|
|
14
20
|
@completion-approved="handleCompletionApproved"
|
|
15
21
|
/>
|
|
16
|
-
|
|
22
|
+
<!-- the actions take one line of text so the field keeps the height of AFCL Input -->
|
|
23
|
+
<div class="af-text-complete-actions flex items-center h-5 shrink-0">
|
|
17
24
|
<Tooltip v-if="isUntouched || (!currentValue.trim() && !isFocused)">
|
|
18
|
-
<
|
|
25
|
+
<Button
|
|
26
|
+
variant="ghost"
|
|
27
|
+
size="sm"
|
|
28
|
+
iconOnly
|
|
29
|
+
class="w-5 h-5"
|
|
19
30
|
@click.stop="handleFocus"
|
|
20
31
|
@mousedown.prevent
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
</button>
|
|
32
|
+
>
|
|
33
|
+
<IconSparkles />
|
|
34
|
+
</Button>
|
|
25
35
|
<template #tooltip>
|
|
26
36
|
{{ $t('Start completion') }}
|
|
27
37
|
</template>
|
|
28
|
-
</Tooltip>
|
|
38
|
+
</Tooltip>
|
|
29
39
|
|
|
30
|
-
<Spinner v-else-if="isLoading" class="w-
|
|
40
|
+
<Spinner v-else-if="isLoading" class="w-4 h-4" />
|
|
31
41
|
<Tooltip v-else-if="isFocused">
|
|
32
|
-
<
|
|
42
|
+
<Button
|
|
43
|
+
variant="ghost"
|
|
44
|
+
size="sm"
|
|
45
|
+
class="h-5 px-0.5"
|
|
33
46
|
@click.stop="approveCompletion"
|
|
34
47
|
@mousedown.prevent
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
<div
|
|
41
|
-
class="flex items-center justify-center"
|
|
42
|
-
v-if="buttonText === approveCompletionValue"
|
|
43
|
-
>
|
|
44
|
-
<IconArrowRightThin class="mt-0.5 w-5 h-5 text-white"/>
|
|
45
|
-
<span class="ml-1 px-1 h-4 flex items-center justify-center rounded border bg-white text-black text-[10px] font-mono shadow-inner shadow-sm border-gray-300 dark:bg-gray-700 dark:text-white dark:border-gray-500">
|
|
46
|
-
<p class="mt-0.5">Tab</p>
|
|
47
|
-
</span>
|
|
48
|
-
</div>
|
|
49
|
-
<div
|
|
50
|
-
class="flex items-center justify-center"
|
|
51
|
-
v-else-if="buttonText === approveNextWordValue"
|
|
52
|
-
>
|
|
53
|
-
<IconArrowRightThin class="mt-0.5 w-5 h-5 text-white" />
|
|
54
|
-
<span class="ml-1 px-1 h-4 flex items-center justify-center rounded border bg-white text-black text-[10px] font-mono shadow-inner shadow-sm border-gray-300 dark:bg-gray-700 dark:text-white dark:border-gray-500">
|
|
55
|
-
<p class="mt-0.5">Ctrl</p>
|
|
56
|
-
</span>
|
|
57
|
-
<span class="ml-1 text-white">+</span>
|
|
58
|
-
<span class="ml-1 px-1 h-4 flex items-center justify-center rounded border bg-white text-black text-[10px] font-mono shadow-inner shadow-sm border-gray-300 dark:bg-gray-700 dark:text-white dark:border-gray-500">
|
|
59
|
-
<IconArrowRightThin class="w-3.5 h-3.5" />
|
|
60
|
-
</span>
|
|
61
|
-
</div>
|
|
62
|
-
</button>
|
|
48
|
+
>
|
|
49
|
+
<kbd class="inline-flex items-center h-[18px] px-[5px] rounded border border-lightInputBorder bg-lightInputBackground text-lightInputIconColor font-mono text-[11px] font-normal leading-none dark:border-darkInputBorder dark:bg-darkInputBackground dark:text-darkInputIconColor">
|
|
50
|
+
{{ buttonText }}
|
|
51
|
+
</kbd>
|
|
52
|
+
</Button>
|
|
63
53
|
<template #tooltip>
|
|
64
54
|
{{ $t(tooltipText) }}
|
|
65
55
|
</template>
|
|
66
56
|
</Tooltip>
|
|
67
|
-
|
|
68
57
|
</div>
|
|
69
58
|
</div>
|
|
70
59
|
</template>
|
|
@@ -73,8 +62,8 @@
|
|
|
73
62
|
import { ref, onMounted, watch, Ref, computed, defineAsyncComponent } from 'vue';
|
|
74
63
|
import { callAdminForthApi } from '@/utils';
|
|
75
64
|
import { AdminForthColumnCommon } from '@/types/Common';
|
|
76
|
-
import { Spinner, Tooltip } from '@/afcl';
|
|
77
|
-
import {
|
|
65
|
+
import { Button, Spinner, Tooltip } from '@/afcl';
|
|
66
|
+
import { IconSparkles } from '@iconify-prerendered/vue-lucide';
|
|
78
67
|
|
|
79
68
|
|
|
80
69
|
const SuggestionInput = defineAsyncComponent(async () => {
|
|
@@ -92,8 +81,8 @@ const props = defineProps<{
|
|
|
92
81
|
const emit = defineEmits([
|
|
93
82
|
'update:value',
|
|
94
83
|
]);
|
|
95
|
-
const approveCompletionValue:string='
|
|
96
|
-
const approveNextWordValue:string='
|
|
84
|
+
const approveCompletionValue:string='Tab';
|
|
85
|
+
const approveNextWordValue:string='Ctrl →'
|
|
97
86
|
const isLoading = ref<boolean>(false);
|
|
98
87
|
const isUntouched = ref<boolean>(true);
|
|
99
88
|
const isFocused = ref<boolean>(false);
|
|
@@ -119,13 +108,6 @@ onMounted(() => {
|
|
|
119
108
|
if (value.trim()) {
|
|
120
109
|
isUntouched.value = false;
|
|
121
110
|
}
|
|
122
|
-
if (suggestionInputRef.value) {
|
|
123
|
-
const editor = suggestionInputRef.value.$el.querySelector('.ql-editor');
|
|
124
|
-
if (editor) {
|
|
125
|
-
editor.addEventListener('focus', handleFocus);
|
|
126
|
-
editor.addEventListener('blur', handleBlur);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
111
|
});
|
|
130
112
|
|
|
131
113
|
watch(() => currentValue.value, (value) => {
|
|
@@ -168,7 +150,6 @@ const approveCompletion = async () => {
|
|
|
168
150
|
}
|
|
169
151
|
|
|
170
152
|
function handleFocus() {
|
|
171
|
-
isFocused.value = true;
|
|
172
153
|
if (suggestionInputRef.value) {
|
|
173
154
|
const editor = suggestionInputRef.value.$el.querySelector('.ql-editor');
|
|
174
155
|
if (editor) {
|
|
@@ -177,18 +158,23 @@ function handleFocus() {
|
|
|
177
158
|
}
|
|
178
159
|
}
|
|
179
160
|
|
|
180
|
-
function handleBlur() {
|
|
181
|
-
isFocused.value = false;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
161
|
</script>
|
|
185
162
|
|
|
186
163
|
<style>
|
|
187
|
-
|
|
188
|
-
|
|
164
|
+
/* Quill sets its own font and line height, the field uses the ones of AFCL Input */
|
|
165
|
+
.af-text-complete-input .ql-container {
|
|
166
|
+
font: inherit;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.af-text-complete-input .ql-editor {
|
|
170
|
+
line-height: inherit;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.af-text-complete-input .ql-editor.ql-blank::before {
|
|
174
|
+
@apply text-lightInputPlaceholderText dark:text-darkInputPlaceholderText;
|
|
189
175
|
}
|
|
190
176
|
|
|
191
|
-
.ql-editor {
|
|
192
|
-
|
|
177
|
+
.af-text-complete-input .ql-container .ql-editor [completer] {
|
|
178
|
+
@apply not-italic text-lightInputPlaceholderText dark:text-darkInputPlaceholderText;
|
|
193
179
|
}
|
|
194
180
|
</style>
|
package/custom/package-lock.json
CHANGED
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
"version": "1.0.0",
|
|
10
10
|
"license": "ISC",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@iconify-prerendered/vue-mdi": "^0.28.1737398331",
|
|
13
12
|
"vue-suggestion-input": "^1.0.17"
|
|
14
13
|
}
|
|
15
14
|
},
|
|
@@ -59,18 +58,6 @@
|
|
|
59
58
|
"node": ">=6.9.0"
|
|
60
59
|
}
|
|
61
60
|
},
|
|
62
|
-
"node_modules/@iconify-prerendered/vue-mdi": {
|
|
63
|
-
"version": "0.28.1737398331",
|
|
64
|
-
"resolved": "https://registry.npmjs.org/@iconify-prerendered/vue-mdi/-/vue-mdi-0.28.1737398331.tgz",
|
|
65
|
-
"integrity": "sha512-VzBgRTfdhrUZeuaImPGX+l+Eb94qEQSSLGKKHs6BxQXJV9jPoDGqgQkzsUbZHThC81WQ1aY2EvlhmTgGq9yKEA==",
|
|
66
|
-
"license": "Apache-2.0",
|
|
67
|
-
"funding": {
|
|
68
|
-
"url": "https://www.buymeacoffee.com/kozack/"
|
|
69
|
-
},
|
|
70
|
-
"peerDependencies": {
|
|
71
|
-
"vue": "^3.0.0"
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
61
|
"node_modules/@jridgewell/sourcemap-codec": {
|
|
75
62
|
"version": "1.5.5",
|
|
76
63
|
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
|
package/custom/package.json
CHANGED
package/custom/pnpm-lock.yaml
CHANGED
|
@@ -8,9 +8,6 @@ importers:
|
|
|
8
8
|
|
|
9
9
|
.:
|
|
10
10
|
dependencies:
|
|
11
|
-
'@iconify-prerendered/vue-mdi':
|
|
12
|
-
specifier: ^0.28.1737398331
|
|
13
|
-
version: 0.28.1737398331(vue@3.5.30)
|
|
14
11
|
vue-suggestion-input:
|
|
15
12
|
specifier: ^1.0.17
|
|
16
13
|
version: 1.0.17
|
|
@@ -34,11 +31,6 @@ packages:
|
|
|
34
31
|
resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==}
|
|
35
32
|
engines: {node: '>=6.9.0'}
|
|
36
33
|
|
|
37
|
-
'@iconify-prerendered/vue-mdi@0.28.1737398331':
|
|
38
|
-
resolution: {integrity: sha512-VzBgRTfdhrUZeuaImPGX+l+Eb94qEQSSLGKKHs6BxQXJV9jPoDGqgQkzsUbZHThC81WQ1aY2EvlhmTgGq9yKEA==}
|
|
39
|
-
peerDependencies:
|
|
40
|
-
vue: ^3.0.0
|
|
41
|
-
|
|
42
34
|
'@jridgewell/sourcemap-codec@1.5.5':
|
|
43
35
|
resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
|
|
44
36
|
|
|
@@ -153,10 +145,6 @@ snapshots:
|
|
|
153
145
|
'@babel/helper-string-parser': 7.27.1
|
|
154
146
|
'@babel/helper-validator-identifier': 7.28.5
|
|
155
147
|
|
|
156
|
-
'@iconify-prerendered/vue-mdi@0.28.1737398331(vue@3.5.30)':
|
|
157
|
-
dependencies:
|
|
158
|
-
vue: 3.5.30
|
|
159
|
-
|
|
160
148
|
'@jridgewell/sourcemap-codec@1.5.5': {}
|
|
161
149
|
|
|
162
150
|
'@vue/compiler-core@3.5.30':
|
|
@@ -1,70 +1,59 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
<div
|
|
3
|
+
class="af-text-complete-input flex gap-2 w-full px-2.5 text-sm leading-5 bg-lightInputBackground text-lightInputText border border-lightInputBorder rounded-default shadow-customLight dark:bg-darkInputBackground dark:text-darkInputText dark:border-darkInputBorder transition-colors"
|
|
4
|
+
:class="[
|
|
5
|
+
column.type === 'text' ? 'min-h-[3.625rem] py-2' : 'py-1.5',
|
|
6
|
+
isFocused
|
|
7
|
+
? 'ring-[3px] ring-lightInputFocusRing border-lightInputFocusBorder dark:ring-darkInputFocusRing dark:border-darkInputFocusBorder'
|
|
8
|
+
: 'hover:border-lightInputBorderHover dark:hover:border-darkInputBorderHover',
|
|
9
|
+
]"
|
|
10
|
+
@focusin="isFocused = true"
|
|
11
|
+
@focusout="isFocused = false"
|
|
6
12
|
>
|
|
7
|
-
<SuggestionInput
|
|
13
|
+
<SuggestionInput
|
|
8
14
|
ref="suggestionInputRef"
|
|
9
|
-
class="w-
|
|
15
|
+
class="flex-1 min-w-0 !border-0"
|
|
10
16
|
v-model="currentValue"
|
|
11
17
|
:type="column.type"
|
|
12
18
|
:completionRequest="complete"
|
|
13
19
|
:debounceTime="meta.debounceTime"
|
|
14
20
|
@completion-approved="handleCompletionApproved"
|
|
15
21
|
/>
|
|
16
|
-
|
|
22
|
+
<!-- the actions take one line of text so the field keeps the height of AFCL Input -->
|
|
23
|
+
<div class="af-text-complete-actions flex items-center h-5 shrink-0">
|
|
17
24
|
<Tooltip v-if="isUntouched || (!currentValue.trim() && !isFocused)">
|
|
18
|
-
<
|
|
25
|
+
<Button
|
|
26
|
+
variant="ghost"
|
|
27
|
+
size="sm"
|
|
28
|
+
iconOnly
|
|
29
|
+
class="w-5 h-5"
|
|
19
30
|
@click.stop="handleFocus"
|
|
20
31
|
@mousedown.prevent
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
</button>
|
|
32
|
+
>
|
|
33
|
+
<IconSparkles />
|
|
34
|
+
</Button>
|
|
25
35
|
<template #tooltip>
|
|
26
36
|
{{ $t('Start completion') }}
|
|
27
37
|
</template>
|
|
28
|
-
</Tooltip>
|
|
38
|
+
</Tooltip>
|
|
29
39
|
|
|
30
|
-
<Spinner v-else-if="isLoading" class="w-
|
|
40
|
+
<Spinner v-else-if="isLoading" class="w-4 h-4" />
|
|
31
41
|
<Tooltip v-else-if="isFocused">
|
|
32
|
-
<
|
|
42
|
+
<Button
|
|
43
|
+
variant="ghost"
|
|
44
|
+
size="sm"
|
|
45
|
+
class="h-5 px-0.5"
|
|
33
46
|
@click.stop="approveCompletion"
|
|
34
47
|
@mousedown.prevent
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
<div
|
|
41
|
-
class="flex items-center justify-center"
|
|
42
|
-
v-if="buttonText === approveCompletionValue"
|
|
43
|
-
>
|
|
44
|
-
<IconArrowRightThin class="mt-0.5 w-5 h-5 text-white"/>
|
|
45
|
-
<span class="ml-1 px-1 h-4 flex items-center justify-center rounded border bg-white text-black text-[10px] font-mono shadow-inner shadow-sm border-gray-300 dark:bg-gray-700 dark:text-white dark:border-gray-500">
|
|
46
|
-
<p class="mt-0.5">Tab</p>
|
|
47
|
-
</span>
|
|
48
|
-
</div>
|
|
49
|
-
<div
|
|
50
|
-
class="flex items-center justify-center"
|
|
51
|
-
v-else-if="buttonText === approveNextWordValue"
|
|
52
|
-
>
|
|
53
|
-
<IconArrowRightThin class="mt-0.5 w-5 h-5 text-white" />
|
|
54
|
-
<span class="ml-1 px-1 h-4 flex items-center justify-center rounded border bg-white text-black text-[10px] font-mono shadow-inner shadow-sm border-gray-300 dark:bg-gray-700 dark:text-white dark:border-gray-500">
|
|
55
|
-
<p class="mt-0.5">Ctrl</p>
|
|
56
|
-
</span>
|
|
57
|
-
<span class="ml-1 text-white">+</span>
|
|
58
|
-
<span class="ml-1 px-1 h-4 flex items-center justify-center rounded border bg-white text-black text-[10px] font-mono shadow-inner shadow-sm border-gray-300 dark:bg-gray-700 dark:text-white dark:border-gray-500">
|
|
59
|
-
<IconArrowRightThin class="w-3.5 h-3.5" />
|
|
60
|
-
</span>
|
|
61
|
-
</div>
|
|
62
|
-
</button>
|
|
48
|
+
>
|
|
49
|
+
<kbd class="inline-flex items-center h-[18px] px-[5px] rounded border border-lightInputBorder bg-lightInputBackground text-lightInputIconColor font-mono text-[11px] font-normal leading-none dark:border-darkInputBorder dark:bg-darkInputBackground dark:text-darkInputIconColor">
|
|
50
|
+
{{ buttonText }}
|
|
51
|
+
</kbd>
|
|
52
|
+
</Button>
|
|
63
53
|
<template #tooltip>
|
|
64
54
|
{{ $t(tooltipText) }}
|
|
65
55
|
</template>
|
|
66
56
|
</Tooltip>
|
|
67
|
-
|
|
68
57
|
</div>
|
|
69
58
|
</div>
|
|
70
59
|
</template>
|
|
@@ -73,8 +62,8 @@
|
|
|
73
62
|
import { ref, onMounted, watch, Ref, computed, defineAsyncComponent } from 'vue';
|
|
74
63
|
import { callAdminForthApi } from '@/utils';
|
|
75
64
|
import { AdminForthColumnCommon } from '@/types/Common';
|
|
76
|
-
import { Spinner, Tooltip } from '@/afcl';
|
|
77
|
-
import {
|
|
65
|
+
import { Button, Spinner, Tooltip } from '@/afcl';
|
|
66
|
+
import { IconSparkles } from '@iconify-prerendered/vue-lucide';
|
|
78
67
|
|
|
79
68
|
|
|
80
69
|
const SuggestionInput = defineAsyncComponent(async () => {
|
|
@@ -92,8 +81,8 @@ const props = defineProps<{
|
|
|
92
81
|
const emit = defineEmits([
|
|
93
82
|
'update:value',
|
|
94
83
|
]);
|
|
95
|
-
const approveCompletionValue:string='
|
|
96
|
-
const approveNextWordValue:string='
|
|
84
|
+
const approveCompletionValue:string='Tab';
|
|
85
|
+
const approveNextWordValue:string='Ctrl →'
|
|
97
86
|
const isLoading = ref<boolean>(false);
|
|
98
87
|
const isUntouched = ref<boolean>(true);
|
|
99
88
|
const isFocused = ref<boolean>(false);
|
|
@@ -119,13 +108,6 @@ onMounted(() => {
|
|
|
119
108
|
if (value.trim()) {
|
|
120
109
|
isUntouched.value = false;
|
|
121
110
|
}
|
|
122
|
-
if (suggestionInputRef.value) {
|
|
123
|
-
const editor = suggestionInputRef.value.$el.querySelector('.ql-editor');
|
|
124
|
-
if (editor) {
|
|
125
|
-
editor.addEventListener('focus', handleFocus);
|
|
126
|
-
editor.addEventListener('blur', handleBlur);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
111
|
});
|
|
130
112
|
|
|
131
113
|
watch(() => currentValue.value, (value) => {
|
|
@@ -168,7 +150,6 @@ const approveCompletion = async () => {
|
|
|
168
150
|
}
|
|
169
151
|
|
|
170
152
|
function handleFocus() {
|
|
171
|
-
isFocused.value = true;
|
|
172
153
|
if (suggestionInputRef.value) {
|
|
173
154
|
const editor = suggestionInputRef.value.$el.querySelector('.ql-editor');
|
|
174
155
|
if (editor) {
|
|
@@ -177,18 +158,23 @@ function handleFocus() {
|
|
|
177
158
|
}
|
|
178
159
|
}
|
|
179
160
|
|
|
180
|
-
function handleBlur() {
|
|
181
|
-
isFocused.value = false;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
161
|
</script>
|
|
185
162
|
|
|
186
163
|
<style>
|
|
187
|
-
|
|
188
|
-
|
|
164
|
+
/* Quill sets its own font and line height, the field uses the ones of AFCL Input */
|
|
165
|
+
.af-text-complete-input .ql-container {
|
|
166
|
+
font: inherit;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.af-text-complete-input .ql-editor {
|
|
170
|
+
line-height: inherit;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.af-text-complete-input .ql-editor.ql-blank::before {
|
|
174
|
+
@apply text-lightInputPlaceholderText dark:text-darkInputPlaceholderText;
|
|
189
175
|
}
|
|
190
176
|
|
|
191
|
-
.ql-editor {
|
|
192
|
-
|
|
177
|
+
.af-text-complete-input .ql-container .ql-editor [completer] {
|
|
178
|
+
@apply not-italic text-lightInputPlaceholderText dark:text-darkInputPlaceholderText;
|
|
193
179
|
}
|
|
194
180
|
</style>
|
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
"version": "1.0.0",
|
|
10
10
|
"license": "ISC",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@iconify-prerendered/vue-mdi": "^0.28.1737398331",
|
|
13
12
|
"vue-suggestion-input": "^1.0.17"
|
|
14
13
|
}
|
|
15
14
|
},
|
|
@@ -59,18 +58,6 @@
|
|
|
59
58
|
"node": ">=6.9.0"
|
|
60
59
|
}
|
|
61
60
|
},
|
|
62
|
-
"node_modules/@iconify-prerendered/vue-mdi": {
|
|
63
|
-
"version": "0.28.1737398331",
|
|
64
|
-
"resolved": "https://registry.npmjs.org/@iconify-prerendered/vue-mdi/-/vue-mdi-0.28.1737398331.tgz",
|
|
65
|
-
"integrity": "sha512-VzBgRTfdhrUZeuaImPGX+l+Eb94qEQSSLGKKHs6BxQXJV9jPoDGqgQkzsUbZHThC81WQ1aY2EvlhmTgGq9yKEA==",
|
|
66
|
-
"license": "Apache-2.0",
|
|
67
|
-
"funding": {
|
|
68
|
-
"url": "https://www.buymeacoffee.com/kozack/"
|
|
69
|
-
},
|
|
70
|
-
"peerDependencies": {
|
|
71
|
-
"vue": "^3.0.0"
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
61
|
"node_modules/@jridgewell/sourcemap-codec": {
|
|
75
62
|
"version": "1.5.5",
|
|
76
63
|
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
|
package/dist/custom/package.json
CHANGED
|
@@ -8,9 +8,6 @@ importers:
|
|
|
8
8
|
|
|
9
9
|
.:
|
|
10
10
|
dependencies:
|
|
11
|
-
'@iconify-prerendered/vue-mdi':
|
|
12
|
-
specifier: ^0.28.1737398331
|
|
13
|
-
version: 0.28.1737398331(vue@3.5.30)
|
|
14
11
|
vue-suggestion-input:
|
|
15
12
|
specifier: ^1.0.17
|
|
16
13
|
version: 1.0.17
|
|
@@ -34,11 +31,6 @@ packages:
|
|
|
34
31
|
resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==}
|
|
35
32
|
engines: {node: '>=6.9.0'}
|
|
36
33
|
|
|
37
|
-
'@iconify-prerendered/vue-mdi@0.28.1737398331':
|
|
38
|
-
resolution: {integrity: sha512-VzBgRTfdhrUZeuaImPGX+l+Eb94qEQSSLGKKHs6BxQXJV9jPoDGqgQkzsUbZHThC81WQ1aY2EvlhmTgGq9yKEA==}
|
|
39
|
-
peerDependencies:
|
|
40
|
-
vue: ^3.0.0
|
|
41
|
-
|
|
42
34
|
'@jridgewell/sourcemap-codec@1.5.5':
|
|
43
35
|
resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
|
|
44
36
|
|
|
@@ -153,10 +145,6 @@ snapshots:
|
|
|
153
145
|
'@babel/helper-string-parser': 7.27.1
|
|
154
146
|
'@babel/helper-validator-identifier': 7.28.5
|
|
155
147
|
|
|
156
|
-
'@iconify-prerendered/vue-mdi@0.28.1737398331(vue@3.5.30)':
|
|
157
|
-
dependencies:
|
|
158
|
-
vue: 3.5.30
|
|
159
|
-
|
|
160
148
|
'@jridgewell/sourcemap-codec@1.5.5': {}
|
|
161
149
|
|
|
162
150
|
'@vue/compiler-core@3.5.30':
|
package/dist/index.js
CHANGED
|
@@ -70,6 +70,7 @@ export default class TextCompletePlugin extends AdminForthPlugin {
|
|
|
70
70
|
server.endpoint({
|
|
71
71
|
method: 'POST',
|
|
72
72
|
path: `/plugin/${this.pluginInstanceId}/doComplete`,
|
|
73
|
+
agent: { hiddenFromAgents: true },
|
|
73
74
|
request_schema: doCompleteBodySchema,
|
|
74
75
|
handler: (_a) => __awaiter(this, [_a], void 0, function* ({ body, headers }) {
|
|
75
76
|
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
package/index.ts
CHANGED
|
@@ -87,6 +87,7 @@ export default class TextCompletePlugin extends AdminForthPlugin {
|
|
|
87
87
|
server.endpoint({
|
|
88
88
|
method: 'POST',
|
|
89
89
|
path: `/plugin/${this.pluginInstanceId}/doComplete`,
|
|
90
|
+
agent: { hiddenFromAgents: true },
|
|
90
91
|
request_schema: doCompleteBodySchema,
|
|
91
92
|
handler: async ({ body, headers }) => {
|
|
92
93
|
const data = body as z.infer<typeof doCompleteBodySchema>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adminforth/text-complete",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "Text completion plugin for adminforth",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/node": "^22.10.7",
|
|
30
|
-
"adminforth": "^
|
|
30
|
+
"adminforth": "^4.7.3",
|
|
31
31
|
"semantic-release": "^24.2.1",
|
|
32
32
|
"semantic-release-slack-bot": "^4.0.2",
|
|
33
33
|
"typescript": "^5.7.3"
|
|
@@ -58,6 +58,6 @@
|
|
|
58
58
|
]
|
|
59
59
|
},
|
|
60
60
|
"peerDependencies": {
|
|
61
|
-
"adminforth": "^
|
|
61
|
+
"adminforth": "^4.0.0"
|
|
62
62
|
}
|
|
63
63
|
}
|