@94ai/nf-double-half-year 3.1.13

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.
@@ -0,0 +1,549 @@
1
+ import { defineComponent, ref, computed, watch, nextTick } from "vue-demi";
2
+ import { getHalfYear, getNextYear, formatDate, startOf, endOf } from "@94ai/common-utils";
3
+ import { normalizeComponent } from "@94ai/vue2-runtime-helpers";
4
+ const halfYearOptions = [
5
+ {
6
+ label: "上半年",
7
+ value: 1,
8
+ months: [1, 2, 3, 4, 5, 6]
9
+ },
10
+ {
11
+ label: "下半年",
12
+ value: 2,
13
+ months: [7, 8, 9, 10, 11, 12]
14
+ }
15
+ ];
16
+ function getHarfYearOptionMonths(value) {
17
+ for (let item of halfYearOptions) {
18
+ if (item.value == value) {
19
+ return item.months;
20
+ }
21
+ }
22
+ return [];
23
+ }
24
+ const __sfc_main$1 = defineComponent({
25
+ name: "nf-half-year-picker-item"
26
+ });
27
+ __sfc_main$1.props = {
28
+ year: {
29
+ key: "year",
30
+ required: false,
31
+ type: Number,
32
+ default: (/* @__PURE__ */ new Date()).getFullYear()
33
+ },
34
+ halfYear: {
35
+ key: "halfYear",
36
+ required: false,
37
+ type: Array,
38
+ default: () => {
39
+ return [];
40
+ }
41
+ },
42
+ showLeft: {
43
+ key: "showLeft",
44
+ required: false,
45
+ type: Boolean,
46
+ default: true
47
+ },
48
+ showRight: {
49
+ key: "showRight",
50
+ required: false,
51
+ type: Boolean,
52
+ default: true
53
+ }
54
+ };
55
+ __sfc_main$1.setup = (__props, __ctx) => {
56
+ const props = __props;
57
+ const emits = __ctx.emit;
58
+ const now = /* @__PURE__ */ new Date();
59
+ const now_year = ref(now.getFullYear());
60
+ const now_half_year = `${now_year.value}-${getHalfYear(now)}`;
61
+ const options = computed(() => {
62
+ return halfYearOptions.map((item) => {
63
+ return {
64
+ label: item.label,
65
+ value: `${props.year}-${item.value}`,
66
+ year: props.year,
67
+ halfYear: item.value
68
+ };
69
+ });
70
+ });
71
+ const handleItemClick = (item) => {
72
+ emits("on-half-year-click", item);
73
+ };
74
+ const handlePrevYear = () => {
75
+ const year = props.year - 1;
76
+ emits("update:year", year);
77
+ emits("on-year-change", year);
78
+ };
79
+ const handleNextYear = () => {
80
+ const year = props.year + 1;
81
+ emits("update:year", year);
82
+ emits("on-year-change", year);
83
+ };
84
+ return {
85
+ now_half_year,
86
+ options,
87
+ handleItemClick,
88
+ handlePrevYear,
89
+ handleNextYear
90
+ };
91
+ };
92
+ var _sfc_render$1 = function render() {
93
+ var _vm = this, _c = _vm._self._c;
94
+ _vm._self._setupProxy;
95
+ return _c("div", {
96
+ staticClass: "nf-double-half-year nf-half-year-picker-item"
97
+ }, [_c("div", {
98
+ staticClass: "nf-half-year-picker__header"
99
+ }, [_vm.showLeft ? _c("i", {
100
+ staticClass: "el-icon-d-arrow-left",
101
+ on: {
102
+ "click": _vm.handlePrevYear
103
+ }
104
+ }) : _c("span", {
105
+ staticClass: "empty-arrow"
106
+ }), _c("div", {
107
+ staticClass: "nf-half-year-picker__title"
108
+ }, [_vm._v(_vm._s(_vm.year))]), _vm.showRight ? _c("i", {
109
+ staticClass: "el-icon-d-arrow-right",
110
+ on: {
111
+ "click": _vm.handleNextYear
112
+ }
113
+ }) : _c("span", {
114
+ staticClass: "empty-arrow"
115
+ })]), _c("div", {
116
+ staticClass: "nf-half-year-picker__options"
117
+ }, [_vm._l(_vm.options, function(item) {
118
+ return [_c("div", {
119
+ key: item.value,
120
+ staticClass: "nf-half-year-picker__item",
121
+ class: {
122
+ "nf-half-year-picker__item__today": item.value == _vm.now_half_year,
123
+ "nf-half-year-picker__item--active": _vm.halfYear.includes(item.value)
124
+ },
125
+ attrs: {
126
+ "data-value": item.value
127
+ },
128
+ on: {
129
+ "click": function($event) {
130
+ return _vm.handleItemClick(item);
131
+ }
132
+ }
133
+ }, [_c("div", {
134
+ staticClass: "nf-half-year-picker__item__label"
135
+ }, [_vm._v(_vm._s(item.label))])])];
136
+ })], 2)]);
137
+ };
138
+ var _sfc_staticRenderFns$1 = [];
139
+ var __component__$1 = /* @__PURE__ */ normalizeComponent(__sfc_main$1, _sfc_render$1, _sfc_staticRenderFns$1, false, null, null, null, null);
140
+ const HalfYearPickerItem = __component__$1.exports;
141
+ const __sfc_main = defineComponent({
142
+ name: "NfDoubleHalfYear"
143
+ });
144
+ __sfc_main.props = {
145
+ value: {
146
+ key: "value",
147
+ required: false,
148
+ type: Array,
149
+ default: void 0
150
+ },
151
+ size: {
152
+ key: "size",
153
+ required: false,
154
+ type: String
155
+ },
156
+ rangeSeparator: {
157
+ key: "rangeSeparator",
158
+ required: false,
159
+ type: String,
160
+ default: "-"
161
+ },
162
+ readonly: {
163
+ key: "readonly",
164
+ required: false,
165
+ type: Boolean,
166
+ default: false
167
+ },
168
+ clearable: {
169
+ key: "clearable",
170
+ required: false,
171
+ type: Boolean,
172
+ default: true
173
+ },
174
+ startPlaceholder: {
175
+ key: "startPlaceholder",
176
+ required: false,
177
+ type: String,
178
+ default: "开始半年"
179
+ },
180
+ endPlaceholder: {
181
+ key: "endPlaceholder",
182
+ required: false,
183
+ type: String,
184
+ default: "结束半年"
185
+ },
186
+ format: {
187
+ key: "format",
188
+ required: false,
189
+ type: Function,
190
+ default: (data) => data
191
+ },
192
+ disabled: {
193
+ key: "disabled",
194
+ required: false,
195
+ type: Boolean,
196
+ default: false
197
+ },
198
+ prefixIcon: {
199
+ key: "prefixIcon",
200
+ required: false,
201
+ type: String,
202
+ default: "el-icon-date"
203
+ },
204
+ clearIcon: {
205
+ key: "clearIcon",
206
+ required: false,
207
+ type: String,
208
+ default: "el-icon-circle-close"
209
+ },
210
+ transition: {
211
+ key: "transition",
212
+ required: false,
213
+ type: String,
214
+ default: "el-zoom-in-top"
215
+ },
216
+ placement: {
217
+ key: "placement",
218
+ required: false,
219
+ type: String,
220
+ default: "bottom-start"
221
+ },
222
+ popperClass: {
223
+ key: "popperClass",
224
+ required: false,
225
+ type: String,
226
+ default: ""
227
+ },
228
+ trigger: {
229
+ key: "trigger",
230
+ required: false,
231
+ type: String,
232
+ default: "click"
233
+ },
234
+ offset: {
235
+ key: "offset",
236
+ required: false,
237
+ type: Number,
238
+ default: 0
239
+ },
240
+ visibleArrow: {
241
+ key: "visibleArrow",
242
+ required: false,
243
+ type: Boolean,
244
+ default: true
245
+ },
246
+ popperOptions: {
247
+ key: "popperOptions",
248
+ required: false,
249
+ type: Object,
250
+ default: () => ({
251
+ boundariesElement: "body",
252
+ gpuAcceleration: false
253
+ })
254
+ },
255
+ openDelay: {
256
+ key: "openDelay",
257
+ required: false,
258
+ type: Number,
259
+ default: void 0
260
+ },
261
+ closeDelay: {
262
+ key: "closeDelay",
263
+ required: false,
264
+ type: Number,
265
+ default: 200
266
+ },
267
+ tabindex: {
268
+ key: "tabindex",
269
+ required: false,
270
+ type: Number,
271
+ default: 0
272
+ },
273
+ appendToBody: {
274
+ key: "appendToBody",
275
+ required: false,
276
+ type: Boolean,
277
+ default: true
278
+ }
279
+ };
280
+ __sfc_main.setup = (__props, __ctx) => {
281
+ const props = __props;
282
+ const emits = __ctx.emit;
283
+ const now = /* @__PURE__ */ new Date();
284
+ const nfDoubleQuatterPopoverVisible = ref(false);
285
+ const startYear = ref(now.getFullYear());
286
+ const startHalfYear = ref([]);
287
+ const endYear = ref(now.getFullYear() + 1);
288
+ const endHalfYear = ref([]);
289
+ const halfYear = ref([]);
290
+ const nfDoubleHalfYearElDatePicker = ref();
291
+ const formatValue = computed(() => {
292
+ if (props.value) {
293
+ const startDate = new Date(props.value[0]);
294
+ const endDate = new Date(props.value[1]);
295
+ const startHalfyear = getHalfYear(startDate);
296
+ const endHalfyear = getHalfYear(endDate);
297
+ const res = [`${startDate.getFullYear()}-${startHalfyear === 2 ? "下半年" : "上半年"}`, `${endDate.getFullYear()}-${endHalfyear === 2 ? "下半年" : "上半年"}`];
298
+ if (props.format) {
299
+ return props.format(res);
300
+ }
301
+ return res;
302
+ }
303
+ return null;
304
+ });
305
+ const showValue = computed(() => {
306
+ if (props.value) {
307
+ const startDate = new Date(props.value[0]);
308
+ const endDate = new Date(props.value[1]);
309
+ return [`${startDate.getFullYear()}-${getHalfYear(startDate)}`, `${endDate.getFullYear()}-${getHalfYear(endDate)}`];
310
+ }
311
+ return null;
312
+ });
313
+ watch(() => {
314
+ return formatValue.value;
315
+ }, () => {
316
+ nextTick(() => {
317
+ if (nfDoubleHalfYearElDatePicker.value && formatValue.value) {
318
+ nfDoubleHalfYearElDatePicker.value.userInput = formatValue.value;
319
+ }
320
+ });
321
+ }, {
322
+ deep: true,
323
+ immediate: true
324
+ });
325
+ watch(() => {
326
+ var _a;
327
+ return (_a = nfDoubleHalfYearElDatePicker.value) == null ? void 0 : _a.userInput;
328
+ }, (current) => {
329
+ if (!current && formatValue.value && nfDoubleHalfYearElDatePicker.value) {
330
+ nextTick(() => {
331
+ nfDoubleHalfYearElDatePicker.value.userInput = formatValue.value;
332
+ });
333
+ }
334
+ });
335
+ const handleOpenPicker = (instance) => {
336
+ let startDate = /* @__PURE__ */ new Date();
337
+ let endDate = getNextYear(startDate);
338
+ if (props.value) {
339
+ startDate = new Date(props.value[0]);
340
+ endDate = new Date(props.value[1]);
341
+ startHalfYear.value = [`${startDate.getFullYear()}-${getHalfYear(startDate)}`];
342
+ endHalfYear.value = [`${endDate.getFullYear()}-${getHalfYear(endDate)}`];
343
+ }
344
+ startYear.value = startDate.getFullYear();
345
+ endYear.value = endDate.getFullYear();
346
+ if (startYear.value >= endYear.value) {
347
+ endYear.value = startYear.value + 1;
348
+ }
349
+ halfYear.value.splice(0, halfYear.value.length);
350
+ emits("focus", instance);
351
+ };
352
+ const handleStartYearChange = (year) => {
353
+ endYear.value = year + 1;
354
+ };
355
+ const handleStartQuarterClick = (halfYearItem) => {
356
+ if (halfYear.value.length == 0) {
357
+ startHalfYear.value.splice(0, startHalfYear.value.length);
358
+ endHalfYear.value.splice(0, endHalfYear.value.length);
359
+ }
360
+ const index = startHalfYear.value.indexOf(halfYearItem.value);
361
+ if (index > -1) {
362
+ startHalfYear.value.splice(index, 1);
363
+ } else {
364
+ startHalfYear.value.push(halfYearItem.value);
365
+ }
366
+ halfYear.value.push(halfYearItem);
367
+ handleCheckQuarterRange();
368
+ };
369
+ const handleEndQuarterClick = (halfYearItem) => {
370
+ if (halfYear.value.length == 0) {
371
+ startHalfYear.value.splice(0, startHalfYear.value.length);
372
+ endHalfYear.value.splice(0, endHalfYear.value.length);
373
+ }
374
+ const index = endHalfYear.value.indexOf(halfYearItem.value);
375
+ if (index > -1) {
376
+ endHalfYear.value.splice(index, 1);
377
+ } else {
378
+ endHalfYear.value.push(halfYearItem.value);
379
+ }
380
+ halfYear.value.push(halfYearItem);
381
+ handleCheckQuarterRange();
382
+ };
383
+ const handleCheckQuarterRange = () => {
384
+ if (halfYear.value.length == 2) {
385
+ halfYear.value.sort((a, b) => {
386
+ if (a.year == b.year) {
387
+ return a.halfYear - b.halfYear;
388
+ } else {
389
+ return a.year - b.year;
390
+ }
391
+ });
392
+ const result = [];
393
+ for (let item of halfYear.value) {
394
+ const months = getHarfYearOptionMonths(item.halfYear);
395
+ if (months.length) {
396
+ result.push({
397
+ ...item,
398
+ startDate: formatDate(startOf(new Date(item.year, months[0] - 1), "month"), "YYYY-MM-DD"),
399
+ endDate: formatDate(endOf(new Date(item.year, months[months.length - 1] - 1), "month"), "YYYY-MM-DD")
400
+ });
401
+ }
402
+ }
403
+ emits("update:value", [result[0].startDate, result[1].endDate]);
404
+ emits("input", [result[0].startDate, result[1].endDate]);
405
+ emits("change", result);
406
+ nfDoubleQuatterPopoverVisible.value = false;
407
+ }
408
+ };
409
+ const handleEndYearChange = () => {
410
+ startYear.value = endYear.value - 1;
411
+ };
412
+ const handleChange = (val) => {
413
+ if (!val) {
414
+ startHalfYear.value.splice(0, startHalfYear.value.length);
415
+ endHalfYear.value.splice(0, endHalfYear.value.length);
416
+ emits("update:value", null);
417
+ emits("input", null);
418
+ }
419
+ };
420
+ return {
421
+ nfDoubleQuatterPopoverVisible,
422
+ startYear,
423
+ startHalfYear,
424
+ endYear,
425
+ endHalfYear,
426
+ nfDoubleHalfYearElDatePicker,
427
+ showValue,
428
+ handleOpenPicker,
429
+ handleStartYearChange,
430
+ handleStartQuarterClick,
431
+ handleEndQuarterClick,
432
+ handleEndYearChange,
433
+ handleChange
434
+ };
435
+ };
436
+ __sfc_main.components = Object.assign({
437
+ HalfYearPickerItem
438
+ }, __sfc_main.components);
439
+ var _sfc_render = function render2() {
440
+ var _vm = this, _c = _vm._self._c;
441
+ _vm._self._setupProxy;
442
+ return _c("el-popover", {
443
+ staticClass: "nf-double-half-year nf-half-year-range-picker",
444
+ attrs: {
445
+ "placement": _vm.placement,
446
+ "transition": _vm.transition,
447
+ "disabled": _vm.disabled,
448
+ "offset": _vm.offset,
449
+ "popper-class": (_vm.popperClass || "") + " nf-double-half-year nf-half-year-range-picker",
450
+ "trigger": _vm.trigger,
451
+ "visible-arrow": _vm.visibleArrow,
452
+ "popper-options": _vm.popperOptions,
453
+ "open-delay": _vm.openDelay,
454
+ "close-delay": _vm.closeDelay,
455
+ "tabindex": _vm.tabindex,
456
+ "append-to-body": _vm.appendToBody
457
+ },
458
+ on: {
459
+ "show": function($event) {
460
+ return _vm.$emit("show");
461
+ },
462
+ "after-enter": function($event) {
463
+ return _vm.$emit("after-enter");
464
+ },
465
+ "hide": function($event) {
466
+ return _vm.$emit("hide");
467
+ },
468
+ "after-leave": function($event) {
469
+ return _vm.$emit("after-leave");
470
+ }
471
+ },
472
+ model: {
473
+ value: _vm.nfDoubleQuatterPopoverVisible,
474
+ callback: function($$v) {
475
+ _vm.nfDoubleQuatterPopoverVisible = $$v;
476
+ },
477
+ expression: "nfDoubleQuatterPopoverVisible"
478
+ }
479
+ }, [_c("el-date-picker", {
480
+ ref: "nfDoubleHalfYearElDatePicker",
481
+ attrs: {
482
+ "slot": "reference",
483
+ "popper-class": "nf-double-half-year nf-half-year-range-picker-el-date-picker",
484
+ "type": "monthrange",
485
+ "value": _vm.showValue,
486
+ "validate-event": false,
487
+ "disabled": _vm.disabled,
488
+ "readonly": _vm.readonly,
489
+ "range-separator": _vm.rangeSeparator,
490
+ "clear-icon": _vm.clearIcon,
491
+ "prefix-icon": _vm.prefixIcon,
492
+ "clearable": _vm.clearable,
493
+ "size": _vm.size,
494
+ "start-placeholder": _vm.startPlaceholder,
495
+ "end-placeholder": _vm.endPlaceholder
496
+ },
497
+ on: {
498
+ "focus": _vm.handleOpenPicker,
499
+ "change": _vm.handleChange,
500
+ "blur": function($event) {
501
+ return _vm.$emit("blur", $event);
502
+ }
503
+ },
504
+ slot: "reference"
505
+ }), _c("div", {
506
+ staticClass: "nf-half-year-range-picker__content"
507
+ }, [_c("half-year-picker-item", {
508
+ attrs: {
509
+ "year": _vm.startYear,
510
+ "half-year": _vm.startHalfYear,
511
+ "showRight": false
512
+ },
513
+ on: {
514
+ "update:year": function($event) {
515
+ _vm.startYear = $event;
516
+ },
517
+ "on-half-year-click": _vm.handleStartQuarterClick,
518
+ "on-year-change": _vm.handleStartYearChange
519
+ }
520
+ }), _c("half-year-picker-item", {
521
+ attrs: {
522
+ "year": _vm.endYear,
523
+ "showLeft": false,
524
+ "half-year": _vm.endHalfYear
525
+ },
526
+ on: {
527
+ "update:year": function($event) {
528
+ _vm.endYear = $event;
529
+ },
530
+ "update:halfYear": function($event) {
531
+ _vm.endHalfYear = $event;
532
+ },
533
+ "update:half-year": function($event) {
534
+ _vm.endHalfYear = $event;
535
+ },
536
+ "on-half-year-click": _vm.handleEndQuarterClick,
537
+ "on-year-change": _vm.handleEndYearChange
538
+ }
539
+ })], 1)], 1);
540
+ };
541
+ var _sfc_staticRenderFns = [];
542
+ var __component__ = /* @__PURE__ */ normalizeComponent(__sfc_main, _sfc_render, _sfc_staticRenderFns, false, null, null, null, null);
543
+ const NfDoubleHalfYear = __component__.exports;
544
+ NfDoubleHalfYear.install = (app) => {
545
+ app.component("nf-double-half-year", NfDoubleHalfYear);
546
+ };
547
+ export {
548
+ NfDoubleHalfYear as default
549
+ };
@@ -0,0 +1,151 @@
1
+ import { HalfYearItem } from './types';
2
+ declare const _default: import("vue-demi").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
3
+ value?: string[] | undefined;
4
+ size?: "small" | "mini" | "medium" | "large" | undefined;
5
+ rangeSeparator?: string | undefined;
6
+ readonly?: boolean | undefined;
7
+ clearable?: boolean | undefined;
8
+ startPlaceholder?: string | undefined;
9
+ endPlaceholder?: string | undefined;
10
+ format?: Function | undefined;
11
+ disabled?: boolean | undefined;
12
+ prefixIcon?: string | undefined;
13
+ clearIcon?: string | undefined;
14
+ transition?: string | undefined;
15
+ placement?: string | undefined;
16
+ popperClass?: string | undefined;
17
+ trigger?: string | undefined;
18
+ offset?: number | undefined;
19
+ visibleArrow?: boolean | undefined;
20
+ popperOptions?: Object | undefined;
21
+ openDelay?: number | undefined;
22
+ closeDelay?: number | undefined;
23
+ tabindex?: number | undefined;
24
+ appendToBody?: boolean | undefined;
25
+ }>, {
26
+ value: undefined;
27
+ rangeSeparator: string;
28
+ readonly: boolean;
29
+ clearable: boolean;
30
+ startPlaceholder: string;
31
+ endPlaceholder: string;
32
+ disabled: boolean;
33
+ offset: number;
34
+ prefixIcon: string;
35
+ clearIcon: string;
36
+ transition: string;
37
+ placement: string;
38
+ popperClass: string;
39
+ trigger: string;
40
+ visibleArrow: boolean;
41
+ openDelay: undefined;
42
+ closeDelay: number;
43
+ tabindex: number;
44
+ appendToBody: boolean;
45
+ format: (data: string) => string;
46
+ popperOptions: () => {
47
+ boundariesElement: string;
48
+ gpuAcceleration: boolean;
49
+ };
50
+ }>, {}, {}, {}, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin, {
51
+ "update:value": (val: string[] | null) => void;
52
+ input: (val: string[] | null) => void;
53
+ change: (value: (HalfYearItem & {
54
+ startDate: string;
55
+ endDate: string;
56
+ })[]) => void;
57
+ show: (value: undefined) => void;
58
+ "after-enter": (value: undefined) => void;
59
+ hide: (value: undefined) => void;
60
+ "after-leave": (value: undefined) => void;
61
+ blur: (value: any) => void;
62
+ focus: (value: any) => void;
63
+ }, string, Readonly<import("vue-demi").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
64
+ value?: string[] | undefined;
65
+ size?: "small" | "mini" | "medium" | "large" | undefined;
66
+ rangeSeparator?: string | undefined;
67
+ readonly?: boolean | undefined;
68
+ clearable?: boolean | undefined;
69
+ startPlaceholder?: string | undefined;
70
+ endPlaceholder?: string | undefined;
71
+ format?: Function | undefined;
72
+ disabled?: boolean | undefined;
73
+ prefixIcon?: string | undefined;
74
+ clearIcon?: string | undefined;
75
+ transition?: string | undefined;
76
+ placement?: string | undefined;
77
+ popperClass?: string | undefined;
78
+ trigger?: string | undefined;
79
+ offset?: number | undefined;
80
+ visibleArrow?: boolean | undefined;
81
+ popperOptions?: Object | undefined;
82
+ openDelay?: number | undefined;
83
+ closeDelay?: number | undefined;
84
+ tabindex?: number | undefined;
85
+ appendToBody?: boolean | undefined;
86
+ }>, {
87
+ value: undefined;
88
+ rangeSeparator: string;
89
+ readonly: boolean;
90
+ clearable: boolean;
91
+ startPlaceholder: string;
92
+ endPlaceholder: string;
93
+ disabled: boolean;
94
+ offset: number;
95
+ prefixIcon: string;
96
+ clearIcon: string;
97
+ transition: string;
98
+ placement: string;
99
+ popperClass: string;
100
+ trigger: string;
101
+ visibleArrow: boolean;
102
+ openDelay: undefined;
103
+ closeDelay: number;
104
+ tabindex: number;
105
+ appendToBody: boolean;
106
+ format: (data: string) => string;
107
+ popperOptions: () => {
108
+ boundariesElement: string;
109
+ gpuAcceleration: boolean;
110
+ };
111
+ }>>>, {
112
+ offset: number;
113
+ transition: string;
114
+ value: string[];
115
+ rangeSeparator: string;
116
+ readonly: boolean;
117
+ clearable: boolean;
118
+ startPlaceholder: string;
119
+ endPlaceholder: string;
120
+ format: Function;
121
+ disabled: boolean;
122
+ prefixIcon: string;
123
+ clearIcon: string;
124
+ placement: string;
125
+ popperClass: string;
126
+ trigger: string;
127
+ visibleArrow: boolean;
128
+ popperOptions: Object;
129
+ openDelay: number;
130
+ closeDelay: number;
131
+ tabindex: number;
132
+ appendToBody: boolean;
133
+ }>;
134
+ export default _default;
135
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
136
+ type __VLS_TypePropsToRuntimeProps<T> = {
137
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
138
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
139
+ } : {
140
+ type: import('vue').PropType<T[K]>;
141
+ required: true;
142
+ };
143
+ };
144
+ type __VLS_WithDefaults<P, D> = {
145
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
146
+ default: D[K];
147
+ }> : P[K];
148
+ };
149
+ type __VLS_Prettify<T> = {
150
+ [K in keyof T]: T[K];
151
+ } & {};