bge-ui 1.3.4 → 1.3.6
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/dist/datePicker/components/ActionRow.vue.d.ts +1051 -0
- package/dist/datePicker/components/Common/ArrowBtn.vue.d.ts +29 -0
- package/dist/datePicker/components/Common/InstanceWrap.vue.d.ts +29 -0
- package/dist/datePicker/components/Common/SelectionOverlay.vue.d.ts +55 -0
- package/dist/datePicker/components/DatePicker/DatePicker.vue.d.ts +1114 -0
- package/dist/datePicker/components/DatePicker/DpCalendar.vue.d.ts +1085 -0
- package/dist/datePicker/components/DatePicker/DpHeader.vue.d.ts +1103 -0
- package/dist/datePicker/components/DatePicker/date-picker.d.ts +35 -0
- package/dist/datePicker/components/DatepickerInput.vue.d.ts +1008 -0
- package/dist/datePicker/components/DatepickerMenu.vue.d.ts +1061 -0
- package/dist/datePicker/components/Icons/CalendarIcon.d.ts +9 -0
- package/dist/datePicker/components/Icons/CancelIcon.d.ts +9 -0
- package/dist/datePicker/components/Icons/ChevronDownIcon.d.ts +9 -0
- package/dist/datePicker/components/Icons/ChevronLeftIcon.d.ts +9 -0
- package/dist/datePicker/components/Icons/ChevronRightIcon.d.ts +9 -0
- package/dist/datePicker/components/Icons/ChevronUpIcon.d.ts +9 -0
- package/dist/datePicker/components/Icons/ClockIcon.d.ts +9 -0
- package/dist/datePicker/components/Icons/index.d.ts +7 -0
- package/dist/datePicker/components/MonthPicker/MonthPicker.vue.d.ts +1071 -0
- package/dist/datePicker/components/MonthPicker/month-picker.d.ts +34 -0
- package/dist/datePicker/components/QuarterPicker/QuarterPicker.vue.d.ts +1043 -0
- package/dist/datePicker/components/QuarterPicker/quarter-picker.d.ts +25 -0
- package/dist/datePicker/components/TimePicker/TimeInput.vue.d.ts +1116 -0
- package/dist/datePicker/components/TimePicker/TimePicker.vue.d.ts +1087 -0
- package/dist/datePicker/components/TimePicker/TimePickerSolo.vue.d.ts +1036 -0
- package/dist/datePicker/components/TimePicker/time-picker-utils.d.ts +15 -0
- package/dist/datePicker/components/TimePicker/time-picker.d.ts +13 -0
- package/dist/datePicker/components/YearPicker/YearPicker.vue.d.ts +1040 -0
- package/dist/datePicker/components/YearPicker/year-picker.d.ts +9 -0
- package/dist/datePicker/components/shared/YearModePicker.vue.d.ts +1075 -0
- package/dist/datePicker/components/shared/month-quarter-picker.d.ts +29 -0
- package/dist/datePicker/composables/arrow-navigate.d.ts +26 -0
- package/dist/datePicker/composables/calendar-class.d.ts +8 -0
- package/dist/datePicker/composables/common.d.ts +6 -0
- package/dist/datePicker/composables/defaults.d.ts +37 -0
- package/dist/datePicker/composables/external-internal-mapper.d.ts +14 -0
- package/dist/datePicker/composables/flow.d.ts +10 -0
- package/dist/datePicker/composables/index.d.ts +14 -0
- package/dist/datePicker/composables/model.d.ts +17 -0
- package/dist/datePicker/composables/month-year.d.ts +10 -0
- package/dist/datePicker/composables/position.d.ts +25 -0
- package/dist/datePicker/composables/shared.d.ts +12 -0
- package/dist/datePicker/composables/slots.d.ts +10 -0
- package/dist/datePicker/composables/state.d.ts +8 -0
- package/dist/datePicker/composables/transition.d.ts +7 -0
- package/dist/datePicker/composables/validation.d.ts +12 -0
- package/dist/datePicker/constants/index.d.ts +43 -0
- package/dist/datePicker/datePicker.vue.d.ts +1006 -0
- package/dist/datePicker/directives/clickOutside.d.ts +2 -0
- package/dist/datePicker/index.vue.d.ts +1012 -0
- package/dist/datePicker/interfaces.d.ts +323 -0
- package/dist/datePicker/props.d.ts +865 -0
- package/dist/datePicker/utils/date-utils.d.ts +45 -0
- package/dist/datePicker/utils/defaults.d.ts +42 -0
- package/dist/datePicker/utils/timezone.d.ts +8 -0
- package/dist/datePicker/utils/type-guard.d.ts +1 -0
- package/dist/datePicker/utils/util.d.ts +57 -0
- package/dist/dialog/index.vue.d.ts +6 -3
- package/dist/index.d.ts +2 -1
- package/dist/index.js +13008 -1250
- package/dist/style.css +1188 -1
- package/dist/tooltip/index.vue.d.ts +2 -2
- package/dist/tooltip/usePopper.d.ts +5 -5
- package/package.json +3 -2
- package/src/datePicker/components/ActionRow.vue +216 -0
- package/src/datePicker/components/Common/ArrowBtn.vue +42 -0
- package/src/datePicker/components/Common/InstanceWrap.vue +28 -0
- package/src/datePicker/components/Common/SelectionOverlay.vue +320 -0
- package/src/datePicker/components/DatePicker/DatePicker.vue +302 -0
- package/src/datePicker/components/DatePicker/DpCalendar.vue +405 -0
- package/src/datePicker/components/DatePicker/DpHeader.vue +332 -0
- package/src/datePicker/components/DatePicker/date-picker.ts +674 -0
- package/src/datePicker/components/DatepickerInput.vue +334 -0
- package/src/datePicker/components/DatepickerMenu.vue +424 -0
- package/src/datePicker/components/Icons/CalendarIcon.ts +40 -0
- package/src/datePicker/components/Icons/CancelIcon.ts +32 -0
- package/src/datePicker/components/Icons/ChevronDownIcon.ts +29 -0
- package/src/datePicker/components/Icons/ChevronLeftIcon.ts +29 -0
- package/src/datePicker/components/Icons/ChevronRightIcon.ts +29 -0
- package/src/datePicker/components/Icons/ChevronUpIcon.ts +29 -0
- package/src/datePicker/components/Icons/ClockIcon.ts +32 -0
- package/src/datePicker/components/Icons/index.ts +8 -0
- package/src/datePicker/components/MonthPicker/MonthPicker.vue +130 -0
- package/src/datePicker/components/MonthPicker/month-picker.ts +232 -0
- package/src/datePicker/components/QuarterPicker/QuarterPicker.vue +111 -0
- package/src/datePicker/components/QuarterPicker/quarter-picker.ts +153 -0
- package/src/datePicker/components/TimePicker/TimeInput.vue +477 -0
- package/src/datePicker/components/TimePicker/TimePicker.vue +265 -0
- package/src/datePicker/components/TimePicker/TimePickerSolo.vue +79 -0
- package/src/datePicker/components/TimePicker/time-picker-utils.ts +179 -0
- package/src/datePicker/components/TimePicker/time-picker.ts +112 -0
- package/src/datePicker/components/YearPicker/YearPicker.vue +70 -0
- package/src/datePicker/components/YearPicker/year-picker.ts +109 -0
- package/src/datePicker/components/shared/YearModePicker.vue +105 -0
- package/src/datePicker/components/shared/month-quarter-picker.ts +199 -0
- package/src/datePicker/composables/arrow-navigate.ts +191 -0
- package/src/datePicker/composables/calendar-class.ts +383 -0
- package/src/datePicker/composables/common.ts +25 -0
- package/src/datePicker/composables/defaults.ts +123 -0
- package/src/datePicker/composables/external-internal-mapper.ts +442 -0
- package/src/datePicker/composables/flow.ts +70 -0
- package/src/datePicker/composables/index.ts +14 -0
- package/src/datePicker/composables/model.ts +89 -0
- package/src/datePicker/composables/month-year.ts +72 -0
- package/src/datePicker/composables/position.ts +297 -0
- package/src/datePicker/composables/shared.ts +98 -0
- package/src/datePicker/composables/slots.ts +84 -0
- package/src/datePicker/composables/state.ts +25 -0
- package/src/datePicker/composables/transition.ts +18 -0
- package/src/datePicker/composables/validation.ts +312 -0
- package/src/datePicker/constants/index.ts +49 -0
- package/src/datePicker/datePicker.vue +554 -0
- package/src/datePicker/directives/clickOutside.ts +79 -0
- package/src/datePicker/index.vue +158 -0
- package/src/datePicker/interfaces.ts +404 -0
- package/src/datePicker/props.ts +173 -0
- package/src/datePicker/style/components/_ActionRow.scss +73 -0
- package/src/datePicker/style/components/_Calendar.scss +284 -0
- package/src/datePicker/style/components/_DatepickerInput.scss +109 -0
- package/src/datePicker/style/components/_DatepickerMenu.scss +213 -0
- package/src/datePicker/style/components/_MonthYearInput.scss +97 -0
- package/src/datePicker/style/components/_QuarterPicker.scss +53 -0
- package/src/datePicker/style/components/_SelectionOverlay.scss +142 -0
- package/src/datePicker/style/components/_TimeInput.scss +181 -0
- package/src/datePicker/style/components/_shared.scss +15 -0
- package/src/datePicker/style/main.scss +259 -0
- package/src/datePicker/utils/date-utils.ts +440 -0
- package/src/datePicker/utils/defaults.ts +327 -0
- package/src/datePicker/utils/timezone.ts +38 -0
- package/src/datePicker/utils/type-guard.ts +3 -0
- package/src/datePicker/utils/util.ts +322 -0
- package/src/dialog/index.vue +9 -0
- package/src/form/index.vue +2 -1
- package/src/index.ts +6 -2
- package/src/slider/index.vue +1 -1
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<DatePicker ref="datePickerRef" v-model="date" :range="props.range" :multi-calendars="props.range" :enableTimePicker="false" :clearable="false" @open="() => toggle('open')" locale="zh-CN" @closed="() => toggle('close')" @input-value="inputValueCallback" dark auto-apply>
|
|
3
|
+
<template #dp-input>
|
|
4
|
+
<template v-if="props.range">
|
|
5
|
+
<div class="bge-datepicker">
|
|
6
|
+
<div class="bge-datepicker__input" :class="{focus: isStartFocus, inputed: !!(date && date[0])}" @click="isStartFocus = true">
|
|
7
|
+
{{inputValue && inputValue[0] || '结束日期'}}
|
|
8
|
+
<MonoClose class="bge-datepicker__close" @click.stop="close('start')" />
|
|
9
|
+
<MonoCalendar class="bge-datepicker__icon" />
|
|
10
|
+
</div>
|
|
11
|
+
-
|
|
12
|
+
<div class="bge-datepicker__input" :class="{focus: isEndFocus, inputed: !!(date && date[1])}" @click="isEndFocus = true">
|
|
13
|
+
{{inputValue && inputValue[1] || '结束日期'}}
|
|
14
|
+
<MonoClose class="bge-datepicker__close" @click.stop="close('end')" />
|
|
15
|
+
<MonoCalendar class="bge-datepicker__icon" />
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
</template>
|
|
19
|
+
<template v-else>
|
|
20
|
+
<div class="bge-datepicker">
|
|
21
|
+
<div class="bge-datepicker__input" :class="{focus: isStartFocus, inputed: !!(date)}" @click="isStartFocus = true">
|
|
22
|
+
{{inputValue && inputValue[0] || '选择日期'}}
|
|
23
|
+
<MonoClose class="bge-datepicker__close" @click.stop="close()" />
|
|
24
|
+
<MonoCalendar class="bge-datepicker__icon" />
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</template>
|
|
28
|
+
</template>
|
|
29
|
+
</DatePicker>
|
|
30
|
+
</template>
|
|
31
|
+
<script lang="ts" setup>
|
|
32
|
+
import DatePicker from './datePicker.vue'
|
|
33
|
+
import { PickerBaseProps } from './props'
|
|
34
|
+
import { ref, onMounted, watch, inject } from 'vue'
|
|
35
|
+
const props = defineProps({
|
|
36
|
+
...PickerBaseProps,
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
const datePickerRef = ref()
|
|
40
|
+
const date = ref<any>();
|
|
41
|
+
const isStartFocus = ref(false)
|
|
42
|
+
const isEndFocus = ref(false)
|
|
43
|
+
|
|
44
|
+
function toggle(type: string) {
|
|
45
|
+
if (type === 'close') {
|
|
46
|
+
isStartFocus.value = false
|
|
47
|
+
isEndFocus.value = false
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function close(type?: string) {
|
|
52
|
+
date.value = undefined
|
|
53
|
+
// if (type === 'start') {
|
|
54
|
+
// date.value[0] = undefined
|
|
55
|
+
// } else if (type === 'end') {
|
|
56
|
+
// date.value[1] = undefined
|
|
57
|
+
// } else {
|
|
58
|
+
// date.value = undefined
|
|
59
|
+
// }
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const emit = defineEmits([
|
|
63
|
+
'input',
|
|
64
|
+
'change',
|
|
65
|
+
'update:modelValue'
|
|
66
|
+
])
|
|
67
|
+
|
|
68
|
+
const inputValue = ref()
|
|
69
|
+
|
|
70
|
+
const formItemContextKey = 'bge-form-item-context'
|
|
71
|
+
|
|
72
|
+
const formItemContext: any = inject(formItemContextKey, undefined)
|
|
73
|
+
|
|
74
|
+
function inputValueCallback(val: string) {
|
|
75
|
+
inputValue.value = val.split(' - ')
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
watch(() => props.modelValue, (val) => {
|
|
79
|
+
date.value = val
|
|
80
|
+
formItemContext && formItemContext.validate && formItemContext.validate().catch((err: any) => (err))
|
|
81
|
+
})
|
|
82
|
+
|
|
83
|
+
watch(date, (val) => {
|
|
84
|
+
emit('input', val)
|
|
85
|
+
emit('change', val)
|
|
86
|
+
emit('update:modelValue', val)
|
|
87
|
+
})
|
|
88
|
+
|
|
89
|
+
onMounted(() => {
|
|
90
|
+
if (props.modelValue) {
|
|
91
|
+
date.value = props.modelValue
|
|
92
|
+
}
|
|
93
|
+
})
|
|
94
|
+
</script>
|
|
95
|
+
<style lang="scss" scoped>
|
|
96
|
+
.bge-datepicker {
|
|
97
|
+
width: 100%;
|
|
98
|
+
display: flex;
|
|
99
|
+
align-items: center;
|
|
100
|
+
gap: 4px;
|
|
101
|
+
color: var(--tc-quaternary);
|
|
102
|
+
font-size: 14px;
|
|
103
|
+
line-height: 24px;
|
|
104
|
+
font-weight: 500;
|
|
105
|
+
cursor: pointer;
|
|
106
|
+
|
|
107
|
+
.bge-datepicker__input {
|
|
108
|
+
font-size: 12px;
|
|
109
|
+
line-height: 20px;
|
|
110
|
+
font-weight: 500;
|
|
111
|
+
padding: 4px 12px;
|
|
112
|
+
display: flex;
|
|
113
|
+
align-items: center;
|
|
114
|
+
justify-content: space-between;
|
|
115
|
+
gap: 8px;
|
|
116
|
+
background: var(--bg-opacity);
|
|
117
|
+
border: solid 1px transparent;
|
|
118
|
+
flex: 1;
|
|
119
|
+
border-radius: var(--radius-small, 4px);
|
|
120
|
+
|
|
121
|
+
.bge-datepicker__icon,
|
|
122
|
+
.bge-datepicker__close {
|
|
123
|
+
font-size: 16px !important;
|
|
124
|
+
color: var(--tc-quaternary);
|
|
125
|
+
|
|
126
|
+
&:hover {
|
|
127
|
+
color: var(--tc-title);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.bge-datepicker__close {
|
|
132
|
+
display: none;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
&:hover {
|
|
136
|
+
background: var(--bg-opacity-hover);
|
|
137
|
+
border: solid 1px transparent;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
&.focus {
|
|
141
|
+
border: solid 1px var(--tc-theme);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
&.inputed {
|
|
145
|
+
color: var(--tc-title);
|
|
146
|
+
|
|
147
|
+
&:hover {
|
|
148
|
+
.bge-datepicker__close {
|
|
149
|
+
display: block;
|
|
150
|
+
}
|
|
151
|
+
.bge-datepicker__icon {
|
|
152
|
+
display: none;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
</style>
|
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
import type { ComponentPublicInstance, Ref } from 'vue';
|
|
2
|
+
import type { HeaderPicker } from '@/constants';
|
|
3
|
+
import DatepickerMenu from '@/components/DatepickerMenu.vue';
|
|
4
|
+
import type DatepickerInput from '@/components/DatepickerInput.vue';
|
|
5
|
+
|
|
6
|
+
export type DynamicClass = Record<string, boolean | undefined>;
|
|
7
|
+
|
|
8
|
+
export interface IDefaultSelect<T = number> {
|
|
9
|
+
value: T;
|
|
10
|
+
text: string;
|
|
11
|
+
className?: DynamicClass;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
|
+
export type VueEmit = (event: any, ...args: any[]) => void;
|
|
16
|
+
|
|
17
|
+
export enum OpenPosition {
|
|
18
|
+
center = 'center',
|
|
19
|
+
left = 'left',
|
|
20
|
+
right = 'right',
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export type IFormat = string | ((date: Date | Date[]) => string);
|
|
24
|
+
|
|
25
|
+
export type InternalModuleValue = Date | Date[] | null;
|
|
26
|
+
|
|
27
|
+
export interface DateFilter {
|
|
28
|
+
months: number[];
|
|
29
|
+
years: number[];
|
|
30
|
+
times: { hours: number[]; minutes: number[]; seconds: number[] };
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface ICalendarDay {
|
|
34
|
+
text: number | string;
|
|
35
|
+
value: Date;
|
|
36
|
+
current: boolean;
|
|
37
|
+
classData: DynamicClass;
|
|
38
|
+
marker?: IMarker | null;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export interface ICalendarDate {
|
|
42
|
+
days: ICalendarDay[];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export interface TextInputOptions {
|
|
46
|
+
enterSubmit: boolean;
|
|
47
|
+
tabSubmit: boolean;
|
|
48
|
+
openMenu: string | boolean;
|
|
49
|
+
rangeSeparator: string;
|
|
50
|
+
selectOnFocus: boolean;
|
|
51
|
+
format?: string | string[] | ((value: string) => Date | null);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export interface MonthModel {
|
|
55
|
+
month: number | string;
|
|
56
|
+
year: number | string;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export interface TimeModel {
|
|
60
|
+
hours: number | string;
|
|
61
|
+
minutes: number | string;
|
|
62
|
+
seconds: number | string;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export type ModelValue =
|
|
66
|
+
| Date
|
|
67
|
+
| Date[]
|
|
68
|
+
| string
|
|
69
|
+
| string[]
|
|
70
|
+
| TimeModel
|
|
71
|
+
| TimeModel[]
|
|
72
|
+
| MonthModel
|
|
73
|
+
| MonthModel[]
|
|
74
|
+
| number
|
|
75
|
+
| number[]
|
|
76
|
+
| null;
|
|
77
|
+
|
|
78
|
+
export type WeekStartNum = 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
79
|
+
export type WeekStartStr = '0' | '1' | '2' | '3' | '4' | '5' | '6';
|
|
80
|
+
|
|
81
|
+
export type SixWeekMode = 'append' | 'prepend' | 'center' | 'fair';
|
|
82
|
+
|
|
83
|
+
export type MaybeRef<T> = T | Ref<T>;
|
|
84
|
+
export type Fn = () => void;
|
|
85
|
+
|
|
86
|
+
export interface ConfigurableWindow {
|
|
87
|
+
window?: Window;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export type MaybeElementRef = MaybeRef<HTMLElement | SVGElement | ComponentPublicInstance | undefined | null | Element>;
|
|
91
|
+
export type OnClickOutsideEvents = Pick<
|
|
92
|
+
WindowEventMap,
|
|
93
|
+
'click' | 'mousedown' | 'mouseup' | 'touchstart' | 'touchend' | 'pointerdown' | 'pointerup'
|
|
94
|
+
>;
|
|
95
|
+
|
|
96
|
+
export interface OnClickOutsideOptions<E extends keyof OnClickOutsideEvents> extends ConfigurableWindow {
|
|
97
|
+
event?: E;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export interface IMarker {
|
|
101
|
+
date: Date | string;
|
|
102
|
+
type?: 'dot' | 'line';
|
|
103
|
+
tooltip?: { text?: string; slot?: string; color?: string }[];
|
|
104
|
+
color?: string;
|
|
105
|
+
customPosition?: (el: HTMLElement) => Record<string, string>;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export interface Transition {
|
|
109
|
+
menuAppearTop: string;
|
|
110
|
+
menuAppearBottom: string;
|
|
111
|
+
open: string;
|
|
112
|
+
close: string;
|
|
113
|
+
next: string;
|
|
114
|
+
previous: string;
|
|
115
|
+
vNext: string;
|
|
116
|
+
vPrevious: string;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export type IDisableDates = (date: Date) => boolean;
|
|
120
|
+
export type TimeType = keyof Time;
|
|
121
|
+
|
|
122
|
+
export type DisabledDatesProp = Date[] | string[] | IDisableDates;
|
|
123
|
+
|
|
124
|
+
export type CustomAltPosition = (el: HTMLElement | null) => {
|
|
125
|
+
top: number | string;
|
|
126
|
+
left: number | string;
|
|
127
|
+
transform?: string;
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
export type PresetDate = {
|
|
131
|
+
label: string;
|
|
132
|
+
value: Date[] | string[] | Date | string;
|
|
133
|
+
style?: Record<string, string>;
|
|
134
|
+
slot?: string;
|
|
135
|
+
noTz?: boolean;
|
|
136
|
+
testId?: string;
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
export type Flow = 'month' | 'year' | 'calendar' | 'time' | 'minutes' | 'hours' | 'seconds';
|
|
140
|
+
|
|
141
|
+
export interface AriaLabels {
|
|
142
|
+
toggleOverlay: string;
|
|
143
|
+
menu: string;
|
|
144
|
+
input: string;
|
|
145
|
+
openTimePicker: string;
|
|
146
|
+
closeTimePicker: string;
|
|
147
|
+
incrementValue: (type: TimeType) => string;
|
|
148
|
+
decrementValue: (type: TimeType) => string;
|
|
149
|
+
openTpOverlay: (type: TimeType) => string;
|
|
150
|
+
amPmButton: string;
|
|
151
|
+
openYearsOverlay: string;
|
|
152
|
+
openMonthsOverlay: string;
|
|
153
|
+
nextMonth: string;
|
|
154
|
+
prevMonth: string;
|
|
155
|
+
nextYear: string;
|
|
156
|
+
prevYear: string;
|
|
157
|
+
day?: (dayVal: ICalendarDay) => string;
|
|
158
|
+
weekDay?: (day: number) => string;
|
|
159
|
+
clearInput: string;
|
|
160
|
+
calendarIcon: string;
|
|
161
|
+
timePicker: string;
|
|
162
|
+
monthPicker?: (isOverlay: boolean) => string;
|
|
163
|
+
yearPicker?: (isOverlay: boolean) => string;
|
|
164
|
+
timeOverlay?: (type: TimeType) => string;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
export interface Time {
|
|
168
|
+
hours: number | number[];
|
|
169
|
+
minutes: number | number[];
|
|
170
|
+
seconds: number | number[];
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
export interface TimeInputRef extends Element {
|
|
174
|
+
openChildCmp: (child: string) => void;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
export interface ICalendarData {
|
|
178
|
+
month: number;
|
|
179
|
+
year: number;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export type TimeOverlayCheck = 'noHoursOverlay' | 'noMinutesOverlay' | 'noSecondsOverlay';
|
|
183
|
+
|
|
184
|
+
export type DateTimeSetter = number | string | null;
|
|
185
|
+
|
|
186
|
+
export type DateValue = Date | string | null;
|
|
187
|
+
|
|
188
|
+
export type ModelTypeConverted = string | number | Date;
|
|
189
|
+
|
|
190
|
+
export type MaybeDate = Date | string | number | null | undefined;
|
|
191
|
+
|
|
192
|
+
export interface MonthYearOpt {
|
|
193
|
+
month?: number | string;
|
|
194
|
+
year?: number | string;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
export type DatepickerMenuRef = InstanceType<typeof DatepickerMenu>;
|
|
198
|
+
|
|
199
|
+
export type DatepickerInputRef = InstanceType<typeof DatepickerInput>;
|
|
200
|
+
|
|
201
|
+
export interface ActionRowData {
|
|
202
|
+
showSelect: boolean;
|
|
203
|
+
showCancel: boolean;
|
|
204
|
+
showNow: boolean;
|
|
205
|
+
showPreview: true;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
export type TimeObj = { hours: number; minutes: number; seconds: number };
|
|
209
|
+
|
|
210
|
+
export type DisabledTimesFn = (time: TimeObj | TimeObj[] | (TimeObj | undefined)[]) => boolean;
|
|
211
|
+
|
|
212
|
+
export type MenuView = 'month' | 'year' | 'calendar' | 'time';
|
|
213
|
+
|
|
214
|
+
export interface OverlayGridItem {
|
|
215
|
+
value: number;
|
|
216
|
+
text: string;
|
|
217
|
+
active: boolean;
|
|
218
|
+
disabled: boolean;
|
|
219
|
+
className: DynamicClass;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
export type PossibleDate = Date | string | number | null;
|
|
223
|
+
|
|
224
|
+
export interface HeaderSelectionBtn {
|
|
225
|
+
type: HeaderPicker;
|
|
226
|
+
index: 1 | 2;
|
|
227
|
+
toggle: () => void;
|
|
228
|
+
modelValue: number;
|
|
229
|
+
updateModelValue: (val: number) => void;
|
|
230
|
+
text: string | number;
|
|
231
|
+
showSelectionGrid: boolean;
|
|
232
|
+
items: OverlayGridItem[][];
|
|
233
|
+
ariaLabel: string;
|
|
234
|
+
overlayLabel?: string;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
export type MenuExposedFn =
|
|
238
|
+
| 'selectCurrentDate'
|
|
239
|
+
| 'presetDate'
|
|
240
|
+
| 'clearHoverDate'
|
|
241
|
+
| 'handleArrow'
|
|
242
|
+
| 'updateMonthYear'
|
|
243
|
+
| 'selectWeekDate'
|
|
244
|
+
| 'changeYear'
|
|
245
|
+
| 'changeMonth';
|
|
246
|
+
|
|
247
|
+
export type OptionEnabled = boolean | number | string;
|
|
248
|
+
|
|
249
|
+
export interface MultiCalendarsOptions {
|
|
250
|
+
static: boolean;
|
|
251
|
+
solo: boolean;
|
|
252
|
+
count: number;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
export type MultiCalendarsProp = OptionEnabled | Partial<MultiCalendarsOptions>;
|
|
256
|
+
|
|
257
|
+
export interface DisabledTime {
|
|
258
|
+
hours: number | string;
|
|
259
|
+
minutes: number | string;
|
|
260
|
+
seconds?: number | string;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
export type DisabledTimeArrProp = DisabledTimesFn | DisabledTime[] | DisabledTime[][];
|
|
264
|
+
|
|
265
|
+
export interface TimeValuesInv {
|
|
266
|
+
hours: number[];
|
|
267
|
+
minutes?: number[];
|
|
268
|
+
seconds?: (number | undefined)[];
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
export type TextInputProp = boolean | Partial<TextInputOptions>;
|
|
272
|
+
|
|
273
|
+
export interface InlineOptions {
|
|
274
|
+
enabled: boolean;
|
|
275
|
+
input: boolean;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
export type InlineProp = boolean | { input?: boolean };
|
|
279
|
+
|
|
280
|
+
export type DisabledTimesArrProp = (ind: number, hours?: number) => TimeValuesInv;
|
|
281
|
+
|
|
282
|
+
export interface Config {
|
|
283
|
+
allowStopPropagation: boolean;
|
|
284
|
+
closeOnScroll: boolean;
|
|
285
|
+
modeHeight: number;
|
|
286
|
+
allowPreventDefault: boolean;
|
|
287
|
+
closeOnClearValue: boolean;
|
|
288
|
+
closeOnAutoApply: boolean;
|
|
289
|
+
noSwipe: boolean;
|
|
290
|
+
keepActionRow: boolean;
|
|
291
|
+
onClickOutside?: (validate: () => boolean) => void;
|
|
292
|
+
tabOutClosesMenu: boolean;
|
|
293
|
+
arrowLeft?: string;
|
|
294
|
+
keepViewOnOffsetClick?: boolean;
|
|
295
|
+
timeArrowHoldThreshold: number;
|
|
296
|
+
shadowDom?: boolean;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
export interface Highlight {
|
|
300
|
+
dates: Date[];
|
|
301
|
+
years: number[];
|
|
302
|
+
months: MonthModel[];
|
|
303
|
+
quarters: { quarter: number; year: number }[];
|
|
304
|
+
weekdays: number[];
|
|
305
|
+
options: { highlightDisabled: boolean };
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
export type HighlightFn = (
|
|
309
|
+
date: Date | MonthModel | number | { quarter: number; year: number },
|
|
310
|
+
disabled?: boolean,
|
|
311
|
+
) => boolean;
|
|
312
|
+
|
|
313
|
+
export type HighlightProp = HighlightFn | Partial<Highlight>;
|
|
314
|
+
|
|
315
|
+
export interface WeekNumbersOpts {
|
|
316
|
+
type: 'iso' | 'local' | ((date: Date) => string | number);
|
|
317
|
+
hideOnOffsetDates?: boolean;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
export type WeekNumbersProp = 'iso' | 'local' | ((date: Date) => string | number) | WeekNumbersOpts;
|
|
321
|
+
|
|
322
|
+
export type DPElements = 'action-row' | 'action-prev' | 'action-next' | 'overlay-month' | 'overlay-year';
|
|
323
|
+
|
|
324
|
+
export interface RangeOpts {
|
|
325
|
+
noDisabledRange: boolean;
|
|
326
|
+
showLastInRange: boolean;
|
|
327
|
+
minMaxRawRange: boolean;
|
|
328
|
+
partialRange: boolean;
|
|
329
|
+
disableTimeRangeValidation: boolean;
|
|
330
|
+
fixedStart: boolean;
|
|
331
|
+
fixedEnd: boolean;
|
|
332
|
+
maxRange?: string | number;
|
|
333
|
+
minRange?: string | number;
|
|
334
|
+
autoRange?: string | number;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
export interface RangeConfig extends RangeOpts {
|
|
338
|
+
enabled: boolean;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
export type RangeProp = boolean | Partial<RangeOpts>;
|
|
342
|
+
|
|
343
|
+
export interface TimeZoneConfig {
|
|
344
|
+
timezone: string | undefined;
|
|
345
|
+
exactMatch: boolean;
|
|
346
|
+
dateInTz?: string;
|
|
347
|
+
emitTimezone?: string;
|
|
348
|
+
convertModel?: boolean;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
export type TimeZoneProp = string | Partial<TimeZoneConfig>;
|
|
352
|
+
|
|
353
|
+
export interface PropDates {
|
|
354
|
+
maxDate: Date | null;
|
|
355
|
+
minDate: Date | null;
|
|
356
|
+
disabledDates: Map<string, Date | null> | ((date: Date) => boolean) | null;
|
|
357
|
+
allowedDates: Map<string, Date | null> | null;
|
|
358
|
+
highlight: Map<string, Date | null> | ((date: Date) => boolean) | null;
|
|
359
|
+
markers: Map<string, IMarker> | null;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
export interface MultiDatesConfig {
|
|
363
|
+
limit: number | string;
|
|
364
|
+
dragSelect: boolean;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
export interface MultiDatesDefault {
|
|
368
|
+
limit: number | null;
|
|
369
|
+
dragSelect: boolean;
|
|
370
|
+
enabled: boolean;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
export type MultiDatesProp = boolean | Partial<MultiDatesConfig>;
|
|
374
|
+
|
|
375
|
+
export interface TimeInput {
|
|
376
|
+
type: TimeType;
|
|
377
|
+
separator?: boolean;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
export interface MapPropDatesOpts {
|
|
381
|
+
minDate: MaybeDate;
|
|
382
|
+
maxDate: MaybeDate;
|
|
383
|
+
disabledDates: DisabledDatesProp;
|
|
384
|
+
allowedDates: string[] | Date[];
|
|
385
|
+
highlight: HighlightFn | Highlight;
|
|
386
|
+
markers: IMarker[];
|
|
387
|
+
timezone: TimeZoneConfig | undefined;
|
|
388
|
+
isSpecific?: boolean;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
export type CustomClass = string | string[];
|
|
392
|
+
|
|
393
|
+
export interface UIOpts {
|
|
394
|
+
navBtnNext: CustomClass;
|
|
395
|
+
navBtnPrev: CustomClass;
|
|
396
|
+
calendar: CustomClass;
|
|
397
|
+
calendarCell: CustomClass;
|
|
398
|
+
menu: CustomClass;
|
|
399
|
+
input: CustomClass;
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
export type UIParsed = {
|
|
403
|
+
[K in keyof UIOpts]: Record<string, boolean>;
|
|
404
|
+
};
|