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.
Files changed (135) hide show
  1. package/dist/datePicker/components/ActionRow.vue.d.ts +1051 -0
  2. package/dist/datePicker/components/Common/ArrowBtn.vue.d.ts +29 -0
  3. package/dist/datePicker/components/Common/InstanceWrap.vue.d.ts +29 -0
  4. package/dist/datePicker/components/Common/SelectionOverlay.vue.d.ts +55 -0
  5. package/dist/datePicker/components/DatePicker/DatePicker.vue.d.ts +1114 -0
  6. package/dist/datePicker/components/DatePicker/DpCalendar.vue.d.ts +1085 -0
  7. package/dist/datePicker/components/DatePicker/DpHeader.vue.d.ts +1103 -0
  8. package/dist/datePicker/components/DatePicker/date-picker.d.ts +35 -0
  9. package/dist/datePicker/components/DatepickerInput.vue.d.ts +1008 -0
  10. package/dist/datePicker/components/DatepickerMenu.vue.d.ts +1061 -0
  11. package/dist/datePicker/components/Icons/CalendarIcon.d.ts +9 -0
  12. package/dist/datePicker/components/Icons/CancelIcon.d.ts +9 -0
  13. package/dist/datePicker/components/Icons/ChevronDownIcon.d.ts +9 -0
  14. package/dist/datePicker/components/Icons/ChevronLeftIcon.d.ts +9 -0
  15. package/dist/datePicker/components/Icons/ChevronRightIcon.d.ts +9 -0
  16. package/dist/datePicker/components/Icons/ChevronUpIcon.d.ts +9 -0
  17. package/dist/datePicker/components/Icons/ClockIcon.d.ts +9 -0
  18. package/dist/datePicker/components/Icons/index.d.ts +7 -0
  19. package/dist/datePicker/components/MonthPicker/MonthPicker.vue.d.ts +1071 -0
  20. package/dist/datePicker/components/MonthPicker/month-picker.d.ts +34 -0
  21. package/dist/datePicker/components/QuarterPicker/QuarterPicker.vue.d.ts +1043 -0
  22. package/dist/datePicker/components/QuarterPicker/quarter-picker.d.ts +25 -0
  23. package/dist/datePicker/components/TimePicker/TimeInput.vue.d.ts +1116 -0
  24. package/dist/datePicker/components/TimePicker/TimePicker.vue.d.ts +1087 -0
  25. package/dist/datePicker/components/TimePicker/TimePickerSolo.vue.d.ts +1036 -0
  26. package/dist/datePicker/components/TimePicker/time-picker-utils.d.ts +15 -0
  27. package/dist/datePicker/components/TimePicker/time-picker.d.ts +13 -0
  28. package/dist/datePicker/components/YearPicker/YearPicker.vue.d.ts +1040 -0
  29. package/dist/datePicker/components/YearPicker/year-picker.d.ts +9 -0
  30. package/dist/datePicker/components/shared/YearModePicker.vue.d.ts +1075 -0
  31. package/dist/datePicker/components/shared/month-quarter-picker.d.ts +29 -0
  32. package/dist/datePicker/composables/arrow-navigate.d.ts +26 -0
  33. package/dist/datePicker/composables/calendar-class.d.ts +8 -0
  34. package/dist/datePicker/composables/common.d.ts +6 -0
  35. package/dist/datePicker/composables/defaults.d.ts +37 -0
  36. package/dist/datePicker/composables/external-internal-mapper.d.ts +14 -0
  37. package/dist/datePicker/composables/flow.d.ts +10 -0
  38. package/dist/datePicker/composables/index.d.ts +14 -0
  39. package/dist/datePicker/composables/model.d.ts +17 -0
  40. package/dist/datePicker/composables/month-year.d.ts +10 -0
  41. package/dist/datePicker/composables/position.d.ts +25 -0
  42. package/dist/datePicker/composables/shared.d.ts +12 -0
  43. package/dist/datePicker/composables/slots.d.ts +10 -0
  44. package/dist/datePicker/composables/state.d.ts +8 -0
  45. package/dist/datePicker/composables/transition.d.ts +7 -0
  46. package/dist/datePicker/composables/validation.d.ts +12 -0
  47. package/dist/datePicker/constants/index.d.ts +43 -0
  48. package/dist/datePicker/datePicker.vue.d.ts +1006 -0
  49. package/dist/datePicker/directives/clickOutside.d.ts +2 -0
  50. package/dist/datePicker/index.vue.d.ts +1012 -0
  51. package/dist/datePicker/interfaces.d.ts +323 -0
  52. package/dist/datePicker/props.d.ts +865 -0
  53. package/dist/datePicker/utils/date-utils.d.ts +45 -0
  54. package/dist/datePicker/utils/defaults.d.ts +42 -0
  55. package/dist/datePicker/utils/timezone.d.ts +8 -0
  56. package/dist/datePicker/utils/type-guard.d.ts +1 -0
  57. package/dist/datePicker/utils/util.d.ts +57 -0
  58. package/dist/dialog/index.vue.d.ts +6 -3
  59. package/dist/index.d.ts +2 -1
  60. package/dist/index.js +13008 -1250
  61. package/dist/style.css +1188 -1
  62. package/dist/tooltip/index.vue.d.ts +2 -2
  63. package/dist/tooltip/usePopper.d.ts +5 -5
  64. package/package.json +3 -2
  65. package/src/datePicker/components/ActionRow.vue +216 -0
  66. package/src/datePicker/components/Common/ArrowBtn.vue +42 -0
  67. package/src/datePicker/components/Common/InstanceWrap.vue +28 -0
  68. package/src/datePicker/components/Common/SelectionOverlay.vue +320 -0
  69. package/src/datePicker/components/DatePicker/DatePicker.vue +302 -0
  70. package/src/datePicker/components/DatePicker/DpCalendar.vue +405 -0
  71. package/src/datePicker/components/DatePicker/DpHeader.vue +332 -0
  72. package/src/datePicker/components/DatePicker/date-picker.ts +674 -0
  73. package/src/datePicker/components/DatepickerInput.vue +334 -0
  74. package/src/datePicker/components/DatepickerMenu.vue +424 -0
  75. package/src/datePicker/components/Icons/CalendarIcon.ts +40 -0
  76. package/src/datePicker/components/Icons/CancelIcon.ts +32 -0
  77. package/src/datePicker/components/Icons/ChevronDownIcon.ts +29 -0
  78. package/src/datePicker/components/Icons/ChevronLeftIcon.ts +29 -0
  79. package/src/datePicker/components/Icons/ChevronRightIcon.ts +29 -0
  80. package/src/datePicker/components/Icons/ChevronUpIcon.ts +29 -0
  81. package/src/datePicker/components/Icons/ClockIcon.ts +32 -0
  82. package/src/datePicker/components/Icons/index.ts +8 -0
  83. package/src/datePicker/components/MonthPicker/MonthPicker.vue +130 -0
  84. package/src/datePicker/components/MonthPicker/month-picker.ts +232 -0
  85. package/src/datePicker/components/QuarterPicker/QuarterPicker.vue +111 -0
  86. package/src/datePicker/components/QuarterPicker/quarter-picker.ts +153 -0
  87. package/src/datePicker/components/TimePicker/TimeInput.vue +477 -0
  88. package/src/datePicker/components/TimePicker/TimePicker.vue +265 -0
  89. package/src/datePicker/components/TimePicker/TimePickerSolo.vue +79 -0
  90. package/src/datePicker/components/TimePicker/time-picker-utils.ts +179 -0
  91. package/src/datePicker/components/TimePicker/time-picker.ts +112 -0
  92. package/src/datePicker/components/YearPicker/YearPicker.vue +70 -0
  93. package/src/datePicker/components/YearPicker/year-picker.ts +109 -0
  94. package/src/datePicker/components/shared/YearModePicker.vue +105 -0
  95. package/src/datePicker/components/shared/month-quarter-picker.ts +199 -0
  96. package/src/datePicker/composables/arrow-navigate.ts +191 -0
  97. package/src/datePicker/composables/calendar-class.ts +383 -0
  98. package/src/datePicker/composables/common.ts +25 -0
  99. package/src/datePicker/composables/defaults.ts +123 -0
  100. package/src/datePicker/composables/external-internal-mapper.ts +442 -0
  101. package/src/datePicker/composables/flow.ts +70 -0
  102. package/src/datePicker/composables/index.ts +14 -0
  103. package/src/datePicker/composables/model.ts +89 -0
  104. package/src/datePicker/composables/month-year.ts +72 -0
  105. package/src/datePicker/composables/position.ts +297 -0
  106. package/src/datePicker/composables/shared.ts +98 -0
  107. package/src/datePicker/composables/slots.ts +84 -0
  108. package/src/datePicker/composables/state.ts +25 -0
  109. package/src/datePicker/composables/transition.ts +18 -0
  110. package/src/datePicker/composables/validation.ts +312 -0
  111. package/src/datePicker/constants/index.ts +49 -0
  112. package/src/datePicker/datePicker.vue +554 -0
  113. package/src/datePicker/directives/clickOutside.ts +79 -0
  114. package/src/datePicker/index.vue +158 -0
  115. package/src/datePicker/interfaces.ts +404 -0
  116. package/src/datePicker/props.ts +173 -0
  117. package/src/datePicker/style/components/_ActionRow.scss +73 -0
  118. package/src/datePicker/style/components/_Calendar.scss +284 -0
  119. package/src/datePicker/style/components/_DatepickerInput.scss +109 -0
  120. package/src/datePicker/style/components/_DatepickerMenu.scss +213 -0
  121. package/src/datePicker/style/components/_MonthYearInput.scss +97 -0
  122. package/src/datePicker/style/components/_QuarterPicker.scss +53 -0
  123. package/src/datePicker/style/components/_SelectionOverlay.scss +142 -0
  124. package/src/datePicker/style/components/_TimeInput.scss +181 -0
  125. package/src/datePicker/style/components/_shared.scss +15 -0
  126. package/src/datePicker/style/main.scss +259 -0
  127. package/src/datePicker/utils/date-utils.ts +440 -0
  128. package/src/datePicker/utils/defaults.ts +327 -0
  129. package/src/datePicker/utils/timezone.ts +38 -0
  130. package/src/datePicker/utils/type-guard.ts +3 -0
  131. package/src/datePicker/utils/util.ts +322 -0
  132. package/src/dialog/index.vue +9 -0
  133. package/src/form/index.vue +2 -1
  134. package/src/index.ts +6 -2
  135. package/src/slider/index.vue +1 -1
@@ -0,0 +1,302 @@
1
+ <template>
2
+ <InstanceWrap v-slot="{ instance, index }" :multi-calendars="defaultedMultiCalendars.count" :collapse="collapse">
3
+ <DpHeader
4
+ v-if="!disableMonthYearSelect"
5
+ :ref="
6
+ (el: any) => {
7
+ if (el) headerRefs[index] = el;
8
+ }
9
+ "
10
+ :months="getMonths(formatLocale, locale, monthNameFormat)"
11
+ :years="getYears(yearRange, locale, reverseYears)"
12
+ :month="month(instance)"
13
+ :year="year(instance)"
14
+ :instance="instance"
15
+ v-bind="$props"
16
+ @mount="componentMounted(CMP.header)"
17
+ @reset-flow="$emit('reset-flow')"
18
+ @update-month-year="updateMonthYear(instance, $event)"
19
+ @overlay-closed="onHeaderOverlayClose"
20
+ @overlay-opened="$emit('overlay-toggle', { open: true, overlay: $event })"
21
+ >
22
+ <template v-for="(slot, j) in headerSlots" #[slot]="args" :key="j">
23
+ <slot :name="slot" v-bind="args" />
24
+ </template>
25
+ </DpHeader>
26
+ <DpCalendar
27
+ :ref="
28
+ (el: any) => {
29
+ if (el) calendarRefs[index] = el;
30
+ }
31
+ "
32
+ :mapped-dates="mappedDates(instance)"
33
+ :month="month(instance)"
34
+ :year="year(instance)"
35
+ :instance="instance"
36
+ v-bind="$props"
37
+ @select-date="selectDate($event, instance !== 1)"
38
+ @handle-space="handleSpace($event, instance !== 1)"
39
+ @set-hover-date="setHoverDate($event)"
40
+ @handle-scroll="handleScroll($event, instance)"
41
+ @handle-swipe="handleSwipe($event, instance)"
42
+ @mount="componentMounted(CMP.calendar)"
43
+ @reset-flow="$emit('reset-flow')"
44
+ @tooltip-open="$emit('tooltip-open', $event)"
45
+ @tooltip-close="$emit('tooltip-close', $event)"
46
+ >
47
+ <template v-for="(slot, j) in calendarSlots" #[slot]="args" :key="j">
48
+ <slot :name="slot" v-bind="{ ...args }" />
49
+ </template>
50
+ </DpCalendar>
51
+ </InstanceWrap>
52
+ <div v-if="enableTimePicker">
53
+ <template v-if="$slots['time-picker']">
54
+ <slot name="time-picker" v-bind="{ time, updateTime }" />
55
+ </template>
56
+ <TimePicker
57
+ v-else
58
+ ref="timePickerRef"
59
+ v-bind="$props"
60
+ :hours="time.hours"
61
+ :minutes="time.minutes"
62
+ :seconds="time.seconds"
63
+ :internal-model-value="internalModelValue"
64
+ :disabled-times-config="disabledTimesConfig"
65
+ :validate-time="validateTime"
66
+ @mount="componentMounted(CMP.timePicker)"
67
+ @update:hours="updateTime($event)"
68
+ @update:minutes="updateTime($event, false)"
69
+ @update:seconds="updateTime($event, false, true)"
70
+ @reset-flow="$emit('reset-flow')"
71
+ @overlay-closed="timePickerOverlayToggle($event, false)"
72
+ @overlay-opened="timePickerOverlayToggle($event, true)"
73
+ @am-pm-change="$emit('am-pm-change', $event)"
74
+ >
75
+ <template v-for="(slot, i) in timePickerSlots" #[slot]="args" :key="i">
76
+ <slot :name="slot" v-bind="args" />
77
+ </template>
78
+ </TimePicker>
79
+ </div>
80
+ </template>
81
+
82
+ <script setup lang="ts">
83
+ import { computed, ref, useSlots, watch } from 'vue';
84
+
85
+ import DpHeader from '../../components/DatePicker/DpHeader.vue';
86
+ import DpCalendar from '../../components/DatePicker/DpCalendar.vue';
87
+ import InstanceWrap from '../../components/Common/InstanceWrap.vue';
88
+ import TimePicker from '../../components/TimePicker/TimePicker.vue';
89
+
90
+ import { PickerBaseProps } from '../../props';
91
+ import { mapSlots, useCalendarClass, useDefaults } from '../../composables';
92
+ import { useDatePicker } from '../../components/DatePicker/date-picker';
93
+ import { getMonths, getYears } from '../../utils/util';
94
+ import { CMP, FlowStep } from '../../constants';
95
+
96
+ import type { ICalendarDay } from '../../interfaces';
97
+ import { endOfWeek, getMonth, startOfWeek } from 'date-fns';
98
+ import { getCellId } from '../../utils/date-utils';
99
+
100
+ const emit = defineEmits([
101
+ 'tooltip-open',
102
+ 'tooltip-close',
103
+ 'mount',
104
+ 'update:internal-model-value',
105
+ 'update-flow-step',
106
+ 'reset-flow',
107
+ 'auto-apply',
108
+ 'focus-menu',
109
+ 'select-date',
110
+ 'range-start',
111
+ 'range-end',
112
+ 'invalid-fixed-range',
113
+ 'time-update',
114
+ 'am-pm-change',
115
+ 'time-picker-open',
116
+ 'time-picker-close',
117
+ 'recalculate-position',
118
+ 'update-month-year',
119
+ 'auto-apply-invalid',
120
+ 'date-update',
121
+ 'invalid-date',
122
+ 'overlay-toggle',
123
+ ]);
124
+ const props = defineProps({
125
+ ...PickerBaseProps,
126
+ });
127
+
128
+ const {
129
+ calendars,
130
+ month,
131
+ year,
132
+ modelValue,
133
+ time,
134
+ disabledTimesConfig,
135
+ today,
136
+ validateTime,
137
+ getCalendarDays,
138
+ getMarker,
139
+ handleArrow,
140
+ handleScroll,
141
+ handleSwipe,
142
+ selectDate,
143
+ updateMonthYear,
144
+ presetDate,
145
+ selectCurrentDate,
146
+ updateTime,
147
+ assignMonthAndYear,
148
+ } = useDatePicker(props, emit, triggerCalendarTransition, updateFlowStep);
149
+ const slots = useSlots();
150
+ const { setHoverDate, getDayClassData, clearHoverDate } = useCalendarClass(modelValue, props);
151
+ const { defaultedMultiCalendars } = useDefaults(props);
152
+
153
+ const headerRefs = ref<InstanceType<typeof DpHeader>[]>([]);
154
+ const calendarRefs = ref<InstanceType<typeof DpCalendar>[]>([]);
155
+ const timePickerRef = ref<InstanceType<typeof TimePicker> | null>(null);
156
+
157
+ const calendarSlots = mapSlots(slots, 'calendar');
158
+ const headerSlots = mapSlots(slots, 'monthYear');
159
+ const timePickerSlots = mapSlots(slots, 'timePicker');
160
+
161
+ const componentMounted = (cmp: CMP) => {
162
+ if (!props.shadow) {
163
+ emit('mount', cmp);
164
+ }
165
+ };
166
+
167
+ watch(
168
+ calendars,
169
+ () => {
170
+ if (!props.shadow) {
171
+ setTimeout(() => {
172
+ emit('recalculate-position');
173
+ }, 0);
174
+ }
175
+ },
176
+ { deep: true },
177
+ );
178
+
179
+ watch(
180
+ defaultedMultiCalendars,
181
+ (newVal, oldVal) => {
182
+ if (newVal.count - oldVal.count > 0) {
183
+ assignMonthAndYear();
184
+ }
185
+ },
186
+ { deep: true },
187
+ );
188
+
189
+ /**
190
+ * Array of the dates from which calendar is built.
191
+ * It also sets classes depending on picker modes, active dates, today, v-model.
192
+ */
193
+ const mappedDates = computed(() => (instance: number) => {
194
+ return getCalendarDays(month.value(instance), year.value(instance)).map((date) => {
195
+ return {
196
+ ...date,
197
+ days: date.days.map((calendarDay) => {
198
+ calendarDay.marker = getMarker(calendarDay);
199
+ calendarDay.classData = getDayClassData(calendarDay);
200
+ return calendarDay;
201
+ }),
202
+ };
203
+ });
204
+ });
205
+
206
+ function triggerCalendarTransition(instance?: number): void {
207
+ if (instance || instance === 0) {
208
+ calendarRefs.value[instance]?.triggerTransition(month.value(instance), year.value(instance));
209
+ } else {
210
+ calendarRefs.value.forEach((refVal, i) => refVal.triggerTransition(month.value(i), year.value(i)));
211
+ }
212
+ }
213
+
214
+ function updateFlowStep() {
215
+ emit('update-flow-step');
216
+ }
217
+
218
+ const handleSpace = (day: ICalendarDay, isNext = false): void => {
219
+ selectDate(day, isNext);
220
+ if (props.spaceConfirm) {
221
+ emit('select-date');
222
+ }
223
+ };
224
+
225
+ const toggleMonthPicker = (flow: boolean, show?: boolean, instance = 0) => {
226
+ headerRefs.value[instance]?.toggleMonthPicker(flow, show);
227
+ };
228
+
229
+ const toggleYearPicker = (flow: boolean, show?: boolean, instance = 0) => {
230
+ headerRefs.value[instance]?.toggleYearPicker(flow, show);
231
+ };
232
+
233
+ const toggleTimePicker = (flow: boolean, show?: boolean, childOpen?: string) => {
234
+ timePickerRef.value?.toggleTimePicker(flow, show, childOpen);
235
+ };
236
+
237
+ const selectWeekDate = (selectStart: boolean, id: string | null) => {
238
+ if (!props.range) {
239
+ const activeDate = modelValue.value ? modelValue.value : today;
240
+ const date = id ? new Date(id) : activeDate;
241
+ const toSelect = selectStart
242
+ ? startOfWeek(date as Date, { weekStartsOn: 1 })
243
+ : endOfWeek(date as Date, { weekStartsOn: 1 });
244
+
245
+ selectDate({
246
+ value: toSelect,
247
+ current: getMonth(date as Date) === month.value(0),
248
+ text: '',
249
+ classData: {},
250
+ });
251
+ document.getElementById(getCellId(toSelect))?.focus();
252
+ }
253
+ };
254
+
255
+ const changeMonth = (isNext: boolean) => {
256
+ headerRefs.value[0]?.handleMonthYearChange(isNext, true);
257
+ };
258
+
259
+ const changeYear = (isNext: boolean) => {
260
+ updateMonthYear(0, { month: month.value(0), year: year.value(0) + (isNext ? 1 : -1), fromNav: true });
261
+ };
262
+
263
+ const timePickerOverlayToggle = (type: FlowStep, open: boolean) => {
264
+ if (type === FlowStep.time) {
265
+ emit(`time-picker-${open ? 'open' : 'close'}`);
266
+ }
267
+ emit('overlay-toggle', { open, overlay: type });
268
+ };
269
+
270
+ const onHeaderOverlayClose = (type: FlowStep) => {
271
+ emit('overlay-toggle', { open: false, overlay: type });
272
+ emit('focus-menu');
273
+ };
274
+
275
+ const getSidebarProps = () => {
276
+ return {
277
+ modelValue,
278
+ month,
279
+ year,
280
+ time,
281
+ updateTime,
282
+ updateMonthYear,
283
+ selectDate,
284
+ presetDate,
285
+ };
286
+ };
287
+
288
+ defineExpose({
289
+ clearHoverDate,
290
+ presetDate,
291
+ selectCurrentDate,
292
+ toggleMonthPicker,
293
+ toggleYearPicker,
294
+ toggleTimePicker,
295
+ handleArrow,
296
+ updateMonthYear,
297
+ getSidebarProps,
298
+ changeMonth,
299
+ changeYear,
300
+ selectWeekDate,
301
+ });
302
+ </script>