@bagelink/vue 0.0.1218 → 0.0.1224

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 (150) hide show
  1. package/dist/components/Calendar/Index.vue.d.ts +514 -0
  2. package/dist/components/Calendar/Index.vue.d.ts.map +1 -0
  3. package/dist/components/Calendar/components/header/Header.vue.d.ts +119 -0
  4. package/dist/components/Calendar/components/header/Header.vue.d.ts.map +1 -0
  5. package/dist/components/Calendar/components/month/AgendaEventTile.vue.d.ts +37 -0
  6. package/dist/components/Calendar/components/month/AgendaEventTile.vue.d.ts.map +1 -0
  7. package/dist/components/Calendar/components/month/AgendaEvents.vue.d.ts +37 -0
  8. package/dist/components/Calendar/components/month/AgendaEvents.vue.d.ts.map +1 -0
  9. package/dist/components/Calendar/components/month/Day.vue.d.ts +84 -0
  10. package/dist/components/Calendar/components/month/Day.vue.d.ts.map +1 -0
  11. package/dist/components/Calendar/components/month/Event.vue.d.ts +69 -0
  12. package/dist/components/Calendar/components/month/Event.vue.d.ts.map +1 -0
  13. package/dist/components/Calendar/components/month/Month.vue.d.ts +134 -0
  14. package/dist/components/Calendar/components/month/Month.vue.d.ts.map +1 -0
  15. package/dist/components/Calendar/components/month/WeekDay.vue.d.ts +7 -0
  16. package/dist/components/Calendar/components/month/WeekDay.vue.d.ts.map +1 -0
  17. package/dist/components/Calendar/components/partials/EventFlyout.vue.d.ts +122 -0
  18. package/dist/components/Calendar/components/partials/EventFlyout.vue.d.ts.map +1 -0
  19. package/dist/components/Calendar/components/week/Day.vue.d.ts +152 -0
  20. package/dist/components/Calendar/components/week/Day.vue.d.ts.map +1 -0
  21. package/dist/components/Calendar/components/week/DayEvent.vue.d.ts +136 -0
  22. package/dist/components/Calendar/components/week/DayEvent.vue.d.ts.map +1 -0
  23. package/dist/components/Calendar/components/week/DayTimeline.vue.d.ts +23 -0
  24. package/dist/components/Calendar/components/week/DayTimeline.vue.d.ts.map +1 -0
  25. package/dist/components/Calendar/components/week/FullDayEvent.vue.d.ts +42 -0
  26. package/dist/components/Calendar/components/week/FullDayEvent.vue.d.ts.map +1 -0
  27. package/dist/components/Calendar/components/week/Week.vue.d.ts +196 -0
  28. package/dist/components/Calendar/components/week/Week.vue.d.ts.map +1 -0
  29. package/dist/components/Calendar/components/week/WeekTimeline.vue.d.ts +21 -0
  30. package/dist/components/Calendar/components/week/WeekTimeline.vue.d.ts.map +1 -0
  31. package/dist/components/Calendar/constants.d.ts +13 -0
  32. package/dist/components/Calendar/constants.d.ts.map +1 -0
  33. package/dist/components/Calendar/helpers/DayIntervals.d.ts +17 -0
  34. package/dist/components/Calendar/helpers/DayIntervals.d.ts.map +1 -0
  35. package/dist/components/Calendar/helpers/EDate.d.ts +10 -0
  36. package/dist/components/Calendar/helpers/EDate.d.ts.map +1 -0
  37. package/dist/components/Calendar/helpers/Errors.d.ts +18 -0
  38. package/dist/components/Calendar/helpers/Errors.d.ts.map +1 -0
  39. package/dist/components/Calendar/helpers/EventChange.d.ts +19 -0
  40. package/dist/components/Calendar/helpers/EventChange.d.ts.map +1 -0
  41. package/dist/components/Calendar/helpers/EventConcurrency.d.ts +12 -0
  42. package/dist/components/Calendar/helpers/EventConcurrency.d.ts.map +1 -0
  43. package/dist/components/Calendar/helpers/EventFlyoutPosition.d.ts +14 -0
  44. package/dist/components/Calendar/helpers/EventFlyoutPosition.d.ts.map +1 -0
  45. package/dist/components/Calendar/helpers/EventPosition.d.ts +11 -0
  46. package/dist/components/Calendar/helpers/EventPosition.d.ts.map +1 -0
  47. package/dist/components/Calendar/helpers/EventsFilter.d.ts +11 -0
  48. package/dist/components/Calendar/helpers/EventsFilter.d.ts.map +1 -0
  49. package/dist/components/Calendar/helpers/Helpers.d.ts +19 -0
  50. package/dist/components/Calendar/helpers/Helpers.d.ts.map +1 -0
  51. package/dist/components/Calendar/helpers/Time.d.ts +118 -0
  52. package/dist/components/Calendar/helpers/Time.d.ts.map +1 -0
  53. package/dist/components/Calendar/helpers/Week.d.ts +10 -0
  54. package/dist/components/Calendar/helpers/Week.d.ts.map +1 -0
  55. package/dist/components/Calendar/index.d.ts +4 -0
  56. package/dist/components/Calendar/index.d.ts.map +1 -0
  57. package/dist/components/Calendar/language/index.d.ts +7 -0
  58. package/dist/components/Calendar/language/index.d.ts.map +1 -0
  59. package/dist/components/Calendar/language/keys.d.ts +93 -0
  60. package/dist/components/Calendar/language/keys.d.ts.map +1 -0
  61. package/dist/components/Calendar/models/Event.d.ts +50 -0
  62. package/dist/components/Calendar/models/Event.d.ts.map +1 -0
  63. package/dist/components/Calendar/typings/config.interface.d.ts +77 -0
  64. package/dist/components/Calendar/typings/config.interface.d.ts.map +1 -0
  65. package/dist/components/Calendar/typings/interfaces/day.interface.d.ts +10 -0
  66. package/dist/components/Calendar/typings/interfaces/day.interface.d.ts.map +1 -0
  67. package/dist/components/Calendar/typings/interfaces/event.interface.d.ts +32 -0
  68. package/dist/components/Calendar/typings/interfaces/event.interface.d.ts.map +1 -0
  69. package/dist/components/Calendar/typings/interfaces/full-day-events-week.type.d.ts +7 -0
  70. package/dist/components/Calendar/typings/interfaces/full-day-events-week.type.d.ts.map +1 -0
  71. package/dist/components/Calendar/typings/interfaces/period.interface.d.ts +6 -0
  72. package/dist/components/Calendar/typings/interfaces/period.interface.d.ts.map +1 -0
  73. package/dist/components/Calendar/typings/interfaces/time-modes.d.ts +6 -0
  74. package/dist/components/Calendar/typings/interfaces/time-modes.d.ts.map +1 -0
  75. package/dist/components/Calendar/typings/types.d.ts +21 -0
  76. package/dist/components/Calendar/typings/types.d.ts.map +1 -0
  77. package/dist/components/DataTable/DataTable.vue.d.ts.map +1 -1
  78. package/dist/components/Spreadsheet/Index.vue.d.ts +24 -0
  79. package/dist/components/Spreadsheet/Index.vue.d.ts.map +1 -0
  80. package/dist/components/form/BagelForm.vue.d.ts +1 -1
  81. package/dist/components/form/BagelForm.vue.d.ts.map +1 -1
  82. package/dist/components/form/inputs/DatePick.vue.d.ts +9 -0
  83. package/dist/components/form/inputs/DatePick.vue.d.ts.map +1 -1
  84. package/dist/components/form/inputs/DatePicker.vue.d.ts.map +1 -1
  85. package/dist/components/form/inputs/NumberInput.vue.d.ts.map +1 -1
  86. package/dist/components/index.d.ts +3 -1
  87. package/dist/components/index.d.ts.map +1 -1
  88. package/dist/directives/index.d.ts +2 -0
  89. package/dist/directives/index.d.ts.map +1 -1
  90. package/dist/directives/vResize.d.ts +18 -0
  91. package/dist/directives/vResize.d.ts.map +1 -0
  92. package/dist/index.cjs +5081 -925
  93. package/dist/index.mjs +5082 -926
  94. package/dist/style.css +1134 -401
  95. package/package.json +2 -1
  96. package/src/components/Calendar/Index.vue +417 -0
  97. package/src/components/Calendar/assets/base.css +60 -0
  98. package/src/components/Calendar/components/header/Header.vue +152 -0
  99. package/src/components/Calendar/components/month/AgendaEventTile.vue +128 -0
  100. package/src/components/Calendar/components/month/AgendaEvents.vue +61 -0
  101. package/src/components/Calendar/components/month/Day.vue +253 -0
  102. package/src/components/Calendar/components/month/Event.vue +164 -0
  103. package/src/components/Calendar/components/month/Month.vue +232 -0
  104. package/src/components/Calendar/components/month/WeekDay.vue +15 -0
  105. package/src/components/Calendar/components/partials/EventFlyout.vue +430 -0
  106. package/src/components/Calendar/components/week/Day.vue +198 -0
  107. package/src/components/Calendar/components/week/DayEvent.vue +585 -0
  108. package/src/components/Calendar/components/week/DayTimeline.vue +86 -0
  109. package/src/components/Calendar/components/week/FullDayEvent.vue +121 -0
  110. package/src/components/Calendar/components/week/Week.vue +414 -0
  111. package/src/components/Calendar/components/week/WeekTimeline.vue +101 -0
  112. package/src/components/Calendar/constants.ts +13 -0
  113. package/src/components/Calendar/env.d.ts +8 -0
  114. package/src/components/Calendar/helpers/DayIntervals.ts +48 -0
  115. package/src/components/Calendar/helpers/EDate.ts +18 -0
  116. package/src/components/Calendar/helpers/Errors.ts +69 -0
  117. package/src/components/Calendar/helpers/EventChange.ts +88 -0
  118. package/src/components/Calendar/helpers/EventConcurrency.ts +69 -0
  119. package/src/components/Calendar/helpers/EventFlyoutPosition.ts +96 -0
  120. package/src/components/Calendar/helpers/EventPosition.ts +154 -0
  121. package/src/components/Calendar/helpers/EventsFilter.ts +50 -0
  122. package/src/components/Calendar/helpers/Helpers.ts +86 -0
  123. package/src/components/Calendar/helpers/Time.ts +588 -0
  124. package/src/components/Calendar/helpers/Week.ts +37 -0
  125. package/src/components/Calendar/language/index.ts +40 -0
  126. package/src/components/Calendar/language/keys.ts +93 -0
  127. package/src/components/Calendar/models/Event.ts +112 -0
  128. package/src/components/Calendar/styles/_mixins.css +21 -0
  129. package/src/components/Calendar/styles/_variables.css +47 -0
  130. package/src/components/Calendar/typings/config.interface.ts +87 -0
  131. package/src/components/Calendar/typings/interfaces/day.interface.ts +10 -0
  132. package/src/components/Calendar/typings/interfaces/event.interface.ts +32 -0
  133. package/src/components/Calendar/typings/interfaces/full-day-events-week.type.ts +8 -0
  134. package/src/components/Calendar/typings/interfaces/period.interface.ts +5 -0
  135. package/src/components/Calendar/typings/interfaces/time-modes.ts +9 -0
  136. package/src/components/Calendar/typings/types.ts +23 -0
  137. package/src/components/DataTable/DataTable.vue +4 -0
  138. package/src/components/Spreadsheet/Index.vue +843 -0
  139. package/src/components/form/BagelForm.vue +1 -1
  140. package/src/components/form/inputs/DatePick.vue +193 -152
  141. package/src/components/form/inputs/DatePicker.vue +2 -2
  142. package/src/components/form/inputs/NumberInput.vue +3 -5
  143. package/src/components/index.ts +4 -6
  144. package/src/directives/index.ts +2 -0
  145. package/src/directives/vResize.ts +205 -0
  146. package/src/styles/buttons.css +81 -73
  147. package/src/styles/layout.css +25 -0
  148. package/src/styles/mobilLayout.css +25 -0
  149. package/src/styles/text.css +82 -1
  150. package/src/styles/theme.css +269 -258
@@ -0,0 +1,198 @@
1
+ <script setup lang="ts">
2
+ import type { PropType } from 'vue'
3
+ import type { Interval } from '../../helpers/DayIntervals'
4
+ import type Time from '../../helpers/Time'
5
+ import type { ConfigInterface, DayIntervalsType } from '../../typings/config.interface'
6
+ import type { DayInterface } from '../../typings/interfaces/day.interface'
7
+ import type { EventInterface } from '../../typings/interfaces/event.interface'
8
+ import type { DayInfo, modeType } from '../../typings/types'
9
+ import { ref, computed, onMounted } from 'vue'
10
+ import DayIntervals from '../../helpers/DayIntervals'
11
+ import EventConcurrency from '../../helpers/EventConcurrency'
12
+ import DayEvent from './DayEvent.vue'
13
+
14
+ const props = defineProps({
15
+ day: {
16
+ type: Object as PropType<DayInterface>,
17
+ required: true,
18
+ },
19
+ time: {
20
+ type: Object as PropType<Time>,
21
+ required: true,
22
+ },
23
+ config: {
24
+ type: Object as PropType<ConfigInterface>,
25
+ required: true,
26
+ },
27
+ dayInfo: {
28
+ type: Object as PropType<DayInfo>,
29
+ required: true,
30
+ },
31
+ mode: {
32
+ type: String as PropType<modeType>,
33
+ required: true,
34
+ },
35
+ dayIntervals: {
36
+ type: Object as PropType<DayIntervalsType>,
37
+ required: true,
38
+ },
39
+ weekHeight: {
40
+ type: Number,
41
+ required: true,
42
+ },
43
+ })
44
+
45
+ const emit = defineEmits([
46
+ 'eventWasClicked',
47
+ 'eventWasResized',
48
+ 'eventWasDragged',
49
+ 'intervalWasClicked',
50
+ 'dayWasClicked',
51
+ 'datetimeWasClicked',
52
+ 'dragStart',
53
+ 'dragEnd',
54
+ ])
55
+
56
+ const eventConcurrencyHelper = new EventConcurrency()
57
+
58
+ const events = ref<EventInterface[]>([])
59
+ const intervals = ref<Interval[]>([])
60
+
61
+ const intervalStyles = computed(() => {
62
+ return props.config.dayIntervals?.intervalStyles
63
+ ? props.config.dayIntervals.intervalStyles
64
+ : {}
65
+ })
66
+
67
+ function calculateEventConcurrency() {
68
+ events.value = eventConcurrencyHelper.calculateConcurrencyForEvents(
69
+ props.day.events
70
+ )
71
+ }
72
+
73
+ function handleEventWasResized(event: any) {
74
+ emit('eventWasResized', event)
75
+ calculateEventConcurrency()
76
+ }
77
+
78
+ function handleClickOnInterval(payload: Interval) {
79
+ const { intervalStart, intervalEnd } = payload
80
+ emit('intervalWasClicked', { intervalStart, intervalEnd })
81
+ }
82
+
83
+ function setClickableIntervals() {
84
+ let dayStartTimeString = props.day.dateTimeString
85
+ if (props.time.DAY_START !== 0) {
86
+ const { hour: startHour } = props.time.getHourAndMinutesFromTimePoints(props.time.DAY_START)
87
+ dayStartTimeString = props.time.setSegmentOfDateTimeString(dayStartTimeString, { hour: startHour })
88
+ }
89
+
90
+ intervals.value = new DayIntervals(
91
+ props.dayIntervals.length || 60,
92
+ dayStartTimeString,
93
+ props.time.HOURS_PER_DAY,
94
+ ).getIntervals()
95
+ }
96
+
97
+ function getDateStringForFlexibleDayBoundaries(dateString: string, timeClickedHHMM: string) {
98
+ const hourTwoDigits = props.time.doubleDigit(props.time.DAY_START / 100)
99
+ const dayStartTimeHHMM = `${hourTwoDigits}:00`
100
+ const isClickOnNextDay = timeClickedHHMM < dayStartTimeHHMM
101
+
102
+ if (isClickOnNextDay) {
103
+ dateString = props.time.dateStringFrom(
104
+ props.time.addDaysToDateTimeString(1, dateString)
105
+ )
106
+ }
107
+
108
+ return dateString
109
+ }
110
+
111
+ function handleClickOnDay(event: MouseEvent) {
112
+ const timeClicked = props.time.getTimeFromClick(event.offsetY, props.weekHeight)
113
+ let dateString = props.time.dateStringFrom(props.day.dateTimeString)
114
+ const isFlexibleDay = props.time.DAY_END <= props.time.DAY_START
115
+ if (isFlexibleDay) dateString = getDateStringForFlexibleDayBoundaries(dateString, timeClicked)
116
+ const dateTimeString = `${dateString} ${timeClicked}`
117
+
118
+ emit('dayWasClicked', dateString)
119
+ emit('datetimeWasClicked', dateTimeString)
120
+ }
121
+
122
+ onMounted(() => {
123
+ calculateEventConcurrency()
124
+ if (props.dayIntervals.displayClickableInterval) setClickableIntervals()
125
+ })
126
+ </script>
127
+
128
+ <template>
129
+ <div
130
+ class="calendar-week__day"
131
+ @click.self="handleClickOnDay"
132
+ >
133
+ <DayEvent
134
+ v-for="(event, eventIndex) in events"
135
+ :key="eventIndex"
136
+ data-test="day-event"
137
+ :event-prop="event"
138
+ :day="day"
139
+ :time="time"
140
+ :config="config"
141
+ :day-info="dayInfo"
142
+ :mode="mode"
143
+ @eventWasClicked="$emit('eventWasClicked', $event)"
144
+ @eventWasDragged="$emit('eventWasDragged', $event)"
145
+ @eventWasResized="handleEventWasResized"
146
+ @dragStart="$emit('dragStart')"
147
+ @dragEnd="$emit('dragEnd')"
148
+ >
149
+ <template #weekDayEvent="p">
150
+ <slot
151
+ :event-data="p.eventData"
152
+ name="weekDayEvent"
153
+ />
154
+ </template>
155
+ </DayEvent>
156
+
157
+ <template v-if="dayIntervals && dayIntervals.displayClickableInterval">
158
+ <div
159
+ v-for="(interval, intervalIndex) in intervals"
160
+ :id="`interval-${intervalIndex}`"
161
+ :key="interval.intervalStart"
162
+ class="calendar-week__day-interval"
163
+ :class="{ 'has-border': interval.hasBorder }"
164
+ :style="intervalStyles"
165
+ @click="handleClickOnInterval(interval)"
166
+ >
167
+ {{ time.getLocalizedTime(interval.intervalStart) }}
168
+ </div>
169
+ </template>
170
+ </div>
171
+ </template>
172
+
173
+ <style scoped>
174
+ .calendar-week__day {
175
+ position: relative;
176
+ width: 100%;
177
+ height: 100%;
178
+ display: flex;
179
+ flex-direction: column;
180
+ }
181
+
182
+ .calendar-week__day .calendar-week__day-interval {
183
+ flex: 1;
184
+ font-size: var(--qalendar-font-xs);
185
+ color: var(--qalendar-gray);
186
+ padding: 2px;
187
+ }
188
+
189
+ .calendar-week__day:first-child {
190
+ border-inline-start: 1px solid var(--border-color);
191
+ }
192
+
193
+ .calendar-week__day {
194
+ border-inline-end: 1px solid var(--border-color);
195
+ border-bottom: 1px solid var(--border-color);
196
+
197
+ }
198
+ </style>