@opendesign-plus-test/components 0.0.1-rc.53 → 0.0.1-rc.54

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 (37) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +66 -46
  3. package/dist/components/OHeaderSearch.vue.d.ts +814 -534
  4. package/dist/components/search/OSearchInput.vue.d.ts +1001 -0
  5. package/dist/components/search/composables/useImageSearch.d.ts +48 -0
  6. package/dist/components/search/composables/useKeywordHighlight.d.ts +2 -0
  7. package/dist/components/search/composables/useSearchHistory.d.ts +14 -0
  8. package/dist/components/search/index.d.ts +587 -0
  9. package/dist/components/search/internal/HighlightText.vue.d.ts +9 -0
  10. package/dist/components/search/internal/SearchImageInput.vue.d.ts +716 -0
  11. package/dist/components/search/internal/SearchPanel.vue.d.ts +100 -0
  12. package/dist/components/search/types.d.ts +20 -0
  13. package/dist/components.cjs.js +42 -42
  14. package/dist/components.css +1 -1
  15. package/dist/components.es.js +11437 -10379
  16. package/dist/index.d.ts +1 -0
  17. package/package.json +1 -1
  18. package/src/assets/svg-icons/icon-delete-hover.svg +4 -0
  19. package/src/assets/svg-icons/icon-delete.svg +5 -1
  20. package/src/assets/svg-icons/icon-image-close.svg +4 -0
  21. package/src/assets/svg-icons/icon-image-upload.svg +3 -0
  22. package/src/assets/svg-icons/icon-image-zoomin.svg +3 -0
  23. package/src/assets/svg-icons/icon-refresh.svg +3 -0
  24. package/src/components/OHeaderSearch.vue +448 -418
  25. package/src/components/search/OSearchInput.vue +503 -0
  26. package/src/components/search/composables/useImageSearch.ts +157 -0
  27. package/src/components/search/composables/useKeywordHighlight.ts +30 -0
  28. package/src/components/search/composables/useSearchHistory.ts +75 -0
  29. package/src/components/search/index.ts +23 -0
  30. package/src/components/search/internal/HighlightText.vue +37 -0
  31. package/src/components/search/internal/SearchImageInput.vue +498 -0
  32. package/src/components/search/internal/SearchPanel.vue +431 -0
  33. package/src/components/search/types.ts +25 -0
  34. package/src/i18n/en.ts +10 -0
  35. package/src/i18n/zh.ts +10 -0
  36. package/src/index.ts +1 -0
  37. package/vite.config.ts +4 -0
@@ -0,0 +1,48 @@
1
+ import { Ref } from '../../../../vue/dist/vue.esm-bundler.js';
2
+ import { OSearchUploadImageFn } from '../types';
3
+ export interface UseImageSearchOptions {
4
+ uploadImage?: Ref<OSearchUploadImageFn | undefined>;
5
+ maxImageSize: Ref<number>;
6
+ allowedImageTypes?: Ref<string[]>;
7
+ onUploadStart?: (file: File) => void;
8
+ onUploadSuccess?: (url: string, file: File) => void;
9
+ onUploadError?: (error: unknown, file: File) => void;
10
+ onValidationError?: (reason: 'size' | 'type', file: File) => void;
11
+ }
12
+ export declare function useImageSearch(options: UseImageSearchOptions): {
13
+ previewUrl: Ref<string, string>;
14
+ file: Ref<{
15
+ readonly lastModified: number;
16
+ readonly name: string;
17
+ readonly webkitRelativePath: string;
18
+ readonly size: number;
19
+ readonly type: string;
20
+ arrayBuffer: () => Promise<ArrayBuffer>;
21
+ bytes: () => Promise<Uint8Array>;
22
+ slice: (start?: number, end?: number, contentType?: string) => Blob;
23
+ stream: () => ReadableStream<Uint8Array>;
24
+ text: () => Promise<string>;
25
+ } | null, File | {
26
+ readonly lastModified: number;
27
+ readonly name: string;
28
+ readonly webkitRelativePath: string;
29
+ readonly size: number;
30
+ readonly type: string;
31
+ arrayBuffer: () => Promise<ArrayBuffer>;
32
+ bytes: () => Promise<Uint8Array>;
33
+ slice: (start?: number, end?: number, contentType?: string) => Blob;
34
+ stream: () => ReadableStream<Uint8Array>;
35
+ text: () => Promise<string>;
36
+ } | null>;
37
+ uploadedUrl: Ref<string, string>;
38
+ isUploading: Ref<boolean, boolean>;
39
+ onPaste: (event: ClipboardEvent) => void;
40
+ onDrop: (event: DragEvent) => void;
41
+ onDragOver: (event: DragEvent) => void;
42
+ onFileChange: (event: Event) => void;
43
+ pickFile: (input: HTMLInputElement | undefined) => void;
44
+ handleImageFile: (f: File) => void;
45
+ reset: () => void;
46
+ setExternalUrl: (url: string) => void;
47
+ awaitUpload: () => Promise<void>;
48
+ };
@@ -0,0 +1,2 @@
1
+ import { OSearchHighlightPart } from '../types';
2
+ export declare function highlightKeywordParts(text: string, keyword: string): OSearchHighlightPart[];
@@ -0,0 +1,14 @@
1
+ import { Ref } from '../../../../vue/dist/vue.esm-bundler.js';
2
+ export interface UseSearchHistoryOptions {
3
+ initial: Ref<string[]>;
4
+ storageKey: Ref<string>;
5
+ storeHistory: Ref<boolean>;
6
+ maxHistoryCount: Ref<number>;
7
+ onChange?: (items: string[]) => void;
8
+ }
9
+ export declare function useSearchHistory(options: UseSearchHistoryOptions): {
10
+ items: Ref<string[], string[]>;
11
+ push: (val: string) => void;
12
+ remove: (val: string) => void;
13
+ clearAll: () => void;
14
+ };
@@ -0,0 +1,587 @@
1
+ import { App } from '../../../vue/dist/vue.esm-bundler.js';
2
+ declare const OSearchInput: {
3
+ new (...args: any[]): import('../../../vue/dist/vue.esm-bundler.js').CreateComponentPublicInstanceWithMixins<Readonly<import('./OSearchInput.vue').OSearchInputPropsT> & Readonly<{
4
+ [x: `on${Capitalize<any>}`]: ((...args: any) => any) | undefined;
5
+ }>, {
6
+ focus: () => void | undefined;
7
+ blur: () => void | undefined;
8
+ search: () => Promise<void>;
9
+ saveHistory: (val?: string) => void;
10
+ }, {}, {}, {}, import('../../../vue/dist/vue.esm-bundler.js').ComponentOptionsMixin, import('../../../vue/dist/vue.esm-bundler.js').ComponentOptionsMixin, {
11
+ [x: string]: any;
12
+ } & {
13
+ [x: string]: any;
14
+ }, import('../../../vue/dist/vue.esm-bundler.js').PublicProps, {
15
+ size: "small" | "medium" | "large";
16
+ modelValue: string;
17
+ imageUrl: string;
18
+ enableImageSearch: boolean;
19
+ maxImageSize: number;
20
+ clearable: boolean;
21
+ onestepItems: import('./types').OSearchRecommendItem[];
22
+ suggestItems: import('./types').OSearchRecommendItem[];
23
+ historyItems: string[];
24
+ highlightKeyword: boolean;
25
+ showSuggestEmpty: boolean;
26
+ storageKey: string;
27
+ storeHistory: boolean;
28
+ maxHistoryCount: number;
29
+ debounce: number;
30
+ autoSaveHistory: boolean;
31
+ enableHistory: boolean;
32
+ suggestList: string[];
33
+ closeOnSearch: boolean;
34
+ closeOnClickOutside: boolean;
35
+ openOnFocus: boolean;
36
+ }, false, {}, {}, import('../../../vue/dist/vue.esm-bundler.js').GlobalComponents, import('../../../vue/dist/vue.esm-bundler.js').GlobalDirectives, string, {
37
+ wrapperRef: HTMLDivElement;
38
+ inputRef: ({
39
+ $: import('../../../vue/dist/vue.esm-bundler.js').ComponentInternalInstance;
40
+ $data: {};
41
+ $props: {
42
+ readonly [x: `on${Capitalize<any>}`]: ((...args: any) => any) | undefined;
43
+ readonly modelValue?: string | undefined;
44
+ readonly imageUrl?: string | undefined;
45
+ readonly placeholder?: string | undefined;
46
+ readonly imagePlaceholder?: string | undefined;
47
+ readonly size?: "small" | "medium" | "large" | undefined;
48
+ readonly enableImageSearch?: boolean | undefined;
49
+ readonly uploadImage?: import('./types').OSearchUploadImageFn | undefined;
50
+ readonly maxImageSize?: number | undefined;
51
+ readonly imageUploadTooltip?: string | undefined;
52
+ readonly expanded?: boolean | undefined;
53
+ readonly clearable?: boolean | undefined;
54
+ readonly showSuffix?: boolean | undefined;
55
+ readonly inlineThumbnail?: boolean | undefined;
56
+ readonly preview?: boolean | undefined;
57
+ readonly disabled?: boolean | undefined;
58
+ readonly allowedImageTypes?: string[] | undefined;
59
+ } & import('../../../vue/dist/vue.esm-bundler.js').VNodeProps & import('../../../vue/dist/vue.esm-bundler.js').AllowedComponentProps & import('../../../vue/dist/vue.esm-bundler.js').ComponentCustomProps;
60
+ $attrs: import('../../../vue/dist/vue.esm-bundler.js').Attrs;
61
+ $refs: {
62
+ [x: string]: unknown;
63
+ } & {
64
+ inputRef: ({
65
+ $: import('../../../vue/dist/vue.esm-bundler.js').ComponentInternalInstance;
66
+ $data: {};
67
+ $props: Partial<{
68
+ color: "normal" | "primary" | "success" | "warning" | "danger";
69
+ type: "text" | "password";
70
+ disabled: boolean;
71
+ variant: "solid" | "outline" | "text";
72
+ clearable: boolean;
73
+ readonly: boolean;
74
+ showLength: "auto" | "always" | "never";
75
+ inputOnOutlimit: boolean;
76
+ showPasswordEvent: "click" | "pointerdown";
77
+ autoWidth: boolean;
78
+ passwordPlaceholder: string;
79
+ onlyNumericInput: boolean;
80
+ }> & Omit<{
81
+ readonly type: "text" | "password";
82
+ readonly color: "primary" | "normal" | "success" | "warning" | "danger";
83
+ readonly variant: "text" | "solid" | "outline";
84
+ readonly disabled: boolean;
85
+ readonly clearable: boolean;
86
+ readonly readonly: boolean;
87
+ readonly showLength: "never" | "always" | "auto";
88
+ readonly inputOnOutlimit: boolean;
89
+ readonly showPasswordEvent: "click" | "pointerdown";
90
+ readonly autoWidth: boolean;
91
+ readonly passwordPlaceholder: string;
92
+ readonly onlyNumericInput: boolean;
93
+ readonly size?: "small" | "large" | "medium" | undefined;
94
+ readonly round?: import('@opensig/opendesign').RoundT | undefined;
95
+ readonly placeholder?: string | undefined;
96
+ readonly defaultValue?: string | number | undefined;
97
+ readonly modelValue?: string | number | undefined;
98
+ readonly inputId?: string | undefined;
99
+ readonly minLength?: number | undefined;
100
+ readonly maxLength?: number | undefined;
101
+ readonly getLength?: ((val: string) => number) | undefined;
102
+ readonly format?: ((value: string) => string) | undefined;
103
+ readonly validate?: ((value: string) => boolean) | undefined;
104
+ readonly valueOnInvalidChange?: boolean | ((inputValue: string, lastValidInputValue: string) => string) | undefined;
105
+ readonly onInput?: ((evt: Event, value: string) => any) | undefined | undefined;
106
+ readonly onClear?: ((evt?: Event | undefined) => any) | undefined | undefined;
107
+ readonly onBlur?: ((evt: FocusEvent) => any) | undefined | undefined;
108
+ readonly onChange?: ((value: string) => any) | undefined | undefined;
109
+ readonly onFocus?: ((evt: FocusEvent) => any) | undefined | undefined;
110
+ readonly "onUpdate:modelValue"?: ((value: string) => any) | undefined | undefined;
111
+ readonly onPressEnter?: ((evt: KeyboardEvent) => any) | undefined | undefined;
112
+ } & import('../../../vue/dist/vue.esm-bundler.js').VNodeProps & import('../../../vue/dist/vue.esm-bundler.js').AllowedComponentProps & import('../../../vue/dist/vue.esm-bundler.js').ComponentCustomProps, "type" | "color" | "variant" | "disabled" | "clearable" | "readonly" | "showLength" | "inputOnOutlimit" | "showPasswordEvent" | "autoWidth" | "passwordPlaceholder" | "onlyNumericInput">;
113
+ $attrs: import('../../../vue/dist/vue.esm-bundler.js').Attrs;
114
+ $refs: {
115
+ [x: string]: unknown;
116
+ };
117
+ $slots: Readonly<{
118
+ [name: string]: import('../../../vue/dist/vue.esm-bundler.js').Slot<any> | undefined;
119
+ }>;
120
+ $root: import('../../../vue/dist/vue.esm-bundler.js').ComponentPublicInstance | null;
121
+ $parent: import('../../../vue/dist/vue.esm-bundler.js').ComponentPublicInstance | null;
122
+ $host: Element | null;
123
+ $emit: ((event: "input", evt: Event, value: string) => void) & ((event: "clear", evt?: Event | undefined) => void) & ((event: "change", value: string) => void) & ((event: "blur", evt: FocusEvent) => void) & ((event: "focus", evt: FocusEvent) => void) & ((event: "update:modelValue", value: string) => void) & ((event: "pressEnter", evt: KeyboardEvent) => void);
124
+ $el: any;
125
+ $options: import('../../../vue/dist/vue.esm-bundler.js').ComponentOptionsBase<Readonly<import('../../../vue/dist/vue.esm-bundler.js').ExtractPropTypes<{
126
+ size: {
127
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<import('@opensig/opendesign').SizeT>;
128
+ };
129
+ round: {
130
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<import('@opensig/opendesign').RoundT>;
131
+ };
132
+ color: {
133
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<import('@opensig/opendesign').Color2T>;
134
+ default: string;
135
+ };
136
+ variant: {
137
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<import('@opensig/opendesign').VariantT>;
138
+ default: string;
139
+ };
140
+ modelValue: {
141
+ type: (NumberConstructor | StringConstructor)[];
142
+ };
143
+ defaultValue: {
144
+ type: (NumberConstructor | StringConstructor)[];
145
+ };
146
+ type: {
147
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<"text" | "password">;
148
+ default: string;
149
+ };
150
+ placeholder: {
151
+ type: StringConstructor;
152
+ };
153
+ inputId: {
154
+ type: StringConstructor;
155
+ };
156
+ disabled: {
157
+ type: BooleanConstructor;
158
+ };
159
+ readonly: {
160
+ type: BooleanConstructor;
161
+ };
162
+ clearable: {
163
+ type: BooleanConstructor;
164
+ };
165
+ minLength: {
166
+ type: NumberConstructor;
167
+ };
168
+ maxLength: {
169
+ type: NumberConstructor;
170
+ };
171
+ showLength: {
172
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<"always" | "auto" | "never">;
173
+ default: string;
174
+ };
175
+ getLength: {
176
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<(val: string) => number>;
177
+ };
178
+ inputOnOutlimit: {
179
+ type: BooleanConstructor;
180
+ default: boolean;
181
+ };
182
+ format: {
183
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<(value: string) => string>;
184
+ };
185
+ validate: {
186
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<(value: string) => boolean>;
187
+ };
188
+ valueOnInvalidChange: {
189
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<boolean | ((inputValue: string, lastValidInputValue: string) => string)>;
190
+ };
191
+ showPasswordEvent: {
192
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<"click" | "pointerdown">;
193
+ default: string;
194
+ };
195
+ autoWidth: {
196
+ type: BooleanConstructor;
197
+ };
198
+ passwordPlaceholder: {
199
+ type: StringConstructor;
200
+ default: string;
201
+ };
202
+ onlyNumericInput: {
203
+ type: BooleanConstructor;
204
+ };
205
+ }>> & Readonly<{
206
+ onInput?: ((evt: Event, value: string) => any) | undefined;
207
+ onClear?: ((evt?: Event | undefined) => any) | undefined;
208
+ onBlur?: ((evt: FocusEvent) => any) | undefined;
209
+ onChange?: ((value: string) => any) | undefined;
210
+ onFocus?: ((evt: FocusEvent) => any) | undefined;
211
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
212
+ onPressEnter?: ((evt: KeyboardEvent) => any) | undefined;
213
+ }>, {
214
+ focus: () => void | undefined;
215
+ blur: () => void | undefined;
216
+ clear: () => void | undefined;
217
+ inputEl: () => HTMLInputElement | HTMLTextAreaElement | undefined;
218
+ togglePassword: () => void | undefined;
219
+ }, {}, {}, {}, import('../../../vue/dist/vue.esm-bundler.js').ComponentOptionsMixin, import('../../../vue/dist/vue.esm-bundler.js').ComponentOptionsMixin, {
220
+ input: (evt: Event, value: string) => any;
221
+ clear: (evt?: Event | undefined) => any;
222
+ blur: (evt: FocusEvent) => any;
223
+ change: (value: string) => any;
224
+ focus: (evt: FocusEvent) => any;
225
+ "update:modelValue": (value: string) => any;
226
+ pressEnter: (evt: KeyboardEvent) => any;
227
+ }, string, {
228
+ color: "normal" | "primary" | "success" | "warning" | "danger";
229
+ type: "text" | "password";
230
+ disabled: boolean;
231
+ variant: "solid" | "outline" | "text";
232
+ clearable: boolean;
233
+ readonly: boolean;
234
+ showLength: "auto" | "always" | "never";
235
+ inputOnOutlimit: boolean;
236
+ showPasswordEvent: "click" | "pointerdown";
237
+ autoWidth: boolean;
238
+ passwordPlaceholder: string;
239
+ onlyNumericInput: boolean;
240
+ }, {}, string, {}, import('../../../vue/dist/vue.esm-bundler.js').GlobalComponents, import('../../../vue/dist/vue.esm-bundler.js').GlobalDirectives, string, import('../../../vue/dist/vue.esm-bundler.js').ComponentProvideOptions> & {
241
+ beforeCreate?: (() => void) | (() => void)[];
242
+ created?: (() => void) | (() => void)[];
243
+ beforeMount?: (() => void) | (() => void)[];
244
+ mounted?: (() => void) | (() => void)[];
245
+ beforeUpdate?: (() => void) | (() => void)[];
246
+ updated?: (() => void) | (() => void)[];
247
+ activated?: (() => void) | (() => void)[];
248
+ deactivated?: (() => void) | (() => void)[];
249
+ beforeDestroy?: (() => void) | (() => void)[];
250
+ beforeUnmount?: (() => void) | (() => void)[];
251
+ destroyed?: (() => void) | (() => void)[];
252
+ unmounted?: (() => void) | (() => void)[];
253
+ renderTracked?: ((e: import('../../../vue/dist/vue.esm-bundler.js').DebuggerEvent) => void) | ((e: import('../../../vue/dist/vue.esm-bundler.js').DebuggerEvent) => void)[];
254
+ renderTriggered?: ((e: import('../../../vue/dist/vue.esm-bundler.js').DebuggerEvent) => void) | ((e: import('../../../vue/dist/vue.esm-bundler.js').DebuggerEvent) => void)[];
255
+ errorCaptured?: ((err: unknown, instance: import('../../../vue/dist/vue.esm-bundler.js').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('../../../vue/dist/vue.esm-bundler.js').ComponentPublicInstance | null, info: string) => boolean | void)[];
256
+ };
257
+ $forceUpdate: () => void;
258
+ $nextTick: typeof import('../../../vue/dist/vue.esm-bundler.js').nextTick;
259
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('../../../vue/dist/vue.esm-bundler.js').WatchOptions): import('../../../vue/dist/vue.esm-bundler.js').WatchStopHandle;
260
+ } & Readonly<{
261
+ color: "normal" | "primary" | "success" | "warning" | "danger";
262
+ type: "text" | "password";
263
+ disabled: boolean;
264
+ variant: "solid" | "outline" | "text";
265
+ clearable: boolean;
266
+ readonly: boolean;
267
+ showLength: "auto" | "always" | "never";
268
+ inputOnOutlimit: boolean;
269
+ showPasswordEvent: "click" | "pointerdown";
270
+ autoWidth: boolean;
271
+ passwordPlaceholder: string;
272
+ onlyNumericInput: boolean;
273
+ }> & Omit<Readonly<import('../../../vue/dist/vue.esm-bundler.js').ExtractPropTypes<{
274
+ size: {
275
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<import('@opensig/opendesign').SizeT>;
276
+ };
277
+ round: {
278
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<import('@opensig/opendesign').RoundT>;
279
+ };
280
+ color: {
281
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<import('@opensig/opendesign').Color2T>;
282
+ default: string;
283
+ };
284
+ variant: {
285
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<import('@opensig/opendesign').VariantT>;
286
+ default: string;
287
+ };
288
+ modelValue: {
289
+ type: (NumberConstructor | StringConstructor)[];
290
+ };
291
+ defaultValue: {
292
+ type: (NumberConstructor | StringConstructor)[];
293
+ };
294
+ type: {
295
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<"text" | "password">;
296
+ default: string;
297
+ };
298
+ placeholder: {
299
+ type: StringConstructor;
300
+ };
301
+ inputId: {
302
+ type: StringConstructor;
303
+ };
304
+ disabled: {
305
+ type: BooleanConstructor;
306
+ };
307
+ readonly: {
308
+ type: BooleanConstructor;
309
+ };
310
+ clearable: {
311
+ type: BooleanConstructor;
312
+ };
313
+ minLength: {
314
+ type: NumberConstructor;
315
+ };
316
+ maxLength: {
317
+ type: NumberConstructor;
318
+ };
319
+ showLength: {
320
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<"always" | "auto" | "never">;
321
+ default: string;
322
+ };
323
+ getLength: {
324
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<(val: string) => number>;
325
+ };
326
+ inputOnOutlimit: {
327
+ type: BooleanConstructor;
328
+ default: boolean;
329
+ };
330
+ format: {
331
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<(value: string) => string>;
332
+ };
333
+ validate: {
334
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<(value: string) => boolean>;
335
+ };
336
+ valueOnInvalidChange: {
337
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<boolean | ((inputValue: string, lastValidInputValue: string) => string)>;
338
+ };
339
+ showPasswordEvent: {
340
+ type: import('../../../vue/dist/vue.esm-bundler.js').PropType<"click" | "pointerdown">;
341
+ default: string;
342
+ };
343
+ autoWidth: {
344
+ type: BooleanConstructor;
345
+ };
346
+ passwordPlaceholder: {
347
+ type: StringConstructor;
348
+ default: string;
349
+ };
350
+ onlyNumericInput: {
351
+ type: BooleanConstructor;
352
+ };
353
+ }>> & Readonly<{
354
+ onInput?: ((evt: Event, value: string) => any) | undefined;
355
+ onClear?: ((evt?: Event | undefined) => any) | undefined;
356
+ onBlur?: ((evt: FocusEvent) => any) | undefined;
357
+ onChange?: ((value: string) => any) | undefined;
358
+ onFocus?: ((evt: FocusEvent) => any) | undefined;
359
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
360
+ onPressEnter?: ((evt: KeyboardEvent) => any) | undefined;
361
+ }>, "type" | "color" | "variant" | "disabled" | "clear" | "blur" | "focus" | "clearable" | "readonly" | "showLength" | "inputOnOutlimit" | "showPasswordEvent" | "autoWidth" | "passwordPlaceholder" | "onlyNumericInput" | "inputEl" | "togglePassword"> & {
362
+ focus: () => void | undefined;
363
+ blur: () => void | undefined;
364
+ clear: () => void | undefined;
365
+ inputEl: () => HTMLInputElement | HTMLTextAreaElement | undefined;
366
+ togglePassword: () => void | undefined;
367
+ } & {} & import('../../../vue/dist/vue.esm-bundler.js').ComponentCustomProperties & {} & {
368
+ $slots: Readonly<{
369
+ default(): any;
370
+ prepend(): any;
371
+ append(): any;
372
+ prefix(): any;
373
+ suffix(): any;
374
+ }> & {
375
+ default(): any;
376
+ prepend(): any;
377
+ append(): any;
378
+ prefix(): any;
379
+ suffix(): any;
380
+ };
381
+ }) | null;
382
+ uploadBtnRef: HTMLSpanElement;
383
+ fileInputRef: HTMLInputElement;
384
+ };
385
+ $slots: Readonly<{
386
+ [name: string]: import('../../../vue/dist/vue.esm-bundler.js').Slot<any> | undefined;
387
+ }>;
388
+ $root: import('../../../vue/dist/vue.esm-bundler.js').ComponentPublicInstance | null;
389
+ $parent: import('../../../vue/dist/vue.esm-bundler.js').ComponentPublicInstance | null;
390
+ $host: Element | null;
391
+ $emit: (event: string, ...args: any[]) => void;
392
+ $el: HTMLDivElement;
393
+ $options: import('../../../vue/dist/vue.esm-bundler.js').ComponentOptionsBase<Readonly<import('./internal/SearchImageInput.vue').SearchImageInputPropsT> & Readonly<{
394
+ [x: `on${Capitalize<any>}`]: ((...args: any) => any) | undefined;
395
+ }>, {
396
+ focus: () => void | undefined;
397
+ blur: () => void | undefined;
398
+ awaitUpload: () => Promise<void>;
399
+ getUploadedUrl: () => string;
400
+ getIsUploading: () => boolean;
401
+ resetImage: () => void;
402
+ }, {}, {}, {}, import('../../../vue/dist/vue.esm-bundler.js').ComponentOptionsMixin, import('../../../vue/dist/vue.esm-bundler.js').ComponentOptionsMixin, {
403
+ [x: string]: any;
404
+ } & {
405
+ [x: string]: any;
406
+ }, string, {
407
+ size: "small" | "medium" | "large";
408
+ disabled: boolean;
409
+ preview: boolean;
410
+ modelValue: string;
411
+ imageUrl: string;
412
+ enableImageSearch: boolean;
413
+ maxImageSize: number;
414
+ expanded: boolean;
415
+ clearable: boolean;
416
+ showSuffix: boolean;
417
+ inlineThumbnail: boolean;
418
+ allowedImageTypes: string[];
419
+ }, {}, string, {}, import('../../../vue/dist/vue.esm-bundler.js').GlobalComponents, import('../../../vue/dist/vue.esm-bundler.js').GlobalDirectives, string, import('../../../vue/dist/vue.esm-bundler.js').ComponentProvideOptions> & {
420
+ beforeCreate?: (() => void) | (() => void)[];
421
+ created?: (() => void) | (() => void)[];
422
+ beforeMount?: (() => void) | (() => void)[];
423
+ mounted?: (() => void) | (() => void)[];
424
+ beforeUpdate?: (() => void) | (() => void)[];
425
+ updated?: (() => void) | (() => void)[];
426
+ activated?: (() => void) | (() => void)[];
427
+ deactivated?: (() => void) | (() => void)[];
428
+ beforeDestroy?: (() => void) | (() => void)[];
429
+ beforeUnmount?: (() => void) | (() => void)[];
430
+ destroyed?: (() => void) | (() => void)[];
431
+ unmounted?: (() => void) | (() => void)[];
432
+ renderTracked?: ((e: import('../../../vue/dist/vue.esm-bundler.js').DebuggerEvent) => void) | ((e: import('../../../vue/dist/vue.esm-bundler.js').DebuggerEvent) => void)[];
433
+ renderTriggered?: ((e: import('../../../vue/dist/vue.esm-bundler.js').DebuggerEvent) => void) | ((e: import('../../../vue/dist/vue.esm-bundler.js').DebuggerEvent) => void)[];
434
+ errorCaptured?: ((err: unknown, instance: import('../../../vue/dist/vue.esm-bundler.js').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('../../../vue/dist/vue.esm-bundler.js').ComponentPublicInstance | null, info: string) => boolean | void)[];
435
+ };
436
+ $forceUpdate: () => void;
437
+ $nextTick: typeof import('../../../vue/dist/vue.esm-bundler.js').nextTick;
438
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('../../../vue/dist/vue.esm-bundler.js').WatchOptions): import('../../../vue/dist/vue.esm-bundler.js').WatchStopHandle;
439
+ } & Readonly<{
440
+ size: "small" | "medium" | "large";
441
+ disabled: boolean;
442
+ preview: boolean;
443
+ modelValue: string;
444
+ imageUrl: string;
445
+ enableImageSearch: boolean;
446
+ maxImageSize: number;
447
+ expanded: boolean;
448
+ clearable: boolean;
449
+ showSuffix: boolean;
450
+ inlineThumbnail: boolean;
451
+ allowedImageTypes: string[];
452
+ }> & Omit<Readonly<import('./internal/SearchImageInput.vue').SearchImageInputPropsT> & Readonly<{
453
+ [x: `on${Capitalize<any>}`]: ((...args: any) => any) | undefined;
454
+ }>, "blur" | "focus" | "awaitUpload" | "getUploadedUrl" | "getIsUploading" | "resetImage" | ("size" | "disabled" | "preview" | "modelValue" | "imageUrl" | "enableImageSearch" | "maxImageSize" | "expanded" | "clearable" | "showSuffix" | "inlineThumbnail" | "allowedImageTypes")> & {
455
+ focus: () => void | undefined;
456
+ blur: () => void | undefined;
457
+ awaitUpload: () => Promise<void>;
458
+ getUploadedUrl: () => string;
459
+ getIsUploading: () => boolean;
460
+ resetImage: () => void;
461
+ } & {} & import('../../../vue/dist/vue.esm-bundler.js').ComponentCustomProperties & {} & {
462
+ $slots: {
463
+ prefix?(_: {}): any;
464
+ suffix?(_: {
465
+ hasValue: boolean;
466
+ }): any;
467
+ preview?(_: {
468
+ previewUrl: string;
469
+ remove: () => void;
470
+ }): any;
471
+ };
472
+ }) | null;
473
+ }, HTMLDivElement, import('../../../vue/dist/vue.esm-bundler.js').ComponentProvideOptions, {
474
+ P: {};
475
+ B: {};
476
+ D: {};
477
+ C: {};
478
+ M: {};
479
+ Defaults: {};
480
+ }, Readonly<import('./OSearchInput.vue').OSearchInputPropsT> & Readonly<{
481
+ [x: `on${Capitalize<any>}`]: ((...args: any) => any) | undefined;
482
+ }>, {
483
+ focus: () => void | undefined;
484
+ blur: () => void | undefined;
485
+ search: () => Promise<void>;
486
+ saveHistory: (val?: string) => void;
487
+ }, {}, {}, {}, {
488
+ size: "small" | "medium" | "large";
489
+ modelValue: string;
490
+ imageUrl: string;
491
+ enableImageSearch: boolean;
492
+ maxImageSize: number;
493
+ clearable: boolean;
494
+ onestepItems: import('./types').OSearchRecommendItem[];
495
+ suggestItems: import('./types').OSearchRecommendItem[];
496
+ historyItems: string[];
497
+ highlightKeyword: boolean;
498
+ showSuggestEmpty: boolean;
499
+ storageKey: string;
500
+ storeHistory: boolean;
501
+ maxHistoryCount: number;
502
+ debounce: number;
503
+ autoSaveHistory: boolean;
504
+ enableHistory: boolean;
505
+ suggestList: string[];
506
+ closeOnSearch: boolean;
507
+ closeOnClickOutside: boolean;
508
+ openOnFocus: boolean;
509
+ }>;
510
+ __isFragment?: never;
511
+ __isTeleport?: never;
512
+ __isSuspense?: never;
513
+ } & import('../../../vue/dist/vue.esm-bundler.js').ComponentOptionsBase<Readonly<import('./OSearchInput.vue').OSearchInputPropsT> & Readonly<{
514
+ [x: `on${Capitalize<any>}`]: ((...args: any) => any) | undefined;
515
+ }>, {
516
+ focus: () => void | undefined;
517
+ blur: () => void | undefined;
518
+ search: () => Promise<void>;
519
+ saveHistory: (val?: string) => void;
520
+ }, {}, {}, {}, import('../../../vue/dist/vue.esm-bundler.js').ComponentOptionsMixin, import('../../../vue/dist/vue.esm-bundler.js').ComponentOptionsMixin, {
521
+ [x: string]: any;
522
+ } & {
523
+ [x: string]: any;
524
+ }, string, {
525
+ size: "small" | "medium" | "large";
526
+ modelValue: string;
527
+ imageUrl: string;
528
+ enableImageSearch: boolean;
529
+ maxImageSize: number;
530
+ clearable: boolean;
531
+ onestepItems: import('./types').OSearchRecommendItem[];
532
+ suggestItems: import('./types').OSearchRecommendItem[];
533
+ historyItems: string[];
534
+ highlightKeyword: boolean;
535
+ showSuggestEmpty: boolean;
536
+ storageKey: string;
537
+ storeHistory: boolean;
538
+ maxHistoryCount: number;
539
+ debounce: number;
540
+ autoSaveHistory: boolean;
541
+ enableHistory: boolean;
542
+ suggestList: string[];
543
+ closeOnSearch: boolean;
544
+ closeOnClickOutside: boolean;
545
+ openOnFocus: boolean;
546
+ }, {}, string, {}, import('../../../vue/dist/vue.esm-bundler.js').GlobalComponents, import('../../../vue/dist/vue.esm-bundler.js').GlobalDirectives, string, import('../../../vue/dist/vue.esm-bundler.js').ComponentProvideOptions> & import('../../../vue/dist/vue.esm-bundler.js').VNodeProps & import('../../../vue/dist/vue.esm-bundler.js').AllowedComponentProps & import('../../../vue/dist/vue.esm-bundler.js').ComponentCustomProps & (new () => {
547
+ $slots: {
548
+ 'input-prefix'?(_: {}): any;
549
+ 'input-suffix'?(_: {
550
+ hasValue: boolean;
551
+ }): any;
552
+ 'image-preview'?(_: {
553
+ previewUrl: string;
554
+ remove: () => void;
555
+ }): any;
556
+ dropdown?(_: {
557
+ keyword: string;
558
+ }): any;
559
+ 'onestep-header'?(_: {
560
+ items: import('./types').OSearchRecommendItem[];
561
+ }): any;
562
+ 'onestep-content'?(_: {
563
+ items: import('./types').OSearchRecommendItem[];
564
+ keyword: string;
565
+ }): any;
566
+ 'suggest-header'?(_: {
567
+ items: import('./types').OSearchRecommendItem[];
568
+ }): any;
569
+ 'suggest-content'?(_: {
570
+ items: import('./types').OSearchRecommendItem[];
571
+ keyword: string;
572
+ }): any;
573
+ 'history-header'?(_: {
574
+ items: string[];
575
+ }): any;
576
+ 'history-content'?(_: {
577
+ items: string[];
578
+ }): any;
579
+ 'suggest-list'?(_: {
580
+ items: string[];
581
+ }): any;
582
+ };
583
+ }) & {
584
+ install(app: App): void;
585
+ };
586
+ export { OSearchInput };
587
+ export type { OSearchRecommendItem, OSearchPayload, OSearchImageUploadErrorPayload, OSearchUploadImageFn, OSearchItemClickType, OSearchHighlightPart, } from './types';