@opendesign-plus-test/components 0.0.1-rc.47 → 0.0.1-rc.49

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