@redvars/peacock 3.5.1 → 3.6.1

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 (225) hide show
  1. package/dist/{BaseButton-DuASuVth.js → BaseButton-BNFAYn-S.js} +2 -2
  2. package/dist/{BaseButton-DuASuVth.js.map → BaseButton-BNFAYn-S.js.map} +1 -1
  3. package/dist/BaseInput-14YmcfK7.js +27 -0
  4. package/dist/BaseInput-14YmcfK7.js.map +1 -0
  5. package/dist/banner.js +2 -3
  6. package/dist/banner.js.map +1 -1
  7. package/dist/{button-DouvOfEU.js → button-colors-Ccys3hvS.js} +5 -294
  8. package/dist/button-colors-Ccys3hvS.js.map +1 -0
  9. package/dist/button-group.js +226 -6
  10. package/dist/button-group.js.map +1 -1
  11. package/dist/button.js +294 -8
  12. package/dist/button.js.map +1 -1
  13. package/dist/calendar-column-view.js +634 -0
  14. package/dist/calendar-column-view.js.map +1 -0
  15. package/dist/calendar-event-BrQ_SEKD.js +199 -0
  16. package/dist/calendar-event-BrQ_SEKD.js.map +1 -0
  17. package/dist/calendar-month-view.js +376 -0
  18. package/dist/calendar-month-view.js.map +1 -0
  19. package/dist/calendar.js +339 -0
  20. package/dist/calendar.js.map +1 -0
  21. package/dist/canvas.js +361 -0
  22. package/dist/canvas.js.map +1 -0
  23. package/dist/cb-compound-expression.js +125 -0
  24. package/dist/cb-compound-expression.js.map +1 -0
  25. package/dist/cb-divider.js +150 -0
  26. package/dist/cb-divider.js.map +1 -0
  27. package/dist/cb-expression.js +75 -0
  28. package/dist/cb-expression.js.map +1 -0
  29. package/dist/cb-predicate.js +137 -0
  30. package/dist/cb-predicate.js.map +1 -0
  31. package/dist/code-editor.js +2 -1
  32. package/dist/code-editor.js.map +1 -1
  33. package/dist/code-highlighter.js +1 -1
  34. package/dist/code-highlighter.js.map +1 -1
  35. package/dist/condition-builder.js +58 -0
  36. package/dist/condition-builder.js.map +1 -0
  37. package/dist/custom-elements-jsdocs.json +8479 -3965
  38. package/dist/custom-elements.json +15228 -7544
  39. package/dist/dropdown-button.js +216 -0
  40. package/dist/dropdown-button.js.map +1 -0
  41. package/dist/event-manager-D-QCmUgR.js +113 -0
  42. package/dist/event-manager-D-QCmUgR.js.map +1 -0
  43. package/dist/fab.js +1 -1
  44. package/dist/flow-designer-DvTUrDp5.js +1656 -0
  45. package/dist/flow-designer-DvTUrDp5.js.map +1 -0
  46. package/dist/flow-designer-node-BWrPuxAR.js +548 -0
  47. package/dist/flow-designer-node-BWrPuxAR.js.map +1 -0
  48. package/dist/flow-designer-node.js +4 -0
  49. package/dist/flow-designer-node.js.map +1 -0
  50. package/dist/flow-designer.js +16 -0
  51. package/dist/flow-designer.js.map +1 -0
  52. package/dist/html-editor.js +27516 -0
  53. package/dist/html-editor.js.map +1 -0
  54. package/dist/icon-button-CK1ZuE-2.js +247 -0
  55. package/dist/icon-button-CK1ZuE-2.js.map +1 -0
  56. package/dist/index.js +29 -6
  57. package/dist/index.js.map +1 -1
  58. package/dist/{is-dark-mode-DicqGkCJ.js → is-dark-mode-DOcaw4Yq.js} +2 -27
  59. package/dist/is-dark-mode-DOcaw4Yq.js.map +1 -0
  60. package/dist/modal.js +412 -0
  61. package/dist/modal.js.map +1 -0
  62. package/dist/{navigation-rail-Lxetd5-Z.js → navigation-rail-DTTkqohi.js} +1049 -2391
  63. package/dist/navigation-rail-DTTkqohi.js.map +1 -0
  64. package/dist/notification-manager.js +268 -0
  65. package/dist/notification-manager.js.map +1 -0
  66. package/dist/peacock-loader.js +93 -8
  67. package/dist/peacock-loader.js.map +1 -1
  68. package/dist/popover-NC7b1lTq.js +1971 -0
  69. package/dist/popover-NC7b1lTq.js.map +1 -0
  70. package/dist/popover-content.js +125 -0
  71. package/dist/popover-content.js.map +1 -0
  72. package/dist/popover.js +4 -0
  73. package/dist/popover.js.map +1 -0
  74. package/dist/split-button.js +388 -0
  75. package/dist/split-button.js.map +1 -0
  76. package/dist/src/__controllers/floating-controller.d.ts +35 -0
  77. package/dist/src/calendar/base-event.d.ts +10 -0
  78. package/dist/src/calendar/calendar-column-view.d.ts +41 -0
  79. package/dist/src/calendar/calendar-event.d.ts +7 -0
  80. package/dist/src/calendar/calendar-month-view.d.ts +31 -0
  81. package/dist/src/calendar/calendar.d.ts +65 -0
  82. package/dist/src/calendar/event-manager.d.ts +17 -0
  83. package/dist/src/calendar/index.d.ts +4 -0
  84. package/dist/src/calendar/types.d.ts +13 -0
  85. package/dist/src/calendar/utils.d.ts +31 -0
  86. package/dist/src/canvas/canvas.d.ts +92 -0
  87. package/dist/src/canvas/index.d.ts +2 -0
  88. package/dist/src/condition-builder/cb-compound-expression.d.ts +31 -0
  89. package/dist/src/condition-builder/cb-divider.d.ts +26 -0
  90. package/dist/src/condition-builder/cb-expression.d.ts +31 -0
  91. package/dist/src/condition-builder/cb-predicate.d.ts +30 -0
  92. package/dist/src/condition-builder/condition-builder.d.ts +27 -0
  93. package/dist/src/condition-builder/index.d.ts +5 -0
  94. package/dist/src/dropdown-button/dropdown-button.d.ts +68 -0
  95. package/dist/src/dropdown-button/index.d.ts +1 -0
  96. package/dist/src/flow-designer/commands.d.ts +66 -0
  97. package/dist/src/flow-designer/flow-designer-node.d.ts +46 -0
  98. package/dist/src/flow-designer/flow-designer.d.ts +133 -0
  99. package/dist/src/flow-designer/index.d.ts +7 -0
  100. package/dist/src/flow-designer/layout.d.ts +30 -0
  101. package/dist/src/flow-designer/types.d.ts +142 -0
  102. package/dist/src/flow-designer/validation.d.ts +43 -0
  103. package/dist/src/flow-designer/workflow-utils.d.ts +40 -0
  104. package/dist/src/html-editor/html-editor.d.ts +89 -0
  105. package/dist/src/html-editor/index.d.ts +2 -0
  106. package/dist/src/index.d.ts +15 -0
  107. package/dist/src/list/index.d.ts +2 -0
  108. package/dist/src/list/list-item.d.ts +35 -0
  109. package/dist/src/list/list.d.ts +28 -0
  110. package/dist/src/menu/menu/menu.d.ts +5 -7
  111. package/dist/src/menu/menu-item/menu-item.d.ts +14 -13
  112. package/dist/src/modal/index.d.ts +1 -0
  113. package/dist/src/modal/modal.d.ts +57 -0
  114. package/dist/src/navigation-rail/navigation-rail.d.ts +3 -7
  115. package/dist/src/notification-manager/index.d.ts +1 -0
  116. package/dist/src/notification-manager/notification-manager.d.ts +44 -0
  117. package/dist/src/number-field/number-field.d.ts +2 -2
  118. package/dist/src/popover/index.d.ts +2 -0
  119. package/dist/src/popover/popover-content.d.ts +29 -0
  120. package/dist/src/popover/popover.d.ts +62 -0
  121. package/dist/src/split-button/index.d.ts +1 -0
  122. package/dist/src/split-button/split-button.d.ts +72 -0
  123. package/dist/src/svg/index.d.ts +1 -0
  124. package/dist/src/svg/svg.d.ts +38 -0
  125. package/dist/src/toolbar/toolbar.d.ts +3 -3
  126. package/dist/src/tooltip/tooltip.d.ts +2 -15
  127. package/dist/test/flow-designer.test.d.ts +1 -0
  128. package/dist/toolbar.js +3 -3
  129. package/dist/toolbar.js.map +1 -1
  130. package/dist/tsconfig.tsbuildinfo +1 -1
  131. package/package.json +10 -2
  132. package/readme.md +3 -3
  133. package/src/__controllers/floating-controller.ts +237 -0
  134. package/src/banner/banner.scss +2 -3
  135. package/src/button/button/button.ts +1 -0
  136. package/src/calendar/base-event.ts +49 -0
  137. package/src/calendar/calendar-column-view.scss +326 -0
  138. package/src/calendar/calendar-column-view.ts +392 -0
  139. package/src/calendar/calendar-event.ts +20 -0
  140. package/src/calendar/calendar-month-view.scss +192 -0
  141. package/src/calendar/calendar-month-view.ts +244 -0
  142. package/src/calendar/calendar.scss +71 -0
  143. package/src/calendar/calendar.ts +298 -0
  144. package/src/calendar/event-manager.ts +117 -0
  145. package/src/calendar/index.ts +4 -0
  146. package/src/calendar/types.ts +14 -0
  147. package/src/calendar/utils.ts +180 -0
  148. package/src/canvas/canvas.scss +60 -0
  149. package/src/canvas/canvas.ts +391 -0
  150. package/src/canvas/index.ts +2 -0
  151. package/src/code-highlighter/code-highlighter.ts +1 -1
  152. package/src/condition-builder/cb-compound-expression.scss +37 -0
  153. package/src/condition-builder/cb-compound-expression.ts +80 -0
  154. package/src/condition-builder/cb-divider.scss +93 -0
  155. package/src/condition-builder/cb-divider.ts +56 -0
  156. package/src/condition-builder/cb-expression.scss +14 -0
  157. package/src/condition-builder/cb-expression.ts +49 -0
  158. package/src/condition-builder/cb-predicate.scss +35 -0
  159. package/src/condition-builder/cb-predicate.ts +102 -0
  160. package/src/condition-builder/condition-builder.scss +13 -0
  161. package/src/condition-builder/condition-builder.ts +38 -0
  162. package/src/condition-builder/index.ts +5 -0
  163. package/src/dropdown-button/demo/index.html +110 -0
  164. package/src/dropdown-button/dropdown-button.scss +22 -0
  165. package/src/dropdown-button/dropdown-button.ts +206 -0
  166. package/src/dropdown-button/index.ts +1 -0
  167. package/src/flow-designer/DEMO.md +239 -0
  168. package/src/flow-designer/commands.ts +278 -0
  169. package/src/flow-designer/flow-designer-node.ts +172 -0
  170. package/src/flow-designer/flow-designer.scss +457 -0
  171. package/src/flow-designer/flow-designer.ts +611 -0
  172. package/src/flow-designer/index.ts +41 -0
  173. package/src/flow-designer/layout.ts +357 -0
  174. package/src/flow-designer/types.ts +166 -0
  175. package/src/flow-designer/validation.ts +284 -0
  176. package/src/flow-designer/workflow-utils.ts +282 -0
  177. package/src/html-editor/html-editor.scss +188 -0
  178. package/src/html-editor/html-editor.ts +491 -0
  179. package/src/html-editor/index.ts +3 -0
  180. package/src/index.ts +27 -1
  181. package/src/list/index.ts +2 -0
  182. package/src/list/list-item.scss +111 -0
  183. package/src/list/list-item.ts +175 -0
  184. package/src/list/list.scss +24 -0
  185. package/src/list/list.ts +51 -0
  186. package/src/menu/menu/menu.scss +2 -2
  187. package/src/menu/menu/menu.ts +91 -101
  188. package/src/menu/menu-item/menu-item.scss +4 -0
  189. package/src/menu/menu-item/menu-item.ts +82 -78
  190. package/src/modal/index.ts +1 -0
  191. package/src/modal/modal.scss +206 -0
  192. package/src/modal/modal.ts +195 -0
  193. package/src/navigation-rail/navigation-rail-item.scss +7 -38
  194. package/src/navigation-rail/navigation-rail-item.ts +1 -2
  195. package/src/navigation-rail/navigation-rail.scss +17 -21
  196. package/src/navigation-rail/navigation-rail.ts +6 -9
  197. package/src/notification-manager/index.ts +1 -0
  198. package/src/notification-manager/notification-manager.scss +113 -0
  199. package/src/notification-manager/notification-manager.ts +199 -0
  200. package/src/number-field/number-field.ts +2 -2
  201. package/src/peacock-loader.ts +83 -0
  202. package/src/popover/index.ts +2 -0
  203. package/src/popover/popover-content.scss +69 -0
  204. package/src/popover/popover-content.ts +51 -0
  205. package/src/popover/popover.scss +7 -0
  206. package/src/popover/popover.ts +170 -0
  207. package/src/split-button/index.ts +1 -0
  208. package/src/split-button/split-button-colors.scss +56 -0
  209. package/src/split-button/split-button-sizes.scss +28 -0
  210. package/src/split-button/split-button.scss +79 -0
  211. package/src/split-button/split-button.ts +236 -0
  212. package/src/svg/index.ts +1 -0
  213. package/src/svg/svg.scss +91 -0
  214. package/src/svg/svg.ts +160 -0
  215. package/src/table/table.ts +2 -2
  216. package/src/toolbar/toolbar.ts +3 -3
  217. package/src/tooltip/tooltip.scss +4 -3
  218. package/src/tooltip/tooltip.ts +46 -104
  219. package/dist/button-DouvOfEU.js.map +0 -1
  220. package/dist/button-group-CEdMwvJJ.js +0 -464
  221. package/dist/button-group-CEdMwvJJ.js.map +0 -1
  222. package/dist/is-dark-mode-DicqGkCJ.js.map +0 -1
  223. package/dist/navigation-rail-Lxetd5-Z.js.map +0 -1
  224. package/dist/src/menu/menu/MenuSurfaceController.d.ts +0 -18
  225. package/src/menu/menu/MenuSurfaceController.ts +0 -61
@@ -0,0 +1,634 @@
1
+ import { a as i, _ as __decorate, I as IndividualComponent, i as i$1, b, A } from './IndividualComponent-DUINtMGK.js';
2
+ import { n } from './property-1psGvXOq.js';
3
+ import { r } from './state-DwbEjqVk.js';
4
+ import { g as getTimePercent, c as calculateDateRange, B as BaseEvent, s as startOfDay, e as endOfDay, d as differenceInDays, a as addDays, f as formatDate, h as addHours, L as LONG_EVENT_PADDING } from './calendar-event-BrQ_SEKD.js';
5
+ import { E as EventManager } from './event-manager-D-QCmUgR.js';
6
+
7
+ var css_248z = i`@charset "UTF-8";
8
+ * {
9
+ box-sizing: border-box;
10
+ }
11
+
12
+ .screen-reader-only {
13
+ display: none !important;
14
+ }
15
+
16
+ :host {
17
+ display: block;
18
+ height: 100%;
19
+ --calendar-border-color: var(--color-outline-variant);
20
+ --calendar-scale-color: var(--color-outline-variant);
21
+ --scale-size: 4rem;
22
+ }
23
+
24
+ .scale {
25
+ width: var(--scale-size);
26
+ flex-shrink: 0;
27
+ }
28
+
29
+ .calendar-column-view {
30
+ display: flex;
31
+ flex-direction: column;
32
+ height: 100%;
33
+ }
34
+
35
+ /* ── Header ── */
36
+ .view-header {
37
+ display: flex;
38
+ background: var(--color-surface-container);
39
+ border-bottom: 1px solid var(--calendar-border-color);
40
+ }
41
+ .view-header .columns {
42
+ display: flex;
43
+ flex: 1;
44
+ }
45
+ .view-header .columns .column {
46
+ flex: 1;
47
+ border-inline-start: 1px solid var(--calendar-border-color);
48
+ }
49
+ .view-header .columns .column:first-child {
50
+ border-inline-start: 0;
51
+ }
52
+ .view-header .columns .column .column-content {
53
+ display: flex;
54
+ align-items: center;
55
+ padding: 0.5rem;
56
+ gap: 0.5rem;
57
+ border-top: 3px solid transparent;
58
+ }
59
+ .view-header .columns .column.today .column-content {
60
+ border-top-color: var(--color-primary);
61
+ }
62
+ .view-header .columns .column.today .column-content .date {
63
+ color: var(--color-on-primary);
64
+ background: var(--color-primary);
65
+ }
66
+ .view-header .columns .column .date {
67
+ font-size: 1.5rem;
68
+ font-weight: 500;
69
+ cursor: pointer;
70
+ border-radius: 50%;
71
+ width: 2.5rem;
72
+ height: 2.5rem;
73
+ display: flex;
74
+ align-items: center;
75
+ justify-content: center;
76
+ color: var(--color-on-surface);
77
+ transition: background 200ms ease;
78
+ }
79
+ .view-header .columns .column .date:hover {
80
+ background: var(--color-primary-90);
81
+ }
82
+ .view-header .columns .column .day {
83
+ font-size: 0.875rem;
84
+ font-weight: 500;
85
+ color: var(--color-on-surface-variant);
86
+ }
87
+ .view-header .scrollbar-placeholder {
88
+ width: var(--scrollbar-width, 0px);
89
+ }
90
+
91
+ /* ── Multi-day section ── */
92
+ .multi-day-section-wrapper {
93
+ background: var(--color-surface-container);
94
+ border-bottom: 1px solid var(--calendar-border-color);
95
+ }
96
+ .multi-day-section-wrapper .multi-day-section-scroll {
97
+ overflow-y: auto;
98
+ max-height: 6rem;
99
+ }
100
+ .multi-day-section-wrapper .multi-day-section {
101
+ position: relative;
102
+ }
103
+ .multi-day-section-wrapper .multi-day-background {
104
+ display: flex;
105
+ height: 100%;
106
+ position: absolute;
107
+ width: 100%;
108
+ }
109
+ .multi-day-section-wrapper .multi-day-background .columns {
110
+ display: flex;
111
+ flex: 1;
112
+ }
113
+ .multi-day-section-wrapper .multi-day-background .columns .column {
114
+ flex: 1;
115
+ border-inline-start: 1px solid var(--calendar-border-color);
116
+ }
117
+ .multi-day-section-wrapper .multi-day-background .columns .column:first-child {
118
+ border-inline-start: 0;
119
+ }
120
+ .multi-day-section-wrapper .multi-events {
121
+ padding: 0 0 0 var(--scale-size);
122
+ }
123
+ .multi-day-section-wrapper .multi-events .row {
124
+ height: 1.8rem;
125
+ box-sizing: content-box;
126
+ position: relative;
127
+ padding-bottom: 0.25rem;
128
+ }
129
+ .multi-day-section-wrapper .multi-events .row:last-child {
130
+ padding-bottom: 0;
131
+ }
132
+ .multi-day-section-wrapper .multi-events .row-spacer {
133
+ height: 0.75rem;
134
+ }
135
+ .multi-day-section-wrapper .multi-events .event {
136
+ position: absolute;
137
+ height: 1.8rem;
138
+ text-overflow: ellipsis;
139
+ overflow: hidden;
140
+ }
141
+
142
+ /* ── View body ── */
143
+ .view-body {
144
+ height: 100%;
145
+ border-bottom: 1px solid var(--calendar-border-color);
146
+ overflow-y: auto;
147
+ }
148
+ .view-body .view-body-scroll {
149
+ display: flex;
150
+ position: relative;
151
+ }
152
+ .view-body .view-body-scroll .scale {
153
+ border-right: 1px solid var(--calendar-scale-color);
154
+ }
155
+ .view-body .view-body-scroll .scale .background {
156
+ border-inline-start: 1rem;
157
+ }
158
+ .view-body .view-body-scroll .scale .row {
159
+ width: 0;
160
+ position: relative;
161
+ height: 2rem;
162
+ border-bottom: 1px dashed var(--calendar-scale-color);
163
+ }
164
+ .view-body .view-body-scroll .scale .row.hour {
165
+ border-bottom: 1px solid var(--calendar-scale-color);
166
+ width: 50%;
167
+ margin-inline-start: 50%;
168
+ }
169
+ .view-body .view-body-scroll .scale .row:last-child {
170
+ border-bottom: 0;
171
+ }
172
+ .view-body .view-body-scroll .scale .row .time {
173
+ position: absolute;
174
+ top: -0.5rem;
175
+ font-size: 0.75rem;
176
+ color: var(--color-on-surface-variant);
177
+ }
178
+ .view-body .view-body-scroll .drawing-area {
179
+ flex: 1;
180
+ position: relative;
181
+ }
182
+ .view-body .view-body-scroll .drawing-area .background {
183
+ position: relative;
184
+ width: 100%;
185
+ height: 100%;
186
+ }
187
+ .view-body .view-body-scroll .drawing-area .background .row {
188
+ height: 2rem;
189
+ border-bottom: 1px dashed var(--calendar-scale-color);
190
+ display: flex;
191
+ }
192
+ .view-body .view-body-scroll .drawing-area .background .row.hour {
193
+ border-bottom: 1px solid var(--calendar-scale-color);
194
+ }
195
+ .view-body .view-body-scroll .drawing-area .background .row:last-child {
196
+ border-bottom: 0;
197
+ }
198
+ .view-body .view-body-scroll .drawing-area .background .row .column {
199
+ flex: 1;
200
+ border-inline-start: 1px solid var(--calendar-border-color);
201
+ }
202
+ .view-body .view-body-scroll .drawing-area .background .row .column:first-child {
203
+ border-inline-start: 0;
204
+ }
205
+ .view-body .view-body-scroll .drawing-area .background .row .column.today {
206
+ background: color-mix(in srgb, var(--color-primary) 4%, transparent);
207
+ }
208
+ .view-body .view-body-scroll .drawing-area .events-container {
209
+ position: absolute;
210
+ top: 0;
211
+ left: 0;
212
+ width: 100%;
213
+ height: 100%;
214
+ display: flex;
215
+ }
216
+ .view-body .view-body-scroll .drawing-area .events-container .column {
217
+ flex: 1;
218
+ padding: 0 0.5rem 0 1px;
219
+ }
220
+ .view-body .view-body-scroll .drawing-area .events-container .column .column-content {
221
+ position: relative;
222
+ height: 100%;
223
+ }
224
+ .view-body .view-body-scroll .drawing-area .events-container .column .event {
225
+ position: absolute;
226
+ }
227
+ .view-body .view-body-scroll {
228
+ /* ── Current time line ── */
229
+ }
230
+ .view-body .view-body-scroll .current-time-line {
231
+ position: absolute;
232
+ z-index: 100;
233
+ pointer-events: none;
234
+ width: calc(100% - var(--scale-size));
235
+ margin-inline-start: var(--scale-size);
236
+ }
237
+ .view-body .view-body-scroll .current-time-line .time {
238
+ position: absolute;
239
+ font-family: var(--typography-label-small-font-family) !important;
240
+ font-size: var(--typography-label-small-font-size) !important;
241
+ font-weight: var(--typography-label-small-font-weight) !important;
242
+ line-height: var(--typography-label-small-line-height) !important;
243
+ letter-spacing: var(--typography-label-small-letter-spacing) !important;
244
+ color: var(--color-on-primary-container);
245
+ transform: translate(calc(-100% - 2px), -50%);
246
+ background: var(--color-primary-container);
247
+ padding: 2px 4px;
248
+ border-radius: var(--shape-corner-extra-small);
249
+ }
250
+ .view-body .view-body-scroll .current-time-line .dash-line {
251
+ position: absolute;
252
+ left: 0;
253
+ border-bottom: 1px dashed var(--color-primary);
254
+ }
255
+ .view-body .view-body-scroll .current-time-line .dot {
256
+ border-radius: 50%;
257
+ width: 0.5rem;
258
+ height: 0.5rem;
259
+ background: var(--color-primary);
260
+ display: block;
261
+ position: absolute;
262
+ top: -0.25rem;
263
+ }
264
+ .view-body .view-body-scroll .current-time-line .line {
265
+ border-bottom: 2px solid var(--color-primary);
266
+ position: absolute;
267
+ top: -1px;
268
+ }
269
+
270
+ /* ── Event styles ── */
271
+ .event {
272
+ background: var(--calendar-event-bg-color);
273
+ border-inline-start: 0.25rem solid var(--calendar-event-border-color);
274
+ border-radius: var(--shape-corner-extra-small);
275
+ transition: background 150ms ease;
276
+ }
277
+ .event .event-title {
278
+ padding: 0.25rem 0.375rem;
279
+ font-size: 0.75rem;
280
+ font-weight: 500;
281
+ color: var(--calendar-event-text-color);
282
+ white-space: nowrap;
283
+ overflow: hidden;
284
+ text-overflow: ellipsis;
285
+ }
286
+ .event.clickable {
287
+ cursor: pointer;
288
+ }
289
+ .event.clickable:hover {
290
+ background: var(--calendar-event-bg-color--hover);
291
+ }
292
+ .event.clickable:hover .event-title {
293
+ color: var(--calendar-event-text-color--hover);
294
+ }`;
295
+
296
+ /**
297
+ * @label Calendar Column View
298
+ * @tag wc-calendar-column-view
299
+ * @rawTag calendar-column-view
300
+ * @parentRawTag calendar
301
+ * @summary Internal column view component for the calendar (day/week views).
302
+ */
303
+ let CalendarColumnView = class CalendarColumnView extends i$1 {
304
+ constructor() {
305
+ super(...arguments);
306
+ this.events = [];
307
+ this.view = 'week';
308
+ this.days = 7;
309
+ this.eventClickable = true;
310
+ this.currentTime = new Date();
311
+ this.contextDate = new Date();
312
+ this.dateRange = {};
313
+ this.singleDayEvents = {};
314
+ this.multiDayEvents = [];
315
+ }
316
+ connectedCallback() {
317
+ super.connectedCallback();
318
+ this._processEvents();
319
+ }
320
+ willUpdate(changedProperties) {
321
+ if (changedProperties.has('events') ||
322
+ changedProperties.has('contextDate') ||
323
+ changedProperties.has('view') ||
324
+ changedProperties.has('days')) {
325
+ this._processEvents();
326
+ }
327
+ }
328
+ firstUpdated() {
329
+ const viewBody = this.renderRoot.querySelector('.view-body');
330
+ if (viewBody) {
331
+ const viewBodyHeight = viewBody.scrollHeight;
332
+ viewBody.scrollTo({
333
+ top: (getTimePercent(this.currentTime) / 100) * viewBodyHeight - 150,
334
+ });
335
+ }
336
+ }
337
+ _processEvents() {
338
+ this.dateRange = calculateDateRange(this.view, this.contextDate, this.days);
339
+ this.singleDayEvents = {};
340
+ this._forEachDayInRange(i => {
341
+ const manager = new EventManager();
342
+ manager.addEvents(this.events.filter(event => event.isOverlapping(new BaseEvent(startOfDay(i), endOfDay(i))) &&
343
+ event.length() < 86400000));
344
+ manager.process();
345
+ this.singleDayEvents[this._getDateOnly(i)] = manager.columns;
346
+ });
347
+ const multiManager = new EventManager();
348
+ multiManager.addEvents(this.events.filter(event => event.isOverlapping(new BaseEvent(this.dateRange.startDate, this.dateRange.endDate)) && event.length() >= 86400000));
349
+ multiManager.process();
350
+ this.multiDayEvents = multiManager.columns;
351
+ }
352
+ _forEachDayInRange(callback) {
353
+ for (let i = new Date(this.dateRange.startDate); differenceInDays(startOfDay(this.dateRange.endDate), i) >= 0; i = addDays(i, 1)) {
354
+ callback(i);
355
+ }
356
+ }
357
+ _getDateOnly(date) {
358
+ return formatDate(date, 'dd-MM-yyyy');
359
+ }
360
+ _getDatePercent(date) {
361
+ const currentDay = differenceInDays(startOfDay(date), this.dateRange.startDate);
362
+ const percent = (currentDay / this.dateRange.totalDays) * 100;
363
+ if (percent < 0)
364
+ return 0;
365
+ if (percent > 100)
366
+ return 100;
367
+ return percent;
368
+ }
369
+ _getDayClass(date) {
370
+ const diff = differenceInDays(startOfDay(date), startOfDay(this.currentTime));
371
+ if (diff === 0)
372
+ return 'column today';
373
+ if (diff < 0)
374
+ return 'column past';
375
+ return 'column future';
376
+ }
377
+ _populateColorVars(styles, color) {
378
+ styles['--calendar-event-bg-color'] = `var(--color-${color}-container)`;
379
+ styles['--calendar-event-bg-color--hover'] = `var(--color-inverse-${color})`;
380
+ styles['--calendar-event-border-color'] = `var(--color-${color})`;
381
+ styles['--calendar-event-text-color'] = `var(--color-on-${color}-container)`;
382
+ styles['--calendar-event-text-color--hover'] = `var(--color-on-${color})`;
383
+ }
384
+ _emitDateClick(date) {
385
+ this.dispatchEvent(new CustomEvent('column-view-date-click', {
386
+ detail: { date },
387
+ bubbles: true,
388
+ composed: true,
389
+ }));
390
+ }
391
+ _emitEventClick(event) {
392
+ this.dispatchEvent(new CustomEvent('column-view-event-click', {
393
+ detail: { event },
394
+ bubbles: true,
395
+ composed: true,
396
+ }));
397
+ }
398
+ _renderHeader() {
399
+ const columns = [];
400
+ this._forEachDayInRange(i => {
401
+ columns.push(b `
402
+ <div class=${this._getDayClass(i)}>
403
+ <div class="column-content">
404
+ <div
405
+ class="date"
406
+ @click=${() => this._emitDateClick(i)}
407
+ >
408
+ ${formatDate(i, 'dd')}
409
+ </div>
410
+ <div class="day">${formatDate(i, 'E')}</div>
411
+ </div>
412
+ </div>
413
+ `);
414
+ });
415
+ return columns;
416
+ }
417
+ _renderMultiDayBackground() {
418
+ const columns = [];
419
+ this._forEachDayInRange(i => {
420
+ columns.push(b `<div class=${this._getDayClass(i)}></div>`);
421
+ });
422
+ return columns;
423
+ }
424
+ _renderScale() {
425
+ const rows = [];
426
+ for (let i = 0; i < 48; i++) {
427
+ const cls = i % 2 ? 'row hour' : 'row';
428
+ const sd = startOfDay(new Date());
429
+ rows.push(b `
430
+ <div class=${cls}>
431
+ ${i % 2 === 0 && i
432
+ ? b `<div class="time">${formatDate(addHours(sd, i / 2), 'hh a')}</div>`
433
+ : A}
434
+ </div>
435
+ `);
436
+ }
437
+ return b `<div class="background">${rows}</div>`;
438
+ }
439
+ _renderBackgroundGrid() {
440
+ const rows = [];
441
+ for (let i = 0; i < 48; i++) {
442
+ const cls = i % 2 ? 'row hour' : 'row';
443
+ const columns = [];
444
+ this._forEachDayInRange(d => {
445
+ columns.push(b `<div class=${this._getDayClass(d)}></div>`);
446
+ });
447
+ rows.push(b `<div class=${cls}>${columns}</div>`);
448
+ }
449
+ return b `<div class="background">${rows}</div>`;
450
+ }
451
+ _renderEvents() {
452
+ const columns = [];
453
+ this._forEachDayInRange(i => {
454
+ const cls = this._getDayClass(i);
455
+ const eventDay = this.singleDayEvents[this._getDateOnly(i)];
456
+ columns.push(b `
457
+ <div class=${cls}>
458
+ <div class="column-content">
459
+ ${eventDay
460
+ ? eventDay.map((nodes, columnIndex) => nodes.map(node => {
461
+ const evtCls = this.eventClickable
462
+ ? 'event clickable'
463
+ : 'event';
464
+ const evtStyles = {
465
+ top: `${getTimePercent(node.start, startOfDay(i))}%`,
466
+ height: `${getTimePercent(node.end, startOfDay(i)) - getTimePercent(node.start, startOfDay(i))}%`,
467
+ left: `${(columnIndex / eventDay.length) * 100}%`,
468
+ width: `calc(${((1 * node.width) / eventDay.length) * 100}% - 1px)`,
469
+ };
470
+ if (node.color) {
471
+ this._populateColorVars(evtStyles, node.color);
472
+ }
473
+ return b `
474
+ <div
475
+ class=${evtCls}
476
+ style=${this._styleMap(evtStyles)}
477
+ @click=${() => {
478
+ if (this.eventClickable)
479
+ this._emitEventClick(node.data);
480
+ }}
481
+ >
482
+ <div class="event-title">
483
+ ${node.title || '(no title)'}
484
+ </div>
485
+ </div>
486
+ `;
487
+ }))
488
+ : A}
489
+ </div>
490
+ </div>
491
+ `);
492
+ });
493
+ return b `<div class="events-container">${columns}</div>`;
494
+ }
495
+ _renderMultiDayEvents() {
496
+ if (!this.multiDayEvents || !this.multiDayEvents.length)
497
+ return A;
498
+ return b `
499
+ <div class="row-content">
500
+ ${this.multiDayEvents.map(nodes => b `
501
+ <div class="row">
502
+ ${nodes.map(node => {
503
+ const evtCls = this.eventClickable
504
+ ? 'event clickable'
505
+ : 'event';
506
+ const evtStyles = {
507
+ left: `${this._getDatePercent(node.start) + LONG_EVENT_PADDING}%`,
508
+ width: `${this._getDatePercent(addDays(node.end, 1)) - this._getDatePercent(node.start) - 2 * LONG_EVENT_PADDING}%`,
509
+ };
510
+ if (node.color) {
511
+ this._populateColorVars(evtStyles, node.color);
512
+ }
513
+ return b `
514
+ <div
515
+ class=${evtCls}
516
+ style=${this._styleMap(evtStyles)}
517
+ @click=${() => {
518
+ if (this.eventClickable)
519
+ this._emitEventClick(node.data);
520
+ }}
521
+ >
522
+ <div class="event-title">
523
+ ${node.title || '(no title)'}
524
+ </div>
525
+ </div>
526
+ `;
527
+ })}
528
+ </div>
529
+ `)}
530
+ <div class="row-spacer"></div>
531
+ </div>
532
+ `;
533
+ }
534
+ _renderCurrentTime() {
535
+ if (this.currentTime.valueOf() < this.dateRange.startDate?.valueOf() - 1 ||
536
+ this.currentTime.valueOf() > this.dateRange.endDate?.valueOf() + 1) {
537
+ return A;
538
+ }
539
+ return b `
540
+ <div
541
+ class="current-time-line"
542
+ style="top: calc(${getTimePercent(this.currentTime)}% - 1px)"
543
+ >
544
+ <div class="time">${formatDate(this.currentTime, 'hh:mm a')}</div>
545
+ <div
546
+ class="dash-line"
547
+ style="width: ${this._getDatePercent(this.currentTime)}%"
548
+ ></div>
549
+ <div
550
+ class="dot"
551
+ style="left: calc(${this._getDatePercent(this.currentTime)}% - 0.25rem)"
552
+ ></div>
553
+ <div
554
+ class="line"
555
+ style="left: ${this._getDatePercent(this.currentTime)}%; width: ${(1 / this.dateRange.totalDays) * 100}%"
556
+ ></div>
557
+ </div>
558
+ `;
559
+ }
560
+ _styleMap(styles) {
561
+ return Object.entries(styles)
562
+ .map(([k, v]) => `${k}:${v}`)
563
+ .join(';');
564
+ }
565
+ render() {
566
+ return b `
567
+ <div class="calendar-column-view">
568
+ <div class="view-header">
569
+ <div class="scale"></div>
570
+ <div class="columns">${this._renderHeader()}</div>
571
+ <div class="scrollbar-placeholder"></div>
572
+ </div>
573
+ <div class="multi-day-section-wrapper">
574
+ <div class="multi-day-section-scroll">
575
+ <div class="multi-day-section">
576
+ <div class="multi-day-background">
577
+ <div class="scale"></div>
578
+ <div class="columns">
579
+ ${this._renderMultiDayBackground()}
580
+ </div>
581
+ </div>
582
+ <div class="multi-events">
583
+ ${this._renderMultiDayEvents()}
584
+ </div>
585
+ </div>
586
+ </div>
587
+ </div>
588
+ <div class="view-body">
589
+ <div class="view-body-scroll">
590
+ <div class="scale">${this._renderScale()}</div>
591
+ <div class="drawing-area">
592
+ ${this._renderBackgroundGrid()} ${this._renderEvents()}
593
+ </div>
594
+ ${this._renderCurrentTime()}
595
+ </div>
596
+ </div>
597
+ </div>
598
+ `;
599
+ }
600
+ };
601
+ CalendarColumnView.styles = [css_248z];
602
+ __decorate([
603
+ n({ type: Array })
604
+ ], CalendarColumnView.prototype, "events", void 0);
605
+ __decorate([
606
+ n({ type: String })
607
+ ], CalendarColumnView.prototype, "view", void 0);
608
+ __decorate([
609
+ n({ type: Number })
610
+ ], CalendarColumnView.prototype, "days", void 0);
611
+ __decorate([
612
+ n({ type: Boolean, attribute: 'event-clickable' })
613
+ ], CalendarColumnView.prototype, "eventClickable", void 0);
614
+ __decorate([
615
+ n({ type: Object, attribute: false })
616
+ ], CalendarColumnView.prototype, "currentTime", void 0);
617
+ __decorate([
618
+ n({ type: Object, attribute: false })
619
+ ], CalendarColumnView.prototype, "contextDate", void 0);
620
+ __decorate([
621
+ r()
622
+ ], CalendarColumnView.prototype, "dateRange", void 0);
623
+ __decorate([
624
+ r()
625
+ ], CalendarColumnView.prototype, "singleDayEvents", void 0);
626
+ __decorate([
627
+ r()
628
+ ], CalendarColumnView.prototype, "multiDayEvents", void 0);
629
+ CalendarColumnView = __decorate([
630
+ IndividualComponent
631
+ ], CalendarColumnView);
632
+
633
+ export { CalendarColumnView };
634
+ //# sourceMappingURL=calendar-column-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-column-view.js","sources":["../../src/calendar/calendar-column-view.ts"],"sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport {\n addDays,\n addHours,\n differenceInDays,\n startOfDay,\n endOfDay,\n calculateDateRange,\n formatDate,\n getTimePercent,\n LONG_EVENT_PADDING,\n} from './utils.js';\nimport { BaseEvent } from './base-event.js';\nimport { CalendarEvent } from './calendar-event.js';\nimport { EventManager } from './event-manager.js';\nimport type { ColumnEvent } from './event-manager.js';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport styles from './calendar-column-view.scss';\n\n/**\n * @label Calendar Column View\n * @tag wc-calendar-column-view\n * @rawTag calendar-column-view\n * @parentRawTag calendar\n * @summary Internal column view component for the calendar (day/week views).\n */\n@IndividualComponent\nexport class CalendarColumnView extends LitElement {\n static styles = [styles];\n\n @property({ type: Array })\n events: CalendarEvent[] = [];\n\n @property({ type: String })\n view: string = 'week';\n\n @property({ type: Number })\n days: number = 7;\n\n @property({ type: Boolean, attribute: 'event-clickable' })\n eventClickable: boolean = true;\n\n @property({ type: Object, attribute: false })\n currentTime: Date = new Date();\n\n @property({ type: Object, attribute: false })\n contextDate: Date = new Date();\n\n @state()\n private dateRange: any = {};\n\n @state()\n private singleDayEvents: Record<string, ColumnEvent[][]> = {};\n\n @state()\n private multiDayEvents: ColumnEvent[][] = [];\n\n override connectedCallback() {\n super.connectedCallback();\n this._processEvents();\n }\n\n override willUpdate(changedProperties: Map<string, unknown>) {\n if (\n changedProperties.has('events') ||\n changedProperties.has('contextDate') ||\n changedProperties.has('view') ||\n changedProperties.has('days')\n ) {\n this._processEvents();\n }\n }\n\n override firstUpdated() {\n const viewBody = this.renderRoot.querySelector('.view-body');\n if (viewBody) {\n const viewBodyHeight = viewBody.scrollHeight;\n viewBody.scrollTo({\n top:\n (getTimePercent(this.currentTime) / 100) * viewBodyHeight - 150,\n });\n }\n }\n\n private _processEvents() {\n this.dateRange = calculateDateRange(this.view, this.contextDate, this.days);\n this.singleDayEvents = {};\n\n this._forEachDayInRange(i => {\n const manager = new EventManager();\n manager.addEvents(\n this.events.filter(\n event =>\n event.isOverlapping(new BaseEvent(startOfDay(i), endOfDay(i))) &&\n event.length() < 86400000,\n ),\n );\n manager.process();\n this.singleDayEvents[this._getDateOnly(i)] = manager.columns;\n });\n\n const multiManager = new EventManager();\n multiManager.addEvents(\n this.events.filter(\n event =>\n event.isOverlapping(\n new BaseEvent(this.dateRange.startDate, this.dateRange.endDate),\n ) && event.length() >= 86400000,\n ),\n );\n multiManager.process();\n this.multiDayEvents = multiManager.columns;\n }\n\n private _forEachDayInRange(callback: (d: Date) => void) {\n for (\n let i = new Date(this.dateRange.startDate);\n differenceInDays(startOfDay(this.dateRange.endDate), i) >= 0;\n i = addDays(i, 1)\n ) {\n callback(i);\n }\n }\n\n private _getDateOnly(date: Date): string {\n return formatDate(date, 'dd-MM-yyyy');\n }\n\n private _getDatePercent(date: Date): number {\n const currentDay = differenceInDays(\n startOfDay(date),\n this.dateRange.startDate,\n );\n const percent = (currentDay / this.dateRange.totalDays) * 100;\n if (percent < 0) return 0;\n if (percent > 100) return 100;\n return percent;\n }\n\n private _getDayClass(date: Date): string {\n const diff = differenceInDays(startOfDay(date), startOfDay(this.currentTime));\n if (diff === 0) return 'column today';\n if (diff < 0) return 'column past';\n return 'column future';\n }\n\n private _populateColorVars(\n styles: Record<string, string>,\n color: string,\n ) {\n styles['--calendar-event-bg-color'] = `var(--color-${color}-container)`;\n styles['--calendar-event-bg-color--hover'] = `var(--color-inverse-${color})`;\n styles['--calendar-event-border-color'] = `var(--color-${color})`;\n styles['--calendar-event-text-color'] = `var(--color-on-${color}-container)`;\n styles['--calendar-event-text-color--hover'] = `var(--color-on-${color})`;\n }\n\n private _emitDateClick(date: Date) {\n this.dispatchEvent(\n new CustomEvent('column-view-date-click', {\n detail: { date },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _emitEventClick(event: any) {\n this.dispatchEvent(\n new CustomEvent('column-view-event-click', {\n detail: { event },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _renderHeader() {\n const columns: any[] = [];\n this._forEachDayInRange(i => {\n columns.push(html`\n <div class=${this._getDayClass(i)}>\n <div class=\"column-content\">\n <div\n class=\"date\"\n @click=${() => this._emitDateClick(i)}\n >\n ${formatDate(i, 'dd')}\n </div>\n <div class=\"day\">${formatDate(i, 'E')}</div>\n </div>\n </div>\n `);\n });\n return columns;\n }\n\n private _renderMultiDayBackground() {\n const columns: any[] = [];\n this._forEachDayInRange(i => {\n columns.push(html`<div class=${this._getDayClass(i)}></div>`);\n });\n return columns;\n }\n\n private _renderScale() {\n const rows: any[] = [];\n for (let i = 0; i < 48; i++) {\n const cls = i % 2 ? 'row hour' : 'row';\n const sd = startOfDay(new Date());\n rows.push(html`\n <div class=${cls}>\n ${i % 2 === 0 && i\n ? html`<div class=\"time\">${formatDate(addHours(sd, i / 2), 'hh a')}</div>`\n : nothing}\n </div>\n `);\n }\n return html`<div class=\"background\">${rows}</div>`;\n }\n\n private _renderBackgroundGrid() {\n const rows: any[] = [];\n for (let i = 0; i < 48; i++) {\n const cls = i % 2 ? 'row hour' : 'row';\n const columns: any[] = [];\n this._forEachDayInRange(d => {\n columns.push(html`<div class=${this._getDayClass(d)}></div>`);\n });\n rows.push(html`<div class=${cls}>${columns}</div>`);\n }\n return html`<div class=\"background\">${rows}</div>`;\n }\n\n private _renderEvents() {\n const columns: any[] = [];\n this._forEachDayInRange(i => {\n const cls = this._getDayClass(i);\n const eventDay = this.singleDayEvents[this._getDateOnly(i)];\n columns.push(html`\n <div class=${cls}>\n <div class=\"column-content\">\n ${eventDay\n ? eventDay.map((nodes, columnIndex) =>\n nodes.map(node => {\n const evtCls = this.eventClickable\n ? 'event clickable'\n : 'event';\n const evtStyles: Record<string, string> = {\n top: `${getTimePercent(node.start, startOfDay(i))}%`,\n height: `${getTimePercent(node.end, startOfDay(i)) - getTimePercent(node.start, startOfDay(i))}%`,\n left: `${(columnIndex / eventDay.length) * 100}%`,\n width: `calc(${((1 * node.width) / eventDay.length) * 100}% - 1px)`,\n };\n if (node.color) {\n this._populateColorVars(evtStyles, node.color);\n }\n return html`\n <div\n class=${evtCls}\n style=${this._styleMap(evtStyles)}\n @click=${() => {\n if (this.eventClickable) this._emitEventClick(node.data);\n }}\n >\n <div class=\"event-title\">\n ${node.title || '(no title)'}\n </div>\n </div>\n `;\n }),\n )\n : nothing}\n </div>\n </div>\n `);\n });\n return html`<div class=\"events-container\">${columns}</div>`;\n }\n\n private _renderMultiDayEvents() {\n if (!this.multiDayEvents || !this.multiDayEvents.length) return nothing;\n return html`\n <div class=\"row-content\">\n ${this.multiDayEvents.map(\n nodes => html`\n <div class=\"row\">\n ${nodes.map(node => {\n const evtCls = this.eventClickable\n ? 'event clickable'\n : 'event';\n const evtStyles: Record<string, string> = {\n left: `${this._getDatePercent(node.start) + LONG_EVENT_PADDING}%`,\n width: `${this._getDatePercent(addDays(node.end, 1)) - this._getDatePercent(node.start) - 2 * LONG_EVENT_PADDING}%`,\n };\n if (node.color) {\n this._populateColorVars(evtStyles, node.color);\n }\n return html`\n <div\n class=${evtCls}\n style=${this._styleMap(evtStyles)}\n @click=${() => {\n if (this.eventClickable) this._emitEventClick(node.data);\n }}\n >\n <div class=\"event-title\">\n ${node.title || '(no title)'}\n </div>\n </div>\n `;\n })}\n </div>\n `,\n )}\n <div class=\"row-spacer\"></div>\n </div>\n `;\n }\n\n private _renderCurrentTime() {\n if (\n this.currentTime.valueOf() < this.dateRange.startDate?.valueOf() - 1 ||\n this.currentTime.valueOf() > this.dateRange.endDate?.valueOf() + 1\n ) {\n return nothing;\n }\n return html`\n <div\n class=\"current-time-line\"\n style=\"top: calc(${getTimePercent(this.currentTime)}% - 1px)\"\n >\n <div class=\"time\">${formatDate(this.currentTime, 'hh:mm a')}</div>\n <div\n class=\"dash-line\"\n style=\"width: ${this._getDatePercent(this.currentTime)}%\"\n ></div>\n <div\n class=\"dot\"\n style=\"left: calc(${this._getDatePercent(this.currentTime)}% - 0.25rem)\"\n ></div>\n <div\n class=\"line\"\n style=\"left: ${this._getDatePercent(this.currentTime)}%; width: ${(1 / this.dateRange.totalDays) * 100}%\"\n ></div>\n </div>\n `;\n }\n\n private _styleMap(styles: Record<string, string>): string {\n return Object.entries(styles)\n .map(([k, v]) => `${k}:${v}`)\n .join(';');\n }\n\n render() {\n return html`\n <div class=\"calendar-column-view\">\n <div class=\"view-header\">\n <div class=\"scale\"></div>\n <div class=\"columns\">${this._renderHeader()}</div>\n <div class=\"scrollbar-placeholder\"></div>\n </div>\n <div class=\"multi-day-section-wrapper\">\n <div class=\"multi-day-section-scroll\">\n <div class=\"multi-day-section\">\n <div class=\"multi-day-background\">\n <div class=\"scale\"></div>\n <div class=\"columns\">\n ${this._renderMultiDayBackground()}\n </div>\n </div>\n <div class=\"multi-events\">\n ${this._renderMultiDayEvents()}\n </div>\n </div>\n </div>\n </div>\n <div class=\"view-body\">\n <div class=\"view-body-scroll\">\n <div class=\"scale\">${this._renderScale()}</div>\n <div class=\"drawing-area\">\n ${this._renderBackgroundGrid()} ${this._renderEvents()}\n </div>\n ${this._renderCurrentTime()}\n </div>\n </div>\n </div>\n `;\n }\n}\n"],"names":["LitElement","html","nothing","styles","property","state"],"mappings":"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"}